:root{
  --bg:#0a0b0d; --panel:#111317; --line:#1e2229; --line2:#2a2f38;
  --ink:#e8e6e1; --dim:#8b8f97; --dimmer:#5c616b;
  --acc:#d9a441; --acc2:#4a9dd9; --pos:#5fb87a; --neg:#d9615a;
  --qb:#d9a441; --rb:#5fb87a; --wr:#4a9dd9; --te:#b47fd9; --idp:#8b8f97;
  --mono:ui-monospace,"SF Mono",Menlo,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased}
header{border-bottom:1px solid var(--line);padding:14px 22px;display:flex;align-items:baseline;gap:20px;
  position:sticky;top:0;background:rgba(10,11,13,.94);backdrop-filter:blur(12px);z-index:50;flex-wrap:wrap}
h1{font-size:15px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
h1 span{color:var(--acc)}
nav{display:flex;gap:2px;margin-left:auto;flex-wrap:wrap}
nav button,.lg button{background:none;border:1px solid transparent;color:var(--dim);padding:6px 13px;
  font:inherit;font-size:13px;cursor:pointer;border-radius:5px;transition:.12s}
nav button:hover,.lg button:hover{color:var(--ink);background:var(--panel)}
nav button.on{color:var(--bg);background:var(--acc);font-weight:600}
.lg{display:flex;gap:2px;border:1px solid var(--line);border-radius:6px;padding:2px}
.lg button.on{background:var(--line2);color:var(--ink)}
main{padding:22px;max-width:1500px;margin:0 auto}
.view{display:none}.view.on{display:block}
.lede{color:var(--dim);font-size:14px;max-width:74ch;margin-bottom:20px;line-height:1.65}
.lede b{color:var(--ink);font-weight:600}
.bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
input,select,textarea{background:var(--panel);border:1px solid var(--line2);color:var(--ink);
  padding:8px 11px;border-radius:6px;font:inherit;font-size:14px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acc)}
textarea{width:100%;resize:vertical;line-height:1.55;font-size:15px}
label{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--dimmer);
  display:block;margin-bottom:5px}
.f{display:flex;flex-direction:column}
button.go{background:var(--acc);color:var(--bg);border:none;padding:9px 18px;border-radius:6px;
  font:inherit;font-weight:600;font-size:14px;cursor:pointer}
button.go:hover{filter:brightness(1.1)} button.go:disabled{opacity:.45;cursor:default}
button.gh{background:none;border:1px solid var(--line2);color:var(--dim);padding:7px 13px;
  border-radius:6px;font:inherit;font-size:13px;cursor:pointer}
button.gh:hover{color:var(--ink);border-color:var(--dim)}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:left;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--dimmer);
  padding:7px 9px;border-bottom:1px solid var(--line2);cursor:pointer;white-space:nowrap;user-select:none}
th:hover{color:var(--ink)}
td{padding:7px 9px;border-bottom:1px solid var(--line)}
tbody tr:hover{background:var(--panel)}
tbody tr{cursor:pointer}
.num{font-family:var(--mono);text-align:right;font-size:12.5px;font-variant-numeric:tabular-nums}
.pos{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.03em}
.QB{color:var(--qb)}.RB{color:var(--rb)}.WR{color:var(--wr)}.TE{color:var(--te)}
.LB,.DE,.S,.DB,.CB,.DT{color:var(--idp)}
.up{color:var(--pos)}.dn{color:var(--neg)}
.wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.panel{border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:18px;margin-bottom:16px}
.grid{display:grid;gap:14px}
.hint{font-size:12.5px;color:var(--dimmer);margin-top:7px;line-height:1.5}
.tag{display:inline-block;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;
  border:1px solid var(--line2);color:var(--dim);padding:2px 7px;border-radius:99px;margin-right:5px}
