/* BPD // TACTICAL — shared design system */

:root{
  --bg:#03070c; --panel:rgba(8,20,32,.72); --line:rgba(0,229,255,.22);
  --line2:rgba(0,229,255,.5); --cy:#00e5ff; --cy-dim:#4fa8bd;
  --am:#ffb627; --rd:#ff4655; --gn:#39ff88; --ink:#cfe9f2; --mute:#5d7f8e;
  --mono:'SF Mono',ui-monospace,Menlo,Consolas,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  background:var(--bg);color:var(--ink);font-family:var(--mono);font-size:13px;
  min-height:100vh;padding:14px;
  background-image:
    linear-gradient(rgba(0,229,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,229,255,.035) 1px,transparent 1px),
    radial-gradient(ellipse at 50% 0%,rgba(0,229,255,.10),transparent 62%);
  background-size:44px 44px,44px 44px,100% 100%;
}
body::after{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:99;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,.16) 0 1px,transparent 1px 3px);
  mix-blend-mode:multiply;
}

/* ── site-level navigation ───────────────────────────────────────────────── */
.sitenav{
  display:flex;gap:4px;margin-bottom:14px;padding-bottom:12px;
  border-bottom:1px solid var(--line);flex-wrap:wrap;
}
.sitenav a{
  color:var(--cy-dim);text-decoration:none;font-family:var(--mono);
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  padding:6px 14px;border:1px solid transparent;
  clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);
  transition:.15s;
}
.sitenav a:hover{color:var(--cy);border-color:var(--line);}
.sitenav a.active{
  color:var(--cy);border-color:var(--cy);background:rgba(0,229,255,.08);
}
.sitenav a.soon{color:rgba(93,127,142,.5);pointer-events:none;}

/* stale data banner */
#stale-banner{
  background:rgba(255,70,85,.12);border:1px solid var(--rd);
  color:var(--rd);padding:8px 14px;margin-bottom:10px;
  font-size:10px;letter-spacing:.14em;
}

/* ── base components ─────────────────────────────────────────────────────── */
.panel{
  background:var(--panel);border:1px solid var(--line);position:relative;
  padding:14px 16px;backdrop-filter:blur(2px);
  clip-path:polygon(11px 0,100% 0,100% calc(100% - 11px),calc(100% - 11px) 100%,0 100%,0 11px);
}
.panel::before,.panel::after{
  content:'';position:absolute;width:9px;height:9px;border:1px solid var(--cy);
}
.panel::before{top:3px;left:3px;border-right:0;border-bottom:0}
.panel::after{bottom:3px;right:3px;border-left:0;border-top:0}
.lbl{font-size:9px;letter-spacing:.22em;color:var(--cy-dim);text-transform:uppercase}
.val{font-size:26px;font-variant-numeric:tabular-nums;color:var(--cy);
     text-shadow:0 0 16px rgba(0,229,255,.55);line-height:1.1}
.grid{display:grid;gap:10px}
h1{font-size:15px;letter-spacing:.3em;color:var(--cy);font-weight:500;
   text-shadow:0 0 18px rgba(0,229,255,.6)}
hr{border:0;height:1px;background:linear-gradient(90deg,var(--line2),transparent);margin:12px 0}

/* ── page header row ─────────────────────────────────────────────────────── */
#top{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:10px}
#top .sp{margin-left:auto;display:flex;gap:18px;align-items:center}
.dot{width:7px;height:7px;border-radius:50%;background:var(--gn);display:inline-block;
     box-shadow:0 0 9px var(--gn);animation:pulse 1.7s infinite}
.dot.off{background:var(--mute);box-shadow:none;animation:none}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}

/* ── page-level tab nav ──────────────────────────────────────────────────── */
nav{display:flex;gap:6px;margin:10px 0 12px;flex-wrap:wrap}
nav button{
  background:transparent;border:1px solid var(--line);color:var(--cy-dim);
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  padding:7px 15px;cursor:pointer;transition:.15s;
  clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);
}
nav button:hover{border-color:var(--line2);color:var(--cy)}
nav button[aria-selected=true]{
  background:rgba(0,229,255,.13);border-color:var(--cy);color:var(--cy);
  box-shadow:0 0 20px rgba(0,229,255,.28) inset;
}

/* ── tables ──────────────────────────────────────────────────────────────── */
table{width:100%;border-collapse:collapse;font-size:12px}
th{font-size:9px;letter-spacing:.16em;color:var(--cy-dim);text-transform:uppercase;
   text-align:left;padding:7px 8px;border-bottom:1px solid var(--line)}
