/* Daily Box Stats — light "sports section" aesthetic, mobile-first, no frameworks. */
:root{
  --paper:#f7f4ec; --card:#fffdf8; --ink:#1c1a15; --mut:#6f6a5c; --line:#ddd6c4;
  --nba:#c75b26; --nfl:#6b4f2a; --mlb:#b03046; --nhl:#2f6f8f;
  --acc:#1c1a15; --hl:#fff1b8; --rad:10px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{background:var(--paper);color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  min-height:100vh;font-variant-numeric:tabular-nums}
a{color:inherit}
.masthead{border-bottom:3px double var(--ink);background:var(--paper);
  position:sticky;top:0;z-index:30}
.mast-in{max-width:1060px;margin:0 auto;padding:12px 14px 8px;text-align:center}
.brand{font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:30px;
  letter-spacing:-.5px;text-decoration:none;color:var(--ink)}
.tagline{margin:3px 0 2px;color:var(--mut);font-size:12.5px}
.datenav{max-width:1060px;margin:0 auto;display:flex;align-items:center;gap:8px;padding:6px 14px 10px}
.datenav .dlabel{flex:1;text-align:center;font-weight:800;font-size:15px;
  font-family:Georgia,"Times New Roman",serif}
.datenav button{border:1px solid var(--ink);background:var(--card);color:var(--ink);
  border-radius:8px;padding:7px 14px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit}
.datenav button:disabled{opacity:.35;cursor:default}
main{max-width:1060px;margin:0 auto;padding:14px 14px 34px}
.loading,.empty{color:var(--mut);font-size:14.5px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--rad);padding:16px;line-height:1.55}
.empty .retry{margin-top:10px}
.btn{border:1px solid var(--ink);background:var(--card);color:var(--ink);border-radius:8px;
  padding:8px 14px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:inherit}

/* ---------- sport sections ---------- */
.sport{margin:0 0 26px}
.sport-head{display:flex;align-items:baseline;gap:10px;border-bottom:2px solid var(--ink);
  padding-bottom:5px;margin-bottom:10px}
.sport-dot{width:11px;height:11px;border-radius:3px;flex:0 0 auto;align-self:center}
.sport-name{font-family:Georgia,"Times New Roman",serif;font-size:22px;font-weight:700;margin:0}
.sport-full{margin-left:auto;font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap}
.sport-full:hover{text-decoration:underline}
.sport[data-sport="nba"] .sport-dot{background:var(--nba)} .sport[data-sport="nba"] .sport-full{color:var(--nba)}
.sport[data-sport="nfl"] .sport-dot{background:var(--nfl)} .sport[data-sport="nfl"] .sport-full{color:var(--nfl)}
.sport[data-sport="mlb"] .sport-dot{background:var(--mlb)} .sport[data-sport="mlb"] .sport-full{color:var(--mlb)}
.sport[data-sport="nhl"] .sport-dot{background:var(--nhl)} .sport[data-sport="nhl"] .sport-full{color:var(--nhl)}
.nogames{color:var(--mut);font-size:14px;background:var(--card);border:1px dashed var(--line);
  border-radius:var(--rad);padding:12px 14px}

/* ---------- score strip ---------- */
.strip{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  padding-bottom:6px;margin-bottom:12px;scrollbar-width:thin}
.gchip{flex:0 0 auto;min-width:172px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--rad);padding:8px 11px;text-decoration:none;color:var(--ink);display:block}
.gchip:hover{border-color:var(--ink)}
.gchip .row{display:flex;align-items:baseline;gap:6px;font-size:13.5px;padding:1.5px 0}
.gchip .ab{font-weight:800;width:38px}
.gchip .sc{margin-left:auto;font-weight:800}
.gchip .row.win .ab,.gchip .row.win .sc{font-weight:900}
.gchip .row.dim{color:var(--mut)}
.gchip .st{font-size:11px;color:var(--mut);margin-top:4px;font-weight:700;letter-spacing:.2px}
.gchip .st.live{color:#b3261e}
.gchip .st.live::before{content:"● ";font-size:9px;vertical-align:1px}

/* ---------- digest boards (front page) ---------- */
.digest{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:640px){.digest{grid-template-columns:1fr}}
.board{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);overflow:hidden}
.board h3{margin:0;padding:9px 12px;font-size:12px;letter-spacing:1.6px;color:var(--mut);
  border-bottom:1px solid var(--line);font-weight:800}
