/* ============================================================================
   PREVIOUSLY — STATS HUB v2 · shared styles (James, 2026-10-06)
   "Feel like a home first, statistics." — Desert Golden Hour theme.
   Shared by all 7 league stats pages. Per-league accent via --lg-accent.
   ========================================================================== */

.shub{ --lg-accent: var(--desert-accent); --lg-accent-deep: var(--desert-accent-deep); --lg-accent-soft: rgba(var(--desert-accent-rgb), .10);
  background: var(--desert-bg, var(--desert-bg)); color: var(--desert-ink, var(--desert-ink)); }.shub-inner{ max-width: 1240px; margin: 0 auto; padding: 0 28px; }/* ---------- HERO (home-first) ---------- */
.shub-hero{ position: relative; overflow: hidden; border-bottom: 1px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14));
  background:
    radial-gradient(1100px 380px at 88% -20%, var(--lg-accent-soft), transparent 60%),
    radial-gradient(800px 320px at 6% 115%, rgba(var(--desert-accent-rgb), .08), transparent 60%),
    var(--desert-bg, var(--desert-bg)); }.shub-hero-inner{ position: relative; z-index: 1; max-width: 1240px; margin: 0 auto;
  padding: 60px 28px 40px; display: grid; grid-template-columns: 1.2fr .8fr; gap: 36px; align-items: center; }.shub-kicker{ margin: 0 0 10px; font-size: 12px; font-weight: 800; letter-spacing: .22em;
  text-transform: uppercase; color: var(--lg-accent); }.shub-hero h1{ margin: 0 0 12px; font-family: var(--pv-serif, Georgia, serif);
  font-size: clamp(34px, 4.6vw, 58px); letter-spacing: -.01em; line-height: 1.04;
  color: var(--desert-ink, var(--desert-ink)); }.shub-lede{ margin: 0; font-size: 17px; line-height: 1.55; max-width: 560px;
  color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); }.shub-hero-meta{ margin-top: 16px; font-size: 13px; color: var(--desert-ink-faint, rgba(var(--desert-ink-rgb), .52)); }/* Stat of the day spotlight */
.sotd{ background: var(--desert-card, var(--desert-card)); border: 1px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14));
  border-radius: 20px; padding: 26px 26px 22px; box-shadow: 0 14px 40px var(--desert-shadow, rgba(var(--desert-shadow-rgb), .14));
  position: relative; overflow: hidden; }.sotd::before{ content: ""; position: absolute; inset: 0 0 auto 0; height: 5px;
  background: linear-gradient(90deg, var(--lg-accent), var(--lg-accent-deep)); }.sotd .kicker{ margin: 0 0 8px; font-size: 11px; font-weight: 800; letter-spacing: .2em;
  text-transform: uppercase; color: var(--lg-accent); }.sotd .big{ font-family: var(--pv-serif, Georgia, serif); font-size: clamp(40px, 5vw, 64px);
  font-weight: 700; line-height: 1; color: var(--desert-ink, var(--desert-ink)); font-variant-numeric: tabular-nums; }.sotd .unit{ font-size: 18px; font-weight: 600; color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); }.sotd .who{ display: flex; align-items: center; gap: 12px; margin-top: 14px; }.sotd .who img, .sotd .who .p-initials{ width: 46px; height: 46px; border-radius: 50%; object-fit: cover; }.sotd .who .nm{ font-weight: 800; font-size: 16px; }.sotd .who .tm{ font-size: 13px; color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); }.sotd .ctx{ margin: 12px 0 0; font-size: 14px; line-height: 1.55;
  color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); }/* ---------- STICKY TAB BAR ---------- */
.shub-tabs{ position: sticky; top: var(--pv-nav-h, 64px); z-index: 20;
  background: color-mix(in srgb, var(--desert-bg, var(--desert-bg)) 92%, transparent);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14)); }.shub-tabs-inner{ max-width: 1240px; margin: 0 auto; padding: 0 28px;
  display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }.shub-tabs-inner::-webkit-scrollbar{ display: none; }.shub-tab{ appearance: none; border: 0; background: none; cursor: pointer;
  font: inherit; font-weight: 700; font-size: 15px; padding: 16px 18px; min-height: 44px;
  color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); border-bottom: 3px solid transparent;
  white-space: nowrap; }.shub-tab:hover{ color: var(--desert-ink, var(--desert-ink)); }.shub-tab[aria-selected="true"]{ color: var(--lg-accent-deep, var(--desert-accent-deep)); border-bottom-color: var(--lg-accent, var(--desert-accent)); }.shub-tab:focus-visible{ outline: 2px solid var(--lg-accent, var(--desert-accent)); outline-offset: -2px; }/* ---------- TAB PANELS ---------- */
