* *,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{touch-action:manipulation;overscroll-behavior:none}body{color:#eee;background:#111;font-family:system-ui,sans-serif}#root{min-height:100dvh}svg{shape-rendering:geometricprecision;text-rendering:optimizelegibility}img{image-rendering:auto;backface-visibility:hidden}.main-menu{flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:2rem;display:flex}.main-menu__header{text-align:center;margin-bottom:3rem}.main-menu__title{letter-spacing:.05em;margin-bottom:.5rem;font-size:2.5rem;font-weight:700}.main-menu__subtitle{color:#888;font-size:1rem}.main-menu__actions{flex-direction:column;align-items:center;gap:1rem;min-width:260px;display:flex}.main-menu__btn{cursor:pointer;border:none;border-radius:8px;width:100%;padding:.85rem 2rem;font-size:1.05rem;font-weight:600;transition:background .15s,opacity .15s}.main-menu__btn--primary{color:#111;background:#d4a843}.main-menu__btn--primary:hover{background:#e0b954}.main-menu__btn--secondary{color:#eee;background:#333}.main-menu__btn--secondary:hover:not(:disabled){background:#444}.main-menu__btn--disabled{opacity:.4;cursor:not-allowed}.main-menu__hint{color:#666;margin-top:.25rem;font-size:.85rem}.branch-select{flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:2.5rem;display:flex}.branch-select__heading{color:#ccc;margin-bottom:2.5rem;font-size:1.5rem;font-weight:600}.branch-select__cards{flex-direction:column;gap:1.5rem;width:min(100%,980px);display:flex}.branch-select__card{cursor:pointer;color:#eee;text-align:left;background:linear-gradient(135deg,#191919 0%,#101010 100%);border:1px solid #d4a8432e;border-radius:16px;grid-template-columns:minmax(220px,38%) 1fr;width:100%;min-height:190px;padding:0;font-family:inherit;transition:border-color .2s,box-shadow .2s,transform .2s;display:grid;overflow:hidden;box-shadow:0 18px 44px #00000040}.branch-select__card:hover{border-color:#d4a843;transform:translateY(-2px);box-shadow:0 22px 54px #00000059}.branch-select__card-visual{min-height:190px;display:block;position:relative;overflow:hidden}.branch-select__card-visual:after{content:"";background:linear-gradient(90deg,#0000 55%,#101010d9 100%);position:absolute;inset:0}.branch-select__card-visual img{object-fit:cover;width:100%;height:100%;image-rendering:high-quality;backface-visibility:hidden;transition:transform .35s;transform:translateZ(0)}.branch-select__card:hover .branch-select__card-visual img{transform:scale(1.05)}.branch-select__card-content{flex-direction:column;justify-content:center;gap:.75rem;padding:2rem 2.25rem;display:flex}.branch-select__card-name{letter-spacing:.02em;font-size:1.3rem;font-weight:700}.branch-select__card-tagline{color:#999;max-width:24rem;font-size:.95rem;line-height:1.7}.branch-select__card-cta{color:#d4a843;letter-spacing:.08em;width:fit-content;margin-top:.25rem;font-size:.85rem;font-weight:700}@media (width<=720px){.branch-select{padding:1.5rem}.branch-select__card{grid-template-columns:1fr}.branch-select__card-visual{min-height:150px}.branch-select__card-visual:after{background:linear-gradient(#0000 55%,#101010d9 100%)}.branch-select__card-content{padding:1.5rem}}.narrative{flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:2rem;display:flex}.narrative__progress{gap:.5rem;margin-bottom:2rem;display:flex}.narrative__dot{background:#333;border-radius:50%;width:10px;height:10px;transition:background .3s}.narrative__dot--done{background:#d4a843}.narrative__dot--active{background:#d4a843;box-shadow:0 0 6px #d4a843}.narrative__content{text-align:center;width:100%;max-width:520px;animation:.4s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.narrative__text{color:#ddd;margin-bottom:2.5rem;font-size:1.2rem;line-height:1.9}.narrative__choices{flex-direction:column;gap:.75rem;display:flex}.narrative__choice{color:#ccc;cursor:pointer;text-align:center;background:#1a1a1a;border:1px solid #444;border-radius:8px;width:100%;padding:1rem 1.25rem;font-family:inherit;font-size:1rem;transition:border-color .15s,background .15s,opacity .15s}.narrative__choice-effects{color:#888;margin-top:.35rem;font-size:.85rem;line-height:1.4;display:block}.narrative__choice--selected .narrative__choice-effects{color:#bda65e}.narrative__choice:hover:not(:disabled){background:#222;border-color:#d4a843}.narrative__choice--selected{color:#d4a843;background:#2a2a1a;border-color:#d4a843}.narrative__choice--dimmed{opacity:.3;pointer-events:none}.narrative__flavor{margin-top:2rem;animation:.4s fadeIn}.narrative__flavor p{color:#999;margin-bottom:1.5rem;font-size:.95rem;line-height:1.7}.narrative__next{color:#111;cursor:pointer;background:#d4a843;border:none;border-radius:8px;padding:.7rem 2.5rem;font-family:inherit;font-size:1rem;font-weight:600;transition:background .15s}.narrative__next:hover{background:#e0b954}.vehicle-art{aspect-ratio:16/9;background:#111827;border:1px solid #ffffff14;border-radius:8px;width:100%;margin:0;position:relative;overflow:hidden}.vehicle-art img{object-fit:cover;image-rendering:auto;backface-visibility:hidden;width:100%;height:100%;display:block}.vehicle-art--empty{background:linear-gradient(135deg,#f0c04024,#0000 46%),#111827}.result-summary{flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:2rem;animation:.5s fadeIn;display:flex}.result-summary__title{color:#d4a843;margin-bottom:2rem;font-size:1.5rem;font-weight:600}.result-summary__card{background:#1a1a1a;border:1px solid #333;border-radius:12px;width:100%;max-width:380px;margin-bottom:2rem;padding:1.75rem}.result-summary__car-art{margin-bottom:1rem}.result-summary__section{justify-content:space-between;align-items:center;padding:.5rem 0;display:flex}.result-summary__label{color:#888;font-size:.9rem}.result-summary__value{color:#eee;text-align:right;font-size:.95rem;font-weight:600}.result-summary__vehicle{color:#d4a843}.result-summary__flavor{color:#cdb978;background:#d4a84314;border-left:2px solid #d4a843;margin:.6rem 0 .8rem;padding:.65rem .75rem;font-size:.85rem;line-height:1.65}.result-summary__loan{color:#e05555}.result-summary__divider{background:#2a2a2a;height:1px;margin:.5rem 0}.result-summary__issues{flex-direction:column;gap:.25rem;display:flex}.result-summary__issue{color:#e05555;font-size:.8rem}.result-summary__confirm{color:#111;cursor:pointer;background:#d4a843;border:none;border-radius:8px;padding:.85rem 3rem;font-family:inherit;font-size:1.05rem;font-weight:600;transition:background .15s}.result-summary__confirm:hover{background:#e0b954}.used-car-market{color:#e0e0e0;max-width:960px;margin:0 auto;padding:2rem 1rem}.used-car-market__title{text-align:center;color:#fff;margin-bottom:1.2rem;font-size:1.6rem}.used-car-market__overview{background:#1a1a2e;border:1px solid #333;border-radius:8px;flex-wrap:wrap;justify-content:center;gap:1.2rem;margin-bottom:1rem;padding:.8rem 1.2rem;display:flex}.used-car-market__stat{flex-direction:column;align-items:center;gap:2px;display:flex}.used-car-market__stat-label{color:#888;text-transform:uppercase;font-size:.7rem}.used-car-market__stat-value{color:#f0c040;font-size:1rem;font-weight:600}.used-car-market__message{text-align:center;color:#f0c040;background:#16213e;border:1px solid #f0c040;border-radius:6px;margin-bottom:1rem;padding:.6rem 1rem;font-size:.85rem}.used-car-market__grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.used-car-market__card{background:#1a1a2e;border:1px solid #333;border-radius:8px;flex-direction:column;gap:.5rem;padding:1rem;display:flex}.used-car-market__card-header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.used-car-market__car-art{flex-shrink:0}.used-car-market__car-name{color:#fff;min-width:0;margin:0;font-size:1.05rem}.used-car-market__market-badge{color:#f0c040;white-space:nowrap;background:#252018;border:1px solid #5a4a20;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:.65rem;font-weight:600}.used-car-market__price{align-items:center;gap:.5rem;display:flex}.used-car-market__price-original{color:#666;font-size:.85rem;text-decoration:line-through}.used-car-market__price-current{color:#4caf50;font-size:1.1rem;font-weight:600}.used-car-market__ranges{color:#999;gap:1rem;font-size:.78rem;display:flex}.used-car-market__flavor{color:#c9b985;background:#f0c0400f;border-left:2px solid #5a4a20;padding:.55rem .7rem;font-size:.78rem;line-height:1.55}.used-car-market__issues{flex-wrap:wrap;gap:4px;min-height:1.5rem;display:flex}.used-car-market__issue{border-radius:4px;padding:2px 6px;font-size:.72rem}.used-car-market__issue--known{color:#f0c040;background:#3d3520;border:1px solid #5a4a20}.used-car-market__issue--unknown{color:#666;background:#1e1e2e;border:1px solid #333}.used-car-market__issue--clean{color:#4caf50;background:#1a2e1a;border:1px solid #2a4a2a}.used-car-market__actions{gap:.5rem;margin-top:auto;display:flex}.used-car-market__btn{color:#ccc;cursor:pointer;background:#222;border:1px solid #444;border-radius:5px;flex:1;padding:.45rem 0;font-size:.78rem;transition:background .15s}.used-car-market__btn:hover:not(:disabled){background:#333}.used-car-market__btn:disabled{opacity:.4;cursor:default}.used-car-market__btn--inspect{color:#f0c040;border-color:#5a4a20}.used-car-market__btn--inspect:hover:not(:disabled){background:#2a2510}.used-car-market__btn--haggle{color:#c084fc;border-color:#4a3050}.used-car-market__btn--haggle:hover:not(:disabled){background:#251028}.used-car-market__btn--buy{color:#4caf50;border-color:#2a5a2a}.used-car-market__btn--buy:hover:not(:disabled){background:#1a2a1a}.used-car-market__btn--disabled{color:#e04040;border-color:#5a2020}.used-car-market__inspect-free{color:#4caf50}.used-car-market__inspect-discount s{color:#666;margin-right:4px}.used-car-market__inspect-discount{color:#f0c040}.dealership{color:#e0e0e0;max-width:960px;margin:0 auto;padding:2rem 1rem}.dealership__title{text-align:center;color:#fff;margin-bottom:1.2rem;font-size:1.6rem}.dealership__overview{background:#1a1a2e;border:1px solid #333;border-radius:8px;flex-wrap:wrap;justify-content:center;gap:1.2rem;margin-bottom:1.2rem;padding:.8rem 1.2rem;display:flex}.dealership__stat{flex-direction:column;align-items:center;gap:2px;display:flex}.dealership__stat-label{color:#888;text-transform:uppercase;font-size:.7rem}.dealership__stat-value{color:#f0c040;font-size:1rem;font-weight:600}.dealership__grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.dealership__card{background:#1a1a2e;border:1px solid #333;border-radius:8px;flex-direction:column;gap:.5rem;padding:1rem;display:flex}.dealership__card--unaffordable{opacity:.5}.dealership__car-art{flex-shrink:0}.dealership__card-header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.dealership__car-name{color:#fff;min-width:0;margin:0;font-size:1.05rem}.dealership__badges{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.dealership__market-badge{color:#f0c040;white-space:nowrap;background:#252018;border:1px solid #5a4a20;border-radius:4px;padding:2px 6px;font-size:.65rem;font-weight:600}.dealership__fuel-badge{border-radius:4px;padding:2px 6px;font-size:.65rem;font-weight:600}.dealership__fuel-badge--ev{color:#4db8ff;background:#1a2a3a;border:1px solid #2a4a6a}.dealership__fuel-badge--ice{color:#ff6b4a;background:#2a1a1a;border:1px solid #5a2a1a}.dealership__price{color:#4caf50;font-size:1.3rem;font-weight:700}.dealership__loan-info{background:#111827;border:1px solid #2a2a3e;border-radius:6px;flex-direction:column;gap:4px;padding:.5rem .7rem;display:flex}.dealership__loan-row{color:#aaa;justify-content:space-between;font-size:.78rem;display:flex}.dealership__loan-row span:last-child{color:#e0e0e0;font-weight:500}.dealership__over-budget{color:#e04040!important}.dealership__warning{color:#e04040;text-align:right;font-size:.7rem}.dealership__flavor{color:#777;border-top:1px solid #222;padding:.3rem 0;font-size:.75rem;font-style:italic}.dealership__actions{gap:.5rem;margin-top:auto;display:flex}.dealership__btn{color:#ccc;cursor:pointer;background:#222;border:1px solid #444;border-radius:5px;flex:1;padding:.5rem 0;font-size:.8rem;transition:background .15s}.dealership__btn:hover{background:#333}.dealership__btn--full{color:#4caf50;border-color:#2a5a2a}.dealership__btn--full:hover{background:#1a2a1a}.dealership__btn--loan{color:#f0c040;border-color:#5a4a20}.dealership__btn--loan:hover{background:#2a2510}.dealership__btn--confirm{color:#4caf50;border-color:#2a5a2a}.dealership__btn--confirm:hover{background:#1a2a1a}.dealership__btn--cancel{color:#888;border-color:#444}.dealership__btn--cancel:hover{background:#2a2a2a}.dealership__unaffordable{color:#e04040;text-align:center;padding:.5rem 0;font-size:.8rem}.dealership__confirm{background:#111827;border:1px solid #f0c040;border-radius:6px;margin-top:auto;padding:.6rem}.dealership__confirm-text{color:#ccc;margin:0 0 .5rem;font-size:.78rem}.dealership__confirm-actions{gap:.5rem;display:flex}.race-test{color:#f1f3f2;touch-action:manipulation;background:linear-gradient(135deg,#151c1ff5,#0f1012fa),#111;min-height:100dvh;padding:24px;position:relative}.race-test__corner-actions{z-index:8;align-items:center;gap:4px;display:flex;position:absolute;top:0;right:0}.race-test__settings-btn{color:#f1f3f2;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c0f119e;border:1px solid #d8dcdd38;border-radius:6px;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:17px;transition:background .15s,border-color .15s;display:inline-flex}.race-test__settings-btn:hover{background:#ffffff14;border-color:#d8dcdd5c}.race-test__volume-control{width:44px;height:44px;position:relative}.race-test__volume-backdrop{z-index:19;position:fixed;inset:0}.race-test__volume-btn{width:100%;height:100%}.race-test__volume-control--open .race-test__volume-btn{background:#58c7b224;border-color:#58c7b27a}.race-test__volume-glyph{color:currentColor;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.race-test__volume-glyph svg{width:24px;height:24px;overflow:visible}.race-test__volume-speaker-shape{fill:currentColor;stroke:currentColor;stroke-width:1.1px;stroke-linejoin:round}.race-test__volume-wave,.race-test__volume-muted-line{fill:none;stroke:currentColor;stroke-width:2.1px;stroke-linecap:round;stroke-linejoin:round}.race-test__volume-wave--outer{opacity:.74}.race-test__volume-muted-line,.race-test__volume-glyph--muted .race-test__volume-wave{display:none}.race-test__volume-glyph--muted .race-test__volume-muted-line{display:block}.race-test__volume-popover{z-index:20;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#121618f5;border:1px solid #58c7b259;border-radius:8px;width:190px;padding:12px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #0000006b}.race-test__volume-readout{color:#d8dcdd;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;font-size:.86rem;font-weight:800;display:flex}.race-test__volume-readout strong{color:#58c7b2;font-family:monospace}.race-test__volume-popover input{accent-color:#58c7b2;width:100%}.race-test__topbar{justify-content:space-between;align-items:center;gap:16px;max-width:1200px;margin:0 auto 20px;display:flex}.race-test__topbar-actions{flex-direction:column;align-items:stretch;gap:8px;min-width:100px;display:flex}.race-test__start-group{flex-direction:row;align-items:center;gap:8px;min-width:0;display:flex}.race-test__autopilot-toggle{color:#cdd6d8;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;flex:none;align-items:center;gap:6px;font-size:.82rem;display:flex}.race-test__autopilot-toggle input{cursor:pointer}.race-test__start-group .race-test__primary{white-space:nowrap}.race-test__ghost,.race-test__primary,.race-test__secondary{font:inherit;cursor:pointer;border:0;border-radius:8px;font-weight:700;transition:transform .15s,background .15s,border-color .15s}.race-test__ghost{color:#d8dcdd;background:#24282b;border:1px solid #394047;padding:10px 14px}.race-test__ghost:hover,.race-test__primary:hover,.race-test__secondary:hover{transform:translateY(-1px)}.race-test__layout{grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"track controls""hud controls""replay controls""telemetry controls";gap:18px;max-width:1200px;margin:0 auto;display:grid}.race-test__planning{background:#111416;border:1px solid #58c7b259;border-radius:8px;max-width:1200px;margin:-6px auto 18px;padding:12px 14px;box-shadow:0 0 18px #58c7b214}.race-test__planning-header{color:#d8dcdd;justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px;font-size:.88rem;font-weight:700;display:flex}.race-test__planning-header strong{color:#58c7b2;font-variant-numeric:tabular-nums}.race-test__planning-bar{background:#24282b;border-radius:999px;height:9px;overflow:hidden}.race-test__planning-bar div{border-radius:inherit;background:linear-gradient(90deg,#58c7b2,#ffbe5b);height:100%;transition:width .18s}.race-test__planning-actions{justify-content:flex-end;margin-top:10px;display:flex}.race-test__planning-stop{color:#f6e8c7;min-height:34px;font:inherit;cursor:pointer;background:#30363b;border:1px solid #ffbe5b73;border-radius:8px;padding:0 12px;font-size:.84rem;font-weight:800}.race-test__planning-stop:disabled{opacity:.55;cursor:not-allowed}.race-test__controls,.race-test__telemetry{background:#181b1d;border:1px solid #2b3236;border-radius:8px}.race-test__track{--race-widget-bottom:10px;--race-widget-side:6px;--race-g-circle-inset:10px;background:#1a1e20;border-radius:8px;grid-area:track;justify-content:center;align-items:center;min-height:220px;display:flex;position:relative;overflow:hidden}.race-test__track-side-actions{left:0;bottom:calc(var(--race-widget-bottom) + 109px);z-index:7;flex-direction:column;gap:8px;display:flex;position:absolute}.race-test__track-side-action{color:#f1f3f2;min-width:52px;min-height:38px;font:inherit;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c0f119e;border:1px solid #d8dcdd38;border-left:0;border-radius:0 8px 8px 0;padding:0 10px;font-size:.84rem;font-weight:800;transition:background .15s,border-color .15s,transform .15s}.race-test__track-side-shortcut{display:none}@media (hover:hover) and (pointer:fine){.race-test__track-side-actions{bottom:calc(var(--race-widget-bottom) + 128px)}.race-test__track-side-action:hover{background:#ffffff14;border-color:#d8dcdd5c;transform:translate(1px)}.race-test__track-side-shortcut{display:inline}}.race-test__track-side-action:focus{background:#0c0f119e;border-color:#d8dcdd38;outline:none;transform:none}.race-test__track-side-action:active,.race-test__track-side-action--pressed{background:#ffffff1a;border-color:#d8dcdd66;transform:translate(1px)}.race-test__track-side-action:focus-visible{outline-offset:2px;outline:2px solid #58c7b294}.race-test__exit-confirm-actions{justify-content:flex-end;gap:10px;padding:4px 20px 18px;display:flex}.race-test__exit-confirm-actions button{min-height:38px;padding:0 16px}.race-test__track-modal-overlay{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0000009e;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.race-test__track-modal{background:#181b1d;border:1px solid #2b3236;border-radius:10px;width:min(90vw,360px);max-height:72vh;overflow-y:auto;box-shadow:0 12px 40px #0000008c}.race-test__track-modal-header{color:#f1f3f2;border-bottom:1px solid #2b3236;justify-content:space-between;align-items:center;padding:14px 16px;font-size:.95rem;font-weight:800;display:flex}.race-test__track-modal-header button{color:#98a2a8;cursor:pointer;background:#24282b;border:0;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.9rem;transition:background .15s,color .15s;display:flex}.race-test__track-modal-header button:hover{color:#f1f3f2;background:#30363b}.race-test__settings-tabs{border-bottom:1px solid #2b3236;grid-template-columns:1fr 1fr;gap:6px;padding:8px;display:grid}.race-test__settings-tab{color:#98a2a8;min-height:36px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;font-size:.88rem;font-weight:700;transition:background .15s,color .15s}.race-test__settings-tab:hover{color:#f1f3f2;background:#24282b}.race-test__settings-tab--active{color:#58c7b2;background:#58c7b21f}.race-test__track-modal-list{padding:8px}.race-test__track-modal-item{color:#d8dcdd;width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:10px 12px;font-size:.88rem;transition:background .12s,color .12s;display:block}.race-test__track-modal-item:hover{color:#f1f3f2;background:#24282b}.race-test__track-modal-item--active{color:#58c7b2;background:#58c7b21f;font-weight:700}.race-test__menu-action{color:#d8dcdd;text-align:center;min-height:48px;box-shadow:none;background:#24282b;border:1px solid #2b3236;border-radius:6px;justify-content:center;align-items:center;padding:0 16px;font-weight:700;display:flex}.race-test__menu-action+.race-test__menu-action{margin-top:10px}.race-test__menu-action:hover{color:#f1f3f2;background:#30363b;border-color:#3d454b;transform:translateY(-1px)}.race-test__menu-action:active{transform:translateY(0)}.race-test__track-svg{width:100%;max-width:none;height:clamp(320px,56vh,640px);display:block}.race-test__minimap{left:var(--race-widget-side);bottom:10px;bottom:var(--race-widget-bottom);z-index:3;box-sizing:border-box;pointer-events:none;background:#0c0f11c7;border:1px solid #d8dcdd42;border-radius:8px;width:138px;height:68px;display:block;position:absolute;box-shadow:0 10px 24px #00000059}.race-test__minimap-fill{fill:#3d484c}.race-test__minimap-car path{fill:#ffbe5b;stroke:none;filter:drop-shadow(0 4px 10px #000c)}.race-test__track-status{z-index:6;color:#58c7b2;text-align:right;overflow-wrap:anywhere;text-shadow:0 1px 2px #000000e6,0 0 10px #000000bf;pointer-events:none;white-space:nowrap;font-size:.9rem;font-weight:800;line-height:1.25;position:absolute;top:8px;right:8px}.race-test__track-status--offtrack{color:#e7564c}.race-test__track-status--reversed{color:#ffbe5b}.race-test__track-lap-time{color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap;text-shadow:0 1px 2px #000000e6,0 0 10px #000000bf;pointer-events:none;flex-direction:column;align-items:flex-start;gap:2px;font-size:.9rem;font-weight:800;line-height:1.4;display:flex;position:absolute;top:8px;left:8px}.race-test__track-lap-time-row{align-items:baseline;gap:14px;display:flex}.race-test__track-best{color:#58c7b2;flex-direction:column;align-items:flex-start;gap:2px;font-size:.82rem;display:flex}.race-test__track-best-time{color:#fff;font-variant-numeric:tabular-nums;font-size:.9rem}.race-test__track-best-time--invalid{color:#e7564c}.race-test__track-current{color:#b7c1c6;flex-direction:column;align-items:flex-start;gap:2px;font-size:.82rem;display:flex}.race-test__track-current-time{color:#fff;font-variant-numeric:tabular-nums;font-size:.9rem}.race-test__track-current-time--invalid{color:#e7564c}.race-test__track-delta-row{font-size:.82rem;font-weight:700;line-height:1}.race-test__track-delta--ahead{color:#4caf50}.race-test__track-delta--behind{color:#e7564c}.race-test__car-group{filter:drop-shadow(0 0 14px #ff99468c)}@keyframes reset-flash{0%,to{opacity:1}25%,75%{opacity:.2}50%{opacity:.05}}.race-test__car--reset-flash{animation:.5s ease-in-out reset-flash}.race-test__ghost-car{opacity:.35;filter:brightness(.8)sepia()hue-rotate(150deg)saturate(2);pointer-events:none}.race-test__ai-car{pointer-events:none}.race-test__ai-list{border-bottom:1px solid #3a4044;flex-direction:column;gap:6px;margin-bottom:12px;padding-bottom:12px;display:flex}.race-test__ai-card{background:#2a3034;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex}.race-test__ai-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.race-test__ai-name{color:#ccc;flex:1}.race-test__ai-speed{color:#888;font-variant-numeric:tabular-nums}.race-test__ai-remove{color:#888;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px;line-height:1}.race-test__ai-remove:hover{color:#e7564c}.race-test__ai-add-btn{color:#b0f0c0;background:#2a6b4e;border-color:#3a8b5e}.race-test__ai-add-btn:hover{background:#34855e}.race-test__minimap-ai,.race-test__turn-segments,.race-test__turn-labels{pointer-events:none}.race-test__turn-segment{fill:none;stroke-width:4.4px;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.race-test__turn-segment--straight{stroke:#aab2b48f}.race-test__turn-segment--left{stroke:#4dabf7eb}.race-test__turn-segment--right{stroke:#e7564ceb}.race-test__turn-labels text{fill:#f7fbff;text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:#0c0f11e6;stroke-width:3.4px;font-size:10px;font-weight:900}.race-test__brake-feedback{pointer-events:none}.race-test__brake-feedback-text{fill:#58c7b2;text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:#0c0f11e6;stroke-width:4px;font-size:10px;font-weight:900}.race-test__driver-feedback-overlay{pointer-events:none;z-index:10;position:absolute;transform:translate(-120%,-200%)}.race-test__driver-feedback-text{color:#58c7b2;-webkit-text-stroke:4px #0c0f11e6;paint-order:stroke fill;white-space:nowrap;font-size:22px;font-weight:900;display:inline-block}.race-test__realtime-line{fill:none;stroke:#ffbe5b;stroke-width:.8px;stroke-linejoin:round}.race-test__brake-zone-area{fill:#e7564c38;stroke:none;pointer-events:none}.race-test__mandatory-markers{pointer-events:none}.race-test__control-marker polygon,.race-test__control-marker rect,.race-test__control-marker path,.race-test__control-marker circle{stroke:#f7fbff;stroke-width:.625px}.race-test__control-marker line{stroke:#f7fbff;stroke-width:.55px;stroke-linecap:round}.race-test__control-marker text{fill:#101416;text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-size:3.5px;font-weight:900}.race-test__control-marker--entry polygon{fill:#58c7b2}.race-test__control-marker--exit rect{fill:#ffbe5b}.race-test__control-marker--mandatory circle{fill:#4dabf7}.race-test__control-marker--mandatory{filter:none}.race-test__control-marker--single-apex path{fill:#ff3f62}.race-test__control-marker--double-apex circle{fill:#8b5cf6}.race-test__control-marker--anchor circle{fill:#4dabf7e6}.race-test__control-marker--brake circle{fill:#ff3f62;stroke:#fff;stroke-width:.5px}.race-test__control-marker--brake text{fill:#fff;dominant-baseline:central;text-anchor:middle;font-size:3.5px;font-weight:900}.race-test__control-marker--std-brake polygon{fill:#ff9800;stroke:#fff;stroke-width:.5px}.race-test__control-marker--std-brake text{fill:#fff;dominant-baseline:central;text-anchor:middle;font-size:3px;font-weight:900}.race-test__control-marker--corner circle{fill:#4caf50;stroke:#fff;stroke-width:.5px}.race-test__control-marker--corner text{fill:#fff;dominant-baseline:central;text-anchor:middle;font-size:3.5px;font-weight:900}.race-test__control-marker--corner-minCornerSpeed circle{fill:#2196f3;stroke:#fff;stroke-width:.5px}.race-test__control-marker--corner-minCornerSpeed text{fill:#fff;dominant-baseline:central;text-anchor:middle;font-size:3.5px;font-weight:900}.race-test__line-marker .race-test__checker-bg{stroke:#f2f2f2;stroke-width:1px}.race-test__line-marker .race-test__checker-fg{stroke:#1a1e20;stroke-width:1px;stroke-dasharray:1 1}.race-test__line-marker text{fill:#f2f4f3;letter-spacing:0;text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:#111416e6;stroke-width:1.4px;font-size:5px;font-weight:900}.race-test__line-marker--start .race-test__checker-bg{stroke:#58c7b2}.race-test__line-marker--finish .race-test__checker-bg{stroke:#ffbe5b}.race-test__line-marker--shared .race-test__checker-bg{stroke:#f2f2f2}.race-test__hud{grid-area:hud;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.race-test__hud>div,.race-test__metric,.race-test__sectors div{background:#111416;border:1px solid #2a3034;border-radius:8px;min-width:0;padding:12px}.race-test__hud span,.race-test__metric span,.race-test__sectors span,.race-test__group label,.race-test__slider label{color:#98a2a8;margin-bottom:6px;font-size:.78rem;display:block}.race-test__hud strong,.race-test__metric strong,.race-test__sectors strong{color:#f2f4f3;overflow-wrap:anywhere;font-size:1rem;line-height:1.2;display:block}.race-test__lap-pair strong,.race-test__speed-pair strong,.race-test__heading-pair strong{white-space:nowrap;justify-content:space-between;gap:10px;display:flex}.race-test__lap-pair strong span,.race-test__speed-pair strong span,.race-test__heading-pair strong span{font-size:inherit;margin-bottom:0;display:inline}.race-test__lap-pair strong span:first-child,.race-test__speed-pair strong span:first-child,.race-test__heading-pair strong span:first-child{color:#fff}.race-test__lap-pair strong span:last-child,.race-test__speed-pair strong span:last-child,.race-test__heading-pair strong span:last-child{color:#58c7b2}.race-test__lap-time--invalid{color:#e7564c!important}.race-test__lap-delta{color:#b7c1c6;margin-left:4px;font-size:.82em;font-style:normal}.race-test__hud .race-test__friction,.race-test__hud .race-test__friction div{background:0 0;border:0;border-radius:0;min-width:0;padding:0}.race-test__friction{grid-template-columns:56px minmax(0,1fr);align-items:center;gap:10px;display:grid}.race-test__friction svg{width:56px;height:56px;display:block}.race-test__friction-limit{fill:#0c0f11c7;stroke:#d8dcdd42;stroke-width:1px;vector-effect:non-scaling-stroke}.race-test__friction-usage{fill:#ffbe5b33;stroke:none}.race-test__friction line{stroke:#f2f4f32e;stroke-width:1px}.race-test__friction-dot{fill:#ffbe5b;stroke:#fff4c7;stroke-width:2px}.race-test__friction small{color:#98a2a8;margin-top:3px;font-size:.72rem;line-height:1.2;display:block}.race-test__replay{background:#111416;border:1px solid #2a3034;border-radius:8px;grid-area:replay;padding:12px}.race-test__replay-header,.race-test__replay-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.race-test__replay-header span,.race-test__replay-actions span{color:#98a2a8;font-size:.78rem}.race-test__replay-header strong{color:#f2f4f3;font-size:.88rem}.race-test__replay input{accent-color:#58c7b2;width:100%;margin:12px 0 10px}.race-test__replay-actions button{color:#d8dcdd;min-height:32px;font:inherit;cursor:pointer;background:#24282b;border:1px solid #394047;border-radius:8px;padding:0 12px;font-size:.86rem;font-weight:700}.race-test__replay-actions button:disabled{opacity:.45;cursor:not-allowed}.race-test__controls{grid-area:controls;padding:16px}.race-test__group,.race-test__slider{margin-bottom:16px}.race-test__group select{color:#f1f3f2;width:100%;min-height:42px;font:inherit;background:#111416;border:1px solid #343b41;border-radius:8px;padding:0 12px}.race-test__slider label{justify-content:space-between;gap:10px;display:flex}.race-test__slider input{accent-color:#ffbe5b;width:100%}.race-test__actions{grid-template-columns:1fr .72fr;gap:10px;margin-top:20px;display:grid}.race-test__primary,.race-test__secondary{min-height:44px}.race-test__primary{color:#16120a;background:#ffbe5b}.race-test__secondary{color:#eef2f1;background:#30363b}.race-test__ghost:disabled,.race-test__primary:disabled,.race-test__secondary:disabled{opacity:.55;cursor:not-allowed;transform:none}.race-test__telemetry{grid-area:telemetry;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:14px;display:grid}.race-test__sectors{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}@media (width>=901px){.race-test{padding:12px}.race-test__topbar,.race-test__layout,.race-test__planning{width:100%;max-width:none}.race-test__topbar{flex-direction:column;justify-content:flex-start;align-items:stretch;gap:14px;margin-bottom:10px}.race-test__topbar-actions{grid-template-columns:auto repeat(3,minmax(120px,1fr)) 44px 44px;justify-content:stretch;align-items:center;gap:10px;width:100%;min-width:0;max-width:none;display:grid}.race-test__topbar-actions>button:not(.race-test__settings-btn),.race-test__start-group .race-test__primary{white-space:nowrap;width:100%;min-width:0;min-height:44px;padding-inline:14px}.race-test__start-group{display:contents}.race-test__start-group .race-test__primary{grid-column:2}.race-test__fast-sim-btn{grid-column:3}.race-test__reset-btn{grid-column:4}.race-test__volume-control{grid-column:5;align-self:center}.race-test__settings-btn{grid-column:6;align-self:center}.race-test__autopilot-toggle{color:#d8dcdd;background:#181b1d;border:1px solid #2b3236;border-radius:8px;grid-column:1;min-height:44px;padding:0 12px}.race-test__layout{grid-template-columns:minmax(220px,240px) minmax(0,1fr) minmax(220px,240px);grid-template-areas:"telemetry track controls""telemetry hud controls""telemetry replay controls";align-items:start;gap:6px 12px}.race-test__track{--race-widget-bottom:18px;--race-widget-side:40px;--race-g-circle-inset:13px}.race-test__track-svg{height:max(500px,100dvh - 200px)}.race-test__minimap{width:228px;height:112px}.race-test__g-overlay .race-test__friction svg{width:144px;height:144px}.race-test__friction-glabel{font-size:12px}.race-test__controls{align-self:stretch;position:sticky;top:12px}.race-test__controls,.race-test__telemetry{padding:16px}.race-test__controls:before,.race-test__telemetry:before{color:#58c7b2;letter-spacing:0;text-transform:uppercase;font-size:.82rem;font-weight:900;display:block}.race-test__controls:before{content:"车辆参数";margin-bottom:16px}.race-test__telemetry{grid-template-columns:1fr;gap:10px;position:sticky;top:12px}.race-test__telemetry:before{content:"实时状态"}.race-test__sectors{grid-template-columns:1fr}.race-test__hud{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.race-test{padding:12px 16px 16px}.race-test__corner-actions{justify-content:flex-end;gap:6px;max-width:calc(100% - 32px);top:0;right:0}.race-test__topbar{width:calc(100% + 4px);margin-bottom:10px}.race-test__topbar-actions{grid-template-columns:auto repeat(3,minmax(0,1fr)) 44px 44px;width:100%;min-width:0;display:grid}.race-test__topbar-actions>button:not(.race-test__settings-btn),.race-test__start-group .race-test__primary{width:100%;min-width:0}.race-test__start-group{display:contents}.race-test__autopilot-toggle{grid-column:1;min-width:0}.race-test__start-group .race-test__primary{grid-column:2}.race-test__fast-sim-btn{color:#16120a;background:#ffbe5b;grid-column:3}.race-test__reset-btn{grid-column:4}.race-test__volume-control{grid-column:5;align-self:center}.race-test__settings-btn{grid-column:6;align-self:center}.race-test__layout{grid-template-columns:1fr;grid-template-areas:"track""hud""replay""controls""telemetry"}.race-test__hud,.race-test__telemetry{grid-template-columns:repeat(2,minmax(0,1fr))}.race-test__track{border-radius:0;min-height:0;margin-inline:-16px}}@media (width<=560px){.race-test{padding:8px 10px 10px}.race-test__topbar-actions{grid-template-columns:minmax(54px,.9fr) minmax(62px,1.1fr) minmax(48px,.85fr) minmax(38px,.7fr) 40px 40px;gap:2px}.race-test__topbar{width:calc(100% + 2px);margin-bottom:8px}.race-test__topbar-actions>button:not(.race-test__settings-btn),.race-test__start-group .race-test__primary{text-overflow:clip;min-height:40px;padding-inline:2px;font-size:.7rem;overflow:hidden}.race-test__autopilot-toggle{grid-area:1/1;justify-content:center;gap:2px;min-height:40px;padding:0 4px;font-size:.7rem;overflow:hidden}.race-test__start-group .race-test__primary{grid-area:1/2}.race-test__fast-sim-btn{grid-area:1/3}.race-test__reset-btn{grid-area:1/4}.race-test__volume-control{grid-area:1/5;width:40px;height:40px}.race-test__settings-btn{grid-area:1/6;width:40px;height:40px;transform:none}.race-test__corner-actions{max-width:calc(100% - 20px);top:0;right:0}.race-test__track-svg{height:clamp(380px,100dvh - 178px,680px);max-height:none}.race-test__track{margin-inline:-10px}.race-test__layout{grid-template-areas:"track""replay""controls""telemetry";gap:12px}.race-test__hud{z-index:7;scrollbar-width:none;grid-area:track;place-self:end stretch;gap:6px;margin:0 0 86px;padding:0 8px;display:flex;overflow-x:auto}.race-test__hud::-webkit-scrollbar{display:none}.race-test__hud>div{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0c0f11c7;border-color:#d8dcdd38;flex:0 0 118px;padding:7px 8px}.race-test__hud span{margin-bottom:3px;font-size:.66rem}.race-test__hud strong{font-size:.78rem}.race-test__hud .race-test__friction{grid-template-columns:38px minmax(0,1fr);gap:6px}.race-test__hud .race-test__friction svg{width:38px;height:38px}.race-test__minimap{width:96px}.race-test__topbar,.race-test__actions,.race-test__sectors{grid-template-columns:1fr}.race-test__topbar{display:grid}.race-test__hud,.race-test__telemetry{grid-template-columns:1fr}}.race-test__speed-center{z-index:4;white-space:nowrap;pointer-events:none;line-height:1;position:absolute;bottom:50px;left:50%;transform:translate(-50%)}.race-test__track--rotate-view .race-test__speed-center{bottom:36px}.race-test__speed-text{text-align:right;color:#fff;text-shadow:0 2px 4px #000000f2,0 0 10px #000000e6;width:85px;font-size:18px;font-weight:800;transition:color .15s;display:inline-block}.race-test__abs-indicator{color:#f33;text-shadow:0 2px 4px #000000f2,0 0 10px #000000e6;opacity:0;font-size:18px;font-weight:800;transition:opacity 50ms;position:absolute;top:50%;left:calc(100% + 6px);transform:translateY(-50%)}.race-test__abs-indicator--active{opacity:1;animation:.13s ease-in-out infinite brake-flash}.race-test__autopilot-indicator{z-index:4;color:#4ecdc4;text-align:center;white-space:nowrap;text-shadow:0 2px 4px #000000f2,0 0 10px #000000e6;pointer-events:none;opacity:0;font-size:13px;font-weight:700;line-height:1;transition:opacity .4s;position:absolute;bottom:74px;left:50%;transform:translate(-50%)}.race-test__track--rotate-view .race-test__autopilot-indicator{bottom:60px}.race-test__autopilot-indicator--visible{opacity:1}.race-test__brake-btn{z-index:5;color:#e7564c;-webkit-user-select:none;user-select:none;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#e7564c24;border:2px solid #e7564c;border-radius:7px;justify-content:center;align-items:center;width:84px;height:92px;font-size:17px;font-weight:800;transition:transform .18s,opacity .25s;animation:.25s ease-out brake-btn-in;display:flex;position:absolute;top:50%;right:35px;transform:translateY(-50%)}@keyframes brake-btn-in{0%{opacity:0;transform:translateY(-50%)scale(.8)}to{opacity:1;transform:translateY(-50%)scale(1)}}.race-test__brake-btn:active{background:#e7564c8c;box-shadow:0 0 16px #e7564c80}.race-test__brake-btn--squished{transform-origin:top;cursor:default;background:#e7564c40;transition:transform .35s cubic-bezier(.34,1.56,.64,1);transform:translateY(-170px)scaleY(.45)!important}.race-test__throttle-btn{z-index:5;color:#fff;-webkit-user-select:none;user-select:none;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#4caf5024;border:2px solid #4caf50;border-radius:7px;justify-content:center;align-items:center;width:84px;height:92px;font-size:17px;font-weight:800;transition:transform .18s,opacity .25s;animation:.25s ease-out throttle-btn-in;display:flex;position:absolute;top:50%;right:35px;transform:translateY(-50%)}@keyframes throttle-btn-in{0%{opacity:0;transform:translateY(-50%)scale(.8)}to{opacity:1;transform:translateY(-50%)scale(1)}}.race-test__throttle-btn:active{background:#4caf508c;box-shadow:0 0 16px #4caf5080}.race-test__throttle-btn--squished{transform-origin:top;cursor:default;background:#4caf5040;transition:transform .35s cubic-bezier(.34,1.56,.64,1);transform:translateY(-170px)scaleY(.45)!important}.race-test__g-overlay{right:calc(var(--race-widget-side) - var(--race-g-circle-inset));bottom:calc(var(--race-widget-bottom) - var(--race-g-circle-inset));z-index:4;pointer-events:none;flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute}.race-test__g-overlay .race-test__friction{background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;padding:0;display:flex}.race-test__g-overlay .race-test__friction svg{width:88px;height:88px;display:block}.race-test__friction-glabel{color:#ffffffd9;white-space:nowrap;text-shadow:0 1px 3px #000000f2;font-size:11px;font-weight:700}.race-test__throttle-brake-slider{z-index:5;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:10px;animation:.25s ease-out slider-in;position:absolute;top:50%;right:30px;transform:translateY(-50%)}@keyframes slider-in{0%{opacity:0;transform:translateY(-50%)scale(.8)}to{opacity:1;transform:translateY(-50%)scale(1)}}.race-test__slider-bg{background:#14181aeb;border:2px solid #3d484c;border-radius:10px;position:absolute;inset:0}.race-test__throttle-brake-slider--dragging .race-test__slider-bg{border-color:#58c7b2;box-shadow:0 0 18px #58c7b259}.race-test__slider-throttle-fill{pointer-events:none;background:linear-gradient(#4caf50a6,#4caf5059);border-radius:8px 8px 0 0;position:absolute;left:2px;right:2px}.race-test__slider-brake-fill{pointer-events:none;background:linear-gradient(#e7564c59,#e7564ca6);border-radius:0 0 8px 8px;position:absolute;left:2px;right:2px}@keyframes brake-flash{0%,to{opacity:1}50%{opacity:.25}}.race-test__slider-brake-fill--flashing{animation:.13s ease-in-out infinite brake-flash}.race-test__slider-neutral{pointer-events:none;background:#ffffff80;border-radius:1px;height:2px;position:absolute;top:50%;left:4px;right:4px;transform:translateY(-50%)}.race-test__slider-thumb{pointer-events:none;background:linear-gradient(135deg,#3d484c,#24282b);border:2px solid #58c7b2;border-radius:8px;justify-content:center;align-items:center;display:flex;position:absolute;box-shadow:0 2px 12px #00000080}.race-test__slider-thumb--animating{transition:top .3s cubic-bezier(.34,1.56,.64,1)}.race-test__throttle-brake-slider--dragging .race-test__slider-thumb{background:linear-gradient(135deg,#4a5a5f,#30363b);border-color:#ffbe5b;box-shadow:0 0 20px #ffbe5b73}.race-test__slider-thumb-label{color:#d8dcdd;pointer-events:none;font-size:12px;font-weight:800}.race-test__throttle-brake-slider--disabled{cursor:default;opacity:.6}.race-test__joystick{z-index:10;touch-action:none;-webkit-user-select:none;user-select:none;background:#0c0f11d1;border:1px solid #d8dcdd42;border-radius:50%;position:absolute;bottom:12px;right:12px;box-shadow:0 10px 24px #00000059}.race-test__joystick-ring{pointer-events:none;border:1px dashed #d8dcdd2e;border-radius:50%;position:absolute;inset:12px}.race-test__joystick-dot{pointer-events:none;background:radial-gradient(circle at 40% 35%,#ffbe5b,#d48b2a);border-radius:50%;width:28px;height:28px;margin-top:-14px;margin-left:-14px;position:absolute;top:50%;left:50%;box-shadow:0 4px 16px #ffbe5b80}@media (width<=560px){.race-test__speed-center{bottom:158px}.race-test__autopilot-indicator{bottom:182px}.race-test__joystick{bottom:84px}}@media (width>=901px){.race-test__g-overlay .race-test__friction svg{width:144px;height:144px}.race-test__friction-glabel{font-size:12px}}.track-editor{color:#f1f3f2;background:linear-gradient(135deg,#151c1ff5,#0f1012fa),#111;min-height:100dvh;padding:16px 0 0}.track-editor__topbar,.track-editor__layout{padding:0 16px}.track-editor__topbar{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px;display:flex}.track-editor__topbar h1{margin:0 0 8px;font-size:clamp(1.5rem,3vw,2.35rem)}.track-editor__topbar p{color:#aab4b9;margin:0}.track-editor__eyebrow{color:#58c7b2;text-transform:uppercase;font-size:.78rem;font-weight:700}.track-editor__topbar-actions,.track-editor__actions,.track-editor__section-header,.track-editor__canvas-toolbar{align-items:center;gap:10px;display:flex}.track-editor__topbar-actions{flex-wrap:wrap;justify-content:flex-end}.track-editor button,.track-editor input,.track-editor select{font:inherit}.track-editor button{color:#d8dcdd;cursor:pointer;background:#24282b;border:1px solid #394047;border-radius:8px;min-height:34px;padding:0 12px;font-weight:700}.track-editor button:hover{background:#30363a}.track-editor__button--active{color:#f2f4f3;background:#58c7b22e;border-color:#58c7b2}.track-editor button:disabled{cursor:not-allowed;opacity:.45}.track-editor__layout{grid-template-columns:280px minmax(0,1fr) 340px;align-items:start;gap:12px;padding:0 12px;display:grid}.track-editor__canvas-panel,.track-editor__card{background:#181b1d;border:1px solid #2b3236;border-radius:8px}.track-editor__canvas-panel{padding:14px}.track-editor__canvas-toolbar{color:#aab4b9;flex-wrap:wrap;justify-content:space-between;margin-bottom:12px}.track-editor__canvas-toolbar label{align-items:center;gap:8px;display:inline-flex}.track-editor__canvas-toolbar input[type=file]{max-width:220px}.track-editor__overlay-controls{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:12px;display:grid}.track-editor__overlay-controls label{color:#98a2a8;font-size:.78rem;display:block}.track-editor__overlay-controls input{color:#f1f3f2;box-sizing:border-box;background:#111416;border:1px solid #343b41;border-radius:8px;width:100%;min-height:32px;margin-top:4px;padding:0 8px}.track-editor__canvas{background:#101315;border-radius:8px;min-height:420px;overflow:hidden}.track-editor__svg{width:100%;height:min(70vh,720px);display:block}.track-editor__track-fill{fill:#58c7b21f}.track-editor__track-edge{fill:none;stroke:#58c7b2f2;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.track-editor__centerline{fill:none;stroke:#ff3f62;stroke-width:2.8px;stroke-linecap:round;stroke-linejoin:round}.track-editor__handles{pointer-events:all}.track-editor__handle{fill:#ffe36e;stroke:#121416;stroke-width:2px;cursor:grab;filter:drop-shadow(0 0 4px #ffe36e73)}.track-editor__handle:active{cursor:grabbing}.track-editor__handle--active{fill:#58c7b2;stroke:#f1f3f2}.track-editor__arc-handle{fill:#ff8f3f;stroke:#121416;stroke-width:2px;cursor:grab;filter:drop-shadow(0 0 4px #ff8f3f73)}.track-editor__arc-handle--active{fill:#ffbf5a;stroke:#f1f3f2}.track-editor__mandatory-points{pointer-events:all;cursor:grab}.track-editor__mandatory-points:active{cursor:grabbing}.track-editor__mandatory-points circle{fill:#4dabf7;stroke:#f7fbff;stroke-width:2px}.track-editor__mandatory-points text{fill:#101416;text-anchor:middle;dominant-baseline:middle;font-size:8px;font-weight:900}.track-editor__brake-interaction-points circle{fill:#ff6b35;stroke:#fff;stroke-width:2px}.track-editor__brake-interaction-points text{fill:#fff;text-anchor:middle;dominant-baseline:middle;font-size:8px;font-weight:900}.track-editor__left-sidebar,.track-editor__sidebar{flex-direction:column;gap:14px;min-width:0;display:flex}.track-editor__card{padding:14px}.track-editor__card h2{margin:0 0 12px;font-size:1rem}.track-editor__card label{color:#98a2a8;margin-bottom:10px;font-size:.82rem;display:block}.track-editor__card input,.track-editor__card select{color:#f1f3f2;box-sizing:border-box;background:#111416;border:1px solid #343b41;border-radius:8px;width:100%;min-height:36px;margin-top:5px;padding:0 10px}.track-editor__section-header{justify-content:space-between;align-items:flex-start;margin-bottom:10px}.track-editor__section-header div{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.track-editor__segments{gap:6px;max-height:290px;display:grid;overflow:auto}.track-editor__segment{text-align:left;flex-direction:column;justify-content:center;align-items:flex-start;min-height:48px;display:flex}.track-editor__segment--active{color:#f2f4f3;background:#58c7b224;border-color:#58c7b2}.track-editor__segment small{color:#9aa5aa;font-weight:500}.track-editor__mandatory-list{gap:8px;margin-top:10px;display:grid}.track-editor__mandatory-item{background:#111416;border:1px solid #343b41;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 8px;padding:8px;display:grid}.track-editor__mandatory-item span,.track-editor__mandatory-item small{min-width:0}.track-editor__mandatory-item small{color:#9aa5aa}.track-editor__mandatory-item button{grid-row:span 2}.track-editor__empty{color:#7f8b92;margin:0;font-size:.82rem}.track-editor__inline-info{margin-bottom:12px}.track-editor__inline-info-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.track-editor__saved{color:#58c7b2;margin:10px 0 0;font-size:.86rem}.track-editor__hint,.track-editor__error{color:#aab4b9;margin:8px 0 0;font-size:.82rem}.track-editor__error{color:#ff7b7b}@media (width<=980px){.track-editor__layout{grid-template-columns:1fr}.track-editor__left-sidebar,.track-editor__sidebar{order:1}.track-editor__topbar{flex-direction:column}}
