/* BoomScore dark palette. Loaded last; layout and team identities stay intact. */
:root {
  color-scheme: dark;
  --bg: #111111;
  --nav: #0b0b0b;
  --surface: #1b1b1b;
  --surface-muted: #242424;
  --surface-hover: #2b2b2b;
  --ink: #f1f1f1;
  --muted: #b1b1b1;
  --soft: #a3a3a3;
  --line: #363636;
  --control-line: #646464;
  --charcoal: #1b1b1b;
  --brand-red: #fb090b;
  --brand-red-ink: #ff7476;
  --brand-red-soft: #3a2021;
  --coral: var(--brand-red);
  --coral-light: var(--brand-red-soft);
  --shadow: none;
  color: var(--ink);
}
body { background: var(--bg); color: var(--ink); }
::selection { background: #74373a; color: #fff; }
button:focus-visible, a:focus-visible, summary:focus-visible,
input:focus-visible, select:focus-visible {
  outline: 2px solid var(--brand-red-ink); outline-offset: 3px;
}

/* Shared surfaces, including mobile headers and horizontally scrolling tables. */
.topbar, .panel, .profile-hero, .team-hero, .match-hero, .event-hero,
.player-card, .team-card, .event-feature-card, .planned-feature, .region-mini,
.catalog-feature, .catalog-team-card, .follow-card, .following-fixture {
  background: var(--surface); border-color: var(--line);
}
.sidebar { background: var(--nav); border-color: var(--line); }
.topbar-divider, .sidebar-separator { background: var(--line); }
.sample-notice, .league-heading, .match-hero-label, .match-hero-footer,
.scoreboard-team, .following-fixture-meta, .data-table th,
.history-table th:first-child, .scoreboard th:first-child {
  background: var(--surface-muted); border-color: var(--line); color: var(--muted);
}
.history-table td:first-child, .scoreboard td:first-child { background: var(--surface); }
.panel-foot, footer, .page-tabs, .region-tabs, .following-category-tabs,
.match-filters, .match-row, .trending-row, .ranking-row, .catalog-group-title,
.catalog-match-row, .data-table td, .career-row, .map-pool-row,
.compare-stat, .regional-team-row, .event-mini, .event-leaders > a,
.category-leaders > a, .following-empty, .follow-discover-more,
.profile-hero .position-pills > span, .metric, .tracker-score {
  border-color: var(--line);
}
.data-table, .data-table .table-team, .table-primary, .score-player, .result-score,
.section-head h2, .right-column .section-head h2, .scoreboard-team > a,
.table-team, .regional-team-row strong, .catalog-logo, .catalog-entity-hero h1,
.metric > strong, .match-central > strong, .team-power-value > strong,
.career-row strong, .team-context h3, .trophy-cabinet h3, .compare-heroes > a > h2,
.event-card-body h2, .event-hero h1, .planned-feature h2, .region-mini h3,
.week-lineup strong, .event-team-grid strong, .event-leaders strong,
.category-leaders strong, .compare-heroes > div h3, .compare-stat > strong,
.position-pills strong, .trait-row > strong, .tracker-score > span > strong,
.tracker-score b, .event-feed > h3, .feed-item strong, .breadcrumb > span,
.footer-brand, .mobile-brand, .mobile-menu, .about-wordmark,
.following-fixture .match-teams strong, .following-fixture-meta > a,
.follow-card strong, .follow-discover-more > summary, .news-empty .text-link {
  color: var(--ink);
}
.page-heading p, .eyebrow, .section-head p, .right-column .section-head p,
.data-table th, .data-table .table-team small, .score-player small,
.table-secondary, .panel-foot, .small-note, .table-more, .timezone,
.sample-tag, .profile-identity .real-name, .position-pills > span, .additional-role,
.metric > span, .metric > small, .hero-rating > div > small, .trend-label > small,
.trait-summary > div > p, .trait-summary > div > small, .map-insight p,
.map-disclaimer, .map-legend > small, .trait-row, .trait-groups h4,
.career-row small, .career-row > span:nth-child(2), .trophy-cabinet p,
.team-context p, .map-pool-row > small, .roster-card small, .roster-card p,
.team-hero p, .team-power-value > span > small, .power-context,
.map-pool-row > strong, .planned-feature p, .event-card-body > p,
.event-card-body > div, .event-card-body > div > strong, .event-team-grid small,
.region-intro p, .region-intro > div:last-child > span, .regional-team-row small,
.week-context > span, .week-lineup > a > span:last-child,
.compare-heroes > div p, .compare-heroes > a > p, .compare-stat > span,
.event-feed > p, .feed-item small, .event-feed > .muted, .tracker-key > span,
.feed-item > span, .tracker-controls > span, .match-hero-label > a,
.match-hero-score > a > small, .match-central > small, .scoreboard-team > span,
.round-team-labels, .round-cell > small, .round-legend, .chart-caption,
.chart-caption > span, .filter-note, .compare-window-note,
.ranking-row small, .player-card-info p, .player-card-info p > span, .team-card > p,
.catalog-note, .catalog-team-card a small, .catalog-event-card small,
.catalog-match-status, .catalog-group-title > span:last-child,
.catalog-feature > p, .catalog-feature > div > span:last-child,
.catalog-side small, .catalog-entity-hero p, .catalog-analytics small,
.valve-tools, .valve-standings .section-head .text-link, .region-summary,
.following-empty p, .follow-card small, .following-toolbar > span,
.follow-reason, .following-note, .news-empty, .login-panel p,
footer > span, footer > a:last-child { color: var(--muted); }

/* Inputs, selections and hover states use explicit dark surfaces. */
.button, .select-wrap select, .directory-search, .region-picker > a,
.valve-tools input, .global-search kbd {
  background: var(--surface); color: var(--ink); border-color: var(--control-line);
}
.directory-search > input, .global-search input, .valve-tools input { color: var(--ink); }
.directory-search > input::placeholder, .global-search input::placeholder,
.valve-tools input::placeholder { color: var(--muted); }
.select-wrap, .select-wrap > .icon, .filter-bar .select-wrap > span,
.global-search, .text-link, .icon-button, .follow-card > a > .icon { color: var(--muted); }
.button:hover, .icon-button:hover, .table-more:hover, .catalog-match-row:hover,
.data-table tbody tr:hover, .trending-row:hover, .ranking-row:hover,
.match-row:hover, .search-results > a:hover {
  background: var(--surface-hover); border-color: var(--control-line);
}
.button.coral { background: #c40709; border-color: #c40709; color: #fff; }
.button.coral:hover { background: #df1013; border-color: #df1013; color: #fff; }
.button.quiet { background: transparent; }
.button.followed, .follow-button.followed {
  background: var(--surface-muted); border-color: var(--control-line); color: var(--ink);
}
.follow-button[aria-pressed="true"]:hover { background: var(--surface-hover); }
.region-picker > a.active, .segmented > button.active,
.segment-control > button.active, .following-status > button.active {
  background: #e8e8e8; border-color: transparent; color: #151515;
}
.segmented { background: var(--bg); border-color: var(--line); }
.segmented > button, .following-status > button, .page-tabs > button,
.region-tabs > button, .match-tabs > button { color: var(--muted); }
.page-tabs > button.active, .region-tabs > button.active,
.tabs > button.active { color: var(--ink); }
.match-tabs > button.active { background: var(--surface-hover); color: var(--ink); }
.text-link:hover, .data-table a:hover, .tournament-list-row > a:hover,
.catalog-switch button[aria-selected="true"] { color: var(--brand-red-ink); }
.search-results { background: var(--surface); border-color: var(--line); box-shadow: 0 12px 40px #0008; }
.search-results strong { color: var(--ink); }
.search-results small, .search-results h4 { color: var(--muted); }
.skip-link { background: var(--surface); color: var(--ink); }
.toast { background: #303030; border-color: var(--control-line); color: var(--ink); }
.chip, .trait-tags > .chip, .coral-chip, .unavailable-value {
  background: var(--surface-muted); border-color: var(--line); color: var(--muted);
}
.rating.elite { background: #176749; color: #fff; }
.rating.good, .win { background: #1b3929; color: #9fe1b4; }
.rating.mid { background: #41371e; color: #f0d788; }
.loss { background: #402428; color: #ffb1b7; }

/* Match lists and retained match-detail views. */
.matches-desk { --desk-rule: var(--line); }
.matchday-bar, .desk-section-heading, .desk-secondary .section-head, .desk-compare { border-color: var(--control-line); }
.desk-event, .desk-secondary .trending-row, .desk-secondary .ranking-row { border-color: var(--line); }
.matches-desk .league-heading { background: var(--surface-muted); }
.matches-desk .match-row { background: var(--surface); border-color: var(--line); }
.matches-desk .match-row:hover { background: var(--surface-hover); }
.matches-desk .match-tabs > button.active { background: var(--surface-hover); color: var(--ink); }
.matchday-bar strong, .matches-desk .league-heading strong,
.matches-desk .match-teams strong, .desk-secondary .trending-row strong,
.desk-secondary .ranking-row strong, .desk-event strong { color: var(--ink); }
.desk-eyebrow, .matchday-date > small, .matchday-bar > div,
.desk-section-heading > a, .matches-desk .date-control > button,
.date-control > strong, .matches-desk .match-filters select,
.matches-desk .league-heading small, .matches-desk .match-tabs > button,
.matches-desk .match-time strong, .matches-desk .match-time small,
.desk-rail-label, .desk-secondary .trending-row small, .desk-secondary .ranking-row small,
.desk-secondary .panel-foot, .desk-compare > span:last-child, .desk-event small,
.desk-event > span:not(.event-icon) { color: var(--muted); }
.matches-desk .match-time.is-live strong, .match-time.is-live > strong { color: var(--brand-red-ink); }
.matchday-bar > div > span, .desk-rail-label > i { background: var(--line); }
.round-cell:not(.round-b) > b { background: #48282a; color: #ffb2b4; }
.round-cell.round-b > b { background: #292d30; color: #dce1e1; }
.map-card, .map-card:nth-child(2), .map-card:nth-child(3) {
  background: var(--surface-muted); color: var(--ink); border-color: var(--line);
}
.map-card.selected { border-color: var(--brand-red); }
.map-card > span, .map-card > b > small { color: var(--muted); }
.map-card:after, .map-card:nth-child(2):after { opacity: .1; }

/* Profile and tournament surfaces keep their color identity without pale fills. */
.note-card, .player-of-match, .planned-art, .editorial-banner,
.region-intro, .rankings-intro, .player-card-image, .trophy-art,
.official-monogram, .roster-card, .event-team-grid > a, .week-lineup > a,
.bracket-stage > a > div, .bracket-tbd > p, .table-more {
  background: var(--surface-muted); border-color: var(--line);
}
.note-card h3, .player-of-match h3, .editorial-banner h3, .region-intro h2,
.rankings-intro h2, .ranking-window > strong { color: var(--ink); }
.note-card > .eyebrow, .note-card > .text-link, .player-of-match > .eyebrow,
.player-of-match > div > span, .editorial-banner p, .ranking-window > span,
.ranking-window > small, .bracket-stage > span, .bracket-stage b,
.bracket-stage > small, .bracket-stage > a > div { color: var(--muted); }
.ranking-window, .bracket-stage > a, .bracket-tbd, .bracket-connector { border-color: var(--line); }
.editorial-icon, .region-mini > span { background: #303030; color: var(--muted); }
.note-card:after, .planned-art > span, .region-intro:after { color: #343434; }
.player-identity-art { background: linear-gradient(140deg, #242424, #303030); }
.team-hero:after { border-color: color-mix(in srgb, var(--team) 12%, var(--surface)); }
.team-hero-emblem, .event-icon, .event-hero-logo {
  background: color-mix(in srgb, currentColor 10%, var(--surface)); border-color: var(--line);
}
.event-art { background: color-mix(in srgb, var(--event) 15%, var(--surface)); }
.event-hero .chip { background: var(--surface-muted); }
.map-pool-bar, .percentile { background: #363636; }
.map-pool-row > b, .map-pool-bar > i { color: var(--muted); }
.timeline-point { border-color: var(--surface); }
.timeline-point:after, .bracket-connector:after { background: var(--line); }
.line-chart text, .radar text { fill: var(--muted); }
/* Restore original light logo artwork previously darkened for white surfaces. */
.catalog-logo img[src] { filter: none; }
/* Audited transparent monochrome artwork: display black marks in white. */
.catalog-logo img[src$="-IJju5OujjYcAMbiNOMAc6.webp"],
.catalog-logo img[src$="1Z_CvAJE9Qb5h9WyIi1PoP.webp"],
.catalog-logo img[src$="bLbZhWtpMVCIuFkfoKdQ9V.webp"],
.catalog-logo img[src$="hkl56DmvKjTx6MTiYElX6E.webp"],
.catalog-logo img[src$="ogcHrcCdzRvxbYvAz04KAN.webp"],
.catalog-logo img[src$="sAUU1xlaHaJ7WtXCi7SOOi.webp"],
.catalog-logo img[src$="SE3Ks_UvWSfZHc6iR4mTjA.webp"],
.catalog-logo img[src$="sVnH-oAf1J5TnMwoY4cxUC.webp"],
.catalog-logo img[src$="W30xfG1IVIUuOJnlsxtHMG.webp"],
.catalog-logo img[src$="Z_R5K__qrvHmPjF66iCay-.webp"] { filter: brightness(0) invert(1); }
