/* ============================================================================
   ltsc.css — shared design system for latechsportscentral.com
   Loaded AFTER each page's own <style>, so same-specificity rules here win.
   Sections:  1 tokens  2 resets  3 site bar + footer  4 type floors
              5 contrast  6 page scopes (home / article / tecmo / prodogs)
              7 dashboards  8 mobile  9 light theme (html[data-theme="light"])
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&display=swap');

/* 1 ── tokens ───────────────────────────────────────────────────────────── */
:root {
  --bg: #06101e; --surface: #0a1628; --card: #0d1e38; --border: #162d52;
  --navy: #003087; --red: #cb333b; --red-dim: #8a2228;
  --red-text: #e85c64;            /* red for TEXT on navy: 5.5:1 on bg, 4.9:1 on card */
  --green: #3dc97a; --blue: #4d9de0; --gold: #cb333b;
  --text: #ffffff; --muted: #9ab3c9; /* was #8faabf (4.9:1) → 6.1:1 on bg */
  --mono: 'IBM Plex Mono', monospace;         /* body/data face (the light theme swaps this for a sans) */
  --code: 'IBM Plex Mono', monospace;         /* real monospace, both themes */
  --display: 'Oswald', sans-serif;
  --serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --bar-h: 46px;
  /* surfaces the pages used to hard-code; same hex in dark, swapped in light */
  --page-bg: #06101e; --bar-bg: #03102a; --nav-bg: #03102a; --table-bg: #050f20;
  --row-hover: #0d2045; --rule: #0f2140; --track: #0a1a33; --header-edge: #020b1a;
  --on-accent: #fff; --text-soft: #dde7f0; --text-soft2: #c9d7e4; --amber: #f5a623;
  --scroll-fade: rgba(4,14,32,.92); --keyline: #fff;
  color-scheme: dark;
}

/* 2 ── resets ───────────────────────────────────────────────────────────── */
html, body { background: var(--bg); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
button, input, select, textarea { font-family: inherit; }   /* kills the Arial leak on <button> tabs */
pre, code, kbd { font-family: var(--code); }
h1, h2, h3 { font: inherit; margin: 0; }                      /* headings carry semantics, classes carry style */
img { max-width: 100%; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--red-text); outline-offset: 2px; }
::selection { background: var(--navy); color: var(--on-accent); }

/* 3 ── shared site bar + footer ─────────────────────────────────────────── */
.ltsc-bar {
  height: var(--bar-h); background: var(--bar-bg); border-bottom: 1px solid var(--border);
  display: flex; align-items: center; gap: 18px; padding: 0 20px;
  position: relative; z-index: 110;
}
.ltsc-bar-brand { display: flex; align-items: center; flex: none; height: 100%; color: var(--muted); font-family: var(--display); font-size: 13px; letter-spacing: 2px; text-decoration: none; }
.ltsc-bar > .ltsc-navwrap { margin-left: auto; min-width: 0; height: 100%; display: flex; }
.ltsc-bar-brand img { height: 22px; width: auto; display: block; }
.ltsc-bar-nav { display: flex; gap: 2px; margin-left: auto; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; height: 100%; }
.ltsc-bar-nav::-webkit-scrollbar { display: none; }
.ltsc-bar-nav a {
  font-family: var(--display); font-size: 13px; letter-spacing: 1.8px; text-transform: uppercase;
  color: var(--muted); text-decoration: none; padding: 0 11px; display: flex; align-items: center; height: 100%;
  border-bottom: 2px solid transparent; white-space: nowrap; transition: color .15s;
}
.ltsc-bar-nav a:hover { color: var(--text); }
.ltsc-bar-nav a[aria-current="page"] { color: var(--text); border-bottom-color: var(--red); }

.ltsc-foot { margin-top: 56px; border-top: 1px solid var(--border); background: var(--nav-bg); }
.ltsc-foot-in { max-width: 1240px; margin: 0 auto; padding: 28px 20px 34px; display: grid; gap: 16px; justify-items: center; text-align: center; }
.ltsc-foot img { height: 30px; width: auto; }
.ltsc-foot nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 18px; }
.ltsc-foot nav a { font-family: var(--display); font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: var(--muted); text-decoration: none; }
.ltsc-foot nav a:hover { color: var(--text); }
.ltsc-foot-note { font-size: 12px; line-height: 1.7; color: var(--muted); max-width: 70ch; }
.ltsc-foot-note a { color: var(--muted); }

