:root{--bg:#000;--fg:#eee;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--fg);margin:0;font-family:system-ui,sans-serif}#app{place-items:center;min-height:100%;padding:16px;display:grid}.stage{aspect-ratio:900/500;width:min(100%,180dvh - 57.6px);position:relative;overflow:hidden;container-type:inline-size}.scene{-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.main{--u:calc(100cqw / 900);width:100%;height:100%;position:relative}.scene-wrap{width:100%;height:100%;position:relative}.cars,.walkers,.loops,.follow,.night,.lights,.debug,.countdowns{pointer-events:none}.cars .car{pointer-events:visiblePainted;cursor:pointer}.photo{filter:saturate(1.12)contrast(1.06)}.car .head{fill:#fff8d6}.car .tail{fill:#6d0b0b}.car.is-braking .tail{fill:#ff2a1f;filter:url(#lamp-glow)}.car .ind{fill:#ffb300;opacity:0}.car.indicating-left .ind-left,.car.indicating-right .ind-right{filter:url(#lamp-glow);animation:indicator calc(.7s / var(--sim-speed,1)) steps(1, end) infinite;animation-delay:var(--blink-delay,0s)}@keyframes indicator{0%{opacity:1}50%{opacity:0}}.walker.is-walking .foot-l{animation:step calc(.5s / var(--sim-speed,1)) ease-in-out infinite alternate;animation-delay:var(--step-delay,0s)}.walker.is-walking .foot-r{animation:step calc(.5s / var(--sim-speed,1)) ease-in-out infinite alternate-reverse;animation-delay:var(--step-delay,0s)}@keyframes step{0%{transform:translate(-2.6px)}to{transform:translate(2.6px)}}.loops{opacity:0;transition:opacity .3s}.loops.is-visible{opacity:1}.loop{fill:#ffffff0f;stroke:#ffffff8c;stroke-width:1px;stroke-dasharray:4 3;transition:fill .2s,stroke .2s}.loop.is-occupied{fill:#ffc10747;stroke:#ffc107;stroke-dasharray:none}.phone-controls{display:none}.lang-switch{z-index:3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#10141ab8;border-radius:999px;gap:2px;padding:3px;display:flex;position:absolute;top:10px;left:10px;box-shadow:0 2px 8px #00000073}.lang-switch button{color:#dfe6ee;letter-spacing:.04em;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:4px 10px;font:600 12px/1 system-ui,sans-serif}.lang-switch button:hover{background:#ffffff24}.lang-switch button[aria-pressed=true]{color:#1d2833;background:#fff}.lang-switch button:focus-visible{outline-offset:1px;outline:2px solid #8ab4ff}@media (width>=721px){#app{padding:0}.stage{width:min(100vw,180dvh)}}.lamp .on{visibility:hidden}.lamp.is-on .on{visibility:visible}.lamp.is-on .off{visibility:hidden}.lamp.is-blinking .on{animation:blink calc(1s / var(--sim-speed,1)) step-end infinite}@keyframes blink{0%{visibility:visible}50%{visibility:hidden}}.signal-vehicle{cursor:pointer}.signal-body{transform-box:fill-box;transform-origin:50%;transition:transform .15s ease-out}.signal.is-selected .signal-body{transform:scale(2)}.tipkalo{color:#222;cursor:pointer;background:linear-gradient(#fdfdfd,#d6d6d6);border:1px solid #8a8a8a;border-radius:5px;padding:4px 8px;font:12px system-ui,sans-serif}.tipkalo:hover{background:linear-gradient(#fff,#e2e8f0)}.tipkalo:active{background:linear-gradient(#c8c8c8,#e8e8e8)}.tipkalo.is-requested{background:linear-gradient(#fff3b0,#ffc928);border-color:#b88a00;box-shadow:0 0 8px #ffc928cc}.tipkalo-wrap .tipkalo{white-space:nowrap}@media (width<=720px){.main{height:auto}.phone-controls{justify-content:center;margin-top:12px;display:flex}.phone-controls .tipkalo{width:100%;max-width:420px;padding:12px 16px;font-size:16px}#app{align-items:start}.stage{aspect-ratio:auto;overflow:visible}.scene{aspect-ratio:900/500;height:auto}}@media (prefers-reduced-motion:reduce){.menu,.signal-body{transition:none}.walker .foot,.car .ind{animation:none!important}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.stage.is-paused *{animation-play-state:paused!important}.toolbar{z-index:3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#10141ab8;border-radius:999px;gap:2px;padding:3px;display:flex;position:absolute;bottom:10px;left:10px;box-shadow:0 2px 8px #00000073}.tool{color:#dfe6ee;font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;min-width:30px;height:30px;padding:0 6px;font:600 12px/1 system-ui,sans-serif;display:grid}.tool:hover:not(:disabled){background:#ffffff24}.tool:disabled{opacity:.35;cursor:default}.tool[aria-pressed=true]{color:#1d2833;background:#fff}.tool:focus-visible{outline-offset:1px;outline:2px solid #8ab4ff}.tool svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.tool-speed{min-width:38px}.tool .i-play,.tool.is-paused .i-pause,.tool .i-exit,.tool.is-on .i-enter{display:none}.tool.is-paused .i-play,.tool.is-on .i-exit{display:inline}.tool.is-paused{color:#1d2833;background:#ffc928}.stats-panel{z-index:2;width:max(250px, calc(270 * var(--u)));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#e6ebf1;max-height:calc(100% - 110px);font:max(11px, calc(12 * var(--u))) / 1.3 system-ui, sans-serif;background:#10141ad6;border-radius:10px;padding:8px 10px 10px;display:none;position:absolute;bottom:52px;left:10px;overflow:auto;box-shadow:0 4px 16px #00000080}.stats-panel.is-open{display:block}.stats-head{align-items:center;gap:6px;margin-bottom:4px;display:flex}.stats-head h2{flex:1;margin:0;font-size:1.15em}.stats-head button,.dialog-close{color:inherit;font:inherit;cursor:pointer;background:#ffffff1f;border:0;border-radius:6px}.stats-reset{padding:2px 8px}.stats-head .stats-close{width:22px;height:22px;font-size:15px;line-height:1}.stats-panel table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.stats-panel th,.stats-panel td{text-align:right;white-space:nowrap;padding:2px 3px}.stats-panel th:first-child{text-align:left}.stats-panel thead th{color:#9fb0c2;border-bottom:1px solid #ffffff26;font-size:.9em;font-weight:400}.stats-panel thead th[title]{cursor:help}.stats-panel tr.total th,.stats-panel tr.total td{border-top:1px solid #ffffff26;font-weight:600}.spark{width:60px;height:16px;margin-left:auto;display:block}.spark polyline{fill:none;stroke:#ffc928;stroke-width:1.2px;vector-effect:non-scaling-stroke}.spark polygon{fill:#ffc9282e;stroke:none}.stats-peds{margin:6px 0}.stats-buttons{gap:6px;display:flex}.stats-panel .stats-compare,.stats-panel .stats-charts{flex:1;padding:5px 6px;font-size:1em}.dialog{color:#e6ebf1;background:#1a2029;border:0;border-radius:12px;width:min(640px,100vw - 32px);max-height:calc(100dvh - 32px);padding:0;font:14px/1.45 system-ui,sans-serif;box-shadow:0 12px 40px #0009}.dialog::backdrop{background:#0000008c}.dialog-head{border-bottom:1px solid #ffffff1a;align-items:center;padding:12px 16px;display:flex}.dialog-head h2{flex:1;margin:0;font-size:17px}.dialog-close{width:30px;height:30px;font-size:20px}.dialog[open]{flex-direction:column;display:flex}.dialog-body{padding:12px 16px 16px;overflow:auto}.dialog-body p{color:#c4ced9;margin:0 0 12px}.keys{grid-template-columns:auto 1fr;gap:6px 14px;margin:0;display:grid}.keys dt{text-align:right}.keys dd{margin:0}kbd{text-align:center;background:#2a323d;border:1px solid #56606d;border-bottom-width:2px;border-radius:4px;min-width:24px;padding:1px 6px;font:600 12px/1.5 ui-monospace,monospace;display:inline-block}.bench-controls{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.bench-controls label{align-items:center;gap:6px;display:flex}.bench-controls select{font:inherit}.dialog .menu-apply{border-radius:5px;padding:6px 16px;font-size:14px}.bench-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.bench-table th,.bench-table td{text-align:right;border-bottom:1px solid #ffffff14;padding:6px}.bench-table thead th{color:#9fb0c2;font-size:12px;font-weight:400}.bench-table th[scope=row],.bench-table thead th:first-child{text-align:left}.bench-table tr.is-best th[scope=row]:after{content:" ★";color:#ffc928}.bench-table td.is-best{color:#7ee08a;font-weight:600}.bench-progress{background:#ffffff1a;border-radius:3px;height:6px;overflow:hidden}.bench-progress>div{background:#5b8bd6;width:0;height:100%;transition:width .15s}.bench-use{color:inherit;font:inherit;cursor:pointer;background:#2a323d;border:1px solid #56606d;border-radius:5px;padding:3px 10px;font-size:12px}.bench-use:disabled{opacity:.35;cursor:default}@media (width<=560px){.bench-table{font-size:12px}.bench-table th,.bench-table td{padding:4px 3px}}.car.is-followed{filter:drop-shadow(0 0 2px #ffc928)drop-shadow(0 0 2px #ffc928)}.follow-route{fill:none;stroke:#ffc928;stroke-width:3px;stroke-dasharray:6 5;stroke-linecap:round;opacity:.85}.follow-tag{z-index:2;transform:translate(-50%, calc(-100% - max(14px, calc(18 * var(--u)))));color:#fff;font:max(10px, calc(11 * var(--u))) / 1.3 system-ui, sans-serif;white-space:nowrap;pointer-events:none;background:#10141ae0;border-radius:6px;padding:3px 7px;position:absolute;box-shadow:0 2px 6px #0006}.follow-tag:after{content:"";border:5px solid #0000;border-top-color:#10141ae0;position:absolute;top:100%;left:50%;transform:translate(-50%)}.follow-tag small{color:#b9c4d0}.follow-tag .status-red,.follow-tag .status-yellow,.follow-tag .status-blocked{color:#ff8a80}.follow-tag .status-yield,.follow-tag .status-crosswalk,.follow-tag .status-queue,.follow-tag .status-merge{color:#ffd54f}.follow-tag .status-free,.follow-tag .status-start{color:#a5d6a7}.beacon{fill:#2979ff;animation:beacon calc(.5s / var(--sim-speed,1)) steps(1, end) infinite}.beacon-b{animation-delay:calc(-.25s / var(--sim-speed,1))}@keyframes beacon{0%{fill:#2979ff;opacity:1}50%{fill:#0d1b4a;opacity:.6}}.car-ambulance .beacon{filter:url(#lamp-glow)}.night-overlay{fill:#14244a;opacity:0;mix-blend-mode:multiply}.street-lamps{opacity:0;mix-blend-mode:screen}.lights{opacity:0}.car-lights .beam{mix-blend-mode:screen}.glow-head{fill:url(#glow-head)}.glow-tail{fill:url(#glow-tail);opacity:.45}.car-lights.is-braking .glow-tail{opacity:1}.glow-ind{fill:url(#glow-ind);opacity:0}.car-lights.indicating-left .ind-left,.car-lights.indicating-right .ind-right{animation:indicator calc(.7s / var(--sim-speed,1)) steps(1, end) infinite;animation-delay:var(--blink-delay,0s)}.car-lights .glow-beacon{fill:url(#glow-beacon);animation:beacon-glow calc(.5s / var(--sim-speed,1)) steps(1, end) infinite}.car-lights .glow-beacon.beacon-b{animation-delay:calc(-.25s / var(--sim-speed,1))}@keyframes beacon-glow{0%{opacity:1}50%{opacity:.1}}.day-clock{z-index:2;color:#fff;font:600 max(12px, calc(14 * var(--u))) / 1.2 system-ui, sans-serif;font-variant-numeric:tabular-nums;pointer-events:none;background:#10141ab8;border-radius:999px;padding:4px 12px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.rain{pointer-events:none;opacity:0;transition:opacity .8s;position:absolute;inset:0;overflow:hidden}.scene-wrap.is-rain .rain{opacity:1}.scene-wrap.is-rain .photo{filter:saturate(.8)contrast(1.08)brightness(.82)}.rain-layer{animation:rain calc(.45s / var(--sim-speed,1)) linear infinite;background-image:repeating-linear-gradient(105deg,#0000 0 9px,#c8dcff47 9px 10px,#0000 10px 23px);background-size:37px 61px;position:absolute;inset:-50%}.rain-far{opacity:.5;animation-duration:calc(.7s / var(--sim-speed,1));background-size:23px 41px}@keyframes rain{0%{background-position:0 0}to{background-position:-16px 61px}}.rain:after{content:"";background:linear-gradient(#3c506e2e,#1e283c38);position:absolute;inset:0}.debug{display:none}.debug.is-visible{display:inline}.dbg-route{fill:none;stroke-width:1.2px;opacity:.8}.dbg-stop{stroke:#fff;stroke-width:2px}.dbg-gate{fill:#ff4081}.dbg-zone{fill:none;stroke-width:6px;opacity:.35}.dbg-cross{stroke:#ff5252}.dbg-merge{stroke:#ff9800}.dbg-zone.is-claimed{opacity:.85}.dbg-crosswalk{fill:none;stroke:#40c4ff;stroke-width:9px;opacity:.35}.dbg-label{fill:#fff;stroke:#000;stroke-width:2.2px;paint-order:stroke;text-anchor:middle;font:600 8px system-ui,sans-serif}.dbg-fps{z-index:2;color:#7ee08a;pointer-events:none;background:#000000b3;border-radius:6px;padding:2px 8px;font:600 12px ui-monospace,monospace;position:absolute;top:44px;left:10px}.countdown{opacity:0;transition:opacity .2s}.countdown.is-visible{opacity:1}.countdown rect{fill:#111;stroke:#2e7d32;stroke-width:.8px}.countdown text{fill:#5cff5c;text-anchor:middle;font:700 10px ui-monospace,monospace}.signal:focus{outline:none}.signal:focus-visible .signal-body{outline-offset:2px;outline:2px solid #8ab4ff}.signal-tip{z-index:4;color:#fff;font:max(11px, calc(12 * var(--u))) / 1.35 system-ui, sans-serif;white-space:nowrap;pointer-events:none;background:#10141aeb;border-radius:6px;padding:4px 8px;position:absolute;transform:translate(-50%,calc(-100% - 8px));box-shadow:0 2px 8px #00000080}.signal-tip.is-below{transform:translate(-50%,8px)}.lamp-name{font-weight:600}.lamp-R{color:#ff6b5e}.lamp-Y,.lamp-RY,.lamp-\*{color:#ffd54f}.lamp-G{color:#69f06f}@media (width<=720px){.toolbar{justify-content:center;width:fit-content;margin:10px auto 0;position:static}.tool{min-width:38px;height:38px}.stats-panel{width:100%;max-width:420px;max-height:none;margin:12px auto 0;font-size:13px;position:static}.scene-wrap{height:auto}}@media (prefers-reduced-motion:reduce){.rain-layer,.beacon{animation:none!important}}.chart-dialog{--c-cars:#3987e5;--c-peds:#d95926;--ink:#f2f4f7;--ink-2:#c3c2b7;--muted:#898781;--grid:#2a313c;--axis:#48505d;--surface:#1a2029;width:min(720px,100vw - 32px)}.chart-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:10px;display:flex}.chart-note{flex:260px;font-size:12px;margin:0!important}.chart-actions{flex-wrap:wrap;gap:6px;display:flex}.chart-btn{color:inherit;font:inherit;cursor:pointer;background:#2a323d;border:1px solid #56606d;border-radius:5px;padding:4px 10px;font-size:12px}.chart-btn:hover{background:#343e4b}.chart-panels{position:relative}.chart-panel+.chart-panel{margin-top:4px}.chart-panel-head{align-items:baseline;gap:14px;display:flex}.chart-panel-title{color:var(--ink-2);margin:0;font-size:12px;font-weight:600}.chart-legend{color:var(--ink-2);gap:12px;font-size:12px;display:flex}.chart-legend-item .chart-key{margin-right:5px}.chart-key{vertical-align:middle}.chart-svg{touch-action:pan-y;width:100%;height:auto;display:block}.chart-svg:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #8ab4ff}.chart-grid{stroke:var(--grid);stroke-width:1px}.chart-axis{stroke:var(--axis);stroke-width:1px}.chart-tick{fill:var(--muted);font-variant-numeric:tabular-nums;font:10px system-ui,sans-serif}.chart-tick-y{text-anchor:end}.chart-tick-x{text-anchor:middle}.chart-line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart-area{stroke:none;opacity:.1}.chart-dot{stroke:var(--surface);stroke-width:2px}.chart-line.cars{stroke:var(--c-cars)}.chart-line.peds{stroke:var(--c-peds)}.chart-area.cars,.chart-dot.cars,.chart-dot-fill.cars{fill:var(--c-cars)}.chart-area.peds,.chart-dot.peds,.chart-dot-fill.peds{fill:var(--c-peds)}.chart-end{fill:var(--ink-2);font-variant-numeric:tabular-nums;font:11px system-ui,sans-serif}.chart-cross{stroke:var(--axis);stroke-width:1px;pointer-events:none}.chart-tip{z-index:5;color:var(--ink-2);pointer-events:none;white-space:nowrap;background:#10141a;border:1px solid #ffffff24;border-radius:6px;padding:6px 9px;font-size:12px;position:absolute;box-shadow:0 4px 14px #00000080}.chart-tip.is-left{transform:translate(-100%)}.chart-tip-time{color:var(--muted);margin-bottom:3px;font-size:11px}.chart-tip-row{align-items:center;gap:6px;display:flex}.chart-tip-value{color:var(--ink);font-variant-numeric:tabular-nums}.chart-empty{text-align:center;color:var(--muted);padding:28px 0}.chart-table-wrap{max-height:55vh;overflow:auto}.chart-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.chart-table th,.chart-table td{text-align:right;border-bottom:1px solid #ffffff12;padding:4px 8px;font-weight:400}.chart-table th:first-child{text-align:left}.chart-table thead th{color:#9fb0c2;background:#1a2029;font-size:12px;position:sticky;top:0}.analysis-dialog{width:min(720px,100vw - 32px)}.analysis-section+.analysis-section{border-top:1px solid #ffffff1a;margin-top:18px;padding-top:14px}.analysis-section h3{margin:0 0 6px;font-size:15px}.table-scroll{overflow-x:auto}.opt-progress{margin:4px 0 8px}.opt-status{color:#9fb0c2;font-size:12px;margin:6px 0 0!important}.opt-error{color:#ff8a80}.opt-verdict{color:#e6ebf1!important;margin:10px 0!important}.opt-table tr.is-best th[scope=row]:after{content:" ★";color:#ffc928}.opt-table td{white-space:nowrap}.los{text-align:center;color:#fff;background:#6b7280;border-radius:4px;min-width:1.4em;padding:0 .3em;font-size:.8em;font-weight:700;display:inline-block}.los-A,.los-B{background:#15803d}.los-C{background:#4d7c0f}.los-D{background:#a16207}.los-E{background:#c2410c}.los-F{background:#b91c1c}.replay-bar{z-index:3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#dfe6ee;background:#10141ad1;border-radius:999px;align-items:center;gap:8px;width:min(380px,100% - 20px);padding:3px 12px 3px 3px;display:flex;position:absolute;bottom:52px;left:10px;box-shadow:0 2px 8px #00000073}.replay-bar[hidden]{display:none}.replay-range{accent-color:#8ab4ff;flex:1;min-width:0}.replay-time{font-variant-numeric:tabular-nums;text-align:right;min-width:4.2em;font:600 12px/1 system-ui,sans-serif}.replay-live{color:#fff;cursor:pointer;background:#e5484d;border:0;border-radius:999px;padding:5px 10px;font:700 11px/1 system-ui,sans-serif}.replay-live:focus-visible{outline-offset:1px;outline:2px solid #8ab4ff}.menu{--accent:#6aa5ff;--accent-deep:#3b78e0;--panel:#10151ce6;--line:#ffffff17;--ink:#eef2f7;--ink-2:#b3bfcd;--muted:#7f8c9c;--field:#ffffff12;right:0;top:calc(100% - 44 * var(--u));width:calc(320 * var(--u));border:1px solid var(--line);border-radius:calc(14 * var(--u)) 0 0 0;background:var(--panel);-webkit-backdrop-filter:blur(14px)saturate(1.2);backdrop-filter:blur(14px)saturate(1.2);max-height:100%;color:var(--ink);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:500 calc(13 * var(--u)) / 1.3 system-ui, -apple-system, "Segoe UI", sans-serif;border-bottom:0;border-right:0;flex-direction:column;transition:transform .6s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;overflow:hidden;box-shadow:0 -6px 30px #00000073}.menu.is-open{transform:translateY(calc(-100% + 44 * var(--u)))}.menu :focus-visible{outline:2px solid var(--accent);outline-offset:2px}.menu-header{align-items:center;gap:calc(9 * var(--u));width:100%;height:calc(44 * var(--u));padding:0 calc(16 * var(--u));color:var(--ink);font:700 calc(15 * var(--u)) / 1 system-ui, -apple-system, "Segoe UI", sans-serif;letter-spacing:.01em;text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.menu-header:hover{background:#ffffff0d}.menu.is-open .menu-header{border-bottom:1px solid var(--line)}.menu-logo{width:calc(17 * var(--u));height:calc(17 * var(--u));flex:none}.menu-logo rect{fill:none;stroke:var(--ink-2);stroke-width:1.4px}.menu-logo circle:first-of-type{fill:#ff453a}.menu-logo circle:nth-of-type(2){fill:#ffd60a}.menu-logo circle:nth-of-type(3){fill:#30d158}.menu-chevron{width:calc(12 * var(--u));height:calc(8 * var(--u));fill:none;stroke:var(--ink-2);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;margin-left:auto;transition:transform .3s}.menu.is-open .menu-chevron{transform:rotate(180deg)}.menu-body{padding:calc(12 * var(--u));overscroll-behavior:contain;min-height:0;margin:0;overflow-y:auto}.menu-header{flex:none}.menu:not(.is-open) .menu-body{visibility:hidden;transition:visibility 0s .6s}@media (width>=721px){.menu-body{display:grid}.menu-tabs{grid-row:1}.menu-panel{grid-area:2/1}.menu-panel[hidden]{visibility:hidden;display:block}}.menu-tabs{gap:calc(2 * var(--u));margin-bottom:calc(10 * var(--u));padding:calc(3 * var(--u));border-radius:calc(11 * var(--u));background:#ffffff0f;display:flex}.menu-tabs button{justify-content:center;align-items:center;gap:calc(6 * var(--u));height:calc(30 * var(--u));border-radius:calc(8 * var(--u));color:var(--ink-2);font:600 calc(12.5 * var(--u)) / 1 system-ui, -apple-system, "Segoe UI", sans-serif;cursor:pointer;background:0 0;border:0;flex:1;transition:background .15s,color .15s;display:flex}.menu-tabs button:hover{color:var(--ink)}.menu-tabs button svg{width:calc(14 * var(--u));height:calc(14 * var(--u));fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.menu-tabs button[aria-selected=true]{color:#fff;background:#ffffff26;box-shadow:0 1px 3px #00000059}.menu-tabs button[aria-selected=true] svg{stroke:var(--accent)}.menu-card{border:1px solid var(--line);border-radius:calc(12 * var(--u));background:#ffffff0a;overflow:hidden}.menu-panel>.menu-card+.menu-card{margin-top:calc(8 * var(--u))}.menu-row{justify-content:space-between;align-items:center;gap:calc(8 * var(--u));min-height:calc(40 * var(--u));padding:0 calc(12 * var(--u));border-bottom:1px solid var(--line);display:flex}.menu-row label{font-weight:600}.menu-row label[title]{cursor:help}.menu-traffic{min-width:0;margin:0;padding:0}.menu-subhead{float:left;box-sizing:border-box;width:100%;min-height:calc(32 * var(--u));background:#ffffff0a;padding-block:0}.menu-subhead+*{clear:both}.menu-subhead span:first-child{color:var(--ink);font-weight:700}.menu-unit{color:var(--muted);font-size:calc(11 * var(--u));font-weight:500}.menu select{max-width:calc(172 * var(--u));height:calc(28 * var(--u));padding:0 calc(26 * var(--u)) 0 calc(10 * var(--u));border:1px solid var(--line);border-radius:calc(8 * var(--u));appearance:none;background:var(--field) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23b3bfcd' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right calc(9 * var(--u)) center / calc(9 * var(--u));color:var(--ink);font:600 calc(12.5 * var(--u)) / 1 system-ui, -apple-system, "Segoe UI", sans-serif;cursor:pointer}.menu select:hover:not(:disabled){border-color:#ffffff38}.menu select option{color:var(--ink);background:#1a2029}.menu select:disabled{opacity:.45;cursor:default}.spinner{height:calc(28 * var(--u));border:1px solid var(--line);border-radius:calc(8 * var(--u));background:var(--field);align-items:center;display:flex;overflow:hidden}.spinner-buttons{display:contents}.spinner-buttons button{width:calc(28 * var(--u));height:100%;color:var(--ink-2);font:500 calc(17 * var(--u)) / 1 system-ui, sans-serif;cursor:pointer;background:0 0;border:0;padding:0}.spinner-buttons button[data-step="-1"]{order:0}.spinner-buttons button[data-step="1"]{order:2}.spinner-buttons button:hover:not(:disabled){color:#fff;background:#ffffff1a}.spinner input{width:calc(40 * var(--u));border:0;border-inline:1px solid var(--line);appearance:textfield;height:100%;color:var(--ink);font:700 calc(13.5 * var(--u)) / 1 system-ui, sans-serif;font-variant-numeric:tabular-nums;text-align:center;background:0 0;border-radius:0;order:1;padding:0}.spinner input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.spinner input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.spinner.is-disabled{opacity:.45}.spinner.is-disabled button{cursor:default}.menu-check{width:calc(34 * var(--u));height:calc(20 * var(--u));appearance:none;cursor:pointer;background:#fff3;border-radius:999px;flex:none;margin:0;transition:background .18s;position:relative}.menu-check:before{content:"";top:calc(2 * var(--u));left:calc(2 * var(--u));width:calc(16 * var(--u));height:calc(16 * var(--u));background:#fff;border-radius:50%;transition:transform .18s;position:absolute;box-shadow:0 1px 3px #00000073}.menu-check:checked{background:var(--accent-deep)}.menu-check:checked:before{transform:translateX(calc(14 * var(--u)))}.menu-check:disabled{opacity:.45;cursor:default}.menu-slider{min-height:calc(38 * var(--u));font-size:calc(12.5 * var(--u))}.menu-slider:last-child{border-bottom:0}.menu-slider label{flex:0 0 calc(112 * var(--u));white-space:nowrap}.menu-slider input{min-width:0;height:calc(20 * var(--u));appearance:none;cursor:pointer;--p:50%;background:0 0;flex:1;margin:0}.menu-slider input::-webkit-slider-runnable-track{height:calc(6 * var(--u));background:linear-gradient(to right, var(--accent) var(--p), #ffffff2b var(--p));border-radius:999px}.menu-slider input::-webkit-slider-thumb{width:calc(16 * var(--u));height:calc(16 * var(--u));margin-top:calc(-5 * var(--u));appearance:none;background:#fff;border:0;border-radius:50%;box-shadow:0 1px 4px #0000008c}.menu-slider input::-moz-range-track{height:calc(6 * var(--u));background:#ffffff2b;border-radius:999px}.menu-slider input::-moz-range-progress{height:calc(6 * var(--u));background:var(--accent);border-radius:999px}.menu-slider input::-moz-range-thumb{width:calc(16 * var(--u));height:calc(16 * var(--u));background:#fff;border:0;border-radius:50%;box-shadow:0 1px 4px #0000008c}.menu-slider output{flex:0 0 calc(26 * var(--u));color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;font-weight:700}.menu-timeline{padding:calc(10 * var(--u)) calc(12 * var(--u)) calc(4 * var(--u));border-bottom:1px solid var(--line)}.timeline{width:100%;height:auto;display:block;overflow:visible}.timeline.is-preview rect{opacity:.75}.timeline.is-preempted{opacity:.35}.tl-label,.tl-tick{fill:var(--muted);font:600 8px system-ui,sans-serif}.tl-tick{text-anchor:middle;font-size:7px;font-weight:500}.tl-end{text-anchor:end}.tl-row.is-selected .tl-label{fill:var(--accent)}.tl-row.is-selected rect{stroke:#ffffffd9;stroke-width:.8px}.tl-playhead{stroke:#fff;stroke-width:1.2px}.tl-issue{fill:#ff453a47;stroke:#ff453a;stroke-width:.9px;stroke-dasharray:2 1.5;pointer-events:none}.tl-issue-tight{fill:#ff9f0a40;stroke:#ff9f0a}.timeline-legend{min-height:calc(29 * var(--u));margin-top:calc(3 * var(--u));color:var(--muted);font-size:calc(11 * var(--u));font-weight:500}.timeline-legend.is-warning{color:#ff8f86;font-weight:600;line-height:1.25}.menu-toolbar{gap:calc(8 * var(--u));padding:calc(12 * var(--u));flex-wrap:wrap;display:flex}#panel-traffic .menu-row{min-height:calc(36 * var(--u))}#panel-traffic .menu-toolbar{gap:calc(6 * var(--u));padding-block:calc(8 * var(--u));flex-wrap:nowrap}#panel-traffic .menu-toolbar .menu-apply{padding-left:calc(8 * var(--u));padding-right:calc(8 * var(--u));white-space:nowrap;flex:auto}.menu-apply{min-height:calc(32 * var(--u));padding:calc(7 * var(--u)) calc(18 * var(--u));border-radius:calc(9 * var(--u));color:#fff;font:600 calc(13 * var(--u)) / 1.2 system-ui, -apple-system, "Segoe UI", sans-serif;cursor:pointer;background:linear-gradient(#6aa5ff,#3b78e0);border:1px solid #0000;transition:filter .15s,transform 60ms;box-shadow:inset 0 1px #ffffff47,0 1px 3px #00000059}.menu-apply:hover:not(:disabled){filter:brightness(1.12)}.menu-apply:active:not(:disabled){transform:translateY(1px)}.menu-apply:disabled{opacity:.4;filter:grayscale(.6);cursor:default}.menu-apply.menu-secondary{border-color:var(--line,#ffffff1f);box-shadow:none;color:#eef2f7;background:#ffffff17}.menu-apply.menu-secondary:hover:not(:disabled){filter:none;background:#ffffff26}.menu-apply.menu-emergency{background:linear-gradient(#ff7a74,#d93a36)}.menu-apply.is-active{color:#1d2833;background:linear-gradient(#ffd75e,#f2a900)}.dialog{--u:1px}@media (width<=720px){.menu{--u:1.1px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);width:100%;max-width:440px;max-height:none;box-shadow:none;border-radius:14px;margin:16px auto 0;transition:none;display:block;position:static;transform:none}.menu.is-open{transform:none}.menu-body{display:none}.menu.is-open .menu-body{display:block}.menu-header{height:48px}.menu-chevron{transform:rotate(180deg)}.menu.is-open .menu-chevron{transform:none}.menu select{width:auto}}
