:root {
    --bg: #0b0d12;
    --panel: #14151b;
    --panel-2: #1a1a1f;
    --line: #2c2d35;
    --text: #f3f6fb;
    --muted: #95a0b5;
    --accent: #ff1e1e;
    --accent-2: #ff4a4a;
    --green: #42d392;
    --yellow: #f6c85f;
    --red: #ff6b6b;
    --blue: #72a7ff;
    --radius: 18px;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: radial-gradient(circle at top right, #211012 0, var(--bg) 34rem); color: var(--text); min-height: 100vh; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { cursor: pointer; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 250px 1fr; }
.sidebar { border-right: 1px solid var(--line); background: rgba(9,11,16,.92); padding: 24px 18px; position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; }
.brand { display: flex; align-items: center; gap: 12px; margin-bottom: 28px; }
.brand-mark { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 13px; overflow: hidden; background: #0b0d12; border: 1px solid rgba(255,255,255,.08); }
.brand-mark img { width: 100%; height: 100%; object-fit: cover; display: block; }
.brand strong { display: block; font-size: 1rem; }
.brand small { color: var(--muted); }
.nav { display: grid; gap: 6px; }
.nav a { padding: 12px 14px; border-radius: 12px; color: var(--muted); font-weight: 700; }
.nav a:hover, .nav a.active { color: var(--text); background: var(--panel-2); }
.nav a.active { box-shadow: inset 3px 0 0 var(--accent); }
.user-card { margin-top: auto; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: var(--panel); display: grid; grid-template-columns: 40px 1fr; gap: 10px; align-items: center; }
.user-card img { width: 40px; height: 40px; border-radius: 50%; }
.user-copy { min-width: 0; }
.user-copy strong, .user-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-copy small { color: var(--muted); margin-top: 2px; }
.user-card form { grid-column: 1 / -1; }
.main-content { padding: 34px clamp(20px,4vw,54px) 54px; min-width: 0; }
.topbar { display: flex; justify-content: space-between; gap: 20px; align-items: end; margin-bottom: 26px; }
.eyebrow { color: var(--accent-2); text-transform: uppercase; letter-spacing: .14em; font-size: .72rem; font-weight: 900; margin: 0 0 8px; }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: clamp(2rem,4vw,3.4rem); letter-spacing: -.05em; margin-bottom: 0; }
h2 { font-size: 1.2rem; }
.topbar-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.panel { background: linear-gradient(180deg, rgba(24,30,42,.96), rgba(17,22,31,.96)); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; box-shadow: 0 18px 40px rgba(0,0,0,.16); }
.grid { display: grid; gap: 16px; }
.grid.stats { grid-template-columns: repeat(4, minmax(0,1fr)); }
.stat-card strong { display: block; font-size: 2rem; letter-spacing: -.04em; }
.stat-card span { color: var(--muted); font-size: .9rem; }
.section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.section-head h2 { margin: 0; }
.muted { color: var(--muted); }
.button, .ghost-button, .danger-button { border: 0; border-radius: 11px; padding: 10px 14px; font-weight: 800; }
.button { background: var(--accent); color: #fff; }
.button:hover { background: #e00000; }
.ghost-button { background: #252d3b; color: var(--text); width: 100%; }
.danger-button { background: rgba(255,107,107,.12); color: var(--red); border: 1px solid rgba(255,107,107,.25); }
.button.small, .ghost-button.small, .danger-button.small { padding: 7px 10px; font-size: .82rem; width: auto; }
.flash { padding: 13px 16px; border-radius: 12px; margin-bottom: 18px; border: 1px solid; }
.flash.success { color: #bcf6d8; background: rgba(66,211,146,.09); border-color: rgba(66,211,146,.25); }
.flash.error { color: #ffc0c0; background: rgba(255,107,107,.09); border-color: rgba(255,107,107,.25); }
.visit-hero { display: grid; grid-template-columns: 1.4fr .6fr; gap: 16px; margin-bottom: 18px; }
.visit-state { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.pulse { width: 10px; height: 10px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 0 rgba(66,211,146,.6); animation: pulse 2s infinite; }
@keyframes pulse { 70% { box-shadow: 0 0 0 10px rgba(66,211,146,0); } 100% { box-shadow: 0 0 0 0 rgba(66,211,146,0); } }
.ride-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.ride-card { border: 1px solid var(--line); background: #111722; border-radius: 14px; padding: 15px; display: grid; gap: 12px; }
.ride-card-head { display: flex; justify-content: space-between; gap: 12px; align-items: start; }
.ride-card h3 { margin: 0; font-size: 1rem; }
.ride-count { font-size: 1.35rem; font-weight: 900; }
.ride-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.status-row { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .86rem; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--muted); }
.status-open .status-dot { background: var(--green); }
.status-down .status-dot, .status-closed .status-dot { background: var(--red); }
.status-maintenance .status-dot { background: var(--yellow); }
.status-unknown .status-dot { background: var(--muted); }
.badge { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: 999px; font-size: .78rem; font-weight: 900; text-transform: uppercase; letter-spacing: .05em; }
.badge.open { color: var(--green); background: rgba(66,211,146,.11); }
.badge.down, .badge.closed { color: var(--red); background: rgba(255,107,107,.11); }
.badge.maintenance { color: var(--yellow); background: rgba(246,200,95,.11); }
.badge.unknown { color: var(--muted); background: rgba(149,160,181,.11); }
.list { display: grid; gap: 8px; }
.list-row { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); }
.list-row:last-child { border-bottom: 0; }
.list-row small { color: var(--muted); }
.attraction-toolbar { display: flex; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }
.search { flex: 1; min-width: 220px; color: var(--text); background: #0e131d; border: 1px solid var(--line); border-radius: 12px; padding: 11px 13px; outline: none; }
.search:focus { border-color: #495469; }
.filter-button { border: 1px solid var(--line); background: var(--panel); color: var(--muted); padding: 10px 12px; border-radius: 11px; font-weight: 800; }
.filter-button.active { color: #fff; border-color: #4c566c; background: #252d3b; }
.attraction-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.attraction-card { background: var(--panel); border: 1px solid var(--line); border-radius: 16px; padding: 16px; }
.attraction-card h3 { margin-bottom: 12px; }
.wait-time { font-size: 1.8rem; font-weight: 900; letter-spacing: -.04em; margin: 12px 0 2px; }
.queue-grid { display: grid; grid-template-columns: 1fr; gap: 10px; margin: 14px 0 10px; }
.queue-grid.has-alternatives { grid-template-columns: repeat(auto-fit,minmax(125px,1fr)); }
.queue-item { min-width: 0; padding: 12px 13px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.015); }
.queue-label { display: block; margin-bottom: 7px; color: var(--muted); font-size: .76rem; font-weight: 800; text-transform: uppercase; letter-spacing: .055em; }
.queue-value { display: block; font-size: 1.35rem; line-height: 1.05; letter-spacing: -.03em; }
.queue-detail { display: block; margin-top: 7px; line-height: 1.35; }
.provider-state { display: block; margin-top: 9px; }
.attraction-updated { display: block; margin-top: 12px; }
.profile-head { display: flex; gap: 18px; align-items: center; }
.profile-head img { width: 86px; height: 86px; border-radius: 50%; }
.empty { text-align: center; padding: 42px 20px; color: var(--muted); }
@media (max-width: 1050px) { .grid.stats { grid-template-columns: repeat(2,1fr); } .attraction-grid { grid-template-columns: repeat(2,1fr); } .ride-grid { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .app-shell { display: block; } .sidebar { position: static; height: auto; border-right: 0; border-bottom: 1px solid var(--line); padding: 14px; } .brand { margin-bottom: 12px; } .nav { grid-template-columns: repeat(4,1fr); overflow-x: auto; } .nav a { text-align: center; font-size: .8rem; padding: 9px; } .user-card { display: none; } .main-content { padding: 22px 14px 40px; } .topbar { align-items: start; flex-direction: column; } .visit-hero, .grid.stats, .attraction-grid { grid-template-columns: 1fr; } .list-row { grid-template-columns: 1fr auto; } .list-row > :last-child { grid-column: 1 / -1; } }

/* Park operating-hours state */
.park-notice {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
    padding: 15px 18px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--panel);
}
.park-notice > div { min-width: 0; }
.park-notice strong { display: block; margin-bottom: 3px; }
.park-notice span,
.park-notice small { color: var(--muted); }
.park-notice-closed {
    border-color: rgba(255,107,107,.28);
    background: rgba(255,107,107,.07);
}
.park-notice-closed strong { color: var(--red); }
.park-notice-unknown {
    border-color: rgba(246,200,95,.28);
    background: rgba(246,200,95,.06);
}
.park-notice-unknown strong { color: var(--yellow); }
.park-stat { font-size: 1.2rem !important; letter-spacing: .02em !important; }
.park-stat-open { color: var(--green); }
.park-stat-closed { color: var(--red); }
.park-stat-unknown { color: var(--yellow); }
.provider-state { display: block; margin-top: 2px; }

@media (max-width: 760px) {
    .park-notice { align-items: flex-start; flex-direction: column; }
}

/* Queue trends + show schedule */
.queue-trend {
    display: inline-flex;
    align-items: center;
    margin-top: 8px;
    padding: 4px 7px;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .01em;
}
.queue-trend.up { color: var(--red); background: rgba(255,107,107,.10); }
.queue-trend.down { color: var(--green); background: rgba(66,211,146,.10); }

.shows-panel { margin-top: 16px; }
.shows-heading { display: flex; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 16px; }
.shows-heading h2 { margin-bottom: 0; font-size: 1.35rem; }
.show-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.show-card { background: var(--panel); border: 1px solid var(--line); border-radius: 16px; padding: 16px; }
.show-card h3 { margin-bottom: 3px; }
.show-next { margin: 14px 0 12px; padding: 12px 13px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.015); }
.show-next > span { display: block; color: var(--muted); font-size: .76rem; font-weight: 800; text-transform: uppercase; letter-spacing: .055em; margin-bottom: 7px; }
.show-next strong { display: block; font-size: 1.5rem; letter-spacing: -.03em; }
.show-next small { display: block; margin-top: 5px; }
.show-times { display: flex; gap: 7px; flex-wrap: wrap; }
.show-time { padding: 6px 8px; border-radius: 9px; border: 1px solid var(--line); font-size: .78rem; font-weight: 800; background: #0f141e; }
.show-time.past { opacity: .42; text-decoration: line-through; }

@media (max-width: 1050px) { .show-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 760px) { .show-grid { grid-template-columns: 1fr; } .shows-heading { align-items: flex-start; flex-direction: column; } }
.badge.live { color: var(--green); background: rgba(66,211,146,.11); }
.badge.upcoming { color: var(--blue, #8ebcff); background: rgba(142,188,255,.11); }
.badge.finished, .badge.unavailable { color: var(--muted); background: rgba(149,160,181,.11); }

/* RideGrid live intelligence controls */
.live-meta-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    margin: 0 0 16px;
    padding: 11px 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(255,255,255,.018);
    color: var(--muted);
    font-size: .82rem;
}
.live-meta-bar strong { color: var(--text); margin-right: 6px; }
.live-meta-bar > div:last-child { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.fallback-chip { color: var(--yellow); background: rgba(246,200,95,.10); border: 1px solid rgba(246,200,95,.20); border-radius: 999px; padding: 3px 7px; font-weight: 800; }
.content-switcher { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.filter-select { color: var(--text); background: var(--panel); border: 1px solid var(--line); border-radius: 11px; padding: 10px 12px; font-weight: 800; outline: none; }
.filter-select:focus { border-color: #4c566c; }
.card-actions { display: flex; align-items: center; gap: 8px; }
.favorite-button { border: 0; background: transparent; color: var(--muted); font-size: 1.25rem; line-height: 1; padding: 4px; cursor: pointer; }
.favorite-button:hover, .attraction-card.is-favorite .favorite-button { color: var(--yellow); }
.attraction-area { display: block; margin-top: -7px; }
.attraction-hours { display: flex; justify-content: space-between; gap: 10px; align-items: center; padding: 8px 10px; margin: 2px 0 8px; border-radius: 10px; background: rgba(255,255,255,.02); border: 1px solid var(--line); font-size: .78rem; }
.attraction-hours span { color: var(--muted); }
.attraction-hours strong { font-size: .82rem; }
.daily-insights { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.ride-advice, .daily-stat { display: inline-flex; align-items: center; border-radius: 999px; padding: 4px 7px; font-size: .72rem; font-weight: 800; }
.ride-advice.good { color: var(--green); background: rgba(66,211,146,.10); }
.ride-advice.busy { color: var(--red); background: rgba(255,107,107,.10); }
.ride-advice.average { color: var(--muted); background: rgba(149,160,181,.10); }
.daily-stat { color: var(--muted); background: rgba(255,255,255,.025); }

/* Compact list view keeps all live queues but removes card chrome. */
.attraction-grid.compact { grid-template-columns: 1fr; gap: 7px; }
.attraction-grid.compact .attraction-card { display: grid; grid-template-columns: minmax(220px,.7fr) minmax(0,1.6fr) auto; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 12px; }
.attraction-grid.compact .attraction-head { margin: 0; }
.attraction-grid.compact .queue-grid { margin: 0; display: flex; gap: 7px; }
.attraction-grid.compact .queue-item { padding: 8px 10px; min-width: 115px; }
.attraction-grid.compact .queue-label { margin-bottom: 3px; font-size: .66rem; }
.attraction-grid.compact .queue-value { font-size: 1rem; }
.attraction-grid.compact .queue-detail,
.attraction-grid.compact .queue-trend,
.attraction-grid.compact .daily-insights,
.attraction-grid.compact .attraction-hours,
.attraction-grid.compact .provider-state { display: none; }
.attraction-grid.compact .attraction-updated { margin: 0; text-align: right; }

@media (max-width: 900px) {
    .attraction-grid.compact .attraction-card { grid-template-columns: 1fr; }
    .attraction-grid.compact .attraction-updated { text-align: left; }
}
@media (max-width: 760px) {
    .live-meta-bar { align-items: flex-start; flex-direction: column; }
    .live-meta-bar > div:last-child { justify-content: flex-start; }
    .filter-select { width: 100%; }
    .attraction-toolbar .search { flex-basis: 100%; }
}
.fallback-card-state { display: inline-flex; margin-top: 9px; color: var(--yellow); font-size: .74rem; font-weight: 800; }

/* RideGrid public landing / Discord login */
.landing-page {
    overflow-x: hidden;
    background:
        radial-gradient(circle at 84% 8%, rgba(255,30,30,.18), transparent 31rem),
        radial-gradient(circle at 14% 92%, rgba(114,167,255,.055), transparent 28rem),
        #090c11;
}
.landing-page::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    opacity: .18;
    background-image:
        linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(to bottom, #000, transparent 74%);
}
.landing-shell {
    position: relative;
    z-index: 1;
    width: min(1380px, calc(100% - 48px));
    margin: 0 auto;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
.landing-nav {
    min-height: 92px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid rgba(255,255,255,.07);
}
.landing-brand { display: flex; align-items: center; gap: 12px; }
.landing-brand .brand-mark { width: 40px; height: 40px; border-radius: 11px; }
.landing-brand strong, .landing-brand small { display: block; }
.landing-brand strong { font-size: 1rem; letter-spacing: -.02em; }
.landing-brand small { color: var(--muted); font-size: .76rem; margin-top: 2px; }
.landing-live-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #c7d0df;
    border: 1px solid rgba(255,255,255,.09);
    background: rgba(255,255,255,.025);
    border-radius: 999px;
    padding: 8px 12px;
    font-size: .78rem;
    font-weight: 800;
}
.landing-live-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 0 4px rgba(66,211,146,.10);
}
.landing-flash { margin: 20px 0 0; }
.landing-hero {
    flex: 1;
    display: grid;
    grid-template-columns: minmax(0,.93fr) minmax(520px,1.07fr);
    align-items: center;
    gap: clamp(54px,7vw,108px);
    padding: clamp(72px,8vw,126px) 0 84px;
}
.landing-copy { max-width: 650px; }
.landing-copy .eyebrow { margin-bottom: 18px; }
.landing-copy h1 {
    max-width: 720px;
    margin: 0 0 24px;
    font-size: clamp(4rem,7vw,7.6rem);
    line-height: .88;
    letter-spacing: -.075em;
    font-weight: 900;
}
.landing-copy h1 span { color: #aeb9cb; }
.landing-lead {
    max-width: 610px;
    margin: 0;
    color: #a5b0c4;
    font-size: clamp(1rem,1.4vw,1.18rem);
    line-height: 1.75;
}
.landing-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 34px; }
.landing-discord-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 19px;
    border-radius: 12px;
    box-shadow: 0 14px 32px rgba(255,30,30,.18);
}
.discord-glyph {
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border-radius: 7px;
    background: rgba(255,255,255,.15);
    font-size: .75rem;
}
.landing-signin-note { color: var(--muted); font-size: .82rem; }
.landing-trust-row {
    display: flex;
    align-items: center;
    gap: 22px;
    flex-wrap: wrap;
    margin-top: 45px;
    padding-top: 24px;
    border-top: 1px solid rgba(255,255,255,.07);
    color: #9da8ba;
    font-size: .76rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: .055em;
}
.landing-trust-row b { color: var(--accent-2); margin-right: 6px; font-size: .66rem; }
.landing-preview {
    position: relative;
    isolation: isolate;
    padding: 22px;
    border-radius: 24px;
    border: 1px solid rgba(255,255,255,.10);
    background: linear-gradient(155deg, rgba(25,31,43,.98), rgba(13,17,24,.98));
    box-shadow: 0 45px 100px rgba(0,0,0,.36);
}
.landing-preview::before {
    content: "";
    position: absolute;
    z-index: -1;
    width: 76%;
    height: 76%;
    right: -13%;
    top: -18%;
    border-radius: 50%;
    background: rgba(255,30,30,.13);
    filter: blur(75px);
}
.preview-topline, .preview-park-row, .preview-ride-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}
.preview-topline { padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.preview-topline small, .preview-ride-head small {
    display: block;
    color: var(--accent-2);
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .13em;
}
.preview-topline strong { display: block; margin-top: 4px; font-size: 1.05rem; }
.preview-status {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--green);
    background: rgba(66,211,146,.09);
    border-radius: 999px;
    padding: 6px 9px;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .06em;
}
.preview-status i { width: 6px; height: 6px; border-radius: 50%; background: var(--green); }
.preview-park-row { padding: 20px 2px 16px; }
.preview-park-row span { display: block; color: var(--muted); font-size: .72rem; }
.preview-park-row strong { display: block; margin-top: 5px; font-size: 1rem; }
.preview-source { text-align: right; }
.preview-ride-card {
    padding: 17px;
    border: 1px solid var(--line);
    border-radius: 17px;
    background: rgba(8,11,16,.44);
}
.preview-ride-head h2 { margin: 4px 0 0; font-size: 1.28rem; letter-spacing: -.035em; }
.preview-queues { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; margin-top: 17px; }
.preview-queue {
    min-width: 0;
    padding: 13px;
    border-radius: 13px;
    border: 1px solid var(--line);
    background: rgba(255,255,255,.018);
}
.preview-queue > span {
    display: block;
    color: var(--muted);
    font-size: .64rem;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .045em;
    white-space: nowrap;
}
.preview-queue strong { display: block; margin-top: 9px; font-size: 1.25rem; letter-spacing: -.04em; }
.preview-queue small { display: block; margin-top: 5px; color: #8f9bb0; font-size: .68rem; }
.preview-bottom-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-top: 9px; }
.preview-mini-card { padding: 13px; border-radius: 13px; border: 1px solid var(--line); background: rgba(255,255,255,.018); }
.preview-mini-card span { color: var(--muted); font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; font-weight: 800; }
.preview-mini-card strong, .preview-mini-card small { display: block; }
.preview-mini-card strong { margin-top: 7px; font-size: .88rem; }
.preview-mini-card small { margin-top: 4px; color: #7f8aa0; font-size: .69rem; }
.landing-features {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    border-top: 1px solid rgba(255,255,255,.07);
    border-bottom: 1px solid rgba(255,255,255,.07);
}
.landing-features article {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 15px;
    padding: 31px clamp(18px,2.6vw,36px);
}
.landing-features article + article { border-left: 1px solid rgba(255,255,255,.07); }
.feature-number { color: var(--accent-2); font-size: .66rem; font-weight: 900; letter-spacing: .08em; padding-top: 3px; }
.landing-features h2 { margin: 0 0 8px; font-size: .97rem; letter-spacing: -.015em; }
.landing-features p { margin: 0; color: #8995aa; font-size: .81rem; line-height: 1.6; }
.landing-footer {
    min-height: 92px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    color: #727e91;
    font-size: .72rem;
}
.landing-footer div { display: flex; align-items: center; gap: 11px; }
.landing-footer strong { color: #b8c1d0; }
@media (max-width: 1050px) {
    .landing-hero { grid-template-columns: 1fr; gap: 58px; padding-top: 72px; }
    .landing-copy { max-width: 760px; }
    .landing-preview { max-width: 760px; width: 100%; }
    .landing-features { grid-template-columns: 1fr; }
    .landing-features article + article { border-left: 0; border-top: 1px solid rgba(255,255,255,.07); }
}
@media (max-width: 680px) {
    .landing-shell { width: min(100% - 28px, 1380px); }
    .landing-nav { min-height: 76px; }
    .landing-live-chip { font-size: 0; padding: 9px; }
    .landing-copy h1 { font-size: clamp(3.35rem,17vw,5.1rem); }
    .landing-hero { padding: 56px 0 54px; gap: 42px; }
    .landing-lead { line-height: 1.65; }
    .landing-actions { align-items: stretch; flex-direction: column; }
    .landing-discord-button { justify-content: center; width: 100%; }
    .landing-signin-note { text-align: center; }
    .landing-trust-row { gap: 14px; }
    .landing-preview { padding: 14px; border-radius: 19px; }
    .preview-park-row { align-items: flex-start; flex-direction: column; }
    .preview-source { text-align: left; }
    .preview-queues { grid-template-columns: 1fr; }
    .preview-bottom-grid { grid-template-columns: 1fr; }
    .landing-footer { align-items: flex-start; flex-direction: column; justify-content: center; padding: 24px 0; }
    .landing-footer div { align-items: flex-start; flex-direction: column; gap: 4px; }
}

/* RideGrid companion suite */
.two-column-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.park-day-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}.area-pills{display:flex;flex-wrap:wrap;gap:8px}.area-pills a{padding:8px 11px;border:1px solid var(--border,#283244);border-radius:999px;color:#9db9db;text-decoration:none;font-size:12px}.area-pills a.active{background:#202a3a;color:#fff}.park-day-list{display:grid;gap:8px}.park-day-row,.planner-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:16px;padding:14px 16px;border:1px solid #263144;border-radius:14px;background:#121923;color:#fff;text-decoration:none}.park-day-row small,.planner-row small{display:block;color:#8eadd0;margin-top:3px}.park-day-wait{text-align:right}.park-day-wait strong{font-size:20px}.favorite-star{color:#7595bb}.favorite-star.active{color:#ffd35c}.companion-alerts{border-color:#62521c;background:linear-gradient(135deg,#171915,#1b1712);margin-bottom:14px}.alert-stack{display:grid;gap:8px}.smart-alert{display:flex;justify-content:space-between;gap:20px;padding:10px 12px;background:#101720;border-radius:10px;color:#bed1e7}.smart-alert strong{color:#ffd35c}.planner-list{display:grid;gap:9px}.planner-row{grid-template-columns:42px 1fr auto}.planner-number{display:grid;place-items:center;width:32px;height:32px;background:#1e2938;border-radius:10px;font-weight:800;color:#ff5a5f}.planner-wait{font-weight:800;font-size:18px}.ranking-row,.compare-row{display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #202a39}.ranking-row:last-child,.compare-row:last-child{border-bottom:0}.compare-row{grid-template-columns:1.2fr 1fr 1fr}.profile-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:16px}.profile-public-toggle{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.achievement-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.achievement{display:flex;flex-direction:column;gap:7px;padding:14px;border:1px solid #273244;border-radius:12px;background:#111821}.achievement span{font-size:20px}.achievement small{color:#8ca9c9}.achievement.locked{opacity:.38;filter:saturate(.4)}.achievement.unlocked span{color:#ff525c}.preference-form{display:grid;gap:12px}.preference-form label{color:#b8cbe1}.preference-form .input-line{display:grid;grid-template-columns:auto 100px auto;align-items:center;gap:8px}.preference-form input[type=number],.preference-form select{background:#0d141d;color:#fff;border:1px solid #2b3749;border-radius:8px;padding:8px}.day-compare-grid{display:grid;gap:8px}.day-compare-grid article{display:grid;grid-template-columns:100px 1fr auto;gap:10px;padding:10px 12px;border-radius:10px;background:#101720}.day-compare-grid small{color:#83a3c8}.public-profile-page{background:#0b0f15;padding:28px}.public-profile-shell{max-width:1000px;margin:0 auto}.public-profile-hero{display:flex;align-items:center;gap:20px;margin:28px 0 16px}.public-profile-hero img{width:84px;height:84px;border-radius:24px}.compact-stats{margin-bottom:16px}.detail-extra-grid{margin-top:16px}
@media(max-width:900px){.two-column-grid,.achievement-grid{grid-template-columns:1fr 1fr}.park-day-toolbar,.profile-hero{align-items:stretch;flex-direction:column}.compare-row{grid-template-columns:1fr}.compare-row span{font-size:12px}.day-compare-grid article{grid-template-columns:1fr}.smart-alert{flex-direction:column;gap:4px}}
@media(max-width:600px){.achievement-grid,.two-column-grid{grid-template-columns:1fr}.park-day-row{grid-template-columns:1fr auto}.park-day-row .favorite-star{display:none}.planner-row{grid-template-columns:36px 1fr}.planner-wait{grid-column:2}.area-pills{overflow:auto;flex-wrap:nowrap;padding-bottom:4px}.area-pills a{white-space:nowrap}}
.wait-heatmap{display:grid;grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:8px}.heat-cell{padding:12px;border-radius:10px;border:1px solid #263144;display:flex;flex-direction:column;gap:4px;background:#101720}.heat-cell span,.heat-cell small{color:#86a4c7;font-size:11px}.heat-cell strong{font-size:16px}.heat-1{background:#101a19}.heat-2{background:#17201b}.heat-3{background:#242217}.heat-4{background:#2a1d18}.heat-5{background:#2b171b}.detail-heatmap-panel{margin-top:16px}

/* Cleaner live dashboard hierarchy */
.live-summary-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
    padding: 12px 15px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: rgba(255,255,255,.018);
}
.live-summary-state,
.live-summary-source { display: flex; align-items: center; gap: 10px; }
.live-summary-state > div { display: grid; gap: 2px; }
.live-summary-state strong { font-size: .88rem; }
.live-summary-state span,
.live-summary-source { color: var(--muted); font-size: .78rem; }
.live-summary-source { justify-content: flex-end; flex-wrap: wrap; }
.live-summary-source strong { color: var(--text); }
.live-dot { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 auto; background: var(--yellow); box-shadow: 0 0 0 4px rgba(246,200,95,.08); }
.live-summary-bar.is-open .live-dot { background: var(--green); box-shadow: 0 0 0 4px rgba(66,211,146,.08); }
.live-summary-bar.is-closed .live-dot { background: var(--red); box-shadow: 0 0 0 4px rgba(255,107,107,.08); }
.live-summary-bar.is-closed { border-color: rgba(255,107,107,.18); }
.live-summary-bar.is-open { border-color: rgba(66,211,146,.14); }

.live-core-stats { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
.live-core-stats .stat-card { min-height: 88px; padding: 16px 18px; }
.live-core-stats .stat-card strong { font-size: 1.75rem; }
.compact-notice { padding: 11px 14px; margin-bottom: 12px; }

.compact-intelligence {
    display: flex;
    align-items: center;
    gap: 22px;
    padding: 14px 16px;
    margin-bottom: 10px;
}
.compact-intelligence-title { min-width: 120px; display: grid; gap: 2px; }
.compact-intelligence-title strong { font-size: .98rem; }
.compact-wait-metrics { display: grid; grid-template-columns: repeat(3,minmax(110px,1fr)); gap: 10px; flex: 1; }
.compact-wait-metrics > div { display: grid; gap: 2px; padding-left: 12px; border-left: 1px solid var(--line); }
.compact-wait-metrics span,
.compact-wait-metrics small { color: var(--muted); font-size: .73rem; }
.compact-wait-metrics strong { font-size: 1rem; }
.inline-schedule-list { display: flex; gap: 7px; flex-wrap: wrap; flex: 1; }
.inline-schedule-list a { display: inline-flex; align-items: center; gap: 8px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 9px; background: rgba(255,255,255,.015); }
.inline-schedule-list a span { color: var(--text); }
.inline-schedule-list a strong { color: var(--muted); font-size: .78rem; }

.activity-disclosure { margin-bottom: 10px; padding: 0; overflow: hidden; }
.activity-disclosure summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 16px; }
.activity-disclosure summary::-webkit-details-marker { display: none; }
.activity-disclosure summary > span:first-child { display: flex; align-items: center; gap: 9px; }
.activity-disclosure summary strong { font-size: .92rem; }
.activity-disclosure[open] summary { border-bottom: 1px solid var(--line); }
.activity-events { padding: 4px 16px 10px; }

.live-controls-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.simplified-toolbar { align-items: center; }
.simplified-toolbar .search { min-width: 280px; }
.primary-filter-group { display: flex; gap: 6px; }
.toolbar-more { position: relative; }
.toolbar-more > summary { list-style: none; cursor: pointer; user-select: none; }
.toolbar-more > summary::-webkit-details-marker { display: none; }
.toolbar-more[open] > summary { color: #fff; border-color: #4c566c; background: #252d3b; }
.toolbar-more-menu {
    position: absolute;
    z-index: 20;
    right: 0;
    top: calc(100% + 8px);
    width: 210px;
    display: grid;
    gap: 6px;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #111722;
    box-shadow: 0 16px 40px rgba(0,0,0,.35);
}
.toolbar-more-menu .filter-button { width: 100%; text-align: left; }
.toolbar-menu-label { margin: 5px 4px 0; color: var(--muted); font-size: .66rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }

@media (max-width: 900px) {
    .live-summary-bar { align-items: flex-start; flex-direction: column; }
    .live-summary-source { justify-content: flex-start; }
    .compact-intelligence { align-items: flex-start; flex-direction: column; gap: 10px; }
    .compact-wait-metrics { width: 100%; }
    .live-core-stats { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
}
@media (max-width: 700px) {
    .live-core-stats { grid-template-columns: 1fr !important; gap: 8px; }
    .live-core-stats .stat-card { min-height: 0; display: flex; justify-content: space-between; align-items: center; }
    .compact-wait-metrics { grid-template-columns: 1fr; }
    .compact-wait-metrics > div { grid-template-columns: 80px 1fr auto; align-items: center; gap: 8px; }
    .simplified-toolbar .search { min-width: 100%; flex-basis: 100%; }
    .simplified-toolbar .filter-select { width: auto; flex: 1; }
    .primary-filter-group { order: 3; flex: 1 1 100%; }
    .primary-filter-group .filter-button { flex: 1; }
    .toolbar-more { margin-left: auto; }
    .toolbar-more-menu { right: 0; width: min(240px, calc(100vw - 40px)); }
}
/* Companion hardening / UX */
.nav-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:6px;border-radius:999px;background:#ff1e1e;color:#fff;font-size:.68rem;font-weight:900}.setup-banner{display:block;margin:0 14px 12px;padding:10px 12px;border:1px solid rgba(255,76,76,.25);border-radius:10px;background:rgba(255,30,30,.08);color:#ff8787;font-size:.78rem;font-weight:800;text-decoration:none}.notification-list{display:grid;gap:10px}.notification-row{display:flex;justify-content:space-between;gap:20px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.018)}.notification-row.unread{border-color:rgba(255,93,93,.26);background:rgba(255,30,30,.045)}.notification-row p{margin:5px 0;color:var(--muted)}.notification-row small{color:var(--muted)}.onboarding-card{max-width:1100px}.onboarding-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin:22px 0}.choice-card{display:grid;gap:4px;padding:12px;border:1px solid var(--border);border-radius:12px;cursor:pointer}.choice-card:has(input:checked){border-color:rgba(255,87,87,.42);background:rgba(255,30,30,.06)}.choice-card input{accent-color:#ff1e1e}.choice-card small{color:var(--muted)}.privacy-stack{display:grid;gap:10px;margin:18px 0}.privacy-stack input{accent-color:#ff1e1e}.noscript-warning{position:fixed;bottom:16px;right:16px;max-width:440px;padding:12px 14px;border:1px solid #6f5422;border-radius:10px;background:#1d190f;color:#ffd976;z-index:100}.data-quality{display:flex;gap:8px;align-items:center;font-size:.72rem;color:var(--muted)}.quality-dot{width:7px;height:7px;border-radius:50%;background:var(--green)}.quality-dot.fallback{background:#ffd15c}.privacy-card{display:grid;gap:14px}.privacy-actions{display:flex;gap:10px;flex-wrap:wrap}.error-shell{min-height:100vh;display:grid;place-items:center;padding:32px;background:#0b0d12}.error-card{width:min(620px,100%);padding:34px;border:1px solid var(--border);border-radius:18px;background:#121720;text-align:center}.error-code{font-size:4rem;font-weight:950;color:#ff5a5a;margin:0}.skeleton{position:relative;overflow:hidden;background:rgba(255,255,255,.04)}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);animation:rc-shimmer 1.3s infinite}@keyframes rc-shimmer{100%{transform:translateX(100%)}}*:focus-visible{outline:2px solid #ff5a5a;outline-offset:3px}.skip-link{position:absolute;left:-9999px;top:8px;z-index:999}.skip-link:focus{left:8px;background:#fff;color:#000;padding:8px 10px;border-radius:8px}
.rc-progress{position:fixed;left:0;top:0;height:2px;width:0;background:#ff3d3d;z-index:9999;opacity:0;transition:width .18s ease,opacity .2s ease}.rc-loading .rc-progress{width:78%;opacity:1}

/* Public rider profile polish */
.public-profile-page{min-height:100vh;background:radial-gradient(circle at 50% -25%,rgba(255,30,30,.08),transparent 35%),#0b0f15;padding:28px 20px 48px}.public-profile-shell{width:min(1180px,100%);margin:0 auto}.public-profile-nav{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:28px}.profile-share-button{border:1px solid var(--line);border-radius:10px;background:#121823;color:#c9d3e2;padding:9px 13px;font:inherit;font-size:.76rem;font-weight:800;cursor:pointer}.profile-share-button:hover{border-color:#465168;color:#fff}.public-rider-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:32px;padding:28px 30px;margin-bottom:14px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,#171e2a,#111722)}.public-rider-hero:after{content:"";position:absolute;width:260px;height:260px;right:-90px;top:-110px;border-radius:50%;background:rgba(255,30,30,.11);filter:blur(25px)}.public-rider-identity{position:relative;z-index:1;display:flex;align-items:center;gap:22px;min-width:0}.public-rider-avatar{width:96px;height:96px;object-fit:cover;border-radius:26px;border:1px solid rgba(255,255,255,.12);box-shadow:0 12px 28px rgba(0,0,0,.28)}.public-rider-avatar-fallback{display:grid;place-items:center;background:#202a39;color:#fff;font-size:2.2rem;font-weight:950}.public-rider-copy{min-width:0}.public-rider-copy h1{margin:5px 0 6px;font-size:clamp(2.35rem,5vw,4.2rem);line-height:.95;letter-spacing:-.06em}.public-rider-copy p{margin:0;color:#91a0b5;font-size:.86rem}.public-rider-chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.public-rider-chips span{padding:6px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);color:#b7c2d2;font-size:.68rem;font-weight:800}.public-rider-level{position:relative;z-index:1;min-width:160px;text-align:right}.public-rider-level small,.public-rider-level span{display:block;color:#8795aa}.public-rider-level small{font-size:.63rem;font-weight:950;letter-spacing:.11em}.public-rider-level strong{display:block;margin:3px 0;font-size:3rem;line-height:1;letter-spacing:-.06em}.public-rider-level span{font-size:.7rem}.public-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.public-stat-grid article{padding:17px 18px;border:1px solid var(--line);border-radius:14px;background:#121823}.public-stat-grid span,.public-stat-grid small{display:block;color:#8594a9}.public-stat-grid span{font-size:.7rem}.public-stat-grid strong{display:block;margin:3px 0 2px;font-size:1.55rem;letter-spacing:-.04em}.public-stat-grid small{font-size:.66rem}.public-profile-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(310px,.75fr);gap:14px}.public-profile-main,.public-profile-side{display:grid;align-content:start;gap:14px}.public-profile-card{margin:0;padding:20px}.public-section-head{margin-bottom:16px;align-items:flex-start}.public-section-head h2{margin-top:3px}.public-section-head>small{color:#77869a;font-size:.7rem}.public-signature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.public-signature-grid article{padding:16px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.018)}.public-signature-grid span,.public-signature-grid small{display:block;color:#8291a6}.public-signature-grid span{font-size:.67rem;text-transform:uppercase;letter-spacing:.055em;font-weight:850}.public-signature-grid strong{display:block;margin:7px 0 4px;font-size:1.2rem}.public-signature-grid small{font-size:.69rem}.public-top-rides{margin-top:18px}.public-subheading{display:block;margin-bottom:8px;color:#8090a6;font-size:.64rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.public-top-ride-row{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;padding:10px 2px;border-top:1px solid rgba(255,255,255,.06)}.public-rank{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#1a2230;color:#8ea0b8;font-size:.7rem;font-weight:900}.public-top-ride-row strong,.public-top-ride-row small{display:block}.public-top-ride-row small{margin-top:2px;color:#7f8da1;font-size:.67rem}.public-recent-rides{display:grid}.public-recent-row{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:12px;padding:11px 2px;border-top:1px solid rgba(255,255,255,.06)}.public-recent-row:first-child{border-top:0}.public-ride-dot{width:7px;height:7px;border-radius:50%;background:#ff5454;box-shadow:0 0 0 4px rgba(255,84,84,.08)}.public-recent-row strong,.public-recent-row small{display:block}.public-recent-row small{margin-top:2px;color:#7d8ca1;font-size:.67rem}.public-ride-count{color:#9aabc0;font-size:.78rem}.achievement-count{padding:6px 9px;border-radius:999px;background:rgba(255,30,30,.1);color:#ff6b6b;font-size:.72rem}.achievement-progress{height:5px;margin:-4px 0 16px;border-radius:999px;background:#0c1118;overflow:hidden}.achievement-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff1e1e,#ff5555)}.public-achievement-grid{display:grid;gap:8px}.public-achievement-card{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.014)}.public-achievement-icon{color:#ff5555}.public-achievement-card strong,.public-achievement-card small{display:block}.public-achievement-card small{margin-top:3px;color:#7e8ca0;font-size:.66rem;line-height:1.4}.public-milestone-list{display:grid;gap:2px}.public-milestone-list>div{padding:12px 0;border-top:1px solid rgba(255,255,255,.06)}.public-milestone-list>div:first-child{border-top:0}.public-milestone-list span,.public-milestone-list small{display:block;color:#7f8da2}.public-milestone-list span{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;font-weight:850}.public-milestone-list strong{display:block;margin:3px 0;font-size:.98rem}.public-milestone-list small{font-size:.65rem}.public-profile-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px;padding:18px 2px 0;border-top:1px solid rgba(255,255,255,.06);color:#6f7c8e;font-size:.69rem}.public-profile-footer a{color:#aab7c8;text-decoration:none;font-weight:800}.public-profile-footer a:hover{color:#fff}
@media(max-width:860px){.public-profile-layout{grid-template-columns:1fr}.public-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.public-rider-hero{align-items:flex-start}.public-rider-level{text-align:left;min-width:0}.public-rider-hero{flex-direction:column}}
@media(max-width:560px){.public-profile-page{padding:18px 12px 36px}.public-profile-nav{margin-bottom:18px}.public-rider-hero{padding:20px;border-radius:17px}.public-rider-identity{align-items:flex-start;gap:14px}.public-rider-avatar{width:70px;height:70px;border-radius:20px}.public-rider-copy h1{font-size:2.35rem}.public-rider-chips{margin-left:-84px;margin-top:20px}.public-rider-level{display:none}.public-stat-grid{grid-template-columns:1fr 1fr;gap:7px}.public-stat-grid article{padding:13px}.public-signature-grid{grid-template-columns:1fr}.public-profile-card{padding:16px}.public-profile-footer{align-items:flex-start;flex-direction:column}.profile-share-button{padding:8px 10px}.brand small{display:none}}

/* Error-page park notes: intentionally subtle; core error messaging stays neutral. */
.error-easter-egg {
    margin: 18px 0 0;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, .08);
    color: var(--muted, #8f9aae);
    font-size: .88rem;
    font-style: italic;
    line-height: 1.55;
}

/* Beta readiness */
.beta-banner { min-height: 38px; padding: 8px 18px; display: flex; justify-content: center; align-items: center; gap: 12px; flex-wrap: wrap; background: rgba(246,200,95,.09); border-bottom: 1px solid rgba(246,200,95,.22); color: #dce3ef; font-size: .78rem; }
.beta-banner strong { color: var(--yellow); text-transform: uppercase; letter-spacing: .08em; }
.beta-banner span { color: var(--muted); }
.beta-banner a { text-decoration: underline; text-underline-offset: 3px; }
.app-footer { margin-top: 42px; padding-top: 18px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; color: var(--muted); font-size: .76rem; }
.app-footer nav { display: flex; gap: 14px; flex-wrap: wrap; }
.app-footer a:hover { color: var(--text); }
.beta-form-card { max-width: 760px; }
.beta-form { display: grid; gap: 16px; }
.beta-form label { display: grid; gap: 7px; font-weight: 800; }
.beta-form textarea { width: 100%; resize: vertical; color: var(--text); background: #0e131d; border: 1px solid var(--line); border-radius: 12px; padding: 12px 13px; outline: none; font: inherit; }
.beta-form textarea:focus { border-color: #4c566c; }
.beta-form-meta { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; color: var(--muted); font-size: .75rem; }
.beta-copy { max-width: 900px; line-height: 1.7; }
.beta-copy li { margin: 7px 0; color: #c9d2e1; }
.danger-zone { margin-top: 18px; border-color: rgba(255,107,107,.28); }
.confirm-input { color: var(--text); background: #0e131d; border: 1px solid var(--line); border-radius: 10px; padding: 9px 11px; }
@media (max-width: 760px) { .beta-banner { justify-content: flex-start; } .app-footer { flex-direction: column; } }
.error-request-id { margin: 18px 0; color: var(--muted); font-size: .72rem; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.pwa-install { display: inline; border: 0; background: transparent; color: var(--muted); padding: 0; font: inherit; font-size: .76rem; cursor: pointer; }
.pwa-install.is-ready { color: var(--text); }
.pwa-install:hover { color: var(--text); }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }

/* Admin control center */
.admin-tabs { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 18px; padding:8px; border:1px solid var(--border); background:rgba(255,255,255,.025); border-radius:14px; }
.admin-tabs a { color:var(--muted); text-decoration:none; font-weight:800; font-size:.82rem; padding:9px 12px; border-radius:9px; }
.admin-tabs a:hover,.admin-tabs a.active { color:var(--text); background:rgba(255,255,255,.07); }
.admin-stats { grid-template-columns:repeat(6,minmax(0,1fr)); }
.admin-columns { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(300px,.75fr); gap:18px; margin-top:18px; }
.admin-list { display:flex; flex-direction:column; gap:2px; }
.admin-list-row { display:flex; gap:12px; align-items:center; min-width:0; padding:12px 8px; border-bottom:1px solid var(--border); color:var(--text); text-decoration:none; }
.admin-list-row:last-child { border-bottom:0; }
a.admin-list-row:hover { background:rgba(255,255,255,.025); }
.admin-list-row .grow { flex:1; min-width:0; }
.admin-list-row strong,.admin-list-row small { display:block; }
.admin-list-row small { color:var(--muted); margin-top:4px; line-height:1.35; }
.issue-dot { width:9px; height:9px; border-radius:999px; flex:0 0 auto; background:#718096; box-shadow:0 0 0 4px rgba(255,255,255,.03); }
.priority-critical { background:#ff4d5e; }.priority-high { background:#ff9f43; }.priority-normal { background:#66a3ff; }.priority-low { background:#768399; }
.status-pill { display:inline-flex; align-items:center; border-radius:999px; padding:5px 8px; font-size:.67rem; font-weight:900; letter-spacing:.07em; background:rgba(255,255,255,.07); white-space:nowrap; }
.status-new { color:#72a7ff; }.status-investigating { color:#f5c451; }.status-fixed { color:#58d68d; }.status-closed { color:#9ba5b5; }
.admin-filterbar { display:flex; gap:10px; align-items:center; margin-bottom:18px; padding:12px; }
.admin-filterbar .search { flex:1; min-width:220px; }
.admin-filterbar select,.admin-form select,.admin-form textarea { background:#0c1016; border:1px solid var(--border); color:var(--text); border-radius:10px; padding:10px 12px; }
.admin-form { display:grid; gap:14px; }.admin-form label { display:grid; gap:7px; color:var(--muted); font-size:.82rem; font-weight:800; }.admin-form textarea { resize:vertical; width:100%; }
.issue-meta-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:18px; }
.issue-meta-grid div { padding:12px; border:1px solid var(--border); border-radius:12px; background:rgba(255,255,255,.02); min-width:0; }
.issue-meta-grid span,.issue-meta-grid strong { display:block; }.issue-meta-grid span { color:var(--muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; }.issue-meta-grid strong { margin-top:5px; overflow-wrap:anywhere; }
.mono { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.78rem; }
.admin-avatar { width:38px; height:38px; object-fit:cover; border-radius:50%; }
.admin-pagination { margin-top:16px; }
.admin-health-line { display:flex; justify-content:space-between; gap:20px; padding:10px 0; border-bottom:1px solid var(--border); }.admin-health-line:last-of-type { border-bottom:0; }
.log-box { max-height:390px; overflow:auto; border:1px solid var(--border); border-radius:12px; background:#080b10; padding:12px; }.log-box code { display:block; color:#c7ced8; font-size:.72rem; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere; padding:4px 0; }
.admin-toggle { display:flex!important; grid-template-columns:none!important; align-items:center; gap:10px!important; color:var(--text)!important; }.admin-toggle input { width:18px; height:18px; }
.admin-operations { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.admin-operations form,.admin-operations button { width:100%; }
.command-output { white-space:pre-wrap; max-height:320px; overflow:auto; font-size:.78rem; color:#cbd4df; }
@media(max-width:1100px){.admin-stats{grid-template-columns:repeat(3,minmax(0,1fr));}.admin-columns{grid-template-columns:1fr;}}
@media(max-width:720px){.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr));}.admin-filterbar{align-items:stretch;flex-direction:column}.admin-filterbar>*{width:100%}.issue-meta-grid{grid-template-columns:1fr}.admin-operations{grid-template-columns:1fr}}

/* RideGrid brand v1 */
.brand-mark-image { flex: 0 0 auto; box-shadow: 0 8px 22px rgba(0,0,0,.28); }
.brand-mark-image img { transform: scale(1.04); }
.brand > span:last-child strong,
.landing-brand strong { letter-spacing: -.02em; }
.landing-wordmark { display:flex; align-items:center; gap:18px; margin:0 0 24px; width:max-content; max-width:100%; }
.landing-wordmark > img { width:72px; height:72px; border-radius:17px; flex:0 0 auto; box-shadow:0 12px 38px rgba(0,0,0,.24); }
.landing-wordmark-copy { min-width:0; }
.landing-wordmark-name { display:flex; align-items:baseline; line-height:.92; letter-spacing:.12em; white-space:nowrap; font-weight:900; font-size:clamp(1.55rem,3vw,2.6rem); color:var(--text); }
.landing-wordmark-name b { color:var(--brand); font:inherit; }
.landing-wordmark-name small { margin-left:.12em; color:var(--text); font-size:.42em; letter-spacing:0; font-weight:800; }
.landing-wordmark-tagline { display:flex; align-items:center; gap:10px; margin-top:9px; color:var(--muted); font-size:.7rem; letter-spacing:.22em; font-weight:700; white-space:nowrap; }
.landing-wordmark-tagline i { display:block; width:30px; height:2px; background:var(--brand); border-radius:99px; opacity:.9; }
.landing-brand-eyebrow { margin-top: 0; }
.error-brand-mark { width:58px; height:58px; border-radius:15px; margin:0 auto 12px; display:block; }
.app-footer > span::before { content:'RG'; display:inline-grid; place-items:center; width:22px; height:22px; margin-right:8px; border-radius:7px; background:#17191f; color:#ff1e1e; border:1px solid rgba(255,255,255,.08); font-size:.62rem; font-weight:950; vertical-align:middle; }
@media (max-width:760px){ .landing-wordmark{gap:13px;margin-bottom:18px}.landing-wordmark>img{width:58px;height:58px;border-radius:14px}.landing-wordmark-tagline{font-size:.58rem;letter-spacing:.15em;gap:7px}.landing-wordmark-tagline i{width:20px}.brand-mark{width:42px;height:42px}.brand small{max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} }

/* --------------------------------------------------------------------------
   RideGrid UI consistency pass
   -------------------------------------------------------------------------- */
button,
input,
select,
textarea {
    font: inherit;
}

button,
.button,
.primary-button,
.ghost-button,
.danger-button,
.filter-button {
    transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.button,
.primary-button {
    appearance: none;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 11px;
    background: var(--accent);
    color: #fff;
    font-family: inherit;
    font-weight: 800;
    line-height: 1.1;
    text-align: center;
    box-shadow: 0 8px 24px rgba(255,30,30,.12);
}

.button:hover,
.primary-button:hover {
    background: var(--accent-2);
    border-color: rgba(255,255,255,.14);
    box-shadow: 0 10px 28px rgba(255,30,30,.2);
}

.button:active,
.primary-button:active,
.ghost-button:active,
.danger-button:active,
.filter-button:active {
    transform: translateY(1px);
}

button:focus-visible,
.button:focus-visible,
.primary-button:focus-visible,
.ghost-button:focus-visible,
.danger-button:focus-visible,
.filter-button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
a:focus-visible {
    outline: 2px solid rgba(255,74,74,.92);
    outline-offset: 3px;
}

button:disabled,
.button:disabled,
.primary-button:disabled,
.ghost-button:disabled,
.danger-button:disabled {
    cursor: not-allowed;
    opacity: .48;
    transform: none;
    box-shadow: none;
}

input[type="text"],
input[type="email"],
input[type="number"],
input[type="search"],
input[type="url"],
input[type="password"],
input[type="date"],
input[type="time"],
select,
textarea,
.search,
.filter-select {
    min-height: 42px;
    border: 1px solid #303a4b;
    border-radius: 10px;
    background: #0d141d;
    color: var(--text);
    padding: 9px 11px;
    font-family: inherit;
    line-height: 1.25;
    outline: none;
    transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

input::placeholder,
textarea::placeholder {
    color: #718097;
    opacity: 1;
}

input[type="text"]:hover,
input[type="email"]:hover,
input[type="number"]:hover,
input[type="search"]:hover,
input[type="url"]:hover,
input[type="password"]:hover,
input[type="date"]:hover,
input[type="time"]:hover,
select:hover,
textarea:hover,
.search:hover,
.filter-select:hover {
    border-color: #465167;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="date"]:focus,
input[type="time"]:focus,
select:focus,
textarea:focus,
.search:focus,
.filter-select:focus {
    border-color: rgba(255,74,74,.72);
    box-shadow: 0 0 0 3px rgba(255,30,30,.11);
    background: #101721;
}

select {
    color-scheme: dark;
    cursor: pointer;
}

input[type="checkbox"] {
    appearance: none;
    width: 18px;
    height: 18px;
    min-width: 18px;
    margin: 0;
    border: 1px solid #465167;
    border-radius: 5px;
    background: #0d141d;
    display: inline-grid;
    place-content: center;
    vertical-align: -3px;
    cursor: pointer;
    transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}

input[type="checkbox"]::after {
    content: "";
    width: 9px;
    height: 5px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg) scale(0);
    transform-origin: center;
    margin-top: -2px;
    transition: transform .12s ease;
}

input[type="checkbox"]:hover {
    border-color: #6a768d;
}

input[type="checkbox"]:checked {
    background: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(255,30,30,.1);
}

input[type="checkbox"]:checked::after {
    transform: rotate(-45deg) scale(1);
}

.preference-form {
    gap: 13px;
}

.preference-form > label:not(.input-line) {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 24px;
    color: #c3d1e4;
    cursor: pointer;
}

.preference-form .input-line {
    grid-template-columns: minmax(120px, 1fr) 100px auto;
    min-height: 44px;
    color: #c3d1e4;
}

.preference-form input[type="number"],
.preference-form select {
    width: 100%;
    min-height: 40px;
}

.preference-form .button {
    width: 100%;
    min-height: 42px;
    margin-top: 1px;
}

/* Standby history chart */
.wait-chart-wrap {
    width: 100%;
    overflow: hidden;
    border-radius: 12px;
}

.wait-chart {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

.chart-grid-line {
    stroke: rgba(149,160,181,.13);
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
}

.chart-axis-label {
    fill: #95a0b5;
    color: #95a0b5;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 12px;
    font-weight: 600;
}

.chart-line {
    fill: none;
    stroke: var(--accent);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
    filter: drop-shadow(0 2px 5px rgba(255,30,30,.2));
}

.chart-point {
    fill: #0f151e;
    stroke: var(--accent-2);
    stroke-width: 3;
    vector-effect: non-scaling-stroke;
}

.chart-legend {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 12px;
    margin-top: 4px;
    padding: 0 2px;
    color: var(--muted);
    font-size: .76rem;
    font-weight: 600;
}

.chart-legend span:nth-child(2) {
    text-align: center;
    color: #748198;
}

.chart-legend span:last-child {
    text-align: right;
}

@media (max-width: 600px) {
    .preference-form .input-line {
        grid-template-columns: 1fr 96px auto;
    }

    .wait-chart {
        min-width: 620px;
    }

    .wait-chart-wrap {
        overflow-x: auto;
        padding-bottom: 5px;
    }
}

/* RideGrid installable web app */
.pwa-install-card{position:fixed;z-index:1200;left:50%;bottom:max(18px,env(safe-area-inset-bottom));width:min(620px,calc(100% - 28px));transform:translate(-50%,24px);opacity:0;pointer-events:none;display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px;border:1px solid rgba(255,255,255,.11);border-radius:18px;background:rgba(20,21,27,.96);box-shadow:0 24px 70px rgba(0,0,0,.45);backdrop-filter:blur(18px);transition:opacity .18s ease,transform .18s ease}.pwa-install-card.is-visible{opacity:1;transform:translate(-50%,0);pointer-events:auto}.pwa-install-card>img{width:54px;height:54px;border-radius:14px}.pwa-install-copy{min-width:0;display:grid;gap:3px}.pwa-install-copy strong{font-size:.92rem}.pwa-install-copy span{color:var(--muted);font-size:.78rem;line-height:1.4}.pwa-install-actions{display:flex;align-items:center;gap:8px}.pwa-install-actions button{white-space:nowrap}.pwa-install-primary{border:0;border-radius:10px;background:var(--accent,#ff1e1e);color:white;padding:9px 12px;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer}.pwa-install-dismiss{border:0;background:transparent;color:var(--muted);padding:9px 6px;font:inherit;font-size:.74rem;cursor:pointer}.pwa-install-dismiss:hover{color:var(--text)}
.pwa-standalone body{padding-top:env(safe-area-inset-top)}.pwa-standalone .sidebar{padding-bottom:max(18px,env(safe-area-inset-bottom))}.pwa-standalone .main-content{padding-bottom:max(18px,env(safe-area-inset-bottom))}
@media(max-width:620px){.pwa-install-card{grid-template-columns:46px minmax(0,1fr);padding:13px}.pwa-install-card>img{width:46px;height:46px;border-radius:12px}.pwa-install-actions{grid-column:1/-1;justify-content:flex-end}.pwa-install-primary{padding:10px 16px}}
\n\n/* Persistent RideGrid PWA install entry points */
.pwa-nav-install {
    width: 100%;
    padding: 12px 14px;
    border: 1px dashed rgba(255,255,255,.12);
    border-radius: 12px;
    background: rgba(255,30,30,.035);
    color: var(--muted);
    font: inherit;
    font-weight: 800;
    text-align: left;
    cursor: pointer;
    transition: color .16s ease, border-color .16s ease, background-color .16s ease;
}
.pwa-nav-install:hover,
.pwa-nav-install.is-ready {
    color: var(--text);
    border-color: rgba(255,30,30,.34);
    background: rgba(255,30,30,.075);
}
.pwa-profile-card { display: grid; gap: 12px; }
.pwa-status {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 10px;
    border: 1px solid var(--border);
    border-radius: 999px;
    color: var(--muted);
    font-size: .74rem;
    font-weight: 800;
}
.pwa-status::before {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #7f8ca0;
}
.pwa-status.is-installed { color: #a9e8bf; border-color: rgba(92,201,128,.24); }
.pwa-status.is-installed::before { background: #5cc980; }
.pwa-standalone [data-pwa-install] { display: none !important; }
@media (max-width:760px) {
    .pwa-nav-install { min-width: 132px; text-align: center; font-size: .8rem; padding: 9px; }
}
