/* ══════════════════════════════════════════════════════════════════════
   BallKnowMe — unified sportsbook/data-tool theme.
   Loaded AFTER style.css + editorial-terminal.css; restyles the shared
   classes (site-header, dashboard-section, tables, cards, chips, tabs,
   pvb-*) to match the new /matchups page. Uses !important to win over the
   older editorial layer. Does NOT touch table `display` so the mobile
   stacked-card behaviour keeps working.
   ══════════════════════════════════════════════════════════════════════ */
:root{
  --bk-bg:#090b0f; --bk-bg2:#0c0f14; --bk-panel:#12151c; --bk-panel2:#171b23; --bk-panel3:#1e2430;
  --bk-line:#242a35; --bk-line-soft:#1a1f28;
  --bk-text:#f3f5f9; --bk-text2:#98a1b1; --bk-text3:#626c7d;
  --bk-pos:#2fd27a; --bk-neg:#ff5b62; --bk-acc:#ffb020; --bk-acc-dim:rgba(255,176,32,.14);
  --bk-font:"Saira",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

/* ── ground + type ── */
body{
  background:radial-gradient(1200px 600px at 70% -10%, #10151d 0%, var(--bk-bg) 55%) !important;
  color:var(--bk-text) !important;
  font-family:var(--bk-font) !important;
  letter-spacing:.005em;
}
body::before,body::after{display:none !important;}   /* kill old texture overlays */
main{max-width:1240px !important;margin:0 auto !important;padding:18px 22px 64px !important;background:transparent !important;}
.tnum,table,.data-table,.stat,.stat-val{font-variant-numeric:tabular-nums;}

/* ── masthead / nav ── */
.site-header{
  background:linear-gradient(180deg,rgba(18,21,28,.95),rgba(9,11,15,.9)) !important;
  border-bottom:1px solid var(--bk-line) !important;
  box-shadow:none !important; padding:12px 22px !important;
  display:flex !important; align-items:center !important; gap:16px !important; flex-wrap:wrap !important;
}
.site-header::after,.site-header::before{display:none !important;}
.site-header h1{
  font-family:var(--bk-font) !important; font-weight:800 !important; font-size:17px !important;
  letter-spacing:.06em !important; text-transform:uppercase !important; color:var(--bk-text) !important; margin:0 !important;
}
.site-header h1 .bk-b2{color:var(--bk-acc) !important;}
.site-header h1 .site-tagline{font-size:11px !important;font-weight:600 !important;color:var(--bk-text3) !important;text-transform:none !important;letter-spacing:.02em !important;margin-left:8px !important;}
.site-header h1 .site-tagline .tagline-secret{color:var(--bk-text3) !important;text-decoration:none !important;}
.site-header nav{display:flex !important;gap:15px !important;align-items:center !important;margin-left:6px !important;}
.site-header nav a{
  color:var(--bk-text2) !important; font-size:13px !important; font-weight:600 !important;
  letter-spacing:.02em !important; text-decoration:none !important; padding:5px 2px !important;
  background:none !important; border:none !important; border-radius:0 !important; transition:color .12s !important;
}
.site-header nav a:hover{color:var(--bk-text) !important;}
.site-header nav a.active{color:var(--bk-acc) !important;background:none !important;}

/* ── section cards ── */
.dashboard-section{
  background:linear-gradient(180deg,var(--bk-panel),var(--bk-bg2)) !important;
  border:1px solid var(--bk-line) !important; border-radius:14px !important;
  box-shadow:0 20px 50px -30px rgba(0,0,0,.8) !important;
  padding:16px 18px !important; margin-bottom:18px !important; backdrop-filter:none !important;
}
.dashboard-section h2{
  font-family:var(--bk-font) !important; font-weight:800 !important; font-size:18px !important;
  color:var(--bk-text) !important; letter-spacing:-.01em !important; margin:0 0 10px !important; text-transform:none !important;
}
.dashboard-section h3,.metric-card h3,.division-header{
  font-family:var(--bk-font) !important; font-weight:700 !important; font-size:12px !important;
  letter-spacing:.12em !important; text-transform:uppercase !important; color:var(--bk-text2) !important; margin:6px 0 9px !important;
}
.dashboard-section > h2:first-child::before,.dashboard-section > h3:first-child::before,
.dashboard-section h2::before,.dashboard-section h3::before{content:none !important;display:none !important;}
.dashboard-section p,.muted,.player-meta,.pvb-sub{color:var(--bk-text2) !important;}
.muted,.highlight-window,.pvb-sub{color:var(--bk-text3) !important;}

/* ── tables (both .data-table and plain <table>) ── */
main table,.data-table{width:100%;border-collapse:collapse !important;background:transparent !important;font-family:var(--bk-font) !important;}
main table thead th,.data-table thead th{
  background:transparent !important; color:var(--bk-text3) !important; font-family:var(--bk-font) !important;
  font-weight:700 !important; font-size:10.5px !important; letter-spacing:.06em !important; text-transform:uppercase !important;
  border-bottom:1px solid var(--bk-line) !important; padding:8px 9px !important; text-align:left;
}
main table tbody td,.data-table tbody td{
  font-family:var(--bk-font) !important; font-variant-numeric:tabular-nums !important; color:var(--bk-text) !important;
  background:transparent !important; border-bottom:1px solid var(--bk-line-soft) !important; padding:7px 9px !important; font-size:12.5px !important;
}
main table tbody td:first-child,.data-table tbody td:first-child{color:var(--bk-text) !important;font-weight:600 !important;}
main table tbody tr:hover td,.data-table tbody tr:hover td{background:rgba(255,255,255,.03) !important;}
main table a,.data-table a{color:var(--bk-text) !important;text-decoration:none !important;font-weight:600 !important;}
main table a:hover,.data-table a:hover{color:var(--bk-acc) !important;}
.division-leader td,tr.division-leader td{background:var(--bk-acc-dim) !important;}
.sortable-header a,.sortable-header{color:var(--bk-text3) !important;text-decoration:none !important;}
th.sort-active,.sort-active,.sort-active a{color:var(--bk-acc) !important;}

/* ── semantic colors ── */
.positive-diff,td.positive-diff,.highlight-stat.positive-diff{color:var(--bk-pos) !important;}
.negative-diff,td.negative-diff,.highlight-stat.negative-diff{color:var(--bk-neg) !important;}
.pvb-hot{color:var(--bk-pos) !important;font-weight:700 !important;}
.empty-state,.pvb-empty{color:var(--bk-text3) !important;padding:22px !important;}

/* ── highlight strip (Hitting/Pitching) ── */
.highlights-grid{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(220px,1fr)) !important;gap:12px !important;}
.highlight-box{background:var(--bk-panel2) !important;border:1px solid var(--bk-line) !important;border-radius:11px !important;padding:11px 12px !important;}
.highlight-title{color:var(--bk-text2) !important;font-size:11px !important;font-weight:700 !important;letter-spacing:.06em !important;text-transform:uppercase !important;margin-bottom:8px !important;display:flex;justify-content:space-between;align-items:center;}
.highlight-col-label{color:var(--bk-text3) !important;font-size:9.5px !important;letter-spacing:.05em !important;text-transform:uppercase !important;}
.highlight-entry{display:flex;justify-content:space-between;gap:8px;padding:3px 0;font-size:12px;border-bottom:1px dotted var(--bk-line-soft);}
.highlight-entry a{color:var(--bk-text) !important;text-decoration:none;font-weight:600;}
.highlight-stat{font-variant-numeric:tabular-nums;font-weight:800;}

/* ── metric cards + team chips ── */
.metrics-grid{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(220px,1fr)) !important;gap:12px !important;}
.metric-card{background:var(--bk-panel2) !important;border:1px solid var(--bk-line) !important;border-radius:11px !important;padding:13px 14px !important;}
.metric-card p{color:var(--bk-text2) !important;font-size:12.5px !important;margin:4px 0 !important;}
.metric-card strong{color:var(--bk-text) !important;font-weight:800 !important;}
.player-overview .player-header h2{margin-bottom:4px !important;}
.player-meta span{color:var(--bk-text3) !important;font-size:12px !important;margin-right:12px !important;}
.team-link-grid{display:flex !important;flex-wrap:wrap !important;gap:7px !important;}
.team-link-chip{
  background:var(--bk-panel2) !important;border:1px solid var(--bk-line) !important;border-radius:8px !important;
  padding:6px 11px !important;color:var(--bk-text2) !important;font-size:12.5px !important;font-weight:600 !important;
  text-decoration:none !important;transition:border-color .12s,color .12s !important;
}
.team-link-chip:hover{border-color:rgba(255,176,32,.5) !important;color:var(--bk-text) !important;}

