.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}:root{--bg-0:#0b0d12;--bg-1:#12161f;--bg-2:#1a2030;--bg-3:#222a3d;--line-1:#ffffff12;--line-2:#ffffff1f;--tx-1:#e9edf5;--tx-2:#9aa3b8;--tx-3:#5c6478;--rtt:#e30613;--rtt-dim:#e306131a;--f-fastest:#b57bff;--f-gain:#34d27b;--f-warn:#f2a93b;--f-warn-dim:#f2a93b12;--f-info:#4da3ff;--f-danger:#ff4538;--f-danger-dim:#ff453814;--cat-pro:#d9b45c;--cat-silver:#c7ced8;--cat-bronze:#c97f3f;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--fs-xs:10px;--fs-s:11px;--fs-m:13px;--fs-l:16px;--r-s:2px;--r-m:4px;--topbar-h:46px;--gap:14px;--t-fast:.12s;--ease:cubic-bezier(.2, 0, 0, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%}body{background:var(--bg-0);color:var(--tx-1);font-family:var(--font-ui);font-size:var(--fs-m);-webkit-font-smoothing:antialiased;line-height:1.45}::placeholder{color:var(--tx-3)}::selection{background:var(--rtt);color:#fff}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}.num,.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--tx-2)}.dim{color:var(--tx-3)}.fastest{color:var(--f-fastest)}.shell{grid-template-rows:var(--topbar-h) 1fr;min-height:100vh;display:grid}.topbar{background:var(--bg-1);border-bottom:1px solid var(--line-1);z-index:5;align-items:stretch;font-size:12px;display:flex;position:sticky;top:0}.topbar .cell{border-right:1px solid var(--line-1);align-items:center;gap:8px;padding:0 16px;display:flex}.topbar .brand{letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:800}.topbar .brand b{color:var(--rtt);font-weight:800}.topbar .commit{text-transform:none;letter-spacing:0;font-weight:500;font-family:var(--font-mono);font-size:var(--fs-s);color:var(--tx-3)}.topbar nav{align-items:stretch;display:flex}.topbar nav a{color:var(--tx-2);transition:color var(--t-fast) var(--ease);border-bottom:2px solid #0000;align-items:center;padding:0 14px;font-weight:600;display:flex}.topbar nav a:hover{color:var(--tx-1)}.topbar nav a.active{color:var(--tx-1);border-bottom-color:var(--rtt)}.topbar .spacer{flex:1}.topbar .user{border-right:0;border-left:1px solid var(--line-1)}.topbar .user a{color:var(--tx-1);font-weight:600}.main{width:100%;max-width:1480px;margin:0 auto;padding:18px 20px 40px}.page-title{font-size:var(--fs-l);align-items:baseline;gap:10px;margin:2px 0 14px;font-weight:700;display:flex}.page-title small{color:var(--tx-3);font-size:12px;font-weight:500}.crumbs{font-size:var(--fs-s);color:var(--tx-3);margin-bottom:4px}.crumbs a:hover{color:var(--tx-1)}.grid{gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:start;display:grid}.card{background:var(--bg-1);border:1px solid var(--line-1);border-radius:var(--r-m);min-width:0}.card+.card{margin-top:var(--gap)}.grid>.card+.card{margin-top:0}.card .hd{border-bottom:1px solid var(--line-1);font-size:var(--fs-s);letter-spacing:.11em;text-transform:uppercase;color:var(--tx-2);align-items:center;gap:10px;padding:10px 14px;font-weight:700;display:flex}.card .hd .right{text-transform:none;letter-spacing:0;color:var(--tx-3);margin-left:auto;font-weight:500}.card .bd{padding:14px}.card .bd.flush{padding:0}.kv{grid-template-columns:max-content 1fr;gap:6px 18px;display:grid}.kv dt{color:var(--tx-3);font-size:var(--fs-s);text-transform:uppercase;letter-spacing:.08em;align-self:center}.kv dd{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.counters{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));display:grid;overflow:hidden}.counter{box-shadow:1px 0 0 var(--line-1), 0 1px 0 var(--line-1);padding:12px 14px}.counter .v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:20px;font-weight:600}.counter .l{font-size:var(--fs-xs);color:var(--tx-3);text-transform:uppercase;letter-spacing:.1em}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:12.5px}table.data th{text-align:left;font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--tx-3);border-bottom:1px solid var(--line-2);white-space:nowrap;background:var(--bg-1);padding:7px 12px;font-weight:700;position:sticky;top:0}table.data td{border-bottom:1px solid var(--line-1);white-space:nowrap;padding:6px 12px}table.data tbody tr:last-child td{border-bottom:0}table.data th.r,table.data td.r{text-align:right}table.data td.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}table.data tr.link{cursor:pointer}table.data tr.link:hover td{background:var(--bg-2)}table.data tr.caution td{background:var(--f-warn-dim)}table.data tr.caution td.flag-cell,table.data tr.caution td.pit-cell{color:var(--f-warn)}.tag{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;border-radius:var(--r-s);border:1px solid var(--line-2);color:var(--tx-2);padding:1px 5px;font-weight:700;display:inline-block}.tag.warn{color:var(--f-warn);border-color:#f2a93b66}.tag.ok{color:var(--f-gain);border-color:#34d27b59}.tag.off{color:var(--tx-3)}.tag.accent{background:var(--rtt);border-color:var(--rtt);color:#fff}.form{gap:12px;display:grid}.form.inline{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));align-items:end}.form.inline .btn{height:32px}.field{gap:5px;display:grid}.field>span{font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--tx-3);font-weight:700}.field input,.field select{background:var(--bg-0);border:1px solid var(--line-2);border-radius:var(--r-m);outline:none;min-width:0;height:32px;padding:7px 10px}.field input:focus,.field select:focus{border-color:var(--tx-3)}.btn{border-radius:var(--r-m);border:1px solid var(--line-2);background:var(--bg-2);cursor:pointer;min-height:26px;transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-size:12px;font-weight:600;display:inline-flex}.btn:hover{border-color:var(--tx-3)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--rtt);border-color:var(--rtt);color:#fff}.btn.small{font-size:var(--fs-s);padding:3px 9px}.btn.ghost{background:0 0}.seg{border:1px solid var(--line-2);border-radius:var(--r-m);display:inline-flex;overflow:hidden}.seg button{border:0;border-right:1px solid var(--line-2);font-family:var(--font-mono);color:var(--tx-2);cursor:pointer;background:0 0;padding:5px 12px;font-size:12px;font-weight:600}.seg button:last-child{border-right:0}.seg button[aria-pressed=true]{background:var(--bg-3);color:var(--tx-1)}.notice{border:1px solid var(--line-2);border-radius:var(--r-m);color:var(--tx-2);background:var(--bg-1);padding:9px 12px;font-size:12.5px}.notice.error{background:var(--f-danger-dim);color:var(--tx-1);border-color:#ff453866}.notice.warn{background:var(--f-warn-dim);color:var(--tx-1);border-color:#f2a93b66}.notice.ok{color:var(--tx-1);border-color:#34d27b59}.empty{border:1px dashed var(--line-2);text-align:center;color:var(--tx-3);padding:28px 20px;font-size:12px}.empty .t{font-family:var(--font-mono);letter-spacing:.14em;color:var(--tx-2);text-transform:uppercase;margin-bottom:6px;font-weight:600}.loading{font-family:var(--font-mono);font-size:var(--fs-s);letter-spacing:.14em;color:var(--tx-3);text-transform:uppercase;padding:12px 0}.stack>*+*{margin-top:var(--gap)}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.login{place-items:center;min-height:100vh;padding:20px;display:grid}.login .card{width:100%;max-width:340px}.login .brand-line{justify-content:space-between;align-items:baseline;display:flex}.drivers{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid;overflow:hidden}.driver-sum{box-shadow:1px 0 0 var(--line-1), 0 1px 0 var(--line-1);padding:10px 14px}.driver-sum .name{margin-bottom:6px;font-weight:700}.driver-sum .stats{grid-template-columns:repeat(4,auto);justify-content:space-between;gap:4px 12px;display:grid}.driver-sum .stats .l{font-size:var(--fs-xs);color:var(--tx-3);text-transform:uppercase;letter-spacing:.08em}.driver-sum .stats .v{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.secret{font-family:var(--font-mono);background:var(--bg-0);border:1px solid var(--line-2);border-radius:var(--r-m);word-break:break-all;align-items:center;gap:10px;padding:8px 10px;font-size:15px;display:flex}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.plain-list{gap:4px;font-size:12px;list-style:none;display:grid}.dated-list{gap:7px;font-size:12.5px;list-style:none;display:grid}.dated-list li{grid-template-columns:84px 1fr;gap:10px;display:grid}.accent-text{color:var(--rtt)}.grow{flex:1}.full-row{grid-column:1/-1}.spaced{margin-bottom:var(--gap)}.page-head{margin-bottom:var(--gap);justify-content:space-between}.page-head .page-title{margin:0}.field.compact input{width:84px;height:26px;font-family:var(--font-mono);padding:3px 8px}.jobs-ind{font-size:var(--fs-s);color:var(--tx-2)}.jobs-ind .l{font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--tx-3);font-weight:700}.jobs-ind.down{color:var(--f-danger);background:var(--f-danger-dim)}.jobs-ind.down .l,.jobs-ind.down .dim{color:var(--f-danger)}.xc-ok{color:var(--f-gain)}.xc-warn{color:var(--f-warn)}.xc-bad{color:var(--f-danger)}table.data tr.stale td{opacity:.55}.tags{flex-wrap:wrap;gap:4px;display:inline-flex}.dropzone{border:1px dashed var(--line-2);border-radius:var(--r-m);color:var(--tx-2);background:var(--bg-0);flex-direction:column;align-items:center;gap:8px;padding:22px;display:flex}.dropzone.over{border-color:var(--rtt);background:var(--rtt-dim)}.upload-list{margin-top:var(--gap)}.notice.inline{padding:1px 6px;display:inline-block}.err-cell{color:var(--f-danger);white-space:normal}.check{font-size:var(--fs-s);text-transform:none;letter-spacing:0;color:var(--tx-2)}.loss{color:var(--f-danger)}.gain{color:var(--f-gain)}.chip{vertical-align:-1px;border-radius:1px;flex:none;width:10px;height:10px;display:inline-block}.lc-0{background:#e9edf5}.lc-1{background:#e30613}.lc-2{background:#4da3ff}.lc-3{background:#f2a93b}.lc-4{background:#3fd0c9}.uchart{width:100%;min-width:0}.uchart .uplot{font-family:var(--font-mono);color:var(--tx-3)}.uchart .uplot .u-cursor-x{border-right:1px solid #e9edf58c}.uchart .uplot .u-cursor-y{display:none}.uchart .uplot .u-select{background:#e306131f}.uchart .u-cursor-pt{border-radius:50%}.kbd-hint{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em}.lap-legend{background:var(--line-1);border:1px solid var(--line-1);border-radius:var(--r-m);margin-bottom:var(--gap);flex-wrap:wrap;gap:1px;display:flex;overflow:hidden}.lap-item{background:var(--bg-1);cursor:pointer;text-align:left;border:0;flex:220px;align-items:center;gap:10px;padding:9px 12px;display:flex}.lap-item:hover{background:var(--bg-2)}.lap-item[aria-pressed=false]{opacity:.4}.lap-item .who{font-weight:700}.lap-item .t{font-size:14px;font-weight:600}.lap-item .d{font-size:12px}.cmp-layout{gap:var(--gap);margin:var(--gap) 0;grid-template-columns:minmax(0,1fr) 360px;align-items:start;display:grid}.cmp-side{top:calc(var(--topbar-h) + 10px);position:sticky}.cmp-side .card+.card,.cmp-main .card+.card{margin-top:var(--gap)}@media (width<=1100px){.cmp-layout{grid-template-columns:minmax(0,1fr)}.cmp-side{gap:var(--gap);order:-1;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid;position:static}.cmp-side .card+.card{margin-top:0}}.trace-panels{padding:4px 0 8px}.tp-panel+.tp-panel{border-top:1px solid var(--line-1)}.tp-panel.tp-strip{border-top:0}.tp-hd{font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--tx-2);align-items:baseline;gap:8px;padding:5px 12px 0 14px;font-weight:700;display:flex}.tp-hd .u{font-family:var(--font-mono);letter-spacing:0;text-transform:none;color:var(--tx-3);font-weight:500}.tp-hd .tag{text-transform:none;margin-left:auto}.tp-strip .tp-hd{color:var(--tx-3);padding-top:2px}.readout{border-bottom:1px solid var(--line-2)}.readout table.data td,.readout table.data th{padding:4px 10px}.readout th .u{text-transform:none;letter-spacing:0;font-weight:500}.readout th[data-testid=readout-s]{color:var(--tx-1);font-family:var(--font-mono);letter-spacing:0;font-size:12px}.track-map{background:var(--bg-0);cursor:crosshair;width:100%;height:auto;max-height:420px;display:block}.track-map .tm-centre{stroke:var(--bg-3);stroke-width:9px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.track-map .tm-lap{stroke-width:1.4px;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:.85}.track-map .tm-zoom{stroke:var(--rtt);stroke-width:8px;stroke-opacity:.6;stroke-linecap:round;vector-effect:non-scaling-stroke}.track-map .tm-timing{stroke:var(--rtt);stroke-width:2px;vector-effect:non-scaling-stroke}.track-map .tm-corner circle{fill:var(--tx-3)}.track-map .tm-corner text{fill:var(--tx-2);font-family:var(--font-mono)}.track-map .tm-sector rect{fill:var(--tx-1)}.track-map .tm-sector text{fill:var(--tx-1);font-family:var(--font-mono);font-weight:700}.track-map .tm-dot{stroke:var(--bg-0);stroke-width:1.5px;vector-effect:non-scaling-stroke}.track-map .tm-dot.plain{fill:var(--tx-1)}.mini-bar{display:block}.mini-bar .axis{stroke:var(--line-2)}table.corner-table tr.active td{background:var(--rtt-dim)}table.corner-table .corner-name{font-weight:700}table.corner-table .unit{color:var(--tx-3);font-size:var(--fs-xs)}table.corner-table .gps{color:var(--f-warn);font-size:var(--fs-xs);font-weight:700}.opp-list{gap:10px;list-style:none;display:grid}.opp{grid-template-columns:18px 1fr auto;align-items:baseline;gap:2px 10px;display:grid}.opp .rank{color:var(--rtt);font-weight:700}.opp .name{font-weight:700}.opp .kind{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--tx-3);text-transform:uppercase;margin-left:6px;font-weight:500}.opp .v{font-size:14px;font-weight:600}.opp .meta{font-size:var(--fs-s);color:var(--tx-2);grid-column:2/-1;gap:14px;display:flex}.opp .meta .l,.analyse-bar .l{font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--tx-3);font-weight:700}.opp-ref{font-size:var(--fs-s);margin-top:10px}.analyse-bar{border-bottom:1px solid var(--line-1);padding:8px 12px;font-size:12px}table.data tr.picked td{background:var(--bg-2)}.ref-btn{cursor:pointer;background:0 0}.ref-btn:disabled{opacity:.35;cursor:default}.legend-line{font-family:var(--font-mono);font-size:var(--fs-s);flex-wrap:wrap;gap:12px;display:inline-flex}.small-multiples{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.small-multiples .sm-t{font-family:var(--font-mono);font-size:var(--fs-s);color:var(--tx-2);margin-bottom:2px;font-weight:700}.t-readout{min-height:18px;font-size:var(--fs-s);color:var(--tx-2);flex-wrap:wrap;gap:4px 14px;margin-top:4px;display:flex}