.shub-panel{ display: none; padding: 32px 0 56px; }.shub-panel.active{ display: block; }.shub-section-title{ margin: 0 0 6px; font-family: var(--pv-serif, Georgia, serif);
  font-size: clamp(22px, 2.6vw, 30px); color: var(--desert-ink, var(--desert-ink)); }.shub-section-sub{ margin: 0 0 20px; font-size: 14px; color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); }/* ---------- OVERVIEW GRID ---------- */
.ov-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 8px; }.ov-card{ background: var(--desert-card, var(--desert-card)); border: 1px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14));
  border-radius: 18px; padding: 22px; box-shadow: 0 8px 26px var(--desert-shadow, rgba(var(--desert-shadow-rgb), .14)); }.ov-card.wide{ grid-column: span 2; }.ov-card .kicker{ margin: 0 0 12px; font-size: 11px; font-weight: 800; letter-spacing: .2em;
  text-transform: uppercase; color: var(--lg-accent, var(--desert-accent)); }.hot-row{ display: flex; align-items: center; gap: 12px; padding: 10px 0;
  border-bottom: 1px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14)); }.hot-row:last-child{ border-bottom: 0; }.hot-rank{ font-weight: 900; font-size: 20px; color: var(--lg-accent, var(--desert-accent)); width: 28px;
  font-variant-numeric: tabular-nums; }.hot-row img, .hot-row .p-initials{ width: 42px; height: 42px; border-radius: 50%; object-fit: cover; flex: none; }.hot-info{ flex: 1; min-width: 0; }.hot-info .nm{ font-weight: 800; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.hot-info .tm{ font-size: 12px; color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); }.hot-val{ font-weight: 900; font-size: 20px; font-variant-numeric: tabular-nums; }.hot-val small{ display: block; font-size: 10px; font-weight: 700; letter-spacing: .08em;
  color: var(--desert-ink-faint, rgba(var(--desert-ink-rgb), .52)); text-align: right; }.snap-stats{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; text-align: center; }.snap-stats .n{ font-family: var(--pv-serif, Georgia, serif); font-size: 34px; font-weight: 700;
  color: var(--desert-ink, var(--desert-ink)); font-variant-numeric: tabular-nums; }.snap-stats .l{ font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); margin-top: 4px; }/* ---------- FILTER BAR (players tab) ---------- */
.fbar{ display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 0 0 18px;
  background: var(--desert-card, var(--desert-card)); border: 1px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14));
  border-radius: 16px; padding: 14px 16px; }.fbar input[type="search"]{ flex: 1 1 200px; min-height: 44px; border: 1.5px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14));
  border-radius: 999px; padding: 0 18px; font: inherit; font-size: 15px; background: var(--desert-bg, var(--desert-bg));
  color: var(--desert-ink, var(--desert-ink)); }.fbar input[type="search"]:focus{ outline: 2px solid var(--lg-accent, var(--desert-accent)); outline-offset: 1px; border-color: var(--lg-accent, var(--desert-accent)); }.fbar select{ min-height: 44px; border: 1.5px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14)); border-radius: 12px;
  padding: 0 12px; font: inherit; font-size: 14px; font-weight: 600; background: var(--desert-bg, var(--desert-bg));
  color: var(--desert-ink, var(--desert-ink)); }.pos-pills{ display: flex; gap: 6px; flex-wrap: wrap; }.pos-pill{ border: 1.5px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14)); background: var(--desert-bg, var(--desert-bg));
  border-radius: 999px; padding: 10px 16px; min-height: 44px; font: inherit; font-size: 13px; font-weight: 700;
  cursor: pointer; color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); }.pos-pill[aria-pressed="true"]{ background: var(--lg-accent, var(--desert-accent)); border-color: var(--lg-accent, var(--desert-accent)); color: var(--desert-card); }.mode-toggle{ display: inline-flex; border: 1.5px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14));
  border-radius: 999px; overflow: hidden; }.mode-toggle button{ border: 0; background: none; padding: 10px 18px; min-height: 44px; font: inherit;
  font-size: 13px; font-weight: 700; cursor: pointer; color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); }.mode-toggle button[aria-pressed="true"]{ background: var(--lg-accent, var(--desert-accent)); color: var(--desert-card); }.fbar .count{ margin-left: auto; font-size: 13px; color: var(--desert-ink-faint, rgba(var(--desert-ink-rgb), .52)); font-weight: 600; }/* ---------- TABLES ---------- */