/* ── tabs / pills / buttons ── */
.page-tabs,.leader-tabs{display:flex !important;gap:6px !important;margin-bottom:14px !important;border:none !important;}
.page-tab,.leader-tab{
  background:var(--bk-panel2) !important;border:1px solid var(--bk-line) !important;border-radius:9px !important;
  color:var(--bk-text2) !important;font-family:var(--bk-font) !important;font-weight:700 !important;font-size:12.5px !important;
  padding:7px 15px !important;cursor:pointer !important;letter-spacing:.02em !important;transition:.12s !important;
}
.page-tab:hover,.leader-tab:hover{color:var(--bk-text) !important;}
.page-tab.active,.leader-tab.active{background:var(--bk-acc-dim) !important;border-color:var(--bk-acc) !important;color:var(--bk-acc) !important;}
.page-pane{display:none;} .page-pane.active{display:block;}
.leader-group{display:none;} .leader-group.active{display:block;}
.window-selector{display:flex !important;align-items:center !important;gap:6px !important;}
.window-btn,.filter-btn{
  background:var(--bk-panel2) !important;border:1px solid var(--bk-line) !important;border-radius:7px !important;
  color:var(--bk-text2) !important;font-size:11.5px !important;font-weight:700 !important;padding:4px 9px !important;
  text-decoration:none !important;cursor:pointer !important;transition:.12s !important;
}
.window-btn:hover,.filter-btn:hover{color:var(--bk-text) !important;}
.window-btn.active,.filter-btn.active{background:var(--bk-acc-dim) !important;border-color:var(--bk-acc) !important;color:var(--bk-acc) !important;}
.hot-section-header{display:flex !important;align-items:center !important;justify-content:space-between !important;flex-wrap:wrap !important;gap:8px !important;}

