:root{color-scheme:dark;--bg:#08111f;--panel:#101d30;--panel-2:#14243a;--line:#263b57;--muted:#91a5c1;--text:#f0f5ff;--accent:#53d6ba;--warn:#ffbf69;--danger:#ff7575;--purple:#c792ff}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 20% -10%,#17345a 0,transparent 35%),var(--bg);color:var(--text);font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.shell{max-width:1440px;margin:auto;padding:32px}.topbar,.panel-heading,.url-row,.race-header,.metrics,.connection,.feed-summary{display:flex;align-items:center}.topbar{justify-content:space-between;margin-bottom:26px}.eyebrow{font-size:11px;letter-spacing:.12em;font-weight:750;color:var(--accent);margin:0 0 5px}h1,h2,p{margin-top:0}h1{font-size:28px;margin-bottom:0}h2{font-size:19px;margin-bottom:4px}.connection{gap:9px;text-align:right}.connection span{width:10px;height:10px;border-radius:50%;background:#6d7c91;box-shadow:0 0 0 4px #6d7c9126}.connection[data-state="live"] span{background:var(--accent);box-shadow:0 0 0 4px #53d6ba26}.connection[data-state="error"] span{background:var(--danger)}.connection small{display:block;color:var(--muted);margin-left:5px}.connect-card,.panel,.race-header{background:linear-gradient(135deg,var(--panel),#0c182a);border:1px solid var(--line);border-radius:14px}.connect-card{padding:18px;margin-bottom:18px}.connect-card label{font-weight:700;display:block;margin-bottom:8px}.url-row{gap:10px}.url-row input,.panel-heading input{min-width:0;width:100%;border:1px solid #314a69;border-radius:8px;background:#081525;color:var(--text);padding:11px 12px;font:inherit}button{border:0;border-radius:8px;background:var(--accent);padding:11px 16px;font-weight:750;color:#042018;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:#233852;color:#dce8f8}.connect-card p{color:var(--muted);margin:9px 0 0}.race-header{padding:20px 22px;justify-content:space-between;margin-bottom:18px}.race-header h2{font-size:24px}.race-header p:not(.eyebrow){color:var(--muted);margin-bottom:0}.metrics{gap:30px}.metrics div{min-width:72px}.metrics span{display:block;color:var(--muted);font-size:12px}.metrics strong{font-size:20px}.dashboard{display:grid;grid-template-columns:1fr;gap:18px}.panel{padding:18px}.panel-heading{justify-content:space-between;gap:14px}.panel-heading input{max-width:205px;padding:8px 10px}.table-wrap{overflow:auto;max-height:620px}table{border-collapse:collapse;width:100%;white-space:nowrap}th{text-align:left;color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:14px 10px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel)}td{padding:12px 10px;border-bottom:1px solid #20334d}tbody tr{cursor:pointer;transition:background .15s}tbody tr:hover,tbody tr.selected{background:#1c344f}.position{font-weight:800}.position.up{color:var(--accent)}.position.down{color:var(--danger)}.position.up::after{content:"▲";margin-left:5px;font-size:10px}.position.down::after{content:"▼";margin-left:5px;font-size:10px}td.personal-best{color:var(--accent);font-weight:700}td.overall-best{color:var(--purple);font-weight:800}th[data-sort]{cursor:pointer;user-select:none}th[data-sort]:hover{color:var(--text)}th[data-sort].sorted::after{content:" ▲";color:var(--accent)}th[data-sort].sorted.desc::after{content:" ▼"}.driver{font-weight:700}.team{display:block;color:var(--muted);font-size:12px;max-width:190px;overflow:hidden;text-overflow:ellipsis}.empty td{text-align:center;padding:44px;color:var(--muted);cursor:default}.side-stack{display:grid;align-content:start;gap:18px;grid-template-columns:1fr 1fr}.selected-driver{min-height:360px}.selected-driver>p{margin-bottom:5px}.selected-driver>p:not(.eyebrow){color:var(--muted)}dl{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:20px 0}dl div{background:#0a1728;border:1px solid #203652;padding:9px;border-radius:7px}dt{font-size:11px;color:var(--muted)}dd{margin:2px 0 0;font-weight:750}.chart-label{font-size:12px;color:var(--muted);margin-bottom:5px}svg{width:100%;height:auto;background:#0a1728;border:1px solid #203652;border-radius:8px}svg text{fill:#7890ae;font-size:12px}svg .line{fill:none;stroke:var(--accent);stroke-width:3}svg .dot{fill:var(--accent)}svg .dot.best{fill:var(--purple);r:4}svg+.chart-label{margin-top:14px}.text-button{background:transparent;color:var(--accent);padding:5px}.feed-summary{gap:12px;color:var(--muted)}.feed-summary span:first-child{color:var(--text);font-weight:700}pre{max-height:220px;overflow:auto;white-space:pre-wrap;word-break:break-word;color:#a9c1e0;background:#081525;border:1px solid #203652;padding:10px;border-radius:8px;font-size:11px}.disclaimer{text-align:center;color:var(--muted);font-size:12px;margin:24px 0 0}@media(max-width:900px){.shell{padding:18px}.dashboard{grid-template-columns:1fr}.race-header{align-items:flex-start;gap:18px;flex-direction:column}.topbar{align-items:flex-start;gap:14px;flex-direction:column}.metrics{width:100%;justify-content:space-between}.url-row{align-items:stretch;flex-wrap:wrap}.url-row input{flex-basis:100%}}@media(max-width:520px){.shell{padding:12px}.connect-card,.panel,.race-header{padding:14px}.metrics{gap:10px}.metrics strong{font-size:17px}.connection{text-align:left;flex-wrap:wrap}}

/* --- Endurance pit-wall additions --- */
.session-row{display:flex;gap:10px;align-items:center;margin-top:10px}
.session-row select{flex:1;min-width:0;border:1px solid #314a69;border-radius:8px;background:#081525;color:var(--text);padding:10px 12px;font:inherit}
.replay-bar{display:flex;gap:10px;align-items:center;margin-top:10px;background:#0a1728;border:1px solid #203652;border-radius:8px;padding:8px 10px}
.replay-bar[hidden]{display:none}
.topbar-side{display:flex;gap:14px;align-items:center}
.info-overlay{position:fixed;inset:0;z-index:60;background:#050b14cc;backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px;overflow-y:auto}
.info-overlay[hidden]{display:none}
.info-panel{background:linear-gradient(135deg,var(--panel),#0c182a);border:1px solid var(--line);border-radius:14px;max-width:780px;width:100%;padding:26px 30px;max-height:90vh;overflow-y:auto}
.info-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:8px}
.info-head h2{margin:0;font-size:21px}
.info-panel h3{color:var(--accent);font-size:14px;letter-spacing:.04em;margin:20px 0 6px}
.info-panel p,.info-panel li{color:#c9d7ec;font-size:13.5px;line-height:1.6}
.info-panel ul{margin:6px 0;padding-left:20px}
.info-panel li{margin-bottom:6px}
.info-panel code{background:#081525;border:1px solid #203652;border-radius:5px;padding:1px 6px;font-size:12px;color:#9fd8ff}
.info-panel em.src-feed,.info-panel em.src-inferred,.info-panel em.src-manual{font-style:normal;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:1px 7px;border-radius:20px}
.info-panel em.src-feed{background:#153f33;color:var(--accent)}
.info-panel em.src-inferred{background:#3d2c10;color:var(--warn)}
.info-panel em.src-manual{background:#2a2440;color:var(--purple)}
.replay-bar input[type="range"]{flex:1;accent-color:var(--accent)}
.replay-bar select{border:1px solid #314a69;border-radius:8px;background:#081525;color:var(--text);padding:8px;font:inherit}
.replay-bar span{color:var(--muted);font-size:12px;white-space:nowrap}
.strategy-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1.1fr);gap:18px;margin-bottom:18px}
.rules-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.rules-grid label{font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:4px}
.rules-grid label.wide{grid-column:1/-1}
.rules-grid input{border:1px solid #314a69;border-radius:7px;background:#081525;color:var(--text);padding:8px;font:inherit;min-width:0;width:100%}
.setup-actions{display:flex;gap:10px;align-items:center;margin-top:12px}
.setup-actions span{color:var(--muted);font-size:12px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;margin:14px 0 12px}
.tiles div.good{border-color:#1f5c4c;background:#0a2018}
.tiles div.good dd{color:var(--accent)}
.tiles div.warn{border-color:#6b4b1c;background:#241a08}
.tiles div.warn dd{color:var(--warn)}
.tiles div.danger{border-color:#7a2b2b;background:#2a0d0d;animation:pulse 1.2s infinite alternate}
.tiles div.danger dd{color:var(--danger)}
@keyframes pulse{from{box-shadow:0 0 0 0 #ff757522}to{box-shadow:0 0 0 6px #ff757511}}
.team-actions{display:flex;gap:10px;align-items:center}
.team-actions span{color:var(--muted);font-size:12px}
button.warn{background:var(--warn);color:#241a00}
.pit-badge{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:20px;background:var(--warn);color:#241a00;font-size:10px;font-weight:800;letter-spacing:.06em;vertical-align:middle}
tbody tr.me{background:#12304a;box-shadow:inset 3px 0 0 var(--accent)}
tbody tr.me:hover,tbody tr.me.selected{background:#1a3c5c}
tbody tr.rival{box-shadow:inset 3px 0 0 var(--purple)}
tbody tr.in-pit td{opacity:.72}
tbody tr.in-pit td.in-pit-cell,tbody tr.in-pit .pit-badge{opacity:1}
td.in-pit-cell{color:var(--warn);font-weight:750}
td.owes{color:var(--warn);font-weight:750}
td.done{color:var(--accent)}
td.adj{color:#9fd8ff;font-weight:700}
.kart-cell{font-weight:800}
.muted{color:var(--muted);font-size:11px}
.warn-text{color:var(--warn);font-size:11px}
.good{color:var(--accent)}
.danger{color:var(--danger)}
.heading-tools{display:flex;gap:10px;align-items:center;position:relative}
.columns-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:30;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;gap:8px;min-width:180px;box-shadow:0 12px 30px #00000066}
.columns-menu[hidden]{display:none}
.columns-menu label{display:flex;gap:8px;align-items:center;font-size:13px;cursor:pointer}
.columns-menu em{color:var(--muted);font-size:12px}
.pit-list{display:grid;gap:6px;font-size:12px}
.pit-row{display:flex;gap:10px;align-items:center;background:#0a1728;border:1px solid #203652;border-radius:7px;padding:7px 10px}
.pit-row span:first-child{color:var(--muted)}
.pit-row strong{margin-left:auto}
.pit-row em{font-style:normal;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:1px 7px;border-radius:20px}
.pit-row em.src-feed{background:#153f33;color:var(--accent)}
.pit-row em.src-inferred{background:#3d2c10;color:var(--warn)}
.pit-row em.src-manual{background:#2a2440;color:var(--purple)}
.table-wrap.slim{max-height:260px}
.table-wrap.slim th{padding:9px 8px}
.table-wrap.slim td{padding:7px 8px;font-size:13px}
.table-wrap.slim.laps{max-height:300px}
tr.live-stint td{color:var(--text)}
tr.live-stint td:nth-child(2){color:var(--accent)}
tr.pit-lap td{color:var(--warn)}
svg .pit-mark{fill:var(--warn)}
.stint-compare{margin-top:18px}
.selected-driver .table-wrap{margin-bottom:6px}
@media(max-width:1200px){.strategy-row{grid-template-columns:1fr 1fr}.rivals-panel{grid-column:1/-1}}
@media(max-width:900px){.strategy-row{grid-template-columns:1fr}.session-row{flex-wrap:wrap}.replay-bar{flex-wrap:wrap}.side-stack{grid-template-columns:1fr}}