.tbl-card{ background: var(--desert-card, var(--desert-card)); border: 1px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14));
  border-radius: 18px; overflow: hidden; box-shadow: 0 8px 26px var(--desert-shadow, rgba(var(--desert-shadow-rgb), .14)); }.tbl-scroll{ overflow-x: auto; }table.shub-tbl{ width: 100%; border-collapse: collapse; font-size: 15px; min-width: 680px; }table.shub-tbl thead th{ text-align: left; background: var(--desert-pressed, var(--desert-pressed));
  color: var(--desert-ink, var(--desert-ink)); font-size: 11px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; padding: 13px 14px; border-bottom: 2px solid var(--lg-accent, var(--desert-accent));
  white-space: nowrap; position: sticky; top: 0; }table.shub-tbl thead th button{ all: unset; cursor: pointer; font: inherit; color: inherit;
  display: inline-flex; align-items: center; gap: 6px; min-height: 24px; }table.shub-tbl thead th button:focus-visible{ outline: 2px solid var(--lg-accent, var(--desert-accent)); outline-offset: 2px; }table.shub-tbl tbody td{ padding: 11px 14px; border-bottom: 1px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14));
  vertical-align: middle; font-variant-numeric: tabular-nums; }table.shub-tbl tbody tr:nth-child(odd){ background: color-mix(in srgb, var(--desert-pressed, var(--desert-pressed)) 35%, transparent); }table.shub-tbl tbody tr:hover{ background: var(--lg-accent-soft, rgba(var(--desert-accent-rgb), .10)); }.c-rank{ width: 56px; font-weight: 800; color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); }tr.top1 .c-rank{ color: var(--lg-accent-deep, var(--desert-accent-deep)); }.c-num{ text-align: right; font-weight: 700; }th.c-num{ text-align: right; }.c-player{ min-width: 200px; }.p-cell{ display: flex; align-items: center; gap: 10px; }.p-cell img, .p-cell .p-initials{ width: 34px; height: 34px; border-radius: 50%; object-fit: cover; flex: none;
  background: var(--desert-pressed, var(--desert-pressed)); }.p-initials{ display: inline-flex; align-items: center; justify-content: center; font-weight: 800;
  font-size: 12px; color: var(--desert-card); background: linear-gradient(135deg, var(--lg-accent, var(--desert-accent)), var(--lg-accent-deep, var(--desert-accent-deep))); }.p-cell .nm{ font-weight: 700; }.p-cell .nm a{ color: inherit; text-decoration: none; }.p-cell .nm a:hover{ color: var(--lg-accent-deep, var(--desert-accent-deep)); text-decoration: underline; }.p-cell .meta{ font-size: 12px; color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); }.t-logo{ width: 30px; height: 30px; object-fit: contain; vertical-align: middle; margin-right: 8px; }.sort-ind{ font-size: 10px; opacity: .75; }.show-more{ display: block; width: 100%; border: 0; background: var(--desert-pressed, var(--desert-pressed));
  padding: 14px; min-height: 48px; font: inherit; font-weight: 800; font-size: 14px; cursor: pointer;
  color: var(--lg-accent-deep, var(--desert-accent-deep)); }.show-more:hover{ background: var(--lg-accent-soft, rgba(var(--desert-accent-rgb), .10)); }/* sticky first column on swipe */
