:root{--background: #111419;--foreground: #f8fafc;--asphalt: #111419;--graphite: #1b2028;--graphite-soft: #2a313c;--surface: #f8fafc;--surface-strong: #ffffff;--surface-muted: #e7ecf2;--ink: #0e1116;--ink-muted: #5f6b7a;--kerb-red: #e1282f;--kerb-red-dark: #a91018;--telemetry-blue: #19a7ff;--timing-green: #2fd17c;--timing-yellow: #f8c542;--fastest-lap: #c026d3;--chart-cyan: #16c7bd;--chart-orange: #f58f1f;--chart-pink: #f28ec5;--chart-muted: #7f8a99;--border-dark: #343c49;--border-light: #d3dae4}html{scroll-behavior:smooth}body{background:var(--background);color:var(--foreground);font-family:var(--font-geist-sans),Arial,Helvetica,sans-serif}::selection{background:var(--kerb-red);color:#fff}.racing-grid{background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px),repeating-linear-gradient(135deg,color-mix(in srgb,var(--kerb-red) 18%,transparent) 0 2px,transparent 2px 18px),repeating-linear-gradient(90deg,transparent 0 72px,color-mix(in srgb,var(--telemetry-blue) 18%,transparent) 72px 74px,transparent 74px 144px);background-position:0 0,0 0,0 0,22px 0;background-size:44px 44px,44px 44px,180px 180px,144px 100%}.kerb-rail{background:repeating-linear-gradient(135deg,var(--kerb-red) 0 18px,#ffffff 18px 36px)}.rm-button{display:inline-flex;width:fit-content;min-height:2.75rem;align-items:center;justify-content:center;gap:.5rem;border:1px solid;border-radius:6px;padding:.75rem 1.25rem;font-size:.875rem;font-weight:700;line-height:1;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.rm-button--primary{border-color:var(--kerb-red);background:var(--kerb-red);color:#fff;box-shadow:0 0 32px color-mix(in srgb,var(--kerb-red) 32%,transparent)}.rm-button--primary:hover{background:var(--kerb-red-dark)}.rm-button--secondary{border-color:color-mix(in srgb,white 20%,transparent);background:color-mix(in srgb,white 5%,transparent);color:#fff}.rm-button--secondary:hover{border-color:color-mix(in srgb,white 40%,transparent);background:color-mix(in srgb,white 10%,transparent)}.rm-button--ghost{border-color:var(--border-light);background:var(--surface-strong);color:var(--ink)}.rm-button--ghost:hover{border-color:var(--ink-muted);background:var(--surface-muted)}.rm-button:focus-visible{outline:2px solid color-mix(in srgb,var(--telemetry-blue) 45%,white);outline-offset:2px}.rm-button:disabled,.rm-button[aria-disabled=true]{border-color:var(--border-light);background:var(--surface-muted);color:var(--ink-muted);box-shadow:none;cursor:not-allowed}.rm-card{display:grid;gap:.8rem;border:1px solid var(--border-dark);border-radius:8px;background:linear-gradient(165deg,var(--graphite),color-mix(in srgb,var(--graphite) 62%,black));padding:1rem}.rm-card h2,.rm-card h3{margin:0;font-size:1.05rem}.rm-card p{margin:0;color:color-mix(in srgb,var(--foreground) 66%,transparent)}.rm-panel{border:1px solid var(--border-dark);border-radius:8px;background:var(--graphite);padding:1rem}.rm-panel h2{margin-top:0}.rm-badge{border:1px solid var(--border-dark);border-radius:6px;padding:.2rem .55rem;color:#dae0ea;font-size:.8rem}.rm-stack{display:grid;gap:.8rem}.rm-inline-row{display:flex;flex-wrap:wrap;gap:.5rem}.rm-field{display:grid;gap:.35rem}.rm-field label{color:color-mix(in srgb,var(--foreground) 66%,transparent);font-size:.9rem}.rm-field input,.rm-field select,.rm-field textarea{border:1px solid var(--border-dark);border-radius:6px;background:var(--background);color:var(--foreground);padding:.6rem .7rem}.rm-field input,.rm-field select{min-height:2.75rem}.rm-field textarea{resize:vertical;font:inherit}.rm-field input:focus-visible,.rm-field select:focus-visible,.rm-field textarea:focus-visible{outline:2px solid color-mix(in srgb,var(--kerb-red) 28%,white);outline-offset:2px}.rm-status--ok{color:var(--timing-green)}.rm-status--error{color:#ff6f6f}:root{color-scheme:dark;--viewer-bg: var(--asphalt);--viewer-panel: var(--graphite);--viewer-panel-muted: color-mix(in srgb, var(--graphite) 78%, var(--asphalt));--viewer-panel-strong: color-mix(in srgb, var(--graphite-soft) 56%, var(--asphalt));--viewer-border: var(--border-dark);--viewer-border-muted: color-mix(in srgb, var(--border-dark) 68%, var(--asphalt));--viewer-text: var(--foreground);--viewer-muted: color-mix(in srgb, var(--foreground) 62%, var(--graphite-soft));--viewer-dim: color-mix(in srgb, var(--foreground) 44%, var(--graphite-soft));--viewer-blue: var(--telemetry-blue);--viewer-red: var(--kerb-red);--viewer-red-soft: color-mix(in srgb, var(--kerb-red) 72%, white);--viewer-green: var(--timing-green);--viewer-neutral: color-mix(in srgb, var(--foreground) 58%, var(--graphite-soft));--viewer-surface: var(--surface-strong);--viewer-surface-muted: var(--surface-muted);--viewer-surface-text: var(--ink);--viewer-surface-dim: var(--ink-muted);--viewer-surface-border: var(--border-light);--viewer-shadow: 0 24px 70px rgba(3, 7, 18, .3);font-family:var(--font-geist-sans, Inter),ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--viewer-bg);color:var(--viewer-text)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--viewer-bg)}button,select,input{font:inherit}button{cursor:pointer}button:disabled,input:disabled{cursor:not-allowed;opacity:.45}.app-shell{height:100vh;display:grid;grid-template-rows:auto 1fr;overflow:hidden}.topbar{min-height:72px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--viewer-border-muted);background:color-mix(in srgb,var(--viewer-panel) 88%,black)}.topbar h1{margin:0;font-size:20px;line-height:1.1;letter-spacing:0}.topbar p,.topbar-status-button{margin:6px 0 0;color:var(--viewer-muted);font-size:13px}.topbar-status-button{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:0;border:0;background:transparent;font:inherit;font-size:13px;line-height:1.4;text-align:left;cursor:pointer}.topbar-status-button span{min-width:0}.topbar-status-button:hover,.topbar-status-button:focus-visible{color:var(--viewer-text)}.topbar-actions{display:flex;align-items:center;gap:10px}.file-button,.sample-button,.site-link,.icon-button{border:1px solid var(--viewer-border);background:var(--viewer-panel-strong);color:var(--viewer-text);display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:6px;min-height:42px;font-size:13px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.file-button:hover,.sample-button:hover,.site-link:hover,.icon-button:hover{border-color:color-mix(in srgb,var(--viewer-text) 34%,var(--viewer-border));background:color-mix(in srgb,var(--viewer-panel-strong) 78%,var(--viewer-blue))}.file-button:focus-within,.sample-button:focus-visible,.site-link:focus-visible,.icon-button:focus-visible,.analysis-chart-clickable:focus-visible,.analysis-dock-readout:focus-visible,.segmented-control button:focus-visible,.session-row button:focus-visible,.delete-button:focus-visible{outline:2px solid color-mix(in srgb,var(--viewer-blue) 45%,white);outline-offset:2px}.file-button{position:relative;padding:0 14px;white-space:nowrap}.sample-button{padding:0 14px;white-space:nowrap}.sample-button.danger{border-color:color-mix(in srgb,var(--viewer-red) 56%,var(--viewer-border));color:var(--viewer-red-soft)}.sample-button.danger:hover{background:color-mix(in srgb,var(--viewer-panel-strong) 78%,var(--viewer-red))}.site-link{padding:0 14px;text-decoration:none;white-space:nowrap}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.intro-shell{min-height:0;overflow:auto;padding:28px;background:linear-gradient(135deg,color-mix(in srgb,var(--viewer-red) 11%,transparent),transparent 38%),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),var(--viewer-bg);background-size:auto,44px 44px,44px 44px,auto}.intro-grid{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);gap:18px;align-items:stretch}.upload-panel,.feature-card{border:1px solid var(--viewer-surface-border);background:var(--viewer-surface);border-radius:8px;box-shadow:var(--viewer-shadow);color:var(--viewer-surface-text)}.viewer-preview{border:1px solid var(--viewer-border-muted);background:var(--viewer-panel);border-radius:8px}.upload-panel{padding:22px}.eyebrow{margin:0 0 10px;color:var(--viewer-red);font-family:var(--font-geist-mono),ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.upload-panel h2,.section-heading h2{margin:0;color:var(--viewer-surface-text);letter-spacing:0}.upload-panel h2{max-width:460px;font-size:48px;line-height:.98}.upload-panel p{margin:16px 0 0;max-width:540px;color:var(--viewer-surface-dim);line-height:1.55}.file-drop{position:relative;margin-top:24px;min-height:150px;padding:22px;display:grid;place-items:center;text-align:center;border:1px dashed color-mix(in srgb,var(--viewer-red) 48%,var(--viewer-surface-border));border-radius:8px;background:var(--viewer-surface-muted)}.file-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.file-drop strong,.file-drop span{display:block}.file-drop strong{color:var(--viewer-surface-text);font-size:18px}.file-drop span{margin-top:8px;color:var(--viewer-surface-dim);font-size:13px}.upload-actions{margin-top:14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.upload-actions .rm-button{width:100%}.status-line{min-height:20px;font-size:13px;color:var(--viewer-surface-dim)}.viewer-preview{min-height:420px;display:grid;grid-template-rows:34px minmax(0,1fr) auto;overflow:hidden;background:var(--viewer-panel-muted)}.preview-topbar,.screenshot-topbar{display:flex;gap:6px;align-items:center;padding:0 12px;border-bottom:1px solid var(--viewer-border-muted)}.preview-topbar span,.screenshot-topbar span{width:8px;height:8px;border-radius:999px;background:var(--viewer-border)}.preview-map{position:relative;min-height:0;background:linear-gradient(90deg,color-mix(in srgb,var(--viewer-border) 36%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--viewer-border) 36%,transparent) 1px,transparent 1px),var(--viewer-bg);background-size:42px 42px}.preview-map svg{width:100%;height:100%}.replay-preview-svg path{fill:none;stroke-linecap:round;stroke-linejoin:round}.preview-route-shadow{stroke:color-mix(in srgb,var(--viewer-blue) 18%,transparent);stroke-width:5}.preview-route{stroke:var(--viewer-blue);stroke-width:1.35}.preview-reference-line{stroke:color-mix(in srgb,var(--viewer-text) 14%,transparent);stroke-width:.8}.preview-reference-line.angled{stroke:color-mix(in srgb,var(--viewer-text) 8%,transparent)}.preview-car-outline{stroke:color-mix(in srgb,var(--viewer-blue) 58%,transparent);stroke-width:1.5}.preview-car-shadow{fill:color-mix(in srgb,black 45%,transparent)}.preview-car-body{fill:#53606c}.preview-car-cockpit{fill:#080a0d}.preview-car-side{fill:var(--viewer-blue)}.preview-car-wing{fill:#65717c}.preview-driver{fill:color-mix(in srgb,white 85%,var(--viewer-border))}.preview-position-dot{fill:var(--viewer-blue)}.preview-hud{position:absolute;right:16px;bottom:16px;min-width:126px;padding:12px;border:1px solid var(--viewer-border-muted);border-radius:8px;background:color-mix(in srgb,var(--viewer-panel) 90%,transparent)}.preview-hud span,.preview-side span,.preview-metrics span{color:var(--viewer-dim);font-size:12px}.preview-hud strong,.preview-side strong,.preview-metrics strong{display:block;margin-top:4px;color:var(--viewer-green);font-size:22px;font-variant-numeric:tabular-nums}.preview-side{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;border-top:1px solid var(--viewer-border-muted);background:var(--viewer-border-muted)}.preview-side>div{padding:12px;background:var(--viewer-panel)}.preview-side strong{color:var(--viewer-text);font-size:14px}.preview-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tool-overview{margin-top:26px}.section-heading h2{max-width:620px;color:var(--viewer-text);font-size:28px;line-height:1.08}.feature-grid{margin-top:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.feature-card{padding:12px}.feature-card h3{margin:14px 2px 0;color:var(--viewer-surface-text);font-size:17px}.feature-card p{margin:8px 2px 2px;color:var(--viewer-surface-dim);font-size:13px;line-height:1.45}.feature-screenshot{min-height:168px;overflow:hidden;border:1px solid var(--viewer-surface-border);border-radius:7px;background:var(--viewer-surface-muted)}.screenshot-topbar{height:28px;border-color:var(--viewer-surface-border)}.screenshot-drop{min-height:138px;margin:0;display:grid;place-content:center;text-align:center}.screenshot-drop strong{color:var(--viewer-surface-text)}.screenshot-drop span{margin-top:8px;color:var(--viewer-surface-dim);font-size:12px}.replay-screenshot,.telemetry-screenshot{padding:12px;background:var(--viewer-panel-muted)}.replay-screenshot svg{width:100%;height:124px}.replay-preview-svg.compact{display:block;margin-top:-6px}.mini-controls{display:grid;grid-template-columns:42px 1fr 36px;gap:8px}.mini-controls span{height:10px;border-radius:999px;background:var(--viewer-border)}.mini-controls span:nth-child(2){background:color-mix(in srgb,var(--viewer-blue) 60%,var(--viewer-border))}.mini-table{display:grid;grid-template-columns:1fr 1fr;gap:1px;overflow:hidden;border-radius:6px;background:var(--viewer-border-muted)}.mini-table span,.mini-table strong{min-width:0;padding:10px;background:var(--viewer-surface);font-size:12px}.mini-table span{color:var(--viewer-surface-dim)}.mini-table strong{color:var(--viewer-surface-text);font-weight:650}.workspace{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 360px}.workspace.has-expanded-analysis{grid-template-columns:minmax(0,1fr) 360px;grid-template-rows:minmax(260px,1fr) minmax(230px,32vh)}.viewer-stack{position:relative;min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr);background:var(--viewer-bg)}.viewer-stage{position:relative;min-width:0;min-height:0}.map-zoom-control{position:absolute;top:14px;left:14px;z-index:3;display:grid;grid-template-rows:38px 38px;gap:6px}.map-zoom-control button{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--viewer-border) 82%,var(--viewer-text));border-radius:6px;background:color-mix(in srgb,var(--viewer-panel) 88%,black);box-shadow:0 10px 30px #03071252;color:var(--viewer-text);font-size:22px;font-weight:800;line-height:1;transition:background-color .16s ease,border-color .16s ease,color .16s ease}.map-zoom-control button:hover{border-color:color-mix(in srgb,var(--viewer-blue) 54%,var(--viewer-border));background:color-mix(in srgb,var(--viewer-panel-strong) 78%,var(--viewer-blue))}.map-zoom-control button:focus-visible{outline:2px solid color-mix(in srgb,var(--viewer-blue) 45%,white);outline-offset:2px}.track-map{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:0;pointer-events:none;transition:opacity .16s ease}.track-map-host,.satellite-overlay{position:absolute;inset:0;width:100%;height:100%}.track-map-host{z-index:0}.satellite-overlay{z-index:1;pointer-events:none}.track-map .maplibregl-canvas,.track-map .maplibregl-canvas-container{width:100%!important;height:100%!important}.track-map.visible{opacity:.82;pointer-events:auto}.track-map.visible .maplibregl-canvas{cursor:grab}.track-map.visible .maplibregl-canvas:active{cursor:grabbing}.scene-shell{position:absolute;inset:0;min-width:0;min-height:0;z-index:1}.scene-shell.synthetic-mode{background:var(--viewer-bg)}.scene-shell.map-mode{background:transparent}.scene-host{position:absolute;inset:0}.scene-empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;color:var(--viewer-muted);pointer-events:none}.scene-empty-title{color:var(--viewer-text);font-size:28px;font-weight:720}.scene-empty-copy{margin-top:8px;font-size:14px}.side-panel{min-height:0;overflow:auto;border-left:1px solid var(--viewer-border-muted);background:var(--viewer-panel-muted);padding:14px;display:flex;flex-direction:column;gap:12px}.panel-block{border:1px solid var(--viewer-border-muted);background:var(--viewer-panel);border-radius:8px;padding:12px}.panel-title{margin-bottom:10px;color:var(--viewer-text);font-size:12px;font-weight:760;text-transform:uppercase}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.panel-header .panel-title{margin-bottom:0}.panel-actions{display:inline-flex;align-items:center;gap:7px}.panel-action{width:30px;height:30px;border:1px solid var(--viewer-border);border-radius:7px;background:var(--viewer-panel-strong);color:var(--viewer-muted);display:inline-flex;align-items:center;justify-content:center}.panel-action:hover{border-color:color-mix(in srgb,var(--viewer-red) 42%,var(--viewer-border));color:var(--viewer-red-soft)}.empty-panel{color:var(--viewer-dim);font-size:13px}.lap-select-row{display:grid;grid-template-columns:78px minmax(0,1fr);align-items:start;gap:10px;padding:9px 0;border-bottom:1px solid var(--viewer-border-muted);font-size:13px}.lap-select-row span{min-width:0;padding-top:10px;font-size:12px;font-weight:700;text-transform:uppercase}.lap-select-row.blue span{color:var(--viewer-blue)}.lap-select-row.red span{color:var(--viewer-red-soft)}.lap-select-row select{width:100%}.weather-summary{margin-top:12px;display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:10px;padding:10px;border:1px solid color-mix(in srgb,var(--viewer-blue) 24%,var(--viewer-border-muted));border-radius:7px;background:color-mix(in srgb,var(--viewer-blue) 7%,var(--viewer-panel-muted))}.weather-summary-button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer}.weather-summary-button:hover{border-color:color-mix(in srgb,var(--viewer-blue) 56%,var(--viewer-border));background:color-mix(in srgb,var(--viewer-blue) 12%,var(--viewer-panel-muted))}.weather-summary-icon{width:36px;height:36px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;background:var(--viewer-panel-strong);color:var(--viewer-blue)}.weather-summary span{display:block;color:var(--viewer-dim);font-size:12px}.weather-summary strong{display:block;margin-top:4px;color:var(--viewer-text);font-size:14px;line-height:1.25}.track-layout-modal{width:min(560px,100%)}.track-layout-field{display:grid;gap:8px;margin-top:16px;color:var(--viewer-muted);font-size:12px;font-weight:700;text-transform:uppercase}.track-layout-field select,.track-layout-field input{width:100%;min-height:48px;padding:0 16px;border:1px solid var(--viewer-border);border-radius:7px;background:var(--viewer-panel-muted);color:var(--viewer-text);font-size:15px;font-weight:720;text-transform:none;color-scheme:dark}.track-layout-field select:focus-visible,.track-layout-field input:focus-visible{outline:2px solid color-mix(in srgb,var(--viewer-blue) 60%,transparent);outline-offset:2px;border-color:color-mix(in srgb,var(--viewer-blue) 52%,var(--viewer-border))}.track-layout-weather-grid{display:grid;grid-template-columns:minmax(0,1fr) 144px;gap:12px}.track-layout-temperature{position:relative;display:block}.track-layout-temperature input{padding-right:42px}.track-layout-temperature span{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--viewer-muted);font-size:15px;font-weight:760;text-transform:none}.track-layout-meta{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--viewer-border-muted);color:var(--viewer-muted);font-size:14px}.metric-grid{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.metric{min-height:62px;padding:10px;border-radius:7px;background:var(--viewer-panel-muted);border:1px solid var(--viewer-border-muted)}.metric span{display:block;color:var(--viewer-dim);font-size:12px}.metric strong{display:block;margin-top:7px;font-size:19px;line-height:1;font-variant-numeric:tabular-nums}.metric.gain strong{color:var(--viewer-green)}.metric.loss strong{color:var(--viewer-red)}.analysis-panel{padding-bottom:10px}.analysis-grid{display:grid;gap:10px}.analysis-chart{min-width:0;padding:10px;border:1px solid var(--viewer-border-muted);border-radius:7px;background:var(--viewer-panel-muted)}.analysis-chart-head,.analysis-scale{display:flex;align-items:center;justify-content:space-between;gap:10px}.analysis-chart-head>span{min-width:0;color:var(--viewer-muted);font-size:12px;font-weight:700}.analysis-chart-head strong,.analysis-readout{color:var(--viewer-text);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.analysis-readout{display:inline-flex;align-items:baseline;gap:7px}.analysis-value-delta{font-size:11px;font-weight:800}.analysis-value-delta.gain{color:var(--viewer-blue)}.analysis-value-delta.loss{color:var(--viewer-red-soft)}.analysis-value-delta.neutral{color:var(--viewer-muted)}.analysis-chart-actions{display:flex;align-items:center;gap:8px}.analysis-chart-clickable{width:100%;display:block;text-align:left;color:inherit}.analysis-chart-clickable:hover{border-color:color-mix(in srgb,var(--viewer-blue) 54%,var(--viewer-border));background:color-mix(in srgb,var(--viewer-panel-muted) 88%,var(--viewer-blue))}.analysis-plot{position:relative;min-width:0;width:100%;height:96px;margin-top:6px;overflow:visible}.analysis-plot.seekable{cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none}.analysis-svg{display:block;width:100%;height:100%;overflow:visible}.analysis-grid-line{stroke:color-mix(in srgb,var(--viewer-border) 62%,transparent);stroke-width:1}.analysis-zero-line{stroke:color-mix(in srgb,var(--viewer-text) 36%,transparent);stroke-width:1;stroke-dasharray:4 4}.analysis-zero-line.multi{stroke:color-mix(in srgb,var(--series-color) 46%,transparent)}.analysis-line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.analysis-line.blue{stroke:var(--viewer-blue)}.analysis-line.red{stroke:var(--viewer-red-soft)}.analysis-line.multi{stroke:var(--series-color)}.analysis-line.multi.lap-b{stroke-dasharray:6 5}.analysis-cursor{stroke:var(--viewer-green);stroke-width:1.5;vector-effect:non-scaling-stroke}.analysis-scale{margin-top:-3px;color:var(--viewer-dim);font-size:11px;font-variant-numeric:tabular-nums}.analysis-unavailable{min-height:96px;margin-top:6px;display:grid;place-items:center;text-align:center;color:var(--viewer-dim);font-size:12px;line-height:1.35}.analysis-chart.expanded{padding:14px}.analysis-chart.expanded .analysis-chart-head span{font-size:13px}.analysis-chart.expanded .analysis-chart-head strong{font-size:15px}.analysis-chart.expanded .analysis-plot{height:100%;min-height:0}.analysis-chart.expanded .analysis-svg{position:absolute;inset:0;width:100%;min-width:100%;height:100%}.analysis-chart.expanded .analysis-unavailable{min-height:160px}.analysis-dock{grid-column:1 / -1;grid-row:2;min-width:0;min-height:0;overflow:hidden;border-top:1px solid var(--viewer-border-muted);background:color-mix(in srgb,var(--viewer-panel) 92%,black);display:grid;grid-template-rows:auto minmax(0,1fr)}.analysis-dock-header{padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--viewer-border-muted)}.analysis-dock-header strong{color:var(--viewer-text);font-size:18px}.analysis-dock-title{min-width:0;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.analysis-dock-readouts{min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.analysis-dock-readout{min-height:30px;display:inline-flex;align-items:center;gap:8px;padding:4px 8px;border:1px solid var(--viewer-border-muted);border-radius:7px;background:transparent;color:var(--viewer-muted)}.analysis-dock-readout:hover{border-color:color-mix(in srgb,var(--series-color) 48%,var(--viewer-border-muted));color:var(--viewer-text)}.analysis-dock-readout.selected{border-color:color-mix(in srgb,var(--series-color) 44%,var(--viewer-border-muted));background:color-mix(in srgb,var(--series-color) 10%,var(--viewer-panel-muted));color:var(--viewer-text)}.analysis-dock-readout>span{display:inline-flex;align-items:center;gap:6px;color:var(--viewer-muted);font-size:11px;font-weight:760;white-space:nowrap}.analysis-dock-readout i{width:14px;height:2px;border-radius:999px;background:var(--series-color)}.analysis-dock-readout .analysis-readout{color:var(--viewer-text);font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}.analysis-dock-readout .analysis-value-delta{font-size:11px}.analysis-dock-actions,.chart-zoom-control{display:flex;align-items:center}.analysis-dock-actions{gap:10px;flex-wrap:wrap;justify-content:flex-end}.chart-zoom-control{min-height:38px;gap:4px;padding:3px;border:1px solid var(--viewer-border-muted);border-radius:8px;background:var(--viewer-panel-muted)}.chart-zoom-control button{width:34px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:transparent;color:var(--viewer-muted)}.chart-zoom-control button:hover{background:var(--viewer-panel-strong);color:var(--viewer-text)}.chart-zoom-control button:focus-visible{outline:2px solid color-mix(in srgb,var(--viewer-blue) 45%,white);outline-offset:2px}.chart-zoom-control span{min-width:48px;color:var(--viewer-text);font-size:12px;font-weight:760;text-align:center;font-variant-numeric:tabular-nums}.analysis-dock .analysis-chart{min-height:0;border:0;border-radius:0;background:transparent;display:grid;grid-template-rows:minmax(0,1fr) auto}.analysis-series-legend{display:flex;align-items:center;gap:12px;padding:0 14px 12px;color:var(--viewer-dim);font-size:11px;font-weight:720;line-height:1;flex-wrap:wrap}.analysis-series-legend span{display:inline-flex;align-items:center;gap:6px}.analysis-series-legend i{width:18px;height:2px;border-radius:999px;background:var(--series-color)}.analysis-series-legend .lap-style:before{content:"";width:18px;height:0;border-top:2px solid var(--viewer-text)}.analysis-series-legend .lap-style.dashed:before{border-top-style:dashed}.controls-row{display:flex;gap:8px;align-items:center}.icon-button{width:40px;height:38px}.icon-button.primary{background:var(--viewer-blue);border-color:var(--viewer-blue);color:var(--asphalt)}.icon-button.selected{border-color:var(--viewer-blue);color:var(--viewer-blue)}.settings-panel{margin-top:10px;padding:10px;border-radius:7px;border:1px solid var(--viewer-border-muted);background:var(--viewer-panel-muted)}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--viewer-muted);font-size:12px;font-weight:700}.toggle-row input{width:18px;height:18px;accent-color:var(--viewer-blue)}select{height:38px;padding:0 10px;min-width:0;border-radius:7px;border:1px solid var(--viewer-border);background:var(--viewer-panel-muted);color:var(--viewer-text)}.lap-selector{display:grid;gap:0}.scrubber{width:100%;margin:16px 0 10px;accent-color:var(--viewer-blue)}.range-field{margin-top:12px;display:grid;gap:6px}.range-field span{color:var(--viewer-dim);font-size:12px}.range-field input{width:100%;accent-color:var(--viewer-blue)}.delta-strip{height:14px;display:flex;overflow:hidden;border-radius:999px;background:var(--viewer-panel-muted);border:1px solid var(--viewer-border-muted)}.delta-strip span.gain{background:var(--viewer-green)}.delta-strip span.loss{background:var(--viewer-red)}.delta-strip span.neutral{background:var(--viewer-neutral)}.delta-strip.empty{background:var(--viewer-panel-strong)}.segmented-control{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:8px;background:var(--viewer-panel-muted);border:1px solid var(--viewer-border-muted)}.segmented-control button{height:32px;border:0;border-radius:6px;background:transparent;color:var(--viewer-dim)}.segmented-control button.selected{background:var(--viewer-blue);color:var(--asphalt)}.sessions{min-height:110px}.session-row{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:8px;align-items:center;padding:7px 0;border-top:1px solid var(--viewer-border-muted)}.session-row:first-of-type{border-top:0}.session-row button:first-child{min-width:0;border:0;background:transparent;color:var(--viewer-text);text-align:left;padding:0}.session-row span,.session-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-row small{margin-top:3px;color:var(--viewer-dim);font-size:11px}.delete-button{width:34px;height:34px;border:1px solid var(--viewer-border);border-radius:7px;background:var(--viewer-panel-strong);color:var(--viewer-muted)}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:18px;background:#030712b8}.modal-panel{width:min(520px,100%);max-height:min(720px,calc(100vh - 36px));overflow:auto;border:1px solid var(--viewer-border);border-radius:8px;background:var(--viewer-panel);box-shadow:var(--viewer-shadow);padding:14px}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:12px;border-bottom:1px solid var(--viewer-border-muted)}.modal-header .panel-title{margin-bottom:4px}.modal-header p{margin:0;color:var(--viewer-muted);font-size:13px}.comparison-details-modal{width:min(680px,100%)}.comparison-table-wrap{margin-top:12px;overflow-x:auto}.comparison-table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.comparison-table th,.comparison-table td{padding:10px 8px;border-bottom:1px solid var(--viewer-border-muted);text-align:right;white-space:nowrap}.comparison-table th:first-child,.comparison-table td:first-child{text-align:left}.comparison-table thead th{color:var(--viewer-dim);font-size:11px;text-transform:uppercase}.comparison-table tbody th{color:var(--viewer-text);font-weight:700}.comparison-table tbody td{color:var(--viewer-muted)}.lap-delete-list{display:grid;gap:0;margin:10px 0 14px}.lap-delete-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:42px;border-bottom:1px solid var(--viewer-border-muted);color:var(--viewer-text);font-size:13px}.lap-delete-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lap-delete-row strong{border:1px solid var(--viewer-border-muted);border-radius:999px;padding:3px 7px;color:var(--viewer-muted);font-size:10px;text-transform:uppercase}.lap-delete-row input{width:16px;height:16px;accent-color:var(--viewer-red)}.modal-actions{display:flex;justify-content:flex-end;gap:10px}@media(max-width:880px){.app-shell{height:auto;min-height:100vh;overflow:visible}.topbar{align-items:flex-start;flex-direction:column}.topbar-actions{width:100%;flex-wrap:wrap}.topbar-actions .file-button,.topbar-actions .sample-button{flex:1}.upload-actions{grid-template-columns:1fr}.intro-shell{padding:18px}.intro-grid,.feature-grid{grid-template-columns:1fr}.upload-panel h2{font-size:34px}.viewer-preview{min-height:360px}.preview-side,.workspace{grid-template-columns:1fr}.workspace.has-expanded-analysis{grid-template-columns:1fr;grid-template-rows:minmax(420px,58vh) minmax(360px,48vh) auto}.viewer-stack{height:58vh;min-height:420px}.workspace.has-expanded-analysis .analysis-dock{grid-row:2}.workspace.has-expanded-analysis .side-panel{grid-row:3}.scene-shell{height:58vh;min-height:420px}.viewer-stage .scene-shell{height:auto;min-height:0}.side-panel{border-left:0;border-top:1px solid var(--viewer-border-muted)}.analysis-chart.expanded .analysis-plot{height:100%;min-height:0}.analysis-dock-header{align-items:flex-start;flex-direction:column}.analysis-dock-actions,.chart-zoom-control{width:100%}.analysis-dock-readouts{width:100%;overflow-x:auto}.chart-zoom-control{flex:1}.track-layout-weather-grid{grid-template-columns:1fr}}
