:root {
  color-scheme: light;
  --bg: #f4f0e6;
  --panel: #fffdf6;
  --panel-deep: #ece7dc;
  --line: #c9c1b2;
  --muted: #4b5556;
  --text: #1a242a;
  --paper: #1a242a;
  --ice: #294a4c;
  --ink: #fffdf6;
  --signal: #235c43;
  --display: Georgia, serif;
  --desk-rule: var(--line);
  --desk-blue: var(--ice);
  --news-accent: #963925;
}
body { background: var(--bg); color: var(--text); }
body:is(.nba-room,.nhl-room,.mlb-room,.epl-room) { background: var(--bg); }
.masthead, #workspace-nav, .mobile-nav, .mobile-tools { background: var(--bg); color: var(--text); border-color: var(--line); }
.masthead { border-bottom: 4px double #273332; }
.brand strong { font: 700 clamp(24px, 3.3vw, 45px)/1 Georgia, serif; letter-spacing: -.055em; }
.league-row a { background: transparent; color: var(--text); border-color: var(--line); border-radius: 0; }
.league-row a:hover, .league-row a[aria-current] { background: var(--panel-deep); color: var(--text); border-color: var(--news-accent); }
#workspace-nav button, .mobile-nav button, .mobile-tools button { color: var(--text); }
#workspace-nav button:hover, #workspace-nav button[aria-pressed=true],
.mobile-nav button[aria-pressed=true], .mobile-tools button[aria-pressed=true] {
  background: #e8ded0; color: #572519; border-color: #a46b59;
}
:where(a,button,input,select,summary):focus-visible { outline: 2px solid #21676c; outline-offset: 3px; }
h1,h2,h3,#tg-output h3 { font-family: Georgia, serif; }
.room-intro h1, .nba-room .nba-hero h1 { letter-spacing: -.055em; }
.room-intro small, .room-heading small, .nav-group > small { color: var(--news-accent); }
.room-tools a, .room-reports, .card, .entry, .metric, .dvp-rank, .standings-group,
.slate-group, .slate-row, .nba-game, .analysis-section, .prop-filter-panel, .slate-byes,
.player-filter-sheet, .prop-player-list, .social-footer, .social-links a {
  background: var(--panel); color: var(--text); border-color: var(--line); border-radius: 0; box-shadow: none;
}
.room-tools a:hover, .slate-row:hover, .nba-game:hover { background: var(--panel-deep); border-color: var(--news-accent); }
.room-feature, .featured, .league-feature-analysis, .matchup-analysis-hero, .broadcast-matchup {
  background: var(--panel-deep); color: var(--text); border: 1px solid var(--line); border-top: 3px solid var(--news-accent); border-radius: 0; box-shadow: none;
}
.broadcast-copy :is(h2,h3,p,small), .broadcast-kickoff { color: var(--text); }
.feature-teams { color: #5c55442d; }
#view :is(.prop-table,.standings-table,.team-prop-summary .card) { border-color: var(--line); border-radius: 0; }
.prop-table th, .standings-table th { background: #e8e1d4; color: var(--text); }
.prop-table td, .standings-table td { color: var(--text); border-color: var(--line); }
.prop-table tr:focus-within td, .prop-table tbody tr:hover td, .standings-table tbody tr:hover td { background: #f0eadf; }
input, select, textarea { background: #fffdf6; color: var(--text); border-color: #a69c8b; }
button, .matchup-shortcuts a, .prop-change-stat, .player-filter-trigger { background: var(--panel-deep); color: var(--text); border-color: #a69c8b; border-radius: 3px; }
.action, .room-search button, .broadcast-link, .matchup-tool-heading a {
  background: #202a2a; color: #fffdf6; border-color: #202a2a; border-radius: 3px;
}
.action:hover, .room-search button:hover, .broadcast-link:hover, .matchup-tool-heading a:hover { background: #324542; color: #fffdf6; }
.dvp-value-bar { background: linear-gradient(90deg, #8b5948 var(--value), #dfd5c5 var(--value)); }
#tg-output .scoring-form { border-top: 3px double var(--line); }
@media (max-width: 650px) {
  .brand strong { font-size: clamp(20px, 6vw, 28px); }
  .mobile-nav { border-top: 1px solid var(--line); }
}

/* Readable ink on paper, including older league-specific components. */
.room-intro p, .nba-room .nba-hero p, .report-meta, .tool-context { color: var(--muted); }
.nba-room .nba-hero h1, .room-intro h1, .nba-score strong, .nba-score strong:last-child { color: var(--text); }
.nba-room .card, .room-search input, #spotlight, .stamp, .slate-byes span,
.league-feature-analysis .broadcast-side, .broadcast-away, .broadcast-home {
  background: var(--panel-deep); color: var(--text); border-color: var(--line);
}
.broadcast-side small, .tool-icon, .room-intro h1 span { color: var(--news-accent); }
.standings-table thead { background: #e8e1d4; color: var(--text); }
button:hover, button[aria-pressed=true], .prop-player-list button[aria-pressed=true] {
  background: #e8ded0; color: #572519; border-color: #a46b59;
}
#pm-open-filters, .player-filter-trigger, .prop-change-stat:not([hidden]) {
  background: #202a2a; color: #fffdf6; border-color: #202a2a;
}
.quick-tools a:hover, .matchup-shortcuts a:hover { background: #e8ded0; color: var(--text); }
#view :is(h2,h3), .room-section h2 { line-height: 1.15; text-wrap: balance; }
#view p, .room-section p { line-height: 1.55; }
#view label, #view summary, #view th { letter-spacing: normal; }
#view .report-meta, #tg-note { font-size: .875rem; }
.pill { font-weight: 650; letter-spacing: normal; }

/* The NFL lead lives directly under #home-screen, which gives its legacy rule higher specificity. */
#home-screen > .broadcast-matchup {
  background: var(--panel-deep);
  border: 1px solid var(--line);
  border-top: 3px solid var(--news-accent);
}
#home-screen > .broadcast-matchup .broadcast-side {
  background: var(--panel);
  border: 1px solid var(--line);
  border-top: 3px solid #783e36;
  border-radius: 0;
  color: var(--text);
}
#home-screen > .broadcast-matchup .broadcast-home { border-top-color: #345473; }
#home-screen > .broadcast-matchup .broadcast-copy > .broadcast-link {
  background: #202a2a; color: #fffdf6; border-color: #202a2a;
}
