.pwa-update{position:fixed;inset:auto 0 0 0;z-index:1000;display:flex;justify-content:center;padding:max(.85rem,env(safe-area-inset-bottom)) max(.85rem,env(safe-area-inset-right)) max(.85rem,env(safe-area-inset-bottom)) max(.85rem,env(safe-area-inset-left));pointer-events:none}.pwa-update-card{width:min(100%,420px);padding:1rem 1.05rem .95rem;border-radius:18px;border:1px solid rgba(255,255,255,.14);background:linear-gradient(180deg,#101622,#080b12);color:#e9f1ff;box-shadow:0 18px 48px -18px #000000bf,0 0 0 1px #35e0ff14;pointer-events:auto}.pwa-update-title{margin:0 0 .35rem;font-size:1rem;font-weight:700}.pwa-update-text{margin:0;font-size:.86rem;line-height:1.45;color:#d2dcef}.pwa-update-actions{display:flex;justify-content:flex-end;gap:.55rem;margin-top:.95rem}.pwa-update-btn{border:0;border-radius:999px;padding:.58rem .95rem;font:inherit;font-size:.84rem;font-weight:600;cursor:pointer}.pwa-update-btn--ghost{color:#d2dcef;background:#ffffff0f}.pwa-update-btn--primary{color:#05070c;background:linear-gradient(180deg,#5ce0ff,#35b8e0);box-shadow:0 8px 20px -10px #35b8e0e6}.pwa-update-btn:active{transform:scale(.98)}:root{--font-outfit: "Outfit", "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--bg: #f3f5f9;--bg-glow: #e8f0fb;--panel: #ffffff;--text: #060a10;--muted: #2e3848;--accent: #3b82f6;--accent-soft: rgba(59, 130, 246, .18);--accent-2: #60a5fa;--accent-2-soft: rgba(96, 165, 250, .2);--danger: #e5484d;--warn: #e8a317;--ok: #2f9e74;--border: #9aa8bc;--shadow: 0 12px 40px rgba(30, 50, 90, .07);--shadow-sm: 0 4px 16px rgba(30, 50, 90, .05);--radius: 28px;--radius-sm: 16px;--font: var(--font-outfit), "Segoe UI", sans-serif;--mono: var(--font-mono), ui-monospace, monospace;--gauge-0: #bfdbfe;--gauge-1: #93c5fd;--gauge-2: #60a5fa;--gauge-3: #2563eb;--tape-gauge-0: #fde68a;--tape-gauge-1: #facc15;--tape-gauge-2: #eab308;--tape-gauge-3: #ca8a04;--nav-w: 88px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(900px 420px at 12% -8%,var(--bg-glow),transparent 60%),radial-gradient(700px 380px at 90% 0%,#eef2ff,transparent 55%),var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.app-shell{display:flex;min-height:100%;min-height:100dvh}.app-content{flex:1;min-width:0;min-height:0}.nav{width:var(--nav-w);flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:1.25rem .65rem;background:var(--panel);border-right:1px solid var(--border);position:sticky;top:0;height:100vh;z-index:10}.nav-brand{display:flex;flex-direction:column;align-items:center;gap:.35rem}.nav-logo{width:42px;height:42px;border-radius:14px;background:linear-gradient(145deg,#60a5fa,#2563eb);color:#fff;font-weight:800;font-size:.95rem;display:grid;place-items:center;box-shadow:0 8px 20px #2563eb59}.nav-brand-text{font-size:.65rem;font-weight:700;letter-spacing:.12em;color:var(--muted)}.nav-links{display:flex;flex-direction:column;gap:.35rem;width:100%}.nav-link{display:flex;flex-direction:column;align-items:center;gap:.2rem;color:var(--muted);padding:.65rem .35rem;border-radius:14px;font-size:.7rem;font-weight:600;transition:background .15s,color .15s}.nav-ico{font-size:1.1rem;line-height:1}.nav-link.active,.nav-link:hover{color:var(--accent);background:var(--accent-soft)}main{max-width:1280px;margin:0 auto;padding:1.5rem 1.5rem 4rem}h1{font-weight:700;letter-spacing:-.03em;margin:0 0 .2rem;font-size:1.85rem}h2{font-size:.72rem;margin:0;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:800}.eyebrow{margin:0 0 .15rem;font-size:.75rem;font-weight:600;color:var(--accent);letter-spacing:.04em}.sub,.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:.85em}.panel,.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.15rem 1.25rem;box-shadow:var(--shadow-sm)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.85rem}.status-soft{font-size:.8rem;color:var(--accent);font-weight:600;text-transform:capitalize}.row{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;align-items:center}label{font-size:.85rem;font-weight:600;color:var(--muted)}input,select,button,textarea{font:inherit;border-radius:12px;border:1px solid var(--border);background:#f7f9fc;color:var(--text);padding:.45rem .7rem}button{cursor:pointer;background:#eef2f8;transition:transform .1s,box-shadow .1s,background .15s}button:hover:not(:disabled){background:#e4eaf4}button.primary{background:var(--accent);border-color:transparent;color:#fff;font-weight:600}button.danger{background:var(--danger);border-color:transparent;color:#fff}.pill{display:inline-block;padding:.2rem .55rem;border-radius:999px;background:#eef2f8;font-size:.8rem}.pill.ok{background:#e3f6ef;color:var(--ok)}.pill.bad{background:#fde8e8;color:var(--danger)}.text-link{color:var(--accent);font-size:.85rem;font-weight:600}.text-link:hover{text-decoration:underline}.tof-card .parking-radar{max-width:300px}.tof-card .pr-track{stroke:#dbe3f0}.tof-card .pr-tick{stroke:#c5d0e0}.tof-card .pr-mm{color:var(--text)}.tof-card .pr-scale{fill:var(--muted)}.tof-card .pr-bumper{fill:#94a3b8}.tof-card .pr-body{fill:#64748b}.dash{max-width:1200px}.dash-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.35rem}.dash-hero-actions{display:flex;flex-direction:column;align-items:stretch;gap:.5rem}.ble-btn{min-height:2.5rem;padding:.45rem .85rem;font-weight:700;font-size:.82rem;border-radius:14px;border:1px solid rgba(56,189,248,.45);background:linear-gradient(180deg,#0c4a6e,#0369a1);color:#e0f2fe;cursor:pointer}.ble-btn.connected{border-color:#4ade8080;background:linear-gradient(180deg,#14532d,#15803d);color:#ecfdf5}.ble-btn:disabled{opacity:.55;cursor:not-allowed}.ble-status.ble-unavailable{font-size:.78rem;color:var(--muted, #94a3b8);padding:.35rem 0;display:flex;flex-direction:column;gap:.2rem;max-width:14rem}.ble-hint{font-size:.72rem;line-height:1.3;color:var(--muted, #94a3b8)}.ble-hint-code code{font-size:.68rem;word-break:break-all}.estop-btn{min-width:9rem;min-height:3.2rem;font-weight:800;letter-spacing:.04em;border-radius:18px;border:none;background:linear-gradient(180deg,#ff6b6b,#e03131);color:#fff;box-shadow:0 10px 24px #e0313159}.estop-btn:active{transform:translateY(2px)}.estop-btn.armed{background:linear-gradient(180deg,#fcc419,#f59f00);box-shadow:0 10px 24px #f59f0059;color:#1a1408}.insight-row{display:grid;gap:1rem;grid-template-columns:1fr;margin-bottom:1rem}@media (min-width: 900px){.insight-row{grid-template-columns:1.1fr 1.2fr}}@media (min-width: 1100px){.insight-row-3{grid-template-columns:1fr 1.05fr 1fr}}.tape-gauge{display:flex;flex-direction:column;align-items:center;gap:.55rem}.tape-gauge-arc{width:100%;display:flex;flex-direction:column;align-items:center}.tape-arc-svg .tape-arc-tick{fill:var(--muted);font-size:11px;font-weight:700;font-family:var(--font)}.tape-pos-val{color:#ca8a04!important}.tape-gauge-stage{width:100%;max-width:260px;border-radius:16px;overflow:hidden;border:1px solid var(--border);background:#f7f9fc}.tape-robot-nose{padding:.45rem .55rem .2rem;background:linear-gradient(180deg,#fff,#eef2f8);display:flex;flex-direction:column;align-items:center;gap:.3rem}.tape-nose-cap{width:42%;height:8px;border-radius:8px 8px 2px 2px;background:#cbd5e1}.tape-ir-row{display:grid;grid-template-columns:repeat(5,1fr);gap:.35rem;width:100%}.tape-ir-dot{display:grid;place-items:center}.tape-ir-dot i{width:14px;height:14px;border-radius:50%;background:#334155;box-shadow:inset 0 1px 2px #fff3;display:block;transition:box-shadow .15s,background .15s}.tape-ir-dot.on i{background:#facc15;box-shadow:0 0 10px #facc15d9}.tape-world{position:relative;height:44px;background:linear-gradient(180deg,#d6d3d1,#a8a29e)}.tape-world-band{position:absolute;top:8px;bottom:8px;transform:translate(-50%);border-radius:6px;background:linear-gradient(90deg,#eab308,#fde047,#ca8a04);box-shadow:0 4px 12px #ca8a0466;transition:left .2s ease,width .2s ease,opacity .2s}.tape-world-band.ghost{opacity:.25;filter:grayscale(.5)}.tape-world-center{position:absolute;top:4px;width:2px;height:8px;transform:translate(-50%);background:#1e3a8a;border-radius:2px;transition:left .2s ease}.tape-bit-row{display:flex;justify-content:center;gap:.25rem;padding:.35rem;font-size:.7rem;font-weight:700}.tape-gauge.compact .tape-gauge-stage{max-width:100%}.tape-gauge.lost .tape-pos-val{color:var(--muted)!important}.parking-radar{width:100%;max-width:260px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:.15rem;flex:1;min-height:0;justify-content:center}.parking-radar.size-lg{max-width:min(100%,340px)}.parking-radar-svg{width:100%;height:auto;display:block;overflow:visible;filter:drop-shadow(0 0 20px rgba(61,214,255,.08))}.pr-track{fill:none;stroke:#2a3548;stroke-width:14;stroke-linecap:round}.pr-arc{fill:none;stroke-width:14;stroke-linecap:round;transition:opacity .25s,filter .25s}.pr-arc.clear{stroke:#7dffb3;filter:drop-shadow(0 0 6px rgba(125,255,179,.35))}.pr-arc.caution{stroke:#ffc14d;filter:drop-shadow(0 0 6px rgba(255,193,77,.35))}.pr-arc.slow{stroke:#ff9f43;filter:drop-shadow(0 0 6px rgba(255,159,67,.35))}.pr-arc.stop{stroke:#ff4d5e;filter:drop-shadow(0 0 8px rgba(255,77,94,.4))}.pr-arc.on.pulse{animation:pr-pulse .7s ease-in-out infinite alternate}@keyframes pr-pulse{0%{opacity:.55}to{opacity:1;filter:drop-shadow(0 0 14px #ff4d5e)}}.pr-tick{stroke:#3a4558;stroke-width:1.5}.pr-bumper{fill:#d5dee8;stroke:#9aabbc;stroke-width:1.5}.pr-body{fill:#9aabbc}.pr-lens{fill:#3dd6ff;filter:drop-shadow(0 0 10px #3dd6ff)}.pr-scale{fill:#4d586c;font-size:12px;font-weight:800;font-family:var(--font)}.pr-scale.tight{font-size:11px}.parking-radar-readout{text-align:center;margin-top:-.15rem}.pr-mm{font-size:2.35rem;font-weight:800;letter-spacing:-.04em;color:#fff;line-height:1}.parking-radar.size-lg .pr-mm{font-size:clamp(2.4rem,5vh,3.2rem)}.pr-mm span{font-size:.85rem;margin-left:.3rem;color:#3dd6ff;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.pr-zone{margin-top:.3rem;font-size:.85rem;font-weight:800;letter-spacing:.12em;color:#8b95a8}.parking-radar.size-lg .pr-zone{font-size:.95rem}.pr-zone.z-clear{color:#7dffb3;text-shadow:0 0 12px rgba(125,255,179,.55)}.pr-zone.z-caution,.pr-zone.z-slow{color:#ffc14d;text-shadow:0 0 12px rgba(255,193,77,.5)}.pr-zone.z-stop{color:#ff4d5e;text-shadow:0 0 12px rgba(255,77,94,.6)}.parking-radar.fault .pr-lens{fill:#ff4d5e;filter:drop-shadow(0 0 8px #ff4d5e)}.tape-tuner{width:100%;display:flex;flex-direction:column;gap:.65rem;flex:1;min-height:0;justify-content:center;padding:.15rem .1rem .25rem}.tt-head{display:flex;align-items:center;justify-content:flex-end;gap:.45rem}.tt-stereo{margin-left:0;font-size:.62rem;font-weight:800;letter-spacing:.1em;padding:.2rem .45rem;border-radius:4px;border:1px solid #2a3344;color:#4a5568}.tt-stereo.on{color:#7dffb3;border-color:#7dffb373;box-shadow:0 0 12px #7dffb340}.tt-display{text-align:center;background:#07090e;border:1px solid #243044;border-radius:12px;padding:.65rem .5rem .55rem;box-shadow:inset 0 0 24px #3dd6ff0f}.tt-freq{font-size:clamp(2rem,4.5vh,2.85rem);font-weight:800;font-family:var(--mono);letter-spacing:.06em;color:#7dffb3;text-shadow:0 0 18px rgba(125,255,179,.45);line-height:1}.tape-tuner.lost .tt-freq{color:#64748b;text-shadow:none}.tt-freq-unit{margin-top:.2rem;font-size:.65rem;font-weight:700;letter-spacing:.16em;color:#ffc14d}.tt-dial{border-radius:14px;padding:.55rem .45rem .65rem;background:linear-gradient(180deg,#1e2636,#121820);border:1px solid #2a3344;box-shadow:inset 0 1px #ffffff0d}.tt-dial-glass{position:relative;height:72px;border-radius:8px;background:linear-gradient(180deg,#0c1018,#151c28);border:1px solid #1e2636;overflow:hidden}.tt-scale{position:absolute;left:4%;right:4%;top:6px;display:flex;justify-content:space-between;font-size:.65rem;font-weight:800;color:#c8d4e8;letter-spacing:.04em;z-index:2}.tt-zero{color:#ffc14d}.tt-ticks{position:absolute;left:4%;right:4%;top:28px;bottom:18px;background:repeating-linear-gradient(90deg,#3a4558 0 1px,transparent 1px 8px);opacity:.7;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.tt-station{position:absolute;top:30px;bottom:14px;transform:translate(-50%);border-radius:4px;background:linear-gradient(180deg,#fde047,#ca8a04);box-shadow:0 0 16px #facc158c;transition:left .22s ease,width .22s ease,opacity .2s;z-index:1}.tt-station.ghost{opacity:.2;filter:grayscale(.5)}.tt-needle{position:absolute;top:22px;bottom:8px;width:3px;transform:translate(-50%);background:linear-gradient(180deg,#fff,#3dd6ff);border-radius:2px;box-shadow:0 0 10px #3dd6ffcc;transition:left .22s ease;z-index:3}.tt-needle:before{content:"";position:absolute;top:-4px;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#fff}.tt-needle.dim{opacity:.35;box-shadow:none}.tt-presets{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem}.tt-preset{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.45rem .2rem;border-radius:10px;border:1px solid #3a4a62;background:#0f131a;color:#a8b8d0;cursor:default}.tt-preset i{width:12px;height:12px;border-radius:50%;background:#334155;display:block;transition:background .15s,box-shadow .15s}.tt-preset span{font-size:.7rem;font-weight:800;font-family:var(--mono)}.tt-preset.on{border-color:#ffc14d8c;color:#ffc14d;box-shadow:0 0 14px #ffc14d33}.tt-preset.on i{background:#facc15;box-shadow:0 0 12px #facc15e6}.tt-meters{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.tt-meter{display:flex;align-items:center;gap:.4rem;font-size:.62rem;font-weight:800;letter-spacing:.08em;color:#a8b8d0}.tt-bars{display:flex;align-items:flex-end;gap:3px;height:16px}.tt-bars i{width:5px;border-radius:1px;background:#243044;display:block;height:40%}.tt-bars i:nth-child(2){height:50%}.tt-bars i:nth-child(3){height:60%}.tt-bars i:nth-child(4){height:70%}.tt-bars i:nth-child(5){height:80%}.tt-bars i:nth-child(6){height:90%}.tt-bars i:nth-child(7),.tt-bars i:nth-child(8){height:100%}.tt-bars i.on{background:#7dffb3;box-shadow:0 0 6px #7dffb399}.tt-status{font-size:.75rem;font-weight:800;letter-spacing:.1em;display:flex;align-items:baseline;gap:.35rem}.tt-status.ok{color:#7dffb3;text-shadow:0 0 10px rgba(125,255,179,.4)}.tt-status.bad{color:#ff4d5e}.tt-status small{font-size:.65rem;color:#b4c4da;letter-spacing:0;font-weight:700}.tape-tuner-light .tape-tuner{color:var(--text)}.tape-tuner-light .tt-display{background:#0f172a;border-color:#1e293b}.tape-tuner-light .tt-dial{background:linear-gradient(180deg,#e8eef8,#d5dee8);border-color:var(--border)}.tape-tuner-light .tt-dial-glass{background:linear-gradient(180deg,#1e293b,#0f172a);border-color:#334155}.tape-tuner-light .tt-preset{background:#f7f9fc;border-color:var(--border)}.tape-tuner-light .tt-stereo{border-color:var(--border)}.ir-card{margin-bottom:1rem;overflow:hidden}.ir-tape{display:grid;gap:1rem}.ir-tape-stage{display:grid;gap:0;border-radius:22px;overflow:hidden;border:1px solid var(--border);background:#eef2f8}.ir-deck{position:relative;padding:.85rem 1.1rem .35rem;background:linear-gradient(180deg,#fff,#f3f6fb);border-bottom:1px dashed #d5deeb}.ir-deck-label{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.65rem}.ir-sensors{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;max-width:560px;margin:0 auto;width:100%}.ir-sensor{display:flex;flex-direction:column;align-items:center;gap:.25rem}.ir-eye{width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#4b5568,#111827 70%);box-shadow:inset 0 2px 4px #ffffff26,0 6px 14px #0f172a2e;display:grid;place-items:center;transition:box-shadow .2s,transform .2s}.ir-pupil{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#94a3b8,#0f172a);box-shadow:0 0 0 3px #94a3b840}.ir-sensor.on .ir-eye{transform:translateY(-2px);box-shadow:inset 0 2px 4px #fff3,0 0 0 4px #facc1559,0 10px 22px #eab30859}.ir-sensor.on .ir-pupil{background:radial-gradient(circle at 30% 30%,#fde68a,#ca8a04);box-shadow:0 0 12px #facc15e6}.ir-id{font-size:.72rem;font-weight:700;color:var(--text)}.ir-w{font-family:var(--mono);font-size:.65rem;color:var(--muted)}.ir-beam-row{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;max-width:560px;margin:.35rem auto 0;width:100%;height:28px}.ir-beam{justify-self:center;width:3px;height:100%;border-radius:999px;background:linear-gradient(180deg,transparent,rgba(100,116,139,.25))}.ir-beam.hit{background:linear-gradient(180deg,#facc1526,#facc15);box-shadow:0 0 12px #facc158c}.ir-floor{position:relative;height:118px;background:linear-gradient(180deg,#d6d3d1,#a8a29e 55%,#78716c);overflow:hidden}.ir-floor-grain{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.35;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.25) 0 1px,transparent 2px),radial-gradient(circle at 70% 60%,rgba(0,0,0,.12) 0 1px,transparent 2px);background-size:18px 18px,22px 22px;pointer-events:none}.ir-tape-band{position:absolute;top:18px;bottom:28px;transform:translate(-50%);border-radius:10px;background:linear-gradient(90deg,#eab308,#facc15 40%,#fde047,#facc15 60%,#ca8a04);box-shadow:0 0 0 1px #a1620759,0 8px 24px #ca8a0473;transition:left .25s ease,width .25s ease,opacity .25s}.ir-tape-band.ghost{opacity:.22;filter:grayscale(.4)}.ir-tape-sheen{position:absolute;top:10%;right:18%;bottom:10%;left:18%;border-radius:8px;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.45) 48%,transparent 62%);pointer-events:none}.ir-tape-center-mark{position:absolute;left:50%;top:8px;bottom:8px;width:2px;transform:translate(-50%);background:#78350f59;border-radius:2px}.ir-pos-needle{position:absolute;top:8px;width:2px;height:12px;transform:translate(-50%);background:#1e3a8a;border-radius:2px;box-shadow:0 0 0 3px #3b82f659;transition:left .25s ease;z-index:2}.ir-scale{position:absolute;left:12%;right:12%;bottom:8px;display:flex;justify-content:space-between;font-size:.65rem;font-weight:700;letter-spacing:.04em;color:#ffffffd9;text-shadow:0 1px 2px rgba(0,0,0,.35)}.ir-tape-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.85rem}.ir-bits{display:flex;align-items:center;gap:.35rem;font-size:.95rem;font-weight:700}.ir-bits .bit-on{color:#ca8a04;background:#facc1533;padding:.15rem .4rem;border-radius:6px}.ir-bits .bit-off{color:var(--muted);background:#f0f4fa;padding:.15rem .4rem;border-radius:6px}.ir-bits-raw{margin-left:.5rem;font-size:.75rem;color:var(--muted);font-weight:500}.ir-readouts{display:flex;gap:1.25rem;flex-wrap:wrap}.ok-text{color:var(--ok)}.bad-text{color:var(--danger)}.ir-tape.locked .ir-floor{box-shadow:inset 0 0 0 2px #facc1540}.card-title-row{display:inline-flex;align-items:center;gap:.35rem;margin:0;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}h1 .info-tip,h2 .info-tip,.card-title-row .info-tip{text-transform:none;letter-spacing:0}.info-tip{position:relative;display:inline-flex;vertical-align:middle;z-index:1}.info-tip-btn{width:1.05rem;height:1.05rem;padding:0;border-radius:999px;border:1px solid var(--border);background:#eef2f8;color:var(--accent);font-size:.65rem;font-weight:800;font-family:var(--font);line-height:1;display:grid;place-items:center;cursor:help}.info-tip-btn:hover,.info-tip-btn:focus-visible{background:var(--accent);color:#fff;border-color:var(--accent);outline:none}.info-tip-bubble.portal{position:fixed;left:0;top:0;transform:none;width:max-content;max-width:min(280px,calc(100vw - 20px));padding:.55rem .7rem;border-radius:12px;background:#1a1f2e;color:#f3f5f9;font-size:.78rem;font-weight:500;font-family:var(--font);line-height:1.4;letter-spacing:0;text-transform:none;box-shadow:0 12px 32px #00000059;pointer-events:none;z-index:10000;transition:opacity .1s}.info-tip-bubble.portal:after{content:"";position:absolute;left:var(--arrow-left, 50%);transform:translate(-50%);border:6px solid transparent}.info-tip-bubble.portal.top:after{top:100%;border-top-color:#1a1f2e}.info-tip-bubble.portal.bottom:after{bottom:100%;border-bottom-color:#1a1f2e}.speed-text{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.05rem;line-height:1.15}.speed-mps{font-weight:700}.speed-kmh{font-size:.72rem;font-weight:600;color:var(--muted)}.speed-kmh.dual{margin-top:-.35rem;margin-bottom:.55rem}.dual-speed .big-metric{margin-bottom:.15rem}.chip{display:inline-flex;flex-direction:column;align-items:center;line-height:1.15;gap:.1rem}.chip-mps{font-weight:700}.chip-kmh{font-size:.62rem;color:var(--muted);font-family:var(--font);font-weight:600}.chip.on .chip-kmh{color:var(--accent)}.nav-label-row{display:inline-flex;align-items:center;gap:.2rem}.ir-tape.lost .ir-deck-label:after{content:" · sem fita";color:var(--danger)}.insight{min-height:260px}.zone-chip{font-size:.7rem;padding:.2rem .55rem;border-radius:999px;background:#eef2f8;color:var(--muted);text-transform:uppercase;font-weight:700}.zone-chip.zone-stop{background:#fde8e8;color:var(--danger)}.zone-chip.zone-slow,.zone-chip.zone-caution{background:#fff4d6;color:#9a6b00}.zone-chip.zone-clear{background:#e3f6ef;color:var(--ok)}.semi-gauge{display:flex;flex-direction:column;align-items:center}.semi-gauge-svg{width:100%;max-width:220px;height:auto;filter:drop-shadow(0 8px 16px rgba(37,99,235,.15))}.semi-gauge-readout{text-align:center;margin-top:-.4rem}.semi-gauge-value{font-size:2.1rem;font-weight:800;color:var(--accent);letter-spacing:-.03em;line-height:1}.semi-gauge-unit{font-size:.72rem;color:var(--accent-2);letter-spacing:.08em;text-transform:uppercase;margin-top:.25rem}.chart-block{margin-top:.5rem}.spark{width:100%;display:block;border-radius:12px}.spark.empty{display:grid;place-items:center;color:var(--muted);font-size:.8rem;background:#f7f9fc}.ring-stat{position:relative;display:flex;flex-direction:column;align-items:center;padding:.25rem 0 .5rem}.ring-svg{width:150px;height:150px;filter:drop-shadow(0 0 24px rgba(96,165,250,.45))}.ring-track{fill:none;stroke:#e8eef8;stroke-width:10}.ring-prog{fill:none;stroke:var(--accent);stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .4s ease}.ring-center{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);text-align:center}.ring-pct{font-size:1.75rem;font-weight:800;color:var(--accent);line-height:1}.ring-sub{font-size:.72rem;color:var(--muted);margin-top:.2rem}.ring-title{margin-top:.35rem;font-size:.85rem;font-weight:600;color:var(--text)}.mission-time{display:flex;align-items:baseline;gap:.35rem;flex-wrap:wrap;margin-bottom:1rem}.mission-big{font-size:2.6rem;font-weight:800;letter-spacing:-.04em;line-height:1}.mission-unit{font-size:.85rem;font-weight:600;color:var(--muted);margin-right:.55rem}.mission-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1rem}.meta-label{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.15rem}.meta-val{font-weight:700;font-size:.95rem}.seg-bar{display:flex;align-items:stretch;gap:4px;height:10px;border-radius:6px;overflow:hidden}.seg{display:block;border-radius:4px;background:#dbe3f0}.seg.filled{background:#1a1f2e}.seg.mid{background:#c5d0e0}.seg.ticks{flex:1;background:repeating-linear-gradient(90deg,#c5d0e0 0 2px,transparent 2px 5px)}.seg.accent{background:var(--accent)}.dash-main{display:grid;gap:1rem;grid-template-columns:1fr;margin-bottom:1rem}@media (min-width: 980px){.dash-main{grid-template-columns:1fr 1.05fr 1fr}}.mode-cards{display:grid;gap:.55rem}.mode-card{text-align:left;padding:.9rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:#f7f9fc;display:grid;gap:.15rem;box-shadow:none}.mode-card.on{border-color:transparent;background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent)}.mode-card:disabled{opacity:.45}.mode-title{font-weight:700;font-size:1rem}.mode-desc{font-size:.8rem;color:var(--muted)}.slider-label{display:grid;gap:.4rem;margin-top:1rem;font-size:.85rem}.slider-label input[type=range]{width:100%;accent-color:var(--accent)}.joystick-wrap{display:flex;flex-direction:column;align-items:center;gap:.75rem}.joystick-wrap.disabled{opacity:.45;pointer-events:none}.joystick-pad{position:relative;width:min(100%,260px);aspect-ratio:1;border-radius:28px;background:linear-gradient(160deg,#f8fafc,#eef2f8);border:1px solid var(--border);box-shadow:inset 0 2px 8px #ffffffe6,var(--shadow-sm);touch-action:none;-webkit-user-select:none;user-select:none;overflow:hidden}.joystick-pad.active{box-shadow:inset 0 2px 10px #fffffff2,0 0 0 2px var(--accent-soft),var(--shadow)}.joystick-grid{position:absolute;top:12%;right:12%;bottom:12%;left:12%;background-image:radial-gradient(circle,#c5d0e0 1.4px,transparent 1.5px);background-size:14px 14px;opacity:.85;border-radius:12px;pointer-events:none}.joy-label{position:absolute;font-size:.65rem;font-weight:700;letter-spacing:.08em;color:var(--muted);pointer-events:none}.joy-n{top:10px;left:50%;transform:translate(-50%)}.joy-s{bottom:10px;left:50%;transform:translate(-50%)}.joy-w{left:12px;top:50%;transform:translateY(-50%)}.joy-e{right:12px;top:50%;transform:translateY(-50%)}.joystick-thumb{position:absolute;left:50%;top:50%;width:64px;height:64px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 35% 30%,#fff,#dbeafe 55%,#93c5fd);box-shadow:0 10px 28px #2563eb59,0 0 0 8px #93c5fd40,0 0 0 16px #bfdbfe33;transition:box-shadow .15s;pointer-events:none}.joystick-pad.active .joystick-thumb{box-shadow:0 12px 32px #2563eb73,0 0 0 10px #93c5fd59,0 0 0 20px #bfdbfe40}.joystick-meta{display:flex;justify-content:space-between;width:min(100%,260px);font-size:.8rem}.joy-cmd{font-weight:700;color:var(--accent)}.speed-chips{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;margin-top:.35rem}.chip{border-radius:999px;padding:.4rem .75rem;font-family:var(--mono);font-size:.8rem;background:#f0f4fa;border:1px solid transparent}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:700}.chart-card .big-metric{font-size:1.85rem;font-weight:800;letter-spacing:-.03em;margin-bottom:.65rem;color:var(--text)}.big-metric .slash{color:var(--muted);margin:0 .2rem;font-weight:500}.big-metric .unit{font-size:.85rem;color:var(--muted);font-weight:600;margin-left:.4rem}.legend{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--muted)}.lg{width:10px;height:10px;border-radius:50%;display:inline-block}.lg.a{background:var(--accent)}.lg.b{background:var(--accent-2);margin-left:.45rem}.mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.85rem}.dash-bottom{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width: 900px){.dash-bottom{grid-template-columns:1.6fr 1fr}}.link-row{display:flex;align-items:center;gap:.45rem;font-size:.9rem}.dot{width:.55rem;height:.55rem;border-radius:50%;display:inline-block;background:#c5d0e0}.dot.ok{background:var(--ok)}.dot.bad{background:var(--danger)}.kv{margin:0;display:grid;gap:.65rem}.kv>div{display:flex;justify-content:space-between;gap:.75rem;border-bottom:1px solid var(--border);padding-bottom:.45rem}.kv dt{color:var(--muted);font-size:.8rem}.kv dd{margin:0;font-weight:600}.dash-links{display:flex;flex-direction:column;gap:.45rem;margin-top:1rem}.dash-links a{color:var(--accent);font-size:.9rem;font-weight:600}.dash-links a:hover{text-decoration:underline}.grid{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width: 900px){.grid{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:1fr 1fr 1fr}}.watch-grid{display:grid;gap:1rem}@media (min-width: 900px){.watch-grid{grid-template-columns:300px 1fr}}.tag-list{list-style:none;margin:0;padding:0}.tag-list li{margin-bottom:.35rem}.table-filters{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.85rem}.catalog-panel{max-height:70vh;overflow:auto}.catalog-tables{display:grid;gap:.75rem}.catalog-table{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.55rem .65rem;background:#f7f9fc}.catalog-table-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;gap:.5rem}.table-select{display:flex;align-items:center;gap:.45rem;color:var(--text);font-size:.9rem}.watch-group{margin-bottom:1rem}.watch-group-title{margin:0 0 .4rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.normal-case{text-transform:none;letter-spacing:0;font-weight:400}.watch-table{width:100%;border-collapse:collapse;font-size:.9rem}.watch-table th,.watch-table td{text-align:left;padding:.45rem .5rem;border-bottom:1px solid var(--border)}.timeline{margin-top:1rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-sm)}.timeline input[type=range]{width:100%;accent-color:var(--accent)}.timeline-ends{display:flex;justify-content:space-between;font-size:.8rem;margin-top:.25rem}.form-grid{display:grid;gap:.75rem;max-width:480px}.form-grid label{display:grid;gap:.25rem}@media (max-width: 720px){.app-shell{flex-direction:column}.nav{width:100%;height:auto;flex-direction:row;justify-content:space-between;padding:.65rem 1rem;position:sticky;border-right:none;border-bottom:1px solid var(--border)}.nav-brand{flex-direction:row;gap:.5rem}.nav-links{flex-direction:row;width:auto}.nav-link{flex-direction:row;gap:.35rem;padding:.45rem .65rem;font-size:.8rem}.nav-ico{font-size:.95rem}}.app-shell:has(.pnl){--nav-w: 70px;background:#05070c}.app-shell:has(.pnl) .nav{background:#080b12;border-right-color:#ffffff0f}.app-shell:has(.pnl) .nav-brand-text,.app-shell:has(.pnl) .nav-link{color:#c8d6ea}.app-shell:has(.pnl) .nav-link.active,.app-shell:has(.pnl) .nav-link:hover{color:#35e0ff;background:#35e0ff1f}.app-content:has(.pnl){display:flex;flex-direction:column;height:100dvh;overflow:hidden}.pnl{--ink: #05070c;--txt: #ffffff;--dim: #d2dcef;--faint: #b4c4da;--line: rgba(255, 255, 255, .24);--line-2: rgba(255, 255, 255, .42);--cyan: #4de8ff;--blue: #6ba0ff;--lime: #6dffb0;--amber: #ffd060;--red: #ff6078;--gap: clamp(.4rem, .9vh, .8rem);--pad: clamp(.5rem, 1.1vh, .95rem);--r-lg: clamp(18px, 2.6vh, 30px);--r-md: clamp(12px, 1.8vh, 18px);--r-sm: 10px;max-width:none;width:100%;margin:0;padding:var(--pad);height:100dvh;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:var(--gap);color:var(--txt);font-variant-numeric:tabular-nums;-webkit-tap-highlight-color:transparent;overscroll-behavior:contain;background:radial-gradient(120% 75% at 50% -25%,rgba(76,141,255,.2),transparent 62%),radial-gradient(70% 60% at 4% 108%,rgba(167,123,255,.14),transparent 70%),radial-gradient(70% 60% at 96% 108%,rgba(53,224,255,.12),transparent 70%),var(--ink)}.pnl.is-estop:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4;box-shadow:inset 0 0 clamp(60px,12vh,150px) #ff4d644d;animation:pnl-estop-amb 2.4s ease-in-out infinite}@keyframes pnl-estop-amb{50%{box-shadow:inset 0 0 clamp(40px,8vh,100px) #ff4d6429}}.pnl-top{display:flex;align-items:center;gap:var(--gap);padding:clamp(.3rem,.7vh,.55rem) clamp(.5rem,1vw,.9rem);border-radius:var(--r-lg);border:1px solid var(--line-2);background:linear-gradient(180deg,#ffffff17,#ffffff08);box-shadow:inset 0 1px #ffffff1a}.pnl-brand{position:relative;display:flex;align-items:center;gap:.55rem;min-width:0}.pnl-flash{position:absolute;left:calc(100% + .55rem);top:50%;transform:translateY(-50%);white-space:nowrap;pointer-events:none;font-size:clamp(.58rem,1.3vh,.7rem);font-weight:650;letter-spacing:.04em;color:var(--cyan);text-shadow:0 0 12px rgba(53,224,255,.45);opacity:.9}.pnl-logo{width:clamp(30px,4.2vh,40px);height:clamp(30px,4.2vh,40px);flex-shrink:0;border-radius:12px;display:grid;place-items:center;font-size:clamp(.55rem,1.3vh,.68rem);font-weight:900;letter-spacing:.06em;color:#04121a;background:linear-gradient(150deg,#7ef0ff,#2b7cff);box-shadow:0 0 20px #35e0ff59}.pnl-brand-txt{display:flex;flex-direction:column;line-height:1.2;min-width:0}.pnl-brand-txt strong{font-size:clamp(.8rem,1.9vh,1.02rem);letter-spacing:-.01em;white-space:nowrap}.pnl-brand-txt small{font-size:clamp(.6rem,1.35vh,.72rem);color:var(--dim);white-space:nowrap}.tl{flex:1;min-width:0;display:flex;align-items:flex-end;justify-content:center;gap:clamp(.15rem,.7vw,.55rem)}.tl-lamp{--lamp: #8a9ab8;min-width:clamp(36px,5.2vw,52px);padding:.22rem .28rem .28rem;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:.18rem;border-radius:10px;color:var(--lamp);transition:color .35s ease,background .35s ease,box-shadow .35s ease,opacity .35s ease}.tl-lamp svg{width:clamp(16px,2.6vh,22px);height:clamp(16px,2.6vh,22px);fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.tl-gear{margin:0;padding:0;border:none;background:transparent;color:#dce4f4f2;font-size:clamp(.85rem,2.2vh,1.15rem);font-weight:800;letter-spacing:.04em;line-height:1;transition:color .4s ease,text-shadow .4s ease,transform .25s ease}.tl-gear.on{color:#7ef0ff;text-shadow:0 0 10px rgba(53,224,255,.95),0 0 24px rgba(53,224,255,.55);transform:scale(1.18)}.tl-lamp:has(.tl-gear){gap:.18rem;padding-block:.22rem .28rem}.tl-lamp.tl-lamp-gear.lit{background:transparent;box-shadow:none;color:var(--lamp)}.tl-lamp.tl-lamp-gear.lit .tl-tag{opacity:.72;color:var(--faint);text-shadow:none}.tl-tag{margin:0;font-style:normal;font-size:clamp(.42rem,1.05vh,.55rem);font-weight:800;letter-spacing:.06em;text-transform:uppercase;line-height:1;white-space:nowrap;opacity:.92;transition:opacity .35s ease,color .35s ease,text-shadow .35s ease}.tl-lamp.lit{color:var(--lamp-on);background:var(--lamp-bg);box-shadow:inset 0 0 0 1px var(--lamp-ring),0 0 16px -3px var(--lamp-glow)}.tl-lamp.lit .tl-tag{opacity:1;color:var(--lamp-on);text-shadow:0 0 10px var(--lamp-glow)}.tl-lamp.lime{--lamp-on: var(--lime);--lamp-bg: rgba(95, 242, 162, .12);--lamp-ring: rgba(95, 242, 162, .32);--lamp-glow: rgba(95, 242, 162, .6)}.tl-lamp.amber{--lamp-on: var(--amber);--lamp-bg: rgba(255, 194, 71, .12);--lamp-ring: rgba(255, 194, 71, .32);--lamp-glow: rgba(255, 194, 71, .6)}.tl-lamp.cyan{--lamp-on: var(--cyan);--lamp-bg: rgba(53, 224, 255, .12);--lamp-ring: rgba(53, 224, 255, .32);--lamp-glow: rgba(53, 224, 255, .6)}.tl-lamp.red{--lamp-on: var(--red);--lamp-bg: rgba(255, 77, 100, .14);--lamp-ring: rgba(255, 77, 100, .35);--lamp-glow: rgba(255, 77, 100, .7)}.tl-lamp.pulse{animation:tl-blink 1.1s steps(1,end) infinite}.tl-lamp.tl-interactive{cursor:pointer;border:none;background:transparent;font:inherit;padding:.22rem .28rem .28rem;-webkit-tap-highlight-color:transparent}.tl-lamp.tl-interactive:disabled{cursor:wait;opacity:.65}.tl-lamp.cyan.pulse:not(.lit){color:#35e0ff80}.tl-lamp.cyan.pulse:not(.lit) .tl-tag{color:#35e0ff8c;opacity:1;text-shadow:0 0 10px rgba(53,224,255,.4)}@keyframes tl-blink{50%{opacity:.32}}.pnl-top-right{display:flex;align-items:center;gap:clamp(.35rem,.8vw,.65rem)}.pnl-link{display:inline-flex;align-items:center;gap:.4rem;padding:.28rem .6rem;border-radius:999px;border:1px solid var(--line-2);background:#ffffff14;font-size:clamp(.55rem,1.2vh,.66rem);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);white-space:nowrap}.pnl-link i{width:.45rem;height:.45rem;border-radius:50%;background:var(--faint)}.pnl-link b{color:var(--txt);letter-spacing:0;font-size:.95em}.pnl-link.ok{color:var(--lime)}.pnl-link.ok i{background:var(--lime);box-shadow:0 0 10px var(--lime)}.pnl-link.warn{color:var(--amber)}.pnl-link.warn i{background:var(--amber);box-shadow:0 0 10px var(--amber)}.pnl-link.down{color:var(--red);border-color:#ff4d644d}.pnl-link.down i{background:var(--red);box-shadow:0 0 10px var(--red)}.pnl-estop{min-width:clamp(5rem,8vw,7rem);min-height:clamp(2.2rem,5vh,2.9rem);padding:0 clamp(.6rem,1.2vw,1rem);border:none;border-radius:var(--r-md);font-size:clamp(.72rem,1.7vh,.92rem);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff;cursor:pointer;background:linear-gradient(180deg,#ff5f72,#d61f38);box-shadow:inset 0 1px #ffffff59,0 10px 22px -10px #d61f38e6;transition:transform .08s,box-shadow .15s}.pnl-estop:active{transform:translateY(1px)}.pnl-estop.armed{color:#1d1503;background:linear-gradient(180deg,#ffd257,#f0a000);box-shadow:inset 0 1px #ffffff80,0 0 24px -4px #ffc247cc}.pnl-main{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.34fr) minmax(0,1fr);gap:var(--gap)}.inst{position:relative;min-height:0;display:flex;flex-direction:column;gap:clamp(.25rem,.75vh,.6rem);padding:clamp(.45rem,1vh,.85rem) clamp(.5rem,1vw,.95rem) clamp(.5rem,1.1vh,.9rem);border-radius:var(--r-lg);border:1px solid var(--line-2);background:linear-gradient(180deg,#ffffff17,#ffffff06 55%,#ffffff0d);box-shadow:inset 0 1px #ffffff1a,0 26px 50px -32px #000}.inst.anim-in{animation:inst-enter .7s cubic-bezier(.22,1,.36,1) both}.pnl-prox.anim-in{animation-delay:.05s}.pnl-center.anim-in{animation-delay:.16s}.pnl-tape.anim-in{animation-delay:.28s}@keyframes inst-enter{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}.inst:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:radial-gradient(120% 55% at 50% -10%,rgba(76,141,255,.1),transparent 60%)}.pnl-center{border-color:#ffffff21;box-shadow:inset 0 1px #ffffff1a,0 0 60px -30px #35e0ff8c,0 26px 50px -30px #000}.inst-h{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:clamp(1.1rem,2.4vh,1.5rem)}.inst-title{display:inline-flex;align-items:center;gap:.35rem;font-size:clamp(.56rem,1.3vh,.7rem);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--txt)}.inst-tag{font-style:normal;font-size:clamp(.54rem,1.25vh,.68rem);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--txt);padding:.2rem .5rem;border-radius:999px;border:1px solid var(--line-2);background:#ffffff14;white-space:nowrap}.inst-tag.z-clear{color:var(--lime);border-color:#5ff2a252}.inst-tag.z-caution,.inst-tag.z-slow{color:var(--amber);border-color:#ffc24752}.inst-tag.z-stop{color:var(--red);border-color:#ff4d6459}.inst-tag.cap{display:inline-flex;align-items:baseline;gap:.32rem;text-transform:none;letter-spacing:.02em}.inst-tag.cap span{text-transform:uppercase;letter-spacing:.12em}.inst-tag.cap b{color:var(--cyan);font-size:clamp(.68rem,1.6vh,.88rem)}.inst-tag.cap small{color:var(--faint);letter-spacing:0}.inst-body{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}.pnl .parking-radar,.pnl .parking-radar.size-lg{width:100%;max-width:100%;height:100%;gap:0;justify-content:center}.pnl .parking-radar .parking-radar-svg{flex:1;min-height:0;height:100%}.pnl .parking-radar .parking-radar-readout{margin-top:clamp(-.4rem,-.8vh,-.2rem)}.pnl .parking-radar.size-lg .pr-mm{font-size:clamp(1.8rem,5.6vh,3.1rem);letter-spacing:-.045em}.pnl .parking-radar .pr-mm span{font-size:.3em;margin-left:.35rem;color:var(--cyan)}.pnl .parking-radar.size-lg .pr-zone{margin-top:.15rem;font-size:clamp(.6rem,1.45vh,.76rem);letter-spacing:.18em}.pnl .parking-radar .pr-track{stroke:#ffffff3d}.pnl .parking-radar .pr-tick{stroke:#ffffff61}.pnl .parking-radar .pr-scale{fill:var(--dim)}.pnl .parking-radar .pr-bumper{fill:#151c2a;stroke:#ffffff61;stroke-width:1.5}.pnl .parking-radar .pr-body{fill:#0e131e}.zl{flex:0 0 auto;display:grid;gap:clamp(.15rem,.5vh,.32rem)}.zl-row{--zc: var(--faint);display:grid;grid-template-columns:4px minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:clamp(.22rem,.65vh,.42rem) clamp(.4rem,.8vw,.6rem);border-radius:var(--r-sm);border:1px solid transparent;background:#ffffff06;color:var(--faint);font-size:clamp(.56rem,1.3vh,.7rem);font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:color .2s,background .2s,border-color .2s}.zl-row i{height:clamp(10px,1.8vh,16px);border-radius:3px;background:var(--zc);opacity:.72}.zl-row .zl-range{color:var(--faint);letter-spacing:0;text-transform:none;font-size:.9em}.zl-row.z-clear{--zc: var(--lime)}.zl-row.z-caution,.zl-row.z-slow{--zc: var(--amber)}.zl-row.z-stop{--zc: var(--red)}.zl-row.lit{color:var(--zc);background:#ffffff0e;border-color:color-mix(in srgb,var(--zc) 30%,transparent)}.zl-row.lit i{opacity:1;box-shadow:0 0 10px var(--zc)}.zl-row.lit .zl-range{color:var(--dim)}.sp{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(2rem,5.5vh,3.5rem)}.sp-dial{position:relative;flex:0 1 auto;width:100%;aspect-ratio:1;max-height:100%;display:grid;place-items:center}.sp-svg{width:100%;height:100%;max-height:100%;touch-action:none;-webkit-user-select:none;user-select:none}.sp-bezel{fill:#0c111b;stroke:#ffffff1a;stroke-width:1.5}.sp-face{fill:url(#sp-face)}.sp-track{fill:none;stroke:#ffffff38;stroke-width:12;stroke-linecap:round}.sp-allowed{fill:none;stroke:#4c8dff33;stroke-width:12;stroke-linecap:round}.sp-over{fill:none;stroke:#ff4d6426;stroke-width:12;stroke-linecap:round}.sp-prog{fill:none;stroke-width:12;stroke-linecap:round;stroke-dasharray:1;filter:drop-shadow(0 0 9px rgba(53,224,255,.45))}.sp.zone-warn .sp-prog{filter:drop-shadow(0 0 9px rgba(255,194,71,.5))}.sp.zone-danger .sp-prog{filter:drop-shadow(0 0 10px rgba(255,77,100,.55))}.sp-tick{stroke:#ffffff8c;stroke-width:1.4}.sp-tick.major{stroke:#fff;stroke-width:2.6}.sp-tick-label{fill:var(--txt);font-family:var(--font);font-size:10px;font-weight:800;paint-order:stroke fill;stroke:#05070c;stroke-width:3px;stroke-linejoin:round}.sp-cap{cursor:grab}.sp-cap:active{cursor:grabbing}.sp-cap-line{stroke:#35e0ff73;stroke-width:2;stroke-linecap:round}.sp-knob-halo{fill:#35e0ff29}.sp-knob{fill:var(--cyan);stroke:#eaf4ff;stroke-width:1.6;filter:drop-shadow(0 0 8px rgba(53,224,255,.8))}.sp-cap:focus-visible{outline:none}.sp-cap:focus-visible .sp-knob-halo{fill:#35e0ff66;stroke:#eaf4ff;stroke-width:1.5}.sp-needle{fill:#f2f7ff;filter:drop-shadow(0 2px 8px rgba(0,0,0,.65));transition:none}.sp.zone-warn .sp-needle{fill:var(--amber)}.sp.zone-danger .sp-needle{fill:var(--red)}.sp-hub{fill:#111826;stroke:#ffffff2e;stroke-width:1.5}.sp-hub-core{fill:#eaf4ff}.sp-read{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);text-align:center;line-height:1;pointer-events:none;z-index:2}.sp-val{font-size:clamp(1.45rem,4.6vh,2.45rem);font-weight:800;letter-spacing:-.05em;color:#fff;text-shadow:0 0 28px rgba(77,232,255,.45),0 1px 2px rgba(0,0,0,.8);transition:color .35s ease,text-shadow .35s ease}.sp-unit{margin-top:.15rem;font-size:clamp(.48rem,1.15vh,.62rem);font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--cyan);transition:color .35s ease}.sp.zone-warn .sp-unit{color:var(--amber)}.sp.zone-danger .sp-unit{color:var(--red)}.sp-kmh{margin-top:.2rem;font-size:clamp(.5rem,1.2vh,.64rem);font-weight:700;color:var(--dim)}.sp-cmd-ref{margin-top:.35rem;font-size:clamp(.48rem,1.1vh,.58rem);font-weight:600;color:var(--faint);letter-spacing:.02em}.sp-ed{position:absolute;left:50%;bottom:28%;transform:translate(-50%);display:flex;justify-content:center;gap:clamp(1rem,2.8vw,1.75rem);pointer-events:none;z-index:2}.sp-ed-col{display:flex;flex-direction:column;align-items:center;gap:.1rem;min-width:2.8rem}.sp-ed-col span{font-size:clamp(.45rem,1.05vh,.55rem);font-weight:800;letter-spacing:.14em;color:var(--dim)}.sp-ed-col strong{display:inline-flex;align-items:baseline;gap:.2rem;font-size:clamp(.64rem,1.45vh,.82rem);font-weight:800;color:#fff;font-variant-numeric:tabular-nums;line-height:1;transition:color .3s ease}.sp-ed-col strong em{font-style:normal;font-size:.55em;font-weight:700;letter-spacing:.04em;color:var(--dim)}.sp-ed-col small{font-size:clamp(.5rem,1.15vh,.64rem);font-weight:600;color:var(--faint);line-height:1;white-space:nowrap}.sp-ed-col small.sp-ed-cmd{font-size:clamp(.45rem,1vh,.55rem);color:var(--dim);opacity:.85}.sp-hub-bottom{position:absolute;left:50%;bottom:11%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.95rem;z-index:4}.sp-turns{display:flex;justify-content:center;align-items:center;gap:1.45rem;pointer-events:none}.sp-turn{display:grid;place-items:center;width:26px;height:26px;color:#dce4f433;pointer-events:none;transition:color .2s ease,filter .2s ease}.sp-turn-icon{width:100%;height:100%;fill:currentColor;stroke:none}.sp-turn.on{color:#3dff9a;filter:drop-shadow(0 0 6px rgba(61,255,154,.9));animation:sp-turn-blink .7s step-end infinite}@keyframes sp-turn-blink{0%,46%{opacity:1}47%,to{opacity:.12}}.sp-prnd{display:flex;align-items:center;gap:clamp(.55rem,1.6vw,1.1rem);pointer-events:auto}.sp-gear{padding:0;margin:0;border:none;background:transparent;color:#dce4f4f2;font-size:clamp(.85rem,2.2vh,1.15rem);font-weight:800;letter-spacing:.04em;line-height:1;cursor:pointer;transition:color .4s ease,text-shadow .4s ease,transform .25s ease,opacity .35s ease}.sp-gear:hover:not(:disabled){color:#e9f1ffd9}.sp-gear.on{color:#7ef0ff;text-shadow:0 0 10px rgba(53,224,255,.95),0 0 24px rgba(53,224,255,.55);transform:scale(1.18)}.sp-gear:disabled{opacity:.45;cursor:not-allowed}.sp-max-presets{flex:0 0 auto;width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(.55rem,1.6vw,1rem)}.sp-max-chip{display:inline-flex;flex-direction:column;align-items:center;gap:.05rem;min-width:clamp(2.8rem,5.2vw,3.6rem);padding:clamp(.32rem,.75vh,.48rem) .55rem;border-radius:var(--r-sm);border:1px solid var(--line);background:#ffffff08;color:var(--txt);cursor:pointer;transition:color .25s ease,background .25s ease,border-color .25s ease,box-shadow .25s ease}.sp-max-chip b{font-family:var(--mono);font-size:clamp(.62rem,1.45vh,.78rem);font-weight:600}.sp-max-chip small{font-size:clamp(.44rem,1vh,.55rem);color:var(--faint)}.pnl button.sp-max-chip:hover{border-color:var(--line-2);background:#ffffff14;color:var(--txt)}.pnl button.sp-max-chip:hover small{color:var(--dim)}.pnl button.sp-max-chip.on{color:var(--cyan);border-color:#35e0ff99;background:#35e0ff1f;box-shadow:0 0 16px -6px #35e0ffb3}.pnl button.sp-max-chip.on:hover{background:#35e0ff2e;color:var(--cyan)}.pnl button.sp-max-chip.on:hover small,.pnl button.sp-max-chip.on small{color:var(--cyan)}.pnl .tape-tuner{width:100%;height:100%;padding:0;gap:clamp(.3rem,.9vh,.65rem);justify-content:space-evenly}.pnl .tape-tuner .tt-display{padding:clamp(.35rem,1vh,.7rem) .5rem;border-radius:var(--r-md);background:#04070d;border-color:#ffffff12}.pnl .tape-tuner .tt-freq{font-size:clamp(1.5rem,4.8vh,2.6rem)}.pnl .tape-tuner .tt-freq-unit{font-size:clamp(.5rem,1.2vh,.64rem)}.pnl .tape-tuner .tt-speed{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.25rem,.8vh,.45rem);width:100%}.pnl .tape-tuner .tt-speed-btn{display:flex;flex-direction:column;align-items:center;gap:.05rem;padding:clamp(.38rem,1vh,.52rem) .2rem;border-radius:999px;border:1px solid var(--line-2);background:#ffffff0f;color:var(--dim);font:inherit;font-size:clamp(.5rem,1.35vh,.62rem);font-weight:800;letter-spacing:.06em;cursor:pointer;transition:color .25s ease,background .25s ease,border-color .25s ease,box-shadow .25s ease}.pnl .tape-tuner .tt-speed-btn b{font-size:clamp(.72rem,1.8vh,.92rem);font-weight:800;line-height:1;letter-spacing:.02em}.pnl .tape-tuner .tt-speed-btn small{font-size:clamp(.42rem,1vh,.52rem);font-weight:700;letter-spacing:.08em;opacity:.75}.pnl .tape-tuner .tt-speed-btn:hover:not(:disabled){color:var(--txt);border-color:var(--line-2);background:#ffffff12}.pnl .tape-tuner .tt-speed-btn.on{color:var(--amber);border-color:#ffc14d8c;background:#ffc14d1f;box-shadow:0 0 14px -4px #ffc14da6}.pnl .tape-tuner .tt-speed-btn:disabled{opacity:.5;cursor:not-allowed}.pnl .tape-tuner .tt-actions{display:flex;flex-direction:column;align-items:center;gap:.35rem}.pnl .tape-tuner .tt-tune{width:100%;max-width:12rem;padding:.4rem 1rem;border-radius:999px;border:1px solid rgba(120,180,255,.35);background:#508cdc1a;color:#9fd4ff;font:inherit;font-size:clamp(.62rem,1.5vh,.76rem);font-weight:800;letter-spacing:.12em;cursor:pointer}.pnl .tape-tuner .tt-tune:disabled{opacity:.45;cursor:not-allowed}.pnl .tape-tuner .tt-note{margin:0;width:100%;text-align:center;font-size:clamp(.5rem,1.2vh,.62rem);font-weight:700;line-height:1.35;color:var(--dim)}.pnl .tape-tuner .tt-start,.pnl .tape-tuner .tt-stop{width:100%;max-width:12rem;padding:clamp(.45rem,1.2vh,.65rem) 1rem;border-radius:999px;border:1px solid transparent;font:inherit;font-size:clamp(.72rem,1.8vh,.88rem);font-weight:800;letter-spacing:.14em;cursor:pointer;transition:color .25s ease,background .25s ease,border-color .25s ease,box-shadow .25s ease,opacity .25s ease}.pnl .tape-tuner .tt-start{color:#05070c;background:linear-gradient(180deg,#ffc14d,#e6a020);border-color:#ffc14da6;box-shadow:0 0 18px -4px #ffc14dbf}.pnl .tape-tuner .tt-start:hover:not(:disabled){box-shadow:0 0 24px -2px #ffc14de6}.pnl .tape-tuner .tt-stop{color:#e9f1ff;background:#ff4d6424;border-color:#ff4d6473}.pnl .tape-tuner .tt-stop:hover:not(:disabled){background:#ff4d6438}.pnl .tape-tuner .tt-start:disabled,.pnl .tape-tuner .tt-stop:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.pnl .tape-tuner .tt-head{display:none}.pnl .tape-tuner .tt-dial{border-radius:var(--r-md);border-color:var(--line);background:linear-gradient(180deg,#ffffff0f,#ffffff04)}.pnl .tape-tuner .tt-dial-glass{height:clamp(64px,13vh,122px)}.pnl .tape-tuner .tt-station{top:52%;bottom:auto;height:clamp(20px,3.6vh,32px);transform:translate(-50%,-50%)}.pnl .tape-tuner .tt-preset{border-radius:var(--r-sm);border-color:var(--line-2);background:#ffffff14;color:var(--dim);padding:clamp(.3rem,.85vh,.5rem) .2rem}.pnl .tape-tuner .tt-preset.on{border-color:#ffc14d8c;color:#ffc14d;box-shadow:0 0 14px #ffc14d33}.pnl .tape-tuner .tt-preset.on i{background:#facc15;box-shadow:0 0 12px #facc15e6}.pnl .tape-tuner .tt-stereo,.pnl .tape-tuner .tt-meter,.pnl .tape-tuner .tt-status{font-size:clamp(.54rem,1.25vh,.68rem)}.pnl-bottom{flex:0 0 auto;display:flex;align-items:stretch;gap:clamp(.5rem,1.2vw,1rem);padding:clamp(.4rem,.9vh,.7rem) clamp(.55rem,1.1vw,1rem);border-radius:var(--r-lg);border:1px solid var(--line-2);background:linear-gradient(180deg,#ffffff14,#ffffff06);box-shadow:inset 0 1px #ffffff1a}.pnl-chips{flex:1;min-width:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.1rem,.45vh,.3rem) clamp(.5rem,1.2vw,1.1rem);align-content:center}.chp{min-width:0;display:flex;flex-direction:column}.chp span{font-size:clamp(.48rem,1.1vh,.6rem);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}.chp strong{font-size:clamp(.68rem,1.5vh,.84rem);font-weight:700;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chp.link-ok strong{color:var(--cyan)}.chp.link-warn strong{color:var(--amber)}.chp.link-down strong{color:var(--red)}.pnl-joy{flex:0 0 auto;display:flex;align-items:center;padding-left:clamp(.5rem,1.2vw,1rem);border-left:1px solid var(--line);margin-left:auto}.pnl .joystick-wrap{flex-direction:row;align-items:center;gap:clamp(.4rem,1vw,.75rem)}.pnl .joystick-pad{width:clamp(78px,13vh,118px);border-radius:var(--r-md);border:1px solid var(--line);background:radial-gradient(circle at 50% 32%,rgba(76,141,255,.16),transparent 62%),#080c14;box-shadow:inset 0 1px #ffffff0f}.pnl .joystick-pad.active{box-shadow:inset 0 1px #ffffff14,0 0 0 2px #35e0ff40}.pnl .joystick-grid{background-image:radial-gradient(circle,rgba(255,255,255,.16) 1.2px,transparent 1.3px);background-size:12px 12px;opacity:.6}.pnl .joystick-thumb{width:clamp(20px,3.4vh,30px);height:clamp(20px,3.4vh,30px);background:radial-gradient(circle at 35% 30%,#fff,#9fe9ff 55%,#35e0ff);box-shadow:0 6px 16px #35e0ff66,0 0 0 4px #35e0ff29}.pnl .joystick-pad.active .joystick-thumb{box-shadow:0 8px 20px #35e0ff80,0 0 0 5px #35e0ff3d}.pnl .joy-label{font-size:clamp(.42rem,1vh,.55rem);font-weight:800;color:var(--dim)}.pnl .joystick-meta{flex-direction:column;align-items:flex-start;gap:.1rem;width:auto;max-width:clamp(4.5rem,8vw,7rem)}.pnl .joystick-meta .muted{font-size:clamp(.46rem,1.05vh,.58rem);line-height:1.25;color:var(--dim);font-weight:600}.pnl .joy-cmd{font-size:clamp(.72rem,1.7vh,.92rem);color:var(--cyan)}.pnl .info-tip-btn{width:clamp(.85rem,1.9vh,1.05rem);height:clamp(.85rem,1.9vh,1.05rem);background:#ffffff0f;border-color:var(--line);color:var(--cyan);font-size:.6rem}.pnl .info-tip-btn:hover,.pnl .info-tip-btn:focus-visible{background:var(--cyan);border-color:var(--cyan);color:#04121a}@media (orientation: portrait){.app-content:has(.pnl){height:auto;min-height:100dvh;overflow:visible}.pnl{height:auto;min-height:100dvh;overflow-x:clip;overflow-y:visible;align-content:start;grid-template-rows:auto auto auto;gap:clamp(.5rem,1.4vw,.9rem);padding:clamp(.5rem,1.6vw,1rem);--r-lg: clamp(20px, 4vw, 30px);--r-md: clamp(14px, 3vw, 18px)}.pnl-top{flex-wrap:wrap;row-gap:.45rem}.tl{order:3;flex:1 0 100%;justify-content:center;gap:clamp(.35rem,2vw,1.1rem);padding-top:.4rem;border-top:1px solid var(--line)}.pnl-top-right{margin-left:auto}.pnl-main{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}.pnl-center{order:-1;grid-column:1 / -1}.pnl-center .inst-body{flex:0 0 auto;height:min(42vh,360px)}.pnl-prox .inst-body{flex:0 0 auto;height:min(30vh,270px)}.pnl-tape .inst-body{flex:1 1 auto;min-height:min(30vh,270px)}.pnl-bottom{flex-wrap:wrap;row-gap:.6rem}.pnl-chips{flex:1 1 100%;gap:.35rem 1rem}.pnl-joy{border-left:0;padding-left:0;margin-left:auto}.tl-lamp{min-width:clamp(32px,6vw,48px)}.sp-val{font-size:clamp(1.9rem,7vw,3rem)}.sp-unit{font-size:clamp(.55rem,1.7vw,.72rem)}.sp-kmh{font-size:clamp(.58rem,1.8vw,.75rem)}.sp-gear{font-size:clamp(1rem,3.2vw,1.3rem)}.pnl .parking-radar.size-lg .pr-mm{font-size:clamp(2rem,7vw,3rem)}.pnl .tape-tuner .tt-freq{font-size:clamp(1.6rem,6vw,2.6rem)}.pnl .tape-tuner .tt-dial-glass{height:clamp(70px,14vw,120px)}.pnl .joystick-pad{width:clamp(96px,22vw,132px)}.pnl .joystick-thumb{width:clamp(24px,5.5vw,32px);height:clamp(24px,5.5vw,32px)}}@media (max-width: 640px){.app-shell:has(.pnl) .nav{flex-wrap:wrap;row-gap:.4rem}.app-shell:has(.pnl) .nav-links{flex:1 1 100%;justify-content:space-between}.app-shell:has(.pnl) .nav-link{padding:.35rem .4rem;font-size:.72rem}.app-shell:has(.pnl) .nav-link .info-tip{display:none}.pnl-main{grid-template-columns:minmax(0,1fr)}.pnl-center{grid-column:auto}.pnl-chips{grid-template-columns:repeat(2,minmax(0,1fr))}.pnl-joy{flex:1 1 100%;justify-content:center;border-left:0;padding-left:0;margin-left:0}.tl{flex-wrap:wrap;justify-content:center}.pnl-brand-txt small,.pnl-link .pnl-link-txt{display:none}.pnl-estop{min-width:auto}}@media (orientation: landscape) and (max-height: 460px){.app-content:has(.pnl),.pnl{height:auto;min-height:100dvh;overflow:visible}.pnl-center .inst-body{flex:0 0 auto;height:240px}.pnl-prox .inst-body{flex:0 0 auto;height:200px}.pnl-tape .inst-body{flex:1 1 auto;min-height:200px}}.pnl .parking-radar.urgency-clear .pr-arc.clear.on{animation:pr-breathe 2.4s ease-in-out infinite}.pnl .parking-radar.urgency-caution .pr-arc.on{animation:pr-blink-caution 1.35s ease-in-out infinite}.pnl .parking-radar.urgency-slow .pr-arc.on{animation:pr-blink-slow .75s ease-in-out infinite}.pnl .parking-radar.urgency-stop .pr-arc.on{animation:pr-blink-stop .42s ease-in-out infinite}.pnl .parking-radar.urgency-caution .pr-mm,.pnl .parking-radar.urgency-slow .pr-mm,.pnl .parking-radar.urgency-stop .pr-mm{animation:pr-readout-pulse 1.2s ease-in-out infinite}.pnl .parking-radar.urgency-stop .pr-mm{animation-duration:.5s}.pnl .parking-radar.urgency-slow .pr-mm{animation-duration:.8s}@keyframes pr-breathe{0%,to{opacity:.7}50%{opacity:1}}@keyframes pr-blink-caution{0%,to{opacity:.45}50%{opacity:1;filter:drop-shadow(0 0 12px rgba(255,194,71,.7))}}@keyframes pr-blink-slow{0%,to{opacity:.35}50%{opacity:1;filter:drop-shadow(0 0 14px rgba(255,159,67,.85))}}@keyframes pr-blink-stop{0%,to{opacity:.25}50%{opacity:1;filter:drop-shadow(0 0 16px rgba(255,77,94,1))}}@keyframes pr-readout-pulse{0%,to{opacity:.75}50%{opacity:1}}.pnl .sp-prog{transition:stroke-dashoffset .35s ease,stroke .35s ease,opacity .2s ease}.pnl .sp-needle{transition:fill .35s ease}.pnl .tape-tuner .tt-freq{transition:color .35s ease,text-shadow .35s ease}.pnl .tape-tuner .tt-preset{transition:color .3s ease,border-color .3s ease,box-shadow .3s ease,background .3s ease}.pnl .tape-tuner .tt-preset i{transition:background .3s ease,box-shadow .3s ease}@media (prefers-reduced-motion: reduce){.pnl.is-estop:before,.tl-lamp.pulse,.inst.anim-in,.pnl .parking-radar .pr-arc.on,.pnl .parking-radar .pr-mm{animation:none!important}.pnl .sp-prog{transition:none}}.app-shell:has(.pnl-m){background:#05070c}.app-content:has(.pnl-m){display:flex;flex-direction:column;width:100%;height:100dvh;overflow:hidden}.pnl.pnl-m{grid-template-rows:minmax(0,1fr);gap:0;padding:clamp(.45rem,1.4vw,.85rem);height:100dvh;min-height:100dvh;overflow:hidden}.pnl-m-main{min-height:0;display:flex;flex-direction:column}.pnl-m-speed{flex:1;min-height:0;overflow:visible;border-color:#ffffff61;box-shadow:inset 0 1px #ffffff24,0 0 60px -30px #35e0ff8c,0 26px 50px -30px #000}.pnl-m-speed .tl-widget{flex:0 0 auto;flex-shrink:0;width:100%;min-width:0;display:flex;flex-wrap:nowrap;justify-content:space-between;gap:clamp(.08rem,.8vw,.35rem);padding:0 clamp(.1rem,.8vw,.3rem) clamp(.25rem,1.2vw,.5rem);border-bottom:1px solid var(--line);overflow:visible}.pnl-m-speed .tl-widget .tl-lamp{min-width:clamp(2rem,9vw,2.75rem);flex:1 1 0;padding:.18rem .06rem .22rem}.pnl-m-speed .tl-widget .tl-lamp svg{width:clamp(14px,3.6vw,18px);height:clamp(14px,3.6vw,18px)}.pnl-m-speed .tl-widget .tl-gear{font-size:clamp(.85rem,3.4vw,1.05rem)}.pnl-m-speed .tl-widget .tl-tag{display:block;font-size:clamp(.42rem,2.6vw,.52rem);font-weight:800;letter-spacing:.03em;white-space:nowrap;overflow:visible;opacity:1;color:var(--dim)}.pnl-m-speed .tl-widget .tl-lamp.lit .tl-tag{opacity:1}.pnl-m-speed .tl-widget .tl-lamp.tl-interactive{cursor:pointer;border:none;background:transparent;font:inherit;-webkit-tap-highlight-color:transparent}.pnl-m-speed .tl-widget .tl-lamp.tl-interactive:disabled{cursor:wait;opacity:.65}.pnl-m-speed .tl-widget .tl-lamp.cyan.pulse:not(.lit){color:#35e0ff8c}.pnl-m-speed .tl-widget .tl-lamp.cyan.pulse:not(.lit) .tl-tag{color:#35e0ff8c;opacity:1;text-shadow:0 0 10px rgba(53,224,255,.45)}.pnl-m-speed-row{flex:1;min-height:0;display:flex;flex-direction:column}.pnl-m-speed-row.has-side .pnl-m-speed-gauge{display:none}.pnl-m-speed-row:not(.has-side) .pnl-m-speed-gauge,.pnl-m-speed-row.has-side.show-gauge .pnl-m-speed-gauge{display:flex;flex:1;min-height:0;align-items:center;justify-content:center}.pnl-m-speed-row.has-side.show-gauge .pnl-m-side{display:none}.pnl-m-view-fab{position:fixed;right:max(.85rem,env(safe-area-inset-right));bottom:calc(4.75rem + env(safe-area-inset-bottom,0px));z-index:30;width:3.15rem;height:3.15rem;display:grid;place-items:center;border:1px solid rgba(53,224,255,.45);border-radius:999px;color:#7ef0ff;background:linear-gradient(180deg,#152033,#0b111c);box-shadow:inset 0 1px #ffffff1f,0 10px 24px -10px #000,0 0 18px -4px #35e0ff8c;cursor:pointer;-webkit-tap-highlight-color:transparent}.pnl-m-view-fab:active{transform:scale(.94)}.pnl-m-side{display:flex;flex:1;min-width:0;min-height:0;align-items:center;justify-content:center;padding:clamp(.25rem,1.2vw,.55rem) clamp(.15rem,1vw,.4rem) 0}.pnl-m-side .tape-tuner{width:100%;height:100%;max-height:100%;min-height:0;overflow:hidden}.pnl-m .joystick-wrap{width:100%;height:100%;max-height:100%;flex-direction:column;align-items:center;justify-content:center;gap:clamp(.35rem,1.2vh,.65rem)}.pnl-m .joystick-pad{width:min(100%,72vw);max-height:min(100%,72vw);aspect-ratio:1;border-radius:var(--r-md);border:1px solid var(--line);background:radial-gradient(circle at 50% 32%,rgba(76,141,255,.16),transparent 62%),#080c14;box-shadow:inset 0 1px #ffffff0f}.pnl-m .joystick-pad.active{box-shadow:inset 0 1px #ffffff14,0 0 0 2px #35e0ff40}.pnl-m .joystick-grid{background-image:radial-gradient(circle,rgba(255,255,255,.16) 1.2px,transparent 1.3px);background-size:12px 12px;opacity:.6}.pnl-m .joystick-thumb{width:clamp(32px,10vw,52px);height:clamp(32px,10vw,52px);background:radial-gradient(circle at 35% 30%,#fff,#9fe9ff 55%,#35e0ff);box-shadow:0 6px 16px #35e0ff66,0 0 0 4px #35e0ff29}.pnl-m .joystick-pad.active .joystick-thumb{box-shadow:0 8px 20px #35e0ff80,0 0 0 5px #35e0ff3d}.pnl-m .joy-label{font-size:clamp(.5rem,2vw,.68rem);font-weight:800;color:var(--dim)}.pnl-m .joystick-meta{flex-direction:column;align-items:center;gap:.1rem;width:min(100%,72vw);max-width:none;text-align:center}.pnl-m .joystick-meta .muted{font-size:clamp(.5rem,1.6vw,.65rem);font-weight:700;color:var(--dim)}.pnl-m .joy-cmd{font-size:clamp(.72rem,2.4vw,.92rem);color:var(--cyan)}.pnl-m .sp-no-max{gap:0}.pnl-m .sp-dial{width:100%;max-width:none;max-height:100%}.pnl-m .tof-arc{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5;overflow:visible}.pnl-m .tof-arc-track{fill:none;stroke:#ffffff47;stroke-width:9;stroke-linecap:round}.pnl-m .tof-arc-fill{fill:none;stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .35s ease,stroke-dasharray .35s ease,stroke .35s ease,opacity .25s ease;filter:drop-shadow(0 0 8px rgba(95,242,162,.55))}.pnl-m .tof-arc.tone-clear .tof-arc-fill{stroke:#5ff2a2;filter:drop-shadow(0 0 10px rgba(95,242,162,.65))}.pnl-m .tof-arc.tone-caution .tof-arc-fill{stroke:#ffc247;filter:drop-shadow(0 0 10px rgba(255,194,71,.6))}.pnl-m .tof-arc.tone-slow .tof-arc-fill{stroke:#ff9f43;filter:drop-shadow(0 0 10px rgba(255,159,67,.65))}.pnl-m .tof-arc.tone-stop .tof-arc-fill{stroke:#ff4d64;filter:drop-shadow(0 0 12px rgba(255,77,100,.85));animation:tof-arc-blink .48s ease-in-out infinite}.pnl-m .tof-arc.idle .tof-arc-fill{stroke:#8794ab73;filter:none}.pnl-m .tof-arc.fault .tof-arc-fill{stroke:#ff4d6459;animation:tof-arc-blink 1.1s ease-in-out infinite}@keyframes tof-arc-blink{0%,to{opacity:.28}50%{opacity:1}}@media (prefers-reduced-motion: reduce){.pnl-m .tof-arc-fill{transition:none}.pnl-m .tof-arc.tone-stop .tof-arc-fill,.pnl-m .tof-arc.fault .tof-arc-fill{animation:none;opacity:1}}.pnl-m .sp-val{font-size:clamp(1.9rem,8vw,2.8rem)}.pnl-m .sp-unit{font-size:clamp(.55rem,1.8vw,.72rem)}.pnl-m .sp-kmh{font-size:clamp(.58rem,1.9vw,.75rem)}.pnl-m .sp-gear{font-size:clamp(1rem,3.4vw,1.25rem)}@media (orientation: landscape){.pnl-m{height:100dvh;overflow:hidden}.pnl-m-speed{display:flex;flex-direction:column;min-height:0}.pnl-m-speed-row,.pnl-m-speed-row:not(.has-side){display:flex;flex:1;min-height:0;flex-direction:row;align-items:stretch;gap:clamp(.45rem,1vw,.75rem);padding:0 clamp(.35rem,1vw,.65rem) clamp(.35rem,1vw,.65rem)}.pnl-m-speed-gauge,.pnl-m-side{flex:1 1 0;width:50%;min-width:0;min-height:0}.pnl-m-speed-row:not(.has-side) .pnl-m-speed-gauge{flex:1 1 100%;width:100%}.pnl-m-speed-row.has-side.show-gauge .pnl-m-side{display:flex}.pnl-m-view-fab{display:none}.pnl-m-speed-row.has-side .pnl-m-speed-gauge,.pnl-m-speed-gauge{display:flex;align-items:center;justify-content:center}.pnl-m-side{display:flex;align-items:center;justify-content:center;padding-left:clamp(.5rem,1.2vw,.85rem);border-left:1px solid var(--line)}.pnl-m-side .tape-tuner{width:100%;max-height:100%;min-height:0;overflow:hidden}.pnl-m-side .tape-tuner .tt-freq{font-size:clamp(1.2rem,3.5dvh,2rem)}.pnl-m-side .tape-tuner .tt-dial-glass{height:clamp(48px,12dvh,72px)}.pnl-m-side .tape-tuner .tt-presets{gap:clamp(.2rem,.8dvh,.4rem)}.pnl-m-side .tape-tuner .tt-preset{padding:clamp(.25rem,.8dvh,.45rem) .15rem}.pnl-m-side .tape-tuner .tt-meters{gap:clamp(.35rem,1dvh,.75rem)}.pnl-m-side .tape-tuner .tt-speed-btn{font-size:clamp(.46rem,1.2dvh,.58rem);padding:clamp(.3rem,.9dvh,.45rem) .15rem}.pnl-m-side .tape-tuner .tt-start,.pnl-m-side .tape-tuner .tt-stop{font-size:clamp(.62rem,1.6dvh,.78rem);padding:clamp(.35rem,1dvh,.5rem) .75rem}.pnl-m .joystick-wrap{width:100%;height:100%;max-height:100%;flex-direction:column;align-items:center;justify-content:center;gap:clamp(.35rem,1.2vh,.65rem)}.pnl-m .joystick-pad{width:min(100%,72dvh);max-height:min(100%,72dvh);aspect-ratio:1;border-radius:var(--r-md);border:1px solid var(--line);background:radial-gradient(circle at 50% 32%,rgba(76,141,255,.16),transparent 62%),#080c14;box-shadow:inset 0 1px #ffffff0f}.pnl-m .joystick-pad.active{box-shadow:inset 0 1px #ffffff14,0 0 0 2px #35e0ff40}.pnl-m .joystick-grid{background-image:radial-gradient(circle,rgba(255,255,255,.16) 1.2px,transparent 1.3px);background-size:12px 12px;opacity:.6}.pnl-m .joystick-thumb{width:clamp(32px,8dvh,52px);height:clamp(32px,8dvh,52px);background:radial-gradient(circle at 35% 30%,#fff,#9fe9ff 55%,#35e0ff);box-shadow:0 6px 16px #35e0ff66,0 0 0 4px #35e0ff29}.pnl-m .joystick-pad.active .joystick-thumb{box-shadow:0 8px 20px #35e0ff80,0 0 0 5px #35e0ff3d}.pnl-m .joy-label{font-size:clamp(.5rem,1.8dvh,.68rem);font-weight:800;color:var(--dim)}.pnl-m .joystick-meta{flex-direction:column;align-items:center;gap:.1rem;width:min(100%,72dvh);max-width:none;text-align:center}.pnl-m .joystick-meta .muted{font-size:clamp(.5rem,1.4dvh,.65rem);font-weight:700;color:var(--dim)}.pnl-m .joy-cmd{font-size:clamp(.72rem,2dvh,.92rem);color:var(--cyan)}.pnl-m .sp{width:100%;height:100%;max-height:100%}.pnl-m .sp-dial{width:100%;max-width:min(100%,72dvh);max-height:min(100%,72dvh)}}@media (max-width: 640px){.pnl.pnl-m{padding:clamp(.35rem,1.2vw,.65rem)}}.lt-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#0b0f14;display:flex;align-items:stretch;justify-content:center;padding:0}.lt-panel{width:100%;max-width:none;max-height:100dvh;margin:0;background:#0b0f14;border:none;color:#e8eef6;display:flex;flex-direction:column;overflow:hidden;font-size:1rem}.lt-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:max(14px,env(safe-area-inset-top)) 18px 14px;border-bottom:1px solid rgba(255,255,255,.1);background:#121820}.lt-head h2{margin:0;font-size:clamp(1.15rem,4.5vw,1.35rem);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#f2f6fb}.lt-head p{margin:6px 0 0;font-size:clamp(.88rem,3.2vw,.95rem);color:#b4c0d0;line-height:1.4}.lt-close{flex-shrink:0;width:48px;height:48px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:#ffffff14;color:#eef3fa;font-size:1.75rem;line-height:1;cursor:pointer}.lt-status{margin:0;padding:12px 18px;font-size:clamp(.9rem,3.2vw,1rem);font-weight:600;color:#ffe08a;background:#f0c0601f;border-bottom:1px solid rgba(240,192,96,.2);line-height:1.45}.lt-body{flex:1;overflow:auto;padding:16px 18px max(20px,env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.lt-presets{margin-bottom:8px}.lt-field{display:block;margin-bottom:18px}.lt-field>span{display:block;margin-bottom:8px;font-size:clamp(.92rem,3.4vw,1rem);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#c5d0e0}.lt-select,.lt-input{width:100%;box-sizing:border-box;min-height:52px;padding:.75rem 1rem;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:#00000059;color:#f4f7fb;font:inherit;font-size:clamp(1rem,3.8vw,1.08rem);font-weight:500}.lt-select:disabled,.lt-input:disabled{opacity:.45}.lt-preset-meta{margin:0 0 14px;font-size:clamp(.88rem,3.2vw,.95rem);color:#a8b6c8;line-height:1.5}.lt-preset-actions{display:flex;gap:10px}.lt-btn-sm{min-height:48px;padding:0 18px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:#e8eef6;font:inherit;font-size:clamp(.88rem,3.2vw,.95rem);font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.lt-btn-sm:disabled{opacity:.45;cursor:not-allowed}.lt-group+.lt-group{margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.1)}.lt-group h3{margin:0 0 14px;font-size:clamp(.95rem,3.5vw,1.05rem);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#d0d9e6}.lt-slider{display:block;margin-bottom:22px;padding:14px 14px 12px;border-radius:14px;background:#121820;border:1px solid rgba(255,255,255,.08)}.lt-slider-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}.lt-slider-top b{font-size:clamp(1rem,3.8vw,1.12rem);font-weight:700;color:#f0f4fa;line-height:1.3}.lt-slider-top output{flex-shrink:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(.95rem,3.5vw,1.05rem);font-weight:700;color:#7ec8ff}.lt-slider input[type=range]{display:block;width:100%;height:44px;margin:4px 0 8px;accent-color:#4db8ff;cursor:pointer;touch-action:pan-x}.lt-slider input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:999px;background:#ffffff26}.lt-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;margin-top:-10px;border-radius:50%;background:#4db8ff;border:2px solid #e8f4ff;box-shadow:0 2px 8px #00000059}.lt-slider input[type=range]::-moz-range-track{height:8px;border-radius:999px;background:#ffffff26}.lt-slider input[type=range]::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:#4db8ff;border:2px solid #e8f4ff;box-shadow:0 2px 8px #00000059}.lt-slider small{display:block;margin-top:6px;font-size:clamp(.88rem,3.2vw,.95rem);font-weight:500;color:#b0becf;line-height:1.45}.lt-btn{width:100%;min-height:52px;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:#eef3fa;font:inherit;font-size:clamp(.95rem,3.5vw,1.02rem);font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.lt-btn:disabled{opacity:.45;cursor:not-allowed}.lt-btn-ghost{border-color:#ff8c5073;color:#ffc9a0;background:#ff8c501a}.lt-btn-accent{border-color:#50c88c8c;background:#50c88c29;color:#a8f5c8}.lt-actions{display:flex;flex-direction:column;gap:10px;margin-top:28px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12)}.lt-foot{display:none}.lt-footnote{margin:16px 0 0;padding:0;font-size:clamp(.82rem,3vw,.9rem);color:#9aa8ba;line-height:1.5}.lt-draft-notice{margin:12px 0 0;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,200,80,.35);background:#ffc85014;color:#ffd699;font-size:clamp(.82rem,3vw,.9rem);line-height:1.45}