/* 4 ── type floors (nothing a reader must parse below 12px) ─────────────── */
.section-label, .section-header, .section-title { font-size: 13px; font-weight: 600; }
.badge, .nat-badge, .league-badge { font-size: 11px; }
.footer { font-size: 12px; }

/* 5 ── contrast: red as TEXT uses --red-text; red as FILL/RULE stays --red ─ */
.section-label, .section-header, .section-title, .analysis-title, .sport-col-header,
.pp-chip b, .view-btn, .read-link, .ext-link-btn, .article-body a,
.rec-value.loss, .game-result.loss, .down, .cover.n, .nat-list td.rk.bad, .drive-bar i.to,
.badge-baseball, .comingsoon-badge, .error-msg, .game-cell.today .game-date,
.back-link:hover { color: var(--red-text); }
.view-btn, .read-link, .ext-link-btn { border-color: var(--red-text); }
.sport-card:hover .view-btn, .ext-link-btn:hover { background: var(--red); color: var(--on-accent); border-color: var(--red); }
.badge-general, .article-date, .article-author, .featured-article .meta .date, .more-story .meta .date { color: var(--muted); }

/* 6a ── home (body.ltsc-home) — zoom:1.25 removed; sizes set for real ──── */
.ltsc-home .content { max-width: 1240px; }
.ltsc-home .section-label { font-size: 13px; letter-spacing: 4px; margin-bottom: 18px; }
.ltsc-home .sports-grid { grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 18px; }
.ltsc-home .sport-icon { font-size: 30px; }
.ltsc-home .sport-name { font-size: 24px; }
.ltsc-home .sport-season { font-size: 12px; letter-spacing: 2px; }
.ltsc-home .active-badge, .ltsc-home .offseason-badge, .ltsc-home .comingsoon-badge { font-size: 11px; padding: 3px 9px; }
.ltsc-home .rec-label { font-size: 11px; }
.ltsc-home .rec-value { font-size: 22px; }
.ltsc-home .rec-value[style*="font-size"] { font-size: 13px !important; }
.ltsc-home .card-body { padding: 24px; }
.ltsc-home .next-game { font-size: 12px; }
.ltsc-home .next-opp { font-size: 13px; }
.ltsc-home .view-btn { font-size: 12px; padding: 7px 15px; }
.ltsc-home .badge { font-size: 11px; padding: 3px 8px; }
.ltsc-home #articles-col .featured-article { padding: 22px 24px; }
.ltsc-home #articles-col .featured-article .headline { font-size: 24px; }
.ltsc-home .featured-article .meta .date, .ltsc-home .more-story .meta .date { font-size: 12px; }
.ltsc-home .featured-article .summary { font-size: 14px; line-height: 1.65; margin-bottom: 16px; }
.ltsc-home .featured-article .read-link { font-size: 12px; padding: 6px 13px; }
.ltsc-home #articles-col .more-story { padding: 16px 18px; }
.ltsc-home #articles-col .more-story .headline { font-size: 16px; }
.ltsc-home .articles-empty, .ltsc-home .week-empty { font-size: 13px; }
.ltsc-home .divider { margin: 34px 0; }
@media (min-width: 768px) { .ltsc-home { zoom: 1; } }

