*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0b0e;--surface:#111318;--surface2:#181b22;--border:#ffffff12;--text:#e4e4e7;--text-dim:#52525b;--text-muted:#3f3f46;--accent:#00d4ff}html,body,#root{background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;font-size:13px;overflow:hidden}.landing{background:var(--bg);flex-direction:column;height:100vh;display:flex;overflow-y:auto}.landing-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;height:52px;padding:0 28px;display:flex}.landing-logo{letter-spacing:.22em;color:#ffffffa6;font-family:monospace;font-size:13px;font-weight:600}.landing-logo-by{letter-spacing:.08em;color:var(--text-dim);font-style:italic;font-weight:400}.landing-body{flex-direction:column;gap:28px;width:100%;max-width:1200px;margin:0 auto;padding:36px 28px 48px;display:flex}.landing-modes{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.landing-mode-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:10px;padding:16px;display:flex;position:relative}.landing-mode-icon{color:#ffffff40}.landing-mode-content{flex-direction:column;flex:1;gap:6px;display:flex}.landing-mode-title{color:var(--text);letter-spacing:.02em;font-size:12px;font-weight:600}.landing-mode-desc{color:#ffffff61;font-size:11px;line-height:1.6}.landing-mode-badge{letter-spacing:.12em;text-transform:uppercase;border:1px solid;border-radius:3px;align-self:flex-start;padding:3px 7px;font-family:monospace;font-size:9px;display:inline-block}.landing-mode-badge-available{color:#00d4ffcc;background:#00d4ff0f;border-color:#00d4ff40}.landing-mode-badge-dev{color:#fbbf24cc;background:#fbbf240d;border-color:#fbbf2433}.landing-mode-badge-future{color:#ffffff47;background:0 0;border-color:#ffffff14}@media (width<=640px){.landing-modes{grid-template-columns:1fr}}.landing-section-label{letter-spacing:.15em;color:#ffffff61;text-transform:uppercase;align-items:center;gap:7px;margin-bottom:16px;font-family:monospace;font-size:10px;display:flex}.landing-car-row{flex-wrap:wrap;gap:8px;display:flex}.landing-car-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;white-space:nowrap;border-radius:5px;padding:7px 16px;font-size:12px;transition:all .15s}.landing-car-btn:hover{color:var(--text);background:var(--surface2);border-color:#ffffff26}.landing-car-btn-selected{color:var(--accent);background:#00d4ff0f;border-color:#00d4ff73}.landing-car-btn-selected:hover{border-color:#00d4ff99}.landing-track-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.landing-track-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:6px;flex-direction:column;padding:0;transition:border-color .15s,background .15s;display:flex;overflow:hidden}.landing-track-card:hover{background:var(--surface2);border-color:#ffffff26}.landing-track-card-selected{background:#00d4ff0a;border-color:#00d4ff73}.landing-track-card-selected:hover{background:#00d4ff0f;border-color:#00d4ff99}.landing-track-svg-wrap{aspect-ratio:200/130;border-bottom:1px solid var(--border);background:#0003;width:100%}.landing-track-svg-wrap svg{width:100%;height:100%;display:block}.landing-track-info{justify-content:space-between;align-items:baseline;gap:8px;padding:8px 10px;display:flex}.landing-track-name{color:var(--text);font-size:11px;font-weight:500;line-height:1.3}.landing-track-km{color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-family:monospace;font-size:10px}.landing-track-card-selected .landing-track-name{color:var(--accent)}.landing-recent-list{flex-direction:column;gap:3px;display:flex}.landing-recent-item{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:5px;align-items:center;gap:8px;width:100%;min-width:0;padding:8px 12px;transition:border-color .15s,background .15s;display:flex}.landing-recent-item:hover{background:var(--surface2);border-color:#ffffff26}.landing-recent-item:hover .landing-recent-arrow{color:var(--accent);opacity:1}.landing-recent-track{color:var(--text-dim);white-space:nowrap;flex-shrink:0;font-size:11px}.landing-recent-sep{color:var(--text-muted);flex-shrink:0;font-size:11px}.landing-recent-car{color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-family:monospace;font-size:10px}.landing-recent-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;overflow:hidden}.landing-recent-time{color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-family:monospace;font-size:10px}.landing-recent-arrow{color:var(--text-muted);opacity:.5;flex-shrink:0;transition:color .15s,opacity .15s}.landing-sessions-list{flex-direction:column;gap:3px;display:flex}.landing-session-row{align-items:center;gap:6px;max-width:680px;display:flex}.landing-session-row:hover .landing-session-delete{opacity:1}.landing-session-item{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:5px;flex:1;align-items:center;gap:10px;min-width:0;padding:9px 12px;transition:background .12s,border-color .12s;display:flex}.landing-session-item:hover{background:var(--surface2);border-color:#ffffff1f}.landing-session-item:hover .landing-recent-arrow{opacity:1;color:var(--text-dim)}.landing-session-delete{width:26px;height:26px;color:var(--text-dim);cursor:pointer;opacity:0;background:0 0;border:1px solid #0000;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .12s,background .12s,color .12s;display:flex}.landing-session-delete:hover{color:#ff6464e6;opacity:1;background:#ff3c3c1f;border-color:#ff3c3c40}.landing-session-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;min-width:0;max-width:220px;font-size:12px;font-weight:600;overflow:hidden}.landing-session-meta{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;gap:6px;min-width:0;font-size:11px;display:flex;overflow:hidden}.landing-video-badge{color:#00d4ff99;white-space:nowrap;align-items:center;gap:3px;font-size:10px;display:inline-flex}.landing-new-analysis-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:1px dashed #ffffff26;border-radius:5px;align-self:flex-start;align-items:center;gap:7px;padding:8px 16px;font-size:12px;transition:all .15s;display:flex}.landing-new-analysis-btn:hover{color:var(--text);border-color:#ffffff4d}.header-save-session-btn{color:#00d4ffb3;letter-spacing:.04em;white-space:nowrap;cursor:pointer;background:#00d4ff14;border:1px solid #00d4ff40;border-radius:5px;flex-shrink:0;align-items:center;gap:6px;height:28px;margin-left:4px;padding:0 11px;font-size:11px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:flex}.header-save-session-btn:hover{color:#00d4fff2;background:#00d4ff24;border-color:#00d4ff73}.header-save-session-btn span{text-overflow:ellipsis;max-width:140px;overflow:hidden}.header-save-session-active{color:#00d4ff73;background:#00d4ff0d;border-color:#00d4ff26}.header-save-session-active:hover{color:#00d4ffbf;background:#00d4ff1a;border-color:#00d4ff4d}.save-session-modal{min-width:320px;max-width:400px}.save-session-body{padding:16px}.save-session-input{box-sizing:border-box;background:var(--surface);border:1px solid var(--border);width:100%;color:var(--text);border-radius:5px;outline:none;padding:8px 10px;font-size:13px;transition:border-color .15s}.save-session-input::placeholder{color:var(--text-muted)}.save-session-input:focus{border-color:#00d4ff80}.save-session-footer{justify-content:flex-end;gap:8px;padding:10px 16px 14px;display:flex}.save-session-cancel{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;padding:6px 14px;font-size:12px;transition:border-color .12s,color .12s}.save-session-cancel:hover{color:var(--text);border-color:#ffffff26}.save-session-submit{color:var(--accent);cursor:pointer;background:#00d4ff26;border:1px solid #00d4ff59;border-radius:4px;padding:6px 18px;font-size:12px;font-weight:600;transition:background .12s,border-color .12s}.save-session-submit:hover:not(:disabled){background:#00d4ff38;border-color:#00d4ff80}.save-session-submit:disabled{opacity:.4;cursor:default}.landing-upload-row{gap:14px;display:flex}.landing-drop-zone{background:var(--surface);cursor:pointer;border:1px dashed #00d4ff40;border-radius:8px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:36px 24px;transition:border-color .15s,background .15s;display:flex}.landing-drop-zone:hover,.landing-drop-active{background:#00d4ff0d;border-color:#00d4ff8c}.landing-drop-ref{border-color:#ffaa0038}.landing-drop-ref:hover,.landing-drop-ref.landing-drop-active{background:#ffaa000d;border-color:#ffaa008c}.landing-drop-icon{color:var(--accent);opacity:.7}.landing-drop-icon-ref{color:#fa0}.landing-drop-label{letter-spacing:.14em;color:var(--accent);font-family:monospace;font-size:12px;font-weight:600}.landing-drop-label-ref{color:#fa0}.landing-drop-hint{color:var(--text-dim);text-align:center;font-size:11px}.landing-preset-divider{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:14px;font-family:monospace;font-size:10px;display:flex}.landing-preset-divider:before,.landing-preset-divider:after{content:"";background:var(--border);flex:1;height:1px}.empty-state{color:var(--text-dim);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:40px 20px;display:flex}.empty-state-icon{color:var(--text-muted);margin-bottom:4px}.empty-state-title{color:var(--text);letter-spacing:.05em;font-size:14px;font-weight:500}.empty-state-desc{color:var(--text-dim);text-align:center;max-width:280px;font-size:12px;line-height:1.5}.empty-state-upload{background:var(--accent);color:#000;letter-spacing:.06em;cursor:pointer;border:none;border-radius:4px;margin-top:8px;padding:7px 18px;font-size:12px;font-weight:600;transition:opacity .15s}.empty-state-upload:hover{opacity:.85}.empty-state-cta{color:var(--text-dim);cursor:pointer;background:0 0;border:1px solid #ffffff24;border-radius:5px;padding:7px 18px;font-size:12px;transition:border-color .15s,color .15s}.empty-state-cta:hover{color:var(--accent);border-color:#00d4ff73}.empty-state-hint{color:var(--text-muted);font-size:11px}.lap-badge-empty .lap-badge-time{color:var(--text-muted)}.loading{height:100vh;color:var(--text-dim);letter-spacing:.1em;flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:12px;display:flex}.loading-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error{color:#f34;justify-content:center;align-items:center;height:100vh;display:flex}.app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;grid-template-columns:1fr auto 1fr;align-items:center;height:52px;padding:0 20px;display:grid}.header-left{justify-content:flex-start;align-items:center;gap:2px;display:flex}.header-home-btn{width:26px;height:26px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.header-home-btn:hover{color:var(--text);background:#ffffff0f}.header-center{justify-content:center;align-items:center;gap:8px;display:flex}.track-select{color:var(--text-dim);letter-spacing:.04em;cursor:pointer;appearance:none;background:0 0;border:none;outline:none;max-width:160px;padding:0;font-family:monospace;font-size:10px}.track-select:hover{color:var(--text)}.track-select option{color:var(--text);background:#1a1d24}.header-selector-sep{color:var(--border);-webkit-user-select:none;user-select:none;flex-shrink:0;font-family:monospace;font-size:10px}.track-selector-trigger{color:var(--text-dim);letter-spacing:.06em;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:5px;align-items:center;gap:6px;padding:4px 8px;font-family:monospace;font-size:10px;transition:all .15s;display:flex}.track-selector-trigger:hover,.track-selector-trigger.open{border-color:var(--border);color:var(--text);background:#ffffff0a}.track-selector-name{text-overflow:ellipsis;max-width:160px;overflow:hidden}.track-selector-chevron{opacity:.5;flex-shrink:0;transition:transform .15s}.track-selector-chevron.rotated{transform:rotate(180deg)}.track-selector-popover{z-index:200;border:1px solid var(--border);background:#1a1d24;border-radius:6px;flex-direction:column;gap:1px;min-width:180px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 24px #00000080}.track-selector-option{color:var(--text-dim);letter-spacing:.05em;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;padding:6px 10px;font-family:monospace;font-size:10px;transition:all .1s;display:flex}.track-selector-option:hover{color:var(--text);background:#ffffff0f}.track-selector-option.active{color:var(--text)}.track-option-dot{background:var(--border);border-radius:50%;flex-shrink:0;width:5px;height:5px}.track-selector-option.active .track-option-dot{background:var(--accent)}.track-option-name{flex:1}.track-option-tag{letter-spacing:.08em;color:#ffc83299;background:#ffc8321f;border:1px solid #ffc83233;border-radius:3px;flex-shrink:0;padding:1px 4px;font-size:8px}.track-option-active-pip{background:var(--accent);opacity:.7;border-radius:50%;flex-shrink:0;width:4px;height:4px}.upload-btn-icon{border:1px solid var(--border);width:22px;height:22px;color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.upload-btn-icon:hover{color:var(--text);border-color:#fff3}.upload-btn-icon.has-file{color:var(--accent);border-color:#00d4ff59}.upload-btn-icon.upload-btn-ref.has-file{color:#fa0;border-color:#ffaa0059}.upload-btn-icon.lap-locked{cursor:default;opacity:.35;border-style:dashed}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:20px}.modal-backdrop{z-index:1000;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-panel{background:var(--surface2);border:1px solid #ffffff1a;border-radius:8px;min-width:300px;max-width:380px;overflow:hidden;box-shadow:0 24px 60px #0009}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:13px 16px 11px;display:flex}.modal-title{letter-spacing:.12em;color:var(--text-dim);font-size:10px;font-weight:700}.modal-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:3px;align-items:center;padding:2px;transition:color .12s;display:flex}.modal-close:hover{color:var(--text)}.modal-section{padding:12px 16px}.modal-section+.modal-section{border-top:1px solid var(--border)}.modal-section-label{letter-spacing:.12em;color:var(--text-muted);margin-bottom:8px;font-size:9px;font-weight:700}.modal-lap-list{flex-direction:column;gap:3px;display:flex}.modal-lap-item{border:1px solid var(--border);color:var(--text);cursor:pointer;letter-spacing:.03em;text-align:left;background:0 0;border-radius:4px;justify-content:space-between;align-items:center;width:100%;padding:8px 10px;font-family:monospace;font-size:12px;transition:background .12s,border-color .12s;display:flex}.modal-lap-item:hover{background:#ffffff0a;border-color:#ffffff26}.modal-lap-item.active{color:var(--accent);background:#00d4ff12;border-color:#00d4ff66}.modal-lap-item.active.ref{color:#fa0;background:#ffaa0012;border-color:#fa06}.modal-lap-check{color:inherit;flex-shrink:0}.modal-uploaded-file{color:var(--accent);background:#00d4ff0f;border:1px solid #00d4ff4d;border-radius:4px;align-items:center;gap:8px;margin-bottom:8px;padding:6px 10px;display:flex}.modal-uploaded-file.ref{color:#fa0;background:#ffaa000f;border-color:#ffaa004d}.modal-uploaded-name{text-overflow:ellipsis;white-space:nowrap;font-family:monospace;font-size:11px;overflow:hidden}.modal-upload-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:1px dashed #ffffff26;border-radius:4px;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:12px;transition:border-color .12s,color .12s;display:flex}.modal-upload-btn:hover{color:var(--text);border-color:#ffffff4d}.modal-library-item{border:1px solid var(--border);border-radius:4px;flex-direction:column;transition:border-color .12s;display:flex;overflow:hidden}.modal-library-item.active{background:#00d4ff12;border-color:#00d4ff66}.modal-library-item.active.ref{background:#ffaa0012;border-color:#fa06}.modal-library-controls{align-items:stretch;display:flex}.modal-library-select{color:var(--text);cursor:pointer;letter-spacing:.03em;text-align:left;background:0 0;border:none;flex:1;justify-content:space-between;align-items:center;min-width:0;padding:8px 10px;font-family:monospace;font-size:12px;transition:background .12s;display:flex}.modal-library-select:hover{background:#ffffff0a}.modal-library-item.active .modal-library-select{color:var(--accent)}.modal-library-item.active.ref .modal-library-select{color:#fa0}.modal-library-delete{border:none;border-left:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;flex-shrink:0;align-items:center;padding:8px 10px;transition:color .12s,background .12s;display:flex}.modal-library-delete:hover{color:#f55;background:#ff55551a}.modal-library-video{border-top:1px solid var(--border);background:#ffffff05;flex-direction:column;gap:5px;padding:7px 10px;display:flex}.modal-video-row{align-items:center;gap:6px;display:flex}.modal-video-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;width:44px;font-size:10px}.modal-video-input{border:1px solid var(--border);color:var(--text);background:#ffffff0a;border-radius:3px;flex:1;min-width:0;padding:3px 7px;font-family:monospace;font-size:11px}.modal-video-input:focus{border-color:#ffaa0080;outline:none}.modal-video-input::placeholder{color:var(--text-muted)}.modal-video-indicator{color:#ffaa00b3;flex-shrink:0;align-items:center;display:flex}.header-controls{justify-content:flex-end;align-items:center;gap:10px;display:flex}.layout-preset-menu{position:relative}.layout-preset-dropdown{background:var(--surface2);border:1px solid var(--border);z-index:300;border-radius:6px;flex-direction:column;gap:1px;min-width:200px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #00000080}.layout-preset-option{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:4px;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 10px;transition:background .1s;display:flex}.layout-preset-option:hover{background:#ffffff0f}.layout-preset-name{color:var(--text);letter-spacing:.06em;font-size:11px;font-weight:600}.layout-preset-desc{color:var(--text-dim);letter-spacing:.02em;font-size:10px}.admin-menu{border-left:1px solid var(--border);margin-left:4px;padding-left:8px}.admin-dropdown{min-width:160px}.admin-dropdown-item{text-align:left;cursor:pointer;color:#e4e4e78c;letter-spacing:.04em;background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;width:100%;padding:7px 10px;font-size:11px;text-decoration:none;transition:background .1s,color .1s;display:flex}.admin-dropdown-item:hover{color:var(--text);background:#ffffff0f}.admin-dropdown-sep{background:var(--border);height:1px;margin:3px 6px}.admin-dropdown-samples{color:var(--text-dim);letter-spacing:.04em;opacity:.5;padding:5px 10px 6px;font-family:monospace;font-size:10px}.video-dropdown{min-width:130px}.video-dropdown-sep{background:var(--border);height:1px;margin:3px 6px}.video-mode-active{color:var(--text)!important;background:#ffffff0f!important}.columns-dropdown{gap:8px;min-width:210px;padding:8px}.columns-section{flex-direction:column;gap:6px;display:flex}.columns-section-label{letter-spacing:.08em;color:var(--text-dim);padding:0 2px;font-size:9px;font-weight:700}.columns-tile-group{gap:4px;display:flex}.columns-tile-btn{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;flex-direction:column;flex:1;align-items:center;gap:5px;padding:7px 6px 6px;transition:background .12s,border-color .12s;display:flex}.columns-tile-btn:hover{background:#ffffff0a;border-color:#ffffff1a}.columns-tile-active{background:#00d4ff0d;border-color:#00d4ff40!important}.columns-tile-label{letter-spacing:.07em;color:var(--text-dim);text-transform:uppercase;font-size:9px;font-weight:700;line-height:1}.columns-tile-active .columns-tile-label{color:var(--accent)}.columns-sep{background:var(--border);flex-shrink:0;height:1px;margin:0}.zone-presets{gap:4px;display:flex}.preset-btn{border:1px solid var(--border);color:var(--text-dim);letter-spacing:.08em;cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-size:11px;font-weight:600;transition:all .15s}.preset-btn:hover{color:var(--text);border-color:#fff3}.preset-btn.active{border-color:var(--accent);color:var(--accent);background:#00d4ff14}.reset-btn{border:1px solid var(--border);width:28px;height:28px;color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:flex}.reset-btn:hover{color:var(--text);border-color:#fff3}.domain-display{color:var(--text-dim);letter-spacing:.04em;border:1px solid var(--border);border-radius:4px;align-items:center;gap:5px;padding:4px 8px;font-family:monospace;font-size:11px;display:flex}.dashboard{flex:1;display:flex;overflow:hidden}.charts-panel{flex-direction:column;flex:1;padding-right:12px;display:flex;overflow:hidden}.charts-scroll{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;overflow:hidden auto}.charts-inner{flex-direction:column;min-width:100%;padding:4px 0;display:flex}.charts-divider{border-bottom:1px solid #ffffff1f;flex-shrink:0;height:8px}.channel-strip-hint{flex-shrink:0;margin-left:auto;line-height:0}.hints-icon-wrap{line-height:0;position:relative}.hints-icon{color:var(--text-muted);opacity:.7;cursor:default;transition:opacity .15s}.hints-icon-wrap:hover .hints-icon{opacity:1}.hints-tooltip{color:#fffc;letter-spacing:.02em;white-space:nowrap;z-index:50;pointer-events:none;background:#222;border:1px solid #ffffff26;border-radius:8px;flex-direction:column;gap:10px;padding:12px 16px;font-size:12px;display:none;position:absolute;top:calc(100% + 6px);right:0}.hints-icon-wrap:hover .hints-tooltip{display:flex}.hint-row{color:#ffffffbf;align-items:center;gap:10px;display:flex}.hint-row svg{opacity:.55;flex-shrink:0}.hint-row-lines{border-top:1px solid #ffffff14;gap:8px;margin-top:2px;padding-top:10px}.hint-line-solid{background:#fff9;border-radius:1px;flex-shrink:0;width:24px;height:2px;display:inline-block}.hint-line-dashed{border-top:2px dashed #fff9;flex-shrink:0;width:24px;height:0;display:inline-block}.chart-wrapper{border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;cursor:crosshair;flex-shrink:0;position:relative}.chart-wrapper,.chart-wrapper :focus{outline:none}.chart-wrapper:last-child{border-bottom:none}.chart-playhead{pointer-events:none;z-index:8;border-left:1px solid #78d7ffd9;width:0;position:absolute;top:0;bottom:0;box-shadow:0 0 4px #78d7ff80}.pedal-ribbon{border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;flex-shrink:0}.pedal-ribbon-stat{color:var(--text-muted);align-items:center;gap:8px;padding:3px 8px 1px;font-family:ui-monospace,monospace;font-size:10px;display:flex}.pedal-ribbon-stat .pr-label{letter-spacing:.08em;color:var(--text-muted);font-weight:700}.pedal-ribbon-stat .pr-toggle{cursor:pointer;letter-spacing:.08em;color:var(--text-muted);background:0 0;border:none;align-items:center;gap:4px;padding:0;font-family:ui-monospace,monospace;font-size:10px;font-weight:700;transition:color .12s;display:inline-flex}.pedal-ribbon-stat .pr-toggle:hover{color:var(--text-dim)}.pedal-ribbon-stat .pr-me{color:#00d4ff}.pedal-ribbon-stat .pr-ref{color:#fa0}.pedal-ribbon-stat .pr-sep{opacity:.4}.pedal-ribbon-stat .pr-legend{color:var(--text-muted);align-items:center;gap:4px;margin-left:auto;display:inline-flex}.pedal-ribbon-stat .pr-legend i{border-radius:2px;width:8px;height:8px;margin-left:6px;display:inline-block}.pedal-ribbon-canvas{cursor:crosshair;position:relative}.pedal-ribbon-sel{pointer-events:none;z-index:7;background:#78d7ff1f;border-left:1px solid #78d7ff80;border-right:1px solid #78d7ff80;position:absolute;top:0;bottom:0}.channel-label{z-index:10;pointer-events:none;align-items:baseline;gap:6px;display:flex;position:absolute;top:6px;left:58px}.channel-name{letter-spacing:.1em;text-transform:uppercase;opacity:.8;font-size:10px;font-weight:700}.channel-value{letter-spacing:.04em;font-family:monospace;font-size:11px;font-weight:600}.channel-value-floating{border:1px solid var(--border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0b0ebf;border-radius:3px;padding:1px 5px}.sidebar{border-left:1px solid var(--border);background:var(--surface);flex-direction:column;flex-shrink:0;transition:width .2s,border-color .2s;display:flex;position:relative;overflow:hidden}.sidebar-top{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;min-height:0;overflow:hidden auto}.sidebar-media{flex-direction:column;flex:1;min-height:0;display:flex;container-type:size}.sidebar-track-section{flex-direction:column;flex:1;min-height:50cqh;display:flex}.sidebar-videos-section{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex}.sidebar-video-slot{aspect-ratio:16/9;background:#000;width:min(100%,44.4444cqh);position:relative}.sidebar-video-slot+.sidebar-video-slot{border-top:1px solid var(--border)}@container (width>=600px){.sidebar-videos-section{flex-direction:row}.sidebar-video-slot{flex:1;width:auto;min-width:0}.sidebar-video-slot+.sidebar-video-slot{border-top:none;border-left:1px solid var(--border)}}.sidebar-video-slot>div{padding:0!important;position:absolute!important;inset:0!important}.sidebar-video-label{z-index:2;letter-spacing:.1em;color:#ffffff73;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:8px;font-weight:700;position:absolute;top:6px;left:8px}.sidebar-video-slot iframe{border:none;display:block}.sidebar-video-slot-empty{cursor:default}.sidebar-video-empty-content{flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:12px;display:flex;position:absolute;inset:0}.sidebar-video-empty-icon{color:#ffffff1a;flex-shrink:0}.sidebar-video-empty-row{gap:3px;width:100%;max-width:180px;display:flex}.sidebar-video-empty-input{color:#ffffffa6;background:#ffffff12;border:1px solid #ffffff1f;border-radius:3px;outline:none;flex:1;min-width:0;padding:3px 6px;font-size:10px}.sidebar-video-empty-input::placeholder{color:#ffffff2e}.sidebar-video-empty-input:focus{color:#fff;border-color:#ffffff47}.sidebar-video-empty-add{color:#ffffff8c;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1f;border-radius:3px;padding:1px 7px 2px;font-size:15px;line-height:1;transition:background .1s,color .1s}.sidebar-video-empty-add:hover:not(:disabled){color:#fff;background:#ffffff29}.sidebar-video-empty-add:disabled{opacity:.28;cursor:default}.sidebar-video-user-remove{z-index:3;color:#ffffff40;cursor:pointer;background:0 0;border:none;padding:2px 3px;font-size:15px;line-height:1;transition:color .1s;position:absolute;top:5px;right:7px}.sidebar-video-user-remove:hover{color:#dc5050e6}.sidebar-video-gg-link{color:#ffffff38;border-top:1px solid var(--border);flex-shrink:0;align-items:center;gap:4px;padding:6px 10px;font-size:10px;text-decoration:none;transition:color .1s;display:flex}.sidebar-video-gg-link:hover{color:#ffffff8c}.sidebar.sidebar-collapsed{border-left-color:#0000}.sidebar.sidebar-left{border-left:none;border-right:1px solid var(--border)}.sidebar.sidebar-left.sidebar-collapsed{border-right-color:#0000}.sidebar-toggle-btn{border:1px solid var(--border);width:28px;height:28px;color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,border-color .15s;display:flex;position:relative}.sidebar-toggle-panels-dot:after{content:"";background:var(--accent);opacity:.65;pointer-events:none;border-radius:50%;width:4px;height:4px;position:absolute;top:4px;right:4px}.sidebar-toggle-btn:hover{color:var(--text);border-color:#fff3}.sidebar-toggle-active{color:var(--text)!important;border-color:#fff3!important}.sidebar-resize-handle{cursor:ew-resize;z-index:10;width:4px;transition:background .15s;position:absolute;top:0;bottom:0;left:0}.sidebar.sidebar-left .sidebar-resize-handle{left:auto;right:0}.sidebar-resize-handle:hover,.sidebar-resize-handle:active{background:#00d4ff40}.sidebar-section{border-bottom:1px solid var(--border);padding:14px 16px}.sidebar-label{letter-spacing:.14em;color:var(--text-muted);align-items:center;gap:8px;margin-bottom:10px;font-size:9px;font-weight:700;display:flex}.sidebar-label-toggle{cursor:pointer;text-align:left;width:100%;text-transform:inherit;font:inherit;letter-spacing:.14em;color:var(--text-muted);background:0 0;border:none;padding:0;font-size:9px;font-weight:700;transition:color .15s}.sidebar-label-toggle:hover{color:var(--text)}.section-chevron{transition:transform .15s}.section-chevron.collapsed{transform:rotate(-90deg)}.channels-show-all{letter-spacing:.08em;color:var(--text-muted);border:1px solid var(--border);cursor:pointer;text-transform:uppercase;background:0 0;border-radius:3px;margin-left:auto;padding:1px 5px;font-size:9px;font-weight:600;transition:color .15s,border-color .15s}.channels-show-all:hover{color:var(--text);border-color:var(--text-muted)}.video-view-toggle{gap:2px;margin-left:auto;display:flex}.video-view-btn{letter-spacing:.1em;color:var(--text-muted);border:1px solid var(--border);cursor:pointer;text-transform:uppercase;background:0 0;border-radius:3px;padding:1px 6px;font-size:9px;font-weight:700;transition:color .15s,border-color .15s,background .15s}.video-view-btn:hover{color:var(--text);border-color:var(--text-muted)}.video-view-btn.active{color:var(--accent,#e8f0fe);border-color:var(--accent,#e8f0fe);background:#e8f0fe14}.sidebar-video{background:#000;border-radius:6px;width:100%;position:relative;overflow:hidden}.sidebar-video iframe{border:none;display:block}.video-calib-container{margin-top:6px}.calib-toggle{border:1px solid var(--border);width:100%;color:var(--text-muted);letter-spacing:.12em;cursor:pointer;text-align:left;background:0 0;border-radius:4px;padding:4px 8px;font-size:9px;font-weight:700;transition:color .15s,border-color .15s}.calib-toggle:hover{color:var(--text);border-color:#ffffff26}.calib-panel{flex-direction:column;gap:8px;margin-top:6px;display:flex}.video-calib{gap:8px;display:flex}.calib-field{flex:1;align-items:center;gap:4px;display:flex}.calib-label{letter-spacing:.12em;color:var(--text-muted);white-space:nowrap;font-size:9px;font-weight:700}.calib-input{background:var(--surface2);border:1px solid var(--border);min-width:0;color:var(--text);text-align:right;-moz-appearance:textfield;border-radius:3px;flex:1;padding:2px 4px;font-family:monospace;font-size:11px}.calib-input::-webkit-outer-spin-button{-webkit-appearance:none}.calib-input::-webkit-inner-spin-button{-webkit-appearance:none}.calib-input:focus{border-color:var(--accent);outline:none}.calib-unit{color:var(--text-muted);white-space:nowrap;font-size:9px}.calib-divider{letter-spacing:.12em;color:var(--text-muted);text-transform:uppercase;border-top:1px solid var(--border);margin-top:2px;padding-top:6px;font-size:9px;font-weight:700}.calib-hint{color:var(--text-muted);margin-top:-4px;font-size:9px;line-height:1.5}.calib-anchor-block{flex-direction:column;gap:4px;display:flex}.calib-anchor-label{letter-spacing:.12em;color:var(--text-muted);font-size:9px;font-weight:700}.calib-select{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;border-radius:3px;padding:3px 5px;font-family:monospace;font-size:10px}.calib-select:focus{border-color:var(--accent);outline:none}.calib-anchor-actions{align-items:center;gap:5px;display:flex}.calib-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text-muted);letter-spacing:.08em;cursor:pointer;white-space:nowrap;border-radius:3px;padding:2px 7px;font-size:9px;font-weight:700;transition:color .15s,border-color .15s}.calib-btn:hover:not(:disabled){color:var(--text);border-color:#fff3}.calib-btn:disabled{opacity:.35;cursor:default}.calib-btn-mark{color:var(--accent);border-color:#00d4ff4d}.calib-btn-mark:hover:not(:disabled){border-color:var(--accent)}.calib-mark-time{color:var(--text);min-width:40px;margin-left:auto;font-family:monospace;font-size:10px}.calib-apply-btn{width:100%;color:var(--accent);letter-spacing:.1em;cursor:pointer;background:#00d4ff14;border:1px solid #00d4ff4d;border-radius:4px;padding:5px 0;font-size:10px;font-weight:700;transition:background .15s,border-color .15s}.calib-apply-btn:hover:not(:disabled){border-color:var(--accent);background:#00d4ff26}.calib-apply-btn:disabled{opacity:.3;cursor:default}.track-map{background:var(--surface2);width:100%;height:100%;position:relative;overflow:hidden}.track-map-minimap{aspect-ratio:320/220;pointer-events:none;border-radius:3px;width:28%;position:absolute;bottom:8px;left:8px;overflow:hidden}.gg-diagram{flex-direction:column;gap:8px;display:flex}.gg-canvas-wrap{aspect-ratio:1;background:var(--surface2);justify-content:center;align-items:center;width:100%;display:flex}.gg-stats{color:var(--text-muted);letter-spacing:.02em;justify-content:space-between;font-family:ui-monospace,monospace;font-size:10px;display:flex}.gg-stats b{margin-right:3px;font-weight:700}.gg-legend-keys{color:var(--text-muted);align-items:center;gap:12px;font-family:ui-monospace,monospace;font-size:10px;display:flex}.gg-legend-keys>span{align-items:center;gap:5px;display:inline-flex}.gg-dot{border-radius:50%;width:7px;height:7px;display:inline-block}.gg-help-toggle{cursor:pointer;font:inherit;color:var(--text-muted);background:0 0;border:none;align-items:center;gap:4px;margin-left:auto;padding:0;font-size:10px;transition:color .15s;display:inline-flex}.gg-help-toggle:hover{color:var(--text)}.gg-help-text{color:var(--text-muted);margin:0;font-size:10px;line-height:1.5}.gg-help-text b{color:var(--text);font-weight:600}.driver-inputs{grid-template-columns:1fr 1fr 1fr 1fr;height:100%;min-height:0;display:grid}.di-col{border-right:1px solid var(--border);flex-direction:column;align-items:center;gap:5px;min-width:0;min-height:0;padding:2px 6px 4px;display:flex;overflow:hidden}.di-col-last{border-right:none}.di-col-label{letter-spacing:.14em;color:var(--text-muted);flex-shrink:0;font-family:ui-monospace,monospace;font-size:8px;font-weight:700}.di-bars{flex:1;align-items:stretch;gap:4px;width:100%;min-height:0;display:flex}.di-bar{flex-direction:column;flex:1;align-items:center;gap:4px;min-height:0;display:flex}.di-bar-track{background:#ffffff12;border-radius:3px;flex:1;width:100%;min-height:40px;position:relative;overflow:hidden}.di-bar-fill{border-radius:3px 3px 0 0;transition:height 60ms ease-out;position:absolute;bottom:0;left:0;right:0}.di-bar-val{flex-shrink:0;font-family:ui-monospace,monospace;font-size:9px;font-weight:700;line-height:1}.di-gear-body{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-height:0;display:flex}.di-gear-num{letter-spacing:-.03em;font-family:ui-monospace,monospace;font-size:52px;font-weight:800;line-height:1}.di-gear-ref{color:#fa0;opacity:.75;flex-shrink:0;font-family:ui-monospace,monospace;font-size:9px}.di-steer-body{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;width:100%;min-height:0;display:flex}.di-steer-svg{width:100%;max-width:110px;height:auto}.di-steer-deg{color:var(--text-muted);flex-shrink:0;font-family:ui-monospace,monospace;font-size:9px;font-weight:600;line-height:1}.track-map svg{width:100%;height:100%}.track-map-static{flex:1;width:100%;min-height:0;position:relative;overflow:hidden}.track-map-btn{z-index:2;border:1px solid var(--border);width:22px;height:22px;color:var(--text-dim);cursor:pointer;background:#0a0b0eb3;border-radius:3px;justify-content:center;align-items:center;transition:color .15s,border-color .15s;display:flex;position:absolute;top:6px;right:6px}.track-map-btn:hover{color:var(--text);border-color:#fff3}.track-map-btn.map-active{color:var(--accent);background:#00d4ff14;border-color:#00d4ff4d}.track-map-attribution{color:#ffffff59;pointer-events:none;letter-spacing:.02em;font-family:sans-serif;font-size:7px;position:absolute;bottom:3px;right:4px}.track-map-placeholder{aspect-ratio:3/2;border:1px dashed var(--border);width:100%;color:var(--text-muted);letter-spacing:.06em;border-radius:6px;justify-content:space-between;align-items:center;padding:0 10px;font-size:10px;display:flex;position:relative}.track-map-floating{z-index:1000;background:var(--surface);border:1px solid #ffffff24;border-radius:8px;flex-direction:column;min-width:220px;min-height:180px;display:flex;position:fixed;overflow:hidden;box-shadow:0 16px 48px #0009,0 0 0 1px #ffffff0a}.floating-header{background:var(--surface2);border-bottom:1px solid var(--border);cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;gap:7px;height:32px;padding:0 10px;display:flex}.floating-header:active{cursor:grabbing}.grip-icon{color:var(--text-muted);flex-shrink:0}.floating-header span{letter-spacing:.14em;color:var(--text-muted);flex:1;font-size:9px;font-weight:700}.floating-close{width:20px;height:20px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.floating-close:hover{color:var(--text);border-color:var(--border);background:#ffffff0a}.floating-body{flex:1;padding:6px;overflow:hidden}.floating-resize-handle{cursor:nwse-resize;background:linear-gradient(135deg,#0000 50%,#ffffff26 50%);border-radius:0 0 7px;width:16px;height:16px;position:absolute;bottom:0;right:0}.channel-legend{flex-direction:column;gap:7px;display:flex}.legend-item{align-items:center;gap:7px;display:flex}.legend-item-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:3px;margin:-2px -4px;padding:2px 4px;transition:opacity .15s,background .15s}.legend-item-toggle:hover{background:#ffffff0d}.legend-item-hidden{opacity:.35}.legend-dot{border:1.5px solid #0000;border-radius:50%;flex-shrink:0;width:8px;height:8px}.legend-name{color:var(--text);opacity:.7;flex:1;font-size:11px}.legend-unit{color:var(--text-muted);font-family:monospace;font-size:10px}.cursor-stats{flex-direction:column;gap:6px;display:flex}.cursor-pct{color:var(--accent);letter-spacing:-.02em;margin-bottom:4px;font-family:monospace;font-size:18px;font-weight:700}.cursor-row{justify-content:space-between;align-items:center;font-size:11px;display:flex}.cursor-val{color:var(--text);letter-spacing:.02em;font-family:monospace;font-weight:600}.lap-badges{align-items:center;gap:6px;margin-left:4px;display:flex}.lap-badge-group{align-items:center;gap:4px;display:flex}.lap-badge{background:0 0;border:none;align-items:center;gap:5px;padding:0;display:flex}.lap-badge-label{letter-spacing:.12em;opacity:.45;font-size:8px;font-weight:700}.lap-badge-sep{opacity:.2;font-size:10px}.lap-badge-time{letter-spacing:.03em;font-family:monospace;font-size:15px;font-weight:700}.lap-badge.my-lap{color:var(--accent)}.lap-badge.ref-lap{color:#fa0}.delta-badge{letter-spacing:.03em;background:0 0;border:none;padding:0;font-family:monospace;font-size:15px;font-weight:700}.delta-badge.delta-faster{color:#0f8}.delta-badge.delta-slower{color:#f34}.channel-value-ref{opacity:.4;letter-spacing:.04em;margin-left:4px;font-family:monospace;font-size:10px}.abs-badge{letter-spacing:.1em;opacity:1;vertical-align:middle;margin-left:4px;font-size:8px;font-weight:700}.abs-badge-ref{opacity:.6}.delta-legend{letter-spacing:.06em;opacity:.7;gap:8px;margin-left:8px;font-size:9px;display:flex}.cursor-header{letter-spacing:.1em;color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:2px;padding-bottom:4px;font-size:9px;font-weight:700;display:flex}.cursor-col-my{text-align:right;min-width:48px;margin-left:auto}.cursor-col-ref{text-align:right;opacity:.5;min-width:48px}.cursor-delta-row{border-top:1px solid var(--border);color:var(--text-dim);justify-content:space-between;align-items:center;margin-top:2px;padding-top:6px;font-size:11px;display:flex}.charts-deltas{flex-shrink:0;width:100%;overflow:hidden}.lap-controls-bar{border-top:1px solid var(--border);background:var(--surface);flex-direction:column;flex-shrink:0;gap:0;padding:12px 20px 8px;display:flex}.lap-controls-bottom{align-items:center;gap:8px;padding-top:4px;display:flex}.lap-controls-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.lap-controls-hint{color:var(--text-dim);letter-spacing:.04em;font-size:10px}.lap-controls-hint kbd{opacity:.6;border:1px solid;border-radius:3px;padding:1px 4px;font-family:inherit;font-size:9px;display:inline-block}.range-play-active{color:var(--accent,#e8e)}.lap-preset-btn{border:1px solid var(--border);height:40px;color:var(--text-dim);letter-spacing:.1em;cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;flex:none;padding:0 16px;font-size:11px;font-weight:700;transition:all .15s}.lap-preset-btn:hover{color:var(--text);background:#ffffff08;border-color:#fff3}.lap-preset-btn.active{border-color:var(--accent);color:var(--accent);background:#00d4ff14}.lap-reset-btn{border:1px solid var(--border);width:20px;height:20px;color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:flex}.lap-reset-btn:hover{color:var(--text);border-color:#fff3}.lap-domain-display{height:48px;color:var(--text-dim);letter-spacing:.04em;border:1px solid var(--border);white-space:nowrap;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;padding:0 14px;font-family:monospace;font-size:12px;display:flex}.channel-strip{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:6px 16px 7px;display:flex}.channel-strip-scroll{scrollbar-width:none;flex:1;align-items:center;gap:5px;min-width:0;display:flex;overflow-x:auto}.channel-strip-scroll::-webkit-scrollbar{display:none}.channel-strip-group-label{letter-spacing:.1em;color:var(--text-muted);text-transform:uppercase;white-space:nowrap;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:0 1px;font-size:8px;font-weight:700}.channel-strip-group-label-mid{border-left:1px solid var(--border);margin-left:4px;padding-left:8px}.channel-chip{border:1px solid var(--border);color:var(--text-dim);letter-spacing:.06em;cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;align-items:center;gap:5px;padding:3px 8px;font-size:10px;font-weight:600;line-height:1;transition:opacity .15s,background .15s,border-color .15s,color .15s;display:flex}.channel-chip:hover{opacity:.85}.channel-chip-hidden{opacity:.28;color:var(--text-muted)!important;background:0 0!important;border-color:#0000!important}.channel-chip-hidden:hover{opacity:.55}.channel-chip-hidden .chip-label{text-decoration:line-through}.chip-dot{border:1.5px solid;border-radius:50%;flex-shrink:0;width:6px;height:6px}.chip-label{line-height:1}.channel-strip-reset{color:var(--accent);letter-spacing:.06em;cursor:pointer;white-space:nowrap;background:#00d4ff12;border:1px solid #00d4ff4d;border-radius:10px;flex-shrink:0;padding:3px 8px;font-size:9px;font-weight:700;line-height:1;transition:background .12s,border-color .12s}.channel-strip-reset:hover{background:#00d4ff24;border-color:#00d4ff8c}.u-wrap{width:100%}.u-over{cursor:crosshair!important}.u-cursor-x,.u-cursor-y{display:none!important}.u-select{background:#ffffff0a!important;border:1px solid #ffffff26!important}.rs-wrap{cursor:crosshair;-webkit-user-select:none;user-select:none;flex-shrink:0;width:100%;height:52px;position:relative}.rs-track{pointer-events:none;background:#ffffff12;border-radius:2px;height:3px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.rs-playhead{pointer-events:none;z-index:4;border-left:1px solid #78d7ffd9;width:0;position:absolute;top:4px;bottom:4px;box-shadow:0 0 4px #78d7ff80}.rs-fill{cursor:grab;z-index:1;background:#00d4ff1f;border-top:1px solid #00d4ff4d;border-bottom:1px solid #00d4ff4d;position:absolute;top:0;bottom:0}.rs-fill:active{cursor:grabbing}.rs-handle{background:var(--accent);cursor:ew-resize;z-index:3;border-radius:2px;width:4px;transition:box-shadow .1s;position:absolute;top:0;bottom:0;transform:translate(-50%);box-shadow:0 0 0 1px #00d4ff59,0 0 8px #00d4ff40}.rs-handle:hover{box-shadow:0 0 0 2px #00d4ff80,0 0 12px #00d4ff66}.rs-handle-km{letter-spacing:.04em;color:var(--accent);white-space:nowrap;pointer-events:none;opacity:.8;font-family:monospace;font-size:9px;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%)}.rs-tick{pointer-events:none;z-index:0;background:#ffffff2e;width:1px;height:14px;position:absolute;top:50%;transform:translate(-50%,-50%)}.rs-sector-label{letter-spacing:.1em;color:#ffffff2e;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:9px;position:absolute;top:calc(50% + 10px);transform:translate(-50%)}.rs-sector{cursor:pointer;z-index:0;background:#ffffff08;border-left:1px solid #ffffff1f;border-right:1px solid #ffffff1f;flex-direction:column;justify-content:space-between;align-items:center;padding:4px 0 3px;transition:background .1s;display:flex;position:absolute;top:0;bottom:0}.rs-sector:hover{background:#00d4ff12}.rs-sector-active{background:#00d4ff1f;border-color:#00d4ff4d}.rs-sector-active:hover{background:#00d4ff29}.rs-sector-name{letter-spacing:.08em;color:#ffffff4d;pointer-events:none;-webkit-user-select:none;user-select:none;text-transform:uppercase;font-family:monospace;font-size:9px}.rs-sector-active .rs-sector-name{color:var(--accent);opacity:.8}.rs-sector-delta{letter-spacing:.04em;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.9;font-family:monospace;font-size:9px}.rs-sector-delta.faster{color:#4ade80}.rs-sector-delta.slower{color:#f87171}.rs-mode-btn{border:1px solid var(--border);width:20px;height:20px;color:var(--text-dim);letter-spacing:.08em;cursor:pointer;background:0 0;border-radius:4px;font-family:monospace;font-size:10px;font-weight:700;transition:all .12s}.rs-mode-btn:hover{color:var(--text);background:#ffffff0a}.rs-turn{background:#ffffff05;border-color:#ffffff2e;justify-content:flex-end;padding-bottom:5px}.rs-turn:hover{background:#00d4ff17}.rs-turn.rs-sector-active{background:#00d4ff24;border-color:#00d4ff66}.rs-turn .rs-sector-name{white-space:nowrap;text-overflow:ellipsis;text-align:center;max-width:100%;padding:0 2px;font-size:8px;overflow:hidden}.measure-bar{letter-spacing:.04em;background:#fbbf240f;border-bottom:1px solid #fbbf2433;flex-shrink:0;align-items:center;gap:8px;padding:4px 16px;font-family:monospace;font-size:10px;display:flex}.measure-dist{color:#fbbf24;letter-spacing:.06em;font-weight:700}.measure-sep{color:var(--text-muted)}.measure-lap{color:var(--text-dim)}.measure-delta{font-weight:700}.measure-faster{color:#4ade80}.measure-slower{color:#f87171}.measure-waiting{color:var(--text-muted);font-style:italic}.measure-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0 2px;font-size:14px;line-height:1;transition:color .15s}.measure-clear:hover{color:var(--text)}.notes-panel{background:var(--surface);flex-direction:column;flex-shrink:0;transition:width .2s,border-color .2s;display:flex;position:relative;overflow:hidden}.notes-panel.notes-panel-left{border-right:1px solid var(--border)}.notes-panel.notes-panel-right{border-left:1px solid var(--border)}.notes-panel.notes-panel-collapsed{border-color:#0000}.notes-panel-inner{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-direction:column;flex:1;gap:0;min-height:0;padding:14px 16px;display:flex;overflow:hidden auto}.notes-panel-inner .sidebar-label{margin-bottom:10px}.notes-panel-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.notes-panel-header .sidebar-label{margin-bottom:0}.notes-add-btn{color:#ffffff4d;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:4px;align-items:center;gap:3px;margin-bottom:10px;padding:3px 7px;font-family:monospace;font-size:9px;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.notes-add-btn:hover:not(:disabled){color:#ffffff8c;background:#ffffff12;border-color:#fff3}.notes-add-btn:disabled{opacity:.35;cursor:default}.notes-panel-inner .annotations-list{flex:1}.notes-panel-resize-handle{cursor:ew-resize;z-index:10;width:4px;transition:background .15s;position:absolute;top:0;bottom:0}.notes-panel.notes-panel-left .notes-panel-resize-handle{left:auto;right:0}.notes-panel.notes-panel-right .notes-panel-resize-handle{left:0;right:auto}.notes-panel-resize-handle:hover,.notes-panel-resize-handle:active{background:#00d4ff40}.annotations-empty{color:var(--text-muted);letter-spacing:.04em;text-align:center;padding:8px 4px;font-family:monospace;font-size:10px;line-height:1.6}.annotations-no-session{color:#ffffff2e}.annotations-list{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-direction:column;gap:5px;display:flex;overflow-y:auto}.annotation-item{border:1px solid var(--border);background:#ffffff06;border-radius:4px;flex-direction:column;gap:4px;padding:6px 8px;display:flex}.annotation-item.annotation-pinned{background:#fbbf2412;border-color:#fbbf2499}.annotation-header{align-items:center;gap:5px;display:flex}.annotation-jump{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:3px;flex:1;align-items:center;gap:5px;min-width:0;margin:-2px -3px;padding:2px 3px;transition:background .15s;display:flex}.annotation-jump:hover{background:#fbbf241a}.annotation-jump:hover .annotation-pct{color:#fbbf24}.annotation-num{color:#fbbf24;background:#fbbf2426;border:1px solid #fbbf2459;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-family:monospace;font-size:8px;font-weight:700;display:flex}.annotation-pct{color:#fbbf24b3;letter-spacing:.04em;flex:1;font-family:monospace;font-size:9px}.annotation-delete{width:18px;height:18px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:color .15s,background .15s;display:flex}.annotation-delete:hover{color:#f34;background:#ff33441f}.annotation-text{border:none;border-top:1px solid var(--border);width:100%;color:var(--text);resize:none;field-sizing:content;background:0 0;outline:none;min-height:34px;max-height:240px;padding:5px 0 0;font-family:-apple-system,BlinkMacSystemFont,Inter,sans-serif;font-size:10px;line-height:1.5;overflow:hidden}.annotation-text::placeholder{color:var(--text-muted)}.calibrate-page{background:var(--bg);height:100vh;color:var(--text);flex-direction:column;display:flex}.calibrate-back-btn{letter-spacing:.06em;color:var(--text-dim);cursor:pointer;background:0 0;border:none;align-items:center;gap:2px;padding:0;font-family:inherit;font-size:10px;display:flex}.calibrate-back-btn:hover{color:var(--text)}.calibrate-title{letter-spacing:.1em;color:var(--text-dim);font-size:10px}.calibrate-body{flex:1;padding:16px;overflow-y:auto}.calibrate-no-video{color:var(--text-dim);padding:32px 0;font-size:12px}.calibrate-layout{grid-template-columns:1fr 320px;align-items:start;gap:16px;max-width:1100px;display:grid}.calibrate-player-wrap{background:#000;border-radius:4px;overflow:hidden}.calibrate-panels{flex-direction:column;gap:8px;display:flex}.calib-panel-title{letter-spacing:.08em;color:var(--text-dim);margin-bottom:10px;font-size:9px}.calib-output-row{align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.calib-output-code{color:var(--accent);white-space:pre-wrap;word-break:break-all;background:#ffffff0a;border-radius:3px;flex:1;margin:0;padding:6px 8px;font-family:monospace;font-size:11px}.calib-copy-btn{letter-spacing:.04em;border:1px solid var(--border);color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border-radius:3px;flex-shrink:0;padding:4px 8px;font-family:inherit;font-size:10px}.calib-copy-btn:hover{color:var(--text);border-color:#fff3}.turns-layout{grid-template-columns:auto 340px;align-items:start;gap:16px;max-width:1100px;display:grid}.turns-map-wrap{border:1px solid var(--border);background:#ffffff05;border-radius:4px;padding:8px}.turns-map-svg{width:100%;height:auto;display:block}.turns-list{flex-direction:column;gap:3px;display:flex}.turns-row{cursor:pointer;border:1px solid #0000;border-radius:3px;align-items:center;gap:5px;padding:5px 6px;display:flex}.turns-row:hover{background:#ffffff0a}.turns-row-selected{border-color:var(--border);background:#ffffff0d}.turns-color-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.turns-label-input{min-width:0;color:var(--text);background:0 0;border:none;border-bottom:1px solid #0000;outline:none;flex:1;padding:1px 2px;font-family:inherit;font-size:11px}.turns-label-input:focus{border-bottom-color:var(--accent)}.turns-range-input{width:56px;color:var(--text);text-align:right;-moz-appearance:textfield;background:#ffffff0a;border:1px solid #0000;border-radius:2px;outline:none;padding:2px 4px;font-family:monospace;font-size:10px}.turns-range-input::-webkit-outer-spin-button{-webkit-appearance:none}.turns-range-input::-webkit-inner-spin-button{-webkit-appearance:none}.turns-range-input:focus{border-color:var(--accent);background:#00d4ff0f}.turns-range-sep{color:var(--text-dim);flex-shrink:0;font-size:10px}.turns-delete-btn{color:var(--text-dim);cursor:pointer;opacity:0;background:0 0;border:none;flex-shrink:0;align-items:center;padding:2px;transition:opacity .1s;display:flex}.turns-row:hover .turns-delete-btn{opacity:1}.turns-delete-btn:hover{color:#ff6b6b}.turns-add-btn{border:1px dashed var(--border);color:var(--text-dim);letter-spacing:.04em;cursor:pointer;background:0 0;border-radius:3px;justify-content:center;align-items:center;gap:5px;width:100%;margin-top:4px;padding:5px 8px;font-family:inherit;font-size:10px;display:flex}.turns-add-btn:hover{color:var(--text);border-color:#fff3}@media (width<=768px){html,body,#root{overflow:hidden}.header{grid-template-rows:auto auto;grid-template-columns:1fr auto;gap:4px 8px;height:auto;padding:8px 12px}.header-left{grid-area:1/1}.header-controls{grid-area:1/2;gap:6px}.header-center{flex-wrap:wrap;grid-area:2/1/auto/-1;justify-content:flex-start}.dashboard{flex-direction:column}.sidebar,.sidebar.sidebar-left{border-bottom:1px solid var(--border);flex-shrink:0;height:160px;transition:height .2s;border-left:none!important;border-right:none!important;width:100%!important}.sidebar.sidebar-collapsed{border-bottom-color:#0000;height:0!important}.sidebar-resize-handle{display:none}.charts-panel{padding-right:0}.channel-strip{gap:6px;padding:5px 12px}.channel-strip-scroll{-webkit-overflow-scrolling:touch}.channel-strip-reset,.channel-strip-hint,.lap-controls-hint{display:none}.notes-panel{display:none!important}}.drop-overlay{z-index:2000;pointer-events:all;display:flex;position:fixed;inset:0}.drop-zone{background:#000000b8;border:2px dashed #ffffff1f;flex:1;justify-content:center;align-items:center;transition:background .12s,border-color .12s;display:flex}.drop-zone+.drop-zone{border-left:1px solid #ffffff0f}.drop-zone-my.drop-zone-active{border-color:var(--accent);background:#00d4ff1f}.drop-zone-ref.drop-zone-active{background:#b478ff1f;border-color:#b478ff}.drop-zone-label{letter-spacing:.14em;color:#ffffff40;pointer-events:none;font-size:11px;font-weight:700;transition:color .12s}.drop-zone-active .drop-zone-label{color:var(--text)}.admin-table-wrap{padding:0 16px 32px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;color:var(--text);font-size:11px}.admin-table th{text-align:left;letter-spacing:.1em;color:var(--text-dim);border-bottom:1px solid var(--border);white-space:nowrap;padding:6px 12px;font-size:9px}.admin-row td{vertical-align:top;border-bottom:1px solid #ffffff0a;padding:7px 12px}.admin-row-wip td{opacity:.5}.admin-track-link{color:var(--text);font-weight:500;text-decoration:none}.admin-track-link:hover{color:var(--accent)}.admin-wip-badge{letter-spacing:.08em;color:#ffc800b3;background:#ffc80026;border:1px solid #ffc80040;border-radius:3px;margin-left:6px;padding:1px 5px;font-size:8px;font-weight:700;display:inline-block}.admin-missing{color:var(--text-dim);opacity:.4}.admin-count{font-variant-numeric:tabular-nums}.admin-td-mono{white-space:nowrap;font-family:monospace;font-size:10px}.admin-tag-list{color:#e4e4e7b3;font-size:10px}.admin-actions{flex-wrap:wrap;gap:4px;display:flex}.admin-action-btn{letter-spacing:.04em;color:#e4e4e78c;border:1px solid var(--border);white-space:nowrap;background:#ffffff0d;border-radius:3px;align-items:center;gap:4px;padding:3px 7px;font-size:10px;text-decoration:none;transition:background .1s,color .1s;display:inline-flex}.admin-action-btn:hover{color:var(--text);background:#ffffff1a}.admin-backup-section{border-top:1px solid var(--border);margin-top:24px;padding:16px 0}.admin-backup-title{letter-spacing:.08em;color:var(--text-muted);margin-bottom:10px;font-size:10px;font-weight:600}.admin-backup-row{align-items:center;gap:8px;display:flex}.admin-backup-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#ffffff0f;border-radius:4px;align-items:center;gap:6px;padding:5px 10px;font-size:11px;transition:background .15s;display:flex}.admin-backup-btn:hover:not(:disabled){background:#ffffff1f}.admin-backup-btn:disabled{opacity:.4;cursor:not-allowed}.admin-backup-status{color:var(--text-muted);margin-top:8px;font-size:11px}.uplot,.uplot *,.uplot :before,.uplot :after{box-sizing:border-box}.uplot{width:min-content;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{-webkit-user-select:none;user-select:none;position:relative}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{width:100%;height:100%;display:block;position:relative}.u-axis{position:absolute}.u-legend{text-align:center;margin:auto;font-size:14px}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{pointer-events:none;background:#00000012;position:absolute}.u-cursor-x,.u-cursor-y{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.u-hz .u-cursor-x,.u-vt .u-cursor-y{border-right:1px dashed #607d8b;height:100%}.u-hz .u-cursor-y,.u-vt .u-cursor-x{border-bottom:1px dashed #607d8b;width:100%}.u-cursor-pt{pointer-events:none;will-change:transform;border:0 solid;border-radius:50%;position:absolute;top:0;left:0;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}