.tag.a{border-color:var(--acc);color:var(--acc)}
#chart{width:100%;height:auto;display:block}
.dot{cursor:pointer;transition:.1s}.dot:hover{stroke:var(--ink);stroke-width:2}
.answer{white-space:pre-wrap;line-height:1.7;font-size:15px;border-left:2px solid var(--acc);
  padding:4px 0 4px 18px;margin-top:16px}
.qold{border-top:1px solid var(--line);padding:16px 0;font-size:14px}
.qold .q{color:var(--acc);font-weight:600;margin-bottom:7px}
.qold .a{color:var(--dim);white-space:pre-wrap;line-height:1.65}
dialog{background:var(--panel);color:var(--ink);border:1px solid var(--line2);border-radius:10px;
  padding:0;max-width:820px;width:92vw;max-height:86vh}
dialog::backdrop{background:rgba(0,0,0,.72)}
.dh{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;align-items:baseline;gap:12px}
.dh h2{font-size:19px}.db{padding:20px 22px;overflow-y:auto;max-height:64vh}
.kv{display:grid;grid-template-columns:auto 1fr;gap:5px 16px;font-size:13.5px;margin-bottom:16px}
.kv dt{color:var(--dimmer);font-size:12px}.kv dd{font-family:var(--mono);font-size:12.5px}
h3{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--acc);margin:18px 0 8px}
ul.why{list-style:none;font-size:13px;line-height:1.65;color:var(--dim)}
ul.why li{padding:3px 0 3px 14px;border-left:1px solid var(--line2);margin-bottom:2px}
.err{color:var(--neg);font-size:13.5px;white-space:pre-wrap;line-height:1.6}
.spin{color:var(--dim);font-size:14px}
@media(max-width:760px){main{padding:14px}header{padding:12px 14px}.bar{gap:8px}}

/* written-out graded stat lines */
.pname{font-size:14px;margin-bottom:2px}
.pwhy{font-size:12.5px;color:var(--dim);line-height:1.45;margin-bottom:5px}
.sheet{display:flex;flex-wrap:wrap;gap:5px}
.chip{font-size:11.5px;color:var(--dimmer);border:1px solid var(--line);border-radius:5px;
  padding:2px 7px;white-space:nowrap;background:#0d0f12}
.chip b{color:var(--ink);font-family:var(--mono);font-weight:500;font-size:11.5px;margin:0 3px}
.chip i{font-style:normal;font-weight:600;font-size:10px;letter-spacing:.05em;text-transform:uppercase}

/* argument thread */
.turn{margin-bottom:16px}
.turn .who{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--acc);margin-bottom:4px}
.turn.you{border-left:2px solid var(--line2);padding-left:16px;color:var(--ink);font-size:14.5px;line-height:1.6}
.verdict{display:inline-block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;
  border:1px solid;border-radius:99px;padding:3px 11px;margin-bottom:9px}

/* trade */
.tradegrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
@media(max-width:860px){.tradegrid{grid-template-columns:1fr}}
.tside{margin-top:12px;display:flex;flex-direction:column;gap:9px}
.tcard{border:1px solid var(--line);border-radius:7px;padding:10px 12px;background:#0d0f12}
.tcard .top{display:flex;align-items:baseline;gap:9px;margin-bottom:3px}
.tcard .nm{font-size:14.5px}
.tcard .v{margin-left:auto;font-family:var(--mono);font-size:13px;color:var(--acc)}
.tcard .sub{font-size:12px;color:var(--dim);margin-bottom:6px}
.tcard .x{background:none;border:none;color:var(--dimmer);cursor:pointer;font-size:16px;line-height:1;padding:0 2px}
.tcard .x:hover{color:var(--neg)}
.scale{display:flex;height:9px;border-radius:99px;overflow:hidden;background:var(--line);margin:12px 0 8px}
.scale i{display:block}
.tnet{font-size:26px;font-weight:600;letter-spacing:-.01em}
.tsum{display:flex;gap:26px;flex-wrap:wrap;align-items:baseline}
.tsum .lab{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--dimmer)}
.flag{font-size:12.5px;color:var(--dim);border-left:2px solid var(--acc);padding:3px 0 3px 12px;margin-top:6px;line-height:1.5}