/* ── inputs / filters ── */
.league-filters,.filter-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.filter-group label{color:var(--bk-text3) !important;font-size:11px !important;font-weight:700 !important;letter-spacing:.05em;text-transform:uppercase;}
main input[type=text],.pvb-search input,#playerSearch{
  background:var(--bk-panel2) !important;border:1px solid var(--bk-line) !important;border-radius:9px !important;
  color:var(--bk-text) !important;font-family:var(--bk-font) !important;font-size:13px !important;padding:8px 12px !important;outline:none !important;min-width:240px;
}
main input[type=text]:focus,.pvb-search input:focus{border-color:rgba(255,176,32,.55) !important;}

/* ── pitch-viz container chrome (the D3 viz colors itself) ── */
.pitchviz-zone-panel,.pitchviz-movement-panel{background:var(--bk-panel2) !important;border:1px solid var(--bk-line) !important;border-radius:12px !important;}

/* ── P vs B page ── */
.pvb-top{display:flex !important;flex-wrap:wrap !important;gap:14px !important;align-items:flex-start !important;margin-top:10px;}
.pvb-toc{background:var(--bk-panel2) !important;border:1px solid var(--bk-line) !important;border-radius:11px !important;padding:10px 12px !important;}
.pvb-toc-head{color:var(--bk-text3) !important;font-size:10px !important;letter-spacing:.08em !important;text-transform:uppercase !important;font-weight:700 !important;margin-bottom:8px !important;}
.pvb-toc-list{display:flex !important;flex-wrap:wrap !important;gap:7px !important;}
.pvb-toc-item{display:flex !important;flex-direction:column !important;gap:1px !important;background:var(--bk-panel) !important;border:1px solid var(--bk-line) !important;border-radius:8px !important;padding:6px 10px !important;text-decoration:none !important;transition:border-color .12s !important;}
.pvb-toc-item:hover{border-color:rgba(255,176,32,.5) !important;}
.pvb-toc-time{color:var(--bk-text3) !important;font-size:10.5px !important;font-family:var(--bk-font);font-variant-numeric:tabular-nums;}
.pvb-toc-teams{color:var(--bk-text) !important;font-size:12.5px !important;font-weight:700 !important;}
.pvb-game{margin-top:20px !important;scroll-margin-top:14px;}
.pvb-game-title{display:flex !important;align-items:baseline !important;gap:10px !important;flex-wrap:wrap !important;padding-bottom:8px !important;border-bottom:1px solid var(--bk-line) !important;margin-bottom:10px;}
.pvb-matchup{font-family:var(--bk-font) !important;font-size:19px !important;font-weight:800 !important;color:var(--bk-text) !important;letter-spacing:-.01em;}
.pvb-pitcher{margin:14px 0 !important;}
.pvb-pitcher h3{font-family:var(--bk-font) !important;font-weight:800 !important;font-size:14px !important;color:var(--bk-text) !important;text-transform:none !important;letter-spacing:0 !important;}
.pvb-pitcher td.name,.pvb-pitcher th.name{text-align:left !important;}

