:root{--background: #f6f3ec;--surface: #fffdf8;--surface-strong: #ede6d8;--text: #1e2522;--muted: #65706b;--line: #d8d0c2;--primary: #0f766e;--primary-dark: #115e59;--danger: #b42318;--warning: #b7791f;--road: #8e9892;--road-edge: #5b665f;--trail: #2563eb;--moto: #f2b705}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;background:var(--background);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,select,input{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}.appShell{position:relative;width:100vw;height:100vh;height:100dvh;overflow:hidden}.sidePanel{position:absolute;top:16px;left:16px;z-index:2;width:340px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fffdf8d1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 34px #0003;scrollbar-width:thin}.hudTopLeft{position:absolute;top:14px;left:14px;z-index:2;width:320px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 28px);overflow-y:auto;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin}.rankPill{display:flex;align-items:center;gap:9px;width:100%;padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:#fffdf8e0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 6px 18px #00000029;cursor:pointer;font:inherit;text-align:left}.rankPillBadge{font-weight:800;font-size:13px;color:var(--text);white-space:nowrap}.rankPillBar{flex:1;height:6px;border-radius:999px;background:#1e25221f;overflow:hidden}.rankPillBar>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#0f766e,#f2b705)}.rankPillPct{font-weight:800;font-size:13px;color:#0f766e}.rankPillChevron{font-size:11px;color:var(--muted)}.rankPillUp{border-color:#f2b705;box-shadow:0 0 0 2px #f2b70573,0 6px 18px #00000029}.hudTopRight{position:absolute;top:14px;right:14px;z-index:3;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.iconButton{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#fffdf8e0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 6px 18px #00000029;color:var(--text);cursor:pointer}.iconButton.active{background:#0f766e;border-color:#0f766e;color:#fff}.settingsPopover{width:280px;max-width:calc(100vw - 28px);max-height:calc(100vh - 90px);overflow-y:auto;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fffdf8eb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 34px #0003}.hudCard{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fffdf8eb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 34px #0000002e}.hudStats{position:absolute;left:14px;bottom:14px;z-index:2;display:flex;gap:8px;flex-wrap:wrap;max-width:calc(100vw - 28px)}.statChip{display:flex;flex-direction:column;gap:1px;min-width:72px;padding:6px 11px;border:1px solid var(--line);border-radius:10px;background:#fffdf8db;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 14px #0000001f}.statChip span{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.statChip strong{font-size:15px;color:var(--text)}.tripPanelCompact{gap:7px;padding:12px 13px;border-radius:14px;background:#fffdf8eb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 34px #0000002e}.tripPanelCompact .tripRoute{font-size:15px;gap:6px}.tripHead{display:flex;align-items:center;justify-content:space-between;gap:8px}.tripMetaRow{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:12px;color:var(--text)}.tripMetaDim{font-size:11px;color:var(--muted)}.tripFareInline{font-size:15px;font-weight:800;color:var(--text)}.tripCue{font-size:12px;font-weight:700;color:#0f766e}.helpPanel{width:252px;max-width:calc(100vw - 28px);padding:12px 14px;display:flex;flex-direction:column;gap:12px;border:1px solid var(--line);border-radius:14px;background:#fffdf8eb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 34px #0003}.helpGroup{display:flex;flex-direction:column;gap:5px}.helpGroupTitle{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.helpRow{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text)}.helpRow span{margin-left:4px}.helpRow kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border:1px solid rgb(30 37 34 / 22%);border-bottom-width:2px;border-radius:5px;background:#fff;font:600 11px/1 ui-monospace,SF Mono,monospace;color:var(--text)}.iconButtonGlyph{font-size:19px;font-weight:800;line-height:1}.radioNowPlaying{display:inline-flex;align-items:center;gap:8px;max-width:240px;padding:6px 8px 6px 12px;border-radius:999px;background:#0f1512d1;border:1px solid rgba(20,184,166,.45);color:#d7faf2;font-size:12px;font-weight:700;letter-spacing:.2px;box-shadow:0 6px 18px #00000059;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.radioWave{color:#14b8a6;animation:radioPulse 1.1s ease-in-out infinite}@keyframes radioPulse{0%,to{opacity:.45}50%{opacity:1}}.radioTrackName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.radioSkip{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:none;background:#14b8a62e;color:#d7faf2;font-size:12px;cursor:pointer;flex-shrink:0}.radioSkip:hover{background:#14b8a657}.brandBlock{display:flex;flex-direction:column;gap:6px}.brandBlock h1{margin:0;font-size:24px;line-height:1.1;letter-spacing:0}.brandBlock p{margin:0;color:var(--muted);font-size:14px;line-height:1.4}.fieldGroup{display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field>span,.controlHeader{color:var(--muted);font-size:13px;font-weight:700}.field select{width:100%;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text);padding:10px 11px}.cameraControl{border-top:1px solid var(--line);padding-top:12px}.controlHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.controlHeader strong{color:var(--text);font-size:13px}.cameraControl input[type=range]{width:100%;accent-color:var(--primary)}.rangeLabels{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px}.toggleGroup{display:grid;grid-template-columns:1fr 1fr;gap:6px}.toggleButton{min-height:38px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--muted);font-weight:800}.toggleButton.active{border-color:#0f766e73;background:#0f766e1a;color:var(--primary-dark)}.primaryButton,.secondaryButton{min-height:42px;border-radius:6px;padding:10px 14px;font-weight:800}.primaryButton{background:var(--primary);color:#fff}.primaryButton:hover:not(:disabled){background:var(--primary-dark)}.secondaryButton{border:1px solid var(--line);background:var(--surface-strong);color:var(--text)}.buttonStack{display:grid;gap:8px}.statsGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.metric{border-top:1px solid var(--line);padding-top:10px}.metric span{display:block;color:var(--muted);font-size:12px;font-weight:700}.metric strong{display:block;margin-top:4px;font-size:20px;line-height:1.1}.mapSection{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.mapFrame{position:relative;width:100%;height:100%;overflow:hidden;background:#e5e0d3}.gameCanvas{display:block;width:100%;height:100%}.statusBadge{position:absolute;top:14px;left:50%;transform:translate(-50%);text-align:center;max-width:min(360px,calc(100% - 28px));border:1px solid rgb(30 37 34 / 12%);border-radius:6px;background:#fffdf8e5;color:var(--text);padding:8px 10px;font-size:13px;font-weight:800;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.comfortHud{position:absolute;bottom:16px;left:50%;transform:translate(-50%);width:min(280px,calc(100% - 32px));border:1px solid rgb(30 37 34 / 12%);border-radius:10px;background:#fffdf8e0;padding:8px 12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 6px 18px #00000024}.comfortHudHeader{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:5px}.comfortHudHeader strong{color:var(--text);font-size:13px}.comfortBar{height:8px;border-radius:999px;background:#1e25221f;overflow:hidden}.comfortBarFill{height:100%;border-radius:999px;transition:width .14s ease,background .2s ease}.mapAttribution{position:absolute;right:10px;bottom:10px;max-width:min(560px,calc(100% - 20px));border-radius:4px;background:#fffdf8db;color:var(--muted);padding:4px 6px;font-size:11px;line-height:1.2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.driveAssistBadge{position:absolute;left:14px;bottom:14px;display:flex;flex-wrap:wrap;gap:6px;max-width:min(420px,calc(100% - 28px));pointer-events:none}.driveAssistBadge span{border:1px solid rgb(30 37 34 / 16%);border-radius:6px;background:#1e2522db;color:#fff;padding:7px 10px;font-size:12px;font-weight:900;line-height:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.resultPanel{display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--line);padding-top:16px}.resultHeader{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.resultHeader h2{margin:0;font-size:18px;line-height:1.2}.scoreValue{color:var(--primary-dark);font-size:30px;font-weight:900;line-height:1}.penaltyList{display:grid;gap:8px;margin:0;padding:0;list-style:none}.penaltyList li{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:8px;color:var(--muted);font-size:13px}.penaltyList strong{color:var(--text)}.errorBox{border:1px solid rgb(180 35 24 / 30%);border-radius:6px;background:#b4231814;color:var(--danger);padding:10px;font-size:14px}.knowledgePanel{display:flex;flex-direction:column;gap:9px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,rgb(15 118 110 / 6%),var(--surface));padding:14px;transition:box-shadow .3s ease,border-color .3s ease}.knowledgePanelUp{border-color:var(--moto);box-shadow:0 0 0 2px #f2b70573,0 10px 28px #f2b70538}.knowledgeHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.knowledgeTitleBlock{display:flex;flex-direction:column;gap:2px}.knowledgeLabel{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.rankTitle{font-size:19px;line-height:1.15;color:var(--primary-dark)}.knowledgePct{font-size:26px;font-weight:900;line-height:1;color:var(--text)}.knowledgeBar{height:10px;border-radius:999px;background:var(--surface-strong);overflow:hidden}.knowledgeBarFill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),var(--moto));transition:width .5s ease}.knowledgeMeta{margin:0;color:var(--muted);font-size:13px;line-height:1.4}.knowledgeMetaDim{font-size:12px;opacity:.85}.knowledgeRankUp{margin:2px 0 0;color:var(--warning);font-size:13px;font-weight:800;animation:rankUpFlash 2.8s ease}@keyframes rankUpFlash{0%{opacity:0;transform:translateY(4px)}12%{opacity:1;transform:translateY(0)}80%{opacity:1}to{opacity:0}}.tripPanel{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);padding:14px}.tripPanelOffer{border-color:#0f766e73;background:#0f766e14}.tripPanelLabel{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.tripRoute{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font-size:18px;font-weight:800;line-height:1.2}.tripRouteArrow{color:var(--primary)}.tripRouteTo{color:var(--primary-dark)}.tripFare{display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:10px}.tripFare span{color:var(--muted);font-size:13px;font-weight:700}.tripFare strong{font-size:22px;color:var(--primary-dark)}.tripMeta{margin:0;color:var(--muted);font-size:13px;line-height:1.4}.tripFlavor{margin:0;color:var(--text);font-size:14px;font-style:italic;line-height:1.35}.quirkBadgeRow{display:flex;flex-wrap:wrap;gap:6px}.quirkBadge{border-radius:999px;background:#b7791f29;color:var(--warning);padding:3px 10px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.tierBadge{border-radius:999px;background:var(--surface-strong);color:var(--muted);padding:3px 10px;font-size:11px;font-weight:800}.knowledgeGain{display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-radius:6px;background:var(--surface-strong);padding:8px 12px}.knowledgeGain span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.knowledgeGain strong{font-size:16px;color:var(--text)}.knowledgeGainUp{background:#0f766e1a}.knowledgeGainUp strong{color:var(--primary-dark)}.pickupHint{position:absolute;left:50%;bottom:54px;transform:translate(-50%);display:flex;align-items:center;gap:10px;border-radius:999px;background:#1e2522e0;color:#fff;padding:9px 16px 9px 9px;font-size:14px;font-weight:800;box-shadow:0 8px 24px #00000038;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:pickupHintPulse 1.4s ease-in-out infinite}.pickupHintGo{background:#0f5e59eb}.pickupHintKey{display:inline-flex;align-items:center;justify-content:center;min-width:58px;border-radius:999px;background:#ffffff29;padding:4px 10px;font-size:12px;letter-spacing:.08em}@keyframes pickupHintPulse{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-3px)}}@media(max-width:880px){.sidePanel{top:auto;bottom:12px;left:12px;right:12px;width:auto;max-width:none;max-height:48dvh}}@media(max-width:560px){.statsGrid{grid-template-columns:1fr 1fr}.brandBlock h1{font-size:21px}}.gateScreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background-image:linear-gradient(#0f1512e5,#0f1512f0),url(/signin-bg.jpg);background-size:cover;background-position:center}.gateCard{display:flex;flex-direction:column;gap:12px;width:min(360px,100%);padding:28px 26px;border:1px solid rgb(242 183 5 / 30%);border-radius:16px;background:#fffdf8f5;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 24px 60px #0000008c}.gateTitle{margin:0;font-size:22px;color:var(--text)}.gateSubtitle{margin:0 0 4px;font-size:14px;line-height:1.5;font-style:italic;color:var(--muted)}.gateAttribution{display:block;margin-top:6px;font-size:12px;font-style:normal;font-weight:600;opacity:.75}.gateInput{height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);font-size:15px}.gateInput:focus{outline:2px solid #0f766e;outline-offset:1px}.gateInputError{border-color:#dc2626}.gateError{font-size:12px;font-weight:600;color:#dc2626}.gateButton{height:44px;border:none;border-radius:10px;background:#0f766e;color:#fff;font-size:15px;font-weight:800;cursor:pointer}.gateButton:hover{background:#0c5e57}.googleButton{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:46px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#3c4043;font-size:15px;font-weight:700;cursor:pointer;transition:background .15s ease,box-shadow .15s ease}.googleButton:hover{background:#f7f8fa;box-shadow:0 1px 4px #0000001f}.gateAlt{margin-top:14px;font-size:13px}.gateAlt>summary{cursor:pointer;opacity:.7;list-style:none;text-align:center}.gateAlt>summary:hover{opacity:1}.gateAltForm{display:flex;flex-direction:column;gap:8px;margin-top:12px}.gateAltForm input{height:42px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:#ffffff0f;color:inherit;font-size:14px}.gateAltBtn{height:42px;border-radius:10px;border:none;background:#14b8a6;color:#042b25;font-weight:800;font-size:14px;cursor:pointer}.googleIcon{width:18px;height:18px;flex:none}.settingsAccount{margin-top:12px;padding-top:12px;border-top:1px solid rgb(255 255 255 / 12%)}.signOutButton{width:100%;height:38px;border:1px solid rgb(255 255 255 / 18%);border-radius:9px;background:transparent;color:var(--muted, #cbd5e1);font-size:13px;font-weight:700;cursor:pointer;transition:background .15s ease,color .15s ease}.signOutButton:hover{background:#dc262624;color:#fca5a5}.leaderboardPanel{width:268px;max-width:calc(100vw - 28px);padding:14px;display:flex;flex-direction:column;gap:12px;border:1px solid var(--line);border-radius:14px;background:#fffdf8f0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 34px #00000038}.lbProgress{display:flex;flex-direction:column;gap:2px;padding-bottom:10px;border-bottom:1px solid var(--line)}.lbProgressMain{display:flex;align-items:baseline;gap:6px}.lbProgressPct{font-size:26px;font-weight:800;color:#0f766e}.lbProgressLabel{font-size:12px;color:var(--muted)}.lbProgressSub{font-size:11px;color:var(--muted)}.lbProgressSignedOut{font-size:12px;color:var(--muted)}.lbTabs{display:flex;gap:6px}.lbTab{flex:1;padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer}.lbTab.active{background:#0f766e;border-color:#0f766e;color:#fff}.lbList{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:260px;overflow-y:auto}.lbRow{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;padding:5px 4px;font-size:13px;border-radius:7px}.lbRow:nth-child(odd){background:#0f766e0f}.lbRank{font-weight:800;color:var(--muted);text-align:center}.lbName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.lbScore{font-weight:800;color:#0f766e}.lbEmpty{font-size:12px;color:var(--muted);padding:8px 4px}.lbFootnote{font-size:10.5px;color:var(--muted);line-height:1.3}.adminGate{display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;min-height:100dvh;color:var(--text)}.adminWrap{max-width:1100px;margin:0 auto;padding:20px 18px 48px;color:var(--text)}.adminHeader{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--line)}.adminHeader h1{margin:0;font-size:22px}.adminWho{font-size:12px;color:var(--muted)}.adminTabs{display:flex;align-items:center;gap:8px}.adminTabs button{padding:7px 14px;border:1px solid var(--line);border-radius:9px;background:var(--surface);font-weight:700;font-size:13px;color:var(--muted)}.adminTabs button.active{background:#0f766e;border-color:#0f766e;color:#fff}.adminBack{margin-left:6px;font-size:13px;color:#0f766e;text-decoration:none;font-weight:700}.adminPanel{margin-top:16px}.adminSubhead{margin:22px 0 10px;font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;opacity:.75}.installModalOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:24px;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.installModal{width:min(360px,100%);text-align:center;padding:24px 22px 20px;border-radius:18px;background:#141a17;border:1px solid rgba(20,184,166,.4);box-shadow:0 24px 60px #0000008c;color:#eafff8}.installModalIcon{font-size:38px;display:block;margin-bottom:8px}.installModalTitle{margin:0 0 8px;font-size:19px;font-weight:800}.installModalText{margin:0 0 18px;font-size:13px;line-height:1.5;opacity:.8}.installModalActions{display:flex;flex-direction:column;gap:10px}.installModalInstall{border:none;background:linear-gradient(180deg,#16c2ad,#0f9e8c);color:#042b25;font-weight:800;font-size:15px;padding:12px;border-radius:12px;cursor:pointer}.installModalClose{border:none;background:transparent;color:#8aa39b;font-size:14px;font-weight:600;padding:6px;cursor:pointer}.terrainSlider{display:flex;flex-direction:column;gap:3px;margin-top:8px;font-size:12px;opacity:.92}.terrainSlider input[type=range]{width:100%}.statGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:8px}.statCard{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08)}.statLabel{font-size:11px;text-transform:uppercase;letter-spacing:.04em;opacity:.6}.statValue{font-size:22px;font-weight:800}.statSub{font-size:11px;opacity:.55}.dayChart{display:flex;align-items:flex-end;gap:6px;height:160px;padding:8px 4px 0;overflow-x:auto}.dayCol{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:22px;flex:1;height:100%}.dayBars{display:flex;align-items:flex-end;gap:2px;height:100%;width:100%;justify-content:center}.dayBar{width:9px;border-radius:3px 3px 0 0;min-height:1px}.dayBarTrip{background:#14b8a6}.dayBarRoam{background:#64748b}.dayLabel{font-size:9px;opacity:.5;white-space:nowrap}.travelFlag{display:inline-block;padding:1px 6px;border-radius:999px;font-size:11px;font-weight:700;margin-right:4px}.travelFlagWrong{background:#f59e0b2e;color:#f59e0b}.travelFlagAir{background:#a855f72e;color:#a855f7}.replayOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#000000a8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:20px}.replayPanel{width:min(960px,100%);background:#141a17;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:16px;box-shadow:0 24px 60px #00000080}.replayHead{display:flex;align-items:center;gap:14px;margin-bottom:12px}.replayHead>div:first-child{display:flex;flex-direction:column}.replaySub{font-size:12px;opacity:.6}.replayLegend{margin-left:auto;display:flex;gap:12px;font-size:12px;font-weight:700}.replayCanvas{display:block;border-radius:10px;background:#0f1512;border:1px solid rgba(255,255,255,.08)}.replayControls{display:flex;align-items:center;gap:10px;margin-top:12px}.replayTime{font-variant-numeric:tabular-nums;font-size:12px;opacity:.8;min-width:84px;text-align:center}.adminFilters,.adminAdd{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.adminFilters input,.adminFilters select,.adminAdd input{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px}.adminCheck{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.adminCount{margin-left:auto;font-size:12px;color:var(--muted)}.adminAddBtn,.adminBtn{height:36px;padding:0 14px;border:none;border-radius:8px;background:#0f766e;color:#fff;font-weight:700;font-size:13px}.adminHint{font-size:12px;color:var(--muted);margin:0 0 12px}.adminTableWrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}.adminTable{width:100%;border-collapse:collapse;font-size:13px}.adminTable th,.adminTable td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.adminTable th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface-strong)}.adminTable tr.rowOff{opacity:.45}.adminTable select,.prioInput{height:30px;padding:0 6px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:12px}.prioInput{width:70px}.adminDel{border:none;background:transparent;color:var(--danger);font-size:14px;font-weight:800;cursor:pointer}.adminBtnSm{height:28px;padding:0 10px;border:1px solid #0f766e;border-radius:7px;background:transparent;color:#0f766e;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap}.adminBtnSm:hover{background:#0f766e;color:#fff}.discoveryOverlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:24px;background:#080c0a6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:discoveryFade .18s ease-out}@keyframes discoveryFade{0%{opacity:0}to{opacity:1}}.discoveryCard{display:flex;flex-direction:column;align-items:center;gap:10px;width:min(380px,100%);padding:26px 28px;text-align:center;border:1px solid rgb(242 183 5 / 55%);border-radius:18px;background:#fffdf8f7;box-shadow:0 0 0 4px #f2b70538,0 26px 70px #0000008c;animation:discoveryPop .22s cubic-bezier(.2,.9,.3,1.2)}@keyframes discoveryPop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.discoveryKicker{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--warning)}.discoveryName{margin:0;font-size:24px;line-height:1.15;color:var(--text)}.discoveryReward{margin-top:2px;padding:5px 14px;border-radius:999px;background:linear-gradient(90deg,#0f766e,#f2b705);color:#fff;font-size:14px;font-weight:800}.discoveryContinue{margin-top:8px;display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 18px;border:none;border-radius:10px;background:#0f766e;color:#fff;font-size:14px;font-weight:800;cursor:pointer}.discoveryKey{font-size:11px;font-weight:700;padding:2px 7px;border-radius:5px;background:#ffffff38}.adminBtnDanger{border-color:var(--danger);color:var(--danger)}.adminBtnDanger:hover{background:var(--danger);color:#fff}.tripWhere{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--muted)}.tripWhereDot{font-size:11px;line-height:1}.oneWayHint{position:absolute;right:14px;bottom:14px;z-index:4;display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#b7791fe5;color:#fff;font-size:12px;font-weight:700;box-shadow:0 4px 14px #00000040;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;animation:oneWayFade .18s ease-out}@keyframes oneWayFade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.levelUpToast{position:absolute;top:64px;left:50%;transform:translate(-50%);z-index:18;display:flex;align-items:center;gap:12px;padding:12px 22px;border-radius:14px;background:linear-gradient(120deg,#0f766e,#f2b705);color:#fff;box-shadow:0 0 0 4px #f2b70540,0 18px 44px #00000073;pointer-events:none;animation:levelUpPop .4s cubic-bezier(.2,.9,.3,1.3)}@keyframes levelUpPop{0%{opacity:0;transform:translate(-50%) scale(.8) translateY(-8px)}to{opacity:1;transform:translate(-50%) scale(1) translateY(0)}}.levelUpSpark{font-size:26px;animation:levelUpSpin 1.2s ease-in-out infinite}@keyframes levelUpSpin{0%,to{transform:rotate(-12deg) scale(1)}50%{transform:rotate(12deg) scale(1.18)}}.levelUpText{display:flex;flex-direction:column;line-height:1.1}.levelUpKicker{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;opacity:.9}.levelUpRank{font-size:18px;font-weight:800}.lbCodexCount{font-size:12px;font-weight:800;color:#0f766e;padding:2px 2px 0}.lbCodexRow{display:flex;align-items:center;gap:8px;padding:5px 4px;font-size:13px;border-radius:7px}.lbCodexRow:nth-child(odd){background:#0f766e0f}.lbCodexRow.locked{color:var(--muted);opacity:.7}.lbCodexMark{width:18px;text-align:center;font-size:12px}.coachBanner{position:absolute;top:14px;left:50%;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:9px;max-width:min(560px,calc(100vw - 120px));padding:9px 15px;border-radius:12px;background:#0f1612eb;color:#fff;font-size:13px;font-weight:600;box-shadow:0 10px 28px #0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;text-align:center;animation:oneWayFade .2s ease-out}.coachBadge{flex:none;padding:2px 8px;border-radius:999px;background:#f2b705;color:#1e2522;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.touchControls{position:absolute;left:0;right:0;bottom:0;z-index:8;display:flex;align-items:flex-end;justify-content:space-between;padding:0 16px 18px;pointer-events:none}.touchSteer{display:flex;gap:14px}.touchThrottle{display:flex;flex-direction:column;gap:14px}.touchMid{display:flex;align-items:flex-end;padding-bottom:8px}.touchBtn{pointer-events:auto;display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;border:1.5px solid rgb(255 255 255 / 35%);background:#141a1794;color:#fff;font-size:27px;font-weight:800;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);box-shadow:0 6px 18px #00000059;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .06s ease,background .06s ease}.touchBtn:active{transform:scale(.94)}.touchGo{width:88px;height:88px;font-size:32px;background:#0f766ed1;border-color:#14b8a6cc}.touchGo:active{background:#14b8a6f2}.touchBrake{background:#962018c7;border-color:#dc5046bf}.touchBrake:active{background:#be281ef2}.touchActionBtn{pointer-events:auto;height:62px;padding:0 30px;border:1.5px solid rgb(242 183 5 / 60%);border-radius:999px;background:linear-gradient(180deg,#f2b705,#d99e04);color:#1e2522;font-size:17px;font-weight:900;box-shadow:0 8px 24px #0006;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.touchActionBtn:active{transform:scale(.96)}.appShell.touch .hudStats{bottom:96px}.autopilotHint{position:absolute;left:50%;bottom:14px;transform:translate(-50%);z-index:7;display:flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;background:#0f766eeb;color:#fff;font-size:12px;font-weight:700;box-shadow:0 4px 16px #0000004d;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;animation:oneWayFade .18s ease-out}.touchAiBtn{pointer-events:auto;display:flex;align-items:center;justify-content:center;width:58px;height:58px;margin-right:10px;border:1.5px solid rgb(255 255 255 / 30%);border-radius:50%;background:#141a1794;color:#fff;font-size:25px;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);box-shadow:0 6px 18px #00000059;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.touchAiBtn.active{background:#14b8a6;border-color:#14b8a6}.appShell.aiDriving:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:9;pointer-events:none;box-shadow:inset 0 0 0 3px #14b8a6a6,inset 0 0 60px #14b8a638;animation:aiPulse 1.8s ease-in-out infinite}@keyframes aiPulse{0%,to{box-shadow:inset 0 0 0 3px #14b8a68c,inset 0 0 50px #14b8a629}50%{box-shadow:inset 0 0 0 3px #14b8a6cc,inset 0 0 70px #14b8a647}}.aiButton{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:#fffdf8e5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 6px 18px #00000029;color:var(--text);font-size:13px;font-weight:800;cursor:pointer}.aiButton.active{background:#14b8a6;border-color:#14b8a6;color:#fff}.routeList{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.routeRow{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:8px;background:#0f766e0d;font-size:13px}.routeRowPlayer{background:#f2b70524}.routeAiBtn{flex:none;width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:15px;line-height:1;cursor:pointer}.routeAiBtn:hover:not(:disabled){background:#14b8a6;border-color:#14b8a6}.routeAiBtn:disabled{opacity:.35;cursor:not-allowed}.routeRowName{flex:1;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.routeRowStat{flex:none;color:var(--text);font-size:12px}.driveInfo{position:absolute;bottom:16px;left:50%;transform:translate(-50%);z-index:4;white-space:nowrap;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:#fffdf8eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 6px 18px #00000029;font-size:12px;font-weight:700;color:var(--text)}.driveInfoWarn{background:#b7791ff0;color:#fff;border-color:transparent}.aiFab{display:flex;align-items:center;justify-content:center;align-self:stretch;min-width:50px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:#fffdf8e5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 14px #00000024;font-size:22px;line-height:1;cursor:pointer}.aiFab.active{background:#14b8a6;border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a652,0 4px 14px #00000024}.appShell.touch .statusBadge,.appShell.touch .pickupHint,.appShell.touch .tripCue{display:none}.appShell.touch .driveInfo{top:auto;bottom:140px;font-size:11px;padding:6px 12px}.appShell.touch .hudTopLeft{width:auto;max-width:66vw;top:8px;left:8px}.appShell.touch .rankPill{padding:6px 11px}.appShell.touch .tripPanelCompact{padding:9px 11px;gap:4px}.appShell.touch .tripPanelCompact .tripRoute{font-size:13px}.appShell.touch .tripWhere{font-size:10px}.appShell.touch .hudTopRight{top:8px;right:8px}.appShell.touch .hudStats{left:0;right:0;bottom:96px;justify-content:center}.appShell.touch .coachBanner{top:auto;bottom:186px;max-width:calc(100vw - 16px);font-size:12px;padding:8px 12px}.appShell.touch .tierBadge,.appShell.touch .hudStats,.appShell.touch .rankPill,.appShell.touch .tripHead,.appShell.touch .tripWhere,.appShell.touch .tripMetaRow,.appShell.touch .tripRouteFrom{display:none}.appShell.touch .tripPanelCompact{padding:6px 13px;background:#0f1612d1;border:none;border-radius:999px;box-shadow:0 4px 14px #0000004d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.appShell.touch .tripPanelCompact .tripRoute{font-size:12px;gap:4px}.appShell.touch .tripRouteTo{color:#fff}.appShell.touch .tripRouteArrow{color:#f2b705}.appShell.touch .driveInfo{bottom:100px}.appShell.touch .coachBanner{bottom:148px}@media(orientation:portrait){.appShell.touch .touchControls{padding:0 10px 16px}.appShell.touch .touchBtn{width:62px;height:62px;font-size:23px}.appShell.touch .touchGo{width:74px;height:74px;font-size:27px}.appShell.touch .touchSteer{gap:10px}.appShell.touch .touchAiBtn{width:50px;height:50px;font-size:22px;margin-right:7px}.appShell.touch .touchActionBtn{height:56px;padding:0 20px;font-size:15px}}.appShell.touch .hudTopLeft{left:50%;transform:translate(-50%);top:6px;max-width:94vw;align-items:center}.appShell.touch .driveInfo{top:auto;bottom:0;left:0;right:0;transform:none;border-radius:0;border-left:none;border-right:none;border-bottom:none;text-align:center}.appShell.touch .touchControls{padding-bottom:42px}.appShell.touch .mapAttribution{display:none}.tripNext{font-size:11px;color:var(--muted)}.appShell.touch .tripNext{display:none}.resultOverlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:16;display:flex;align-items:center;justify-content:center;padding:14px;background:#080c0a99;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:discoveryFade .2s ease-out}.resultOverlay .resultPanel{width:min(560px,100%);max-height:calc(100dvh - 24px);overflow-y:auto;background:#fffdf8fa;border:1px solid var(--line);border-radius:18px;box-shadow:0 26px 70px #0000008c;padding:20px}.resultOverlay .scoreValue{font-size:36px}.resultNextBtn{width:100%;margin-top:14px;height:52px;border:none;border-radius:12px;background:#0f766e;color:#fff;font-size:16px;font-weight:800;cursor:pointer}.resultNextBtn:active{background:#0c5e57}