/* trade player picker */
.picks{display:flex;flex-direction:column;gap:3px;margin-top:7px}
.pick{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:#0d0f12;
  border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:7px 11px;
  font:inherit;font-size:13.5px;cursor:pointer}
.pick:hover{border-color:var(--acc);background:var(--line)}
.pick .hint{margin-left:auto;font-size:11.5px}

/* pick adder */
.addpick{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px;
  padding-top:10px;border-top:1px solid var(--line)}
.addpick .lab{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--dimmer)}
.addpick select{padding:5px 8px;font-size:13px}
.addpick .pv{font-family:var(--mono);font-size:12px;color:var(--acc)}

/* grouped chart controls + mover guidance */
.ctrlgrp{border-top:1px solid var(--line);padding-top:11px;margin-bottom:11px}
.ctrlgrp:first-of-type{border-top:none;padding-top:0}
.gtitle{display:block;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--acc);margin-bottom:8px}
.ctrlgrp .bar{margin-bottom:0}
.moverbox{border:1px solid var(--line2);border-radius:8px;padding:14px 16px;margin:4px 0 14px;background:#0d0f12}
.mh{font-size:13.5px;color:var(--ink);margin-bottom:7px;font-weight:600}
.presets{display:flex;gap:7px;flex-wrap:wrap}
.presets button{font-size:12.5px}

/* beyond-the-value cards */
.bv{border-left:2px solid;padding:8px 0 8px 14px;margin-top:10px}
.bvh{font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;margin-bottom:4px}
.bvb{font-size:13.5px;color:var(--dim);line-height:1.55}
.bvb b{color:var(--ink);font-weight:600}

/* challenge verdicts — the engine's adversarial pass on itself, distinct from the user's own edits */
.tag.c-bad  { background:#3a1416; color:#ff8b8b; border-color:#5b1f22; }
.tag.c-warn { background:#3a2c12; color:#ffc46b; border-color:#5b451c; }
.tag.c-good { background:#12321f; color:#69dd9b; border-color:#1d4d30; }
.tag.c-soft { background:#1c2230; color:#8fa6c4; border-color:#2b3546; }
.tag.c-ok   { background:#1a2a26; color:#7fd8c2; border-color:#26413a; }

.tierbox{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:#0e1116}
.tierhead{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.tierhead b{font-size:15px}
.tpick{display:flex;flex-wrap:wrap;gap:6px}
.tpick .gh{padding:4px 8px;font-size:12px}

.adj{margin:8px 0 4px;padding:8px 10px;border-radius:8px;border:1px solid #2b4a35;
     background:#0f1c14;color:#a9e6c1;font-size:13px;line-height:1.5}
.adj b{color:#69dd9b}
.adj.bad{border-color:#5b1f22;background:#1c0f10;color:#ff9b9b}
.adj .gh{margin-left:8px;padding:2px 8px;font-size:12px}

/* Draft Lab */
.dlgrid{display:flex;flex-direction:column;gap:14px}
.dlbox{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#0e1116}
.dlbox h3{margin:0 0 4px;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold)}
.dlbox .hint{display:block;margin-bottom:8px;line-height:1.5}
.dlbox table{font-size:13px}

/* ---------------- Draft Night: phone first ---------------- */
.dnbar{position:sticky;top:0;z-index:20;background:#0b0e13;border-bottom:1px solid var(--line);
  padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.dnpick{font-size:16px;color:var(--gold);letter-spacing:.04em}
.dnroster{display:flex;gap:6px;flex-wrap:wrap}
.dnneed{background:#241a08;border:1px solid #5b451c;color:#ffc46b;border-radius:6px;padding:2px 8px;font-size:12px}
.dnneed.ok{background:#12241a;border-color:#1d4d30;color:#69dd9b}
.dnalert{margin:8px 12px;padding:8px 10px;border-radius:8px;border:1px solid #5b451c;
  background:#241a08;color:#ffc46b;font-size:13px}
.dnalert.run{border-color:#5b1f22;background:#2a1113;color:#ff9b9b}
.dnctl{display:flex;gap:6px;flex-wrap:wrap;padding:8px 12px;align-items:center}
.dnchip{background:#151a22;border:1px solid var(--line);color:var(--dim);border-radius:999px;
  padding:8px 14px;font-size:14px;cursor:pointer}
.dnchip.on{background:var(--gold);color:#000;border-color:var(--gold);font-weight:600}
#dnq{flex:1;min-width:110px;padding:8px 10px;font-size:15px;border-radius:8px;
  background:#0e1116;border:1px solid var(--line);color:var(--fg)}
.dnlist{display:flex;flex-direction:column}
.dnrow{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line)}
.dnmain{flex:1;min-width:0}
.dnname{font-size:16px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dnsub{font-size:12px;color:var(--dim);margin-top:2px}
.dnnums{text-align:right;min-width:52px}
.dnovr{font-size:18px;font-weight:600}
.dnsv{font-size:12px;color:var(--dim)}
.dnsv.ok{color:#69dd9b}.dnsv.mid{color:#ffc46b}.dnsv.bad{color:#ff8b8b}
.dnacts{display:flex;flex-direction:column;gap:4px}
.dnbtn{border-radius:8px;padding:8px 10px;font-size:13px;min-width:58px;cursor:pointer;
  background:#151a22;border:1px solid var(--line);color:var(--dim)}
.dnbtn.mine{border-color:#1d4d30;color:#69dd9b}
.wf{font-size:11px;padding:1px 5px;border-radius:4px;background:#1c2230;color:#8fa6c4;margin-left:4px}
.wf.up{background:#12321f;color:#69dd9b}
.wf.dn{background:#3a1416;color:#ff8b8b}
.dnmyteam{padding:12px;border-top:1px solid var(--line);font-size:13px}
@media(max-width:640px){
  nav button{padding:8px 10px;font-size:13px}
  .dnname{font-size:17px}
  .dnbtn{min-width:64px;padding:10px 12px}
}

.dnslot{display:flex;gap:4px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--dim)}
.dnsl{background:#151a22;border:1px solid var(--line);color:var(--dim);border-radius:6px;
  padding:5px 9px;font-size:13px;cursor:pointer;min-width:30px}
.dnsl.on{background:var(--gold);color:#000;border-color:var(--gold);font-weight:700}
.dnpanel{margin:10px 12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#0e1116}
.dnpanel h4{margin:0 0 4px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.dnt{width:100%;border-collapse:collapse;font-size:14px}
.dnt td{padding:7px 4px;border-bottom:1px solid var(--line);vertical-align:top}
.dnt td.num{text-align:right;font-size:17px;font-weight:600}
.dnt td.num.bad{color:#ff8b8b}.dnt td.num.mid{color:#ffc46b}.dnt td.num.ok{color:#69dd9b}
.dnfall{padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}
#dnpickedit{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
#dnpicks{flex:1;min-width:200px;padding:8px 10px;font-size:14px;border-radius:8px;
  background:#0e1116;border:1px solid var(--line);color:var(--fg)}
.dnnudge{display:flex;gap:3px;margin-top:3px}
.dnnudge button{background:#151a22;border:1px solid var(--line);color:var(--dim);
  border-radius:6px;padding:5px 7px;font-size:11px;cursor:pointer}
.dnpanel.tu{border-color:var(--gold)}
.dnverdict{margin:6px 0 4px;font-size:15px;font-weight:600}
.dnverdict.ok{color:#69dd9b}.dnverdict.mid{color:#ffc46b}.dnverdict.bad{color:#ff8b8b}
.dnask{display:flex;gap:6px}
#dnq2{flex:1;padding:10px;font-size:15px;border-radius:8px;background:#0e1116;
  border:1px solid var(--line);color:var(--fg)}
.dnansbox{margin-top:8px;font-size:14px;line-height:1.55}
.dnansbox .answer{white-space:pre-wrap}
.dnt tr.ismine td{background:#12241a}

/* stripped draft board */
.dnwait{display:flex;gap:6px;padding:8px 12px;overflow-x:auto}
.dnwaitcell{flex:1;min-width:76px;text-align:center;padding:7px 4px;border:1px solid var(--line);
  border-radius:8px;background:#0e1116}
.dnwaitcell b{display:block;font-size:19px;line-height:1.2}
.dnwaitcell b.bad{color:#ff8b8b}.dnwaitcell b.mid{color:#ffc46b}.dnwaitcell b.ok{color:#69dd9b}
.dnwaitcell .hint{font-size:11px}
.dnovr.val-up{color:#69dd9b}
.dnovr.val-dn{color:#ff8b8b}

/* --- draft board density: he has to scan 20 names in 30 seconds, not 3 --- */
.dnrow{padding:6px 10px;gap:8px;align-items:center}
.dnname{font-size:15px;line-height:1.2}
.dnsub{font-size:11px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dnnums{min-width:44px}
.dnovr{font-size:16px;line-height:1.1}
.dnsv{font-size:11px}
.dnacts{flex-direction:row;gap:4px;align-items:center}
.dnbtn{min-width:0;padding:7px 9px;font-size:12px}
.dnnudge{flex-direction:column;gap:2px;margin-top:0}
.dnnudge button{padding:2px 5px;font-size:10px;line-height:1.1}
.dnwaitcell{padding:5px 3px;min-width:64px}
.dnwaitcell b{font-size:16px}
.dnbar{padding:7px 10px;gap:4px}
.dnpick{font-size:15px}
.dnctl{padding:6px 10px;gap:5px}
.dnchip{padding:6px 11px;font-size:13px}
#dnq{padding:6px 9px;font-size:14px}
.dnroster{gap:4px}
.dnneed{padding:1px 6px;font-size:11px}
@media(max-width:640px){ .dnname{font-size:15px} .dnbtn{min-width:0;padding:7px 9px} }

/* --- reclaim vertical space on a phone: the list is what matters --- */
@media(max-width:640px){
  header{padding:6px 10px !important}
  nav{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;
      gap:2px;padding-bottom:2px;scrollbar-width:none}
  nav::-webkit-scrollbar{display:none}
  nav button{white-space:nowrap;padding:6px 9px;font-size:12px;flex:0 0 auto}
  .lg{transform:scale(.9);transform-origin:left center}
  .dnwait{padding:5px 10px;gap:4px}
  .dnwaitcell{min-width:58px;padding:4px 2px}
  .dnwaitcell b{font-size:15px}
  .dnwaitcell .hint{font-size:10px}
  .dnbar{padding:5px 10px}
  .dnpick{font-size:14px}
  .dnctl{padding:5px 10px}
}

/* ---- in-season tools ---- */
.tag.warnt{background:rgba(217,164,65,.16);color:#d9a441;border-color:rgba(217,164,65,.35)}
details.panel{padding:0}
details.panel>summary{cursor:pointer;padding:14px 16px;list-style:none;user-select:none;
  font-size:14px;color:#c9ced6;border-radius:10px}
details.panel>summary::-webkit-details-marker{display:none}
details.panel>summary:before{content:"▸";display:inline-block;width:16px;color:#6b7079;
  transition:transform .15s}
details.panel[open]>summary:before{transform:rotate(90deg)}
details.panel>summary:hover{background:rgba(255,255,255,.03)}
details.panel>*:not(summary){padding:0 16px 14px}
details.panel>.wrap{padding:0 10px 12px}

/* ============================================================================
   ROUND 52 — SIDEBAR SHELL
   Fifteen flat buttons in one row was the complaint, but the row was the symptom.
   The tabs were grouped by what kind of data they hold instead of by what Jonah is
   trying to DO, so on a Sunday morning the thing he needs sat between Chart Lab and
   Season Odds. Grouped by job, This Week first. Appended last so it supersedes the
   original flat-nav rules above without deleting them.
   ============================================================================ */
header{padding:9px 18px;align-items:center;gap:14px}
#navtoggle{display:flex;flex-direction:column;justify-content:center;gap:4px;width:34px;height:30px;
  background:none;border:1px solid var(--line);border-radius:7px;cursor:pointer;padding:0 8px;flex:0 0 auto}
#navtoggle span{display:block;height:1.5px;width:100%;background:var(--dim);border-radius:2px;transition:.15s}
#navtoggle:hover{border-color:var(--dim)}
#navtoggle:hover span{background:var(--acc)}
.wkstat{margin-left:auto;font-size:12px;color:var(--dim);font-family:var(--mono);text-align:right;line-height:1.35}
.wkstat b{color:var(--acc);font-weight:600}
.wkstat .q{color:var(--neg)}

.shell{display:flex;align-items:flex-start;max-width:1680px;margin:0 auto}
#side{flex:0 0 196px;position:sticky;top:49px;align-self:flex-start;
  max-height:calc(100vh - 49px);overflow-y:auto;padding:18px 10px 40px;
  border-right:1px solid var(--line);scrollbar-width:thin}
.shell.nav-off #side{display:none}
main{padding:22px 24px;max-width:none;margin:0;flex:1;min-width:0}

nav{display:block;margin:0;gap:0;flex-wrap:nowrap}
.ngrp{margin-bottom:19px;display:flex;flex-direction:column;gap:1px}
.ngrp:last-child{margin-bottom:0}
.nglabel{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dimmer);
  padding:0 10px 7px;font-weight:700}
nav button{text-align:left;width:100%;padding:7px 10px;font-size:13.5px;border-radius:6px}
nav button.on{color:var(--bg);background:var(--acc);font-weight:600}

@media(max-width:860px){
  .shell{display:block}
  #side{position:static;flex:none;max-height:none;border-right:none;border-bottom:1px solid var(--line);
    padding:7px 10px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
  #side::-webkit-scrollbar{display:none}
  nav{display:flex;gap:14px;flex-wrap:nowrap}
  .ngrp{flex-direction:row;margin-bottom:0;gap:2px;align-items:center;flex:0 0 auto}
  .nglabel{display:none}
  nav button{width:auto;white-space:nowrap;flex:0 0 auto;padding:6px 10px;font-size:12.5px}
  main{padding:16px 12px}
  .wkstat{font-size:11px}
}

/* ---------------- Love / Hate ---------------- */
.lh{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
@media(max-width:900px){.lh{grid-template-columns:1fr}}
.lhcol{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}
.lhhead{padding:12px 14px;font-size:11.5px;letter-spacing:.11em;text-transform:uppercase;font-weight:700;
  border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.lhhead.love{color:var(--pos);background:rgba(95,184,122,.07)}
.lhhead.hate{color:var(--neg);background:rgba(217,97,90,.07)}
.lhhead small{margin-left:auto;font-weight:400;letter-spacing:0;text-transform:none;color:var(--dimmer);font-size:11px}
.lhrow{display:flex;align-items:center;gap:9px;padding:9px 14px;border-bottom:1px solid var(--line);
  font-size:13.5px;cursor:pointer}
.lhrow:last-child{border-bottom:none}
.lhrow:hover{background:rgba(255,255,255,.03)}
.lhn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lhmeta{font-size:11px;color:var(--dimmer);font-family:var(--mono)}
.lhnum{font-family:var(--mono);font-size:12px;color:var(--dim);min-width:92px;text-align:right;flex:0 0 auto}
.lhbar{width:56px;height:5px;border-radius:3px;background:var(--line2);overflow:hidden;flex:0 0 56px}
.lhbar i{display:block;height:100%;border-radius:3px}
.lhg{font-family:var(--mono);font-weight:700;min-width:50px;text-align:right;flex:0 0 auto;font-size:13px}
.lhg.up{color:var(--pos)} .lhg.dn{color:var(--neg)}

/* ---------------- Lock Sheet (round 57) — built for a phone on Sunday morning ---------------- */
.lock{max-width:720px}
.lockhead{display:flex;justify-content:space-between;align-items:center;gap:12px}
.lockwk{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);font-weight:700}
.lockvs{font-size:18px;margin-top:2px}
.lockodds{display:flex;flex-direction:column;align-items:flex-end;font-family:var(--mono)}
.lockodds b{font-size:26px;line-height:1}.lockodds span{font-size:11px;color:var(--dim)}
.lockodds.up b{color:var(--pos)}.lockodds.dn b{color:var(--neg)}
.lockswap{border:1px solid var(--line);border-left:4px solid var(--acc);border-radius:8px;padding:10px 12px;margin:0 0 12px;
  background:var(--panel);font-size:14px;line-height:1.45}
.lockswap.bad{border-left-color:var(--neg)}
.lockrows{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}
.lockrow{display:grid;grid-template-columns:44px 1fr auto;gap:8px;align-items:center;padding:9px 10px;border-bottom:1px solid var(--line)}
.lockrow:last-child{border-bottom:none}
.lockrow.bad{background:rgba(217,97,90,.08)}.lockrow.mid{background:rgba(255,196,107,.06)}
.lslot{font-family:var(--mono);font-size:12px;color:var(--dim)}
.lmain{min-width:0}.lmain b{font-size:14.5px}.lpos{font-size:11px;color:var(--dimmer)}
.lsub{font-size:12px;color:var(--dim);margin-top:1px}
.lstat{font-size:11.5px;font-weight:700;color:#ffc46b;margin-top:2px}
.lockrow.bad .lstat{color:var(--neg)}
.lnums{display:flex;gap:10px;font-family:var(--mono);text-align:right}
.lnums div{display:flex;flex-direction:column;min-width:40px}.lnums b{font-size:14px}.lnums span{font-size:10px;color:var(--dimmer)}
.lockgames{margin-top:12px}.lockgame{font-size:13.5px;padding:4px 0;border-bottom:1px dashed var(--line)}
.lockgame:last-of-type{border-bottom:none}
/* ---------------- Scorecard (round 57) ---------------- */
.scgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0}
.scgrid>div{border:1px solid var(--line);border-radius:8px;padding:10px;background:rgba(255,255,255,.02)}
.sclab{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.scbig{font-family:var(--mono);font-size:22px;font-weight:700;margin-top:3px}
.scbig.up{color:var(--pos)}.scbig.dn{color:var(--neg)}
@media(max-width:640px){
  .scgrid{grid-template-columns:1fr 1fr 1fr;gap:6px}.scbig{font-size:17px}
  .lockrow{grid-template-columns:36px 1fr auto;padding:9px 8px}
  .lnums{gap:6px}.lnums div{min-width:34px}
  .panel{padding:12px}
  table{font-size:12.5px}
}
.lockrow.note .lstat{color:var(--dimmer);font-weight:400}

/* chart lab: stat search + three filters (round 59) */
.statsearch input{width:100%;margin-top:6px;font-size:13px;padding:6px 9px}
.statsearch .picks{max-height:320px;overflow:auto}
.cfilt{min-width:230px;flex:1 1 230px}
.cfstat{min-height:22px;font-size:13.5px;display:flex;align-items:center;gap:6px}
.cfrow{display:flex;gap:6px;margin-top:6px}
.cfrow select{padding:6px 8px;font-size:13px}.cfrow input{width:100px;padding:6px 9px;font-size:13px}
.cfx{background:none;border:none;color:var(--dim);font-size:17px;cursor:pointer;line-height:1;padding:0 4px}
.cfx:hover{color:var(--neg)}