@media (max-width: 760px){
  table.shub-tbl .c-player { position: sticky; left: 0; background: var(--desert-card, var(--desert-card));
    box-shadow: 2px 0 6px rgba(var(--desert-shadow-rgb), .12); z-index: 2; }
  table.shub-tbl thead th.c-player { background: var(--desert-pressed, var(--desert-pressed)); }
}/* ---------- LEADERS CARDS ---------- */
.lead-grid{ display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }.lead-card{ background: var(--desert-card, var(--desert-card)); border: 1px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14));
  border-radius: 18px; padding: 22px; box-shadow: 0 8px 26px var(--desert-shadow, rgba(var(--desert-shadow-rgb), .14)); }.lead-card h3{ margin: 0 0 4px; font-size: 18px; font-weight: 800; }.lead-card .sub{ margin: 0 0 14px; font-size: 13px; color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); }.lead-row{ display: flex; align-items: center; gap: 10px; padding: 8px 0; }.lead-row .rk{ font-weight: 900; width: 24px; color: var(--desert-ink-faint, rgba(var(--desert-ink-rgb), .52));
  font-variant-numeric: tabular-nums; }.lead-row.top1 .rk{ color: var(--lg-accent, var(--desert-accent)); }.lead-row img, .lead-row .p-initials{ width: 32px; height: 32px; border-radius: 50%; object-fit: cover; flex: none; }.lead-row .nm{ font-weight: 700; font-size: 14px; width: 150px; white-space: nowrap; overflow: hidden;
  text-overflow: ellipsis; flex: none; }.lead-bar{ flex: 1; height: 10px; border-radius: 999px; background: var(--desert-pressed, var(--desert-pressed));
  overflow: hidden; min-width: 40px; }.lead-bar i{ display: block; height: 100%; border-radius: 999px;
  background: linear-gradient(90deg, var(--lg-accent, var(--desert-accent)), var(--lg-accent-deep, var(--desert-accent-deep))); }.lead-row .vl{ font-weight: 800; font-size: 14px; width: 56px; text-align: right; font-variant-numeric: tabular-nums; }/* ---------- COMPARE ---------- */
.cmp-pickers{ display: grid; grid-template-columns: 1fr auto 1fr; gap: 16px; align-items: center; margin-bottom: 24px; }.cmp-vs{ font-family: var(--pv-serif, Georgia, serif); font-size: 28px; font-weight: 700;
  color: var(--lg-accent, var(--desert-accent)); }.cmp-picker{ position: relative; }.cmp-picker input{ width: 100%; min-height: 52px; border: 2px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14));
  border-radius: 14px; padding: 0 18px; font: inherit; font-size: 16px; background: var(--desert-card, var(--desert-card));
  color: var(--desert-ink, var(--desert-ink)); }.cmp-picker input:focus{ outline: none; border-color: var(--lg-accent, var(--desert-accent));
  box-shadow: 0 0 0 3px var(--lg-accent-soft, rgba(var(--desert-accent-rgb), .10)); }.cmp-suggest{ position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 30;
  background: var(--desert-card, var(--desert-card)); border: 1px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14));
  border-radius: 14px; box-shadow: 0 18px 44px rgba(var(--desert-shadow-rgb), .2); max-height: 300px; overflow: auto; display: none; }.cmp-suggest.open{ display: block; }.cmp-suggest button{ display: flex; align-items: center; gap: 10px; width: 100%; border: 0; background: none;
  padding: 10px 14px; min-height: 48px; font: inherit; font-size: 14px; cursor: pointer; text-align: left;
  color: var(--desert-ink, var(--desert-ink)); }.cmp-suggest button:hover, .cmp-suggest button:focus-visible{ background: var(--lg-accent-soft, rgba(var(--desert-accent-rgb), .10)); }.cmp-suggest img, .cmp-suggest .p-initials{ width: 30px; height: 30px; border-radius: 50%; object-fit: cover; }.cmp-chosen{ display: flex; align-items: center; gap: 12px; margin-top: 10px; }.cmp-chosen img, .cmp-chosen .p-initials{ width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }.cmp-chosen .nm{ font-weight: 800; }.cmp-chosen .tm{ font-size: 13px; color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); }.cmp-table{ background: var(--desert-card, var(--desert-card)); border: 1px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14));
  border-radius: 18px; padding: 22px; box-shadow: 0 8px 26px var(--desert-shadow, rgba(var(--desert-shadow-rgb), .14)); }.cmp-row{ display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; align-items: center; padding: 10px 0;
  border-bottom: 1px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14)); }.cmp-row:last-child{ border-bottom: 0; }.cmp-row .stat-label{ text-align: center; font-size: 11px; font-weight: 800; letter-spacing: .1em;
  text-transform: uppercase; color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); }.cmp-side{ display: flex; align-items: center; gap: 8px; }.cmp-side.right{ flex-direction: row-reverse; }.cmp-side .v{ font-weight: 900; font-size: 17px; min-width: 52px; font-variant-numeric: tabular-nums; }.cmp-side.right .v{ text-align: right; }.cmp-side .bar{ flex: 1; height: 12px; border-radius: 999px; background: var(--desert-pressed, var(--desert-pressed));
  overflow: hidden; position: relative; }.cmp-side .bar i{ position: absolute; top: 0; bottom: 0; border-radius: 999px;
  background: linear-gradient(90deg, var(--lg-accent, var(--desert-accent)), var(--lg-accent-deep, var(--desert-accent-deep))); }.cmp-side.left .bar i{ left: 0; }.cmp-side.right .bar i{ right: 0; }.cmp-side.winner .v{ color: var(--lg-accent-deep, var(--desert-accent-deep)); }.cmp-empty{ text-align: center; padding: 40px 20px; color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); }.cmp-empty p{ margin: 0 0 6px; font-size: 16px; }/* team compare */
