:root{
  --bg:#0b0f14; --bg2:#0f151c; --panel:#131a22; --panel2:#18222c; --line:#223040;
  --text:#e6edf3; --muted:#8b9bab; --faint:#5d6c7b;
  --green:#4cc9a0; --gold:#d6a85a; --red:#e5707a; --blue:#6ea8e0; --purple:#a592da; --orange:#e0955f;
  --r:12px; --font: ui-sans-serif,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono: ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 var(--font)}
body{min-height:100vh}
a{color:var(--blue)}
.top{display:flex;align-items:center;gap:20px;padding:12px 24px;border-bottom:1px solid var(--line);background:#0b0f14ee;position:sticky;top:0;z-index:20;backdrop-filter:blur(8px);flex-wrap:wrap}
.brand{display:flex;gap:10px;align-items:center}
.brand b{display:block;font-size:16px;letter-spacing:.3px}
.brand span{display:block;font-size:11px;color:var(--muted)}
.tabs{display:flex;gap:4px;flex:1;flex-wrap:wrap}
.tab{background:none;border:0;color:var(--muted);padding:8px 12px;border-radius:8px;cursor:pointer;font:inherit;font-weight:600}
.tab:hover{color:var(--text);background:var(--panel)}
.tab.active{color:#06231a;background:var(--green)}
.status{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:12px;min-width:180px;justify-content:flex-end}
.dot{width:8px;height:8px;border-radius:50%;background:var(--green)}
.status.busy .dot{background:var(--gold);animation:pulse 1s infinite}
@keyframes pulse{50%{opacity:.3}}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:14px 24px 0;max-width:1400px;margin:0 auto}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;position:relative;overflow:hidden}
.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c,var(--green))}
.kpi label{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}
.kpi b{font-size:21px;font-variant-numeric:tabular-nums}
.kpi small{display:block;color:var(--faint);font-size:11px}
.pos{color:var(--green)}.neg{color:var(--red)}
main{max-width:1400px;margin:0 auto;padding:16px 24px 40px}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.card h3{margin:0 0 4px;font-size:15px}
.card h3 .tag{font-size:10px;font-weight:700;background:var(--panel2);color:var(--muted);padding:2px 7px;border-radius:99px;margin-left:6px;vertical-align:middle;text-transform:uppercase;letter-spacing:.5px}
.card p.sub{margin:0 0 12px;color:var(--muted);font-size:12.5px}
.field{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;margin:9px 0}
.field label{font-weight:600;font-size:13px}
.field .hint{grid-column:1/-1;color:var(--faint);font-size:11.5px;margin-top:-1px}
input,select,textarea,button{font:inherit;color:var(--text)}
input[type=number],input[type=text],select,textarea{background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:6px 9px;min-width:0}
input[type=number]{width:104px;text-align:right;font-variant-numeric:tabular-nums}
select{max-width:210px}
textarea{width:100%;font-family:var(--mono);font-size:12.5px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid #4cc9a055;border-color:var(--green)}
.switch{position:relative;width:42px;height:24px}
.switch input{opacity:0;width:0;height:0}
.switch span{position:absolute;inset:0;background:#2a3846;border-radius:99px;cursor:pointer;transition:.15s}
.switch span:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#cbd5df;border-radius:50%;transition:.15s}
.switch input:checked+span{background:var(--green)}
.switch input:checked+span:before{transform:translateX(18px);background:#06231a}
.btn{background:var(--panel2);border:1px solid var(--line);padding:8px 14px;border-radius:9px;cursor:pointer;font-weight:600}
.btn:hover{border-color:var(--green)}
.btn.primary{background:var(--green);color:#06231a;border-color:var(--green)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.small{padding:4px 10px;font-size:12px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.row.sp{justify-content:space-between}
.presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.preset{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;text-align:left}
.preset:hover{border-color:var(--green)}
.preset.sel{border-color:var(--green);box-shadow:0 0 0 1px var(--green) inset}
.preset b{display:block;font-size:13px}
.preset small{display:block;color:var(--muted);font-size:11.5px;margin-top:3px}
.badge{display:inline-block;font-size:10px;padding:1px 7px;border-radius:99px;font-weight:700;margin-left:6px;text-transform:uppercase}
.b-Great{background:#4cc9a022;color:var(--green)}.b-Beatable{background:#6ea8e022;color:var(--blue)}.b-Marginal{background:#d6a85a22;color:var(--gold)}
.b-Poor{background:#e0955f22;color:var(--orange)}.b-Avoid,.b-Unbeatable{background:#e5707a22;color:var(--red)}
table.t{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
table.t th,table.t td{padding:6px 9px;text-align:right;border-bottom:1px solid var(--line);font-size:13px}
table.t th{color:var(--muted);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px}
table.t th:first-child,table.t td:first-child{text-align:left}
table.t tr.hl td{background:#4cc9a00f}
.spread{display:grid;grid-template-columns:repeat(10,minmax(54px,1fr));gap:6px}
.spread div{text-align:center}
.spread label{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}
.spread input{width:100%;text-align:center;padding:6px 2px}
.spread small{display:block;color:var(--faint);font-size:11px;margin-top:2px}
.chart{width:100%;height:320px;display:block}
.chart.tall{height:380px}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:4px 0 0}
.legend i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:5px;vertical-align:middle}
.notice{background:#d6a85a14;border:1px solid #d6a85a44;color:#f5d98a;padding:8px 12px;border-radius:9px;font-size:12.5px;margin:8px 0}
.notice.info{background:#6ea8e014;border-color:#6ea8e044;color:#a9d0ff}
.notice.bad{background:#e5707a14;border-color:#e5707a44;color:#ffb0b0}
.notice.good{background:#4cc9a014;border-color:#4cc9a044;color:#9af0cf}
.prog{height:6px;background:var(--bg2);border-radius:99px;overflow:hidden;margin:8px 0}
.prog i{display:block;height:100%;background:var(--green);width:0;transition:width .2s}
.sc{overflow-x:auto}
.bs{border-collapse:separate;border-spacing:2px;font-size:12px;font-weight:700}
.bs th{color:var(--muted);font-size:11px;padding:2px 6px;font-weight:600}
.bs td{width:34px;height:28px;text-align:center;border-radius:5px;position:relative;color:#071016}
.bs td.rowh{background:none;color:var(--muted);width:auto;padding-right:8px;text-align:right}
.c-S{background:#e8c872}.c-H{background:#7fcfb4}.c-D,.c-Dh{background:#6ea8e0}.c-Ds{background:#9cc3e8}.c-P{background:#bfaee6}.c-R,.c-Rh,.c-Rs,.c-Rp{background:#eb9096}
.bs td sup{position:absolute;right:1px;top:-1px;font-size:8.5px;background:#0b0f14;color:var(--gold);border-radius:4px;padding:0 2px;font-weight:700;box-shadow:0 0 0 1px var(--gold)}
.key{display:flex;gap:10px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);margin:6px 0 12px}
.key span i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:4px;vertical-align:-2px}
.help h4{margin:18px 0 4px}.help p,.help li{color:#c3cfdb}
.help code,.mono{font-family:var(--mono);background:var(--bg2);padding:1px 5px;border-radius:5px;font-size:12px}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:4px 12px;margin-top:8px}
.checks label{display:flex;gap:7px;align-items:center;font-size:12.5px;color:#c3cfdb}
.tip{cursor:help;border-bottom:1px dotted var(--faint)}
.foot{text-align:center;color:var(--faint);font-size:11.5px;padding:18px}
.big{font-size:26px;font-weight:800}
.stack{display:flex;flex-direction:column;gap:14px}
@media (max-width:760px){.top{padding:10px 12px}main,.kpis{padding-left:12px;padding-right:12px}.g2{grid-template-columns:1fr}.spread{grid-template-columns:repeat(5,1fr)}}

.acc{font-size:12px;color:var(--muted);display:flex;gap:6px;align-items:center}.acc select{padding:3px 6px}

/* ---- dashboard layout ---- */
.top .grow{flex:1}
body{height:100vh;display:flex;flex-direction:column;overflow:hidden}
.top{padding:8px 18px;gap:12px}
main{flex:1;min-height:0;max-width:none;width:100%;padding:12px 18px;overflow:hidden}
.foot{display:none}
.dash{display:grid;grid-template-columns:350px 1fr;gap:14px;height:100%;min-height:0}
.side{overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-right:2px}
.blk{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:11px 13px}
.blk h4{margin:0 0 7px;font-size:13px;letter-spacing:.3px}.blk h4 small{color:var(--faint);font-weight:400;margin-left:4px}
.blk select.wide{width:100%;max-width:none;font-weight:600}
.blurb{color:var(--muted);font-size:11.5px;margin:6px 0 4px;line-height:1.35}
.mini{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.mini .field{margin:4px 0;grid-template-columns:1fr;gap:2px}
.mini .field label{font-size:11.5px;color:var(--muted);font-weight:500}
.mini .hint{display:none}
.mini input[type=number],.mini select{width:100%;max-width:none;padding:4px 7px}
.mini .field:has(.switch){grid-template-columns:1fr auto;align-items:center}
.link{background:none;border:0;color:var(--blue);cursor:pointer;padding:6px 0 0;font:inherit;font-size:12px;text-align:left}.link:hover{text-decoration:underline}
.chips{display:flex;gap:4px;flex-wrap:wrap}.chip{background:var(--panel2);border:1px solid var(--line);border-radius:99px;padding:2px 9px;font-size:11.5px;cursor:pointer}.chip:hover{border-color:var(--green)}
.u{font-size:12px;color:var(--muted)}
.blk input[type=number]{width:70px}
.spread5{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}
.spread5 div{text-align:center}.spread5 label{display:block;font-size:10.5px;color:var(--muted)}
.spread5 input{width:100%!important;text-align:center;padding:4px 2px}.spread5 small{display:block;font-size:10px;color:var(--faint)}
.blk .field{margin:6px 0;grid-template-columns:1fr auto}
.sl{margin:8px 0}.sl label{font-size:12px;font-weight:600}.sv{font-size:12px;color:var(--green)}
.range{width:100%;accent-color:var(--green)}
.main2{display:flex;flex-direction:column;gap:10px;min-height:0;min-width:0}
.verdict{padding:10px 14px;border-radius:var(--r);font-weight:600;font-size:14px;border:1px solid var(--line);background:var(--panel)}
.verdict.good{background:#4cc9a014;border-color:#4cc9a055;color:#9af0cf}.verdict.warn{background:#d6a85a14;border-color:#d6a85a55;color:#f5d98a}.verdict.bad{background:#e5707a14;border-color:#e5707a55;color:#ffb0b0}
.kpis2{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.k{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:8px 12px;position:relative;overflow:hidden}
.k:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c)}
.k label{display:block;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.k b{font-size:20px;font-variant-numeric:tabular-nums}.k small{display:block;color:var(--faint);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.charts{flex:1;min-height:0;display:grid;grid-template-columns:1.25fr 1fr;gap:10px}
.card.ch{display:flex;flex-direction:column;min-height:0;min-width:0;padding:12px 14px}
.card.ch h3{font-size:14px;margin:0}
.chart.fill{flex:1;min-height:0;height:auto}
.seg{display:flex;background:var(--bg2);border-radius:8px;padding:2px}.seg button{background:none;border:0;color:var(--muted);font:inherit;font-size:11.5px;padding:3px 9px;border-radius:6px;cursor:pointer}.seg button.on{background:var(--panel2);color:var(--text)}
.menuwrap{position:relative}
.menu{display:none;position:absolute;right:0;top:36px;width:330px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:6px;z-index:40;box-shadow:0 12px 40px #000a}.menu.open{display:block}
.menu button{display:block;width:100%;text-align:left;background:none;border:0;border-radius:8px;padding:7px 10px;cursor:pointer}.menu button:hover{background:var(--panel2)}.menu small{display:block;color:var(--muted);font-size:11px}
.modal{position:fixed;inset:0;background:#000b;z-index:60;display:flex;align-items:center;justify-content:center;padding:3vh 3vw}.modal[hidden]{display:none}
.mpanel{background:var(--bg);border:1px solid var(--line);border-radius:14px;width:min(1300px,100%);height:100%;display:flex;flex-direction:column}
.mhead{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line)}.mhead b{font-size:16px}
.mbody{overflow:auto;padding:16px 18px 30px;flex:1}
@media (max-width:980px){body{height:auto;overflow:auto}main{overflow:visible}.dash{grid-template-columns:1fr;height:auto}.charts{grid-template-columns:1fr}.chart.fill{height:300px;flex:none}.kpis2{grid-template-columns:repeat(2,1fr)}}

.cwrap{position:relative;flex:1;min-height:120px}.cwrap canvas{position:absolute;inset:0;width:100%;height:100%}
.dash{grid-template-columns:380px 1fr}
.blk{padding:9px 12px}.side{gap:8px}
.spread10{display:grid;grid-template-columns:repeat(10,1fr);gap:3px}
.spread10 div{text-align:center;min-width:0}.spread10 label{display:block;font-size:9.5px;color:var(--muted)}
.spread10 input{width:100%!important;text-align:center;padding:3px 0;font-size:12px;border-radius:6px}
.spread10 small{display:block;font-size:8.5px;color:var(--faint);white-space:nowrap;overflow:hidden}
.blurb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:4px 0 2px}
.blk .row.sp{flex-wrap:nowrap}
.card.ch .row{flex-wrap:nowrap}.card.ch .range{width:130px}
.sl{margin:5px 0}.mini .field{margin:3px 0}.blk .field{margin:4px 0}
.blk h4{margin-bottom:5px}.link{padding-top:3px}
.legend{margin:2px 0 0}

.two{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.charts{grid-template-rows:minmax(0,1fr)}
.card.ch{overflow:hidden}
.blk input[type=number]{width:84px}.spread10 input,.mini input[type=number]{width:100%}

/* ===== professional polish overrides ===== */
:root{--bg:#0b0e12;--bg2:#0e1319;--panel:#11161d;--panel2:#171e27;--line:#222b36;--text:#e8ecf1;--muted:#8793a2;--faint:#5f6c7b;--r:10px;
  --font:"Inter","SF Pro Text",-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
html,body{font-size:13.5px;letter-spacing:.005em;-webkit-font-smoothing:antialiased}
body{background:var(--bg)}
.top{background:#0b0e12f2;border-bottom:1px solid var(--line);padding:9px 20px}
.brand b{font-size:17px;font-weight:700;letter-spacing:.02em}
.brand span{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.btn{border-radius:7px;font-weight:600;background:var(--panel2)}
.btn.primary{background:#4cc9a0;color:#07201a;border-color:#4cc9a0}
.blk,.card,.k{border-radius:var(--r);box-shadow:none}
.blk h4{font-size:10.5px;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);font-weight:700;margin-bottom:8px}
.blk h4 small{text-transform:none;letter-spacing:0}
.card h3{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:700}
.card.ch h3{font-size:11.5px}
.k{padding:9px 13px}.k:before{width:2px;opacity:.9}
.k label{font-size:10px;letter-spacing:.09em;color:var(--faint);font-weight:600}
.k b{font-size:21px;font-weight:650;letter-spacing:-.01em}
.verdict{background:var(--panel)!important;border:1px solid var(--line)!important;border-left:3px solid var(--c,#4cc9a0)!important;font-weight:500;color:var(--text)!important;font-size:13.5px}
.verdict.good{--c:#4cc9a0}.verdict.warn{--c:#d6a85a}.verdict.bad{--c:#e5707a}
.verdict.good,.verdict.warn,.verdict.bad{color:var(--text)!important}
.pos{color:#4cc9a0}.neg{color:#e5707a}
.chip{border-radius:5px;font-size:11px;color:var(--muted)}
.seg{border:1px solid var(--line);background:var(--bg2)}.seg button.on{background:var(--panel2);color:var(--text)}
.link{color:#6ea8e0;font-weight:500}
input[type=number],input[type=text],select,textarea{border-radius:6px;background:var(--bg2)}
.tab.active{background:#4cc9a0;color:#07201a}
.menu{border-radius:10px}.menu b{font-weight:600;font-size:13px}
.mhead b{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.mpanel{border-radius:12px}
.switch span{background:#2a3441}.switch input:checked+span{background:#4cc9a0}
.badge{letter-spacing:.06em}
.notice{border-radius:8px}
.legend{font-size:11px}
.dot{background:#4cc9a0}.status{font-size:11.5px}
.preset{border-radius:8px}
.legend{flex-wrap:nowrap;white-space:nowrap;gap:10px}

.sessnote{font-size:11.5px;color:#9cf0d1;background:#4cc9a014;border:1px solid #4cc9a044;border-radius:8px;padding:6px 9px;margin:0 0 6px;line-height:1.35}.sessnote[hidden]{display:none}