td{padding:6px 8px;border-bottom:1px solid rgba(0,229,255,.08);font-variant-numeric:tabular-nums}
tr:hover td{background:rgba(0,229,255,.05)}
.num{text-align:right}
.pos{font-size:9px;letter-spacing:.1em;padding:2px 6px;border:1px solid currentColor;opacity:.9}
.QB{color:#ff6ec7}.RB{color:var(--gn)}.WR{color:var(--cy)}.TE{color:var(--am)}
.K{color:#9d8cff}.DEF{color:#8ea3ad}

/* ── utility classes ─────────────────────────────────────────────────────── */
.hi{color:var(--cy)}.dim{color:var(--mute)}.warn{color:var(--am)}.bad{color:var(--rd)}
.good{color:var(--gn)}
select{background:#061420;color:var(--cy);border:1px solid var(--line);font-family:var(--mono);
       font-size:11px;padding:7px 11px;letter-spacing:.1em}
.hide{display:none}

/* ── matchup cards (scoreboard) ──────────────────────────────────────────── */
#board{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1100px){#board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){#board{grid-template-columns:1fr}}
.mu{cursor:pointer;transition:border-color .15s,box-shadow .15s;padding:12px 14px}
.mu:hover{border-color:var(--line2);box-shadow:0 0 26px rgba(0,229,255,.13) inset}
.mu:hover .nm{color:var(--ink)}

/* ── lineup detail ───────────────────────────────────────────────────────── */
#detail{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:860px){#detail{grid-template-columns:1fr}}
.back{background:transparent;border:1px solid var(--line);color:var(--cy);cursor:pointer;
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  padding:7px 15px;margin-bottom:10px;
  clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)}
.back:hover{border-color:var(--cy);background:rgba(0,229,255,.1)}
.slot{display:grid;grid-template-columns:84px 14px 1fr 34px 58px;gap:6px;align-items:center;
  padding:5px 0;border-bottom:1px solid rgba(0,229,255,.07);font-size:12px}
.slot .sl{font-size:9px;letter-spacing:.1em;color:var(--cy-dim);text-transform:uppercase;
  white-space:nowrap;overflow:hidden}
.slot .ar{font-size:10px;line-height:1;text-align:center}
.slot .pn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:2px}
.slot .pp{text-align:right;font-variant-numeric:tabular-nums;color:var(--cy)}
.slot.bench{opacity:.52}
.slot.bench .pp{color:var(--mute)}
.slot.taxi .sl{color:#9d8cff}
.slot.opt{opacity:1}
.slot.opt .pn{color:var(--gn)}
.slot.opt .ar{color:var(--gn);text-shadow:0 0 8px var(--gn)}
.slot.opt .pp{color:var(--gn)}
.slot.top .pp{text-shadow:0 0 12px rgba(0,229,255,.6)}
.tot{margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}
.benchtog{background:transparent;border:1px solid var(--line);color:var(--cy-dim);cursor:pointer;
  font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;
  padding:5px 11px;margin-top:11px;width:100%;text-align:left}
.benchtog:hover{border-color:var(--line2);color:var(--cy)}
.modebtn{background:transparent;border:1px solid var(--line);color:var(--cy-dim);cursor:pointer;
  font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;padding:5px 12px}
.modebtn[aria-selected=true]{background:rgba(0,229,255,.13);border-color:var(--cy);color:var(--cy)}
.modebtn:disabled{opacity:.3;cursor:default}

/* ── matchup score row ───────────────────────────────────────────────────── */
.side{display:flex;align-items:center;gap:10px;padding:5px 0}
.side .nm{flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side .pt{font-size:19px;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.win .nm{color:var(--cy)}
.win .pt{color:var(--cy);text-shadow:0 0 13px rgba(0,229,255,.6)}
.lose .nm,.lose .pt{color:var(--mute)}
.me{border-left:2px solid var(--am);padding-left:8px;margin-left:-10px}
.bar{height:3px;background:rgba(0,229,255,.12);margin:7px 0 3px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--cy);box-shadow:0 0 11px var(--cy);
       transition:width .6s ease}

/* ── chart interaction ───────────────────────────────────────────────────── */
.cl{cursor:pointer}
.cl:hover{stroke-width:3.4}
#capkey span{cursor:pointer}
#capkey span:hover{color:var(--ink)}

/* ── trade ledger specific ───────────────────────────────────────────────── */
.trade-row{cursor:pointer}
.trade-row.open td{border-bottom:none}
.trade-detail-row td{padding:0}
.trade-detail-row .trade-detail-inner{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;
  padding:12px 8px 16px;border-bottom:1px solid var(--line);
}
@media(max-width:720px){.trade-detail-row .trade-detail-inner{grid-template-columns:1fr}}
.trade-side{background:rgba(0,229,255,.04);border:1px solid var(--line);padding:12px;}
.trade-side .side-hdr{font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--cy);margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.trade-asset{display:flex;justify-content:space-between;align-items:center;
  padding:4px 0;border-bottom:1px solid rgba(0,229,255,.06);font-size:12px}
.trade-asset:last-child{border-bottom:none}
.trade-asset .aname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:65%}
.trade-asset .aval{font-variant-numeric:tabular-nums;color:var(--cy);flex-shrink:0}
.trade-asset .apos{flex-shrink:0;margin:0 6px}
.trade-total{margin-top:10px;padding-top:8px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;font-size:12px}
.verdict-win{color:var(--gn)}
.verdict-lose{color:var(--rd)}
.verdict-fair{color:var(--cy-dim)}
.grade-tag{font-size:8px;letter-spacing:.18em;padding:2px 6px;border:1px solid currentColor;
  text-transform:uppercase;margin-left:6px;opacity:.8}
.grade-tag.hindsight{color:var(--mute)}
.grade-tag.live{color:var(--gn)}
