/* ============================================================
   FantasyArb themes — applied via [data-theme="..."] on <html>.
   Classic = current fintech look (no override needed; pages keep
   their inline :root variables).
   Terminal / Prospectus / Gridiron override tokens + add signature
   chrome (status bar, double-rule header, L-bar ticker) via
   theme-chrome.js.
   ============================================================ */

/* Shared baseline for non-classic themes: enforce 0 border-radius,
   remove shadow noise, lock to per-theme palette. */
html[data-theme="terminal"],
html[data-theme="prospectus"],
html[data-theme="gridiron"] {
  /* Disable rounded corners site-wide per handoff */
  --radius: 0 !important;
}

/* ============================================================
   TERMINAL — Bloomberg for fantasy football
   ============================================================ */
html[data-theme="terminal"] {
  --tbg: #0b0b0a;
  --tpanel: #131311;
  --tline: #242320;
  --tdim: #6b6658;
  --ttext: #e8e2d0;
  --tamber: #ff9c00;
  --tgreen: #5af07c;
  --tred: #ff4a4a;
  --tcyan: #6dd3ff;
  --tyellow: #ffd84d;

  /* Map to existing rankings.html / index.html vars */
  --bg-dark: var(--tbg);
  --bg-card: var(--tpanel);
  --bg-card-hover: #1a1815;
  --bg-row-alt: rgba(255, 255, 255, 0.012);
  --green: var(--tgreen);
  --green-dim: rgba(90, 240, 124, 0.12);
  --green-border: rgba(90, 240, 124, 0.35);
  --red: var(--tred);
  --red-dim: rgba(255, 74, 74, 0.12);
  --red-border: rgba(255, 74, 74, 0.35);
  --yellow: var(--tyellow);
  --yellow-dim: rgba(255, 216, 77, 0.12);
  --text-primary: var(--ttext);
  --text-secondary: var(--tdim);
  --text-muted: var(--tdim);
  --border: var(--tline);
  --accent: var(--tamber);
  --shadow: none;
  --mono: 'IBM Plex Mono', 'JetBrains Mono', monospace;

  --pos-qb: var(--tred);
  --pos-rb: var(--tcyan);
  --pos-wr: var(--tgreen);
  --pos-te: var(--tyellow);
  --pos-k: #a855f7;
  --pos-dst: #ec4899;
}

html[data-theme="terminal"] body {
  font-family: 'IBM Plex Mono', 'JetBrains Mono', monospace !important;
  background: var(--tbg) !important;
  color: var(--ttext) !important;
}

html[data-theme="terminal"] h1,
html[data-theme="terminal"] h2,
html[data-theme="terminal"] h3,
html[data-theme="terminal"] h4 {
  font-family: 'IBM Plex Mono', monospace !important;
  letter-spacing: -0.5px;
}

/* Terminal chrome — injected by theme-chrome.js */
.fa-terminal-statusbar {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 8px 20px;
  border-bottom: 1px solid var(--tline);
  font: 500 11px/1 'IBM Plex Mono', monospace;
  letter-spacing: 0.5px;
  color: var(--tdim);
  background: #0f0f0d;
  text-transform: uppercase;
}
.fa-terminal-statusbar .sysname {
  color: var(--tamber);
  font-weight: 600;
  letter-spacing: 2px;
}
.fa-terminal-statusbar .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--tgreen);
  animation: fa-pulse 2s infinite;
}
.fa-terminal-statusbar .spacer { flex: 1; }
.fa-terminal-statusbar .tag { color: var(--tdim); }
.fa-terminal-statusbar .val { color: var(--ttext); margin-left: 6px; }

@keyframes fa-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }

/* Kill rounded corners on common primitives */
html[data-theme="terminal"] button,
html[data-theme="terminal"] input,
html[data-theme="terminal"] select,
html[data-theme="terminal"] textarea,
html[data-theme="terminal"] .card,
html[data-theme="terminal"] .btn,
html[data-theme="terminal"] table {
  border-radius: 0 !important;
}

/* ============================================================
   PROSPECTUS — FT/WSJ cream-and-ink research report
   ============================================================ */
html[data-theme="prospectus"] {
  --pg: #f7f3ec;
  --pg-alt: #efe9de;
  --ink: #111418;
  --ink-2: #4a5058;
  --rule: #d1c9bb;
  --accent-ox: #8a1818;
  --positive: #0e5c3a;
  --negative: #8a1818;

  --bg-dark: var(--pg);
  --bg-card: var(--pg);
  --bg-card-hover: var(--pg-alt);
  --bg-row-alt: rgba(17, 20, 24, 0.025);
  --green: var(--positive);
  --green-dim: rgba(14, 92, 58, 0.10);
  --green-border: rgba(14, 92, 58, 0.35);
  --red: var(--negative);
  --red-dim: rgba(138, 24, 24, 0.10);
  --red-border: rgba(138, 24, 24, 0.35);
  --yellow: #a6751f;
  --yellow-dim: rgba(166, 117, 31, 0.10);
  --text-primary: var(--ink);
  --text-secondary: var(--ink-2);
  --text-muted: #6b727c;
  --border: var(--rule);
  --accent: var(--accent-ox);
  --shadow: none;
  --mono: 'IBM Plex Mono', monospace;

  --pos-qb: var(--accent-ox);
  --pos-rb: #1a3a5c;
  --pos-wr: var(--positive);
  --pos-te: #a6751f;
  --pos-k: #6b3a8a;
  --pos-dst: #a63a6b;
}

html[data-theme="prospectus"] body {
  font-family: 'IBM Plex Sans', -apple-system, sans-serif !important;
  background: var(--pg) !important;
  color: var(--ink) !important;
}

