:root{color-scheme:dark;--bg:#10151b;--rail:#0b1016;--panel:#171f27;--panel-2:#1c2630;--border:#2b3742;--text:#eef3f6;--muted:#a1afba;--dim:#6e818e;--green:#5ed69d;--brand:#00f5bc;--brand-ink:#03110d;--blue:#64b5f7;--gold:#eab968;--ink:#072318;--radius:16px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
/* The analysis maps share the replay's fitted crop and smooth wheel controls. */
.analysis-selectors{display:grid!important;grid-template-columns:minmax(125px,.7fr) repeat(2,minmax(175px,1fr)) minmax(170px,.85fr);align-items:start}.analysis-selectors label{min-width:0!important}.analysis-role{display:grid;gap:12px;min-width:0}.analysis-role select{max-width:100%;width:100%;min-width:0}.analysis-selectors .inference-option{display:grid;grid-template-columns:16px 1fr;gap:7px;align-items:center;line-height:1.5;padding-top:17px}.inference-option small{grid-column:1/-1;font-size:10px}.analysis-pair-summary{font-size:11px;color:var(--muted);margin:-5px 3px 18px}.insight-actions{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0 8px}.insight-evidence{border-top:1px solid var(--border);padding-top:10px;color:var(--muted);font-size:10px;line-height:1.6}.insight-evidence summary{cursor:pointer}.insight-card{cursor:default}.insight-card .button{font-size:11px}.compare-focus{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 18px;margin:0 0 15px;border-left:3px solid var(--green)}.compare-focus strong{font-size:12px;font-weight:500}.pair-metric{display:grid;gap:4px}.analysis-detail-stats .pair-metric span{font-size:12px;letter-spacing:0;color:#eab968}.analysis-detail-stats .pair-metric span+span{color:#5ed69d}
@media(max-width:1100px){.analysis-selectors{grid-template-columns:1fr 1fr}.analysis-selectors>label:first-child,.analysis-selectors>.inference-option{grid-column:1/-1}.analysis-selectors .inference-option{padding-top:0}}
@media(max-width:600px){.analysis-selectors{grid-template-columns:1fr}.compare-focus{flex-wrap:wrap}}
.compare-context{padding:0 3px;margin:0 0 16px}.compare-context label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text)}.compare-context p{font-size:10px;line-height:1.5;color:var(--muted);margin:7px 0 0}.analysis-stage .insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.history-tag{max-width:100%;overflow-wrap:anywhere}
.benchmark-panel{padding:22px;margin:18px 0 24px}.benchmark-heading,.insights-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.benchmark-heading h2,.insights-heading h2{font-size:19px}.benchmark-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.benchmark-item{border-left:2px solid var(--border);padding:0 14px}.benchmark-item:first-child{border-color:var(--green)}.benchmark-item:nth-child(2){border-color:#c89cf4}.benchmark-item:last-child{border-color:#eab968}.benchmark-item span,.benchmark-item small{display:block;color:var(--muted);font-size:10px}.benchmark-item strong{display:block;font-size:24px;font-weight:500;margin:6px 0}.benchmark-actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 12px}.benchmark-actions .button{font-size:11px}.insights-section{margin-bottom:25px}.insights-heading label{display:flex;align-items:center;gap:9px;font-size:10px;color:var(--muted)}.insight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.insight-card{padding:19px;text-align:left;color:var(--text);border:1px solid var(--border);border-radius:12px;background:var(--panel);transition:border-color .15s}.insight-card:hover{border-color:var(--green)}.insight-level{display:block;font-size:9px;color:#eab968;margin-bottom:10px}.insight-card.high .insight-level{color:#ffa591}.insight-card strong{font-size:14px}.insight-card p{font-size:11px;line-height:1.6;color:var(--muted);margin:12px 0}.insight-card small{color:var(--green);font-size:10px}.insight-empty{padding:20px;color:var(--muted);font-size:12px;border:1px dashed var(--border);border-radius:10px;grid-column:1/-1}.trouble-spot{margin:14px 0}.trouble-spot button{display:flex;align-items:center;gap:20px;flex-wrap:wrap;width:100%;padding:15px 18px;border:1px solid var(--border);border-radius:10px;background:#1a252d;color:var(--text);text-align:left}.trouble-spot span{font-size:8px;letter-spacing:1.5px;color:var(--muted)}.trouble-spot strong{color:#eab968}.trouble-spot small{color:var(--muted);margin-left:auto;font-size:10px}.repeatability-panel{padding:17px 20px}.repeatability-panel summary{font-size:12px;cursor:pointer}.repeatability-scores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.repeatability-scores span{font-size:11px;color:var(--muted)}.repeatability-scores strong{display:block;font-size:29px;color:var(--green);margin:4px 0}.repeatability-scores strong small{font-size:12px;color:var(--muted)}.repeatability-scores p{font-size:10px;color:var(--muted)}.score-method{color:var(--muted);font-size:10px;line-height:1.6}.score-method p{max-width:1000px}.auto-lap-filter{display:grid;gap:7px;margin-top:16px}.auto-lap-filter label{display:grid;gap:5px;font-size:10px;color:var(--muted)}.analysis-lap-choice span small{display:block;font-size:8px;color:#eab968;margin-top:3px}
@media(max-width:1100px){.insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.benchmark-item strong{font-size:21px}}
@media(max-width:650px){.insight-grid,.analysis-stage .insight-grid{grid-template-columns:1fr}.benchmark-list{grid-template-columns:1fr 1fr;gap:20px 8px}.benchmark-heading{align-items:start;flex-direction:column}.benchmark-panel{padding:17px}.benchmark-item{padding-left:9px}.benchmark-actions .button{flex:1 0 42%}.trouble-spot button{gap:12px}.trouble-spot small{flex-basis:100%;margin:0}.repeatability-scores{gap:9px}.repeatability-scores strong{font-size:23px}.repeatability-scores span{font-size:9px}}
.history-filter-bar{display:flex;gap:14px;align-items:end;padding:18px;margin-bottom:16px}.history-filter-bar label,.notebook-fields label,.import-video-action{display:grid;gap:6px;font-size:11px;color:var(--muted)}.history-filter-bar label{min-width:145px}.history-search{flex:1}.history-status{display:flex;justify-content:space-between;gap:18px;margin:20px 0;font-size:11px;color:var(--muted)}.history-status strong{color:var(--text)}.history-tags{display:flex;gap:6px;flex-wrap:wrap;min-height:24px;margin:14px 0}.history-tag{border:1px solid #36494d;background:#1c302c;border-radius:5px;color:#b1dbc8;font-size:10px;padding:4px 7px}.history-card-actions{display:flex;gap:8px;margin-top:16px}.history-card-actions .button{font-size:11px}.history-note-preview{font-size:11px;color:var(--muted);white-space:pre-line;overflow-wrap:anywhere}.history-video-cover{height:180px;background:radial-gradient(ellipse at 70% 25%,#294a48,#15232e 70%);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:13px}.history-video-cover .icon{width:44px;height:44px;color:var(--green)}.history-video-cover span{font-size:9px;letter-spacing:2px;color:var(--muted)}.history-empty{padding:25px}.notebook-fields{display:grid;gap:17px}.notebook-fields input,.notebook-fields select,.notebook-fields textarea{width:100%;box-sizing:border-box}.notebook-fields textarea{resize:vertical;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px;color:var(--text);font:inherit;line-height:1.5;min-height:80px}.notebook-fields summary{font-size:11px;cursor:pointer;color:var(--muted)}.notebook-car-classes{display:grid;gap:10px;margin-top:13px}.import-video-action{margin:15px 0}.saved-video-dialog{width:min(1000px,94vw)}.saved-video-dialog video{width:100%;max-height:70vh;background:#0a1119;border-radius:8px}.history-card .session-card-head h2{overflow-wrap:anywhere}
@media(max-width:850px){.history-filter-bar{flex-wrap:wrap}.history-filter-bar label{flex:1}.history-filter-bar .history-search{flex-basis:100%}.history-status{flex-direction:column;gap:6px}.history-card-actions{flex-wrap:wrap}}
.analysis-selectors{display:flex;align-items:center;gap:22px;padding:15px 20px;margin-bottom:18px}.analysis-selectors label{display:grid;gap:5px;font-size:10px;color:var(--muted);min-width:190px}.analysis-selectors select{min-height:39px}.analysis-selectors p{font-size:11px;margin:0 0 0 auto}.analysis-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.analysis-stats>div{padding:16px 18px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.analysis-stats span,.analysis-potential span{display:block;font-size:8px;letter-spacing:1.2px;color:var(--muted)}.analysis-stats strong{display:block;font-size:25px;font-weight:500;margin-top:5px}.analysis-stats small,.analysis-potential small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.analysis-tabs{display:flex;margin-bottom:18px;width:max-content;max-width:100%;overflow:auto}.analysis-tabs button{min-height:38px;padding:7px 17px}.analysis-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px;align-items:start}.analysis-stage{min-width:0}.analysis-sidebar{display:grid;gap:15px}.analysis-sidebar .panel{padding:18px}.analysis-detail h2{font-size:17px}.analysis-detail-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.analysis-detail-stats span{display:block;font-size:8px;letter-spacing:1px;color:var(--muted)}.analysis-detail-stats strong{font-size:14px}.analysis-detail-actions{display:grid;gap:8px;margin-top:15px}.analysis-detail-actions .button{font-size:11px}.analysis-chart-key{display:flex;gap:12px;flex-wrap:wrap;font-size:9px}.analysis-detail svg{display:block;width:100%;margin:12px 0 0}.analysis-legend{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:11px 15px;border-top:1px solid var(--border);font-size:10px;color:var(--muted);min-height:43px}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--dot)}.heat-gradient{display:inline-block;width:90px;height:6px;border-radius:4px}.heat-gradient.loss{background:linear-gradient(90deg,#64b5f7,#5c887e,#eab968,#fa8060)}.heat-gradient.consistency{background:linear-gradient(90deg,#5ed69d,#d4d56c,#ed9b57)}.heat-gradient.acceleration{background:linear-gradient(90deg,#64b5f7,#5ed69d)}.heat-gradient.speed{background:linear-gradient(90deg,#6e8cec,#6adbd7,#cfd96d,#f46f58)}.analysis-description{color:var(--muted);font-size:11px;margin:13px 3px 20px}.analysis-corner-panel{padding:20px}.analysis-corners{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:17px}.analysis-corner-card{border:1px solid var(--border);border-radius:11px;background:#121b23;padding:15px;text-align:left;color:var(--text)}.analysis-corner-card:hover,.analysis-corner-card.selected{border-color:var(--brand);background:#192d27}.analysis-corner-card>div{display:flex;justify-content:space-between;align-items:center;gap:8px}.analysis-corner-card strong{font-size:12px}.analysis-corner-card dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0}.analysis-corner-card dt{font-size:9px;color:var(--muted)}.analysis-corner-card dd{margin:2px 0 0;font-size:15px;font-family:ui-monospace,monospace}.analysis-corner-card dd small{font-size:8px;color:var(--muted)}.analysis-corner-card footer{font-size:9px;color:var(--muted);border-top:1px solid var(--border);padding-top:9px}.analysis-hotspots h3,.analysis-sources h3{font-size:12px;margin-bottom:10px}.analysis-hotspot,.analysis-source{display:grid;grid-template-columns:1fr auto;gap:3px 10px;width:100%;padding:12px 0;text-align:left;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);font-size:11px}.analysis-hotspot:hover,.analysis-source:hover{color:var(--brand)}.analysis-hotspot small,.analysis-source small{color:var(--muted);font-size:9px;grid-column:1/-1}.analysis-lap-panel summary{cursor:pointer;font-size:12px;font-weight:600}.analysis-lap-choice{display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--border);padding:12px 0;font-size:11px}.analysis-lap-choice strong{margin-left:auto;font-weight:500}.analysis-lap-choice b{font-size:7px;letter-spacing:.8px;color:var(--green);padding-left:4px}.analysis-lap-panel p,.analysis-quality-note{font-size:10px;color:var(--muted)}.analysis-potential{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:20px;gap:20px;margin-bottom:15px}.analysis-potential strong{font-size:23px;display:block;margin-top:6px;font-family:ui-monospace,monospace}.analysis-potential>div:last-child strong{color:var(--green)}.analysis-sources{padding:20px;margin-bottom:18px}.analysis-source{grid-template-columns:1fr 1fr 1fr;padding:10px 0}.analysis-source small{grid-column:auto;text-align:right}.analysis-empty{padding:30px}.analysis-empty p{margin-bottom:20px}.analysis-stage .track-options select{font-size:10px;min-height:28px;padding:3px 7px}.analysis-stage .track-toolbar>strong{font-size:12px}
@media(max-width:1100px){.analysis-layout{grid-template-columns:minmax(0,1fr) 270px}.analysis-corners{grid-template-columns:1fr}.analysis-stats strong{font-size:21px}.analysis-stats>div{padding:13px}.analysis-tabs button{padding:7px 12px}}
@media(max-width:850px){.analysis-layout{grid-template-columns:1fr}.analysis-sidebar{grid-template-columns:1fr 1fr}.analysis-detail{grid-column:1/-1}.analysis-corners{grid-template-columns:1fr 1fr}.analysis-detail svg{max-width:680px}.analysis-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-selectors{flex-wrap:wrap}.analysis-selectors label{min-width:160px;flex:1}.analysis-selectors p{margin:0}.analysis-quality-note{grid-column:1/-1}.analysis-detail-actions{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.analysis-tabs{width:100%}.analysis-tabs button{padding:7px 11px;font-size:10px}.analysis-selectors{gap:12px;padding:13px}.analysis-selectors label{min-width:130px}.analysis-selectors p{display:none}.analysis-sidebar,.analysis-corners{grid-template-columns:1fr}.analysis-stats{gap:8px}.analysis-stats strong{font-size:20px}.analysis-stats span{font-size:7px}.analysis-stats small{font-size:9px}.analysis-corner-panel{padding:15px}.analysis-potential{gap:12px;padding:15px;grid-template-columns:1fr}.analysis-potential>div{border-bottom:1px solid var(--border);padding-bottom:12px}.analysis-potential>div:last-child{border:0;padding:0}.analysis-source{grid-template-columns:1fr 1fr}.analysis-source small{grid-column:1/-1;text-align:left}.heading-actions{flex-wrap:wrap}.analysis-detail-actions{grid-template-columns:1fr}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}button:disabled{cursor:default;opacity:.45}
button,a,input,select,canvas,svg[tabindex]{outline-offset:4px}
:focus-visible{outline:2px solid var(--brand)}
[hidden]{display:none!important}
.icon-defs{width:0;height:0;position:absolute;overflow:hidden}
.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:fixed;top:-100px;left:100px;background:var(--brand);color:var(--brand-ink);padding:12px;z-index:100}.skip:focus{top:10px}
.app-shell{display:grid;grid-template-columns:88px minmax(0,1fr);min-height:100vh}
.rail{position:sticky;top:0;height:100vh;background:var(--rail);border-right:1px solid #202a33;display:flex;flex-direction:column;align-items:center;padding:26px 8px 18px;z-index:20}
.logo-mark{height:42px;width:42px;background:#121a20;border:1px solid #2a3640;border-radius:12px;display:block;margin-bottom:43px;padding:5px;box-sizing:border-box}
.logo-mark svg{width:100%;height:100%;display:block}
.rail nav{width:100%;display:grid;gap:12px}
.nav-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:70px;width:100%;background:transparent;border:1px solid transparent;border-radius:12px;color:var(--muted);font-size:10px;letter-spacing:.1px}
.nav-button .icon{width:23px;height:23px}
.nav-button:hover{background:var(--panel)}.nav-button.active{background:#1a2e29;color:var(--brand);border-color:#284139}
.rail-foot{margin-top:auto}
.nav-link{text-decoration:none;box-sizing:border-box}
.nav-link[hidden]{display:none}

.beta-notice{display:flex;align-items:center;gap:14px;padding:15px 18px;margin:0 0 16px;background:#152028;border:1px solid #2b3f4d;border-radius:12px}
.beta-notice[hidden]{display:none}
.beta-notice .icon{width:22px;height:22px;color:var(--brand);flex-shrink:0}
.beta-notice strong{display:block;font-size:14px}
.beta-notice p{margin:3px 0 0;font-size:12px;color:var(--muted);max-width:70ch}
.beta-notice .button{margin-left:auto;flex-shrink:0}
@media(max-width:600px){.beta-notice{flex-wrap:wrap}.beta-notice .button{margin-left:0;width:100%}}
.help-nav{min-height:60px}
/* News */
.nav-button{position:relative}
.nav-count{position:absolute;top:6px;right:50%;transform:translateX(26px);min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--brand);color:var(--brand-ink);font-size:9px;font-weight:700;line-height:17px;text-align:center;box-shadow:0 0 0 2px var(--rail)}
.nav-count[hidden]{display:none}
.news-list{display:grid;gap:18px;margin-bottom:26px}
.news-item{padding:24px;background:var(--panel);border:1px solid var(--border);border-radius:14px}
.news-meta{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.news-tag{font-size:9px;letter-spacing:1.4px;font-weight:700;color:var(--brand-ink);background:var(--brand);border-radius:5px;padding:3px 7px;text-transform:uppercase}
.news-meta time{font-size:11px;color:var(--muted)}
.news-item h2{margin:0 0 12px;font-size:23px}
.news-item p{margin:0 0 12px;max-width:72ch;line-height:1.65;color:#d9e8e0}
.news-item p:last-child{margin-bottom:0}
.news-cta a{color:var(--brand);font-weight:600;text-decoration:none}
.news-cta a:hover{text-decoration:underline}
.track-request{padding:24px}
.track-request h2{margin-top:0;font-size:21px}
.track-request-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:18px}
.track-request-form label{display:grid;gap:7px;font-size:11px;color:var(--muted)}
.track-request-form label.wide{grid-column:1/-1}
.track-request-form input,.track-request-form textarea{width:100%;box-sizing:border-box;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:7px;padding:10px;font:inherit;font-size:13px}
.track-request-form textarea{resize:vertical;min-height:84px}
.track-request-form .req{color:var(--brand);font-weight:400}
.track-request-actions{grid-column:1/-1;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.track-request-actions .button{min-width:120px}
.track-request-done{margin-top:18px;padding:18px;border:1px solid #2b4438;background:#152820;border-radius:10px}
.track-request-done p{margin:0 0 6px}.track-request-done p:last-child{margin:0}
@media(max-width:600px){.news-item{padding:18px}.news-item h2{font-size:19px}.track-request{padding:18px}.nav-count{position:static;transform:none;display:inline-block;margin-left:5px;box-shadow:none}}
.rail-version{font-size:8px;color:var(--dim);letter-spacing:1.4px;margin-top:16px}
.main-shell{min-width:0}
.topbar{min-height:85px;border-bottom:1px solid var(--border);padding:16px 36px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.wordmark{font-size:23px;letter-spacing:-.9px;font-weight:750;white-space:nowrap}
.wordmark .wordmark-tag{display:block;color:var(--muted);font-size:10px;letter-spacing:.5px;font-weight:400;margin-top:0}
.header-actions{display:flex;align-items:center;gap:18px}
.draft-badge{font-size:11px;color:var(--muted)}
.button{border-radius:9px;min-height:42px;padding:9px 14px;display:inline-flex;gap:8px;align-items:center;justify-content:center;font-weight:550;border:1px solid var(--border);background:var(--panel);white-space:nowrap}
.button.primary{background:var(--brand);color:var(--brand-ink);border-color:var(--brand);font-weight:650}.button.primary:hover{background:#4df8d0;border-color:#4df8d0}
.button.secondary:hover{border-color:var(--muted);background:var(--panel-2)}
.button.quiet{border-color:transparent;background:transparent;color:var(--muted)}.button.quiet:hover{background:var(--panel-2);color:var(--text)}
.button[aria-pressed=true]{background:#26463b;border-color:var(--brand);color:var(--brand)}
.icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:38px;padding:7px;background:transparent;border:0;border-radius:8px;color:var(--muted)}.icon-button:hover{background:var(--panel-2);color:var(--text)}
.guide{position:sticky;top:0;z-index:15;background:#152820;box-shadow:0 4px 14px #05080c33;border-bottom:1px solid #2b4438;padding:12px 36px;display:flex;align-items:center;gap:13px;min-height:69px}
.guide-symbol{width:34px;height:34px;background:#264439;border-radius:10px;color:var(--brand);display:grid;place-items:center;flex-shrink:0}
.guide-copy{min-width:0}.guide-copy>span{font-size:9px;letter-spacing:1.4px;font-weight:700;color:var(--brand)}
.guide-copy p{margin:1px 0 0;font-size:13px;color:#d9e8e0}
.guide.quiet-guide{background:#151e25;border-color:var(--border)}.guide.quiet-guide .guide-symbol{background:#22313c;color:#b4c7d5}.guide.quiet-guide .guide-copy>span{color:#a7bdc9}
.guide-action{margin-left:auto;flex-shrink:0;padding:8px 12px;border-radius:8px;background:transparent;border:1px solid #426351;color:#d7f8e5;font-size:12px;min-height:38px}.guide-action span{padding-left:7px}
main{max-width:1540px;margin:auto;padding:28px 36px 12px}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:23px;flex-wrap:wrap}
.eyebrow{font-size:9px;font-weight:650;letter-spacing:1.75px;color:var(--muted);margin:0 0 8px}
h1{font-size:30px;line-height:1.2;font-weight:650;letter-spacing:-1.15px;margin:0}
h2{font-size:17px;font-weight:600;line-height:1.3;letter-spacing:-.35px;margin:0}h3{font-size:15px;margin:0}
.subtitle{color:var(--muted);margin:8px 0 0;font-size:12px}
.version-pill{display:inline-block;vertical-align:middle;font-size:10px;letter-spacing:0;border:1px solid #2e5141;color:var(--brand);border-radius:5px;padding:3px 6px;margin-left:6px;font-weight:500}
.heading-actions{display:flex;align-items:center;gap:7px}
.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}
.panel-heading .eyebrow{margin-bottom:5px}
.review-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start}
.track-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.track-toolbar{min-height:49px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 13px;flex-wrap:wrap}
.segmented{display:inline-flex;border-radius:8px;background:#10171e;padding:3px;gap:3px;border:1px solid #28333e}
.segmented button{border:0;background:transparent;border-radius:5px;padding:6px 11px;color:var(--muted);min-height:31px;font-size:11px;white-space:nowrap}
.segmented button:hover{color:var(--text)}.segmented button.active{color:var(--text);background:#2b3944;box-shadow:0 1px 3px #0003}
/* Two views, stated as a switch above the video rather than hidden in a dropdown: people miss that a   top-down view exists at all when it is one option among three in a select. */
.source-view-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 10px}
.source-view-head #source-rate{margin:0}
.source-view-toggle{margin-left:auto}
.source-view-toggle button{padding:9px 18px;font-size:13px;min-height:40px;font-weight:600}
.source-view-toggle button[aria-pressed=true]{color:var(--text);background:#2b3944;box-shadow:0 1px 3px #0003}
.source-view-toggle button:disabled{opacity:.4;cursor:not-allowed}
.source-view-toggle button:focus-visible{outline:2px solid var(--green);outline-offset:2px}

.track-options{display:flex;align-items:center;gap:13px;flex-wrap:wrap;font-size:10px;color:var(--muted)}
.track-options label{display:inline-flex;align-items:center;gap:5px;min-height:28px;cursor:pointer}
input[type=checkbox]{accent-color:var(--brand);width:14px;height:14px;margin:0}
.map-wrap{position:relative;background:#050709;overflow:hidden;aspect-ratio:1600/894;min-height:190px}
.map-wrap.grid-cropped{min-height:0}
.map-wrap canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:pan-y;cursor:pointer}
.map-wrap.armed{outline:2px solid var(--brand);outline-offset:-2px}.map-wrap.armed canvas{cursor:crosshair}.map-wrap.zoomed canvas{touch-action:none;cursor:grab}
.map-wrap.zoomed.armed canvas{cursor:crosshair}
.map-wrap canvas.label-hover{cursor:grab}.map-wrap canvas.label-dragging{cursor:grabbing}
.map-label{position:absolute;top:12px;left:13px;font-size:8px;letter-spacing:1.2px;font-weight:600;color:#d2dee5;background:#10171de8;box-shadow:0 1px 3px #0006;border:1px solid #38434a;border-radius:5px;padding:5px 7px;pointer-events:none}
.zoom-controls{position:absolute;right:12px;bottom:12px;display:flex;border:1px solid #44545e;border-radius:8px;overflow:hidden;box-shadow:0 3px 8px #0003}
.zoom-controls button{background:#172028f0;border:0;padding:5px 10px;min-height:32px;min-width:31px;font-size:14px;color:#e1e8ed}.zoom-controls button+button{border-left:1px solid #44545e}.zoom-controls button:hover{background:#30433d}
.zoom-hint{position:absolute;right:12px;bottom:51px;padding:3px 6px;background:#10171de8;border-radius:4px;color:#b8c7d0;font-size:8px;pointer-events:none}
@media(pointer:coarse){.zoom-hint{display:none}}
.overlap-label{position:absolute;bottom:14px;left:13px;padding:5px 8px;background:#101920ef;color:#d8ebf5;border:1px solid #3f5b6c;font-size:10px;border-radius:5px;pointer-events:none}
.source-wrap{position:relative;background:#050709;aspect-ratio:1600/894;min-height:210px}.source-wrap video{display:block;width:100%;height:100%;position:absolute;object-fit:contain}
.transport{display:flex;align-items:center;gap:7px;padding:11px 13px;border-top:1px solid var(--border)}
.play-button{width:36px;height:36px;background:var(--brand);color:var(--brand-ink);border:0;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.play-button .icon{width:18px}
.transport-clock{font-size:11px;margin:0 5px}
.mono{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-variant-numeric:tabular-nums;letter-spacing:-.35px}
.muted{color:var(--muted)}.small{font-size:11px}
input[type=range]{accent-color:var(--brand);width:100%;min-height:22px;cursor:pointer;min-width:35px}
.transport>input{flex:1;min-width:50px}.transport>.muted{font-size:10px}
.rate-label{display:flex;align-items:center;margin-left:auto}
select{background:#111a22;border:1px solid #3a4753;padding:10px 12px;border-radius:8px;min-height:40px;width:100%;font-size:12px}
.rate-label select{font-size:11px;min-height:32px;padding:5px 7px;width:59px;flex-shrink:0}
.cars-panel{padding:17px}.cars-panel h2{font-size:16px}.cars-panel>.small{font-size:11px;margin:8px 0 11px}
.small-badge{font-size:9px;border:1px solid #3c4c55;background:#24313b;border-radius:20px;padding:3px 7px;color:#bdcad2}
.car-list{display:grid;gap:9px;margin-bottom:18px}
.car-item{border:1px solid var(--border);border-radius:10px;background:#141c24;padding:11px;position:relative}.car-item.selected{border-color:#416054;background:#1b2926}
.car-main{display:flex;align-items:center;gap:9px}
.car-main label{display:flex;align-items:center;gap:9px;flex:1;cursor:pointer;font-weight:550;font-size:12px;min-width:0}
.car-main label span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.car-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0;background:var(--car-color)}
.car-summary{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:10px;margin:9px 0 0 23px}.car-summary strong{color:var(--text);font-weight:500}.car-best{color:var(--green)!important}
.car-rename{margin-top:9px;border-top:1px solid var(--border);padding-top:9px}
.car-rename label{font-size:9px;color:var(--muted);display:block;margin-bottom:4px}.car-rename input{width:100%;min-height:31px;border:1px solid var(--border);background:#10191f;border-radius:6px;padding:5px 7px;font-size:11px}
.car-name-button{padding:3px 6px;min-height:28px;font-size:9px;color:var(--muted);background:transparent;border:1px solid transparent;border-radius:5px}.car-name-button:hover{border-color:var(--border)}
.scale-setting{padding-top:15px;border-top:1px solid var(--border);display:flex;gap:10px;align-items:center;justify-content:space-between}
.scale-setting>label{font-size:11px;line-height:1.5}.scale-setting>label>span{display:block;font-size:9px}
.number-field{display:flex;align-items:center;gap:5px;border:1px solid #40504c;border-radius:7px;background:#121c1b;padding-right:8px;flex-shrink:0}.number-field input{width:56px;border:0;border-radius:7px;background:transparent;padding:7px 5px 7px 8px;min-height:35px;font-size:12px;appearance:textfield}.number-field span{font-size:10px;color:var(--muted)}
.scale-note{font-size:9px;line-height:1.5;margin:9px 0 0}
.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:12px}
.metric-card{padding:13px 15px;background:var(--panel);border:1px solid var(--border);border-radius:11px;border-top:2px solid var(--car-color)}
.line-detail{display:flex;justify-content:space-between;gap:8px;margin-top:9px;padding-top:8px;border-top:1px solid var(--border);font-size:9px;color:var(--muted)}
.metric-heading{display:flex;align-items:center;gap:6px;font-size:10px;justify-content:space-between}.metric-heading>span:first-child{display:flex;gap:6px;align-items:center}
.metric-live{margin-top:9px;display:flex;align-items:baseline;gap:7px}.metric-live strong{font-size:23px;font-weight:500;line-height:1.2}.metric-live>span{font-size:9px;color:var(--muted)}
.metric-detail{display:flex;justify-content:space-between;gap:10px;font-size:9px;color:var(--muted);margin-top:8px}.quality{font-size:9px;color:var(--green);border:1px solid #305342;border-radius:5px;padding:2px 5px;white-space:nowrap;line-height:1.3}.quality.predicted,.quality.inferred{color:var(--gold);border-color:#604d32}.quality.unresolved{color:var(--muted);border-color:var(--border)}
.lap-panel{padding:19px;margin-top:22px}
.table-wrap{width:100%;overflow-x:auto;margin-top:17px}
table{width:100%;border-collapse:collapse;text-align:left;font-size:11px}
th{font-size:9px;letter-spacing:.35px;color:var(--muted);font-weight:500;padding:9px 10px;white-space:nowrap;border-bottom:1px solid var(--border)}
td{padding:10px;border-bottom:1px solid #27343e;color:#d3dfe7;white-space:nowrap}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#1d2a32}
.table-car{display:inline-flex;align-items:center;gap:7px}.table-best{font-size:8px;margin-left:6px;color:var(--green);padding:2px 4px;border:1px solid #315340;border-radius:4px}
.table-action{min-height:29px;padding:4px 8px;border:1px solid #3c4a56;background:#25343e;border-radius:6px;font-size:9px;color:#cddce5}
.table-action:hover{border-color:var(--brand);color:var(--brand)}.table-action+.table-action{margin-left:5px}
.table-note{font-size:10px;color:var(--muted);margin:10px 0 0}
.empty-table{padding:35px 12px;text-align:center;color:var(--muted)}
.lap-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:17px}
.lap-card{padding:15px 17px;border-top:2px solid var(--role-color)}
.lap-card-heading{display:flex;gap:9px;align-items:center;margin-bottom:10px}.lap-card-heading label{font-size:11px;color:var(--muted);flex:1}
.role-badge{height:23px;width:23px;display:grid;place-items:center;background:var(--role-color);color:#102028;border-radius:6px;font-size:11px;font-weight:700}
.lap-card select{width:100%;font-size:13px;min-height:40px}
.lap-card-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}
.lap-card-stats span{display:block;font-size:9px;color:var(--muted);line-height:1.4}.lap-card-stats strong{display:block;font-size:17px;font-weight:500;margin-top:5px;white-space:nowrap}.lap-card-stats>div:first-child strong{color:var(--role-color)}
.alignment-status{display:flex;align-items:center;gap:7px;font-size:11px;color:#c9d9d0}.status-dot{width:6px;height:6px;background:var(--brand);border-radius:50%;flex-shrink:0}
.compare-controls{display:flex;flex-wrap:wrap;gap:7px;padding:12px 15px;border-top:1px solid var(--border)}
.comparison-timeline{padding:2px 17px 14px}.timeline-label{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);gap:10px}.timeline-label .mono{color:var(--text)}
.manual-b{border-top:1px solid var(--border);padding-top:12px;margin-top:7px}.frame-step{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.frame-step>.button{font-size:10px;min-height:31px;padding:4px 8px}
.delta-panel{padding:20px;margin-top:20px}
.delta-summary{display:flex;align-items:baseline;gap:11px;margin-top:17px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.delta-summary>strong{font-size:22px;color:var(--text);font-weight:500}
.total-delta{margin-left:auto;font-size:10px}.total-delta strong{margin-left:8px;color:var(--text);font-size:13px;font-weight:500}
#delta-chart{display:block;width:100%;height:195px;margin-top:7px;cursor:crosshair}
#delta-chart text{font-family:ui-sans-serif,system-ui,sans-serif;font-size:11px;fill:var(--muted)}
.chart-caption{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:9px;line-height:1.6}
.compare-corners{padding:20px;margin-top:20px}.compare-corners .panel-heading>span{font-size:10px}
.session-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:22px;margin-top:30px}
.session-card{border:1px solid var(--border);border-radius:16px;background:var(--panel);overflow:hidden;max-width:600px}.session-image{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:#080c10}.session-card-body{padding:20px}.session-card-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.session-card-head h2{font-size:23px}
.session-meta{font-size:11px;color:var(--muted);margin:8px 0 18px}.session-card-body>.button{width:100%;margin-top:15px}
.session-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.session-stat-row strong{display:block;font-size:22px;font-weight:500}.session-stat-row span{font-size:9px;color:var(--muted)}
.library-note{display:flex;gap:12px;align-items:start;padding:20px 0;color:var(--muted);max-width:650px;font-size:12px}.library-note .icon{margin-top:2px}.library-note p{margin:0}
.empty-state{padding:60px 30px;text-align:center}.empty-state>.icon{width:40px;height:40px;color:var(--brand);margin-bottom:10px}.empty-state p{color:var(--muted);max-width:430px;margin:12px auto 22px}
.app-footer{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:26px;border-top:1px solid #25313a;padding:14px 0 5px;font-size:9px;color:var(--dim)}
.quality-dot{display:inline-block;width:5px;height:5px;border-radius:50%;vertical-align:middle;margin:0 3px}.quality-dot.observed{background:var(--green)}.quality-dot.predicted{background:var(--gold)}.footer-divider{margin:0 7px}
dialog{max-width:580px;width:calc(100% - 32px);padding:25px;background:var(--panel);border:1px solid #42534e;color:var(--text);border-radius:18px;box-shadow:0 25px 100px #0009}
dialog::backdrop{background:#05090dca;backdrop-filter:blur(4px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.dialog-heading h2{font-size:25px;letter-spacing:-.8px}.dialog-heading+p{font-size:12px;line-height:1.7}
.import-fields{display:grid;gap:12px;margin-top:20px}.import-fields>label{padding:12px;border:1px solid var(--border);border-radius:10px;background:#121a21;font-size:12px}.import-fields>label>span{display:block;font-size:10px;color:var(--muted);margin:2px 0 9px}
input[type=file]{width:100%;font-size:11px;color:var(--muted);min-height:33px}input[type=file]::file-selector-button{padding:7px 11px;font:inherit;border-radius:6px;border:1px solid #47594d;background:#263b31;color:#d2e8db;margin-right:10px}
.dialog-actions{display:flex;gap:10px;justify-content:end;margin-top:17px;flex-wrap:wrap}
.form-message{font-size:11px;color:var(--gold);min-height:18px;margin:12px 0 0}
.help-steps{padding-left:23px;color:var(--muted);font-size:12px;margin:24px 0}.help-steps li{padding-left:6px;margin-bottom:14px}.help-steps strong{color:var(--text);font-weight:550}
.help-quality{padding:15px;border:1px solid var(--border);border-radius:10px;background:#14221e;font-size:12px}.help-quality p{color:var(--muted);margin:5px 0 0;font-size:11px}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:100;background:#254d3c;color:#e7faef;border:1px solid #547b64;border-radius:10px;padding:12px 18px;font-size:12px;box-shadow:0 9px 35px #0006;max-width:calc(100% - 30px)}
.noscript{padding:40px;text-align:center}
@media(min-width:1500px){.review-grid{grid-template-columns:minmax(0,1fr) 300px}}
@media(max-width:1100px){.topbar{padding:16px 24px}.guide{padding:11px 24px}.source-steps-bar{padding:8px 24px}main{padding:25px 24px 12px}.review-grid{grid-template-columns:minmax(0,1fr) 255px;gap:14px}.cars-panel{padding:14px}.transport{gap:3px;padding:10px}.transport>.muted{display:none}.lap-card-stats{gap:8px}.lap-card-stats strong{font-size:15px}.track-options{gap:9px}.comparison-mode{width:auto}}
@media(max-width:850px){.app-shell{grid-template-columns:70px minmax(0,1fr)}.rail{padding:20px 6px 15px}.logo-mark{width:36px;height:36px;margin-bottom:28px}.nav-button{min-height:63px;font-size:9px}.topbar{padding:14px 20px;min-height:76px}.source-steps-bar{padding:8px 20px}.wordmark{font-size:21px}.draft-badge{display:none}.guide{padding:10px 20px;gap:10px}main{padding:23px 20px 10px}.review-grid{grid-template-columns:1fr}.cars-panel{padding:18px}.car-list{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:15px}.car-item{padding:10px}.car-main label{font-size:11px;gap:6px}.car-main{flex-wrap:wrap}.car-name-button{margin-left:auto;font-size:8px}.car-summary{margin-left:0;font-size:9px}.scale-setting{justify-content:start;gap:20px}.scale-note{margin-left:0}.page-heading h1{font-size:27px}.heading-actions{gap:3px}.lap-card{padding:13px}.lap-card-stats{grid-template-columns:1fr 1fr;gap:12px}.lap-card-stats strong{font-size:17px}.lap-card select{font-size:11px}.delta-panel{padding:15px}.compare-corners{padding:15px}.table-wrap{margin-top:13px}.app-footer{font-size:8px}}
@media(max-width:600px){.app-shell{display:block}.rail{height:auto;position:static;width:100%;padding:9px 12px;display:flex;flex-direction:row;border-right:0;border-bottom:1px solid var(--border);gap:12px}.logo-mark{margin:0;width:31px;height:31px;flex-shrink:0;border-radius:9px}.rail nav{display:flex;gap:5px}.nav-button{flex-direction:row;width:auto;min-height:37px;font-size:10px;gap:5px;padding:6px 9px}.nav-button .icon{width:17px;height:17px}.help-nav{margin:0;padding:8px;min-height:35px}.help-nav span,.rail-version{display:none}.topbar{padding:13px 16px;min-height:69px}.source-steps-bar{padding:7px 16px;gap:10px}.wordmark{font-size:20px}.wordmark .wordmark-tag{font-size:9px;letter-spacing:0}.header-actions .button{font-size:11px;min-height:37px;padding:8px 10px}.header-actions .icon{width:16px}.guide{padding:10px 16px;min-height:75px;align-items:center;gap:10px}.guide-symbol{width:30px;height:30px}.guide-copy>span{font-size:8px;letter-spacing:1px}.guide-copy p{font-size:11px;line-height:1.55}.guide-action{font-size:10px;padding:7px 9px;max-width:116px;white-space:normal;min-height:36px}.guide-action span{display:none}main{padding:21px 16px 10px}.page-heading{gap:15px;margin-bottom:18px}.page-heading h1{font-size:25px}.eyebrow{font-size:8px;letter-spacing:1.3px}.subtitle{font-size:11px}.heading-actions{width:100%;justify-content:space-between}.heading-actions .button{font-size:11px}.track-toolbar{padding:9px 10px;gap:8px}.segmented button{font-size:10px;padding:5px 9px}.track-options{font-size:9px;gap:10px}.map-wrap{min-height:210px;aspect-ratio:1.5}.map-label{font-size:6px;top:8px;left:8px;padding:4px 6px}.zoom-controls{right:8px;bottom:8px}.transport{padding:9px;gap:2px}.transport-clock{font-size:9px;margin:0 5px}.transport>.icon-button{min-width:27px;padding:3px}.transport>.play-button{width:32px;height:32px}.rate-label select{width:50px;font-size:10px}.metrics-grid{gap:8px;margin-top:10px}.metric-card{padding:12px}.metric-live strong{font-size:21px}.car-list{grid-template-columns:1fr}.car-main{flex-wrap:nowrap}.car-main label{font-size:12px;gap:9px}.car-summary{margin-left:23px;font-size:10px}.car-name-button{font-size:10px}.cars-panel{padding:16px}.lap-panel{padding:16px;margin-top:18px}.lap-panel .panel-heading .segmented{width:auto}.lap-pair{gap:9px}.lap-card{padding:11px}.lap-card-heading{gap:6px}.lap-card-heading label{font-size:10px}.lap-card-heading .quality{font-size:7px;padding:2px 3px}.lap-card select{font-size:11px;padding:8px}.lap-card-stats{gap:11px 5px}.lap-card-stats span{font-size:8px}.lap-card-stats strong{font-size:14px}.role-badge{width:20px;height:20px;font-size:10px}.comparison-mode{width:100%}.comparison-mode button{flex:1}.alignment-status{font-size:9px}.compare-controls{padding:10px;gap:4px}.compare-controls .button{font-size:10px;min-height:36px;padding:7px 9px}.compare-controls .icon{width:15px;height:15px}.comparison-timeline{padding:2px 12px 10px}.delta-panel h2,.compare-corners h2{font-size:16px}.delta-summary{gap:8px;font-size:10px}.delta-summary>strong{font-size:20px}.total-delta{margin-left:0;width:100%;margin-top:4px}#delta-chart{height:170px}.session-grid{grid-template-columns:1fr;gap:18px;margin-top:10px}.session-card-body{padding:18px}dialog{padding:20px}.dialog-heading h2{font-size:23px}th,td{padding:9px}.chart-caption{font-size:9px}}
@media(max-width:360px){main{padding-left:12px;padding-right:12px}.source-steps-bar{padding-left:12px;padding-right:12px}.guide{padding-left:12px;padding-right:12px}.guide-symbol{display:none}.nav-button{padding:5px 7px}.nav-button .icon{width:15px}.rail{gap:8px}.lap-pair{grid-template-columns:1fr}.lap-card-stats{grid-template-columns:repeat(4,1fr)}.lap-card-stats strong{font-size:14px}.guide-action{max-width:89px}.transport>.icon-button{display:none}.header-actions .button .icon{display:none}}
@media(pointer:coarse){button,.button,.icon-button,.segmented button,.zoom-controls button,.guide-action,.table-action{min-height:44px}.nav-button{min-height:44px}.play-button{width:44px;height:44px}.rate-label select{min-height:40px}input[type=range]{min-height:34px}select,input[type=number],input[type=text]{font-size:16px}.car-main label{min-height:35px}.transport{flex-wrap:wrap}.transport input[type=range]{min-width:90px}.compare-controls .button{min-height:44px}.track-options label{min-height:34px}}
@media(prefers-reduced-motion:no-preference){button{transition:background .14s,border-color .14s,color .14s}.guide{transition:background .2s}.car-item{transition:border-color .15s}}

.calibration-strip{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 16px;margin:-3px 0 17px;background:#182822;border:1px solid #355344;border-radius:11px}
.calibration-strip>div{display:flex;align-items:center;gap:12px}.calibration-strip .icon{color:var(--brand)}.calibration-strip strong{display:block;font-size:12px;font-weight:600}.calibration-strip span:not(.icon){display:block;font-size:10px;color:var(--muted);margin-top:2px}.calibration-strip .button{font-size:11px;min-height:37px}.calibration-strip .button span{display:inline;margin:0;color:inherit}
.setup-steps{display:flex;align-items:center;gap:15px;margin:0 0 24px;max-width:650px}.setup-steps>button{display:flex;gap:12px;align-items:center;text-align:left;color:var(--muted);background:transparent;border:0;padding:6px 0;font-size:13px;flex-shrink:0}.setup-steps>button>span{display:grid;place-items:center;background:#20303b;border:1px solid #415360;border-radius:50%;width:32px;height:32px;font-weight:650}.setup-steps small{display:block;font-size:10px;margin-top:2px;font-weight:400}.setup-steps>button.active{color:var(--text)}.setup-steps>button.active>span{color:var(--brand-ink);background:var(--brand);border-color:var(--brand)}.setup-steps>button.done>span{border-color:var(--brand);color:var(--brand)}.step-connector{height:1px;flex:1;background:#40564c;min-width:25px}
.setup-layout{display:grid;grid-template-columns:minmax(0,1fr) 318px;gap:20px;align-items:start}.setup-stage{min-width:0}.setup-map-wrap{aspect-ratio:1.55;min-height:350px;cursor:grab}.setup-map-wrap.handles-mode,.setup-map-wrap.bounds-mode{cursor:crosshair}.setup-map-wrap canvas{touch-action:none}.setup-map-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-top:1px solid var(--border);font-size:10px;color:var(--muted)}.setup-map-caption>span:last-child{white-space:nowrap;color:var(--brand);font-size:9px}
.setup-panel{padding:19px}.setup-panel .panel-heading{margin-bottom:13px}.setup-panel .compact{font-size:10px;padding:5px 7px;min-height:31px}.setup-panel .small{font-size:11px;line-height:1.65}.setup-field-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin:17px 0 10px}.setup-field-pair label,.grid-handle-controls>label,.edge-pick-label{font-size:10px;color:var(--muted);display:block}.setup-field-pair input{width:100%;min-width:0;margin-top:7px;min-height:40px;padding:9px 10px;background:#101a20;border:1px solid #40534d;border-radius:7px;color:var(--text);font-size:13px}.setup-unit-field{display:flex;align-items:center;gap:5px;min-width:0;margin-top:7px;border:1px solid #40534d;border-radius:7px;background:#101a20;padding-right:8px}.setup-unit-field input{border:0;background:transparent;margin:0;padding-right:0}.setup-unit-field>span{font-size:10px;color:var(--dim)}.setup-checkbox{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px}.setup-checkbox input{accent-color:var(--brand)}
.grid-handle-controls{border-top:1px solid var(--border);padding-top:13px;margin-top:18px}.grid-handle-controls select,.edge-pick-label select{margin-top:7px}.grid-handle-controls .small{font-size:10px;margin:7px 0 0}.grid-handle-controls .setup-field-pair{margin-top:9px}.nudge-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:19px 0 10px;font-size:11px;color:var(--muted)}.nudge-heading label{display:flex;align-items:center;gap:7px;font-size:10px}.nudge-heading select{width:70px;min-height:31px;padding:5px 7px;font-size:10px}.grid-nudge{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:15px}.grid-nudge button,.edge-controls button{background:#20352c;border:1px solid #3b5c4a;border-radius:7px;min-height:40px;font-size:19px;color:var(--brand)}.grid-nudge button:hover,.edge-controls button:hover{background:#305340;border-color:var(--brand)}.setup-wide{width:100%;font-size:11px}.setup-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.setup-actions .primary{flex:1;white-space:normal;font-size:12px}.setup-actions .secondary{font-size:11px;flex:1}.setup-save-note{margin:13px 0 0;font-size:9px!important}.setup-message{font-size:11px;color:var(--gold);margin:14px 0 0;min-height:18px;line-height:1.6}.setup-message.ok{color:var(--green)}
.footprint-summary{display:flex;align-items:center;gap:26px;padding:19px 23px;margin-top:15px;border:1px solid #3b5347;background:#192a22;border-radius:12px}.footprint-summary>div>span{font-size:8px;letter-spacing:1.3px;color:var(--muted);display:block}.footprint-summary strong{font-weight:550;font-size:26px;display:block;margin-top:3px;white-space:nowrap}.footprint-summary small{font-size:10px;color:var(--muted)}.footprint-times{font-size:24px;color:#607868}.footprint-scale{margin-left:auto;border-left:1px solid #3a5045;padding-left:22px}.footprint-scale strong{font-size:20px}
.tile-count-fields input{font-size:25px;min-height:56px;font-weight:550;color:var(--brand)}.count-note{font-size:9px!important;margin-bottom:15px}.edge-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:17px 0}.edge-controls>div{padding:11px;border:1px solid #40503f;background:#202b21;border-radius:9px}.edge-controls strong{font-size:11px;color:var(--gold);font-weight:500;display:block;margin-bottom:9px}.edge-controls>div>div{display:flex;align-items:center;justify-content:space-between;gap:5px}.edge-controls button{width:32px;min-height:34px;flex-shrink:0;color:var(--gold);background:#303822;border-color:#5e6542}.edge-controls span{color:var(--muted);font-size:9px}.edge-pick-label{margin:17px 0 10px}
@media(max-width:1100px){.setup-layout{grid-template-columns:minmax(0,1fr) 285px;gap:15px}.setup-panel{padding:16px}.setup-map-wrap{min-height:320px}.setup-grid-tools{flex-wrap:wrap}.footprint-summary{gap:17px;padding:17px}.footprint-summary strong{font-size:23px}.footprint-scale{padding-left:17px}}
@media(max-width:850px){.setup-layout{grid-template-columns:1fr}.setup-panel{padding:20px}.setup-map-wrap{min-height:300px;aspect-ratio:1.6}.setup-panel{max-width:none}.setup-field-pair{gap:18px}.setup-actions .primary{flex:1}.setup-actions .secondary{flex:0 1 auto}.setup-steps{max-width:100%}}
@media(max-width:600px){.rail{gap:6px}.rail nav{gap:0}.nav-button{font-size:9px;padding:6px}.nav-button .icon{width:15px}.rail-foot{margin-top:0;margin-left:auto}.help-nav{padding:6px}.calibration-strip{padding:12px;align-items:start;flex-wrap:wrap;gap:10px}.calibration-strip>.button{width:100%;min-height:40px}.calibration-strip strong{font-size:11px}.calibration-strip>div{gap:9px}.setup-steps{gap:10px;margin-bottom:18px}.setup-steps>button{font-size:11px;gap:8px}.setup-steps>button>span{width:28px;height:28px}.setup-steps small{font-size:8px}.step-connector{min-width:10px}.setup-map-wrap{min-height:240px;aspect-ratio:1.25}.setup-map-caption{font-size:9px;padding:10px;align-items:start}.setup-map-caption>span:last-child{font-size:8px}.footprint-summary{padding:15px 12px;gap:12px}.footprint-summary strong{font-size:21px}.footprint-summary small{font-size:9px}.footprint-scale{padding-left:11px}.footprint-scale strong{font-size:17px}.footprint-summary>div>span{font-size:7px}.setup-panel{padding:17px}.setup-field-pair input{font-size:16px}.tile-count-fields input{font-size:25px}.setup-map-wrap .map-label{font-size:6px}}
@media(pointer:coarse){.grid-nudge button,.edge-controls button{min-height:44px}.edge-controls button{min-width:39px}.setup-checkbox{min-height:40px}.setup-field-pair input{min-height:44px}.setup-steps button{min-height:44px}}

.loop-preview{padding:12px;border:1px solid var(--border);border-radius:8px;font-size:11px;color:var(--brand);line-height:1.6}.setup-map-wrap.loop-mode{cursor:crosshair}.calibration-strip>.compact{white-space:nowrap}.setup-steps{max-width:900px}
@media(max-width:600px){.setup-steps{gap:6px}.setup-steps>button{flex:1;min-width:0;gap:5px;font-size:9px}.setup-steps small{display:none}.step-connector{min-width:5px}.calibration-strip>.button{width:auto;flex:1}.calibration-strip>.compact{flex:0 0 auto}.setup-steps>button>span{width:25px;height:25px;flex-shrink:0}}

.session-context,.setup-identity{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin-bottom:14px}.session-context{padding:0 0 8px}.session-context .eyebrow,.setup-identity .eyebrow{margin-bottom:5px}.session-context strong,.setup-identity strong{font-size:13px;display:block;font-weight:550}.session-context span,.setup-identity span{display:block;color:var(--muted);font-size:11px;margin-top:5px}.session-context .button,.setup-identity .button{font-size:11px}.setup-identity{background:#15222b}.saved-profile{margin-bottom:20px;padding:0 16px}.saved-profile>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 0;font-size:12px;color:var(--text)}.saved-profile>summary small{font-size:10px;color:var(--muted)}.saved-profile-body{padding:0 0 16px;border-top:1px solid var(--border);margin-top:0;display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1.7fr) auto;gap:12px;align-items:center}.saved-profile-body>label:first-child{font-size:10px;color:var(--muted);padding-top:12px}.saved-profile-body select{margin-top:6px;width:100%}.saved-profile-body .small{font-size:10px;line-height:1.6}.saved-profile-body>.profile-check,.saved-profile-body>p:last-child{grid-column:1/-1}.profile-check{display:flex;align-items:start;gap:9px;color:var(--muted);font-size:11px;line-height:1.6}.profile-check input{accent-color:var(--brand);margin-top:3px;flex-shrink:0}.session-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:23px}.session-filters label{font-size:10px;color:var(--muted)}.session-filters select{display:block;width:100%;margin-top:7px}.session-identity{border-top:1px solid var(--border);padding-top:12px;margin:14px 0;font-size:11px;line-height:1.8;color:var(--muted)}.session-identity strong{color:var(--text);font-weight:500}#context-dialog{width:min(700px,calc(100vw - 30px));max-height:calc(100dvh - 40px);overflow:auto}.context-fields section{border-top:1px solid var(--border);padding:16px 0 8px}.context-field-heading{display:flex;align-items:center;gap:10px;margin-bottom:14px}.context-field-heading>span{font-size:10px;color:var(--brand);border:1px solid #3c6758;padding:4px 6px;border-radius:5px}.context-field-heading h3{font-size:15px;margin:0;font-weight:500}.context-fields section>label{display:block;font-size:11px;color:var(--muted);margin:10px 0}.context-fields select,.context-fields input[type=text],.context-fields input[type=date]{width:100%;margin-top:6px}.context-fields input[type=text],.context-fields input[type=date]{padding:10px 12px;background:#101a20;border:1px solid #40534d;border-radius:7px;color:var(--text);font-size:13px;min-height:42px}.context-fields .setup-field-pair{margin:10px 0}.context-fields .profile-check{display:flex;margin-top:15px}.context-fields .small{font-size:10px;line-height:1.65}.session-grid>.empty-table{grid-column:1/-1}
@media(max-width:850px){.saved-profile-body{grid-template-columns:1fr 1fr}.saved-profile-body>.button{grid-column:1/-1}.session-context{flex-wrap:wrap}.session-context>.button{padding:5px 0}.setup-identity{flex-wrap:wrap}}
@media(max-width:600px){.session-filters{grid-template-columns:1fr;gap:10px}.session-context strong,.setup-identity strong{font-size:12px}.saved-profile>summary{align-items:start;flex-direction:column;gap:5px}.saved-profile-body{grid-template-columns:1fr}.saved-profile-body>*{grid-column:1}.saved-profile-body>label:first-child{padding-top:12px}.context-fields input[type=text],.context-fields input[type=date]{font-size:16px}.context-fields .setup-field-pair{gap:10px}}

.rate-controls{display:flex;align-items:center;gap:3px;margin-left:auto;flex-shrink:0}.rate-controls .rate-label{margin-left:0}.rate-step{width:28px;height:32px;min-width:28px;padding:0;border:1px solid #3a4753;background:#111a22;border-radius:7px;font-size:18px;line-height:1}.rate-step:hover:not(:disabled){border-color:var(--green)}.rate-step:disabled{opacity:.35;cursor:default}.focus-loop{display:flex;align-items:center;gap:7px;font-size:11px;white-space:nowrap;margin-left:auto}.focus-loop input{accent-color:var(--green)}
@media(max-width:600px){.transport{flex-wrap:wrap}.transport>input{min-width:70px}.rate-controls{gap:2px}.rate-step{width:26px;min-width:26px}.compare-focus .focus-loop{margin-left:0}}

.focus-exits{display:flex;align-items:center;gap:7px;flex-wrap:wrap;flex-shrink:0}.compare-focus{flex-wrap:wrap}.compare-focus>strong{flex:1;min-width:220px}.focus-exits .button{font-size:11px}.compare-context #compare-context-help{font-size:11px}
@media(max-width:600px){.focus-exits{width:100%}.compare-focus>strong{min-width:0;flex-basis:100%}}

.session-workspace{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 24px;padding:0 0 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.session-modes{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.session-mode{display:flex;align-items:center;gap:7px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);padding:10px 13px;font-size:12px;min-height:40px}.session-mode .icon{width:17px;height:17px}.session-mode.active{background:#1d392b;color:#b0f3cc;border-color:#315d43}.session-mode:hover{background:#1c2930;color:var(--text)}.session-mode[aria-disabled=true]{opacity:.5}.workspace-settings{display:flex;gap:8px;flex-wrap:wrap}.workspace-settings .button{font-size:11px}.setup-required{padding:15px 18px;margin-bottom:18px;border-color:#577348;background:#1b2d23}.setup-required strong{font-size:13px;color:#c3efba}.setup-required p{font-size:11px;color:var(--muted);margin:7px 0 0;line-height:1.6}.tile-size-field input{min-width:0;flex:1}.tile-size-field>span{white-space:nowrap;padding-right:12px;font-size:13px}.tile-size-field #tile-size-second{padding:0}
@media(max-width:600px){.session-workspace{gap:8px;padding-bottom:12px;margin-bottom:17px}.session-mode{padding:8px;font-size:11px;gap:5px}.workspace-settings{width:100%}.session-modes{gap:2px}.session-mode .icon{width:15px;height:15px}}

/* Source processing and independent session catalog */
#source-file[hidden]{display:none}.source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:18px}.source-card,.run-card,.source-empty{padding:22px}.source-card h3,.run-card h3{margin:10px 0;font-size:20px}.source-workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.source-view{padding:14px;position:sticky;top:15px}.source-view canvas{width:auto;max-width:100%;height:auto;display:block;margin:auto;max-height:70vh;object-fit:contain;background:#091118;cursor:crosshair}.source-view video{width:100%;max-height:60vh}.source-view label,.source-controls label,#session-picker>label{display:grid;gap:7px;font-size:11px;color:var(--muted);margin:14px 0}.source-controls{padding:22px}.source-controls h2{font-size:21px;margin-top:0}.source-controls input,.source-controls select,.source-controls textarea,#session-picker input,#session-picker select{width:100%;min-width:0;box-sizing:border-box}.source-controls .profile-check{display:flex;align-items:flex-start;line-height:1.6}.source-controls .profile-check input{width:auto;margin-top:2px}.source-controls .button{margin:6px 0;width:100%}.source-controls progress{width:100%;accent-color:var(--green);margin-top:16px}.source-controls textarea{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:7px;padding:10px;font:inherit}.source-view details{margin-top:16px}.source-view summary{font-size:11px;color:var(--muted);cursor:pointer}.source-empty{grid-column:1/-1}.run-stats{display:flex;gap:25px;margin:18px 0}.run-stats strong{font-size:22px}.run-stats small{display:block;font-size:10px;color:var(--muted);font-weight:400}.run-card .heading-actions{flex-wrap:wrap}.run-card .button{font-size:11px}.picker-results{display:grid;gap:9px;margin-top:18px;max-height:55vh;overflow:auto}.picker-result{text-align:left;display:grid;gap:7px;padding:14px;background:#16282c;border:1px solid var(--border);border-radius:9px;color:var(--text);cursor:pointer}.picker-result:hover{border-color:var(--green)}.picker-result span{font-size:11px;color:var(--muted)}#session-picker{width:min(650px,94vw)}
@media(max-width:1000px){.source-workspace{grid-template-columns:minmax(0,1fr)}.source-view{position:static}.source-view canvas{max-height:55vh}.source-controls{padding:18px}}

.run-filter-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.run-filter-bar label{min-width:0}.run-filter-bar select,.run-filter-bar input{width:100%;box-sizing:border-box}@media(max-width:700px){.run-filter-bar{grid-template-columns:1fr}}

/* One source viewer and one shared recording clock. */
.source-player-controls{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-top:14px;flex-wrap:wrap}.source-player-controls>label{display:flex;align-items:center;gap:8px;margin:0}.source-player-controls select{min-height:44px}.source-view .source-decode-video{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;max-height:none}.source-view #source-view-hint{margin:8px 0 0}.source-player-controls .button{min-width:84px}

.source-player-screen{display:grid;place-items:center;position:relative}.source-player-screen>canvas{grid-area:1/1;z-index:1}.source-player-screen[data-view=original]>canvas{background:transparent}.source-player-screen[data-view=original]>.source-decode-video{grid-area:1/1;position:static;width:auto;height:auto;max-width:100%;max-height:70vh;opacity:1;object-fit:contain}.source-player-screen[data-view=topdown]>.source-decode-video{position:absolute;width:1px;height:1px;opacity:0}@media(max-width:1000px){.source-player-screen[data-view=original]>.source-decode-video{max-height:55vh}}
.wordmark-logo{display:block;height:34px;width:auto;margin:2px 0 4px}
@media(max-width:850px){.wordmark-logo{height:30px}}
@media(max-width:600px){.wordmark-logo{height:24px;margin-bottom:3px}}

/* Camera setup: canvas owns its viewport, so gestures never move corner markers. */
.source-player-screen[data-view=setup]{display:block;overflow:hidden;border-radius:9px;background:#080e14;touch-action:none}
.source-player-screen[data-view=setup]>.source-decode-video{position:absolute;width:1px;height:1px;opacity:0}
.source-player-screen[data-view=setup]>canvas{width:100%;height:auto;max-width:none;max-height:none;margin:0;object-fit:fill;touch-action:none;cursor:default}
.source-player-screen[data-view=setup]>canvas[data-interaction=dragging]{cursor:grabbing}
.source-zoom-controls{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:12px}.source-zoom-controls .button{min-width:44px;min-height:44px}.source-zoom-controls output{min-width:50px;text-align:center;font-size:12px}
.source-corner-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.source-corner-buttons .button{min-height:44px;margin:0;font-size:12px}.source-corner-buttons [aria-pressed=true]{background:#315a41;border-color:#a6efbd;color:#e3ffec}
.source-lens-controls{display:block;border-top:1px solid var(--border);padding-top:12px;margin-top:12px}.source-more-tools{margin:12px 0;border-top:1px solid var(--border);padding-top:10px}.source-more-tools summary{font-size:11px;color:var(--muted);cursor:pointer}
/* Fisheye slider with square steps of 0.002 on either side, a little shorter than the full-width buttons
   (44 px touch targets on phones). The row sits outside the label so the slider keeps its short name. */#source-lens-fields>label{margin-bottom:7px}.source-controls .lens-stepper{display:flex;align-items:center;gap:8px;min-width:0}.source-controls .lens-stepper input[type=range]{flex:1;min-width:0;margin:0}.lens-step{flex:0 0 38px;width:38px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid #3a4753;border-radius:8px;background:#111a22;color:var(--text);font:inherit;font-size:20px;line-height:1}.lens-step:hover:not(:disabled){border-color:var(--green)}.lens-step:active:not(:disabled){background:#1a2a30}.lens-step:focus-visible{outline:2px solid var(--green);outline-offset:2px}.lens-step:disabled{opacity:.35;cursor:default}@media(pointer:coarse){.lens-step{flex-basis:44px;width:44px;height:44px}}
.source-controls .source-lens-value{display:inline;width:auto;margin:0;padding:5px 8px;color:var(--green);background:#192b22;border:1px solid var(--border);border-radius:5px;font-size:13px;cursor:pointer}
#source-fit-preview{width:100%;height:auto;border-radius:8px;background:#080e14}#source-fit-preview-wrap{margin-top:20px}#source-fit-preview-wrap .eyebrow{font-size:10px}
.source-controls input[type=range]{accent-color:var(--green);min-height:34px}#source-lens-input[hidden]{display:none}#source-step-1 [hidden]{display:none}
@media(max-width:1000px){.source-workspace{gap:12px}.source-view{padding:10px}.source-controls{padding:16px}.source-corner-buttons{position:relative}.source-player-screen[data-view=setup]>canvas{max-height:none}}

.source-rail-tools{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.source-rail-buttons{display:flex;gap:8px;flex-wrap:wrap}.source-rail-buttons .button{min-height:44px;font-size:12px}.source-rail-buttons [aria-pressed=true]{border-color:#59e9ff;background:#173641;color:#b2f7ff}.source-rail-tools[hidden]{display:none}

.source-view .source-snap-option{display:flex;align-items:center;gap:8px;font-size:12px;margin:10px 0}.source-snap-option input{width:18px;height:18px;accent-color:var(--green)}
.source-grid-nudges{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.source-grid-nudges .button{min-height:44px;font-size:21px;margin:0}#source-tile-label{color:var(--green);font-size:13px}#source-map{touch-action:manipulation}
/* The step rail is the workflow, so it sits above the guidance and stays put while the workspace scrolls.
   The guide below it carries the current step's instructions and scrolls away with the content it describes. */
.source-steps-bar{position:sticky;top:0;z-index:16;display:flex;align-items:center;gap:14px;padding:9px 36px;background:#101f25;border-bottom:1px solid var(--border)}
.source-steps-bar[hidden]{display:none}
.source-steps-bar>.button{flex-shrink:0;margin:0}
.app-shell.on-sources .guide{position:static}
.source-step-tabs{display:flex;gap:6px;flex:1;min-width:0;padding:0;background:none;border:0;border-radius:0;margin:0;overflow-x:auto}.source-step-tabs button{flex:1 0 auto;padding:12px 16px;min-height:44px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-size:12px;cursor:pointer;white-space:nowrap}.source-step-tabs button[aria-selected=true]{background:var(--green);color:#08251b;font-weight:700}.source-step-tabs button:not(:disabled):hover{border-color:var(--green)}.source-step-tabs button:disabled{opacity:.38;cursor:not-allowed}.source-step-tabs button:focus-visible{outline:2px solid var(--green);outline-offset:2px}@media(max-width:600px){.source-step-tabs button{padding:12px 10px;font-size:11px}}

/* Turn setup */
.turn-tools{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.turn-tools .button[aria-pressed="true"]{outline:2px solid #8cecae;outline-offset:1px}
.turn-help{margin:6px 0 0;padding-left:18px}
.turn-key{font-weight:700}.turn-key.entry{color:#5ed69d}.turn-key.apex{color:#f1dca7}.turn-key.exit{color:#f08a8a}

/* Ghost car bar under the replay transport: which lap is the ghost, which car it races, and the live gap. */
.ghost-bar{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;padding:9px 13px;border-top:1px solid var(--border);font-size:10px;color:var(--muted)}
.ghost-bar[hidden]{display:none}
.ghost-bar label{display:inline-flex;align-items:center;gap:7px;min-width:0}
.ghost-bar select{width:auto;max-width:min(320px,100%);min-height:32px;padding:5px 8px;font-size:11px}
.ghost-readout{display:flex;align-items:baseline;gap:8px;margin:0 0 0 auto;min-width:0}
.ghost-readout strong{font-size:15px;color:var(--text);min-width:5.6em;text-align:right}
.ghost-readout strong.ahead{color:var(--green)}.ghost-readout strong.behind{color:#fa8060}
@media(max-width:600px){.ghost-bar{padding:9px 10px}.ghost-bar label{flex:1 1 100%;display:grid;grid-template-columns:64px minmax(0,1fr)}.ghost-bar select{width:100%;max-width:none}.ghost-readout{flex:1 1 100%;margin-left:0}.ghost-readout strong{min-width:0;text-align:left}}
@media(pointer:coarse){.ghost-bar select{min-height:40px}}
/* ---- First release: front page, tour, Videos dashboard, rail upload ---- */
.rail-upload{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:54px;height:54px;margin:0 0 18px;border-radius:14px;border:0;background:var(--brand);color:var(--brand-ink);font-size:9px;font-weight:700;letter-spacing:.2px;cursor:pointer;box-shadow:0 6px 18px rgba(0,245,188,.18);transition:transform .15s,box-shadow .15s}
.rail-upload .icon{width:20px;height:20px;stroke-width:2.4}.rail-upload:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,245,188,.3)}.rail-upload:focus-visible{outline:2px solid var(--text);outline-offset:3px}
.app-shell.on-home .guide{display:none}.app-shell:not(.in-session) .app-footer{display:none}
.home{display:grid;gap:56px;padding-bottom:40px}
.home-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:48px;align-items:center;padding:44px 44px 72px;border-radius:24px;overflow:hidden;border:1px solid var(--border);background:#080b0f}
/* The track runs along the bottom of the hero; the scrims keep the headline and copy on flat black so text contrast is unchanged. */
.home-hero::before{content:"";position:absolute;inset:0;z-index:-2;background:url(assets/hero-track.webp) 54% 80%/cover no-repeat}
.home-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#080b0f 0,rgba(8,11,15,.9) 32%,rgba(8,11,15,.34) 78%,rgba(8,11,15,0) 100%),linear-gradient(96deg,#080b0f 0,#080b0f 34%,rgba(8,11,15,.86) 46%,rgba(8,11,15,.3) 66%,rgba(8,11,15,0) 100%)}
.home-copy h1{font-size:clamp(34px,4.4vw,58px);line-height:1.04;letter-spacing:-1.6px;margin:12px 0 20px;font-weight:700}
.home-lead{font-size:17px;line-height:1.6;color:var(--muted);margin:0 0 28px;max-width:560px}
.home-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}.home-cta{min-height:50px;padding:0 24px;font-size:15px;border-radius:12px}.home-cta .icon{width:18px;height:18px}
.home-visual{position:relative;margin:0;border-radius:20px;overflow:hidden;border:1px solid var(--border);background:#0a0f14;box-shadow:0 30px 70px rgba(0,0,0,.45)}
.home-visual img{display:block;width:100%;height:auto}
.home-visual figcaption{position:absolute;left:14px;top:14px}.home-chip{display:inline-flex;gap:8px;align-items:center;padding:8px 12px;border-radius:999px;background:rgba(11,16,22,.86);border:1px solid var(--border);font-size:12px;color:var(--muted);backdrop-filter:blur(6px)}.home-chip strong{color:var(--green);font-variant-numeric:tabular-nums}
.home-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.home-features article{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:24px}
.home-features .icon{width:26px;height:26px;color:var(--brand)}.home-features h2{font-size:18px;margin:14px 0 8px}.home-features p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}
.home-steps{list-style:none;counter-reset:step;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.home-steps li{counter-increment:step;display:grid;gap:6px;padding:20px 0 0;border-top:2px solid var(--border);font-size:14px}
.home-steps li::before{content:counter(step);font:700 12px/1 ui-monospace,monospace;color:var(--brand);letter-spacing:1px}
.home-steps span{color:var(--muted);line-height:1.55}
/* Once the hero stacks, the copy spans the full width, so the track moves to a band across
   the top and the scrim turns vertical: everything below the band stays flat black. */
@media(max-width:1000px){.home-hero{grid-template-columns:1fr;gap:28px;padding:150px 34px 34px}.home-hero::before{background-position:52% -150px;background-size:auto 520px}.home-hero::after{background:linear-gradient(180deg,rgba(8,11,15,.12) 0,rgba(8,11,15,.3) 9%,rgba(8,11,15,.9) 15%,#080b0f 19%,#080b0f 100%)}.home-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.home{gap:36px}.home-hero{padding:116px 24px 28px;border-radius:18px}.home-hero::before{background-position:52% -84px;background-size:auto 300px}.home-hero::after{background:linear-gradient(180deg,rgba(8,11,15,.12) 0,rgba(8,11,15,.3) 8%,rgba(8,11,15,.9) 13.5%,#080b0f 17%,#080b0f 100%)}.home-features{grid-template-columns:1fr}.home-steps{grid-template-columns:1fr}.home-lead{font-size:15px}.home-cta{flex:1 1 100%;justify-content:center}}
/* Guided tour card */
.tour{position:fixed;right:24px;bottom:24px;width:min(380px,calc(100vw - 32px));z-index:60;padding:20px 22px;border-color:rgba(0,245,188,.45);box-shadow:0 22px 60px rgba(0,0,0,.55);animation:tour-in .25s ease-out}
.tour[hidden]{display:none}@keyframes tour-in{from{opacity:0;transform:translateY(10px)}}
.tour-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.tour-head .eyebrow{color:var(--brand);margin:0}
.tour h2{font-size:19px;margin:4px 0 8px}.tour p{margin:0 0 16px;color:var(--muted);font-size:14px;line-height:1.55}
.tour-actions{display:flex;justify-content:space-between;gap:10px}.tour-actions .button{min-width:96px;justify-content:center}
@media(max-width:600px){.tour{left:12px;right:12px;bottom:12px;width:auto;padding:12px 16px}.tour-head{margin-bottom:0}.tour h2{font-size:16px;margin:2px 0 6px}.tour p{font-size:13px;line-height:1.45;margin-bottom:10px}.tour-actions .button{min-height:40px}}
/* Session workspace back link */
.session-back{display:inline-flex;align-items:center;gap:8px;background:none;border:0;color:var(--muted);font-size:13px;padding:6px 2px;margin:0 0 10px;cursor:pointer}.session-back:hover{color:var(--text)}.session-back:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}
/* Videos dashboard */
.source-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.video-tile{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;min-width:0;transition:border-color .15s,transform .15s}
.video-tile:hover{border-color:#3d4c59}
.upload-tile{align-items:center;justify-content:center;gap:10px;min-height:290px;padding:24px;border:2px dashed #34505a;background:linear-gradient(180deg,rgba(0,245,188,.05),transparent);color:var(--text);font:inherit;cursor:pointer;text-align:center}
.upload-tile:hover,.upload-tile:focus-visible{border-color:var(--brand);transform:translateY(-2px);outline:none}
.upload-plus{display:grid;place-items:center;width:76px;height:76px;border-radius:22px;background:var(--brand);color:var(--brand-ink);margin-bottom:6px;box-shadow:0 10px 28px rgba(0,245,188,.25)}.upload-plus .icon{width:34px;height:34px;stroke-width:2.4}
.upload-tile strong{font-size:17px}
.video-thumb{position:relative;display:grid;place-items:center;aspect-ratio:16/9;width:100%;padding:0;border:0;background:#0a0f14;color:var(--dim);cursor:pointer;overflow:hidden}
.video-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}.video-thumb:hover img{transform:scale(1.03)}.video-thumb .icon{width:34px;height:34px}
.video-length{position:absolute;right:8px;bottom:8px;padding:3px 7px;border-radius:6px;background:rgba(0,0,0,.72);color:#fff;font-size:11px}
.video-tile-body{display:flex;flex-direction:column;gap:2px;padding:14px 16px 16px;flex:1}.video-tile-body h3{margin:0 0 2px;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.video-tile-body p{margin:0}
.video-status{display:flex;align-items:center;gap:7px;margin:8px 0 12px!important;color:var(--muted)}.video-status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold);flex-shrink:0}
.video-status[data-tone=done]::before{background:var(--green)}.video-status[data-tone=new]::before{background:var(--blue)}
.video-tile-body .button{margin-top:auto;align-self:flex-start}
#page-sources.drop-ready{outline:2px dashed var(--brand);outline-offset:8px;border-radius:12px}
.source-more-tools{margin:12px 0}
@media(max-width:600px){.rail-upload{width:40px;height:40px;margin:0;border-radius:11px;flex-shrink:0}.rail-upload span{display:none}.upload-tile{min-height:170px}.source-grid{grid-template-columns:1fr}}
#review-map-wrap,#review-metrics{scroll-margin-top:110px}
#page-sources:has(#source-editor:not([hidden]))>.page-heading,#page-sources:has(#source-editor:not([hidden]))>#source-count{display:none}
.session-created{margin:12px 0 0;font-size:11px;color:var(--dim);font-variant-numeric:tabular-nums}
.link-button{background:none;border:0;padding:0;color:var(--brand);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.taken-input{font:inherit;font-size:11px;padding:2px 6px;min-height:0;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;color-scheme:dark}
@media(pointer:coarse){.link-button{min-height:32px}}
/* Button pass: every action looks like a button (border, fill, hover), quiet ones just a step lighter. */
.button.quiet{border-color:var(--border);background:rgba(255,255,255,.035);color:var(--text)}
.button.quiet:hover{border-color:var(--muted);background:var(--panel-2);color:var(--text)}
.button.quiet:disabled,.button.secondary:disabled{opacity:.45;cursor:not-allowed}
.button.secondary{color:var(--text)}
.session-back{border:1px solid var(--border);border-radius:9px;background:rgba(255,255,255,.035);color:var(--text);padding:7px 14px;min-height:36px}
.session-back:hover{border-color:var(--muted);background:var(--panel-2)}
.link-button{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:7px;background:rgba(255,255,255,.035);color:var(--brand);text-decoration:none;padding:2px 9px;min-height:24px;font-size:11px;vertical-align:middle}
.link-button:hover{border-color:var(--brand)}
.car-name-button{border-color:var(--border);color:var(--text)}
.car-name-button:hover{border-color:var(--muted)}
#source-fit-lens{width:100%;margin:10px 0 4px}
.transport .icon-button,#review-back,#review-forward{border:1px solid var(--border);background:rgba(255,255,255,.035);color:var(--text)}
#review-back:hover,#review-forward:hover{border-color:var(--muted);background:var(--panel-2)}
#page-sources:has(#source-editor:not([hidden])) #source-message:empty{display:none}
#page-sources:has(#source-editor:not([hidden])){padding-top:0}
/* Playback / Analysis / Comparison: real buttons, the open one filled. */
.session-modes{gap:8px}
.session-mode{border-color:var(--border);background:rgba(255,255,255,.035);color:var(--text);padding:9px 16px}
.session-mode:hover{border-color:var(--muted);background:var(--panel-2)}
.session-mode.active{background:#1d392b;color:#b0f3cc;border-color:var(--brand)}
@media(max-width:600px){.session-modes{gap:6px}.session-mode{padding:8px 11px}}
.extract-summary{font-size:13px;font-weight:600;color:var(--text);margin:4px 0 14px}
.extract-lap-fix{border:1px solid rgba(234,185,104,.4);background:rgba(234,185,104,.06);border-radius:10px;padding:10px 12px;margin:0 0 14px}.extract-lap-fix .button{width:100%;margin-top:8px}
.extract-trim{margin:0 0 14px}.extract-trim summary{cursor:pointer;font-size:12px;color:var(--muted);padding:6px 0}.extract-trim[open] summary{color:var(--text)}.extract-trim .button{width:100%;margin-top:6px}
.source-view.no-playback .source-player-controls,.source-view.no-playback label[for=source-playhead],.source-view.no-playback #source-view-hint{display:none}
/* Corner report card */
.report-panel{padding:22px;margin:18px 0 24px}.report-table{display:grid;gap:6px;overflow-x:auto}
.report-row{display:grid;grid-template-columns:minmax(76px,.8fr) minmax(120px,1.2fr) repeat(3,minmax(58px,.6fr)) minmax(140px,1.3fr) minmax(110px,1fr);gap:10px;align-items:center;text-align:left;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.025);color:var(--text);font:inherit;min-width:820px}
button.report-row{cursor:pointer}button.report-row:hover{border-color:var(--muted);background:var(--panel-2)}button.report-row.selected{border-color:var(--brand);background:#1d392b}
.report-row span{display:grid;gap:2px;font-size:13px}.report-row small{font-size:10px;color:var(--muted)}.report-head{background:none;border-color:transparent;padding-top:0;padding-bottom:0}.report-head span{font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:var(--dim)}
.report-time strong{color:var(--gold);font-size:15px}.report-key{margin:12px 2px 0;line-height:1.55}
/* Grip circle */
.grip-panel{padding:20px;margin-top:16px}.grip-panel h2{margin:4px 0 10px}.grip-panel svg{width:100%;max-width:320px;display:block;margin:0 auto}
.grip-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.grip-stats div{display:grid;gap:2px;padding:8px 10px;border:1px solid var(--border);border-radius:8px}.grip-stats span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.grip-stats strong{font-size:16px}

/* Analysis, organized: a compact pair header, four section tabs, map beside the panels for that section. */
.analysis-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.analysis-head h1{font-size:26px}
.analysis-page .analysis-selectors{display:grid!important;grid-template-columns:minmax(120px,.7fr) minmax(150px,1fr) auto minmax(150px,1fr) auto;align-items:end;gap:14px;padding:14px 16px;margin-bottom:16px}
.analysis-page .analysis-selectors label{min-width:0!important}
.analysis-vs{align-self:end;padding-bottom:12px;font-size:12px;color:var(--dim)}
.analysis-page .analysis-stats{display:flex;gap:18px;margin:0;align-items:end;padding:0 4px 4px 14px;border-left:1px solid var(--border)}
.analysis-page .analysis-stats>div{display:grid;gap:3px;padding:0;border:0;background:none;min-width:0}
.analysis-page .analysis-stats span{font-size:10px;color:var(--muted);letter-spacing:0}
.analysis-page .analysis-stats strong{font-size:19px;font-weight:600}
.analysis-gap.slower strong{color:var(--gold)}.analysis-gap.faster strong{color:var(--blue)}
.analysis-tabbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.analysis-sections{display:flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--rail)}
.analysis-sections button{min-height:38px;padding:8px 16px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer}
.analysis-sections button:hover{color:var(--text);background:var(--panel)}
.analysis-sections button.active{color:var(--text);background:var(--panel-2);border-color:var(--border);box-shadow:inset 0 -2px 0 var(--brand)}
.analysis-sections button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.analysis-lap-panel{position:relative}
.analysis-lap-panel>summary{list-style:none;margin:0;min-height:38px;font-size:12px;color:var(--text);display:inline-flex}
.analysis-lap-panel>summary::-webkit-details-marker{display:none}
.analysis-lap-panel>summary::after{content:'';width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);margin-left:4px}
.analysis-lap-panel[open]>summary::after{transform:translateY(2px) rotate(-135deg)}
.analysis-lap-drawer{position:absolute;right:0;top:calc(100% + 8px);z-index:30;width:min(380px,calc(100vw - 32px));max-height:min(70vh,640px);overflow:auto;display:grid;gap:12px;box-shadow:0 18px 40px #0008}
.analysis-lap-drawer .inference-option{display:grid;grid-template-columns:auto 1fr;gap:3px 8px;font-size:12px;color:var(--text);align-items:center}
.analysis-lap-drawer .inference-option small{grid-column:2;font-size:10px;color:var(--muted)}
.analysis-lap-drawer .analysis-quality-note{margin:0;font-size:10px}
.analysis-page .analysis-layout{grid-template-columns:minmax(0,1fr) 300px}
.analysis-page .analysis-stage{display:grid;gap:14px;min-width:0}
.analysis-page .analysis-stage>.analysis-tabs{justify-self:start;margin:0}
.analysis-page .analysis-description{margin:0}
.analysis-page [data-tab-panel]{display:grid;gap:14px;min-width:0}
.analysis-page .insights-heading{margin-bottom:10px}
.analysis-page .insights-heading h2,.analysis-page .benchmark-heading h2,.analysis-page .report-panel h2,.analysis-page .grip-panel h2,.analysis-page .analysis-detail h2{font-size:16px;letter-spacing:-.2px;margin:0}
.analysis-page .insight-grid{display:grid;grid-template-columns:1fr;gap:8px}
.analysis-page .insight-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;align-items:center;padding:13px 16px}
.analysis-page .insight-card>*{grid-column:1}
.analysis-page .insight-card .insight-actions{grid-column:2;grid-row:1 / span 3;margin:0}
.analysis-page .insight-card p{margin:0;font-size:12px}
.analysis-page .insight-card details{grid-column:1 / -1}
.analysis-page .benchmark-panel{margin:0}
.analysis-corner-panel>summary{font-size:13px;font-weight:600;color:var(--text);margin:0}
.analysis-corner-panel[open]>summary{margin-bottom:14px}
.analysis-page .repeatability-panel>summary{font-size:13px;font-weight:600;color:var(--text);margin:0 0 10px}
.analysis-page .analysis-sidebar{position:sticky;top:16px}
@media(max-width:1100px){.analysis-page .analysis-selectors{grid-template-columns:1fr 1fr}.analysis-page .analysis-selectors>label:first-child,.analysis-page .analysis-stats{grid-column:1/-1}.analysis-vs{display:none}.analysis-page .analysis-stats{border-left:0;border-top:1px solid var(--border);padding:12px 0 0}.analysis-page .analysis-layout{grid-template-columns:minmax(0,1fr) 270px}}
@media(max-width:850px){.analysis-page .analysis-layout{grid-template-columns:1fr}.analysis-page .analysis-sidebar{position:static;grid-template-columns:1fr}}
@media(max-width:600px){.analysis-sections{width:100%;overflow-x:auto}.analysis-sections button{flex:1 0 auto;padding:8px 10px;font-size:12px}.analysis-tabbar{align-items:stretch}.analysis-lap-panel{width:100%}.analysis-lap-panel>summary{width:100%;justify-content:center}.analysis-lap-drawer{left:0;right:auto;width:100%}
  .analysis-page .analysis-selectors{grid-template-columns:1fr}.analysis-page .insight-card{grid-template-columns:1fr}.analysis-page .insight-card .insight-actions{grid-column:1;grid-row:auto}
  .analysis-page .report-head{display:none}.analysis-page .report-row{grid-template-columns:1fr 1fr}.analysis-page .report-row>span:nth-child(3){display:none}.analysis-page .report-row>.report-diff{grid-column:1/-1}}
.analysis-page .track-toolbar>strong{display:none}
.analysis-page .track-toolbar:not(:has(.track-options>label:not([hidden]))){display:none}
.analysis-page .analysis-sidebar .analysis-potential{grid-template-columns:1fr;gap:0;padding:6px 16px;margin:0}
.analysis-page .analysis-sidebar .analysis-potential>div{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:2px 10px;padding:10px 0;border-bottom:1px solid var(--border)}
.analysis-page .analysis-sidebar .analysis-potential>div:last-child{border-bottom:0}
.analysis-page .analysis-sidebar .analysis-potential span{font-size:11px;letter-spacing:0;text-transform:none}
.analysis-page .analysis-sidebar .analysis-potential strong{font-size:18px;margin:0}
.analysis-page .analysis-sidebar .analysis-potential small{grid-column:1/-1;margin:0}
.analysis-page .analysis-sources>details>summary{font-size:13px;font-weight:600;color:var(--text);margin:0}
.analysis-page .analysis-sources>details[open]>summary{margin-bottom:10px}
.analysis-page .analysis-sidebar .repeatability-scores{grid-template-columns:1fr;gap:0}
.analysis-page .analysis-sidebar .repeatability-scores>div{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:2px 10px;padding:9px 0;border-bottom:1px solid var(--border)}
.analysis-page .analysis-sidebar .repeatability-scores strong{font-size:20px;margin:0}
.analysis-page .analysis-sidebar .repeatability-scores p{grid-column:1/-1;margin:0}
.analysis-page [data-tab-panel]{grid-template-columns:minmax(0,1fr)}
.analysis-page [data-tab-panel]>*,.analysis-page .analysis-stage>*{min-width:0}
@media(max-width:600px){.analysis-page .report-panel{padding:16px}.analysis-page .report-row{gap:8px;padding:10px 12px}.analysis-page .report-row .mono{white-space:normal}.analysis-page .report-panel .panel-heading{flex-direction:column;align-items:flex-start;gap:4px}}
@media(max-width:600px){.analysis-page .report-table{grid-template-columns:minmax(0,1fr)}.analysis-page .report-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-width:0}.analysis-page .report-row>span{min-width:0}}
@media(max-width:600px){.analysis-page .report-row .mono{font-size:12px}}
.analysis-page .analysis-lap-drawer{padding:16px 18px}
.analysis-page .analysis-lap-drawer .auto-lap-filter{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}
.analysis-page .analysis-lap-drawer .auto-lap-filter label{display:grid;gap:5px;font-size:11px;color:var(--muted)}
.analysis-page .analysis-lap-drawer input[type=number]{min-height:38px;padding:0 10px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);font:inherit;font-size:13px;width:100%}
.analysis-page .analysis-lap-drawer #analysis-include-all{min-height:38px;font-size:12px;border:1px solid var(--border);background:var(--panel)}
.analysis-page .benchmark-list{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:650px){.analysis-page .benchmark-list{grid-template-columns:1fr}}
.analysis-page .turn-gap{display:grid;grid-template-columns:1fr auto;align-items:center;padding:8px 0}
.analysis-page .turn-gap span{font-weight:600}
.analysis-page .turn-gap.slower strong{color:var(--gold)}.analysis-page .turn-gap.faster strong{color:var(--blue)}
.analysis-page .turn-gap-total{display:grid;grid-template-columns:1fr auto;padding:10px 0 2px;font-size:13px;font-weight:650;border-top:1px solid var(--muted);margin-top:2px}

.analysis-page .report-row{grid-template-columns:minmax(78px,.55fr) minmax(120px,.9fr) minmax(150px,1.1fr) minmax(220px,2.3fr)}
.analysis-page .report-diff{font-size:12px;line-height:1.45;color:var(--text);display:block}
.heat-gradient.table{background:linear-gradient(90deg,hsl(150 70% 58%),hsl(80 70% 61%),hsl(10 70% 64%))}

.compare-heading-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
dialog.clip-dialog{max-width:520px}
.clip-canvas{display:block;width:100%;height:auto;aspect-ratio:1080/1350;max-height:68vh;object-fit:contain;margin:14px auto;border-radius:12px;border:1px solid var(--border);background:#0b1016}
.clip-actions{display:flex;gap:10px;flex-wrap:wrap}

.account-nav.signed-in .icon{color:var(--brand)}
dialog.account-dialog,dialog.share-dialog{max-width:480px}
.account-wide{width:100%;margin:14px 0 18px}
.account-email{display:grid;gap:8px;font-size:12px;color:var(--muted)}
.account-email>div,.share-row{display:flex;gap:8px}
.account-email input,.share-row input,.garage-form input:not([type=color]){flex:1;min-width:0;min-height:40px;padding:0 12px;border-radius:9px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);font:inherit;font-size:14px}
.share-row{margin:16px 0 8px}
.account-who{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:14px 0;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2)}
.account-who div{display:grid;gap:2px}
.account-section{margin-top:16px}
.account-section-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.account-section h3{margin:0;font-size:14px}
.garage-list{list-style:none;padding:0;margin:10px 0;display:grid;gap:6px}
.garage-list li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:10px}
.garage-list li.muted{display:block;border-style:dashed}
.garage-list li div{display:grid;gap:2px}.garage-list small{color:var(--muted);font-size:11px}
.garage-swatch{width:14px;height:14px;border-radius:50%;background:var(--swatch)}
.garage-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px;padding:12px;border:1px solid var(--border);border-radius:12px}
.garage-form label{display:grid;gap:5px;font-size:11px;color:var(--muted)}
.garage-form input[type=color]{width:100%;height:40px;border:1px solid var(--border);border-radius:9px;background:var(--panel-2)}
.garage-actions{grid-column:1/-1;display:flex;gap:8px}
.account-message{margin:12px 0 0;color:var(--gold)}

.home-legal{display:flex;gap:20px;justify-content:center;margin:40px 0 8px;font-size:12px}.home-legal a{color:var(--muted);text-decoration:none}.home-legal a:hover{color:var(--text);text-decoration:underline}
.account-danger{border-top:1px solid var(--border);padding-top:14px}.account-danger>.button{color:var(--muted)}.account-delete-confirm{display:grid;gap:10px}.account-delete-confirm label{display:grid;gap:6px;font-size:11px;color:var(--muted)}.button.danger{background:#e5484d;border-color:#e5484d;color:#fff}.button.danger:disabled{opacity:.45;cursor:not-allowed}
.orientation-hint{color:var(--gold);margin:8px 0}
.source-load-panel{margin:8px 0 4px}.source-known-list{display:grid;gap:8px}.saved-setup{display:grid;justify-items:start;text-align:left;gap:2px;width:100%}.saved-setup small{color:var(--muted);font-weight:400}.saved-setup[aria-pressed=true]{border-color:var(--green)}
.source-coach{border:1px solid rgba(234,185,104,.55);background:linear-gradient(180deg,rgba(234,185,104,.13),rgba(234,185,104,.05));border-radius:12px;padding:14px 16px;margin:0 0 16px}
.source-coach-kicker{margin:0 0 4px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold)}
.source-coach-text{margin:0 0 10px;font-size:15px;line-height:1.45;color:var(--text)}
.source-coach-actions{display:flex;gap:8px;flex-wrap:wrap}.source-coach-actions .button{width:auto!important;margin:0!important}
.coach-target{outline:2px solid var(--gold);outline-offset:3px;animation:coach-pulse 1.4s ease-in-out infinite}
@keyframes coach-pulse{0%,100%{outline-color:rgba(234,185,104,.95)}50%{outline-color:rgba(234,185,104,.25)}}
@media (prefers-reduced-motion:reduce){.coach-target{animation:none}}

/* Leaderboards: one board per layout, per class. Podium first, then the field; the top three can be
   replayed together from the start line. */
.lb-sample{font-size:11px;color:var(--muted);border:1px dashed var(--border);border-radius:9px;padding:9px 13px;margin:0 0 16px}
.lb-top{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(220px,1fr);gap:0;overflow:hidden;margin-bottom:16px}
.lb-map{position:relative;margin:0;background:#0a1016;min-width:0}
.lb-map img{display:block;width:100%;height:auto}
.lb-map svg{position:absolute;inset:0;width:100%;height:100%}
.lb-facts{padding:20px;display:flex;flex-direction:column;gap:12px;min-width:0}
.lb-facts h2{font-size:21px;margin:0}
.lb-state{font-size:12px;color:var(--muted);margin:0;line-height:1.6}
.lb-live,.lb-closed{display:inline-block;font-size:9px;letter-spacing:1.4px;padding:3px 7px;border-radius:5px;margin-right:6px}
.lb-live{background:#13332b;color:var(--brand);border:1px solid #1e4b3e}
.lb-closed{background:#2a2320;color:var(--gold);border:1px solid #473a2c}
.lb-facts dl{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0}
.lb-facts dt{font-size:8px;letter-spacing:1.2px;color:var(--muted);text-transform:uppercase}
.lb-facts dd{margin:3px 0 0;font-size:15px}
.lb-classes{display:flex;gap:7px;overflow-x:auto;padding-bottom:4px;margin-bottom:14px;min-width:0;max-width:100%;scrollbar-width:thin}
.lb-chip{flex:0 0 auto;min-height:36px;padding:7px 13px;border-radius:999px;border:1px solid var(--border);background:var(--panel);color:var(--muted);font:inherit;font-size:12px;font-weight:550;white-space:nowrap}
.lb-chip:hover:not(:disabled){color:var(--text);border-color:var(--muted)}
.lb-chip[aria-selected=true]{background:#13332b;border-color:#1e4b3e;color:var(--brand)}
.lb-chip:disabled{opacity:.4}
.lb-chip .n{font-size:10px;opacity:.7;margin-left:6px;font-variant-numeric:tabular-nums}
.lb-board{overflow:hidden}
.lb-board-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.lb-board-head h2{font-size:19px;margin:0}
.lb-board-head .button{margin-left:auto;font-size:12px}
.lb-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--border)}
.lb-pod{background:var(--panel-2);padding:16px 15px;display:flex;flex-direction:column;gap:2px;min-width:0}
.lb-pod.you{background:#16302b}
.lb-pod .pos{font-size:10px;letter-spacing:1.4px;font-weight:600}
.lb-pod .pos.p1{color:var(--gold)}.lb-pod .pos.p2{color:#c3ccd8}.lb-pod .pos.p3{color:#cd8e52}
.lb-pod strong{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-pod small{font-size:10px;color:var(--muted)}
.lb-pod b{font-size:23px;font-weight:500;margin-top:5px}
.lb-pod em{font-size:11px;color:var(--muted);font-style:normal}
.lb-badge{align-self:flex-start;margin-top:7px;font-size:8px;letter-spacing:1.3px;padding:3px 7px;border-radius:5px;font-weight:600}
.lb-badge.best{background:var(--brand);color:var(--brand-ink)}
.lb-badge.record{background:var(--gold);color:#23190a}
.lb-badge.you{background:#1e4b3e;color:var(--brand)}
.lb-badge.pos{background:var(--panel);color:var(--muted);border:1px solid var(--border)}
.lb-rows{display:flex;flex-direction:column}
.lb-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto auto;align-items:center;gap:12px;padding:11px 20px;border-top:1px solid var(--border)}
.lb-row .p{font-size:12px;color:var(--dim)}
.lb-row .who{min-width:0}
.lb-row .who strong{display:block;font-size:15px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-row .who small{font-size:10px;color:var(--muted)}
.lb-row .t{font-size:16px}
.lb-row .g{font-size:12px;color:var(--muted);min-width:48px;text-align:right}
.lb-row.you{background:#16302b;box-shadow:inset 3px 0 0 var(--brand)}
.lb-ghost{min-width:34px;min-height:34px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--muted)}
.lb-ghost:hover{color:var(--brand);border-color:#1e4b3e}
.lb-ghost[aria-pressed=true]{color:var(--brand);border-color:#1e4b3e;background:#13332b}
.lb-ghost .icon{width:17px;height:17px}
.lb-foot,.lb-thin,.lb-empty{font-size:11px;color:var(--muted);margin:0;padding:13px 20px}
.lb-thin{border-top:1px solid var(--border)}
.lb-foot{border-top:1px solid var(--border)}
.lb-archive{margin-top:28px}
.lb-archive h2{font-size:19px;margin:0 0 6px}
.lb-archive-note{font-size:12px;color:var(--muted);max-width:60ch;margin:0}

.lb-race-dialog{width:min(1020px,96vw);padding:0;overflow:hidden}
.lb-race-dialog .dialog-heading{display:flex;align-items:center;gap:12px;padding:16px 20px;margin:0;border-bottom:1px solid var(--border)}
.lb-race-dialog .dialog-heading h2{font-size:19px;margin:0}
.lb-race-dialog .dialog-heading .icon-button{margin-left:auto}
.lb-stage{position:relative;background:#0a1016;line-height:0}
.lb-stage img{display:block;width:100%;height:auto}
.lb-stage svg{position:absolute;inset:0;width:100%;height:100%}
.lb-telemetry{position:absolute;left:14px;top:14px;right:14px;display:flex;align-items:flex-start;gap:12px;line-height:1.4;pointer-events:none}
.lb-lanes{display:flex;flex-direction:column;gap:4px;background:rgba(8,13,18,.76);border-radius:10px;padding:9px 11px;backdrop-filter:blur(3px)}
.lb-lane{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--text);white-space:nowrap}
.lb-lane i{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.lb-lane strong{font-weight:550}
.lb-lane b{margin-left:auto;font-weight:500;color:var(--muted)}
.lb-delta{margin-left:auto;background:rgba(8,13,18,.76);border-radius:10px;padding:7px 13px;text-align:right;backdrop-filter:blur(3px)}
.lb-delta strong{display:block;font-size:27px;font-weight:500;line-height:1.05}
.lb-delta strong.behind{color:#ffa591}
.lb-delta strong.ahead{color:var(--brand)}
.lb-delta span{font-size:9px;letter-spacing:1.2px;color:var(--muted);text-transform:uppercase}
.lb-stamp{position:absolute;left:14px;bottom:10px;margin:0;font-size:10px;color:rgba(238,243,246,.6);line-height:1.4}
.lb-race-note{font-size:11px;color:var(--muted);margin:0;padding:13px 20px}
@media (max-width:860px){
  .lb-top{grid-template-columns:minmax(0,1fr)}
  .lb-podium{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:560px){
  .lb-row{grid-template-columns:22px minmax(0,1fr) auto auto;gap:9px;padding:10px 14px}
  .lb-row .g{display:none}
  .lb-board-head,.lb-foot,.lb-thin,.lb-empty,.lb-race-note{padding-left:14px;padding-right:14px}
  .lb-pod{padding:13px 14px}
  .lb-telemetry{left:8px;right:8px;top:8px;gap:8px}
  .lb-delta strong{font-size:20px}
  .lb-lane b{display:none}
}
