:root{--font-sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "HarmonyOS Sans SC", "MiSans", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-num:ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Consolas, monospace;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--r-xs:8px;--r-sm:6px;--r-md:12px;--r-lg:18px;--r-xl:24px;--r-full:999px;--blur-sm:blur(8px);--blur-md:blur(16px) saturate(150%);--blur-lg:blur(28px) saturate(160%);--shadow-sm:0 1px 2px #0000002e;--shadow-md:0 4px 14px #00000038;--shadow-lg:0 12px 40px #00000059;--shadow-dock:0 16px 48px #0208146b, inset 0 1px 0 #ffffff12;--shadow-float:0 24px 64px #02081485;--z-base:0;--z-hud:10;--z-overlay:100;--z-modal:200;--touch-min:44px;--touch-lg:52px;--touch-xl:64px;--fs-caption:11px;--fs-label:13px;--fs-body:15px;--fs-title:17px;--fs-headline:22px;--dur-fast:.12s;--dur-base:.22s;--ease:cubic-bezier(.32, .72, 0, 1);--ease-spring:cubic-bezier(.2, .9, .24, 1.08);--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px);--swatch-dark-bar:linear-gradient(135deg, #0b1220, #131e31);--swatch-dark-a:#f5a623;--swatch-dark-b:#e8eef7b8;--swatch-light-bar:linear-gradient(135deg, #f2f5f9, #fff);--swatch-light-a:#2563eb;--swatch-light-b:#eef2f7;--swatch-blue-bar:linear-gradient(135deg, #081426, #0f2442);--swatch-blue-a:#38bdf8;--swatch-blue-b:#e8f3ffb3}:root,[data-theme=dark]{--bg:#0b1220;--bg-elev:#101a2b;--panel:#131e31;--panel-2:#1a2740;--line:#94aac829;--text:#e8eef7;--text-dim:#94a3b8;--text-faint:#5b6b80;--accent:#f5a623;--accent-2:#4ade80;--danger:#f4544d;--warn:#f5a623;--info:#38bdf8;--on-accent:#101820;--on-danger:#fff;--on-info:#04202f;--glass:#0d1524b8;--hud-bg:#080e1aa8;--hud-border:#94aac833;--drive-surface:#070e1adb;--drive-surface-strong:#050b16f0;--ctrl-track:#0a1322;--ctrl-bezel:#1d2b44;--ctrl-face:#172440;--ctrl-hi:#f5a62329;--drive-panel:linear-gradient(165deg, #172237f5, #09111ffa);--drive-edge:#94aac842;--drive-inset:inset 0 1px 0 #ffffff14, inset 0 -12px 24px #02081461}[data-theme=light]{--bg:#f2f5f9;--bg-elev:#fff;--panel:#fff;--panel-2:#eef2f7;--line:#0f172a1a;--text:#1e293b;--text-dim:#64748b;--text-faint:#94a3b8;--accent:#2563eb;--accent-2:#059669;--danger:#dc2626;--warn:#d97706;--info:#0284c7;--on-accent:#fff;--on-danger:#fff;--on-info:#fff;--glass:#ffffffc7;--hud-bg:#ffffffd1;--hud-border:#0f172a1f;--drive-surface:#ffffffeb;--drive-surface-strong:#fffffff7;--ctrl-track:#e2e8f0;--ctrl-bezel:#d4dcea;--ctrl-face:#f6f8fb;--ctrl-hi:#2563eb1f;--drive-panel:linear-gradient(165deg, #fff, #edf2f8);--drive-edge:#0f172a29;--drive-inset:inset 0 1px 0 #ffffffe6, inset 0 -12px 24px #94a3b82e}[data-theme=blue]{--bg:#081426;--bg-elev:#0c1d38;--panel:#0f2442;--panel-2:#14304f;--line:#78b4ff2e;--text:#e8f3ff;--text-dim:#8fb3d9;--text-faint:#5c7fa6;--accent:#38bdf8;--accent-2:#2dd4bf;--danger:#fb7185;--warn:#fbbf24;--info:#60a5fa;--on-accent:#04202f;--on-danger:#2a050c;--on-info:#04203a;--glass:#081426bd;--hud-bg:#050f1eb3;--hud-border:#78b4ff38;--drive-surface:#04101fe0;--drive-surface-strong:#030c18f2;--ctrl-track:#071527;--ctrl-bezel:#14304f;--ctrl-face:#102641;--ctrl-hi:#38bdf829;--drive-panel:linear-gradient(165deg, #123254f5, #061324fa);--drive-edge:#78b4ff47;--drive-inset:inset 0 1px 0 #bee3ff1f, inset 0 -12px 24px #030d1b66}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);overscroll-behavior:none;touch-action:manipulation;-webkit-font-smoothing:antialiased;transition:background-color var(--dur-base) var(--ease), color var(--dur-base) var(--ease);font-size:16px;line-height:1.5}button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input,select{font-family:inherit;font-size:inherit;color:inherit}h1,h2,h3{font-weight:700;line-height:1.25}a{color:var(--info);text-decoration:none}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.app-shell{background:var(--bg);width:100%;max-width:900px;height:100dvh;margin:0 auto;position:relative;overflow:hidden}.app-loading{height:100%;color:var(--text-dim);place-items:center;display:grid}.app-error{min-height:100%;padding:calc(var(--sat) + 32px) 20px calc(var(--sab) + 32px);text-align:center;place-content:center;justify-items:center;gap:14px;display:grid}.app-error h1{font-size:var(--fs-headline)}.app-error p,.app-error code{color:var(--text-dim);line-height:1.55}.app-error code{overflow-wrap:anywhere;max-width:min(100%,520px)}.screen{height:100%;padding:calc(var(--sat) + var(--sp-5)) var(--sp-4) calc(var(--sab) + var(--sp-6));animation:screen-in var(--dur-base) var(--ease);overflow-y:auto}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.hidden{display:none!important}.safe-top{padding-top:var(--sat)}.safe-bottom{padding-bottom:var(--sab)}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.btn{justify-content:center;align-items:center;gap:var(--sp-2);min-height:var(--touch-min);padding:0 var(--sp-5);border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-2);color:var(--text);transition:transform var(--dur-fast) var(--ease), background-color var(--dur-base) var(--ease), opacity var(--dur-base);-webkit-user-select:none;user-select:none;font-size:16px;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:var(--on-accent);border-color:#0000}.btn-success{background:var(--accent-2);color:var(--on-accent);border-color:#0000}.btn-danger{background:var(--danger);color:var(--on-danger);border-color:#0000}.btn-ghost{background:0 0}.btn-sm{min-height:42px;padding:0 var(--sp-3);font-size:13px}.btn-lg{border-radius:var(--r-lg);min-height:52px;font-size:18px}.btn-block{width:100%}.btn[disabled]{opacity:.45;pointer-events:none}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm)}.tag{align-items:center;gap:var(--sp-1);border:1px solid var(--line);border-radius:var(--r-full);background:var(--panel-2);color:var(--text-dim);padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.tag-ok{color:var(--accent-2)}.tag-fail{color:var(--danger)}.tag-link{cursor:pointer}.tag-link:not(:disabled):active{opacity:.7}.section-title{margin:var(--sp-6) 0 var(--sp-3);color:var(--text-dim);letter-spacing:.08em;font-size:13px;font-weight:600}.home-hero{padding:var(--sp-8) 0 var(--sp-5);text-align:center}.home-logo{width:72px;height:72px;margin:0 auto var(--sp-3);display:block}.home-title{letter-spacing:.02em;font-size:28px;font-weight:800}.home-sub{margin-top:var(--sp-2);color:var(--text-dim);font-size:15px}.home-menu{gap:var(--sp-3);margin-top:var(--sp-4);display:grid}.menu-item{align-items:center;gap:var(--sp-4);min-height:72px;padding:var(--sp-4) var(--sp-5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-sm);text-align:left;transition:transform var(--dur-fast) var(--ease), border-color var(--dur-base);display:flex}.menu-item:active{transform:scale(.98)}.menu-item:first-of-type{border-color:color-mix(in srgb, var(--accent) 55%, transparent)}.menu-icon{border-radius:var(--r-md);background:color-mix(in srgb, var(--accent) 14%, transparent);height:48px;color:var(--accent);flex:0 0 48px;justify-content:center;align-items:center;display:flex}.menu-icon svg{width:26px;height:26px}.menu-body{flex:1;min-width:0}.menu-title{font-size:17px;font-weight:700}.menu-desc{color:var(--text-dim);margin-top:3px;font-size:13px;line-height:1.45}.btn-note{color:var(--text-faint);margin-left:6px;font-size:12px;font-weight:500}.btn-primary .btn-note{color:color-mix(in srgb, var(--on-accent) 72%, transparent)}.theme-swatches{gap:var(--sp-3);display:flex}.theme-swatch{padding:var(--sp-3);border:2px solid var(--line);border-radius:var(--r-lg);background:var(--panel);text-align:center;transition:transform var(--dur-fast) var(--ease), border-color var(--dur-base);flex:1}.theme-swatch:active{transform:scale(.97)}.theme-swatch.active{border-color:var(--accent)}.swatch-bar{height:44px;margin-bottom:var(--sp-2);border-radius:var(--r-sm);align-items:flex-end;gap:4px;padding:6px;display:flex}.swatch-bar i{border-radius:3px;flex:1;height:10px}.theme-swatch span{color:var(--text);font-size:13px;font-weight:600}.theme-swatch--dark .swatch-bar{background:var(--swatch-dark-bar)}.theme-swatch--dark .swatch-bar i:nth-child(odd){background:var(--swatch-dark-a)}.theme-swatch--dark .swatch-bar i:nth-child(2n){background:var(--swatch-dark-b)}.theme-swatch--light .swatch-bar{background:var(--swatch-light-bar)}.theme-swatch--light .swatch-bar i:nth-child(odd){background:var(--swatch-light-a)}.theme-swatch--light .swatch-bar i:nth-child(2n){background:var(--swatch-light-b)}.theme-swatch--blue .swatch-bar{background:var(--swatch-blue-bar)}.theme-swatch--blue .swatch-bar i:nth-child(odd){background:var(--swatch-blue-a)}.theme-swatch--blue .swatch-bar i:nth-child(2n){background:var(--swatch-blue-b)}.guide-actions{justify-content:flex-end;display:flex}.guide-hero{padding-top:var(--sp-6)}.guide-icon{margin-bottom:var(--sp-4);font-size:64px;line-height:1}.guide-title{font-size:24px!important}.guide-desc{margin-top:var(--sp-3)!important;line-height:1.7!important}.guide-step{padding:var(--sp-2) 0}.guide-step h4{margin-bottom:var(--sp-1);font-size:16px}.guide-step p{color:var(--text-dim);font-size:14px}.guide-dots{margin:var(--sp-4) 0;justify-content:center;gap:6px;display:flex}.guide-dots i{background:var(--panel-2);width:8px;height:8px;transition:background-color var(--dur-fast), width var(--dur-fast);border-radius:50%}.guide-dots i.active{border-radius:var(--r-full);background:var(--accent);width:20px}.settings-row{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-4) 0;border-bottom:1px solid var(--line);display:flex}.settings-row:last-child{border-bottom:none}.settings-label{font-size:15px;font-weight:600}.settings-desc{color:var(--text-dim);margin-top:2px;font-size:12px}.settings-range{width:min(140px,42vw)}.settings-footer{margin-top:var(--sp-6);color:var(--text-faint);text-align:center;font-size:12px}.seg{border:1px solid var(--line);border-radius:var(--r-full);background:var(--panel-2);gap:2px;padding:3px;display:inline-flex}.seg button{border-radius:var(--r-full);color:var(--text-dim);transition:background-color var(--dur-fast), color var(--dur-fast);padding:6px 14px;font-size:13px;font-weight:600}.seg button.active{background:var(--accent);color:var(--on-accent)}.toggle{border:1px solid var(--line);border-radius:var(--r-full);background:var(--panel-2);width:52px;height:30px;transition:background-color var(--dur-fast);position:relative}.toggle:after{content:"";background:var(--text);width:22px;height:22px;transition:transform var(--dur-fast) var(--ease);border-radius:50%;position:absolute;top:3px;left:3px}.toggle.on{background:var(--accent)}.toggle.on:after{background:var(--on-accent);transform:translate(22px)}.record-empty-icon{margin-bottom:var(--sp-3);font-size:40px;line-height:1}.record-item{margin-bottom:var(--sp-3);padding:var(--sp-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel)}.record-head{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.record-name{font-weight:700}.record-score{color:var(--font-num);font-size:20px;font-weight:800;font-family:var(--font-num)}.record-score.is-pass{color:var(--accent-2)}.record-score.is-fail{color:var(--danger)}.record-meta{color:var(--text-dim);margin-top:4px;font-size:12px}.record-tags,.record-reasons{margin-top:var(--sp-2);flex-wrap:wrap;gap:6px;display:flex}.record-actions{gap:var(--sp-2);margin-top:var(--sp-3);display:flex}.empty-hint{padding:var(--sp-8) 0;color:var(--text-dim);text-align:center}.storage-banner{top:max(var(--sat), 10px);z-index:var(--z-modal);align-items:center;gap:var(--sp-3);border:1px solid color-mix(in srgb, var(--warn) 58%, transparent);border-radius:var(--r-md);background:var(--panel);width:min(92%,420px);box-shadow:var(--shadow-md);padding:10px 12px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.storage-banner span{color:var(--text-dim);font-size:13px}.modal-backdrop{z-index:var(--z-modal);-webkit-backdrop-filter:blur(6px);animation:fade-in var(--dur-base) var(--ease);background:#0000008c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.modal{width:min(88%,420px);max-height:84%;padding:var(--sp-6);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg-elev);box-shadow:var(--shadow-lg);animation:pop-in var(--dur-base) var(--ease);overflow-y:auto}.modal h3{margin-bottom:var(--sp-3);font-size:20px}.modal .close{float:right;padding:var(--sp-1);color:var(--text-dim);font-size:20px}.modal-desc{margin:0 0 var(--sp-4);color:var(--text-dim);font-size:13px}.modal-tip{margin:calc(var(--sp-2) * -1) 0 var(--sp-3);color:var(--text-dim);font-size:13px}.btn-group{gap:var(--sp-2);display:grid}.list-gap{gap:var(--sp-3);display:grid}.result-hero{padding:var(--sp-6) 0;text-align:center}.result-score{font-size:56px;font-weight:900;line-height:1;font-family:var(--font-num)}.result-score.pass{color:var(--accent-2)}.result-score.fail{color:var(--danger)}.result-label{margin-top:var(--sp-2);color:var(--text-dim)}.deduction-list{gap:var(--sp-2);list-style:none;display:grid}.deduction-list li{padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);font-size:14px}.deduction-row{justify-content:space-between;align-items:center;gap:var(--sp-3);width:100%;color:inherit;font:inherit;text-align:left;background:0 0;border:none;padding:0;display:flex}.deduction-list .pts{color:var(--danger);font-family:var(--font-num);font-weight:700}.deduction-row .row-end{align-items:baseline;gap:var(--sp-2);display:flex}.deduction-row .time{color:var(--text-dim);font-family:var(--font-num);font-size:12px}.empty-result{margin-top:var(--sp-3);color:var(--text-dim);text-align:center}.result-actions{margin-top:var(--sp-5)}.replay-panel{right:0;bottom:calc(var(--sab) + var(--sp-3));z-index:var(--z-hud);padding:0 var(--sp-3);justify-content:center;display:flex;position:absolute;left:0}.replay-bar{align-items:center;gap:var(--sp-3);width:100%;max-width:600px;padding:var(--sp-3) var(--sp-4);border:1px solid var(--hud-border);border-radius:var(--r-lg);background:var(--hud-bg);-webkit-backdrop-filter:blur(10px);flex-wrap:wrap;display:flex}.replay-track{flex:220px;align-items:center;min-width:180px;padding-top:16px;display:flex;position:relative}.replay-timeline{appearance:none;background:var(--panel-2);border-radius:3px;flex:1;height:6px}.replay-timeline::-webkit-slider-thumb{-webkit-appearance:none;border:3px solid var(--panel);background:var(--accent);border-radius:50%;width:22px;height:22px}.replay-time{white-space:nowrap;color:var(--text-dim);font-family:var(--font-num);font-size:13px}.replay-marker{top:-4px;left:var(--marker-left,50%);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:flex;position:absolute;transform:translate(-50%)}.replay-marker-dot{width:10px;height:10px;box-shadow:0 0 0 2px var(--panel);pointer-events:none;border-radius:50%}.replay-marker.is-deduction .replay-marker-dot{background:var(--danger)}.replay-marker.is-instruction .replay-marker-dot{background:var(--accent-2)}.replay-marker:active .replay-marker-dot{transform:scale(1.35)}.topbar{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4);display:flex}.topbar .btn{min-height:var(--touch-min);padding:0 var(--sp-3)}.topbar h1{flex:1;font-size:18px}.manual h2{margin:var(--sp-5) 0 var(--sp-2);font-size:18px}.manual p,.manual li{color:var(--text-dim);font-size:14px}.manual ul{padding-left:var(--sp-5);margin-top:var(--sp-1)}.manual li{margin:4px 0}.manual code{border:1px solid var(--line);background:var(--panel-2);border-radius:4px;padding:1px 6px;font-size:12px}.mistake-section{margin-top:var(--sp-4);padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--panel)}.mistake-head{justify-content:space-between;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.mistake-head h2{font-size:16px;font-weight:700}.mistake-actions{gap:var(--sp-2);display:flex}.mistake-list{flex-direction:column;display:flex}.mistake-item{padding:var(--sp-3) 0;border-bottom:1px solid var(--border)}.mistake-item:last-child{border-bottom:none;padding-bottom:0}.mistake-text{font-size:14px;font-weight:600;line-height:1.5}.mistake-meta{color:var(--text-dim);margin-top:4px;font-size:12px}.light-mistake-badge{vertical-align:middle;border:1px solid color-mix(in srgb, var(--danger) 45%, transparent);border-radius:var(--r-full);background:color-mix(in srgb, var(--danger) 16%, transparent);color:var(--danger);margin-left:8px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:scale(.94)translateY(8px)}}.drive-screen{flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.drive-stage{flex:auto;min-height:0;position:relative}.drive-screen>canvas{display:block}.drive-screen .hud{z-index:var(--z-hud);padding:calc(var(--sat) + 62px) var(--sp-3) calc(var(--sab) + max(var(--sp-3), var(--drive-dock-height,0px)));pointer-events:none;flex-direction:column;justify-content:flex-start;display:flex;position:absolute;inset:0}.drive-screen .hud>*{pointer-events:none}.hud-top{justify-content:space-between;align-items:flex-start;gap:var(--sp-2);display:flex}.hud-left{gap:var(--sp-2);flex-direction:column;display:flex}.hud-chip{align-items:center;gap:var(--sp-1);border:1px solid var(--hud-border);border-radius:var(--r-full);background:var(--hud-bg);color:var(--text);-webkit-backdrop-filter:blur(10px);pointer-events:auto;padding:5px 12px;font-size:13px;font-weight:650;display:inline-flex}.hud-chip.score-ok{color:var(--accent-2)}.pullover-distance{border-color:color-mix(in srgb, var(--warn) 52%, transparent);min-width:92px;color:color-mix(in srgb, var(--warn) 82%, var(--text));justify-content:center}.instruction-banner{width:fit-content;max-width:min(94%,520px);margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--hud-border);border-left:3px solid var(--accent);border-radius:var(--r-md);background:var(--drive-surface);box-shadow:var(--shadow-md);text-align:center;pointer-events:auto;animation:banner-in var(--dur-base) var(--ease);align-self:center}.instruction-text{font-size:16px;font-weight:750}.instruction-sub{color:var(--text-dim);margin-top:2px;font-size:12px}.status-bar{justify-content:center;gap:var(--sp-2);flex-wrap:wrap;margin-top:auto;display:flex}.status-pill{border:1px solid var(--hud-border);border-radius:var(--r-full);background:var(--hud-bg);color:var(--text-dim);pointer-events:auto;align-items:center;gap:6px;padding:4px 11px;font-size:12px;display:inline-flex}.status-pill.on{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 55%, transparent)}.status-pill.danger-on{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 55%, transparent)}.status-pill.confirm-on{background:color-mix(in srgb, var(--accent-2) 14%, var(--hud-bg));border-color:color-mix(in srgb, var(--accent-2) 60%, transparent);color:var(--accent-2);animation:1s ease-in-out infinite pulse}.confirm-toast{top:calc(var(--sat) + 118px);z-index:calc(var(--z-hud) + 1);border:1px solid color-mix(in srgb, var(--accent-2) 55%, transparent);background:color-mix(in srgb, var(--accent-2) 18%, var(--hud-bg));color:var(--accent-2);-webkit-backdrop-filter:blur(10px);border-radius:999px;padding:7px 12px;font-size:13px;font-weight:700;position:absolute;left:50%}.seatbelt-warn{top:calc(var(--sat) + 96px);z-index:calc(var(--z-overlay) + 2);border:1px solid var(--danger);background:color-mix(in srgb, var(--danger) 20%, var(--hud-bg));max-width:min(92%,340px);color:var(--danger);text-align:center;-webkit-backdrop-filter:blur(10px);border-radius:999px;padding:8px 16px;font-size:14px;font-weight:800;animation:1s ease-in-out infinite pulse;position:absolute;left:50%}.toasts{bottom:calc(var(--sab) + var(--drive-dock-height,0px) + 8px);z-index:calc(var(--z-overlay) + 1);pointer-events:none;gap:6px;width:min(92%,420px);display:grid;position:absolute;left:50%;transform:translate(-50%)}.toasts:empty{display:none}.toast{border:1px solid var(--hud-border);border-left:3px solid var(--warn);background:var(--hud-bg);-webkit-backdrop-filter:blur(10px);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;font-size:13px;display:flex}.toast b{color:var(--danger)}.toast-fail{border-left-color:var(--danger)}.drive-exit,.drive-pause{top:calc(var(--sat) + var(--sp-2));z-index:calc(var(--z-overlay) + 4);border:1px solid var(--drive-edge);border-radius:var(--r-md);background:var(--drive-surface-strong);width:48px;height:44px;color:var(--text);box-shadow:var(--shadow-sm);padding:0;position:absolute}.drive-exit{left:max(var(--sal), var(--sp-2))}.drive-pause{right:max(var(--sar), var(--sp-2))}.action-btn.drive-exit .ico,.action-btn.drive-pause .ico{font-size:18px;font-weight:800;line-height:1}.prep-panel{overscroll-behavior:contain;border-radius:22px;width:min(100vw - 16px,430px);max-height:min(64dvh,540px);padding:16px;overflow-y:auto}.panel-head{justify-content:space-between;align-items:baseline;gap:var(--sp-2);margin-bottom:12px;display:flex}.panel-head h3{font-size:18px}.panel-caption{color:var(--text-faint);font-size:11px}.prep-steps{gap:8px;display:grid}.prep-step{border:1px solid var(--line);background:color-mix(in srgb, var(--panel-2) 78%, transparent);border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:58px;padding:9px 11px;display:grid}.prep-step.done{border-color:color-mix(in srgb, var(--accent-2) 46%, transparent);opacity:.72}.prep-label{font-size:14px;font-weight:750}.prep-desc{color:var(--text-dim);margin-top:2px;font-size:11px;line-height:1.35}.mirror-adjust{border-top:1px solid var(--line);gap:10px;margin-top:12px;padding-top:12px;display:grid}.mirror-adjust label{color:var(--text-dim);grid-template-columns:74px minmax(0,1fr);align-items:center;gap:8px;font-size:12px;display:grid}.mirror-adjust input[type=range]{width:100%;accent-color:var(--accent)}.mirror-view{top:calc(var(--sat) + var(--sp-3));right:var(--sp-3);z-index:calc(var(--z-hud) + 2);border:1px solid var(--hud-border);border-radius:var(--r-md);background:var(--drive-surface-strong);width:150px;height:96px;box-shadow:var(--shadow-md);pointer-events:auto;position:absolute;overflow:hidden}.mirror-view canvas{width:100%;height:100%;display:block}.drive-controls{z-index:var(--z-hud);width:100%;padding:0 var(--sp-2) calc(var(--sab) + var(--sp-2));pointer-events:none;flex:none;justify-content:center;align-items:flex-end;display:flex}.drive-controls>*{pointer-events:auto}.drive-controls-idle>*{display:none}.phase-light.drive-screen:before{content:"";z-index:calc(var(--z-hud) - 1);pointer-events:none;background:radial-gradient(135% 105% at 50% 110%,#0000 24%,#03081094 72%);position:absolute;inset:0}.lamp-cluster{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;display:grid}.lamp{border:1px solid var(--drive-edge);background:color-mix(in srgb, var(--ctrl-track) 82%, transparent);min-width:0;color:var(--text-faint);transition:color var(--dur-fast), border-color var(--dur-fast), background-color var(--dur-fast), box-shadow var(--dur-fast);border-radius:11px;justify-items:center;gap:3px;padding:6px 2px;display:grid}.lamp svg{width:18px;height:18px}.lamp b{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:9px;line-height:1;overflow:hidden}.lamp.on{background:color-mix(in srgb, currentColor 14%, transparent);box-shadow:0 0 12px color-mix(in srgb, currentColor 24%, transparent);border-color:currentColor}.lamp.on.tone-ok{color:var(--accent-2)}.lamp.on.tone-info{color:var(--info)}.lamp.on.tone-warn{color:var(--warn)}.lamp.on.tone-danger{color:var(--danger)}.lamp.blink{animation:.72s ease-in-out infinite pulse}.light-command-stack{pointer-events:none;gap:7px;display:grid}.light-command-overlay{top:calc(var(--sat) + 62px);z-index:var(--z-hud);width:min(94%,560px);position:absolute;left:50%;transform:translate(-50%)}.light-panel{border:1px solid color-mix(in srgb, var(--drive-edge) 82%, transparent);background:var(--drive-panel);width:min(100vw - 16px,464px);max-height:min(62dvh,522px);box-shadow:var(--shadow-dock), var(--drive-inset);-webkit-backdrop-filter:var(--blur-lg);border-radius:26px;grid-template-rows:auto auto minmax(0,1fr) auto;gap:10px;padding:clamp(9px,2.5vw,12px);display:grid}.phase-light .drive-controls{padding-bottom:max(var(--sab), var(--sp-2));align-items:flex-end}.light-head{justify-content:space-between;align-items:center;gap:12px;min-height:24px;display:flex}.light-title{color:var(--accent);letter-spacing:.14em;font-size:12px;font-weight:900}.light-progress{border:1px solid var(--drive-edge);background:var(--panel-2);border-radius:999px;align-items:center;min-height:26px;padding:0 9px;font-size:12px;font-weight:800;display:inline-flex}.light-command{border:1px solid color-mix(in srgb, var(--accent) 54%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 20%, transparent), color-mix(in srgb, var(--panel) 88%, transparent));min-height:clamp(52px,7dvh,66px);box-shadow:inset 0 0 24px color-mix(in srgb, var(--accent) 8%, transparent);border-left-width:3px;border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:9px 11px;display:flex}.light-command-text{text-align:center;text-wrap:balance;font-size:clamp(21px,5.9vw,28px);font-weight:900;line-height:1.22}.light-voice-dot{background:var(--accent);width:9px;height:9px;box-shadow:0 0 10px color-mix(in srgb, var(--accent) 80%, transparent);border-radius:50%;flex:none;animation:1.1s ease-in-out infinite pulse}.light-confirm{background:var(--panel-2);min-height:34px;color:var(--text-faint);border-radius:999px;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex;position:relative;overflow:hidden}.light-confirm i{transform-origin:0;transform:scaleX(var(--confirm-progress,0));background:color-mix(in srgb, var(--accent-2) 26%, transparent);position:absolute;inset:0}.light-confirm span{z-index:1;text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:0 10px;position:relative;overflow:hidden}.light-confirm.active{color:var(--accent-2)}.light-console{grid-template-columns:minmax(148px,176px) minmax(156px,1fr);align-items:stretch;gap:11px;min-height:clamp(176px,24dvh,214px);display:grid}.light-side{grid-template-rows:minmax(0,1fr) auto;gap:8px;min-width:0;display:grid}.light-btns{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.light-legend{border-top:1px solid var(--line);color:var(--text-dim);text-align:center;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding-top:7px;font-size:10px;line-height:1.15;display:grid}.light-legend span{justify-items:center;gap:3px;display:grid}.light-legend b{background:var(--panel-2);min-height:18px;color:var(--accent);border-radius:999px;align-items:center;padding:0 6px;font-size:9px;display:inline-flex}.rotary{flex-direction:column;align-items:center;gap:6px;display:flex}.rotary-beam{min-height:18px;color:var(--text-faint);transition:color var(--dur-fast);align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}.rotary-beam .led{background:var(--text-faint);width:9px;height:9px;transition:background-color var(--dur-fast), box-shadow var(--dur-fast);border-radius:50%}.rotary-beam.on{color:var(--info)}.rotary-beam.on .led{background:var(--info);box-shadow:0 0 8px var(--info)}.rotary-bezel{--rotary-size:clamp(146px, 36vw, 172px);aspect-ratio:1;width:var(--rotary-size);border:1px solid var(--drive-edge);background:radial-gradient(circle at 50% 32%, var(--ctrl-bezel), var(--ctrl-track) 78%);box-shadow:inset 0 3px 10px #0000006b, var(--drive-inset);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:50%;position:relative}.rotary-dial{background:radial-gradient(circle at 50% 36%, var(--ctrl-face), var(--ctrl-track) 82%);transform:rotate(var(--rotary-angle,0deg));transition:transform .14s var(--ease);border-radius:50%;position:absolute;inset:19%;box-shadow:0 2px 10px #0006,inset 0 1px #ffffff14}.rotary-dial.dragging{transition:none}.rotary-pointer{background:var(--accent);width:4px;height:14px;box-shadow:0 0 6px color-mix(in srgb, var(--accent) 65%, transparent);border:0;border-radius:2px;margin-left:-2px;position:absolute;top:8px;left:50%}.rotary-tick{background:color-mix(in srgb, var(--text-faint) 70%, transparent);transform-origin:50%;width:2.5px;height:13px;transform:rotate(var(--angle,0deg)) translateY(calc(var(--rotary-size,138px) / -2 + 12px));border-radius:2px;margin:-6.5px 0 0 -1.25px;position:absolute;top:50%;left:50%}.rotary-label{width:44px;height:44px;color:var(--text-dim);transform:rotate(var(--label-angle,var(--angle,0deg))) translateY(calc(var(--rotary-size,138px) / -2 + 14px)) rotate(calc(var(--label-angle,var(--angle,0deg)) * -1));background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;margin:-22px 0 0 -22px;font-size:12px;font-weight:850;display:flex;position:absolute;top:50%;left:50%}.rotary-label.active{color:var(--accent);text-shadow:0 0 8px color-mix(in srgb, var(--accent) 45%, transparent)}.rotary-cap{color:var(--text-faint);font-size:10px}.stalk-row{flex-direction:column;align-items:center;gap:5px;width:100%;display:flex}.stalk-track{border:1px solid var(--drive-edge);background:linear-gradient(180deg, var(--ctrl-face), var(--ctrl-track));touch-action:none;-webkit-user-select:none;user-select:none;border-radius:18px;width:min(100%,92px);height:100%;min-height:134px;position:relative;box-shadow:inset 0 2px 10px #00000080}.stalk-track:before{content:"";background:color-mix(in srgb, var(--text-faint) 28%, transparent);width:1px;position:absolute;top:12px;bottom:12px;left:50%}.stalk-track:after{content:"";border:1px dashed color-mix(in srgb, var(--accent) 42%, transparent);pointer-events:none;border-radius:9px;width:26px;height:26px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.stalk-knob{border:1px solid var(--hud-border);background:linear-gradient(180deg, var(--ctrl-face), var(--ctrl-bezel));width:48px;height:41px;transform:translate(calc(-50% + var(--stalk-x,0px)), calc(-50% + var(--stalk-y,0px)));transition:transform .18s var(--ease), border-color var(--dur-fast), box-shadow var(--dur-fast);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:3px;display:flex;position:absolute;top:50%;left:50%;box-shadow:0 3px 8px #00000080,inset 0 1px #ffffff1a}.stalk-knob.dragging{transition:none}.stalk-knob.high{border-color:color-mix(in srgb, var(--info) 70%, transparent);box-shadow:0 0 14px color-mix(in srgb, var(--info) 50%, transparent), 0 3px 8px #00000080}.stalk-grip{background:color-mix(in srgb, var(--text-faint) 60%, transparent);border-radius:1px;width:16px;height:2px}.stalk-arrow{z-index:1;color:var(--text-faint);pointer-events:none;font-size:9px;font-style:normal;line-height:1;position:absolute}.stalk-arrow.up,.stalk-arrow.down{text-align:center;width:100%;left:50%;transform:translate(-50%)}.stalk-arrow.up{top:4px}.stalk-arrow.down{bottom:4px}.stalk-arrow.push{writing-mode:vertical-rl;text-orientation:upright;top:50%;right:3px;transform:translateY(-50%)}.stalk-arrow.pull{writing-mode:vertical-rl;text-orientation:upright;top:50%;left:3px;transform:translateY(-50%)}.axis-turn{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 18%, var(--ctrl-track)), var(--ctrl-track));border-color:color-mix(in srgb, var(--accent) 52%, transparent)}.axis-beam{background:linear-gradient(90deg, color-mix(in srgb, var(--info) 16%, var(--ctrl-track)), color-mix(in srgb, var(--info) 10%, var(--ctrl-track)));border-color:color-mix(in srgb, var(--info) 48%, transparent)}.stalk-cap{white-space:nowrap;color:var(--text-faint);font-size:10px}.light-toggle{border:1px solid var(--drive-edge);background:color-mix(in srgb, var(--ctrl-face) 90%, transparent);width:100%;min-height:62px;color:var(--text-dim);touch-action:manipulation;transition:color var(--dur-fast), border-color var(--dur-fast), background-color var(--dur-fast), transform var(--dur-fast) var(--ease);border-radius:14px;align-content:center;justify-items:center;gap:3px;padding:5px 3px;font-size:12px;font-weight:850;display:grid}.light-toggle:active{transform:scale(.96)}.light-toggle .led{background:var(--text-faint);width:10px;height:10px;transition:background-color var(--dur-fast), box-shadow var(--dur-fast);border-radius:50%}.light-toggle .lt-ico{font-size:19px;line-height:1}.light-toggle.on,.light-toggle.danger-on{background:var(--ctrl-hi)}.light-toggle.on{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 60%, transparent)}.light-toggle.on .led{background:var(--accent);box-shadow:0 0 8px var(--accent)}.light-toggle.danger-on{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 60%, transparent)}.light-toggle.danger-on .led{background:var(--danger);box-shadow:0 0 8px var(--danger)}.road-console{border:1px solid var(--drive-edge);background:var(--drive-panel);width:min(100vw - 14px,524px);box-shadow:var(--shadow-dock), var(--drive-inset);-webkit-backdrop-filter:var(--blur-lg);border-radius:20px;grid-template-rows:auto auto auto;gap:7px;padding:8px;display:grid}.console-grid.locked{opacity:.48;pointer-events:none;filter:saturate(.72)}.road-console .action-btn:disabled{cursor:not-allowed;opacity:.42}.road-console .action-btn:disabled:before{box-shadow:none;background:#94aac838}.readiness-label{color:var(--text-dim);font-size:12px;font-weight:700}.readiness-chip{border:1px solid color-mix(in srgb, var(--accent) 55%, transparent);background:color-mix(in srgb, var(--accent) 16%, transparent);min-height:40px;color:var(--accent);border-radius:999px;justify-content:center;align-items:center;padding:0 18px;font-size:14px;font-weight:800;display:inline-flex}.readiness-chip.warn{border-color:color-mix(in srgb, var(--warn) 60%, transparent);background:color-mix(in srgb, var(--warn) 16%, transparent);color:var(--warn)}.readiness-chip:active{transform:scale(.96)}.road-readiness{border:1px solid color-mix(in srgb, var(--danger) 46%, transparent);background:color-mix(in srgb, var(--danger) 16%, var(--panel));min-height:32px;color:color-mix(in srgb, var(--danger) 78%, white);text-align:center;border-radius:14px;justify-content:center;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:800;display:flex}.road-readiness b{border-radius:var(--r-full);background:#ffffff24;border:1px solid #ffffff2e;justify-content:center;align-items:center;min-width:34px;min-height:26px;padding:0 8px;display:inline-flex}.door-finish{border:1px solid color-mix(in srgb, var(--accent-2) 62%, transparent);background:color-mix(in srgb, var(--accent-2) 18%, var(--panel));width:100%;min-height:44px;color:color-mix(in srgb, var(--accent-2) 82%, white);letter-spacing:.04em;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:14px;justify-content:center;align-items:center;padding:6px 12px;font-size:13px;font-weight:900;display:flex;position:relative;overflow:hidden}.door-finish .door-progress{transform-origin:0;background:color-mix(in srgb, var(--accent-2) 30%, transparent);position:absolute;inset:0;transform:scaleX(0)}.door-finish.holding .door-progress{animation:1.2s linear forwards door-hold}.door-finish.holding{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent-2) 42%, transparent), var(--drive-inset)}@keyframes door-hold{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.dash-cluster{align-items:center;gap:var(--sp-3);border:1px solid var(--drive-edge);background:color-mix(in srgb, var(--ctrl-track) 88%, transparent);border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;width:100%;min-height:48px;padding:5px 12px;display:grid}.dash-cluster[data-ready=false]{opacity:.52}.speedo{justify-items:center;min-width:62px;display:grid}.speedo .value{line-height:1;font-family:var(--font-num);font-size:26px;font-weight:850}.speedo .unit{color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase;margin-top:1px;font-size:10px}.rpmbar{border-radius:var(--r-full);background:var(--panel-2);width:100%;height:12px;overflow:hidden}.rpmbar i{width:var(--rpm,0%);border-radius:inherit;background:var(--accent);height:100%;transition:width 80ms linear;display:block}.gear-box{border:1px solid var(--drive-edge);background:var(--panel-2);min-width:38px;height:38px;font-family:var(--font-num);border-radius:12px;justify-content:center;align-items:center;font-size:19px;font-weight:850;display:flex}.console-grid{grid-template-columns:minmax(78px,.76fr) minmax(84px,.7fr) minmax(132px,1fr);align-items:end;gap:7px;min-height:clamp(92px,16dvh,108px);display:grid}.road-center{place-items:center;min-width:0;display:grid}.steering-wrap{align-items:center;gap:var(--sp-1);flex-direction:column;display:flex}.console-grid .steering-wrap{justify-content:center;height:100%}.console-grid .steering{aspect-ratio:1;border:5px solid var(--ctrl-bezel);background:radial-gradient(circle at 50% 38%, var(--panel-2), var(--panel) 74%);width:clamp(72px,17vw,84px);height:auto;box-shadow:var(--shadow-md), inset 0 2px 8px #0006;touch-action:none;-webkit-user-select:none;user-select:none;transform:rotate(var(--wheel-angle,0deg));border-radius:50%;position:relative}.steering:before{content:"";background:var(--accent);border-radius:50%;width:24%;height:24%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 1px 5px #00000073}.steering:active{border-color:color-mix(in srgb, var(--accent) 55%, var(--ctrl-bezel))}.steering:after{content:"";background:var(--accent);opacity:.92;border-radius:999px;width:9%;height:13%;position:absolute;top:6%;left:50%;transform:translate(-50%)}.steering .spoke{background:color-mix(in srgb, var(--text-dim) 42%, var(--ctrl-face));transform-origin:0;border-radius:999px;height:5.5%;position:absolute;top:50%;left:50%}.steering .spoke:first-child{width:37%;transform:translateY(-50%)rotate(-62deg)}.steering .spoke:nth-child(2){width:37%;transform:translateY(-50%)rotate(62deg)}.steering .spoke:nth-child(3){width:25%;transform:translateY(-50%)}.steering-label{color:var(--text-faint);font-size:10px}.road-console .steering-label,.road-console .stalk-cap{display:none}.console-grid .stalk-row{justify-content:center;height:100%}.console-grid .stalk-track{border-radius:16px;width:min(100%,82px);height:clamp(90px,15dvh,104px)}.console-grid .stalk-track:after{content:"";border:1px dashed color-mix(in srgb, var(--accent) 42%, transparent);pointer-events:none;border-radius:9px;width:26px;height:26px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.stalk-track.axis-beam:after{border-color:color-mix(in srgb, var(--info) 65%, transparent)}.stalk-track.axis-turn:after{border-color:color-mix(in srgb, var(--warn) 65%, transparent)}.stalk-knob{border-radius:11px;width:42px;height:35px}.console-grid .stalk-arrow{font-size:9px}.pedal-group{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:10px;height:clamp(88px,15dvh,104px);display:grid}.pedal{border:1px solid var(--drive-edge);background:color-mix(in srgb, var(--ctrl-track) 90%, transparent);width:100%;height:100%;color:var(--text-dim);touch-action:none;-webkit-user-select:none;user-select:none;transition:filter var(--dur-fast);border-radius:14px;flex-direction:column;justify-content:flex-end;align-items:center;gap:3px;padding-bottom:8px;font-size:11px;font-weight:900;display:flex;position:relative;overflow:hidden}.pedal .fill{height:calc(6% + var(--press,0) * 58%);background:color-mix(in srgb, currentColor 25%, transparent);border-radius:10px 10px 0 0;transition:height 60ms linear;position:absolute;bottom:0;left:0;right:0}.pedal.pedal-brake.active{background:color-mix(in srgb, var(--danger) 24%, var(--ctrl-track));border-color:var(--danger);color:var(--danger)}.pedal.pedal-throttle.active{background:color-mix(in srgb, var(--accent) 22%, var(--ctrl-track));border-color:var(--accent);color:var(--accent)}.control-icon{flex:none;width:20px;height:20px}.road-console>.action-row{grid-template-columns:repeat(var(--action-columns,3), minmax(0, 1fr));grid-auto-rows:var(--touch-min);min-height:var(--touch-min);gap:6px;display:grid}.phase-road .hud{contain:layout paint;overflow:hidden}.road-console .action-btn{width:100%;min-height:var(--touch-min);border:1px solid var(--drive-edge);background:color-mix(in srgb, var(--ctrl-track) 90%, transparent);color:var(--text-dim);transition:transform var(--dur-fast) ease-out, background-color var(--dur-fast) linear;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 1px;font-size:10px;font-weight:850;line-height:1.15;display:flex;position:relative;overflow:hidden}.road-console .action-btn:active{transform:scale(.95)}.road-console .action-btn:before{content:"";width:7px;height:7px;transition:background-color var(--dur-fast), box-shadow var(--dur-fast);background:#94aac861;border-radius:50%;position:absolute;top:6px;left:6px}.road-console .action-btn.on:before{background:var(--accent-2);box-shadow:0 0 8px var(--accent-2)}.road-console .action-btn.danger-on:before{background:var(--danger);box-shadow:0 0 8px var(--danger)}.road-console .action-btn>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.replay-panel{z-index:calc(var(--z-hud) + 3)}@media (width<=360px){.light-panel{width:calc(100vw - 12px);padding:8px}.light-command-overlay{width:calc(100vw - 16px)}.light-console{grid-template-columns:minmax(112px,126px) minmax(126px,1fr);gap:6px;min-height:164px}.light-panel .rotary-bezel{--rotary-size:clamp(128px, 37vw, 148px)}.console-grid{grid-template-columns:minmax(70px,.72fr) minmax(78px,.7fr) minmax(116px,1fr);gap:6px}.road-console .action-btn{min-height:44px;font-size:10.5px}}@media (orientation:landscape) and (width>=640px){.light-command-overlay{top:calc(var(--sat) + 58px);left:max(var(--sal), 18px);width:min(47vw,520px);transform:none}.light-panel{width:clamp(320px,31vw,364px);max-height:calc(100dvh - var(--sat) - var(--sab) - 20px);overscroll-behavior:contain;gap:6px;padding:10px 12px;overflow-y:auto}.light-command{min-height:42px;font-size:17px}.light-command-stack{gap:5px}.light-confirm{min-height:24px;font-size:10px}.light-console{grid-template-columns:minmax(124px,142px) minmax(140px,1fr);gap:7px;min-height:clamp(180px,43dvh,260px)}.light-panel .rotary-bezel{--rotary-size:clamp(114px, 27vh, 134px)}.phase-light .stalk-track{min-height:clamp(104px,24dvh,142px)}.light-legend{display:none}.road-console{width:clamp(310px,31vw,350px);max-height:calc(100dvh - var(--sat) - var(--sab) - 20px);gap:6px;padding:8px 10px;overflow:hidden}.dash-cluster{min-height:38px;padding:4px 10px}.speedo{min-width:52px}.speedo .value{font-size:21px}.gear-box{min-width:32px;height:32px;font-size:17px}.console-grid{grid-template-columns:minmax(62px,.68fr) minmax(66px,.6fr) minmax(102px,.88fr);min-height:clamp(84px,23dvh,98px)}.pedal-group{height:clamp(82px,24dvh,96px)}.road-console>.action-row{min-height:var(--touch-min);gap:5px}.phase-road .hud .hud-left{flex-flow:wrap;gap:6px}.phase-light .hud,.phase-road .hud{padding-top:calc(var(--sat) + 60px);padding-right:clamp(330px,33vw,380px);padding-bottom:calc(var(--sab) + var(--sp-3));display:block;overflow-y:hidden}.instruction-banner{top:calc(var(--sat) + 56px);left:max(var(--sal), 16px);z-index:var(--z-hud);text-align:left;width:min(47vw,560px);max-width:none;margin-top:0;position:absolute;right:auto;transform:none}.toasts{bottom:calc(var(--sab) + 16px);left:max(var(--sal), 16px);width:min(47vw,480px);transform:none}}@media (prefers-reduced-motion:reduce){.instruction-banner,.status-pill.confirm-on,.seatbelt-warn{animation:none}}
