:root{--bg:#0e1116;--panel:#161b22;--panel-2:#1c232d;--border:#2a333f;--text:#d6dde6;--text-dim:#8b97a6;--accent:#4aa3ff;--danger:#ff5c5c;--good:#4ade80;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);margin:0}button{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);cursor:pointer;border-radius:5px;padding:4px 10px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#04121f;font-weight:600}button.danger:hover{border-color:var(--danger);color:var(--danger)}input,select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:4px 7px}a{color:var(--accent)}.app{flex-direction:column;height:100%;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:8px 14px;display:flex}.topbar h1{margin:0;font-size:15px;font-weight:600}.topbar .spacer{flex:1}.icon-btn{padding:4px 9px;font-size:16px;line-height:1}.workspace{flex:1;grid-template-columns:300px 6px minmax(0,1fr) 6px 40%;min-height:0;display:grid}.workspace>*{min-width:0;min-height:0;overflow:auto}.col-resizer{background:var(--border);cursor:col-resize;transition:background .12s;overflow:hidden}.col-resizer:hover{background:var(--accent)}.col-left{border-right:1px solid var(--border);background:var(--panel)}.col-centre{flex-direction:column;display:flex}.col-right{border-left:1px solid var(--border);background:var(--panel);flex-direction:column;display:flex}.map-panel{border-bottom:1px solid var(--border);flex-direction:column;flex:55%;min-height:240px;display:flex}.map-panel.collapsed{flex:none;min-height:0}.map-panel.collapsed .map-wrap,.map-panel.collapsed .sector-bar,.map-panel.collapsed .legend{display:none}.config-panel{flex:45%;overflow-y:auto}.panel-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);padding:8px 12px 4px;font-size:11px}.collapse-head{text-align:left;background:0 0;border:none;border-radius:0;align-items:center;gap:6px;width:100%;display:flex}.collapse-head:hover:not(:disabled){color:var(--text);border:none}.collapse-head .chev{width:9px;color:var(--text-dim);font-size:9px;display:inline-block}.sessions-head-row{border-bottom:1px solid var(--border);align-items:center;min-height:34px;padding-top:4px;display:flex}.sessions-head-row .collapse-head{flex:auto;min-width:0}.team-head{background:var(--panel-2);border-bottom:1px solid var(--border)}.team-head:hover{color:var(--text)}.list{margin:0;padding:0;list-style:none}.list-item{border-bottom:1px solid var(--border);cursor:pointer;padding:7px 12px}.list-item:hover{background:var(--panel-2)}.list-item.active{background:var(--panel-2);border-left:3px solid var(--accent)}.muted{color:var(--text-dim)}.small{font-size:11px}.stint-best{color:var(--accent);font-weight:600}table.laps{border-collapse:collapse;width:100%;font-size:12px}table.laps th,table.laps td{text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;padding:3px 8px}table.laps th:first-child,table.laps td:first-child{text-align:left}table.laps tr.invalid{color:var(--text-dim)}table.laps td.best{color:var(--good);font-weight:600}table.laps td.best-sector{color:#c07bff;font-weight:600}.lap-select{cursor:pointer}.lap-select:hover{background:var(--panel-2)}.overlay{z-index:50;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:540px;max-width:92vw;max-height:90vh;padding:18px 20px;overflow:auto}.dialog h2{margin:0 0 12px;font-size:16px}.field{flex-direction:column;gap:3px;margin-bottom:10px;display:flex}.field label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.row{align-items:flex-end;gap:8px;display:flex}.row>.field{flex:1}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.error{color:var(--danger);padding:6px 12px;font-size:12px}.chip-row{flex-wrap:wrap;gap:6px;padding:6px 12px;display:flex}.chip{background:var(--panel-2);border:1px solid var(--border);border-radius:12px;align-items:center;gap:6px;padding:2px 8px;font-size:11px;display:inline-flex}.chip .swatch{border-radius:50%;width:10px;height:10px}.chip button{color:var(--text-dim);background:0 0;border:none;padding:0 2px}.chip.lap-chip{border-radius:8px;align-items:center;padding:2px 6px}.lap-chip-main{flex-direction:column;line-height:1.15;display:flex}.lap-chip-driver{font-weight:600}.lap-chip-sub{font-variant-numeric:tabular-nums;font-size:10px}.chip.lap-chip{cursor:pointer;-webkit-user-select:none;user-select:none}.chip.lap-chip .swatch{border:1.5px solid #0000}.chip.lap-chip.hidden{opacity:.5}.chip.lap-chip.hidden .lap-chip-driver,.chip.lap-chip.hidden .lap-chip-sub{text-decoration:line-through}.events-panel{border-bottom:1px solid var(--border);background:var(--panel);flex:none}.events-head{align-items:center;gap:12px;padding:4px 10px;display:flex}.events-toggle{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);background:0 0;border:none;padding:2px 4px;font-size:11px}.events-legend{color:var(--text-dim);gap:12px;font-size:11px;display:flex}.events-legend .ev-key{align-items:center;gap:5px;display:flex}.ev-swatch{border-radius:2px;width:12px;height:8px}.events-body{max-height:220px;padding:2px 10px 6px;overflow-y:auto}.event-row{align-items:center;gap:8px;height:30px;display:flex}.event-label{white-space:nowrap;text-overflow:ellipsis;flex:0 0 168px;align-items:center;gap:6px;font-size:11px;display:flex;overflow:hidden}.event-label .ev-dot{border-radius:50%;flex:none;width:9px;height:9px}.event-track{background:var(--bg);border:1px solid var(--border);border-radius:3px;flex:1;height:26px;position:relative;overflow:hidden}.event-seg{color:#04121f;white-space:nowrap;cursor:pointer;border-right:1px solid #00000059;justify-content:center;align-items:center;font-size:9px;font-weight:600;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.event-seg:hover{filter:brightness(1.15)}.event-seg-label{pointer-events:none;padding:0 2px}.corner-ref-track{background:0 0;border-color:#0000;overflow:visible}.corner-marker{cursor:pointer;pointer-events:auto;flex-direction:column;align-items:center;display:flex;position:absolute;top:0;bottom:0;transform:translate(-50%)}.corner-tick{background:#7fe3ff;flex:none;width:1px;height:6px}.corner-marker-label{color:#9fd8ea;white-space:nowrap;pointer-events:none;font-size:9px;line-height:1}.corner-marker:hover .corner-marker-label{color:#dff6ff}.corner-span{cursor:pointer;pointer-events:auto;justify-content:center;align-items:center;min-width:0;display:flex;position:absolute;top:0;bottom:0}.corner-edge{background:#7fe3ff;border-radius:1px;width:2px;position:absolute;top:2px;bottom:2px}.corner-edge-start{left:0}.corner-edge-end{right:0}.corner-span:before{content:"";background:#7fe3ff66;height:1px;position:absolute;top:50%;left:0;right:0}.corner-span-label{color:#9fd8ea;white-space:nowrap;pointer-events:none;background:#090f16d9;border-radius:3px;padding:1px 3px;font-size:9px;line-height:1;position:relative}.corner-span:hover .corner-span-label{color:#dff6ff}.corner-span:hover .corner-edge{background:#dff6ff}.graphs{flex:1;padding:3px;overflow-y:auto}.graph-block{background:var(--panel);border:1px solid var(--border);border-radius:6px;margin-bottom:3px}.tiled-graphs.grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:3px;display:grid}.tiled-graphs.grid .graph-block{margin-bottom:0}.uplot{font-family:inherit!important}.uplot .u-select{background:#4aa3ff38;border-left:1px solid #4aa3ffe6;border-right:1px solid #4aa3ffe6}.cfg-list{margin:0;padding:0;list-style:none}.cfg-item{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:4px 12px;display:flex}.cfg-item .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cfg-item .ord{flex-direction:row;gap:4px;display:flex}.cfg-item .ord button{justify-content:center;align-items:center;min-width:32px;min-height:32px;padding:0;font-size:14px;line-height:1;display:flex}.map-wrap{flex:1;min-height:240px;position:relative}canvas.track{width:100%;height:100%;display:block}.map-controls{flex-direction:column;gap:4px;display:flex;position:absolute;top:8px;right:8px}.map-controls button{background:#161b22d9;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:15px;line-height:1;display:flex}.sector-bar{border-top:1px solid var(--border);flex-wrap:wrap;gap:4px;padding:6px 12px;display:flex}.sector-bar button{padding:4px 10px}.legend{border-top:1px solid var(--border);flex-wrap:wrap;gap:10px;padding:6px 12px;font-size:11px;display:flex}.legend .item{align-items:center;gap:5px;display:flex}.legend .swatch{border-radius:2px;width:12px;height:3px}.toolbar{border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;display:flex}.playback-bar{border-bottom:1px solid var(--border);background:var(--panel);align-items:center;gap:8px;padding:5px 10px;display:flex}.playback-bar .pb-scrub{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.playback-bar .play-btn{flex:none;justify-content:center;align-items:center;min-width:34px;padding-left:0;padding-right:0;font-size:12px;line-height:1;display:inline-flex}.playback-bar .pb-speed,.playback-bar .stop-btn{flex:none}.playback-bar .stop-btn{justify-content:center;align-items:center;line-height:1;display:inline-flex}.playback-bar .clock{font-variant-numeric:tabular-nums;text-align:center;min-width:3.2rem}.playback-bar .timeline{accent-color:var(--accent);cursor:pointer;flex:1}.readout{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;min-width:23rem}.toast-host{z-index:1000;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;max-width:420px;color:var(--text);background:var(--panel-2);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:9px 14px;font-size:13px;animation:.18s ease-out toast-in;box-shadow:0 6px 20px #0006}.toast-error{border-color:var(--danger);color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.stats-modal{width:820px}.stats-head{justify-content:space-between;align-items:flex-start;margin-bottom:14px;display:flex}.stats-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid}.stat-card{border:1px solid var(--border);background:var(--panel-2);border-radius:8px;padding:10px 12px}.stat-card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;margin-bottom:8px;padding-bottom:6px;display:flex}.stat-card-title{font-size:14px;font-weight:600}.stat-row{grid-template-columns:1fr auto auto;align-items:baseline;gap:8px;padding:3px 0;font-size:12px;display:grid}.stat-label{color:var(--text-dim)}.stat-value{font-variant-numeric:tabular-nums;text-align:right;font-weight:600}.stat-driver{color:var(--accent);text-align:right;text-overflow:ellipsis;white-space:nowrap;min-width:4.5rem;overflow:hidden}.corner-editor{width:min(920px,94vw)}.track-editor-tabs{gap:4px;margin-bottom:8px;display:flex}.track-editor-tabs .tab{flex:none}.track-editor-tabs .tab.active{color:#dff6ff;background:#1c3d5a;border-color:#2f6ea3}.corner-map-wrap{border:1px solid var(--border);background:#0c1118;border-radius:6px;width:100%;height:460px;margin-bottom:8px;position:relative;overflow:hidden}.corner-map-canvas{cursor:crosshair;display:block}.corner-map-loading{place-items:center;display:grid;position:absolute;inset:0}.corner-picker-bar{align-items:center;gap:8px;min-height:30px;margin-bottom:8px;display:flex}.corner-picker-bar .corner-name{flex:0 240px}.corner-ref{margin-bottom:10px}.corner-ref a{color:var(--accent)}.corner-list{flex-direction:column;gap:6px;max-height:30vh;display:flex;overflow-y:auto}.corner-row{align-items:center;gap:8px;display:flex}.corner-index{text-align:right;min-width:1.4rem}.corner-name{flex:1}.corner-dist{text-align:right;font-variant-numeric:tabular-nums;width:7rem}.corner-actions{align-items:center;gap:8px;margin-top:14px;display:flex}.app.mobile{flex-direction:column;height:100%;display:flex}.app.mobile .topbar{gap:8px;padding:8px 12px}.app.mobile .topbar h1{font-size:15px}.mobile-msg{border-bottom:1px solid var(--border);background:var(--panel);padding:6px 12px}.mobile-view{flex:1;min-height:0;display:flex;overflow:hidden}.mobile-view>*{border:none;flex:1;width:100%;min-width:0;min-height:0;overflow:auto}.mobile-view .col-right{border:none}.app.mobile .map-panel{flex:none;min-height:300px}.app.mobile .map-wrap{min-height:300px}.mobile-playback{border-top:1px solid var(--border);background:var(--panel)}.mobile-playback:empty{display:none}.mobile-tabs{border-top:1px solid var(--border);background:var(--panel);padding-bottom:env(safe-area-inset-bottom,0);display:flex}.mobile-tabs button{min-height:52px;color:var(--text-dim);background:0 0;border:none;border-radius:0;flex:1;font-size:13px;font-weight:600}.mobile-tabs button.active{color:var(--accent);box-shadow:inset 0 2px 0 var(--accent);background:var(--panel-2)}@media (max-width:820px){.list-item{padding-top:10px;padding-bottom:10px}.mobile-view .list-item{min-height:44px}.grid-toggle{display:none}.tiled-graphs.grid{grid-template-columns:1fr}.events-body{max-height:none}.event-row{flex-direction:column;align-items:stretch;gap:2px;height:auto;margin-bottom:8px}.event-label{flex:none;width:100%}.event-track{flex:none;width:100%;height:26px}.edit-track-btn{display:none}.playback-bar{gap:6px}.playback-bar .pb-speed{display:none}.playback-bar .play-btn,.playback-bar .stop-btn{min-width:44px;min-height:40px;font-size:16px}}.uplot,.uplot *,.uplot :before,.uplot :after{box-sizing:border-box}.uplot{width:min-content;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{-webkit-user-select:none;user-select:none;position:relative}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{width:100%;height:100%;display:block;position:relative}.u-axis{position:absolute}.u-legend{text-align:center;margin:auto;font-size:14px}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{pointer-events:none;background:#00000012;position:absolute}.u-cursor-x,.u-cursor-y{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.u-hz .u-cursor-x,.u-vt .u-cursor-y{border-right:1px dashed #607d8b;height:100%}.u-hz .u-cursor-y,.u-vt .u-cursor-x{border-bottom:1px dashed #607d8b;width:100%}.u-cursor-pt{pointer-events:none;will-change:transform;border:0 solid;border-radius:50%;position:absolute;top:0;left:0;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}
