:root{--paper:#f3f0e7;--paper-2:#ebe6d8;--panel:#faf8f2;--panel-2:#f5f2e8;--ink:#1e2326;--ink-2:#5b6166;--ink-3:#8c8f8a;--rule:#d3cab4;--rule-2:#e3dccb;--stop:#c8102e;--green:#00764a;--green-2:#3e9a6c;--blue:#1f4e96;--school:#c4e530;--school-ink:#5f7700;--amber:#e89a17;--amber-ink:#9a5f00;--font:"Overpass", "Helvetica Neue", Arial, sans-serif;--mono:"Overpass Mono", ui-monospace, "SF Mono", Menlo, monospace;--topbar-h:66px;--toolbar-h:74px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--paper);height:100%;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;overflow:hidden}button{color:inherit;font-family:inherit}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}#app{grid-template-rows:var(--topbar-h) 1fr var(--toolbar-h);height:100vh;display:grid}.topbar{border-bottom:2px solid var(--ink);background:var(--paper);scrollbar-width:none;align-items:stretch;gap:0;min-width:0;padding:0 10px 0 12px;display:flex;overflow:auto hidden}.topbar::-webkit-scrollbar{display:none}@media (width<=1650px){.brand-sub{display:none}.field{padding:0 8px}.seg button{padding:5px 7px 3px;font-size:11.5px}.clock-sign div{padding:5px 7px 2px;font-size:17px}.clock-sign small,.cost-sub{display:none}}@media (width<=1500px){.toolbar .hint{display:none}.social{border-left:0;margin-left:auto}}@media (width<=1400px){.field>label{letter-spacing:.1em;font-size:9px}.cost{font-size:16px}.seed input{width:54px}}.brand{border-right:1px solid var(--rule);align-items:center;gap:12px;margin-right:4px;padding-right:16px;display:flex}.brand-sign{background:var(--green);color:#fff;border-radius:7px;padding:3px;box-shadow:0 1px #00000026}.brand-sign span{letter-spacing:.08em;border:1.6px solid #fff;border-radius:5px;padding:6px 10px 3px;font-size:17px;font-weight:900;line-height:1;display:block}.brand-sub{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);font-size:10.5px;font-weight:700;line-height:1.25}.field{border-right:1px solid var(--rule-2);flex-direction:column;justify-content:center;gap:4px;min-width:0;padding:0 11px;display:flex}.field:last-child{border-right:0}.field>label,.cap{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-size:9.5px;font-weight:800;line-height:1}.seg{border:1.5px solid var(--ink);background:var(--panel);border-radius:6px;display:inline-flex;overflow:hidden}.seg button{letter-spacing:.04em;cursor:pointer;border:0;border-right:1px solid var(--rule);white-space:nowrap;background:0 0;padding:5px 9px 3px;font-size:12px;font-weight:800;line-height:1.25}.seg button:last-child{border-right:0}.seg button:hover{background:var(--paper-2)}.seg button.on{background:var(--ink);color:#fff}.seg button.on[data-tone=green]{background:var(--green)}.seg button.on[data-tone=green2]{background:var(--green-2)}.seg button.on[data-tone=blue]{background:var(--blue)}.seg button.on[data-tone=mixed]{background:linear-gradient(90deg, var(--blue) 0 50%, var(--green) 50% 100%)}.seg button:disabled{color:var(--ink-3);cursor:not-allowed}.toggle{border:1.5px solid var(--ink);letter-spacing:.08em;cursor:pointer;background:var(--green);color:#fff;border-radius:6px;padding:5px 10px 3px;font-size:12px;font-weight:900;line-height:1.25}.toggle.off{background:var(--stop)}.clock-sign{background:var(--green);color:#fff;border-radius:6px;align-self:center;padding:2px}.clock-sign div{letter-spacing:.04em;border:1.4px solid #fff;border-radius:4px;padding:5px 9px 2px;font-size:19px;font-weight:800;line-height:1}.clock-sign small{letter-spacing:.14em;opacity:.85;vertical-align:3px;margin-left:6px;font-size:9px;font-weight:800}.school-chip{letter-spacing:.1em;background:var(--school);color:#2b3300;border:1px solid var(--school-ink);visibility:hidden;border-radius:3px;margin-top:2px;padding:2px 6px 0;font-size:9.5px;font-weight:900;display:inline-block}.school-chip.on{visibility:visible}.seed{align-items:center;gap:5px;display:flex}.seed input{border:1.5px solid var(--ink);width:64px;font-family:var(--font);background:var(--panel);border-radius:5px;padding:4px 6px 2px;font-size:13px;font-weight:800}.icon-btn{border:1.5px solid var(--ink);background:var(--panel);cursor:pointer;border-radius:5px;padding:4px 8px 2px;font-size:12px;font-weight:800;line-height:1.25}.icon-btn:hover{background:var(--paper-2)}.cost{font-size:19px;font-weight:900;line-height:1}.cost-sub{color:var(--ink-2);font-size:10px;font-weight:700}.spacer{flex:1}.main{grid-template-columns:70% 30%;min-height:0;display:grid}.main.sbs{grid-template-columns:100% 0}.main.sbs .panel{display:none}.stage{background:var(--paper);grid-template-columns:1fr;min-width:0;min-height:0;display:grid;position:relative}.stage.two{grid-template-columns:1fr 1fr}.pane{border-right:0;min-width:0;min-height:0;position:relative}.stage.two .pane:first-child{border-right:2px solid var(--ink)}.pane canvas{cursor:grab;width:100%;height:100%;display:block;position:absolute;inset:0}.pane canvas.placing{cursor:crosshair}.pane-tag{pointer-events:none;align-items:stretch;gap:8px;display:flex;position:absolute;top:12px;right:12px}.pane-tag .plate{color:#fff;letter-spacing:.08em;border-radius:6px;padding:2px;font-size:13px;font-weight:900}.pane-tag .plate span{border:1.4px solid #fff;border-radius:4px;padding:5px 9px 2px;display:block}.pane-tag .plate.rules{background:var(--blue)}.pane-tag .plate.jev{background:var(--green)}.pane-tag .plate.mock-jev{background:var(--green-2)}.pane-tag .plate.mixed{background:linear-gradient(90deg, var(--blue) 0 50%, var(--green) 50% 100%)}.pane-stats{border:1.5px solid var(--ink);letter-spacing:.04em;background:#faf8f2f2;border-radius:6px;gap:14px;padding:5px 10px 3px;font-size:11px;font-weight:800;display:flex}.pane-stats b{font-size:15px;line-height:1;display:block}.pane-stats .bad b{color:var(--stop)}.pane-stats .warn b{color:var(--amber-ink)}.banner{background:var(--ink);color:#fff;letter-spacing:.04em;pointer-events:none;opacity:0;text-align:center;border-radius:6px;max-width:80%;padding:7px 14px 5px;font-size:12.5px;font-weight:800;transition:opacity .2s;position:absolute;top:70px;left:50%;transform:translate(-50%)}.banner.show{opacity:.94}.banner.warn{background:var(--amber);color:#1e2326}.banner.bad{background:var(--stop)}.panel{border-left:2px solid var(--ink);background:var(--panel);grid-template-rows:auto 1fr;min-width:0;min-height:0;display:grid}.tabs{border-bottom:1.5px solid var(--ink);display:flex}.tabs button{letter-spacing:.14em;cursor:pointer;color:var(--ink-3);background:0 0;border:0;border-bottom:3px solid #0000;flex:1;margin-bottom:-1.5px;padding:12px 6px 9px;font-size:12px;font-weight:900}.tabs button.on{color:var(--ink);border-bottom-color:var(--ink)}.tabs button .badge{background:var(--stop);color:#fff;letter-spacing:0;border-radius:9px;min-width:18px;margin-left:6px;padding:2px 5px 0;font-size:10px;display:inline-block}.tab-body{min-height:0;padding:14px 16px 20px;overflow-y:auto}.empty{color:var(--ink-3);text-align:center;padding:40px 10px;font-size:13px;font-weight:700;line-height:1.6}.empty .big{margin-bottom:8px;font-size:34px;display:block}.sec{margin-top:16px}.sec:first-child{margin-top:0}.sec-h{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;margin-bottom:8px;padding-bottom:5px;font-size:10px;font-weight:900;display:flex}.sec-h span:last-child{letter-spacing:.02em;text-transform:none;color:var(--ink-3);font-weight:700}.car-head{align-items:center;gap:10px;display:flex}.car-badge{color:#fff;text-align:center;border-radius:6px;min-width:48px;padding:7px 10px 3px;font-size:20px;font-weight:900;line-height:1}.car-badge.rules{background:var(--blue)}.car-badge.jev{background:var(--green)}.car-badge.mock-jev{background:var(--green-2)}.car-meta{flex:1;min-width:0}.car-meta .l1{letter-spacing:.06em;font-size:13px;font-weight:900}.car-meta .l2{color:var(--ink-2);margin-top:2px;font-size:12px;font-weight:600}.chip{letter-spacing:.08em;border:1.4px solid var(--ink);text-transform:uppercase;white-space:nowrap;border-radius:4px;padding:3px 7px 1px;font-size:10.5px;font-weight:900;display:inline-block}.chip.ok{background:var(--green);border-color:var(--green);color:#fff}.chip.warn{background:var(--amber);border-color:var(--amber);color:#1e2326}.chip.bad{background:var(--stop);border-color:var(--stop);color:#fff}.chip.blue{background:var(--blue);border-color:var(--blue);color:#fff}.perception{font-family:var(--mono);border-left:3px solid var(--ink);white-space:pre-wrap;word-break:break-word;color:#2a2f33;background:#f6f2e6;padding:9px 10px 9px 11px;font-size:11.6px;line-height:1.55}.perception.scene{border-left-color:var(--ink-3);color:var(--ink-2);font-size:11px}.bars{grid-template-columns:96px 1fr 44px;align-items:center;gap:4px 8px;font-size:11.5px;font-weight:800;display:grid}.bars .lbl{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);font-size:10.5px}.bars .lbl.top{color:var(--ink)}.bar{background:var(--rule-2);border-radius:2px;height:12px;position:relative;overflow:hidden}.bar i{background:var(--ink-3);border-radius:2px;transition:width .25s ease-out;position:absolute;inset:0 auto 0 0}.bar i.top{background:var(--green)}.bar i.top.rules{background:var(--blue)}.bar i.top.mock-jev{background:var(--green-2)}.bars .val{text-align:right}.scale{margin:4px 0 10px}.scale .track{border:1.4px solid var(--ink);background:linear-gradient(90deg, var(--panel) 0 25%, var(--panel-2) 25% 50%, var(--panel) 50% 75%, var(--panel-2) 75%);border-radius:3px;height:14px;position:relative}.scale .track.hazard{background:linear-gradient(90deg,#eef3e0 0 25%,#f7efd6 25% 50%,#f8e2c2 50% 75%,#f4cfcf 75%)}.scale .mark{background:var(--ink);border-radius:2px;width:4px;margin-left:-2px;transition:left .25s ease-out;position:absolute;top:-4px;bottom:-4px}.scale .ticks{color:var(--ink-3);letter-spacing:.02em;grid-template-columns:repeat(4,1fr);margin-top:4px;font-size:9.5px;font-weight:700;display:grid}.scale .ticks span{padding-right:4px;line-height:1.2}.kv{grid-template-columns:1fr 1fr;gap:8px;display:grid}.kv>div{border:1px solid var(--rule);background:var(--panel-2);border-radius:5px;padding:7px 9px 5px}.kv .k{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:9.5px;font-weight:900}.kv .v{margin-top:3px;font-size:17px;font-weight:900;line-height:1.1}.kv .v small{color:var(--ink-2);font-size:11px;font-weight:700}.kv .v.bad{color:var(--stop)}.kv .v.warn{color:var(--amber-ink)}.kv .v.ok{color:var(--green)}.grid3{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.counter{border:1px solid var(--rule);background:var(--panel-2);border-radius:5px;padding:7px 8px 5px}.counter .v{font-size:21px;font-weight:900;line-height:1}.counter .k{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin-top:4px;font-size:9.2px;font-weight:800;line-height:1.2}.counter.bad{border-color:var(--stop);background:#fbeaea}.counter.bad .v{color:var(--stop)}.counter.warn .v{color:var(--amber-ink)}table.brains{border-collapse:collapse;width:100%;font-size:11.5px}table.brains th{text-align:right;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--rule);padding:4px;font-size:9.5px;font-weight:900}table.brains th:first-child,table.brains td:first-child{text-align:left}table.brains td{text-align:right;border-bottom:1px solid var(--rule-2);padding:5px 4px 3px;font-weight:700}.dot{vertical-align:0;border-radius:2px;width:9px;height:9px;margin-right:6px;display:inline-block}.spark{width:100%;height:54px;display:block}.log{font-size:11.5px;line-height:1.35}.log .row{border-bottom:1px solid var(--rule-2);grid-template-columns:48px 1fr;gap:8px;padding:5px 0 4px;display:grid}.log .row.bad,.log .row.warn,.log .row.ok{border-left:3px solid var(--stop);margin-left:-6px;padding-left:6px}.log .row.warn{border-left-color:var(--amber)}.log .row.ok{border-left-color:var(--green)}.log .t{color:var(--ink-3);font-weight:700}.log .row.bad .x{color:var(--stop);font-weight:800}.log .row.warn .x{color:var(--amber-ink);font-weight:700}.log .row.ok .x{color:var(--green);font-weight:700}.log .dec{font-family:var(--mono);font-size:10.8px}.filters{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.filters button{border:1.3px solid var(--ink);background:var(--panel);letter-spacing:.08em;cursor:pointer;border-radius:12px;padding:3px 10px 1px;font-size:10.5px;font-weight:900}.filters button.on{background:var(--ink);color:#fff}.toolbar{border-top:2px solid var(--ink);background:var(--paper);align-items:center;gap:8px;min-width:0;padding:0 12px;display:flex;overflow-x:auto}.toolbar .tb-label{letter-spacing:.14em;color:var(--ink-3);writing-mode:vertical-rl;padding:0 2px;font-size:9.5px;font-weight:900;transform:rotate(180deg)}.ev{border:1.5px solid var(--ink);background:var(--panel);cursor:pointer;text-align:left;white-space:nowrap;border-radius:7px;align-items:center;gap:8px;padding:6px 10px 5px 7px;font-size:12px;font-weight:800;line-height:1.15;display:flex}.ev:hover{background:var(--paper-2)}.ev.on{background:var(--ink);color:#fff}.ev.active{box-shadow:inset 0 -3px 0 var(--amber)}.ev small{color:var(--ink-3);letter-spacing:.04em;font-size:9.5px;font-weight:700;display:block}.ev.on small{color:#cfd3d6}.ev svg{flex:none;width:30px;height:30px}.social{border-left:1px solid var(--rule-2);flex:none;align-items:center;gap:11px;margin-left:13px;padding-left:13px;display:flex}.social a{color:var(--ink-3);transition:color .15s;display:flex}.social a:hover,.social a:focus-visible{color:var(--ink)}.social svg{fill:currentColor;width:15px;height:15px;display:block}.hint{color:var(--ink-2);white-space:nowrap;margin-left:auto;padding-left:12px;font-size:11.5px;font-weight:700}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.res-card{border:1px solid var(--rule);background:var(--panel-2);border-radius:6px;margin-bottom:7px;padding:8px 10px 6px}.res-top{letter-spacing:.04em;align-items:center;font-size:13px;display:flex}.res-acc{margin-left:auto;font-size:22px;font-weight:900}.res-sub{color:var(--ink-2);margin-top:2px;font-size:11px;font-weight:700}.res-cat{margin-bottom:9px}.res-cat-h{letter-spacing:.14em;color:var(--ink-3);margin-bottom:3px;font-size:9.5px;font-weight:900}.res-row{grid-template-columns:64px 1fr 40px;align-items:center;gap:8px;margin:3px 0;font-size:11.5px;font-weight:800;display:grid}.res-row span:last-child{text-align:right}code{font-family:var(--mono);background:var(--paper-2);border-radius:3px;padding:1px 4px;font-size:.95em}
