:root{color-scheme:dark;font-family:Inter,system-ui,sans-serif;background:#090b10;color:#eef2ff}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100%}body{overflow:hidden}.app-shell{display:grid;grid-template-columns:340px 1fr;width:100%;height:100%;background:#090b10}.hud{display:flex;flex-direction:column;gap:14px;padding:18px;background:#0d1016f7;border-right:1px solid rgba(255,255,255,.08);overflow-y:auto}.hud h1{margin:0 0 6px;font-size:1.1rem}.hud p{margin:0;color:#b7bfd8;line-height:1.4}.hud-section{display:flex;flex-direction:column;gap:10px;padding:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:12px}.controls-grid{display:grid;grid-template-columns:1fr}.controls-row{display:grid;grid-template-columns:1fr auto;gap:6px}.rec-btn{min-width:90px;color:#f44336!important;border-color:#f443364d!important;font-weight:600}.rec-btn-active{background:#f4433626!important;border-color:#f4433699!important;animation:recPulse 1s ease-in-out infinite}@keyframes recPulse{0%,to{box-shadow:0 0 #f443364d}50%{box-shadow:0 0 12px 2px #f4433666}}.hud label{display:flex;flex-direction:column;gap:6px;font-size:.9rem}.hud button,.hud select,.hud input[type=range]{width:100%}.hud button,.hud select{border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px 12px;background:#181d27;color:inherit}.lap-list{gap:4px}.session-group{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.session-header{font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#8892ab;padding:4px 2px 2px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:2px}.lap-entry{display:flex;flex-direction:column;gap:2px}.lap-row{display:grid!important;grid-template-columns:auto auto 1fr;align-items:center;gap:10px;flex-direction:row!important}.lap-info{display:flex;flex-direction:column;gap:3px;min-width:0}.lap-name{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lap-tags{display:flex;gap:5px;align-items:center}.device-badge{font-size:.65rem;font-weight:600;letter-spacing:.03em;padding:1px 5px;border:1px solid;border-radius:4px;color:#ccd3e8;background:#ffffff0a}.mode-badge{font-size:.65rem;color:#7b8399;font-style:italic}.lap-swatch{width:14px;height:14px;border-radius:999px;display:inline-block}.sync-controls{padding-left:38px}.sync-toggle{font-size:.72rem;color:#8892ab;background:none!important;border:none!important;padding:2px 4px!important;cursor:pointer;text-align:left;width:auto!important}.sync-toggle:hover{color:#b7bfd8}.sync-sliders{display:flex;flex-direction:column;gap:4px;padding:4px 0}.sync-slider{display:flex!important;flex-direction:column!important;gap:2px!important;font-size:.75rem!important}.sync-slider-label{display:flex;justify-content:space-between;color:#8892ab}.sync-slider-value{font-family:monospace;color:#b7bfd8}.sync-slider input[type=range]{height:4px;accent-color:#4dd0e1}.sync-reset{font-size:.72rem!important;padding:4px 8px!important;border-radius:6px!important;margin-top:2px;background:#ff6b6b1f!important;border-color:#ff6b6b40!important;color:#ff9b9b!important}.sync-reset:hover{background:#ff6b6b33!important}.warnings{background:#ffb74d14!important;border-color:#ffb74d40!important}.warning-row{font-size:.78rem;color:#ffb74d;line-height:1.3}.viewer-shell{position:relative;width:100%;height:100%}.loading{display:grid;place-items:center;width:100%;height:100%}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#090b10eb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;animation:fadeIn .2s ease-out}.loading-content{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 32px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#ffffff08;min-width:360px}.loading-title{font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#b7bfd8}.loading-bar{width:100%;height:6px;background:#ffffff14;border-radius:3px;overflow:hidden}.loading-bar-fill{height:100%;background:linear-gradient(90deg,#4dd0e1,#4caf50);border-radius:3px;transition:width .2s ease-out;box-shadow:0 0 12px #4dd0e166}.loading-progress{font-family:monospace;font-size:20px;font-weight:800;color:#eef2ff;letter-spacing:1px}.loading-detail{font-size:11px;font-family:monospace;color:#fff6;max-width:320px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.car-label{padding:4px 8px;border:1px solid currentColor;border-radius:999px;background:#090b10b3;color:#fff;font-size:11px;white-space:nowrap}.car-label-ghost{opacity:.8}.telemetry-panel{position:absolute;bottom:12px;right:12px;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.08);box-shadow:0 4px 24px #00000080}.telemetry-panel{position:absolute}.telemetry-canvas{display:block;width:400px;height:200px}.telemetry-playhead{position:absolute;top:0;left:0;width:400px;height:200px;pointer-events:none}.delta-panel{position:absolute;bottom:168px;right:12px;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.08);box-shadow:0 4px 24px #00000080}.delta-panel{position:absolute;bottom:218px;right:12px;border-radius:10px;overflow:hidden}.delta-canvas{display:block;width:400px;height:80px}.delta-playhead{position:absolute;top:0;left:0;width:400px;height:80px;pointer-events:none}.track-map-panel{position:absolute;bottom:12px;left:12px;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.08);box-shadow:0 4px 24px #00000080}.track-map-canvas{display:block;width:280px;height:280px}.track-map-dot{position:absolute;top:0;left:0;width:280px;height:280px}.track-marker{display:flex;align-items:center;gap:3px;text-shadow:0 0 8px currentColor;filter:drop-shadow(0 0 4px currentColor)}.marker-icon{font-size:18px}.marker-counter{font-size:10px;font-weight:800;background:#090b10cc;padding:1px 4px;border-radius:4px;border:1px solid currentColor;font-family:monospace}.track-marker-brake{color:#f44336}.track-marker-throttle{color:#4caf50}.marker-diff{font-size:9px;font-weight:600;color:#ffb74d;background:#090b10cc;padding:1px 3px;border-radius:3px;font-family:monospace}.brake-pair-marker{display:flex;align-items:center;gap:3px;border:1.5px solid;border-radius:6px;padding:1px 5px;background:#090b10bf}.brake-pair-icon{font-size:14px;color:#f44336;text-shadow:0 0 6px #f44336}.brake-pair-num{font-size:9px;font-weight:800;color:#fff;font-family:monospace}.brake-diff-badge{font-size:20px;font-weight:900;color:#ffb74d;background:#090b10e6;padding:6px 12px;border-radius:8px;border:2px solid rgba(255,183,77,.5);font-family:monospace;text-shadow:0 0 10px rgba(255,183,77,.6);letter-spacing:1px}.hud-delta{text-align:center;font-size:24px;font-weight:900;font-family:monospace;margin-top:4px;padding:4px 10px;border-radius:6px;letter-spacing:1px;text-shadow:0 0 8px currentColor}.hud-delta-behind{color:#f44336;background:#f4433626}.hud-delta-ahead{color:#4caf50;background:#4caf5026}.phase-label{display:flex;align-items:center;gap:4px;padding:2px 6px;border-radius:6px;font-size:9px;font-weight:700;letter-spacing:.04em;white-space:nowrap;background:#090b10bf;border:1px solid rgba(255,255,255,.1)}.phase-label-name{opacity:.8}.phase-label-dist{font-family:monospace;font-weight:400}.phase-label-braking,.phase-label-trail_braking{color:#f44336;border-color:#f443364d}.phase-label-full_throttle{color:#4caf50;border-color:#4caf504d}.phase-label-trail_braking{color:#ff9800;border-color:#ff98004d}.phase-label-coasting{color:#90a4ae;border-color:#90a4ae33}.car-telemetry-hud{padding:8px 14px;border-radius:10px;background:#090b10d9;border:1.5px solid rgba(255,255,255,.12);min-width:140px;transition:border-color .2s}.hud-braking{border-color:#f4433699;box-shadow:0 0 12px #f443364d}.hud-throttle{border-color:#4caf5099;box-shadow:0 0 12px #4caf504d}.hud-coast{border-color:#ffffff1a}.hud-bar-row{display:flex;align-items:center;gap:6px;margin:3px 0}.hud-bar-label{font-size:10px;font-weight:700;color:#ffffff80;width:28px;text-align:right}.hud-bar{flex:1;height:8px;background:#ffffff14;border-radius:4px;overflow:hidden}.hud-bar-fill{height:100%;border-radius:4px;transition:width .05s}.hud-bar-tps{background:#4caf50}.hud-bar-brake{background:#f44336}.hud-rpm{font-size:11px;color:#fff9;text-align:center;margin-top:3px;font-family:monospace}.gamification-panel{display:flex;flex-direction:column;gap:8px;padding:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:12px}.gami-rating{display:flex;align-items:center;gap:10px}.gami-grade{font-size:1.8rem;font-weight:900;line-height:1}.gami-grade-S{color:gold;text-shadow:0 0 12px rgba(255,215,0,.5)}.gami-grade-A{color:#4caf50;text-shadow:0 0 8px rgba(76,175,80,.4)}.gami-grade-B{color:#42a5f5}.gami-grade-C{color:#ff9800}.gami-grade-D{color:#9e9e9e}.gami-score{font-size:1rem;font-weight:600;color:#b7bfd8}.gami-bars{display:flex;flex-direction:column;gap:4px}.gami-stat{display:grid;grid-template-columns:55px 1fr 36px;align-items:center;gap:6px;font-size:.75rem}.gami-stat-label{color:#8892ab}.gami-stat-val{text-align:right;font-family:monospace;color:#b7bfd8}.gami-bar{height:6px;background:#ffffff0f;border-radius:3px;overflow:hidden}.gami-bar-fill{height:100%;border-radius:3px}.gami-bar-throttle{background:#4caf50}.gami-bar-brake{background:#f44336}.gami-bar-coast{background:#607d8b}.gami-details{display:flex;gap:12px;font-size:.72rem;color:#7b8399}.zone-popup{text-align:center;padding:6px 10px;border-radius:8px;animation:zonePopIn .3s ease-out}.zone-popup-great{background:#4caf5026;border:1px solid rgba(76,175,80,.3)}.zone-popup-good{background:#42a5f526;border:1px solid rgba(66,165,245,.3)}.zone-popup-early{background:#ff980026;border:1px solid rgba(255,152,0,.3)}.zone-popup-label{font-size:.9rem;font-weight:700;color:#eef2ff}.zone-popup-score{font-size:.75rem;font-family:monospace;color:#b7bfd8}.sector-tips-panel{position:absolute;bottom:300px;left:12px;width:280px;padding:10px 12px;background:#090b10eb;border:1px solid rgba(255,255,255,.1);border-radius:10px;box-shadow:0 4px 24px #00000080;animation:tipsSlideIn .25s ease-out}.sector-tips-header{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#ffb74d;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid rgba(255,183,77,.2)}.sector-tip{display:flex;align-items:flex-start;gap:8px;margin-bottom:6px;font-size:11px;line-height:1.4;color:#ccd3e8}.sector-tip-icon{font-size:14px;flex-shrink:0;margin-top:1px}.sector-tip-text{flex:1}@keyframes tipsSlideIn{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes zonePopIn{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}@media (max-width: 1100px){.app-shell{grid-template-columns:1fr;grid-template-rows:auto 1fr}.hud{max-height:42vh;border-right:none;border-bottom:1px solid rgba(255,255,255,.08)}}
