:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#060a14;--bg-raised:#0a1020;--bg-deep:#04070f;--surface:#0f182c;--surface-2:#15213b;--surface-3:#1e2d4d;--line:#24365c;--line-soft:#172440;--text:#e9eefc;--text-muted:#8e9fc6;--text-faint:#5b6b92;--accent:#4d8dff;--accent-strong:#2f72ff;--accent-ink:#020818;--accent-soft:#4d8dff26;--accent-line:#4d8dff73;--neon:#19f0ff;--neon-ink:#001a1c;--neon-soft:#19f0ff1f;--neon-line:#19f0ff73;--neon-glow:#19f0ff73;--warn:#ffb547;--warn-ink:#2a1800;--warn-soft:#ffb54724;--warn-line:#ffb54752;--danger:#ff5c7a;--danger-ink:#2a0610;--danger-soft:#ff5c7a24;--danger-line:#ff5c7a52;--info:var(--accent);--info-soft:var(--accent-soft);--info-line:var(--accent-line);--success:var(--neon);--success-soft:var(--neon-soft);--z1:#8e9fc6;--z2:#4d8dff;--z3:#19f0ff;--z4:#ffd84a;--z5:#ff9a3c;--z6:#ff5c7a;--z7:#b07cff;--on-light:#0a0f1c;--radius-s:8px;--radius-m:14px;--radius-l:22px;--tap:44px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-numeric:"SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--glass:#080d1abd;--glass-strong:#0a1020f5;--glass-line:#8caaff1f;--scrim:#04070fb3;--hairline:#ffffff14;--shadow:0 12px 34px #00000a80;--glow:0 0 0 1px #4d8dff59, 0 8px 30px #2f72ff40;--neon-shadow:0 0 22px var(--neon-glow)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:radial-gradient(1200px 600px at 85% -10%, #2f72ff24, transparent 60%), radial-gradient(900px 500px at -10% 110%, #19f0ff0d, transparent 60%), var(--bg);color:var(--text);font-family:var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;background-attachment:fixed;margin:0;font-size:16px;line-height:1.5}h1,h2,h3{letter-spacing:-.01em;margin:0;line-height:1.2}h1{font-size:1.75rem;font-weight:750}h2{font-size:1.2rem;font-weight:700}h3{font-size:1rem;font-weight:650}p{margin:0}a{color:var(--accent);text-underline-offset:3px}code{background:var(--surface-2);word-break:break-all;border-radius:6px;padding:.1em .4em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--text-muted)}.small{font-size:.875rem}.clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}button{font:inherit;color:inherit}.link-btn{color:var(--accent);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;min-height:24px;padding:0;text-decoration:underline}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.btn{min-height:var(--tap);border-radius:var(--radius-m);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:650;text-decoration:none;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{border-radius:var(--radius-s);min-height:36px;padding:0 12px;font-size:.9rem}.btn-lg{min-height:54px;padding:0 26px;font-size:1.05rem}.btn-block{width:100%}.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:var(--glow)}.btn-primary:hover:not(:disabled){background:var(--accent-strong);color:#fff}.btn-secondary{background:var(--surface-2);border-color:var(--line);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface);border-color:var(--text-faint)}.btn-ghost{color:var(--text-muted);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface);color:var(--text)}.btn-neon{background:var(--neon);color:var(--neon-ink);box-shadow:0 0 0 1px var(--neon), var(--neon-shadow)}a.btn-neon,a.btn-neon:visited{color:var(--neon-ink)}.btn-neon.is-breathing{animation:2.4s ease-in-out infinite neon-breathe}@keyframes neon-breathe{50%{box-shadow:0 0 0 1px var(--neon), 0 0 34px var(--neon-glow)}}.btn-danger{background:var(--danger);color:var(--danger-ink)}a.btn-primary,a.btn-primary:visited{color:var(--accent-ink)}a.btn-secondary,a.btn-ghost{color:var(--text)}.icon-btn{width:var(--tap);height:var(--tap);border:1px solid var(--glass-line);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:50%;flex:none;place-items:center;transition:background .15s;display:inline-grid;position:relative}.icon-btn:hover:not(:disabled){background:var(--surface-3)}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn.is-active{background:var(--accent);color:var(--accent-ink);border-color:#0000}.icon-btn.is-danger{color:var(--danger)}.icon-btn-badge{background:var(--danger);min-width:18px;height:18px;color:var(--danger-ink);text-align:center;border-radius:9px;padding:0 4px;font-size:11px;font-weight:800;line-height:18px;position:absolute;top:-3px;right:-3px}.form{flex-direction:column;gap:16px;display:flex}.form-row{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;display:grid}.form-row-end{align-items:end}.form-aside-link{align-self:flex-end;margin-top:-8px;font-size:.9rem;font-weight:600;text-decoration:none}.form-aside-link:hover{text-decoration:underline}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.field{border:0;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;display:flex}.field>label,.field>legend,.field-label{color:var(--text-muted);padding:0;font-size:.9rem;font-weight:600}.field-note{color:var(--text-muted);font-size:.85rem}.field-error{color:var(--danger)}.input{width:100%;min-height:var(--tap);background:var(--bg-raised);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-s);font:inherit;font-variant-numeric:tabular-nums;padding:10px 14px}.input::placeholder{color:var(--text-faint)}.input:hover{border-color:var(--text-faint)}.input:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.has-error .input{border-color:var(--danger)}.textarea{resize:vertical;min-height:90px}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2393aab0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:40px}.search{max-width:420px}.check{min-height:var(--tap);cursor:pointer;align-items:center;gap:12px;display:flex}.check input{width:22px;height:22px;accent-color:var(--accent)}input[type=range]{width:100%;height:var(--tap);accent-color:var(--accent);background:0 0}.slider-row{grid-template-columns:auto 1fr auto;align-items:center;gap:14px;display:grid}.slider-row:not(:has(label)){grid-template-columns:1fr auto}.slider-value{text-align:right;min-width:56px;font-weight:700}.card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-l);flex-direction:column;gap:14px;padding:22px;display:flex}.card>h2{margin-bottom:2px}.note{border-radius:var(--radius-m);border:1px solid #0000;align-items:flex-start;gap:12px;padding:12px 14px;font-size:.95rem;display:flex}.note>svg{flex:none;margin-top:2px}.note-body{flex:1;min-width:0}.note-info{background:var(--info-soft);color:var(--text);border-color:var(--info-line)}.note-warn{background:var(--warn-soft);color:var(--text);border-color:var(--warn-line)}.note-danger{background:var(--danger-soft);color:var(--text);border-color:var(--danger-line)}.note a,.note .link-btn{color:inherit}.badge{background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;padding:2px 10px;font-size:.8rem;font-weight:650;display:inline-flex}.badge-accent{background:var(--accent-soft);color:var(--accent)}.badge-live{background:var(--neon-soft);color:var(--neon);box-shadow:inset 0 0 0 1px var(--neon-line)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-info{background:var(--info-soft);color:var(--info)}.avatar{color:var(--on-light);border:2px solid var(--surface);border-radius:50%;flex:none;place-items:center;font-weight:800;line-height:1;display:inline-grid}.avatar-stack{align-items:center;display:inline-flex}.avatar-stack .avatar+.avatar{margin-left:-8px}.avatar-more{color:var(--text-muted);margin-left:6px;font-size:.8rem}.segmented{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-m);align-self:flex-start;gap:2px;padding:3px;display:inline-flex}.segmented button{min-height:38px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:11px;padding:0 16px;font-weight:650}.segmented button.is-active{background:var(--surface-3);color:var(--text)}.table{border-collapse:collapse;width:100%;font-size:.95rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--line-soft);padding:10px 8px}.table th{color:var(--text-muted);font-size:.85rem;font-weight:600}.table tr.is-self td{background:var(--accent-soft)}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin;display:inline-block}.spinner-sm{border-width:2px;width:18px;height:18px}.spinner-wrap{place-items:center;padding:28px;display:grid}@keyframes spin{to{transform:rotate(360deg)}}.splash{height:100%;color:var(--accent);place-items:center;display:grid}.empty{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:10px;padding:32px 16px;display:flex}.empty h3{color:var(--text)}.empty p{max-width:44ch}.progress{background:var(--surface-2);border-radius:4px;height:8px;overflow:hidden}.progress-fill{background:var(--accent);height:100%}.stat-value{letter-spacing:-.02em;font-size:1.9rem;font-weight:800;line-height:1.1}.stat-unit{color:var(--text-muted);margin-left:4px;font-size:.9rem;font-weight:600}.stat-label{color:var(--text-muted);font-size:.85rem}.modal-backdrop{z-index:100;background:var(--scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);width:min(480px,100%);max-height:90vh;box-shadow:var(--shadow);flex-direction:column;gap:14px;padding:24px;animation:.14s ease-out pop;display:flex;overflow:auto}.modal:focus{outline:none}.modal-body{flex-direction:column;gap:12px;display:flex}.modal-footer{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}@keyframes pop{0%{opacity:0;transform:scale(.97)}}.toast-region{left:50%;bottom:calc(var(--safe-bottom) + 84px);z-index:200;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:min(92vw,420px);display:flex;position:fixed;transform:translate(-50%)}.toast{border-radius:var(--radius-m);background:var(--surface-3);border:1px solid var(--line);box-shadow:var(--shadow);align-items:center;gap:10px;padding:12px 16px;font-weight:600;display:flex}.toast-ok svg{color:var(--success)}.toast-error svg{color:var(--danger)}@media (min-width:900px){.toast-region{bottom:28px}}.push-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.switch{border:1px solid var(--line);background:var(--surface-3);cursor:pointer;border-radius:999px;flex:none;width:52px;height:30px;padding:0;position:relative}.switch:disabled{opacity:.45;cursor:not-allowed}.switch-knob{background:var(--text);border-radius:50%;width:22px;height:22px;transition:transform .15s;position:absolute;top:3px;left:3px}.switch.is-on{background:var(--accent);border-color:var(--accent)}.switch.is-on .switch-knob{background:var(--accent-ink);transform:translate(22px)}.shell{grid-template-columns:1fr;min-height:100%;display:grid}.sidebar{display:none}.main{min-width:0;padding-bottom:calc(var(--safe-bottom) + 76px)}.bottom-nav{z-index:50;padding:6px calc(var(--safe-right) + 6px) calc(var(--safe-bottom) + 6px) calc(var(--safe-left) + 6px);background:var(--glass-strong);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line-soft);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-link{border-radius:var(--radius-m);min-height:56px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.72rem;font-weight:650;text-decoration:none;display:flex}.bottom-link.active{color:var(--accent)}@media (min-width:900px){.shell{grid-template-columns:248px 1fr}.sidebar{height:100vh;padding:calc(var(--safe-top) + 24px) 16px 20px calc(var(--safe-left) + 16px);background:var(--bg-raised);border-right:1px solid var(--line-soft);flex-direction:column;gap:24px;display:flex;position:sticky;top:0}.bottom-nav{display:none}.main{padding-bottom:40px}}.brand{color:var(--accent);letter-spacing:-.02em;align-items:center;gap:10px;font-size:1.25rem;font-weight:800;display:flex}.brand span{color:var(--text)}.brand-lg{font-size:1.8rem}.sidebar-nav{flex-direction:column;gap:4px;display:flex}.nav-link{min-height:var(--tap);border-radius:var(--radius-m);color:var(--text-muted);align-items:center;gap:14px;padding:0 14px;font-weight:650;text-decoration:none;display:flex}.nav-link:hover{background:var(--surface);color:var(--text)}.nav-link.active{background:var(--accent-soft);color:var(--accent)}.sidebar-foot{flex-direction:column;gap:12px;margin-top:auto;display:flex}.device-chip{border-radius:var(--radius-m);border:1px dashed var(--line);min-height:40px;color:var(--text-muted);align-items:center;gap:8px;padding:0 12px;font-size:.88rem;text-decoration:none;display:flex;overflow:hidden}.device-chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.device-chip.is-ok{border-style:solid;border-color:var(--neon-line);color:var(--neon)}.sidebar-user{align-items:center;gap:10px;display:flex}.sidebar-user-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.sidebar-user .icon-btn{color:var(--text-muted);background:0 0;border-color:#0000}.page{max-width:1080px;padding:calc(var(--safe-top) + 24px) calc(var(--safe-right) + 18px) 24px calc(var(--safe-left) + 18px);flex-direction:column;gap:18px;margin:0 auto;display:flex}.page-narrow{max-width:720px}.page-wide{max-width:1320px}.page-header{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.page-header-text{flex-direction:column;flex:1;gap:4px;min-width:220px;display:flex}.page-header-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.back-link{color:var(--text-muted);flex-basis:100%;align-items:center;gap:4px;min-height:32px;font-weight:600;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--text)}.stack{flex-direction:column;gap:10px;display:flex}.button-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sep{background:var(--text-faint);vertical-align:middle;border-radius:50%;width:4px;height:4px;margin:0 10px;display:inline-block}.detail-grid{grid-template-columns:1fr;align-items:start;gap:18px;display:grid}@media (min-width:980px){.detail-grid{grid-template-columns:minmax(0,1fr) 340px}}.detail-main,.detail-side{flex-direction:column;gap:18px;min-width:0;display:flex}.detail-facts{flex-wrap:wrap;gap:28px;display:flex}.detail-facts>div{flex-direction:column;gap:2px;display:flex}.detail-role{align-items:center;gap:6px;display:inline-flex}.detail-role svg{color:var(--text-muted)}.detail-route-link{color:var(--text);font-size:1.1rem;font-weight:700}.detail-description{white-space:pre-line;max-width:70ch}.auth{grid-template-columns:1fr;min-height:100%;display:grid}.auth-hero{padding:calc(var(--safe-top) + 28px) 24px 8px;flex-direction:column;gap:14px;min-height:180px;display:flex;position:relative;overflow:hidden}.auth-tagline{letter-spacing:-.03em;z-index:1;max-width:14ch;font-size:clamp(1.4rem,4vw,2.6rem);font-weight:800;line-height:1.1;position:relative}.hero-profile{opacity:.55;width:100%;height:46%;position:absolute;bottom:0;left:0;right:0}.auth-panel{padding:24px 18px calc(var(--safe-bottom) + 32px);place-items:center;display:grid}.auth-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-l);width:min(440px,100%);box-shadow:var(--shadow);flex-direction:column;gap:16px;padding:28px;display:flex}.auth-footer{color:var(--text-muted);text-align:center}.join-club{font-size:1.25rem;font-weight:700}@media (min-width:900px){.auth{grid-template-columns:1.15fr 1fr}.auth-hero{min-height:100vh;padding:48px 56px}.auth-tagline{margin-top:12vh}.hero-profile{opacity:.85;height:52%}}.next-event{background:linear-gradient(135deg, #2f72ff38, transparent 55%), var(--surface);border-color:var(--accent-line)}.next-event-top{flex-wrap:wrap;justify-content:space-between;gap:18px;display:flex}.next-event h2{margin:2px 0 6px;font-size:clamp(1.4rem,3vw,2rem)}.next-event-meta{color:var(--text-muted)}.countdown{text-align:right}.countdown-value{letter-spacing:-.03em;color:var(--text);font-size:clamp(2rem,6vw,3.4rem);font-weight:800;line-height:1}.countdown-value.is-soon{color:var(--neon);text-shadow:0 0 18px var(--neon-glow)}.countdown-label{color:var(--text-muted);font-size:.9rem}.next-event-actions{flex-wrap:wrap;gap:10px;display:flex}.home-grid{grid-template-columns:1fr;gap:18px;display:grid}@media (min-width:900px){.home-grid{grid-template-columns:1.3fr 1fr;align-items:start}}.home-tiles{grid-template-columns:1fr;gap:12px;display:grid}.tile-link{border-radius:var(--radius-l);background:var(--surface);border:1px solid var(--line-soft);color:var(--text);flex-direction:column;gap:4px;padding:18px;text-decoration:none;display:flex}.tile-link svg{color:var(--accent);margin-bottom:4px}.tile-link:hover{border-color:var(--text-faint)}.live-list{flex-direction:column;gap:8px;display:flex}.live-row{border-radius:var(--radius-m);background:var(--surface-2);min-height:56px;color:var(--text);align-items:center;gap:12px;padding:8px 12px;text-decoration:none;display:flex}.live-row-main{flex-direction:column;flex:1;min-width:0;display:flex}.live-dot{background:var(--neon);width:10px;height:10px;box-shadow:0 0 0 0 var(--neon-glow);border-radius:50%;animation:1.8s infinite pulse}@keyframes pulse{70%{box-shadow:0 0 0 9px #0000}to{box-shadow:0 0 #0000}}.live-join{color:var(--neon);font-weight:700}.event-card,.route-row{border-radius:var(--radius-l);background:var(--surface);border:1px solid var(--line-soft);color:var(--text);justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;text-decoration:none;transition:border-color .15s;display:flex}.event-card:hover,.route-row:hover{border-color:var(--text-faint)}.event-card-main,.route-row-main{flex-direction:column;gap:4px;min-width:0;display:flex}.event-card-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.event-card-when{color:var(--accent);font-weight:650}.event-card-meta{color:var(--text-muted);flex-wrap:wrap;gap:4px 16px;font-size:.92rem;display:flex}.event-card-meta span,.route-stats span{align-items:center;gap:5px;display:inline-flex}.event-card-side,.route-row-side{flex-direction:column;flex:none;align-items:flex-end;gap:8px;display:flex}.route-row-side{color:var(--text-faint);flex-direction:row;align-items:center}.route-stats{color:var(--text-muted);flex-wrap:wrap;gap:4px 16px;font-size:.92rem;display:inline-flex}.route-picker{gap:8px}.route-picker-list{flex-direction:column;gap:6px;max-height:280px;padding:2px;display:flex;overflow:auto}.route-option{min-height:var(--tap);border-radius:var(--radius-m);border:1px solid var(--line);background:var(--bg-raised);cursor:pointer;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:8px 14px;display:grid}.route-option input{accent-color:var(--accent);width:20px;height:20px}.route-option.is-selected{border-color:var(--accent);background:var(--accent-soft)}.route-option-name{font-weight:650}@media (max-width:560px){.route-option{grid-template-columns:auto 1fr}.route-option .route-stats{grid-column:2}}.rsvp{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.rsvp-btn{border-radius:var(--radius-m);border:1px solid var(--line);background:var(--bg-raised);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:64px;font-weight:650;display:flex}.rsvp-btn.is-active.rsvp-yes{background:var(--accent);color:var(--accent-ink);border-color:#0000}.rsvp-btn.is-active.rsvp-maybe{background:var(--warn);color:var(--warn-ink);border-color:#0000}.rsvp-btn.is-active.rsvp-no{background:var(--surface-3);border-color:var(--text-faint)}.participant-group{flex-direction:column;gap:6px;display:flex}.participant-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.participant-list li{align-items:center;gap:10px;display:flex}.participant-list li .badge{margin-left:auto}.route-overview{flex-direction:column;gap:14px;display:flex}.preview-map{border-radius:var(--radius-m);background:var(--surface-2);height:320px;position:relative;overflow:hidden}.preview-map-tall{height:min(60vh,520px)}.preview-map-canvas{position:absolute;inset:0}.preview-map-controls{z-index:2;position:absolute;top:10px;right:10px}.map-loading{place-items:center;height:100%;min-height:200px;display:grid}.map-fallback{text-align:center;color:var(--text-muted);background:var(--surface-2);place-items:center;padding:24px;display:grid;position:absolute;inset:0}.route-thumb{color:var(--accent)}.planner{grid-template-columns:1fr;gap:16px;display:grid}.planner-map{border-radius:var(--radius-l);background:var(--surface-2);height:52vh;min-height:320px;overflow:hidden}@media (min-width:980px){.planner{grid-template-columns:minmax(0,1fr) 340px}.planner-map{height:calc(100vh - 190px)}}.planner-count{font-weight:700}.waypoint{border:3px solid var(--text);background:var(--bg);width:30px;height:30px;color:var(--text);cursor:grab;box-shadow:var(--shadow);border-radius:50%;place-items:center;padding:0;font-size:12px;font-weight:800;display:grid}.waypoint.is-start{background:var(--accent);color:var(--accent-ink)}.waypoint.is-end{background:var(--text);color:var(--bg);border-color:var(--bg)}.dropzone{text-align:center;border-style:dashed;border-color:var(--line);color:var(--text-muted);align-items:center}.device-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.device-head h2{align-items:center;gap:10px;display:flex}.readouts{flex-wrap:wrap;gap:28px;display:flex}.readout-value{letter-spacing:-.03em;font-size:2.6rem;font-weight:800;line-height:1}.readout-label{color:var(--text-muted);font-size:.85rem}.toggle-list{flex-direction:column;display:flex}.sim-controls{border-radius:var(--radius-m);background:var(--bg-raised);border:1px solid var(--line-soft);flex-direction:column;gap:8px;padding:14px;display:flex}.sim-power{justify-content:space-between;align-items:center;gap:12px;display:flex}.sim-power-value{font-size:2rem;font-weight:800}.invite-list,.token-list,.ride-history{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.invite-row{border-top:1px solid var(--line-soft);flex-direction:column;gap:10px;padding:14px 0;display:flex}.invite-row-main{flex-direction:column;gap:4px;min-width:0;display:flex}.invite-url{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.token-list li{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.token-list li>div{flex-direction:column;min-width:0;display:flex}.token-secret{word-break:break-all;-webkit-user-select:all;user-select:all;padding:14px;font-size:.95rem;display:block}.ride-history li{border-top:1px solid var(--line-soft);grid-template-columns:1.2fr 1fr 1fr .8fr;gap:8px;padding:10px 0;display:grid}.color-picker{flex-wrap:wrap;gap:10px;display:flex}.color-swatch{width:44px;height:44px;color:var(--on-light);cursor:pointer;border:3px solid #0000;border-radius:50%;place-items:center;display:grid}.color-swatch.is-active{border-color:var(--text)}.cafe-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.thread-list{flex-direction:column;gap:12px;max-height:420px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.thread-msg{align-items:flex-start;gap:10px;display:flex}.thread-body{min-width:0}.thread-meta{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.thread-msg.is-mine .thread-meta strong{color:var(--accent)}.thread-text{overflow-wrap:anywhere;white-space:pre-wrap;margin:2px 0 0}.thread-form{gap:8px;display:flex}.export-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ride-history-actions{grid-column:1/-1}.connection-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.connection-row svg{color:var(--accent);vertical-align:-3px}.ride-boot{place-content:center;justify-items:center;gap:16px;min-height:100%;padding:24px;display:grid}.zone-1{--zone:var(--z1)}.zone-2{--zone:var(--z2)}.zone-3{--zone:var(--z3)}.zone-4{--zone:var(--z4)}.zone-5{--zone:var(--z5)}.zone-6{--zone:var(--z6)}.zone-7{--zone:var(--z7)}.ride{background:var(--bg-deep);padding:calc(var(--safe-top) + 10px) calc(var(--safe-right) + 12px) calc(var(--safe-bottom) + 10px) calc(var(--safe-left) + 12px);grid-template:"top top top""hud.side"minmax(0,1fr)"bottom bottom bottom"/minmax(290px,27vw) minmax(0,1fr) minmax(250px,24vw);gap:10px;display:grid;position:fixed;inset:0;overflow:hidden}.ride-top,.ride-hud,.ride-side,.ride-bottom{z-index:2;min-height:0;position:relative}.ride-top{grid-area:top}.ride-hud{flex-direction:column;grid-area:hud;align-self:start;gap:10px;display:flex}.ride-side{flex-direction:column;grid-area:side;align-self:start;gap:10px;max-height:100%;display:flex;overflow:auto}.ride-bottom{grid-area:bottom}.ride-map{z-index:0;position:absolute;inset:0}.ride-map-canvas{position:absolute;inset:0}.ride-map .maplibregl-ctrl-bottom-right{bottom:clamp(96px,22vh,170px);right:min(26vw,340px)}.ride-map .maplibregl-ctrl-attrib{background:var(--glass);color:var(--text-muted)}.ride-map .maplibregl-ctrl-attrib a{color:var(--text-muted)}.map-controls{z-index:3;top:calc(var(--safe-top) + 74px);align-items:center;gap:8px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.map-controls .segmented{background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-color:var(--glass-line)}.map-controls .icon-btn{background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.map-controls .icon-btn.is-active{background:var(--accent)}.glass,.ride-top,.hud,.board,.video-strip,.ride-bottom,.ride-sim{background:var(--glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-line)}.ride-top{border-radius:999px;align-items:center;gap:10px;padding:6px 8px;display:flex}.ride-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:1.05rem;font-weight:700;overflow:hidden}.ride-status{gap:6px;display:flex}.status-chip{background:var(--hairline);border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.status-chip.is-ok{color:var(--neon)}.status-chip.is-warn{color:var(--warn)}.status-chip.is-off{color:var(--text-faint)}.ride-side-toggle{display:none}.ride-banner{z-index:6;top:calc(var(--safe-top) + 72px);background:var(--danger);color:var(--danger-ink);border-radius:999px;padding:8px 16px;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.ride-banner.is-warn{background:var(--warn);color:var(--warn-ink);top:calc(var(--safe-top) + 116px)}.hud{border-radius:var(--radius-l);flex-direction:column;gap:14px;padding:16px 18px;display:flex}.hud-power-main{align-items:baseline;gap:8px;display:flex}.hud-power-value{font-family:var(--font-numeric);letter-spacing:-.045em;color:var(--zone,var(--z1));font-size:clamp(64px,17vh,150px);font-weight:850;line-height:.9;transition:color .3s}.hud-power-unit{color:var(--text-muted);font-size:clamp(20px,4vh,34px);font-weight:700}.hud-zone-bar{background:#ffffff1a;border-radius:5px;height:10px;margin:10px 0 8px;position:relative}.hud-zone-fill{background:var(--zone,var(--z1));border-radius:5px;height:100%;transition:width .25s,background .3s}.hud-zone-ftp{background:#ffffffbf;width:2px;position:absolute;top:-3px;bottom:-3px;left:66.667%}.hud-power-sub{color:var(--text-muted);align-items:baseline;gap:6px;font-size:clamp(16px,3vh,24px);display:flex}.hud-power-sub strong{color:var(--text);font-size:1.35em;font-weight:800}.hud-zone-label{color:var(--zone);margin-left:auto;font-size:.8em}.hud-nosignal{color:var(--warn);font-weight:650}.hud-grid{grid-template-columns:1fr 1fr;gap:8px 14px;display:grid}.hud-metric{color:var(--text-muted);grid-template-columns:auto 1fr;grid-template-areas:"icon value""unit unit";align-items:center;column-gap:8px;display:grid}.hud-metric>svg{grid-area:icon}.hud-metric-value{font-family:var(--font-numeric);letter-spacing:-.03em;color:var(--text);grid-area:value;font-size:clamp(30px,6.4vh,56px);font-weight:800;line-height:1}.hud-metric-unit{grid-area:unit;padding-left:26px;font-size:.8rem}.hud-hr svg{color:var(--danger)}.hud-metric.is-steep .hud-metric-value{color:var(--z5)}.hud-progress{border-top:1px solid var(--glass-line);flex-wrap:wrap;align-items:baseline;gap:4px 16px;padding-top:10px;font-size:clamp(16px,3vh,24px);display:flex}.hud-time{align-items:center;gap:6px;font-size:1.25em;font-weight:800;display:flex}.hud-time svg{color:var(--text-muted)}.hud-lap{color:var(--accent);margin-left:auto;font-size:.85em;font-weight:700}.ride-sim{border-radius:var(--radius-l);padding:8px}.ride-sim .sim-controls{background:0 0;border:0;padding:6px}.ride-sim .sim-power-value{font-size:1.5rem}.board{border-radius:var(--radius-l);flex-direction:column;gap:8px;padding:12px;display:flex}.board-head{align-items:baseline;gap:10px;display:flex}.board-head h2{font-size:1.05rem}.board-head .link-btn{margin-left:auto;font-size:.85rem}.board-list{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.board-row{border-radius:10px;grid-template-columns:26px 12px minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:36px;padding:0 8px;font-size:clamp(14px,2.3vh,18px);display:grid}.board-row.is-self{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-line);font-weight:700}.board-row.is-idle{opacity:.5}.board-pos{color:var(--text-muted);text-align:right;font-weight:800}.board-dot{border:2px solid #ffffffb3;border-radius:50%;width:12px;height:12px}.board-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-wkg{font-weight:700}.board-wkg small{color:var(--text-muted);font-size:.7em;font-weight:500}.board-gap-time{text-align:right;min-width:52px;color:var(--text-muted);font-size:.9em}.board-idle{font-size:.8em}.board-row.is-finished .board-gap-time{color:var(--accent)}.board-gap{color:var(--text-faint);padding:0 8px 0 46px;font-size:.8rem}.board-empty{padding:4px 6px}.board-role{vertical-align:middle;border-radius:999px;align-items:center;gap:3px;margin-left:6px;padding:1px 6px;font-size:.7em;font-weight:700;display:inline-flex}.board-role.is-leader{color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.board-role.is-sweeper{color:var(--z4);box-shadow:inset 0 0 0 1px var(--z4)}.board-row.is-ride-leader .board-dot{box-shadow:0 0 0 2px var(--accent)}.board-row.is-sweeper .board-dot{box-shadow:0 0 0 2px var(--z4)}.ride-bottom{border-radius:var(--radius-l);padding:8px 14px 6px}.profile{flex-direction:column;gap:4px;margin:0;display:flex}.profile-stats{color:var(--text-muted);justify-content:space-between;gap:12px;font-size:.9rem;display:flex}.profile-stats strong{color:var(--text);font-size:1.1em}.profile-lap{color:var(--accent);font-weight:700}.profile-plot{background:#ffffff0a;border-radius:10px;height:150px;position:relative;overflow:hidden}.profile-compact .profile-plot{height:clamp(52px,11vh,92px)}.profile-plot svg{width:100%;height:100%;position:absolute;inset:0}.profile-behind{pointer-events:none;background:#04070f80;position:absolute;top:0;bottom:0;left:0}.profile-self-line{background:#fff;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.profile-dot{border:2px solid var(--bg);border-radius:50%;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;position:absolute}.profile-dot-self{background:var(--accent);border:3px solid #fff;width:16px;height:16px;margin:-8px 0 0 -8px}.profile-axis{color:#ffffffb3;text-shadow:0 1px 3px #000c;font-size:.7rem;position:absolute;left:8px}.profile-axis-max{top:4px}.profile-axis-min{bottom:4px}.ride-notices{z-index:15;left:50%;top:calc(var(--safe-top) + 130px);pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;transform:translate(-50%)}.ride-notice{background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-line);border-radius:999px;align-items:center;gap:10px;padding:10px 18px;font-size:1.05rem;font-weight:700;animation:.28s ease-out notice-in;display:flex}.ride-notice.is-mine{border-color:var(--accent-line)}.notice-fire svg{color:var(--z5)}.notice-rideon svg{color:var(--accent)}.notice-coffee svg{color:var(--z4)}.notice-wave svg{color:var(--info)}.notice-finished svg{color:var(--neon)}@keyframes notice-in{0%{opacity:0;transform:translateY(-10px)scale(.96)}}.chat{z-index:20;width:min(360px,100vw);padding:calc(var(--safe-top) + 12px) calc(var(--safe-right) + 14px) calc(var(--safe-bottom) + 12px) 14px;background:var(--glass-strong);border-left:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);flex-direction:column;gap:10px;animation:.2s ease-out slide-in;display:flex;position:absolute;top:0;bottom:0;right:0}@keyframes slide-in{0%{opacity:0;transform:translate(30px)}}.chat-head{justify-content:space-between;align-items:center;display:flex}.chat-reactions{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.reaction-btn{border-radius:var(--radius-m);border:1px solid var(--line);background:var(--surface-2);cursor:pointer;flex-direction:column;align-items:center;gap:2px;min-height:62px;padding:6px 2px;font-size:.75rem;font-weight:650;display:flex}.reaction-btn:active{background:var(--accent-soft)}.chat-log{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow:auto}.chat-msg{background:var(--surface-2);overflow-wrap:anywhere;border-radius:14px 14px 14px 4px;flex-direction:column;align-self:flex-start;max-width:85%;padding:8px 12px;display:flex}.chat-msg.is-mine{background:var(--accent-soft);border-radius:14px 14px 4px;align-self:flex-end}.chat-author{color:var(--accent);font-size:.75rem;font-weight:700}.chat-form{gap:8px;display:flex}.start-lobby{z-index:8;top:calc(var(--safe-top) + 72px);background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--radius-m);width:min(520px,100% - 28px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);align-items:center;gap:16px;padding:14px 16px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.start-lobby-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.start-lobby-text strong{font-size:1.1rem}.start-lobby-icon{color:var(--text-muted);flex:none}.start-countdown{z-index:8;pointer-events:none;text-shadow:0 4px 24px #0009;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.start-countdown-label{color:var(--text-muted);font-size:clamp(18px,3vh,28px);font-weight:700}.start-countdown-value{font-family:var(--font-numeric);color:var(--neon);text-shadow:0 0 40px var(--neon-glow);font-variant-numeric:tabular-nums;font-size:clamp(96px,26vh,240px);font-weight:900;line-height:1}.hud-hint{border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:.7em;font-weight:700;display:inline-flex}.hud-hint.is-fenced{color:var(--accent);background:var(--accent-soft)}.hud-hint.is-assist{color:var(--info);background:var(--info-soft)}.hud-hint.is-draft{color:var(--text);background:var(--hairline)}.lobby,.summary{z-index:30;padding:calc(var(--safe-top) + 12px) 14px calc(var(--safe-bottom) + 12px);background:var(--scrim);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;display:grid;position:absolute;inset:0;overflow:auto}.lobby-card,.summary-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);width:min(560px,100%);max-height:100%;box-shadow:var(--shadow);flex-direction:column;gap:16px;padding:26px;display:flex;overflow:auto}.lobby-card h2{font-size:1.6rem}.lobby-route{font-size:1.15rem;font-weight:700}.lobby-laps{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.stepper{align-items:center;gap:10px;display:inline-flex}.stepper strong{text-align:center;min-width:26px;font-size:1.3rem}.lobby-devices{flex-direction:column;gap:12px;display:flex}.summary-head{align-items:center;gap:16px;display:flex}.summary-head h2{color:var(--accent);font-size:1.8rem}.summary-thumb{flex:none;width:64px;height:64px}.summary-stats{grid-template-columns:repeat(2,1fr);gap:16px 12px;display:grid}@media (min-width:560px){.summary-stats{grid-template-columns:repeat(4,1fr)}}.summary-board h3{margin-bottom:8px}.summary-board ol{flex-direction:column;gap:3px;max-height:200px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.summary-board li{border-radius:10px;grid-template-columns:26px 12px 1fr auto;align-items:center;gap:8px;min-height:34px;padding:0 8px;display:grid}.summary-board li.is-self{background:var(--accent-soft);font-weight:700}.video-strip{border-radius:var(--radius-l);flex-direction:column;gap:8px;padding:10px;display:flex}.media-controls{gap:8px;display:flex}.video-strip-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.video-strip-more{background:var(--surface-2);color:var(--text-muted);border-radius:10px;place-items:center;min-height:60px;font-size:.85rem;display:grid}.tile{aspect-ratio:16/10;background:var(--surface-2);border-radius:10px;position:relative;overflow:hidden}.tile video{object-fit:cover;width:100%;height:100%;display:block}.tile video.is-mirrored{transform:scaleX(-1)}.tile-avatar{color:var(--on-light);place-items:center;font-size:1.4rem;font-weight:800;display:grid;position:absolute;inset:0}.tile-grid .tile-avatar{font-size:3rem}.tile-label{background:var(--scrim);border-radius:999px;align-items:center;gap:4px;max-width:calc(100% - 12px);padding:2px 8px;font-size:.75rem;font-weight:650;display:flex;position:absolute;bottom:6px;left:6px}.tile-label span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tile.is-speaking{box-shadow:0 0 0 3px var(--accent)}.video-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.tile-grid{border-radius:var(--radius-m)}.tile-grid .tile-label{padding:4px 12px;font-size:.9rem}@media (max-width:820px),(orientation:portrait) and (max-width:1000px){.ride{grid-template:"top""hud""."minmax(0,1fr)"bottom"/minmax(0,1fr);gap:8px}.ride-side-toggle{display:inline-grid}.ride-side{left:calc(var(--safe-left) + 12px);right:calc(var(--safe-right) + 12px);bottom:calc(var(--safe-bottom) + 120px);z-index:8;max-height:48vh;display:none;position:absolute}.show-side .ride-side{display:flex}.ride-bottom{padding:6px 10px 4px}.hud{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"power grid""progress progress";align-items:center;gap:6px 16px;padding:10px 14px;display:grid}.hud-power{grid-area:power}.hud-grid{grid-area:grid;grid-template-columns:1fr 1fr;gap:2px 10px}.hud-progress{grid-area:progress;padding-top:6px;font-size:16px}.hud-power-value{font-size:clamp(56px,13vh,96px)}.hud-metric-value{font-size:clamp(24px,4.4vh,38px)}.hud-metric-unit{display:none}.hud-zone-bar{margin:6px 0 4px}.hud-power-sub{font-size:14px}.map-controls{top:auto;bottom:calc(var(--safe-bottom) + 112px)}.ride-map .maplibregl-ctrl-bottom-right{bottom:104px;right:0}.ride-notices{top:calc(var(--safe-top) + 64px)}.ride-sim{display:none}}@media (max-height:520px) and (orientation:landscape){.ride{padding-top:calc(var(--safe-top) + 6px);padding-bottom:calc(var(--safe-bottom) + 6px);gap:6px}.hud{gap:8px;padding:10px 12px}.video-strip{display:none}.profile-compact .profile-plot{height:44px}.profile-stats{font-size:.8rem}.map-controls{top:calc(var(--safe-top) + 60px)}}