/* 6b ── article (body.ltsc-article) — proportional serif for long reads ── */
.ltsc-article .content { max-width: 760px; padding: 36px 24px 0; }
.ltsc-article .back-link { display: none; }                   /* the site bar covers it */
.ltsc-article .article-meta { gap: 12px; margin-bottom: 18px; }
.ltsc-article .badge { font-size: 11px; padding: 3px 8px; }
.ltsc-article .article-date, .ltsc-article .article-author { font-size: 12px; }
.ltsc-article .article-headline { font-size: 40px; line-height: 1.1; margin-bottom: 18px; }
.ltsc-article .article-summary { font-family: var(--serif); font-size: 19px; line-height: 1.55; color: var(--text-soft2); font-style: italic; padding-left: 18px; margin-bottom: 30px; }
.ltsc-article .article-body { font-family: var(--serif); font-size: 18px; line-height: 1.65; color: var(--text-soft); max-width: 660px; }
.ltsc-article .article-body p { margin-bottom: 22px; }
.ltsc-article .article-body h2 { font-size: 20px; letter-spacing: 1.5px; margin: 40px 0 14px; }
.ltsc-article .article-body h3 { font-size: 15px; margin: 28px 0 10px; }
.ltsc-article .article-body strong { font-weight: 600; }
.ltsc-article .article-body em { color: var(--text-soft2); }
.ltsc-article .article-body li { margin-bottom: 8px; }
.ltsc-article .article-body a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(232,92,100,.5); }
.ltsc-article .ext-link-label { font-size: 11px; letter-spacing: 2px; }
.ltsc-article .ext-link-btn { font-size: 12px; }
.ltsc-article .article-list-hed { font-size: 20px; }
.ltsc-article .article-list-sum { font-family: var(--serif); font-size: 15px; }
.ltsc-article .article-list-item { padding: 20px 0; }
.ltsc-article .state-msg-title { font-size: 22px; }
.ltsc-article .state-msg-sub { font-size: 13px; }
@media (min-width: 768px) { .ltsc-article { zoom: 1; } }

/* 6c ── tecmo (body.ltsc-tecmo) ─────────────────────────────────────────── */
.ltsc-tecmo .content { max-width: 1100px; padding: 32px 24px 0; }
.ltsc-tecmo .back { display: none; }
.ltsc-tecmo .section-label { font-size: 13px; }
.ltsc-tecmo .lede { font-size: 15px; line-height: 1.7; }
.ltsc-tecmo .dl-title { font-size: 24px; }
.ltsc-tecmo .dl-sub { font-size: 12px; }
.ltsc-tecmo .dl-btn { font-size: 14px; padding: 11px 20px; }
.ltsc-tecmo .dl-meta { font-size: 12px; }
.ltsc-tecmo .card h3 { font-size: 18px; }
.ltsc-tecmo .card p { font-size: 14px; line-height: 1.7; }
.ltsc-tecmo .shots figcaption { font-size: 12px; }
.ltsc-tecmo ol.steps li { font-size: 14px; }
.ltsc-tecmo .note { font-size: 13px; }
.ltsc-tecmo .legal h3 { font-size: 14px; }
.ltsc-tecmo .legal p, .ltsc-tecmo .legal li { font-size: 13px; }
@media (min-width: 768px) { .ltsc-tecmo { zoom: 1; } }

/* 6d ── pro dogs (body.ltsc-prodogs) ────────────────────────────────────── */
.ltsc-prodogs .header-title { font-size: 27px; }
.ltsc-prodogs .header-sub { font-size: 12px; }
.ltsc-prodogs .nav-tab { font-size: 15px; }
.ltsc-prodogs .section-title { font-size: 18px; letter-spacing: 2px; color: var(--text); }
.ltsc-prodogs .section-sub { font-size: 12px; }
.ltsc-prodogs table { font-size: 14px; }
.ltsc-prodogs thead th { font-size: 12px; }
.ltsc-prodogs tbody td.num { font-size: 14px; }
.ltsc-prodogs .stat-card-label { font-size: 11px; }
.ltsc-prodogs .loading, .ltsc-prodogs .error-msg { font-size: 13px; }
.ltsc-prodogs .ltsc-empty { text-align: left; color: var(--muted); padding: 18px 14px; font-size: 13px; white-space: normal; }
@media (min-width: 768px) { .ltsc-prodogs { zoom: 1; } }

/* 7 ── dashboards (football / baseball / softball / prodogs) ────────────── */
.header-title { font-size: 27px; letter-spacing: 2px; }
.header-sub { font-size: 12px; letter-spacing: 3px; }
.record-badge { font-size: 30px; }
.record-label { font-size: 11px; letter-spacing: 2px; text-align: right; }
.header .home-link, .header .ltsc, .nav-logo { display: none !important; }   /* the site bar owns home + brand */
.nav-tab.active { color: var(--text); }                                      /* tab state = white + red rule, like football */
.nav button.active { color: var(--text); }
th:hover, th.sorted, th.sort-asc, th.sort-desc { color: var(--text); }   /* sortable headers: white, no arrows (like football) */
.section-header, .section-title { letter-spacing: 3.5px; }
.stat-card-label, .card .lbl { font-size: 12px; }
.site-foot { display: none; }                                                /* replaced by .ltsc-foot */