.board h3 b{color:var(--ink)}
.drow{display:flex;align-items:center;gap:9px;padding:8px 12px;text-decoration:none;color:var(--ink);
  border-bottom:1px solid #eee7d5}
.drow:last-child{border-bottom:0}
.drow:hover{background:#faf6ea}
.drow .rk{color:var(--mut);font-weight:800;width:16px;text-align:center;font-size:13px}
.drow .who{flex:1;min-width:0}
.drow .nm{font-weight:700;font-size:14.5px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drow .mt{color:var(--mut);font-size:11.5px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drow .val{font-size:19px;font-weight:900}
.board .none{padding:10px 12px;color:var(--mut);font-size:13px}

/* ---------- sport detail ---------- */
.cats{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 12px}
.cats button{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;
  padding:7px 13px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}
.cats button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.twrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);
  border-radius:var(--rad);background:var(--card)}
table.ld{width:100%;border-collapse:collapse;min-width:640px}
table.ld th,table.ld td{padding:8px 7px;font-size:13.5px;text-align:right;
  border-bottom:1px solid #eee7d5;white-space:nowrap}
table.ld th{font-size:10.5px;letter-spacing:1px;color:var(--mut);font-weight:800}
table.ld tr:last-child td{border-bottom:0}
table.ld tbody tr{cursor:pointer}
table.ld tbody tr:hover td{background:#faf6ea}
table.ld td.rk,table.ld th.rk{text-align:center;color:var(--mut);font-weight:800;width:32px}
table.ld td.pl,table.ld th.pl{text-align:left}
table.ld td.sorted,table.ld th.sorted{color:#b3541e;font-weight:900}
/* sortable headers (detail boards + box-score tables) */
table.ld th[data-col],table.bx th[data-ci]{cursor:pointer}
table.ld th.sorted::after,table.bx th.sorted::after{content:"▾";font-size:8px;margin-left:2px}
table.bx th.sorted,table.bx td.sorted{color:#b3541e;font-weight:800}
.pname{font-weight:700;font-size:14px}
.pmeta{color:var(--mut);font-size:11.5px}
.livenote{display:flex;align-items:center;gap:7px;color:var(--mut);font-size:12.5px;margin:0 0 10px}
.fbnote{color:#8a6d1e;background:#fdf6e0;border:1px solid #ecd9a0;border-radius:8px;font-size:12.5px;padding:6px 9px;margin:0 0 10px}
.livedot{width:8px;height:8px;border-radius:50%;background:#b3261e;flex:0 0 auto;
  animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* ---------- box score ---------- */
.backrow{display:flex;gap:14px;flex-wrap:wrap;margin:0 0 10px;font-size:13.5px;font-weight:700}
.backrow a{text-decoration:none}
.backrow a:hover{text-decoration:underline}
.boxhead{border-bottom:2px solid var(--ink);padding-bottom:8px;margin-bottom:12px}
.boxhead h1{font-family:Georgia,"Times New Roman",serif;font-size:24px;margin:0 0 3px}
.boxhead .st{font-size:13px;color:var(--mut);font-weight:700}
.boxhead .st.live{color:#b3261e}
table.lines{width:100%;border-collapse:collapse;background:var(--card);
  border:1px solid var(--line);border-radius:var(--rad);overflow:hidden;margin-bottom:14px}
table.lines th,table.lines td{padding:7px 8px;font-size:13.5px;text-align:right;border-bottom:1px solid #eee7d5}
table.lines th{font-size:10.5px;letter-spacing:1px;color:var(--mut)}
table.lines tr:last-child td{border-bottom:0}
table.lines td.tm,table.lines th.tm{text-align:left;font-weight:800}
table.lines td.tot{font-weight:900}
table.lines td.rhe{color:var(--mut)}
.teamtot{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:6px}
@media (max-width:640px){.teamtot{grid-template-columns:1fr}}
.ttot{background:var(--card);border:1px solid var(--line);border-radius:var(--rad);padding:10px 12px}
.ttot h4{margin:0 0 6px;font-size:13px}
.ttot dl{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0}
.ttot .ti{font-size:12px;color:var(--mut)}
.ttot .ti b{color:var(--ink);font-weight:800}
.teamblock{margin:18px 0 0}
.teamblock h2{font-family:Georgia,"Times New Roman",serif;font-size:19px;margin:0 0 4px}
.gname{font-size:11px;letter-spacing:1.6px;color:var(--mut);font-weight:800;margin:12px 0 5px}
table.bx{width:100%;border-collapse:collapse;min-width:560px}
table.bx th,table.bx td{padding:6.5px 6px;font-size:12.5px;text-align:right;
  border-bottom:1px solid #eee7d5;white-space:nowrap}
table.bx th{font-size:10px;letter-spacing:.8px;color:var(--mut);font-weight:800}
table.bx td.pl,table.bx th.pl{text-align:left;font-weight:600}
table.bx tr.tot td{font-weight:900;border-top:2px solid var(--line)}
table.bx tr.hl td{background:var(--hl)}
table.bx tr.dnp td{color:var(--mut)}
.pos{color:var(--mut);font-size:10.5px;font-weight:700;margin-left:5px}
.foot{max-width:1060px;margin:0 auto;padding:0 14px 26px;color:var(--mut);font-size:12px;line-height:1.6}

/* ---------- fitted phone layout (mirrors nbaranking Daily Leaders) ----------
   At <=700px every table switches to fixed layout with the per-column
   widths app.js measures from the actual content (the <colgroup> it emits):
   all stat columns stay, the player column flexes with ellipsis, number
   cells never wrap, and nothing scrolls sideways. Above 700px the colgroup
   widths are ignored and the roomy desktop layout applies. */
@media (min-width:701px){
  table.ld col,table.bx col{width:auto!important}
}
@media (max-width:700px){
  main{padding:12px 8px 30px}
  .twrap{overflow-x:visible}
  table.ld,table.bx{min-width:0;width:100%;table-layout:fixed}
  table.ld th,table.ld td{padding:7px 1px;font-size:11px;white-space:nowrap;overflow:hidden}
  table.ld th{font-size:9px;letter-spacing:.3px}
  table.bx th,table.bx td{padding:6px 1px;font-size:10px;white-space:nowrap;overflow:hidden}
  table.bx th{font-size:8px;letter-spacing:.2px}
  table.bx.micro th,table.bx.micro td{font-size:9.5px}
  table.bx.micro th{font-size:7.5px;letter-spacing:.15px}
  table.bx.dense th,table.bx.dense td{font-size:9px}
  table.bx.dense th{font-size:7.5px;letter-spacing:.15px}
  table.ld td.pl .pname{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  table.ld td.pl .pmeta{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  table.bx td.pl{text-overflow:ellipsis}
  table.lines{table-layout:fixed}
  table.lines th,table.lines td{padding:6px 1px;font-size:11.5px;white-space:nowrap;overflow:hidden}
  table.lines th{font-size:9px;letter-spacing:.3px}
  table.lines th.tm,table.lines td.tm{width:42px}
}