.h2h-card{ background: var(--desert-card, var(--desert-card)); border: 1px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14));
  border-radius: 18px; padding: 24px; margin-top: 20px; text-align: center;
  box-shadow: 0 8px 26px var(--desert-shadow, rgba(var(--desert-shadow-rgb), .14)); }.h2h-teams{ display: flex; align-items: center; justify-content: center; gap: 20px; margin-bottom: 12px; }.h2h-teams img{ width: 64px; height: 64px; object-fit: contain; }.h2h-teams .nm{ font-weight: 800; font-size: 18px; margin-top: 6px; }.h2h-score{ font-family: var(--pv-serif, Georgia, serif); font-size: 40px; font-weight: 700;
  font-variant-numeric: tabular-nums; }.h2h-note{ font-size: 14px; color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); margin: 8px 0 0; }/* ---------- EMPTY / NOTICE ---------- */
.shub-notice{ background: var(--desert-card, var(--desert-card)); border: 1px dashed var(--desert-rule, rgba(var(--desert-ink-rgb), .3));
  border-radius: 18px; padding: 36px 28px; text-align: center; margin: 8px 0; }.shub-notice h3{ margin: 0 0 8px; font-size: 20px; }.shub-notice p{ margin: 0 auto; max-width: 520px; font-size: 15px; line-height: 1.6;
  color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); }/* ---------- RESPONSIVE ---------- */
@media (max-width: 960px){
  .shub-hero-inner { grid-template-columns: 1fr; gap: 24px; padding: 44px 20px 32px; }
  .ov-grid { grid-template-columns: 1fr; }
  .ov-card.wide { grid-column: span 1; }
  .lead-grid { grid-template-columns: 1fr; }
  .cmp-pickers { grid-template-columns: 1fr; }
  .cmp-vs { text-align: center; }
}@media (max-width: 640px){.shub-inner{ padding: 0 16px; }.shub-hero-inner{ padding: 36px 16px 28px; }.shub-tabs-inner{ padding: 0 12px; }.shub-tab{ padding: 14px 14px; font-size: 14px; }.shub-panel{ padding: 24px 0 44px; }.lead-row .nm{ width: 110px; }.fbar .count{ margin-left: 0; width: 100%; }
}
/* 390px phones (James 2026-10-06): tighten the small-screen layout */
@media (max-width: 430px){
  .shub-hero h1{ font-size: 30px; }
  .shub-lede{ font-size: 15px; }
  .sotd{ padding: 20px 18px 18px; }
  .sotd .big{ font-size: 36px; }
  .snap-stats{ gap: 8px; }
  .snap-stats .n{ font-size: 26px; }
  .snap-stats .l{ font-size: 10px; }
  .ov-card{ padding: 18px 16px; }
  .lead-card{ padding: 18px 16px; }
  .lead-row{ gap: 8px; }
  .lead-row .nm{ width: 92px; font-size: 13px; }
  .lead-row .vl{ width: 48px; font-size: 13px; }
  table.shub-tbl{ font-size: 14px; min-width: 600px; }
  table.shub-tbl tbody td{ padding: 10px 10px; }
  .tbl-card{ border-radius: 14px; margin: 0 -4px; }
  .shub-leagues{ gap: 6px !important; }
  .shub-leagues a{ padding: 8px 10px !important; font-size: 12px !important; }
  .cmp-row{ gap: 8px; }
  .cmp-side .v{ font-size: 15px; min-width: 44px; }
}