/* scrollable tab strips: right-edge fade while more tabs exist (ltsc.js) */
.ltsc-navwrap { position: relative; }
.ltsc-navwrap::after {
  content: ''; position: absolute; top: 0; right: 0; bottom: 0; width: 56px; pointer-events: none;
  background: linear-gradient(90deg, transparent, var(--nav-bg) 70%); opacity: 0; transition: opacity .2s;
}
.ltsc-bar .ltsc-navwrap::after { background: linear-gradient(90deg, transparent, var(--bar-bg) 70%); }
.ltsc-navwrap.more::after { opacity: 1; }
.ltsc-navwrap.more::before {
  content: '\203A'; position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  font-family: var(--display); font-size: 22px; line-height: 1; color: var(--muted); pointer-events: none; z-index: 1;
}


/* 7b ── dashboard type floor: nothing under 12px, and the 12px tier moves to 13px
   (football / baseball / softball / pro dogs; !important only where the page sets
   the size inline from a JS template) ───────────────────────────────────────── */
.ltsc-football .spark-x, .ltsc-football .nat-badge, .ltsc-football .pp-nat span.conf,
.ltsc-prodogs .league-badge { font-size: 12px; }
.ltsc-football .nat-badge { padding: 2px 5px; }
.ltsc-football .los, .ltsc-football .chip, .ltsc-football .km-tag, .ltsc-football .pbar-lbl,
.ltsc-baseball .subview-cards .view-card, .ltsc-softball .subview-cards .view-card { font-size: 12px; }
.ltsc-football th, .ltsc-baseball th, .ltsc-softball th, .ltsc-prodogs thead th,
.ltsc-football .controls label, .ltsc-football .card .lbl, .ltsc-football .card .cmp,
.ltsc-football .cell .share, .ltsc-football .cell .sm, .ltsc-football .note,
.ltsc-football .pp-chip b, .ltsc-football .drive-hdr, .ltsc-football .matchup .mid .det,
.ltsc-football .tape .rk, .ltsc-football .km-side .who, .ltsc-football .pp-nat span,
.ltsc-football .km-pl .ln, .ltsc-football .record-label,
.ltsc-baseball .stat-card-label, .ltsc-softball .stat-card-label,
.ltsc-baseball .stat-card-sub, .ltsc-softball .stat-card-sub,
.ltsc-baseball .filter-label, .ltsc-softball .filter-label,
.ltsc-baseball .count-table th, .ltsc-softball .count-table th,
.ltsc-prodogs .section-sub, .ltsc-prodogs .stat-card-label { font-size: 13px; }
.ltsc-football .section-sub, .ltsc-baseball .section-sub, .ltsc-softball .section-sub { font-size: 14px; }
/* sizes written inline by the render templates */
.ltsc-football [style*="font-size:10px"], .ltsc-baseball [style*="font-size:10px"], .ltsc-softball [style*="font-size:10px"], .ltsc-prodogs [style*="font-size:10px"],
.ltsc-football [style*="font-size: 10px"], .ltsc-baseball [style*="font-size: 10px"], .ltsc-softball [style*="font-size: 10px"], .ltsc-prodogs [style*="font-size: 10px"],
.ltsc-football [style*="font-size:11px"], .ltsc-baseball [style*="font-size:11px"], .ltsc-softball [style*="font-size:11px"], .ltsc-prodogs [style*="font-size:11px"],
.ltsc-football [style*="font-size: 11px"], .ltsc-baseball [style*="font-size: 11px"], .ltsc-softball [style*="font-size: 11px"], .ltsc-prodogs [style*="font-size: 11px"],
.ltsc-prodogs [style*="font-size:9px"] { font-size: 12px !important; }
.ltsc-football [style*="font-size:12px"], .ltsc-baseball [style*="font-size:12px"], .ltsc-softball [style*="font-size:12px"], .ltsc-prodogs [style*="font-size:12px"],
.ltsc-football [style*="font-size: 12px"], .ltsc-baseball [style*="font-size: 12px"], .ltsc-softball [style*="font-size: 12px"], .ltsc-prodogs [style*="font-size: 12px"] { font-size: 13px !important; }

