:root{color-scheme:dark;--bg:#0b1117;--panel:#131d27;--line:#2a3948;--text:#e6edf5;--muted:#9eafc1;--ref:#58e7b1;--other:#c092ff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 system-ui,Segoe UI,sans-serif}header{padding:20px 3%;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}header a{color:var(--ref);text-decoration:none;font-size:21px;font-weight:800;letter-spacing:2px}header a span{color:var(--text);font-size:12px}.badge,.eyebrow{color:var(--ref);font-size:11px;font-weight:750;letter-spacing:1.5px}main{max-width:1560px;margin:auto;padding:28px 3%}.heading,.row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.heading{justify-content:space-between;margin-bottom:22px}h1{font-size:36px;letter-spacing:-1px;margin:6px 0}h2{font-size:17px;margin:0 0 12px}.row h2{margin:0}.heading p{color:var(--muted);max-width:760px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:18px}label{display:flex;flex-direction:column;gap:6px;color:var(--muted)}input,select,button,.button{font:inherit;border:1px solid #3a4d60;border-radius:7px;background:#0c151e;color:var(--text);padding:9px 11px}button,.button{cursor:pointer;white-space:nowrap;font-weight:650;display:inline-flex;align-items:center;justify-content:center}button:hover,.button:hover{border-color:var(--ref)}button:disabled{opacity:.4;cursor:default}.primary{background:var(--ref);color:#09281e;border-color:var(--ref)}.controls{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr)) auto auto;align-items:end;gap:12px;margin:18px 0 8px}.controls input{width:100%}.muted,footer{color:var(--muted);font-size:12px}#status{color:var(--ref)}.error{color:#ffa9a9!important}.file-list{display:flex;flex-wrap:wrap;gap:8px}.file-list span{background:#0b151e;padding:5px 9px;border-radius:5px;color:var(--muted);font-size:12px}.pairs{display:grid;grid-template-columns:1fr 1fr auto;gap:20px}.pairs select{max-width:100%;width:100%;text-overflow:ellipsis}.pairs>div{display:flex;flex-direction:column;gap:10px;justify-content:end}.ref{color:var(--ref)}.other{color:var(--other)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px}.charts{min-width:0}.plot{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.plot-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.plot-title strong{font-size:13px}.readout{font-size:12px;font-variant-numeric:tabular-nums}canvas{display:block;width:100%;touch-action:none}#map{height:300px}#channels{max-height:340px;overflow:auto}#channels label{flex-direction:row;align-items:center;margin:8px 0;font-size:12px;color:var(--text)}#channels input{accent-color:var(--ref)}#sections{flex:1;min-width:220px}.empty{padding:65px 0;text-align:center;color:var(--muted)}table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}th,td{padding:9px 12px;text-align:right;border-bottom:1px solid var(--line)}th:first-child,td:first-child{text-align:left}th{color:var(--muted)}#lap-table{max-height:320px;overflow:auto}#sector-table{overflow:auto}summary{cursor:pointer;font-weight:650}footer{padding:10px 0 30px}.gain{color:var(--ref)}.loss{color:#f6ad9d}@media(max-width:950px){.workspace{grid-template-columns:1fr}aside{display:grid;grid-template-columns:1fr 1fr;gap:16px}.controls{grid-template-columns:repeat(2,1fr)}.pairs{grid-template-columns:1fr 1fr}.pairs>div{grid-column:1/-1;flex-direction:row}.heading h1{font-size:29px}}@media(max-width:580px){main{padding:18px 12px}.panel{padding:14px}.pairs,aside{grid-template-columns:1fr}.pairs>div{flex-wrap:wrap}.badge{font-size:9px}.plot-title{align-items:start;flex-direction:column}.row{gap:10px}}

.map-sections{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px}.map-sections button{padding:4px 8px;font-size:11px}.map-sections button[aria-pressed="true"]{background:#ffc875;color:#131d27;border-color:#ffc875}#sector-table tbody tr{cursor:pointer}#sector-table tbody tr:hover,#sector-table tbody tr:focus-visible,#sector-table tr.active-section{background:#243643;outline-offset:-2px}

.live-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}.live-metrics>div{padding:14px;background:#0c151e;border-radius:8px}.live-metrics span{display:block;color:var(--muted);font-size:12px}.live-metrics strong{font-size:25px;font-variant-numeric:tabular-nums}#live-splits{overflow:auto}#live-panel select{max-width:100%}@media(max-width:580px){.live-metrics{grid-template-columns:1fr}.live-metrics strong{font-size:23px}}

#saved-panel select{max-width:100%;width:100%}.saved-session-label{flex:1;min-width:0}.saved-actions{margin-top:14px}@media(max-width:580px){#saved-panel label{width:100%}}

/* TEDEV application theme, shared with the main dashboard. */
:root {
  color-scheme: dark;
  --bg: #0b0f14;
  --panel: #131922;
  --panel-2: #19212c;
  --line: #283342;
  --text: #edf3f8;
  --muted: #8e9bab;
  --accent: #33d17a;
  --accent-dark: #153d2a;
  --danger: #ff6677;
  --warning: #ffbd4a;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
body { margin: 0; background: radial-gradient(circle at 80% -10%, #183327 0, transparent 34%), var(--bg); color: var(--text); min-height: 100vh; }
.topbar { min-height: 68px; padding: 12px clamp(18px, 4vw, 54px); display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line); background: rgba(11,15,20,.88); backdrop-filter: blur(14px); position: sticky; top: 0; z-index: 5; }
.brand { display: flex; align-items: center; gap: 11px; letter-spacing: .04em; }
.brand span:last-child { display: grid; }
.brand small { color: var(--muted); font-size: 11px; text-transform: uppercase; }
.brand-mark { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; font-weight: 900; color: #07110b; background: var(--accent); box-shadow: 0 0 28px #33d17a44; }
.topbar-actions { display: flex; align-items: center; gap: 12px; }
.status-pill { border: 1px solid var(--line); border-radius: 999px; padding: 6px 10px; color: var(--muted); font-size: 12px; }
.status-pill.online { color: var(--accent); border-color: #2d6b4a; background: #10291d; }

:root{--ref:var(--accent)}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
header.topbar{font-size:16px;line-height:normal;gap:16px}
header .brand{font-size:16px;font-weight:400;letter-spacing:.04em;color:var(--text);text-decoration:none;flex-shrink:0}
header .brand>span{font-size:inherit;color:inherit}
header .brand .brand-mark{color:#07110b;font-weight:900}
header .brand small{font-weight:400;margin-top:2px}
header .topbar-actions{flex-wrap:wrap;justify-content:flex-end}
header .topbar-actions .muted{font-size:14px}
header .dashboard-link{font-size:13px;letter-spacing:0;text-decoration:none;font-weight:700;color:var(--text)}
main{width:min(1500px,100%);max-width:1500px;padding:clamp(18px,4vw,48px)}
.panel{background:linear-gradient(160deg,#151c25,#10161e);border-radius:15px;box-shadow:0 18px 60px #0006}
h1{font-size:clamp(28px,4vw,42px);letter-spacing:-.035em;margin:0 0 10px}
h2{font-size:18px}
.eyebrow,.badge{color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.eyebrow{margin:0 0 8px}
label{color:#c7d0da;font-size:13px;gap:7px}
input,select{background:#0c1118;border:1px solid #344152;border-radius:8px;padding:10px 11px;outline:none;color:var(--text)}
input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #33d17a20}
button,.button{border:1px solid var(--line);border-radius:8px;padding:9px 13px;background:var(--panel-2);color:var(--text);font-size:13px;font-weight:700}
button:hover,.button:hover{filter:brightness(1.15);border-color:var(--line)}
button:focus-visible,.button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.primary{background:var(--accent);color:#06120b;border-color:var(--accent)}
.primary:hover{border-color:var(--accent)}
.ghost{background:transparent}
.live-metrics>div{border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,#18212c,#111821);padding:15px}
.live-metrics span{font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.live-metrics strong{display:block;margin-top:9px;font-size:clamp(25px,3vw,36px);font-weight:850;letter-spacing:-.035em}
.file-list span{background:#0c1118}
th{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
html{scroll-padding-top:90px}
.workspace{align-items:start}.heading .eyebrow{color:var(--accent)}.dashboard-link[hidden]{display:none!important}
@media(max-width:580px){header.topbar{padding:12px 18px;align-items:center;flex-wrap:wrap}.topbar-actions{gap:8px}header .brand{font-size:14px}main{padding:18px}.panel{padding:14px}.heading h1{font-size:28px}}

/* Keep action buttons level with their associated select fields. */
.saved-controls{display:grid;grid-template-columns:auto minmax(120px,180px) auto minmax(240px,1fr);align-items:end;gap:14px}
.saved-controls label{min-width:0;margin:0}
.saved-controls button,.saved-controls select,.saved-actions button{height:42px}
.saved-actions{padding-top:2px;gap:10px}
#live-panel>.row:has(#live-car){align-items:end}
#live-panel>.row:has(#live-car) button,#live-car{height:42px}
@media(max-width:900px){.saved-controls{grid-template-columns:auto minmax(0,1fr)}}
@media(max-width:580px){.saved-controls{grid-template-columns:minmax(0,1fr)}.saved-controls button{width:100%}.saved-actions button{flex:1}.saved-actions{flex-wrap:wrap}}

/* Sector comparison: signed deltas, shared-scale bars and a compact overview. */
.sector-key{display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px;margin:14px 0 18px;font-size:12px}
.sector-gain{color:var(--accent)}.sector-loss{color:var(--danger)}.sector-neutral{color:var(--muted)}
.sector-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}
.sector-stat{padding:16px;border:1px solid var(--line);border-radius:11px;background:#0c1118;min-width:0}
.sector-stat>span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:800;letter-spacing:.1em}
.sector-stat>strong{display:block;font-size:28px;font-weight:850;letter-spacing:-.03em;margin:6px 0;font-variant-numeric:tabular-nums}
.sector-stat>small{display:block;color:var(--muted);font-size:11px}
.sector-panel #sector-table table{table-layout:fixed;font-size:13px}
.sector-panel th{overflow-wrap:anywhere;letter-spacing:.04em}
.sector-panel th:first-child{width:12%}.sector-panel th:nth-child(2){width:16%}.sector-panel th:last-child{width:28%}
.sector-panel td{padding:12px}.sector-panel td:nth-child(2){color:var(--muted);font-size:12px}
.sector-number{display:inline-flex;align-items:center;justify-content:center;min-width:36px;padding:5px 7px;border:1px solid var(--line);border-radius:7px;font-weight:800;background:#0c1118}
.sector-panel tr.active-section .sector-number{border-color:var(--accent);color:var(--accent)}
.sector-delta-track{position:relative;width:100%;height:10px;margin-top:7px;background:#0c1118;border-radius:3px;overflow:hidden}
.sector-delta-track:after{content:'';position:absolute;left:50%;height:100%;width:1px;background:#708092}
.sector-delta-bar{position:absolute;height:6px;top:2px;border-radius:2px;background:currentColor}
.sector-settings{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.sector-settings summary{color:var(--muted);font-size:12px}.sector-settings p{margin:12px 0}.sector-footnote{margin:16px 0 0}
@media(max-width:700px){.sector-summary{grid-template-columns:1fr}.sector-stat{padding:12px}.sector-stat>strong{font-size:24px}.sector-panel #sector-table th:nth-child(2),.sector-panel #sector-table td:nth-child(2){display:none}.sector-panel th:first-child{width:16%}.sector-panel th:last-child{width:32%}.sector-panel th,.sector-panel td{padding:9px 5px}.sector-panel #sector-table table{font-size:11px}.sector-panel th{font-size:9px}.sector-number{min-width:28px;padding:4px}.sector-settings #sections{min-width:0;width:100%}}

/* Coordinated lap workspace: charts, map and sector timing visible together. */
.workspace-channels{margin:12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#0c1118}
.workspace-channels summary{font-size:12px;color:var(--muted)}.workspace-channels #channels{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0 10px;max-height:180px}
.workspace-sectors h2{margin:0}.workspace-sector-key{font-size:11px;margin:8px 0}
#workspace-sectors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.workspace-sector{display:block;text-align:left;padding:7px 9px;min-width:0;background:#0c1118;font-size:12px;white-space:normal}
.workspace-sector-top{display:flex;justify-content:space-between;gap:6px}.workspace-sector small{display:block;color:var(--muted);font-size:10px;font-weight:400;margin-top:3px;font-variant-numeric:tabular-nums}
.workspace-sector[aria-pressed="true"]{border-color:var(--accent);background:#153d2a}
@media(min-width:1051px){
 .workspace{grid-template-columns:minmax(0,1fr) minmax(330px,38%);gap:14px;height:calc(100dvh - 110px);min-height:530px;max-height:1050px;scroll-margin-top:0}
 .workspace>.charts{height:100%;overflow:auto;margin:0;padding:16px;overscroll-behavior:contain}
 .workspace>.charts>p.muted{font-size:11px;margin:12px 0}.workspace>.charts>.row{gap:10px}.workspace>.charts h2{font-size:16px}
 .workspace>aside{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(210px,1fr) auto;height:100%;min-height:0;gap:12px}
 .workspace>aside>.panel{margin:0;padding:12px;min-width:0;min-height:0}
 .workspace-map{overflow:hidden}.workspace-map h2{font-size:16px;margin-bottom:6px}.workspace-map #map-sections,.workspace-map>p:last-child{display:none}
 .workspace-map #section-focus{font-size:11px;line-height:1.3;margin:5px 0;min-height:28px}
 .workspace-sectors{max-height:48vh;overflow:auto;overscroll-behavior:contain}.workspace-sectors h2{font-size:16px}
}
@media(max-width:1050px){.workspace{grid-template-columns:minmax(0,1fr);height:auto}.workspace>aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.workspace-map canvas{max-width:100%}}
@media(max-width:700px){.workspace>aside{grid-template-columns:minmax(0,1fr)}}
@media(min-width:1250px){
 .workspace{grid-template-columns:minmax(0,1fr) minmax(210px,22%) minmax(250px,25%)}
 .workspace>aside{display:contents}
 .workspace>aside>.workspace-map,.workspace>aside>.workspace-sectors{height:100%;max-height:none}
 #workspace-sectors{grid-template-columns:minmax(0,1fr)}
 .workspace-sector{padding:7px 9px}
 .workspace-sector-key{line-height:1.4}
}

.theoretical-panel{margin-top:24px;padding-top:20px;border-top:1px solid #283747}.theoretical-table{overflow-x:auto}.theoretical-table td:last-child{white-space:normal;overflow-wrap:anywhere}.theoretical-table tbody tr{cursor:pointer}.theoretical-table tbody tr:hover,.theoretical-table tbody tr:focus{background:#223b36}.theoretical-panel .sector-stat{min-width:0}.theoretical-panel .sector-stat small{overflow-wrap:anywhere}

.theory-quality{border-left:3px solid #e9b85d;background:#e9b85d0c;padding:12px 16px;margin:14px 0}.theory-quality>strong{color:#efc778}.theory-quality p:last-child{margin-bottom:0}

.boundary-diagnostics{margin:18px 0;border:1px solid #2a3947;border-radius:10px;padding:12px}.boundary-table{overflow-x:auto}.boundary-table table{min-width:660px;font-size:12px}.boundary-table td{white-space:normal!important;text-align:left!important}.boundary-table th{width:auto!important}