html[data-theme="prospectus"] h1,
html[data-theme="prospectus"] h2,
html[data-theme="prospectus"] h3,
html[data-theme="prospectus"] h4 {
  font-family: 'IBM Plex Serif', Georgia, serif !important;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: 0;
}

.fa-prospectus-metabar {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 10px 24px;
  border-bottom: 1px solid var(--rule);
  background: var(--pg-alt);
  font: 500 10px/1 'IBM Plex Mono', monospace;
  letter-spacing: 2px;
  color: var(--ink-2);
  text-transform: uppercase;
}
.fa-prospectus-metabar .live {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--accent-ox);
}
.fa-prospectus-metabar .live::before {
  content: "●";
  animation: fa-pulse 2s infinite;
}
.fa-prospectus-metabar .spacer { flex: 1; }
.fa-prospectus-metabar .tag { color: var(--ink-2); }
.fa-prospectus-metabar .val { color: var(--ink); margin-left: 6px; }

html[data-theme="prospectus"] button,
html[data-theme="prospectus"] input,
html[data-theme="prospectus"] select,
html[data-theme="prospectus"] textarea,
html[data-theme="prospectus"] .card,
html[data-theme="prospectus"] .btn,
html[data-theme="prospectus"] table {
  border-radius: 0 !important;
}

/* ============================================================
   GRIDIRON — broadcast sports graphics / ESPN L-bar
   ============================================================ */
html[data-theme="gridiron"] {
  --gfield: #0d1b14;
  --gfield-2: #122a1e;
  --gline: #24402f;
  --gink: #f4f1ea;
  --gdim: #8ea199;
  --gchalk: #d3dccd;
  --gaccent: #ff7a1a;
  --gaccent-2: #ffb84d;
  --ggreen: #00d972;
  --gred: #ff3355;

  --bg-dark: var(--gfield);
  --bg-card: var(--gfield-2);
  --bg-card-hover: #163524;
  --bg-row-alt: rgba(255, 255, 255, 0.02);
  --green: var(--ggreen);
  --green-dim: rgba(0, 217, 114, 0.12);
  --green-border: rgba(0, 217, 114, 0.35);
  --red: var(--gred);
  --red-dim: rgba(255, 51, 85, 0.12);
  --red-border: rgba(255, 51, 85, 0.35);
  --yellow: var(--gaccent-2);
  --yellow-dim: rgba(255, 184, 77, 0.12);
  --text-primary: var(--gink);
  --text-secondary: var(--gdim);
  --text-muted: var(--gdim);
  --border: var(--gline);
  --accent: var(--gaccent);
  --shadow: none;
  --mono: 'IBM Plex Mono', monospace;

  --pos-qb: var(--gred);
  --pos-rb: #ffb84d;
  --pos-wr: var(--ggreen);
  --pos-te: #6dd3ff;
  --pos-k: #a855f7;
  --pos-dst: #ec4899;
}

html[data-theme="gridiron"] body {
  font-family: 'IBM Plex Sans', -apple-system, sans-serif !important;
  background: var(--gfield) !important;
  color: var(--gink) !important;
}

html[data-theme="gridiron"] h1,
html[data-theme="gridiron"] h2,
html[data-theme="gridiron"] h3,
html[data-theme="gridiron"] h4 {
  font-family: 'Oswald', 'IBM Plex Sans Condensed', sans-serif !important;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.fa-gridiron-lbar {
  display: flex;
  align-items: center;
  padding: 10px 0;
  border-bottom: 2px solid var(--gaccent);
  background: #080f0b;
  overflow: hidden;
  font: 600 11px/1 'IBM Plex Sans Condensed', 'IBM Plex Sans', sans-serif;
  letter-spacing: 1px;
  color: var(--gink);
  text-transform: uppercase;
  white-space: nowrap;
}
.fa-gridiron-lbar .track {
  display: inline-flex;
  gap: 36px;
  animation: fa-ticker 70s linear infinite;
  padding-left: 100%;
}
.fa-gridiron-lbar .tick { display: inline-flex; align-items: center; gap: 8px; }
.fa-gridiron-lbar .tick .tag {
  background: var(--gaccent);
  color: #080f0b;
  padding: 2px 8px;
  font-weight: 700;
  letter-spacing: 1.5px;
}
.fa-gridiron-lbar .tick .up { color: var(--ggreen); }
.fa-gridiron-lbar .tick .dn { color: var(--gred); }

@keyframes fa-ticker { to { transform: translateX(-100%); } }

html[data-theme="gridiron"] button,
html[data-theme="gridiron"] input,
html[data-theme="gridiron"] select,
html[data-theme="gridiron"] textarea,
html[data-theme="gridiron"] .card,
html[data-theme="gridiron"] .btn,
html[data-theme="gridiron"] table {
  border-radius: 0 !important;
}

/* Faint hashmark overlay evokes yard lines — gridiron only */
html[data-theme="gridiron"] body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background: repeating-linear-gradient(
    to right,
    rgba(255, 255, 255, 0) 0,
    rgba(255, 255, 255, 0) 98px,
    rgba(255, 255, 255, 0.022) 99px,
    rgba(255, 255, 255, 0.022) 100px
  );
}
html[data-theme="gridiron"] body > * { position: relative; z-index: 1; }

/* Print: strip chrome + animated overlays so Ctrl+P is usable */
@media print {
  .fa-terminal-statusbar,
  .fa-prospectus-metabar,
  .fa-gridiron-lbar,
  html[data-theme="gridiron"] body::before {
    display: none !important;
    background: none !important;
  }
}
