*{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#0e1116;--panel:#161b23;--panel2:#1c222c;--line:#262e3a;--tx:#e6edf3;--mut:#8b98a8;
 --acc:#4fa3ff;--go:#2ea043;--warn:#d29922;--bad:#f85149;
 --qb:#f78166;--rb:#3fb950;--wr:#58a6ff;--te:#d2a8ff;--k:#8b98a8;--dst:#e3b341;--cell:13px;--cols:10}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--tx);font:16px/1.4 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;min-height:100vh;padding-bottom:env(safe-area-inset-bottom)}
button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
.lbl{font-size:11px;letter-spacing:.14em;color:var(--mut);font-weight:700}
.mut{color:var(--mut)}
.btn{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:8px 14px;font-size:14px;font-weight:600;min-height:40px}
.btn.on{background:var(--acc);border-color:var(--acc);color:#04121f}

/* header */
header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:var(--panel);border-bottom:1px solid var(--line)}
.brand{font-weight:800;font-size:17px;letter-spacing:.02em;display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.pip{font-size:11px;font-weight:600;color:var(--mut);display:inline-flex;align-items:center;gap:5px;letter-spacing:.04em}
.pip i{width:9px;height:9px;border-radius:50%;background:var(--mut);display:inline-block}
.pip.live i{background:var(--go);box-shadow:0 0 8px var(--go)}
.pip.polling i{background:var(--warn)}
.pip.offline i{background:var(--bad)}
.pip.offline{color:var(--bad)}

/* on-the-clock banner */
.clock{display:flex;gap:12px;padding:12px 14px;background:linear-gradient(120deg,#14233a,#12291b);border-bottom:1px solid var(--line);align-items:stretch;flex-wrap:wrap}
.clock .oc{flex:1 1 240px;min-width:0}
.clock .lp{flex:1 1 160px;min-width:0;border-left:1px solid var(--line);padding-left:12px}
.octeam{font-size:clamp(24px,7vw,40px);font-weight:900;line-height:1.1;word-break:break-word}
.octeam.done{color:var(--go)}
.ocmeta{display:flex;gap:14px;flex-wrap:wrap;color:var(--mut);font-size:14px;margin-top:4px}
.ocmeta b{color:var(--tx)}
#lastpick{font-size:16px;font-weight:600;margin-top:4px;word-break:break-word}
#lastpick small{color:var(--mut);font-weight:500}

/* tabs */
.tabs{display:flex;gap:6px;padding:10px 14px;align-items:center;overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--bg);position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line)}
.tab{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:8px 14px;font-weight:700;font-size:14px;min-height:40px}
.tab.on{background:var(--acc);border-color:var(--acc);color:#04121f}
.tabs .sp{flex:1}
.tabs .tab,.tabs .btn{flex:none}
@media(max-width:360px){.tabs{gap:4px;padding:8px 10px}.tab,.btn{padding:8px 10px;font-size:13px}}

main{display:block;padding:12px 14px}
.pane{min-width:0}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:12px}
.card h2{font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-bottom:8px}
.card h2 small{text-transform:none;letter-spacing:0;font-weight:500}

/* position pills */
.pos{display:inline-block;font-size:11px;font-weight:800;padding:2px 6px;border-radius:4px;color:#06101c;background:var(--mut);min-width:32px;text-align:center}
.pos.QB{background:var(--qb)}.pos.RB{background:var(--rb)}.pos.WR{background:var(--wr)}
.pos.TE{background:var(--te)}.pos.K{background:var(--k)}.pos.DST{background:var(--dst)}
.cQB{color:var(--qb)}.cRB{color:var(--rb)}.cWR{color:var(--wr)}.cTE{color:var(--te)}.cK{color:var(--k)}.cDST{color:var(--dst)}

/* by-round list */
.rhead{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;letter-spacing:.1em;color:var(--mut);font-weight:700;margin:14px 0 6px}
.row{display:flex;align-items:center;gap:10px;padding:10px 10px;background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-bottom:6px;min-height:48px}
.row.now{border-color:var(--go);background:rgba(46,160,67,.12);animation:pulse 1.6s infinite}
.row .n{color:var(--mut);font-variant-numeric:tabular-nums;width:44px;font-size:13px;flex:none}
.row .who{flex:1;min-width:0}
.row .who b{display:block;line-height:1.2}
.row .who span{font-size:13px;color:var(--mut)}
.row .tm{text-align:right;font-size:12px;color:var(--mut);max-width:30%;flex:none;line-height:1.2}

/* grid */
.hint{font-size:12px;color:var(--mut);margin-bottom:6px}
.gridwrap{overflow:auto;max-height:calc(100vh - 70px);border:1px solid var(--line);border-radius:10px;background:var(--panel);-webkit-overflow-scrolling:touch}
table{border-collapse:separate;border-spacing:0;width:100%;min-width:calc(var(--cols)*118px + 42px);table-layout:fixed;font-size:var(--cell)}
th,td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:5px 6px;text-align:left;vertical-align:top}
th{position:sticky;top:0;background:var(--panel2);z-index:3;padding:0}
th.rnd,td.rnd{position:sticky;left:0;background:var(--panel2);z-index:2;width:42px;min-width:42px;color:var(--mut);font-weight:700;text-align:center;font-variant-numeric:tabular-nums}
th.rnd{z-index:4}
th button{display:block;width:100%;height:100%;min-height:44px;background:none;border:0;padding:5px 6px;text-align:left;font-weight:700;font-size:var(--cell);line-height:1.2;color:var(--tx);overflow:hidden;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
th button.oc{color:var(--go)}
td{width:calc((100% - 42px)/var(--cols));height:46px}
td .pn{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
td .pm{display:block;font-size:.85em;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
td .pm b{font-weight:800}
td.e .pm{opacity:.5}
td.now{background:rgba(46,160,67,.22);box-shadow:inset 0 0 0 2px var(--go);animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{box-shadow:inset 0 0 0 2px var(--go)}50%{box-shadow:inset 0 0 0 2px rgba(46,160,67,.25)}}

/* rosters */
.chips{display:flex;gap:6px;overflow-x:auto;padding:2px 0 10px;-webkit-overflow-scrolling:touch}
.chip{flex:none;background:var(--panel2);border:1px solid var(--line);border-radius:20px;padding:8px 14px;font-size:14px;font-weight:600;min-height:40px;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chip.on{background:var(--acc);border-color:var(--acc);color:#04121f}
.rgroup{margin-bottom:10px}
.rgroup h3{font-size:12px;letter-spacing:.1em;margin:8px 0 4px}
.rst{display:flex;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid var(--line);min-height:44px}
.rst:last-child{border-bottom:0}
.rst .nm{flex:1;min-width:0;font-weight:600;line-height:1.2}
.rst .meta{color:var(--mut);font-size:13px;font-variant-numeric:tabular-nums;flex:none}
.rst .rk{color:var(--mut);width:28px;font-size:13px;text-align:right;flex:none;font-variant-numeric:tabular-nums}

footer{display:flex;justify-content:space-between;gap:10px;padding:12px 14px 20px;color:var(--mut);font-size:13px;border-top:1px solid var(--line);margin-top:12px}
#done.ok{color:var(--go);font-weight:700}

.wide{display:none}
@media(min-width:1000px){
  .wide{display:block}
  .narrow{display:none!important}
  main{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;padding:14px 18px}
  .octeam{font-size:40px}
  .tabs{position:static}
  .gridwrap{max-height:calc(100vh - 120px)}
  table{min-width:0}
}

/* TV mode */
body.tv{font-size:20px;--cell:18px;--cellh:64px}
body.tv header,body.tv .tabs,body.tv footer,body.tv #side{display:none}
body.tv .tvx{position:fixed;top:8px;right:10px;z-index:50;opacity:.3;display:flex;gap:6px;transition:opacity .2s}
body.tv .tvx:hover{opacity:1}
body.tv .tvx .btn{font-size:13px;min-height:30px;padding:4px 10px}
.tvx{display:none}
body.tv .clock{padding:16px 24px;background:linear-gradient(120deg,#132a4d,#10351f)}
body.tv .octeam{font-size:clamp(40px,6vw,84px)}
body.tv .ocmeta,body.tv #lastpick{font-size:clamp(18px,2vw,28px)}
body.tv main{display:block;padding:10px}
body.tv .hint{display:none}
body.tv .gridwrap{max-height:none;overflow:visible}
body.tv th.rnd,body.tv td.rnd{width:56px;min-width:56px;font-size:20px}
body.tv table{min-width:0}
body.tv td{width:calc((100vw - 76px)/var(--cols));height:58px;padding:5px 8px}
body.tv th button{min-height:52px;font-size:17px}
body.tv td .pn{font-size:18px}
body.tv td .pm{font-size:15px}

/* ---------- light mode ---------- */
html[data-theme=light]{color-scheme:light}
html[data-theme=light] body{--bg:#f3f5f8;--panel:#ffffff;--panel2:#eef1f5;--line:#d4dae3;--tx:#14191f;--mut:#5c6877;
 --acc:#0b63c8;--go:#1f8a3b;--warn:#b26b00;--bad:#c9303a;--qb:#e0553a;--rb:#1f8a3b;--wr:#1a6fd1;--te:#7b3fc4;--k:#5c6877;--dst:#b8860b}
html[data-theme=light] .clock{background:linear-gradient(120deg,#dbe7fa,#dcefe0)}
html[data-theme=light] body.tv .clock{background:linear-gradient(120deg,#cfe0fb,#cfeedb)}
html[data-theme=light] .btn.on{color:#fff}
.btn.off{opacity:.6}
html[data-theme=light] .tab.on,html[data-theme=light] .chip.on{color:#fff}
html[data-theme=light] .pos{color:#fff}