/* James 2026-10-07: everything clickable — player/team links in stats hub */
a.pv-plink, a.pv-tlink { color: inherit; text-decoration: none; border-bottom: 1px dotted transparent; transition: border-color .15s ease; }
a.pv-plink:hover, a.pv-tlink:hover { border-bottom-color: var(--lg-accent-deep, var(--desert-accent-deep)); }
.nm a.pv-plink { font-weight: 700; }

/* compare player pool (2026-10-15 repair: hub compare showed no players
   until a name was typed — pool lists the default category's leaders,
   tap to place; colors ride the hub's existing scheme tokens) */
.cmp-pool-title{ font-family: var(--pv-serif, Georgia, serif); font-size: 20px; font-weight: 700; margin: 28px 0 4px; color: var(--desert-ink, var(--desert-ink)); }
.cmp-pool{ display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; margin: 12px 0 8px; }
.cmp-pool-chip{ display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; border: 1px solid var(--desert-rule, rgba(var(--desert-ink-rgb), .14)); background: var(--desert-card, var(--desert-card)); border-radius: 12px; padding: 8px 10px; cursor: pointer; color: var(--desert-ink, var(--desert-ink)); font: inherit; }
.cmp-pool-chip:hover, .cmp-pool-chip:focus-visible{ border-color: var(--lg-accent, var(--desert-accent)); background: var(--lg-accent-soft, rgba(var(--desert-accent-rgb), .10)); }
.cmp-pool-chip img, .cmp-pool-chip .p-initials{ width: 34px; height: 34px; border-radius: 50%; object-fit: cover; flex: none; }
.cmp-pool-meta{ flex: 1; min-width: 0; display: flex; flex-direction: column; }
.cmp-pool-meta strong{ font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cmp-pool-meta small{ font-size: 12px; color: var(--desert-ink-dim, rgba(var(--desert-ink-rgb), .68)); }
.cmp-pool-val{ font-weight: 800; font-variant-numeric: tabular-nums; }
.cmp-pool-chip.in-slot{ border-color: var(--lg-accent, var(--desert-accent)); box-shadow: 0 0 0 3px var(--lg-accent-soft, rgba(var(--desert-accent-rgb), .25)); }
.cmp-pool-slot{ font-size: 10px; font-weight: 800; letter-spacing: .06em; color: var(--lg-accent-deep, var(--desert-accent-deep)); }

/* ================================================================
   STATSLEG 2026-10-17 — league stats shells conversion layer.
   stats-hub.css is fully token-driven off the retired desert
   palette (this sheet loads after theme-desert.css, so a body
   re-pin at equal specificity wins by order). Surfaces, text and
   chrome accent go to the house system; the display face token
   --pv-serif (Fraunces) goes to 'Previously Display' (Marathon).
   Per-league STATS_CONFIG accents in the shells are data-viz
   identity (league colors in charts) and are NOT touched.
   ================================================================ */
body {
  --desert-bg: #000000;
  --desert-card: #101010;
  --desert-pressed: #1B1B1B;
  --desert-ink: #FFFFFF;
  --desert-ink-dim: #A5ACAF;
  --desert-ink-faint: #959DA2;
  --desert-accent: #E10600;
  --desert-accent-deep: #E10600;
  --desert-accent-rgb: 225, 6, 0;
  --desert-ink-rgb: 255, 255, 255;
  --desert-rule: #2C2C2C;
  --desert-line: #2C2C2C;
  --desert-glass: rgba(0, 0, 0, .82);
  --desert-glass-strong: rgba(0, 0, 0, .92);
  --desert-shadow: rgba(0, 0, 0, .5);
  --desert-shadow-rgb: 0, 0, 0;
  --pv-serif: 'Previously Display', Georgia, 'Times New Roman', serif;
}
.shub { color: #A5ACAF; }
/* Tabs stick to the top of the viewport now that the old
   masthead/nav offset (--pv-nav-h) no longer applies. */
.shub-tabs { top: 0; }
/* League links: pills (inline-styled) -> underline tabs.
   !important beats the inline styles; the current league's link
   is the one whose inline style paints the accent background. */
.shub-leagues a {
  border-radius: 0 !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  color: #A5ACAF !important;
  padding: 6px 3px !important;
}
.shub-leagues a[style*="desert-accent"] {
  color: #FFFFFF !important;
  border-bottom-color: #E10600 !important;
}

/* ================================================================
   STATSLEG 2026-10-17 — part 2 (league shells): type + chrome
   text colors. stats-hub.js sets --lg-accent inline from the
   per-league STATS_CONFIG, which paints chrome TEXT (kickers,
   selected tabs, rank numerals) in league colors that fail
   contrast on black (NBA deep #92400E = 2.4:1). Chrome text goes
   house; league color survives only in decorative identity
   marks (table-head rule, hero glow).
   ================================================================ */
/* Body text: the shells never set a sans — everything inherited
   the browser default serif. The hub sans is Inter. */
.shub { font-family: 'Inter', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif; }
/* Display face at its only weight (400) — 700 would faux-bold. */
.shub-hero h1, .sotd .big, .shub-section-title, .snap-stats .n,
.cmp-vs, .h2h-score, .cmp-pool-title { font-weight: 400; }
/* Kickers: signal red, the fleet's kicker treatment. */
.shub-kicker, .sotd .kicker, .ov-card .kicker { color: #E10600; }
/* Selected tab: white label, red underline. */
.shub-tab[aria-selected="true"] { color: #FFFFFF; border-bottom-color: #E10600; }
.shub-tab:focus-visible, .fbar input[type="search"]:focus,
table.shub-tbl thead th button:focus-visible { outline-color: #E10600; }
/* Stat-of-the-day top bar: house red gradient. */
.sotd::before { background: linear-gradient(90deg, #E10600, #B00500); }
/* Rank emphasis numerals. */
.hot-rank, .lead-row.top1 .rk { color: #E10600; }
tr.top1 .c-rank, .show-more { color: #FFFFFF; }
/* Pressed pills + initial avatars sit ON league-color fills;
   their text was var(--desert-card) (now near-black = fails on
   mid-tone fills). White passes on every league fill. */
.pos-pill[aria-pressed="true"], .mode-toggle button[aria-pressed="true"],
.p-cell .p-initials, .lead-row .p-initials { color: #FFFFFF; }

/* STATSLEG 2026-10-17 — part 3 (league shells): page ground to
   pure house black (was resolving to the #101010 surface tone). */
body { background-color: #000000; }

/* ===== Shell link contrast — stats-legibility part 4 (2026-10-17) =====
   Bare content links in the shells ("See every player", "Browse teams",
   "All leaderboards") took var(--lg-accent-deep) as their color: 2.5:1
   at 14px on the dark ground. Classless anchors only — classed and
   inline-styled anchors (league nav, tabs) keep their pinned states. */
.shub a:not([class]) { color: #A5ACAF; }
.shub a:not([class]):hover { color: #FFFFFF; }

/* ===== Shell inline-accent links — stats-legibility part 5 (2026-10-17) =====
   The shell engine's templates hard-code style="color:var(--lg-accent-deep)"
   on its footer links ("See every player", "Browse teams", "All
   leaderboards", "Team page"). Inline styles beat stylesheet rules, so
   part 4's classless-anchor pin could not reach them; this selector keys
   on the inline style itself and overrides with !important. */
.shub a[style*="--lg-accent-deep"] { color: #A5ACAF !important; }
.shub a[style*="--lg-accent-deep"]:hover { color: #FFFFFF !important; }