/* ── higher-specificity fixes: links/strong/titles were dimmed by the old layer ── */
.dashboard-section .data-table tbody td, .dashboard-section table tbody td{color:var(--bk-text) !important;}
.dashboard-section .data-table tbody td a, .dashboard-section table tbody td a{color:var(--bk-text) !important;}
.dashboard-section .data-table tbody td a:hover, .dashboard-section table tbody td a:hover{color:var(--bk-acc) !important;}
.dashboard-section .data-table tbody td strong, .dashboard-section table tbody td strong{color:var(--bk-text) !important;}
.dashboard-section .data-table tbody td.muted, .dashboard-section .data-table tbody td .muted{color:var(--bk-text2) !important;}
.dashboard-section .data-table tbody td.positive-diff, .dashboard-section table tbody td.positive-diff{color:var(--bk-pos) !important;}
.dashboard-section .data-table tbody td.negative-diff, .dashboard-section table tbody td.negative-diff{color:var(--bk-neg) !important;}
.dashboard-section .highlight-box .highlight-title{color:var(--bk-text2) !important;}
.dashboard-section .highlight-box .highlight-entry a{color:var(--bk-text) !important;}

/* ── plain-<table> readability fix (Venues, P vs B) ──
   Editorial's `.dashboard-section td:not(.lbl):not(.num)` (0,3,1 !important)
   forces EVERY plain-text cell in a section to muted cream-soft. That greys out
   all the data on Venues + the P-vs-B head-to-head grids (only the linked
   venue name escaped, via `main table a`). Override at higher specificity, but
   keep the green/red money + pvb-hot semantics loud. */
.dashboard-section td:not(.lbl):not(.num):not(.muted):not(.positive-diff):not(.negative-diff):not(.pvb-hot){color:var(--bk-text) !important;}
.dashboard-section td.positive-diff:not(.lbl):not(.num){color:var(--bk-pos) !important;}
.dashboard-section td.negative-diff:not(.lbl):not(.num){color:var(--bk-neg) !important;}
.dashboard-section td.pvb-hot:not(.lbl):not(.num){color:var(--bk-pos) !important;}

footer .data-sources a{color:var(--bk-text2) !important;text-decoration:none !important;border-bottom:1px solid var(--bk-line);}
footer .data-sources a:hover{color:var(--bk-acc) !important;}