/* 7c ── wide-table scroll hint (ltsc.js wraps every horizontal table scroller) ── */
.ltsc-scrollwrap { position: relative; }
.ltsc-scrollwrap::after {
  content: ''; position: absolute; top: 0; right: 0; bottom: 0; width: 64px; pointer-events: none;
  background: linear-gradient(90deg, transparent, var(--scroll-fade) 80%);
  border-radius: 0 6px 6px 0; opacity: 0; transition: opacity .2s;
}
.ltsc-scrollwrap.more::after { opacity: 1; }
.ltsc-scrollwrap::before {
  content: 'more \203A'; position: absolute; right: 8px; top: 7px; z-index: 4; pointer-events: none;
  font-family: var(--display); font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase;
  color: var(--on-accent); background: var(--navy); border: 1px solid #1a4a9a; border-radius: 999px;
  padding: 3px 9px 3px 10px; opacity: 0; transform: translateX(6px); transition: opacity .2s, transform .2s;
}
.ltsc-scrollwrap.more::before { opacity: 1; transform: none; }
.ltsc-scrollwrap.more.scrolled::before { content: '\2039 \203A'; }   /* mid-scroll: both ways */
@media (hover: none) { .ltsc-scrollwrap.more::before { content: 'swipe \203A'; } }
.ltsc-scrollwrap > .table-wrap, .ltsc-scrollwrap > .stats-table-wrap { margin-bottom: 0; }
.ltsc-scrollwrap { margin-bottom: 28px; }
.ltsc-football .ltsc-scrollwrap { margin-bottom: 0; }

/* 7d ── team logos: a white keyline so dark marks (Ragin' Cajuns, Troy, Army…) read on
   the navy. Four drop-shadows trace the alpha edge of any transparent PNG; applies to CFBD
   and ESPN logo URLs only, never the LTSC wordmark or player headshots. 1px everywhere
   (standings, tape, cards), 1.5px on the big matchup/scoreline marks. The dark-variant Tech
   mark already carries its own stroke, so it is skipped. ──────────────────────────── */
img[src*="collegefootballdata.com/logos"], img[src*="collegefootballdata.com/cbb-logos"], img[src*="espncdn.com/i/teamlogos"],
img[src*="ncaa.com/sites/default/files/images/logos"],
.matchup img[src*="logos"], .scoreline img[src*="logos"] {
  filter: drop-shadow(1px 0 0 var(--keyline)) drop-shadow(-1px 0 0 var(--keyline)) drop-shadow(0 1px 0 var(--keyline)) drop-shadow(0 -1px 0 var(--keyline));
}
img[src*="logos-dark/128/2348"], img[src*="/cbb-logos-dark/"][src*="/2348."], .logo-img, .ltsc-bar-brand img, .ltsc-foot img { filter: none; }

/* 7e ── desktop width: let data pages use the screen. Content columns were capped at
   1240px (football, home) / 1400px (baseball, softball) / 1300px (pro dogs), which leaves a
   third of a 1920px monitor empty. Dashboards now run to 1720px, the homepage to 1560px;
   articles stay at a reading width on purpose. Nothing changes below ~1300px wide. ──── */
.ltsc-football .page { max-width: 1720px; }
.ltsc-baseball .content, .ltsc-softball .content, .ltsc-prodogs .content { max-width: 1720px; }
.ltsc-home .content { max-width: 1560px; padding: 22px 16px 60px; }
.ltsc-tecmo .content { max-width: 1200px; }
.ltsc-foot-in { max-width: 1720px; }
@media (min-width: 1500px) {
  .ltsc-football .page, .ltsc-baseball .content, .ltsc-softball .content, .ltsc-prodogs .content { padding-left: 32px; padding-right: 32px; }
  .ltsc-home .content { padding-left: 32px; padding-right: 32px; }
  .ltsc-home .sports-grid { grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); }
  .ltsc-baseball #cusa-standings-wrap, .ltsc-softball #cusa-standings-wrap { flex-basis: 560px !important; }
}

