:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#12151c;--surface:#1a1e28;--border:#2c3240;--text:#e6e9f0;--muted:#98a1b3;--accent:#6ea8fe;--danger:#ff8a80;--danger-border:#7a3b38;--calm:#8fd19e;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.4}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;color:var(--text);margin:0}.app{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px;padding:24px;display:grid}.stat-list{font-variant-numeric:tabular-nums;gap:4px;margin:0 0 8px;display:grid}.stat-list div{justify-content:space-between;gap:12px;display:flex}.stat-list dt{color:var(--muted)}.stat-list dd{margin:0;font-weight:600}.lane-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9rem}.lane-table th,.lane-table td{border-bottom:1px solid var(--border);text-align:right;padding:4px 6px 4px 0;font-weight:400}.lane-table th:first-child,.lane-table td:first-child{text-align:left}.lane-table thead th{color:var(--muted);font-size:.8rem}.stage{flex-direction:column;align-items:center;gap:12px;height:calc(100vh - 48px);min-height:420px;display:flex;position:sticky;top:24px}.stage-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px 24px;width:100%;display:flex}.view-controls{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.zoom{gap:4px;display:flex}.zoom button{min-width:36px;padding:7px 10px}.road{flex:1;width:100%;min-height:0;position:relative}.road canvas{width:100%;height:100%;display:block}.readout{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 32px;margin:0;display:flex}.readout dt{color:var(--muted);font-size:.8rem}.readout dd{min-width:5.5em;margin:0;font-size:1.05rem;font-weight:600}.legend{width:min(100%,420px);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:10px;font-size:.85rem;display:flex}.legend-bar{border-radius:5px;flex:1;height:10px}.status{min-height:1.4em;color:var(--muted);text-align:center;margin:0}.status.fault{color:var(--danger)}.panel{flex-direction:column;gap:16px;display:flex}.title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.title-actions{gap:6px;display:flex}.title-row h1{margin:0 4px 0 0;font-size:1.4rem}.title-row .icon-button{min-width:32px;color:var(--muted);padding:5px 7px}.title-row .icon-button:hover{color:var(--text)}.panel header p{color:var(--muted);margin:2px 0 0}.panel header .hint{margin-top:6px;font-size:.85rem}.ride-along{width:100%}.ride-along canvas{border:1px solid var(--border);cursor:pointer;border-radius:10px;width:100%;height:130px;display:block}.ride-along-foot{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-top:8px;font-size:.9rem;display:flex}.ride-along-readout{flex-wrap:wrap;gap:4px 18px;display:flex}#ride-along-car{color:var(--text)}.ride-along-actions{gap:8px;display:flex}.ride-along-actions button,.ride-along-foot button{padding:5px 12px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.transport{flex-wrap:wrap;align-items:center;gap:8px 4px;display:flex}.transport>button,.skips button{min-width:32px;padding-left:6px;padding-right:6px}.skips{gap:4px;display:inline-flex}.skips button.in-progress{--progress:0%;border-color:var(--accent);background:linear-gradient(to right, var(--accent) var(--progress), var(--surface) var(--progress));color:var(--text);opacity:1;cursor:wait}.icon-caption{letter-spacing:-.02em;margin-left:2px;font-size:.8rem;font-weight:600}.rate{flex:100%;min-width:0;margin-top:2px}.slider-ticks{height:1.1em;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.7rem;position:relative}.slider-ticks span{white-space:nowrap;position:absolute;transform:translate(-50%)}button,select{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:6px;padding:7px 14px}select{padding:7px 8px}.field{color:var(--muted);align-items:center;gap:8px;display:flex}.choice{margin-bottom:14px}.choice .note{margin-top:10px}.choice-options{flex-wrap:wrap;gap:8px 20px;display:flex}.choice-options label{cursor:pointer;align-items:center;gap:6px;display:flex}.choice-options input{accent-color:var(--accent)}button:hover,select:hover{border-color:var(--muted)}button:disabled{opacity:.45;cursor:not-allowed}.icon-button{justify-content:center;align-items:center;min-width:34px;padding:8px 7px;display:inline-flex}.help{width:26px;height:26px;color:var(--muted);border-radius:50%;padding:0;font-weight:600;line-height:1}.model{justify-content:space-between;margin-bottom:14px}.model label{align-items:center;gap:8px;display:flex}select:disabled{color:var(--muted);cursor:not-allowed;opacity:.8}.dialog-body h3{margin:18px 0 8px;font-size:1rem}.formula{background:var(--bg);border-radius:8px;padding:10px 14px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9rem;line-height:1.7}button.running{border-color:var(--accent);background:var(--accent);color:var(--text)}.derived{gap:6px;margin:14px 0 0;display:grid}.derived div{justify-content:space-between;gap:12px;display:flex}.derived dt{color:var(--muted)}.derived dd{font-variant-numeric:tabular-nums;margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}fieldset{border:1px solid var(--border);background:var(--surface);border-radius:10px;margin:0;padding:12px 16px 16px}.box{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:10px 16px 16px}.box.collapsed{padding-bottom:10px}.box.collapsed .box-body{display:none}.box-head{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:8px;display:flex}.box-head h2{margin:0;font-size:1rem}.box-actions{gap:4px;display:flex}.box-actions .icon-button{min-width:28px;color:var(--muted);padding:4px 5px}.box-actions .icon-button:hover{color:var(--text)}.box-body{margin-top:12px}.box-body h3{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 6px;font-size:.8rem}.box-body .stat-list+h3,.box-body .note+h3{margin-top:14px}legend{padding:0 6px;font-weight:600}.sliders{gap:12px;display:grid}.sliders+button{margin-top:14px}.slider{gap:4px;display:grid}.slider-head{justify-content:space-between;gap:12px;display:flex}.slider output{color:var(--muted);font-variant-numeric:tabular-nums}.slider input{width:100%;accent-color:var(--accent);margin:0}.note{color:var(--muted);margin:12px 0 0;font-size:.85rem}.error{color:var(--danger);margin:10px 0 0;font-size:.9rem}dialog{border:1px solid var(--border);background:var(--surface);width:min(640px,100vw - 32px);max-height:calc(100vh - 48px);color:var(--text);border-radius:12px;padding:0}dialog::backdrop{background:#05070cb3}.dialog-body{padding:20px 24px 24px}.dialog-body p{margin:0 0 14px}.dialog-body .note{margin:14px 0 0}.dialog-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.dialog-head h2{margin:0;font-size:1.2rem}.dialog-close{background:0 0;padding:4px 10px}.table-scroll{overflow-x:auto}.presets{border-collapse:collapse;font-variant-numeric:tabular-nums;white-space:nowrap;width:100%}.presets th,.presets td{border-bottom:1px solid var(--border);text-align:left;padding:6px 12px 6px 0;font-weight:400}.presets thead th{color:var(--muted);font-size:.85rem}.presets tbody th{font-weight:600}.outcome{text-align:left;width:100%;padding:5px 10px}.outcome.absorbed{color:var(--calm)}.outcome.jam{border-color:var(--danger-border);color:var(--danger)}.info{margin:0}.info dt{margin-top:14px;font-weight:600}.info dt:first-child{margin-top:0}.info dd{color:var(--muted);margin:2px 0 0}.info+p{margin-top:16px}@media (width<=860px){.app{grid-template-columns:minmax(0,1fr);gap:16px;padding:16px}.panel{display:contents}.panel-header{order:0}.stage{order:1}.transport{z-index:2;border-top:1px solid var(--border);background:var(--bg);order:2;margin:0 -16px -16px;padding:10px 16px 14px;position:sticky;bottom:0}.transport button{min-width:36px;padding-left:8px;padding-right:8px;font-size:.9rem}.panel .box{order:3}.ride-along canvas{height:100px}.stage{height:auto;min-height:0;position:static}.road{flex:none;height:min(100vw - 32px,45vh)}}@media (width<=600px){.dialog-body{padding:16px}.presets{white-space:normal;font-size:.85rem}.presets th,.presets td{padding-right:8px}.outcome{padding:4px 6px}}