/* 8 ── mobile ───────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .ltsc-bar { padding: 0 12px; gap: 10px; }
  .ltsc-bar-brand img { height: 18px; }
  .ltsc-bar-nav a { font-size: 12px; letter-spacing: 1.2px; padding: 0 9px; }
  .ltsc-bar-nav a[href="index.html"] { display: none; }   /* the wordmark is Home on phones */
  .ltsc-foot-in { padding: 24px 16px 30px; }
  .ltsc-home .content, .ltsc-article .content, .ltsc-tecmo .content { padding-left: 16px; padding-right: 16px; }
  .ltsc-article .article-headline { font-size: 30px; }
  .ltsc-article .article-summary { font-size: 17px; }
  .ltsc-article .article-body { font-size: 17px; }
  /* dashboards: keep the sticky block short — title + tabs only */
  .header { padding: 10px 14px; }
  .header-title { font-size: 18px; letter-spacing: 1px; }
  .header-sub { display: none; }
  .header-right, .header .record-badge, .header .record-label { display: none; }
  .logo-img, .header-left img { width: 36px !important; height: 36px !important; }
  .nav button, .nav-tab { padding: 11px 12px; font-size: 13px; }
}

/* 9 ── light theme ────────────────────────────────────────────────────────────
   Opt-in via html[data-theme="light"]; ltsc.js owns the toggle (site bar), the
   saved choice (localStorage 'ltsc-theme') and the system-preference default.
   Everything below is light-only: the dark theme above is untouched. The brand
   band (site bar + page header) stays navy; the page body goes to paper. Body
   face becomes Source Sans 3 (same family as the article serif) with tabular
   figures so stat columns keep lining up; Oswald stays for display type.
   Contrast on #f3f5f8 / #fff: text 16:1, muted 5.0, red 6.0, green 4.9, blue 5.3. */
html[data-theme="light"] {
  color-scheme: light;
  --bg: #f3f5f8; --surface: #ffffff; --card: #ffffff; --border: #d8dfe8;
  --text: #141a24; --muted: #5b6b7f;
  --red: #cb333b; --red-dim: #a8262d; --red-text: #b4232c; --gold: #cb333b;
  --green: #177a43; --blue: #1f66b8; --navy: #003087; --navy-light: #1a4a9a;
  --mono: 'Source Sans 3', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --page-bg: #f3f5f8; --bar-bg: #0b1f4a; --nav-bg: #ffffff; --table-bg: #ffffff;
  --row-hover: #eef3f9; --rule: #e3e8ef; --track: #e3e9f1; --header-edge: #00205b;
  --text-soft: #2b3645; --text-soft2: #44506a; --amber: #8a5a00;
  --scroll-fade: rgba(243,245,248,.94); --keyline: transparent;
}
html[data-theme="light"] body { font-variant-numeric: tabular-nums; -webkit-font-smoothing: auto; }
html[data-theme="light"] .ltsc-article .article-body,
html[data-theme="light"] .ltsc-article .article-summary { font-variant-numeric: normal; }

/* the navy brand band keeps light-on-navy text: scope the text tokens inside it */
html[data-theme="light"] .ltsc-bar, html[data-theme="light"] .header, html[data-theme="light"] .ltsc-foot {
  --text: #ffffff; --muted: #c3cfe0; --red-text: #ff9aa0; --border: rgba(255,255,255,.18);
  color: var(--text);                       /* children that only inherit (record badge) get white too */
}
html[data-theme="light"] .header { border-bottom-color: var(--red); }
html[data-theme="light"] .ltsc-foot { background: var(--bar-bg); border-top-color: var(--bar-bg); }   /* white wordmark needs the navy band */

/* dashboard tab strip: paper with a navy active tab (the page's own red rule stays) */
html[data-theme="light"] .nav { border-bottom: 1px solid var(--border); }
html[data-theme="light"] .nav button.active, html[data-theme="light"] .nav-tab.active { color: var(--navy); }
html[data-theme="light"] .nav button:hover, html[data-theme="light"] .nav-tab:hover { color: var(--text); }

/* things that sit ON an accent fill keep white text */
html[data-theme="light"] .logo-mark, html[data-theme="light"] .seg button.on, html[data-theme="light"] .preset.on,
html[data-theme="light"] .view-card.active, html[data-theme="light"] .bar-fill.gold, html[data-theme="light"] .bar-fill.red,
html[data-theme="light"] .pitch-K, html[data-theme="light"] .pitch-B, html[data-theme="light"] .dl-btn,
html[data-theme="light"] .header-title, html[data-theme="light"] .ltsc-scrollwrap::before,
html[data-theme="light"] #audit-panel-x9k2 button.audit-run-btn { color: var(--on-accent); }

/* football */
html[data-theme="light"] .matchup { background: linear-gradient(135deg, #ffffff 0%, #e9eff7 100%); }
html[data-theme="light"] .nat-badge, html[data-theme="light"] .pp-nat span { background: #fff3cd; color: #6b4e00; border-color: #e5c76b; }
html[data-theme="light"] .nat-badge.conf, html[data-theme="light"] .pp-nat span.conf { background: #e3eefb; color: #174f85; border-color: #9dbfe6; }
html[data-theme="light"] .km-tag.clash { color: #6b4e00; border-color: #e5c76b; }
html[data-theme="light"] .km-tag.edge { border-color: #9fd3b6; }
html[data-theme="light"] tr.me td:first-child, html[data-theme="light"] .chip.to, html[data-theme="light"] .epa-neg { color: var(--red-text); }
html[data-theme="light"] tr.me td.stk { background: #fbeaec; }
html[data-theme="light"] .pp-overlay { background: rgba(20,26,36,.55); }
html[data-theme="light"] .pl { border-bottom-color: rgba(91,107,127,.6); }
html[data-theme="light"] .table-wrap.scrolls td.stk.stk-last, html[data-theme="light"] .table-wrap.scrolls th.stk.stk-last { box-shadow: 6px 0 8px -6px rgba(20,26,36,.25); }

/* baseball / softball */
html[data-theme="light"] .pitch-F { background: #fde8e9; color: var(--red-text); }
html[data-theme="light"] .pitch-S { background: #ebe6fa; color: #5a44b0; }
html[data-theme="light"] .pitch-H { background: #e2f5ea; color: #1e7a45; }
html[data-theme="light"] .pitch-K { background: #b4232c; }
html[data-theme="light"] .pitch-B { background: #1f66b8; }
html[data-theme="light"] .splits-row { background: #eef1f5; }
html[data-theme="light"] .splits-row td:first-child { color: var(--muted); }
html[data-theme="light"] .stats-table-wrap table:not(#bb-schedule-table):not(#sb-schedule-table) td,
html[data-theme="light"] .stats-table-wrap table:not(#bb-schedule-table):not(#sb-schedule-table) th { box-shadow: none; }

/* pro dogs */
html[data-theme="light"] .league-badge.nba { background: #e3eefb; border-color: #9dbfe6; color: #174f85; }
html[data-theme="light"] .league-badge.gleague { background: #eef1f5; border-color: #c9d3df; color: #3d5270; }

/* home + article tints already use rgba over the page; text colors come from tokens */
html[data-theme="light"] .ltsc-home .sport-card, html[data-theme="light"] .ltsc-home .featured-article,
html[data-theme="light"] .ltsc-home .more-story { box-shadow: 0 1px 2px rgba(20,26,36,.06); }

/* logos: no keyline on paper, and ltsc.js swaps CFBD's dark-background variants for the standard ones */
html[data-theme="light"] img[src*="collegefootballdata.com/logos"], html[data-theme="light"] img[src*="collegefootballdata.com/cbb-logos"],
html[data-theme="light"] img[src*="espncdn.com/i/teamlogos"], html[data-theme="light"] img[src*="ncaa.com/sites/default/files/images/logos"],
html[data-theme="light"] .matchup img[src*="logos"], html[data-theme="light"] .scoreline img[src*="logos"] { filter: none; }

/* the toggle (ltsc.js inserts it at the right end of the site bar) */
.ltsc-theme {
  flex: none; width: 32px; height: 32px; margin-left: 6px; border-radius: 50%; border: 1px solid transparent;
  background: transparent; color: var(--muted); display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; padding: 0; transition: color .15s, border-color .15s;
}
.ltsc-theme:hover { color: var(--text); border-color: var(--border); }
.ltsc-theme svg { width: 17px; height: 17px; display: block; }
.ltsc-theme .ico-sun { display: none; } .ltsc-theme .ico-moon { display: block; }
html[data-theme="light"] .ltsc-theme .ico-sun { display: block; } html[data-theme="light"] .ltsc-theme .ico-moon { display: none; }
@media (max-width: 640px) { .ltsc-theme { width: 30px; height: 30px; margin-left: 2px; } }

/* 9b. per-hex tokens for inline/legacy colors: dark == original value */
:root {
  --c-6b9de8: #6b9de8;
  --c-7cc0f5: #7cc0f5;
  --c-6aacff: #6aacff;
  --c-5a9fd4: #5a9fd4;
  --c-ffb8b8: #ffb8b8;
  --c-ff8a8a: #ff8a8a;
  --c-ff6b73: #ff6b73;
  --c-c8e6cf: #c8e6cf;
  --c-4eb87a: #4eb87a;
  --c-6fdc8c: #6fdc8c;
  --c-5dd45d: #5dd45d;
  --c-b39ddb: #b39ddb;
  --c-9b8fd5: #9b8fd5;
  --c-aa88ff: #aa88ff;
  --c-ffd166: #ffd166;
  --c-e8b84b: #e8b84b;
  --c-cccc44: #cccc44;
  --c-2a1416: #2a1416;
  --c-2a1620: #2a1620;
  --c-4a1d20: #4a1d20;
  --c-0a1628: #0a1628;
  --c-1a2f50: #1a2f50;
  --c-2a4060: #2a4060;
  --c-3a2d0a: #3a2d0a;
  --c-2a2a1a: #2a2a1a;
  --c-0b2a4a: #0b2a4a;
  --c-1a2a4a: #1a2a4a;
  --c-1a3a1a: #1a3a1a;
  --c-2a1a3a: #2a1a3a;
  --c-3a2a60: #3a2a60;
  --c-6a5a1f: #6a5a1f;
  --c-7a7a2a: #7a7a2a;
  --c-1f5a8a: #1f5a8a;
  --c-2a4a8a: #2a4a8a;
  --c-2a5a8a: #2a5a8a;
  --c-1f5a3a: #1f5a3a;
  --c-3a7a3a: #3a7a3a;
  --c-5a3a8a: #5a3a8a;
  --c-1a2a3a: #1a2a3a;
  --c-2a1a1a: #2a1a1a;
  --c-7a2a2a: #7a2a2a;
  --c-ff7a7a: #ff7a7a;
  --c-2a6a2a: #2a6a2a;
  --c-5a2a8a: #5a2a8a;
}
html[data-theme="light"] {
  --c-6b9de8: #174f85;
  --c-7cc0f5: #1f66b8;
  --c-6aacff: #1f66b8;
  --c-5a9fd4: #1f66b8;
  --c-ffb8b8: #8f1d24;
  --c-ff8a8a: #b4232c;
  --c-ff6b73: #b4232c;
  --c-c8e6cf: #14603a;
  --c-4eb87a: #177a43;
  --c-6fdc8c: #177a43;
  --c-5dd45d: #177a43;
  --c-b39ddb: #4b3a8a;
  --c-9b8fd5: #4b3a8a;
  --c-aa88ff: #5a3a8a;
  --c-ffd166: #8a5a00;
  --c-e8b84b: #8a5a00;
  --c-cccc44: #7a6a00;
  --c-2a1416: #fbeaec;
  --c-2a1620: #fbeaec;
  --c-4a1d20: #fbeaec;
  --c-0a1628: #ffffff;
  --c-1a2f50: #d8dfe8;
  --c-2a4060: #d8dfe8;
  --c-3a2d0a: #fff3cd;
  --c-2a2a1a: #fff3cd;
  --c-0b2a4a: #e3eefb;
  --c-1a2a4a: #e3eefb;
  --c-1a3a1a: #e4f5ea;
  --c-2a1a3a: #ede7f8;
  --c-3a2a60: #ede7f8;
  --c-6a5a1f: #e5c76b;
  --c-7a7a2a: #e5c76b;
  --c-1f5a8a: #9dbfe6;
  --c-2a4a8a: #9dbfe6;
  --c-2a5a8a: #9dbfe6;
  --c-1f5a3a: #9fd4b4;
  --c-3a7a3a: #9fd4b4;
  --c-5a3a8a: #c4b5e8;
  --c-1a2a3a: #e3eefb;
  --c-2a1a1a: #fbeaec;
  --c-7a2a2a: #e5a0a5;
  --c-ff7a7a: #b4232c;
  --c-2a6a2a: #9fd4b4;
  --c-5a2a8a: #c4b5e8;
}
/* tecmo: NES white title ink and pink accent on paper */
html[data-theme="light"] .ltsc-tecmo { --nes-white: #141a24; }
