/* Hockey Scout Data Lab — light default, optional dark */

:root,
[data-theme="light"] {
  --bg: #f4f7fb;
  --bg-2: #ffffff;
  --bg-3: #e8eef6;
  --ink: #0f172a;
  --ink-2: #334155;
  --muted: #64748b;
  --line: rgba(15, 23, 42, 0.1);
  --accent: #2563eb;
  --accent-2: #0d9488;
  --gold: #b45309;
  --danger: #dc2626;
  --ok: #15803d;
  --nhle: #2563eb;
  --fw: #b45309;
  --shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
  --radius: 12px;
  --font: "Segoe UI", system-ui, -apple-system, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --header-h: 58px;
  --row-min: 1120px;
  --space: 1.25rem;
}

[data-theme="dark"] {
  --bg: #0b1220;
  --bg-2: #121a2b;
  --bg-3: #1a2438;
  --ink: #e8eef7;
  --ink-2: #c5d0e0;
  --muted: #8b9bb0;
  --line: rgba(180, 200, 230, 0.14);
  --accent: #3d8bfd;
  --accent-2: #5eead4;
  --gold: #e2b84a;
  --danger: #f07178;
  --ok: #7fd99a;
  --nhle: #5b9dff;
  --fw: #e2b84a;
  --shadow: 0 8px 28px rgba(0, 0, 0, 0.35);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  color-scheme: light;
  scroll-padding-top: calc(var(--header-h) + 12px);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  overflow-x: clip;
}
[data-theme="dark"] {
  color-scheme: dark;
}
[data-theme="light"] {
  color-scheme: light;
}

body {
  margin: 0;
  font-family: var(--font);
  background:
    radial-gradient(1200px 600px at 10% -10%, rgba(61, 139, 253, 0.12), transparent 60%),
    radial-gradient(900px 500px at 90% 0%, rgba(94, 234, 212, 0.08), transparent 55%),
    var(--bg);
  color: var(--ink);
  line-height: 1.5;
  min-height: 100vh;
  min-height: 100dvh;
  overflow-x: clip;
  /* Avoid iOS auto-zoom on focus for form controls */
  -webkit-tap-highlight-color: transparent;
}
body.nav-open {
  overflow: hidden;
}

a {
  color: var(--accent);
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}

.muted { color: var(--muted); }
.text-sm { font-size: 0.875rem; }

/* ── Header ─────────────────────────────────────────── */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(12px);
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  border-bottom: 1px solid var(--line);
}
.site-header__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0.65rem var(--space);
  padding-left: max(var(--space), env(safe-area-inset-left));
  padding-right: max(var(--space), env(safe-area-inset-right));
  min-height: var(--header-h);
  display: flex;
  align-items: center;
  gap: 0.75rem 1rem;
  flex-wrap: wrap;
}
.site-header__actions {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-shrink: 0;
  order: 3;
}
.nav-toggle {
  display: none;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  background: var(--bg-2);
  color: var(--ink);
  border-radius: 10px;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
}
.nav-toggle__bars {
  display: block;
  width: 18px;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
  position: relative;
  box-shadow: 0 -6px 0 currentColor, 0 6px 0 currentColor;
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars {
  background: transparent;
  box-shadow: none;
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before,
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 18px;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before {
  transform: rotate(45deg);
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after {
  transform: rotate(-45deg);
}
.brand {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  color: inherit;
  text-decoration: none;
  flex-shrink: 0;
  order: 1;
}
.brand:hover { text-decoration: none; }
.brand__mark {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  background: linear-gradient(145deg, var(--accent), var(--accent-2));
  color: #041018;
  flex-shrink: 0;
}
.brand__text { line-height: 1.15; }
.brand__name {
  display: block;
  font-weight: 700;
  font-size: 0.95rem;
}
.brand__tag {
  display: block;
  font-size: 0.7rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.site-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem;
  flex: 1 1 auto;
  min-width: 0;
  order: 2;
}
.site-nav__link {
  color: var(--ink-2);
  padding: 0.4rem 0.65rem;
  border-radius: 8px;
  font-size: 0.9rem;
  text-decoration: none;
  white-space: nowrap;
}
.site-nav__link:hover {
  background: var(--bg-3);
  text-decoration: none;
}
.site-nav__link--muted {
  color: var(--muted);
  font-size: 0.8rem;
}
.theme-toggle {
  border: 1px solid var(--line);
  background: var(--bg-2);
  color: var(--ink-2);
  border-radius: 8px;
  padding: 0.4rem 0.7rem;
  cursor: pointer;
  font-size: 0.8rem;
  flex-shrink: 0;
}

.site-main {
  max-width: 1240px;
  margin: 0 auto;
  padding: 1.35rem var(--space) 3rem;
  padding-left: max(var(--space), env(safe-area-inset-left));
  padding-right: max(var(--space), env(safe-area-inset-right));
  padding-bottom: max(3rem, env(safe-area-inset-bottom));
}

.site-footer {
  border-top: 1px solid var(--line);
  padding: 1.5rem var(--space);
  padding-left: max(var(--space), env(safe-area-inset-left));
  padding-right: max(var(--space), env(safe-area-inset-right));
  padding-bottom: max(1.5rem, env(safe-area-inset-bottom));
  color: var(--muted);
  font-size: 0.85rem;
}
.site-footer__inner {
  max-width: 1240px;
  margin: 0 auto;
}

/* ── Page head ──────────────────────────────────────── */
.page-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
  margin-bottom: 1.35rem;
  flex-wrap: wrap;
}
.kicker {
  margin: 0 0 0.35rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.72rem;
  color: var(--accent-2);
  font-weight: 600;
}
.page-title {
  margin: 0;
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  letter-spacing: -0.02em;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  line-height: 1.2;
}
.page-sub {
  margin: 0.55rem 0 0;
  color: var(--ink-2);
  max-width: 48rem;
  font-size: 0.95rem;
}
.page-head--compact {
  margin-bottom: 0.85rem;
}
.page-sub--short {
  max-width: 36rem;
  font-size: 0.9rem;
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.beta {
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.2rem 0.45rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  color: var(--gold);
  font-weight: 700;
  line-height: 1;
}

/* ── Buttons ────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border-radius: 9px;
  padding: 0.5rem 0.9rem;
  font-size: 0.9rem;
  font-weight: 600;
  border: 1px solid transparent;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  line-height: 1.2;
}
.btn:hover { text-decoration: none; }
.btn--primary {
  background: var(--accent);
  color: #fff;
}
.btn--primary:hover { filter: brightness(1.08); }
.btn--ok {
  background: var(--ok);
  color: #0b1220;
}
.btn--ok:hover { filter: brightness(1.06); }
[data-theme="light"] .btn--ok {
  color: #fff;
}
.btn--ghost {
  background: transparent;
  border-color: var(--line);
  color: var(--ink-2);
}
.btn--ghost:hover {
  background: var(--bg-3);
  color: var(--ink);
}

/* ── Panels / banners ───────────────────────────────── */
.panel {
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1rem 1.1rem;
  box-shadow: var(--shadow);
}
.banner {
  padding: 0.85rem 1rem;
  border-radius: var(--radius);
  background: var(--bg-3);
  border: 1px solid var(--line);
  margin-bottom: 1rem;
}
.banner--error {
  border-color: color-mix(in srgb, var(--danger) 50%, var(--line));
  color: var(--danger);
}
.empty {
  padding: 2rem 1rem;
  text-align: center;
  color: var(--muted);
}

/* Collapsed dataset + data tools */
.dataset-panel {
  margin-bottom: 0.85rem;
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 0.45rem 0.85rem;
}
.dataset-panel__summary {
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  list-style: none;
  font-size: 0.88rem;
}
.dataset-panel__summary::-webkit-details-marker { display: none; }
.dataset-panel__title {
  font-weight: 700;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.dataset-panel__meta {
  font-variant-numeric: tabular-nums;
}
.dataset-panel__body {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--line);
}
.data-tools {
  margin-top: 0.75rem;
  font-size: 0.88rem;
}
.data-tools summary {
  cursor: pointer;
  color: var(--ink-2);
  font-weight: 600;
}
.data-tools__note { margin: 0.5rem 0; }
.data-tools__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.stats-bar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 0.65rem;
  margin-bottom: 0.5rem;
}
.stat {
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0.7rem 0.85rem;
  min-width: 0;
}
.stat__label {
  display: block;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  margin-bottom: 0.15rem;
}
.stat__value {
  font-size: 1.2rem;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}
.stat__sub {
  display: block;
  font-size: 0.68rem;
  margin-top: 0.15rem;
  line-height: 1.2;
}

/* ── Filters / board toolbar ────────────────────────── */
.filters {
  margin-bottom: 1.15rem;
}
.filters--board {
  padding: 0.85rem 1rem;
}
.filters--hybrid {
  padding: 0.9rem 1rem 1rem;
  border-left: 4px solid var(--accent);
}

/* Who multi-select pills */
.board-who {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.55rem;
  margin-bottom: 0.35rem;
}
.board-who__label {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent);
  margin-right: 0.1rem;
}
.board-who__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.board-who-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.42rem 0.8rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--bg);
  color: var(--ink-2);
  font-size: 0.86rem;
  font-weight: 700;
  text-decoration: none;
  line-height: 1.2;
}
.board-who-pill::before {
  content: "";
  width: 0.85rem;
  height: 0.85rem;
  border-radius: 0.25rem;
  border: 2px solid color-mix(in srgb, var(--muted) 70%, var(--line));
  background: var(--bg-2);
  flex: 0 0 auto;
}
.board-who-pill:hover {
  text-decoration: none;
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
  color: var(--ink);
  background: color-mix(in srgb, var(--accent) 8%, var(--bg));
}
.board-who-pill.is-active {
  background: color-mix(in srgb, var(--accent) 16%, var(--bg));
  border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
  color: var(--accent);
}
.board-who-pill.is-active::before {
  border-color: var(--accent);
  background: var(--accent);
  box-shadow: inset 0 0 0 2px var(--bg-2);
}
.board-who__clear {
  font-size: 0.78rem;
  margin-left: auto;
}
.board-who__hint {
  margin: 0 0 0.85rem;
  font-size: 0.8rem;
  line-height: 1.4;
}
/* legacy mode tabs (if cached markup) */
.board-modes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.45rem;
}
.board-mode {
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 0.85rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--bg);
  color: var(--ink-2);
  font-size: 0.86rem;
  font-weight: 700;
  text-decoration: none;
  line-height: 1.2;
}
.board-mode.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

/* Facet chips */
.board-facets__search {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
  margin-bottom: 0.75rem;
}
.board-facets__search input[type="search"] {
  flex: 1 1 14rem;
  min-width: 0;
  min-height: 2.4rem;
  padding: 0.4rem 0.7rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--bg);
  color: var(--ink);
  font-size: 0.95rem;
}
.board-facets__search input[type="search"]:focus {
  outline: 2px solid color-mix(in srgb, var(--accent) 45%, transparent);
  outline-offset: 1px;
}
.board-chip-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem 0.35rem;
  margin-bottom: 0.55rem;
}
.board-chip-row__label {
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
  margin-right: 0.2rem;
  min-width: 3.2rem;
}
.board-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--bg);
  color: var(--ink-2);
  font-size: 0.8rem;
  font-weight: 650;
  text-decoration: none;
  line-height: 1.2;
}
.board-chip:hover {
  text-decoration: none;
  border-color: color-mix(in srgb, var(--accent) 40%, var(--line));
  color: var(--ink);
  background: color-mix(in srgb, var(--accent) 8%, var(--bg));
}
.board-chip.is-active {
  background: color-mix(in srgb, var(--accent) 18%, var(--bg));
  border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
  color: var(--accent);
  font-weight: 750;
}
.board-scout-drawer {
  margin-top: 0.55rem;
}

.preset-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.75rem;
  align-items: center;
}
.preset-bar__label {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
  margin-right: 0.15rem;
}
.preset-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--bg);
  color: var(--ink-2);
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  line-height: 1.2;
}
.preset-chip:hover {
  text-decoration: none;
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
  color: var(--ink);
  background: color-mix(in srgb, var(--accent) 10%, var(--bg));
}
.preset-chip.is-active {
  background: color-mix(in srgb, var(--accent) 22%, var(--bg));
  border-color: color-mix(in srgb, var(--accent) 50%, var(--line));
  color: var(--accent-2, var(--accent));
}
.preset-chip--ghost {
  color: var(--muted);
  font-weight: 600;
}

/* Multi-select eligibility year (1st–4th) */
.elig-year-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.5rem;
  padding: 0.15rem 0 0.1rem;
}
.elig-year-bar__label {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
  font-weight: 700;
  margin-right: 0.15rem;
}
.elig-year-bar__hint {
  font-size: 0.75rem;
  margin-left: 0.15rem;
}
.elig-year-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--bg);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--ink-2);
  cursor: pointer;
  user-select: none;
  line-height: 1.2;
}
.elig-year-chip input {
  margin: 0;
  accent-color: var(--accent);
  cursor: pointer;
}
.elig-year-chip:hover {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
  color: var(--ink);
}
.elig-year-chip.is-active {
  background: color-mix(in srgb, #22c55e 16%, var(--bg));
  border-color: color-mix(in srgb, #22c55e 45%, var(--line));
  color: #86efac;
}
.filters__form {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.filters__primary {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 0.55rem 0.65rem;
}
.field--search {
  flex: 1 1 200px;
  min-width: min(100%, 200px);
}
.field--compact {
  flex: 0 1 110px;
  min-width: 88px;
}
.active-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.45rem;
}
.active-chip {
  display: inline-flex;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  background: color-mix(in srgb, var(--accent) 14%, var(--bg));
  border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line));
  color: var(--ink-2);
}
.active-chip--clear {
  color: var(--muted);
  text-decoration: none;
  background: transparent;
}
.active-chip--clear:hover {
  color: var(--danger);
  text-decoration: none;
}
.active-chip--link {
  text-decoration: none;
  cursor: default;
}
.filters__note {
  margin: 0.65rem 0 0;
  font-size: 0.78rem;
  line-height: 1.4;
}
.active-filters__count,
.filters__count {
  font-size: 0.82rem;
  margin-left: 0.25rem;
}
.filters__count { margin: 0; }
.filters__more {
  padding-top: 0.35rem;
  font-size: 0.9rem;
}
.filters__advanced {
  border-top: 1px solid var(--line);
  padding-top: 0.55rem;
  font-size: 0.9rem;
}
.filters__advanced > summary {
  cursor: pointer;
  color: var(--ink-2);
  font-weight: 700;
  font-size: 0.86rem;
  letter-spacing: 0.01em;
  user-select: none;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0;
}
.filters__advanced > summary::-webkit-details-marker { display: none; }
.filters__advanced > summary::before {
  content: "▸";
  color: var(--accent);
  font-size: 0.85em;
}
.filters__advanced[open] > summary::before {
  content: "▾";
}
.filters__advanced[open] > summary {
  margin-bottom: 0.55rem;
  color: var(--ink);
}
.filters__groups {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.filters__group {
  margin: 0;
  padding: 0.7rem 0.8rem 0.85rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: color-mix(in srgb, var(--bg) 70%, var(--bg-2));
}
.filters__group legend {
  padding: 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--accent);
}
.filters__advanced-actions {
  margin-top: 0.75rem;
}
.filters__primary .field__label,
.filters__group .field__label {
  display: block;
  margin-bottom: 0.22rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.filters__row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.7rem 0.75rem;
  align-items: end;
}
.filters__row--checks {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.1rem;
  margin-top: 0.65rem;
}
.field {
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  min-width: 0;
}
.field--narrow {
  max-width: 140px;
}
.field span {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
  font-weight: 600;
}
.field input,
.field select {
  width: 100%;
  min-width: 0;
  background: var(--bg);
  border: 1px solid var(--line);
  color: var(--ink);
  border-radius: 8px;
  padding: 0.48rem 0.65rem;
  font: inherit;
  font-size: 1rem; /* ≥16px prevents iOS focus zoom */
  line-height: 1.3;
}
.check {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.9rem;
  color: var(--ink-2);
  cursor: pointer;
  white-space: nowrap;
}
.filters__note {
  margin: 0.85rem 0 0;
  font-size: 0.86rem;
  line-height: 1.45;
}

/* ── Talent pool list ───────────────────────────────── */
.section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
  flex-wrap: wrap;
}
.section-head h2 {
  margin: 0;
  font-size: 1.25rem;
}

.talent-pool__block {
  margin: 0 0 2rem;
}
.talent-pool__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.2rem;
}
.talent-pool__head h3 {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.3;
}
.talent-pool__blurb {
  margin: 0 0 0.7rem;
  font-size: 0.88rem;
  line-height: 1.4;
}

/* Horizontal scroll wrapper so columns never crush each other */
.talent-pool__scroll {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--bg-2);
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  box-shadow: var(--shadow);
}

.talent-pool__list {
  min-width: var(--row-min);
  width: 100%;
}

.talent-row {
  display: grid;
  grid-template-columns:
    36px
    36px
    minmax(140px, 1.45fr)
    minmax(52px, 0.5fr)
    40px
    36px
    36px
    40px
    48px
    minmax(72px, 0.72fr)
    minmax(72px, 0.72fr)
    minmax(60px, 0.58fr)
    minmax(64px, 0.62fr)
    minmax(64px, 0.62fr);
  gap: 0 0.35rem;
  align-items: center;
  padding: 0.55rem 0.85rem;
  border-bottom: 1px solid var(--line);
  font-size: 0.9rem;
  min-height: 50px;
}
.talent-row--with-gap {
  grid-template-columns:
    32px
    30px
    minmax(110px, 1.15fr)
    minmax(44px, 0.42fr)
    36px
    34px
    34px
    36px
    44px
    minmax(118px, 1.1fr)
    minmax(60px, 0.55fr)
    minmax(60px, 0.55fr)
    minmax(48px, 0.45fr)
    minmax(52px, 0.48fr)
    minmax(52px, 0.48fr);
}
.talent-row--with-gap.talent-row--with-closure {
  grid-template-columns:
    28px
    26px
    minmax(96px, 1fr)
    minmax(40px, 0.36fr)
    34px
    30px
    30px
    34px
    42px
    minmax(100px, 0.95fr)
    minmax(48px, 0.42fr)
    minmax(54px, 0.48fr)
    minmax(50px, 0.45fr)
    minmax(50px, 0.48fr)
    minmax(42px, 0.38fr)
    minmax(46px, 0.42fr)
    minmax(46px, 0.42fr);
}
.talent-row--compact {
  /* same as default board grid */
}
.talent-row__gap,
.talent-row__close,
.talent-row__upgrade {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.12rem;
  min-width: 0;
}
.talent-row__gap {
  align-self: start;
  padding-top: 0.1rem;
}
.metric-cell--gap {
  width: 100%;
  gap: 0.28rem;
}
/* Formula inputs stacked under the Gap score pill */
.gap-formula {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.14rem;
  width: 100%;
  max-width: 11.5rem;
}
.gap-formula__chip {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: baseline;
  gap: 0.2rem 0.28rem;
  padding: 0.1rem 0.32rem;
  border-radius: 5px;
  background: color-mix(in srgb, var(--bg-3, var(--bg-2)) 88%, transparent);
  border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  font-size: 0.62rem;
  line-height: 1.15;
  min-width: 0;
}
.gap-formula__chip--pro {
  border-style: dashed;
  opacity: 0.92;
}
.gap-formula__lab {
  color: var(--muted);
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  letter-spacing: 0.01em;
}
.gap-formula__val {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: var(--ink-2, var(--text));
  white-space: nowrap;
}
.gap-formula__w {
  font-variant-numeric: tabular-nums;
  color: color-mix(in srgb, #22d3ee 70%, var(--muted));
  font-weight: 600;
  white-space: nowrap;
  font-size: 0.58rem;
}
[data-theme="light"] .gap-formula__w {
  color: #0e7490;
}
.pill--gap {
  background: color-mix(in srgb, #22d3ee 18%, transparent);
  color: #67e8f9;
  border: 1px solid color-mix(in srgb, #22d3ee 42%, transparent);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  min-width: 2.1rem;
  justify-content: center;
}
[data-theme="light"] .pill--gap {
  background: color-mix(in srgb, #0891b2 12%, var(--bg));
  color: #0e7490;
  border-color: color-mix(in srgb, #0891b2 35%, var(--line));
}
.pill--close {
  background: color-mix(in srgb, #34d399 18%, transparent);
  color: #6ee7b7;
  border: 1px solid color-mix(in srgb, #34d399 42%, transparent);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  min-width: 2.4rem;
  justify-content: center;
}
[data-theme="light"] .pill--close {
  background: color-mix(in srgb, #059669 12%, var(--bg));
  color: #047857;
  border-color: color-mix(in srgb, #059669 35%, var(--line));
}
.pill--upgrade {
  font-weight: 700;
  white-space: nowrap;
}
.pill--upgrade-upgrade {
  background: color-mix(in srgb, #34d399 20%, transparent);
  color: #6ee7b7;
  border: 1px solid color-mix(in srgb, #34d399 45%, transparent);
}
.pill--upgrade-sidegrade {
  background: color-mix(in srgb, var(--muted) 14%, transparent);
  color: var(--ink-2, var(--text));
  border: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
}
.pill--upgrade-downgrade {
  background: color-mix(in srgb, #f87171 16%, transparent);
  color: #fca5a5;
  border: 1px solid color-mix(in srgb, #f87171 40%, transparent);
}
[data-theme="light"] .pill--upgrade-upgrade {
  background: color-mix(in srgb, #059669 12%, var(--bg));
  color: #047857;
  border-color: color-mix(in srgb, #059669 35%, var(--line));
}
[data-theme="light"] .pill--upgrade-downgrade {
  background: color-mix(in srgb, #dc2626 10%, var(--bg));
  color: #b91c1c;
  border-color: color-mix(in srgb, #dc2626 30%, var(--line));
}

.talent-row > * {
  min-width: 0;
}

.talent-row--head {
  background: var(--bg-3);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  font-weight: 600;
  min-height: 42px;
  /* sticky within scroll area only — not over site header */
  position: sticky;
  top: 0;
  z-index: 4;
  border-bottom: 1px solid var(--line);
}

.talent-row__sort-btn {
  background: none;
  border: 0;
  color: inherit;
  font: inherit;
  cursor: pointer;
  padding: 0;
  text-align: left;
  max-width: 100%;
}
.talent-row__sort-btn:hover { color: var(--accent); }
.talent-row__sort-btn.is-active { color: var(--accent-2); }

.talent-pool__item:last-child > .talent-row {
  border-bottom: 0;
}
.talent-pool__item.is-open {
  background: color-mix(in srgb, var(--accent) 5%, var(--bg-2));
}
.talent-pool__item.is-open > .talent-row {
  border-bottom-color: transparent;
}

.talent-row__expand {
  display: flex;
  align-items: center;
  justify-content: center;
}

.talent-row__expand-btn {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  border: 1px solid var(--line);
  background: var(--bg);
  color: var(--ink-2);
  cursor: pointer;
  line-height: 1;
  padding: 0;
  flex-shrink: 0;
  display: grid;
  place-items: center;
}
.talent-pool__item.is-open .talent-row__expand-btn {
  background: var(--accent);
  color: #fff;
  border-color: transparent;
}

.talent-row__pos {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--ink-2);
  font-size: 0.85rem;
}

.talent-row__main {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  justify-content: center;
  padding-right: 0.25rem;
}
.talent-row__name {
  font-weight: 600;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.talent-row__vitals {
  font-size: 0.75rem;
  line-height: 1.2;
}

/* Metric cells: pill + score on one line, wrap if needed */
.metric-cell {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  min-width: 0;
}
.metric-cell__score {
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
  padding-left: 0.15rem;
}

.pill {
  display: inline-block;
  max-width: 100%;
  padding: 0.18rem 0.48rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pill--nhle {
  background: color-mix(in srgb, var(--nhle) 18%, transparent);
  color: var(--nhle);
  border: 1px solid color-mix(in srgb, var(--nhle) 35%, transparent);
}
.pill--fw {
  background: color-mix(in srgb, var(--fw) 18%, transparent);
  color: var(--fw);
  border: 1px solid color-mix(in srgb, var(--fw) 35%, transparent);
}
.pill--ud {
  background: color-mix(in srgb, var(--muted) 16%, transparent);
  color: var(--muted);
  border: 1px solid color-mix(in srgb, var(--muted) 30%, transparent);
}
.pill--draft {
  background: color-mix(in srgb, var(--accent-2) 16%, transparent);
  color: var(--accent-2);
  border: 1px solid color-mix(in srgb, var(--accent-2) 35%, transparent);
}
.pill--cs {
  background: color-mix(in srgb, #a78bfa 16%, transparent);
  color: #c4b5fd;
  border: 1px solid color-mix(in srgb, #a78bfa 40%, transparent);
}
[data-theme="light"] .pill--cs {
  background: color-mix(in srgb, #7c3aed 12%, var(--bg));
  color: #5b21b6;
  border-color: color-mix(in srgb, #7c3aed 35%, var(--line));
}
.talent-row__cs,
.talent-row__draft {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.12rem;
  min-width: 0;
}
.talent-row__cs {
  overflow: hidden;
}
.draft-sync-note {
  margin: -0.35rem 0 1rem;
}

.talent-row__team,
.talent-row__league {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.86rem;
  color: var(--ink-2);
}

.talent-row__elig {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.1rem;
  min-width: 0;
}
.pill--elig {
  font-size: 0.72rem;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pill--elig-eligible {
  background: color-mix(in srgb, #22c55e 22%, var(--bg));
  color: #86efac;
  border-color: color-mix(in srgb, #22c55e 45%, var(--line));
}
/* Light mode: mint text on pale green is unreadable — use dark green */
[data-theme="light"] .pill--elig-eligible {
  background: color-mix(in srgb, #16a34a 14%, var(--bg));
  color: #14532d;
  border-color: color-mix(in srgb, #15803d 40%, var(--line));
}
[data-theme="light"] .elig-year-chip.is-active {
  background: color-mix(in srgb, #16a34a 12%, var(--bg));
  color: #14532d;
  border-color: color-mix(in srgb, #15803d 40%, var(--line));
}
.pill--elig-too_young {
  background: color-mix(in srgb, #38bdf8 18%, var(--bg));
  color: #7dd3fc;
  border-color: color-mix(in srgb, #38bdf8 40%, var(--line));
}
.pill--elig-aged_out {
  background: color-mix(in srgb, #a78bfa 16%, var(--bg));
  color: #c4b5fd;
  border-color: color-mix(in srgb, #a78bfa 40%, var(--line));
}
.pill--elig-drafted {
  background: color-mix(in srgb, var(--accent) 18%, var(--bg));
  color: var(--accent-2, var(--accent));
}
.pill--elig-unknown {
  background: var(--bg);
  color: var(--muted);
}

.talent-row__pts {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.05rem;
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.talent-row__stat {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
  height: 100%;
  padding: 0.2rem 0.25rem;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--ink);
  background: color-mix(in srgb, var(--bg-3) 55%, transparent);
}
.talent-row__gp {
  border-left: 1px solid color-mix(in srgb, var(--line) 85%, transparent);
  border-radius: 6px 0 0 6px;
  padding-left: 0.45rem;
  min-width: 2.6rem;
  color: var(--ink);
  font-weight: 700;
}
.talent-row__stat--end {
  border-right: 1px solid color-mix(in srgb, var(--line) 85%, transparent);
  border-radius: 0 6px 6px 0;
  padding-right: 0.45rem;
  margin-right: 0.15rem;
}
.talent-row__p {
  font-weight: 800;
}
.talent-row__ppg {
  font-weight: 700;
  font-size: 0.84rem;
  color: var(--ink-2);
  min-width: 2.85rem;
}
.talent-row--head .talent-row__stat {
  background: color-mix(in srgb, var(--bg-3) 40%, transparent);
  font-weight: 650;
}
.talent-row--head .talent-row__stat .talent-row__sort-btn {
  width: 100%;
  justify-content: flex-end;
}
.pts-line {
  font-weight: 600;
  line-height: 1.2;
}
.pts-gp {
  font-size: 0.72rem;
  line-height: 1.1;
}

.proj-scrub {
  grid-column: 1 / -1;
  margin-top: 0.15rem;
  padding: 0.35rem 0.1rem 0.05rem;
  border-top: 1px solid color-mix(in srgb, var(--line) 55%, transparent);
}
.proj-scrub__row {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}
.proj-scrub__label {
  flex: 0 0 auto;
  min-width: 2.75rem;
  font-weight: 500;
  font-size: 0.7rem;
  color: var(--muted);
  opacity: 0.9;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
}
.proj-scrub__range {
  flex: 1 1 auto;
  width: 100%;
  height: 0.95rem;
  accent-color: color-mix(in srgb, var(--muted) 82%, var(--accent));
  cursor: pointer;
  opacity: 0.55;
}
.proj-scrub__range:hover,
.proj-scrub__range:focus {
  opacity: 0.85;
}
.proj-scrub__ticks {
  display: flex;
  justify-content: space-between;
  gap: 0.2rem;
  margin: 0.12rem 0 0 3.3rem; /* align under range, past label */
  font-size: 0.58rem;
  color: var(--muted);
  font-weight: 450;
  letter-spacing: 0.02em;
  opacity: 0.65;
}
.proj-scrub__ticks span {
  flex: 1;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.proj-scrub__ticks span:first-child { text-align: left; }
.proj-scrub__ticks span:last-child { text-align: right; }
.proj-scrub-note {
  margin: 0 0 0.55rem;
  font-size: 0.75rem;
  line-height: 1.35;
  opacity: 0.9;
}
.talent-brief__models.is-season-view .proj-outcomes[data-scrub-blend-only] {
  opacity: 0.4;
}

/* ── Expand brief ───────────────────────────────────── */
.talent-brief {
  padding: 1rem 1rem 1.25rem;
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 60%, var(--bg-2));
  /* briefs span full scroll width */
  min-width: var(--row-min);
}
.talent-brief__loading {
  margin: 0;
  padding: 0.5rem 0;
}
.talent-brief__layout,
.talent-brief__grid {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  max-width: 1100px;
}
.talent-brief__title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.65rem;
  margin-bottom: 0.55rem;
}
.talent-brief__name,
.talent-brief__info h4 {
  margin: 0;
  font-size: 1.08rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.talent-brief__facts,
.talent-proj-card__facts,
.season-list {
  margin: 0;
  padding-left: 1.15rem;
  font-size: 0.88rem;
}
.talent-brief__facts--inline {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.15rem;
  list-style: none;
  padding-left: 0;
  margin: 0;
}
.talent-brief__facts--inline li {
  margin: 0;
  line-height: 1.35;
  font-size: 0.86rem;
  color: var(--text);
}
.talent-brief__facts--inline li strong {
  color: var(--muted);
  font-weight: 600;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-right: 0.3rem;
}
/* Clean bio fact grid — aligned labels/values, no ragged wrap */
.talent-brief__facts--grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem 0.75rem;
  list-style: none;
  padding: 0;
  margin: 0.15rem 0 0;
}
.talent-brief__fact {
  min-width: 0;
  padding: 0.4rem 0.5rem;
  border-radius: 8px;
  background: color-mix(in srgb, var(--bg-3, var(--bg)) 55%, transparent);
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
}
.talent-brief__fact--wide {
  grid-column: span 2;
}
.talent-brief__fact dt {
  margin: 0 0 0.15rem;
  font-size: 0.66rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
  line-height: 1.2;
}
.talent-brief__fact dd {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--ink);
  word-break: break-word;
}
.talent-brief__fact-sub {
  margin-top: 0.12rem !important;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
}
.talent-brief__facts li,
.talent-proj-card__facts li,
.season-list li {
  margin: 0.22rem 0;
  line-height: 1.4;
}
@media (max-width: 720px) {
  .talent-brief__facts--grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .talent-brief__fact--wide {
    grid-column: span 2;
  }
}
@media (max-width: 420px) {
  .talent-brief__facts--grid {
    grid-template-columns: 1fr 1fr;
    gap: 0.4rem;
  }
}
.talent-brief__label {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--muted);
  font-weight: 700;
  margin: 0 0 0.5rem;
}
.talent-brief__proj-note {
  margin: 0;
  font-size: 0.88rem;
}

.talent-brief__models {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  align-items: start;
}

/* ── Career by season table (below NHLe / FW) ───────── */
.career-by-season {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg-2);
  overflow: hidden;
}
.career-by-season__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.7rem 0.9rem 0.45rem;
  border-bottom: 1px solid var(--line);
}
.career-by-season__head .talent-brief__label {
  margin: 0;
}
.career-by-season__count {
  font-size: 0.78rem;
}
.career-by-season--empty {
  padding: 0.7rem 0.9rem 0.9rem;
}
.career-by-season--empty .talent-brief__label {
  margin-bottom: 0.35rem;
}
.career-by-season--empty p {
  margin: 0;
  font-size: 0.88rem;
}
.career-by-season__scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.career-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
  min-width: 720px;
}
.career-table--full {
  min-width: 1680px;
  font-size: 0.8rem;
}
.career-by-season__note {
  margin: 0.45rem 0 0;
  font-size: 0.78rem;
  line-height: 1.35;
}
.career-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  text-align: left;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
  font-weight: 700;
  padding: 0.5rem 0.55rem;
  background: color-mix(in srgb, var(--bg) 70%, var(--bg-2));
  border-bottom: 1px solid var(--line);
  white-space: nowrap;
}
.career-table tbody td {
  padding: 0.42rem 0.55rem;
  border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  vertical-align: middle;
  white-space: nowrap;
}
.career-table tbody tr:last-child td {
  border-bottom: none;
}
.career-table tbody tr:hover td {
  background: color-mix(in srgb, var(--accent) 6%, transparent);
}
.career-table .num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}
.career-table__season {
  font-weight: 600;
  color: var(--text);
}
.career-table__league {
  font-weight: 600;
  color: var(--accent-2, var(--accent));
  font-size: 0.8rem;
}
.career-table__team {
  max-width: 11rem;
  overflow: hidden;
  text-overflow: ellipsis;
}
.career-table__pts {
  font-weight: 700;
}

.talent-proj-card {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0.9rem 1rem;
  background: var(--bg-2);
  min-width: 0;
  overflow: hidden;
}
.talent-brief__nhle {
  border-top: 3px solid var(--nhle);
}
.talent-brief__fw {
  border-top: 3px solid var(--fw);
}
.talent-proj-card__intro {
  font-size: 0.82rem;
  margin: 0 0 0.65rem;
  line-height: 1.4;
}
.talent-proj-card__method {
  display: inline-block;
  margin-top: 0.7rem;
  font-size: 0.82rem;
  font-weight: 600;
}
.talent-proj-card__blurb {
  font-size: 0.9rem;
  line-height: 1.45;
  margin: 0;
}

.proj-outcomes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
  margin-bottom: 0.85rem;
}
.proj-outcome {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0.5rem 0.4rem;
  text-align: center;
  min-width: 0;
}
.proj-outcome-kicker {
  display: block;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  margin-bottom: 0.3rem;
  line-height: 1.25;
}
.proj-outcome-kicker-note {
  display: block;
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.58rem;
  margin-top: 0.1rem;
}
.proj-outcome-pill {
  display: block;
  font-weight: 700;
  font-size: 0.8rem;
  line-height: 1.25;
  word-break: break-word;
}
.proj-outcome--ceil .proj-outcome-pill { color: var(--nhle); }
.talent-brief__fw .proj-outcome--ceil .proj-outcome-pill,
.talent-brief__fw .proj-outcome--likely .proj-outcome-pill { color: var(--fw); }

.proj-nhle-chart {
  margin: 0.7rem 0;
}
.proj-nhle-chart-frame {
  background: var(--bg);
  border-radius: 8px;
  border: 1px solid var(--line);
  padding: 0.4rem;
  overflow: hidden;
}
.proj-nhle-chart-hint {
  font-size: 0.74rem;
  margin: 0.4rem 0 0;
  line-height: 1.35;
}
.proj-nhle-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.65rem;
  margin-top: 0.45rem;
}
.proj-nhle-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.72rem;
  color: var(--muted);
  line-height: 1.3;
}
.proj-nhle-chip-line {
  width: 16px;
  height: 0;
  border-top: 2px dashed var(--muted);
  flex-shrink: 0;
}
.proj-nhle-chip--ceil .proj-nhle-chip-line { border-color: var(--nhle); }
.proj-nhle-chip--likely .proj-nhle-chip-line { border-color: var(--fw); }
.proj-nhle-svg {
  width: 100%;
  height: auto;
  display: block;
  max-width: 100%;
}
.proj-nhle-plot-bg { fill: color-mix(in srgb, var(--bg-3) 70%, transparent); }
.proj-nhle-grid { stroke: var(--line); stroke-width: 1; }
.proj-nhle-ytick,
.proj-nhle-xtick,
.proj-nhle-unit,
.proj-nhle-val {
  font-size: 9px;
  fill: var(--muted);
  font-family: var(--font);
}

.fw-calc-vs--higher { color: var(--ok); }
.fw-calc-vs--lower { color: var(--danger); }
.fw-calc-vs--agrees { color: var(--accent-2); }

/* Historical junior comps (side channel under FW card) */
.hist-comps {
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px dashed var(--line);
}
.hist-comps__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
.hist-comps__head .talent-brief__label {
  margin: 0;
}
.hist-comps__badge {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.2rem 0.45rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--bg);
  color: var(--muted);
  white-space: nowrap;
}
.hist-comps__badge--high {
  color: var(--ok);
  border-color: color-mix(in srgb, var(--ok) 40%, var(--line));
}
.hist-comps__badge--medium {
  color: var(--fw);
  border-color: color-mix(in srgb, var(--fw) 35%, var(--line));
}
.hist-comps__badge--low {
  color: var(--muted);
}
.hist-comps__blurb {
  font-size: 0.78rem;
  line-height: 1.4;
  margin: 0 0 0.55rem;
}
.hist-comps__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.hist-comps__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 0.35rem 0.5rem;
  align-items: baseline;
  font-size: 0.82rem;
  line-height: 1.3;
  padding: 0.35rem 0.45rem;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 6px;
}
.hist-comps__name {
  font-weight: 600;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.hist-comps__meta {
  font-size: 0.72rem;
  white-space: nowrap;
}
.hist-comps__outcome {
  font-size: 0.72rem;
  font-weight: 600;
  white-space: nowrap;
  color: var(--ink-2);
}
.hist-comps__outcome--star { color: var(--fw); }
.hist-comps__outcome--top6 { color: var(--ok); }
.hist-comps__outcome--ahl,
.hist-comps__outcome--bubble { color: var(--muted); }
.hist-comps__mix {
  font-size: 0.72rem;
  margin: 0.45rem 0 0;
  line-height: 1.35;
}
.hist-comps__foot {
  font-size: 0.7rem;
  margin: 0.4rem 0 0;
}
.hist-comps__reveal {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0.15rem 0 0.35rem;
  padding: 0.4rem 0.7rem;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--ink);
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 8px;
  cursor: pointer;
}
.hist-comps__reveal:hover {
  border-color: var(--fw);
  color: var(--fw);
}
.hist-comps__list-wrap[hidden] {
  display: none;
}

.disclaimer {
  margin-top: 1.5rem;
  font-size: 0.85rem;
  line-height: 1.45;
}

/* ── Methodology ────────────────────────────────────── */
.prose h2 {
  margin-top: 1.75rem;
  scroll-margin-top: calc(var(--header-h) + 12px);
}
.prose h3 { margin-top: 1.1rem; }
.prose p {
  color: var(--ink-2);
  line-height: 1.55;
}
.prose ul {
  color: var(--ink-2);
  line-height: 1.5;
}
.formula {
  font-family: var(--mono);
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0.75rem 1rem;
}
.table-wrap {
  overflow-x: auto;
  margin: 0.75rem 0;
}
.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}
.data-table th,
.data-table td {
  text-align: left;
  padding: 0.5rem 0.65rem;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
.data-table th {
  color: var(--muted);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
code {
  font-family: var(--mono);
  font-size: 0.86em;
  background: var(--bg);
  padding: 0.1rem 0.3rem;
  border-radius: 4px;
}

/* ── Responsive ─────────────────────────────────────── */
@media (max-width: 900px) {
  .talent-brief__models {
    grid-template-columns: 1fr;
  }
  .field--narrow {
    max-width: none;
  }
}

/* Tablet / phone: collapsible nav + card scout rows */
@media (max-width: 767px) {
  :root {
    --space: 0.85rem;
    --header-h: 54px;
  }

  .nav-toggle {
    display: inline-flex;
  }

  .site-header__inner {
    flex-wrap: nowrap;
    position: relative;
  }
  .site-header__actions {
    order: 2;
    margin-left: auto;
  }
  .site-nav {
    order: 3;
    display: none;
    flex: none;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 0.15rem;
    width: 100%;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 60;
    padding: 0.55rem max(var(--space), env(safe-area-inset-right)) 0.85rem max(var(--space), env(safe-area-inset-left));
    background: color-mix(in srgb, var(--bg-2) 96%, transparent);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--line);
    box-shadow: var(--shadow);
  }
  .site-nav.is-open {
    display: flex;
  }
  .site-nav__link {
    padding: 0.7rem 0.85rem;
    font-size: 1rem;
    border-radius: 10px;
  }

  .site-main {
    padding-top: 1rem;
  }

  .page-head {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
  }
  .page-head .btn,
  .page-head__actions {
    align-self: stretch;
  }
  .page-head__actions .btn {
    flex: 1 1 auto;
    justify-content: center;
  }
  .page-title {
    font-size: 1.4rem;
  }

  .stats-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .filters--board {
    padding: 0.75rem 0.8rem;
  }
  .preset-bar {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 0.35rem;
    padding-bottom: 0.2rem;
    margin-bottom: 0.65rem;
    scrollbar-width: none;
  }
  .preset-bar::-webkit-scrollbar {
    display: none;
  }
  .preset-chip {
    flex: 0 0 auto;
    padding: 0.42rem 0.75rem;
    font-size: 0.8rem;
  }

  .filters__primary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
    align-items: end;
  }
  .field--search {
    grid-column: 1 / -1;
    flex: none;
    min-width: 0;
  }
  .field--compact {
    flex: none;
    min-width: 0;
    width: 100%;
  }
  .filters__primary .btn {
    grid-column: 1 / -1;
    justify-content: center;
    min-height: 44px;
  }

  .check {
    white-space: normal;
  }

  /* Scout board: stack into cards (no forced 820px width) */
  .talent-pool__scroll {
    overflow-x: visible;
    border: 0;
    background: transparent;
    box-shadow: none;
    border-radius: 0;
  }
  .talent-pool__list {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
  }

  .talent-row--head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.35rem;
    padding: 0.45rem 0.15rem;
    min-height: 0;
    background: transparent;
    border: 0;
    position: sticky;
    top: var(--header-h);
    z-index: 5;
    background: color-mix(in srgb, var(--bg) 92%, transparent);
    backdrop-filter: blur(8px);
  }
  .talent-row--head .talent-row__expand {
    display: none;
  }
  .talent-row--head .talent-row__pos,
  .talent-row--head .talent-row__main,
  .talent-row--head .talent-row__league,
  .talent-row--head .talent-row__gap,
  .talent-row--head .talent-row__close,
  .talent-row--head .talent-row__upgrade,
  .talent-row--head .talent-row__nhle,
  .talent-row--head .talent-row__fw,
  .talent-row--head .talent-row__elig,
  .talent-row--head .talent-row__cs,
  .talent-row--head .talent-row__draft,
  .talent-row--head .talent-row__gp,
  .talent-row--head .talent-row__g,
  .talent-row--head .talent-row__a,
  .talent-row--head .talent-row__p,
  .talent-row--head .talent-row__ppg {
    flex: 0 0 auto;
  }
  .talent-row--head .talent-row__sort-btn {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.55rem;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: var(--bg-2);
    font-size: 0.72rem;
    text-transform: none;
    letter-spacing: 0;
    white-space: nowrap;
  }
  .talent-row--head .talent-row__sort-btn.is-active {
    border-color: color-mix(in srgb, var(--accent) 50%, var(--line));
    background: color-mix(in srgb, var(--accent) 14%, var(--bg-2));
  }

  .talent-pool__item {
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--bg-2);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
    overflow: hidden;
  }
  .talent-pool__item.is-open {
    border-color: color-mix(in srgb, var(--accent) 40%, var(--line));
  }

  .talent-row {
    grid-template-columns: 40px 32px minmax(0, 1fr) auto;
    grid-template-areas:
      "expand pos main elig"
      "expand pos main draft"
      "gp g a p"
      "ppg ppg nhle fw"
      "cs cs league league";
    gap: 0.2rem 0.35rem;
    padding: 0.7rem 0.75rem;
    border-bottom: 0;
    min-height: 0;
    align-items: center;
  }
  .talent-row--with-gap {
    grid-template-columns: 40px 32px minmax(0, 1fr) auto;
    grid-template-areas:
      "expand pos main elig"
      "expand pos main draft"
      "gp g a p"
      "ppg gap nhle fw"
      "cs cs league league";
  }
  .talent-row--with-gap.talent-row--with-closure {
    grid-template-areas:
      "expand pos main elig"
      "expand pos main draft"
      "gp g a p"
      "ppg close upgrade fw"
      "gap gap nhle nhle"
      "cs cs league league";
  }
  .talent-row__expand { grid-area: expand; align-self: center; }
  .talent-row__pos { grid-area: pos; align-self: start; padding-top: 0.2rem; }
  .talent-row__main { grid-area: main; padding-right: 0.35rem; }
  .talent-row__league {
    grid-area: league;
    font-size: 0.78rem;
    white-space: normal;
    color: var(--muted);
    padding-top: 0.15rem;
  }
  .talent-row__gap {
    grid-area: gap;
    max-width: none;
  }
  .gap-formula {
    max-width: none;
  }
  .gap-formula__chip {
    font-size: 0.64rem;
  }
  .talent-row__close { grid-area: close; }
  .talent-row__upgrade { grid-area: upgrade; }
  .talent-row__nhle { grid-area: nhle; }
  .talent-row__fw { grid-area: fw; }
  .talent-row__elig { grid-area: elig; align-items: flex-end; }
  .talent-row__cs { grid-area: cs; }
  .talent-row__draft { grid-area: draft; align-items: flex-end; }
  .talent-row__gp { grid-area: gp; }
  .talent-row__g { grid-area: g; }
  .talent-row__a { grid-area: a; }
  .talent-row__p { grid-area: p; margin-right: 0; }
  .talent-row__ppg { grid-area: ppg; margin-right: 0; }
  .talent-row__stat {
    justify-content: center;
    padding: 0.35rem 0.2rem;
    font-size: 0.88rem;
  }
  .talent-row__gp { border-radius: 8px 0 0 8px; }
  .talent-row__stat--end { border-radius: 0 8px 8px 0; }
  .talent-row:not(.talent-row--head) .talent-row__gp::before,
  .talent-row:not(.talent-row--head) .talent-row__g::before,
  .talent-row:not(.talent-row--head) .talent-row__a::before,
  .talent-row:not(.talent-row--head) .talent-row__p::before,
  .talent-row:not(.talent-row--head) .talent-row__ppg::before {
    display: block;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--muted);
    line-height: 1;
    margin-bottom: 0.12rem;
  }
  .talent-row:not(.talent-row--head) .talent-row__gp::before { content: "GP"; }
  .talent-row:not(.talent-row--head) .talent-row__g::before { content: "G"; }
  .talent-row:not(.talent-row--head) .talent-row__a::before { content: "A"; }
  .talent-row:not(.talent-row--head) .talent-row__p::before { content: "P"; }
  .talent-row:not(.talent-row--head) .talent-row__ppg::before { content: "P/PG"; }
  .talent-row:not(.talent-row--head) .talent-row__stat {
    flex-direction: column;
    align-items: center;
  }

  .talent-row__name {
    white-space: normal;
    font-size: 0.98rem;
  }
  .talent-row__vitals {
    white-space: normal;
  }

  .metric-cell {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem 0.4rem;
  }
  .metric-cell__score {
    padding-left: 0;
  }

  .talent-row__expand-btn {
    width: 36px;
    height: 36px;
    border-radius: 9px;
  }

  .talent-brief {
    min-width: 0;
    padding: 0.85rem 0.8rem 1rem;
    border-bottom: 0;
    border-top: 1px solid var(--line);
  }

  .talent-brief__name,
  .talent-brief__info h4 {
    font-size: 1.05rem;
  }

  .proj-outcomes {
    grid-template-columns: 1fr;
  }

  .proj-scrub__ticks {
    margin-left: 0;
  }
  .proj-scrub__row {
    flex-wrap: wrap;
  }
  .proj-scrub__label {
    min-width: 0;
  }
  .proj-scrub__range {
    min-width: 0;
    width: 100%;
  }

  .career-table {
    min-width: 560px;
    font-size: 0.8rem;
  }

  .lookup-filters {
    padding: 0.85rem 0.9rem;
  }
  .lookup-filters__search {
    flex-direction: column;
  }
  .lookup-filters__search .btn {
    width: 100%;
    justify-content: center;
    min-height: 44px;
  }
  .lookup-filters__search input[type="search"] {
    font-size: 1rem;
  }
  .lookup-filters__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .lookup-filters__row .field {
    min-width: 0;
  }
  .lookup-list {
    max-height: min(42vh, 320px);
  }
  .lookup-detail {
    padding: 1rem 0.95rem 1.2rem;
  }
  .lookup-detail__name {
    font-size: 1.3rem;
  }
  .lookup-detail__facts {
    grid-template-columns: 1fr 1fr;
  }

  .fw-glance__bigs {
    width: 100%;
  }
  .fw-glance__big {
    flex: 1 1 0;
    min-width: 0;
  }

  .reg-controls__grid {
    grid-template-columns: 1fr 1fr;
  }
  .reg-metrics {
    grid-template-columns: 1fr 1fr;
  }
  .reg-metric__value {
    font-size: 1.25rem;
  }

  .stress-metrics {
    grid-template-columns: 1fr 1fr;
  }

  .panel {
    padding: 0.85rem 0.9rem;
  }

  /* Site-wide mobile polish */
  .site-main {
    padding-top: 0.85rem;
    padding-bottom: max(1.5rem, env(safe-area-inset-bottom));
  }
  .site-footer {
    font-size: 0.78rem;
    line-height: 1.45;
  }
  .site-footer__inner {
    padding-top: 1rem;
    padding-bottom: max(1rem, env(safe-area-inset-bottom));
  }

  /* Prevent iOS zoom on focus for common form controls */
  input[type="search"],
  input[type="text"],
  input[type="number"],
  input[type="email"],
  input[type="password"],
  select,
  textarea {
    font-size: 16px;
  }

  /* Touch-friendlier primary controls */
  .btn {
    min-height: 2.5rem;
  }
  .theme-toggle,
  .nav-toggle {
    min-width: 2.5rem;
    min-height: 2.5rem;
  }

  /* Wide tables: clear horizontal scroll on phone */
  .desk-board__scroll--production,
  .desk-board__scroll--pipelines,
  .stats-board__scroll,
  .talent-pool__scroll,
  .career-table-wrap,
  .table-scroll {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }

  /* Typeahead must not force >viewport width */
  .desk-top__search .hs-suggest__list,
  .filters__primary .hs-suggest__list,
  .lookup-filters__search .hs-suggest__list {
    min-width: 0;
    width: 100%;
    max-width: calc(100vw - 1.5rem);
  }

  /* Stats filters: stack cleanly */
  .stats-filters__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
    align-items: end;
  }
  .stats-filters__row .field {
    min-width: 0;
    width: 100%;
  }
  .stats-filters__row .btn {
    grid-column: 1 / -1;
    justify-content: center;
  }
}

@media (max-width: 640px) {
  .filters__row {
    grid-template-columns: 1fr 1fr;
  }
  .lookup-filters__row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 420px) {
  .filters__row {
    grid-template-columns: 1fr;
  }
  .stats-bar {
    grid-template-columns: 1fr 1fr;
  }
  .reg-metrics {
    grid-template-columns: 1fr;
  }
  .talent-row {
    grid-template-columns: 40px 28px minmax(0, 1fr);
    grid-template-areas:
      "expand pos main"
      "expand pos elig"
      "nhle nhle fw"
      "cs cs draft"
      "league league league";
  }
  .talent-row__elig,
  .talent-row__cs,
  .talent-row__draft {
    align-items: flex-start;
  }
}

/* ── Regressions (back-test) ─────────────────────────── */
.reg-banner {
  margin-bottom: 1rem;
}
.reg-banner--err {
  border-color: color-mix(in srgb, var(--danger) 40%, var(--line));
}
.reg-controls {
  margin-bottom: 1.1rem;
}
.reg-controls__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr)) auto;
  gap: 0.75rem 1rem;
  align-items: end;
}
.reg-controls__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.reg-controls__meta {
  margin: 0.75rem 0 0;
  font-size: 0.85rem;
}
.reg-metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.65rem;
  margin-bottom: 1.1rem;
}
.reg-metric {
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 0.75rem 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}
.reg-metric--fw {
  border-color: color-mix(in srgb, var(--fw) 35%, var(--line));
}
.reg-metric__kicker {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  font-weight: 600;
}
.reg-metric__value {
  font-size: 1.45rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.reg-metric--fw .reg-metric__value {
  color: var(--fw);
}
.reg-metric__hint {
  font-size: 0.72rem;
  color: var(--muted);
  line-height: 1.25;
}
.reg-charts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.9rem;
  margin-bottom: 1.1rem;
}
.reg-chart--wide {
  grid-column: 1 / -1;
}
.reg-chart__title {
  margin: 0 0 0.2rem;
  font-size: 1rem;
}
.reg-chart__sub {
  margin: 0 0 0.65rem;
  font-size: 0.82rem;
}
.reg-chart__frame {
  overflow-x: auto;
}
.reg-section-title {
  margin: 0 0 0.25rem;
  font-size: 1.05rem;
}
.reg-section-sub {
  margin: 0 0 0.75rem;
  font-size: 0.85rem;
}
.reg-confusion,
.reg-players,
.reg-notes {
  margin-bottom: 1.1rem;
}
.reg-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.reg-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
}
.reg-table th,
.reg-table td {
  padding: 0.4rem 0.5rem;
  border-bottom: 1px solid var(--line);
  text-align: left;
  white-space: nowrap;
}
.reg-table thead th {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--muted);
  font-weight: 600;
  position: sticky;
  top: 0;
  background: var(--bg-2);
}
.reg-table .num {
  text-align: right;
  font-family: var(--mono);
  font-size: 0.8rem;
}
.reg-table .is-under { color: var(--ok); }
.reg-table .is-over { color: var(--danger); }
.reg-table--conf td,
.reg-table--conf th {
  text-align: center;
}
.reg-table--conf th:first-child,
.reg-table--conf td:first-child {
  text-align: left;
}
.reg-table--conf td.is-hit {
  background: color-mix(in srgb, var(--ok) 22%, transparent);
  font-weight: 700;
}
.reg-table--conf td.is-off {
  background: color-mix(in srgb, var(--accent) 10%, transparent);
}
.pill--ok {
  background: color-mix(in srgb, var(--ok) 18%, var(--bg));
  color: var(--ok);
  border: 1px solid color-mix(in srgb, var(--ok) 40%, var(--line));
  font-size: 0.7rem;
  padding: 0.1rem 0.4rem;
  border-radius: 999px;
}
.pill--near {
  background: color-mix(in srgb, var(--gold) 16%, var(--bg));
  color: var(--gold);
  border: 1px solid color-mix(in srgb, var(--gold) 40%, var(--line));
  font-size: 0.7rem;
  padding: 0.1rem 0.4rem;
  border-radius: 999px;
}
.pill--miss {
  background: color-mix(in srgb, var(--danger) 12%, var(--bg));
  color: var(--danger);
  border: 1px solid color-mix(in srgb, var(--danger) 35%, var(--line));
  font-size: 0.7rem;
  padding: 0.1rem 0.4rem;
  border-radius: 999px;
}

/* SVG charts */
.reg-svg {
  width: 100%;
  max-width: 560px;
  height: auto;
  display: block;
}
.reg-svg-bg {
  fill: color-mix(in srgb, var(--bg) 70%, var(--bg-2));
}
.reg-svg-grid {
  stroke: var(--line);
  stroke-width: 1;
}
.reg-svg-diag {
  stroke: color-mix(in srgb, var(--muted) 55%, transparent);
  stroke-width: 1.25;
  stroke-dasharray: 4 4;
}
.reg-svg-line {
  stroke: var(--nhle);
  stroke-width: 2.25;
  stroke-linejoin: round;
  stroke-linecap: round;
}
.reg-svg-line--fw {
  stroke: var(--fw);
}
.reg-svg-dot {
  fill: color-mix(in srgb, var(--nhle) 75%, var(--ink));
  opacity: 0.75;
}
.reg-svg-dot--cal {
  fill: var(--nhle);
  opacity: 1;
}
.reg-svg-dot--fw {
  fill: var(--fw);
  opacity: 1;
}
.reg-svg-tick,
.reg-svg-n,
.reg-svg-axis,
.reg-svg-empty {
  fill: var(--muted);
  font-size: 10px;
  font-family: var(--font);
}
.reg-svg-axis {
  font-size: 11px;
}
.reg-svg-empty {
  font-size: 13px;
}

@media (max-width: 1000px) {
  .reg-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .reg-controls__grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 720px) {
  .reg-charts {
    grid-template-columns: 1fr;
  }
  .reg-chart--wide {
    grid-column: auto;
  }
  .reg-metrics {
    grid-template-columns: 1fr 1fr;
  }
}

/* ── Regressions: FW accuracy glance ─────────────────── */
.fw-glance {
  margin-bottom: 1.1rem;
}
.fw-glance__head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
  margin-bottom: 0.85rem;
}
.fw-glance__title {
  margin: 0.15rem 0 0.25rem;
  font-size: 1.2rem;
}
.fw-glance__sub {
  margin: 0;
  max-width: 36rem;
  font-size: 0.9rem;
}
.fw-glance__bigs {
  display: flex;
  gap: 0.65rem;
}
.fw-glance__big {
  min-width: 5.5rem;
  padding: 0.55rem 0.75rem;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: var(--bg-3);
  text-align: center;
}
.fw-glance__big--exact {
  border-color: color-mix(in srgb, var(--ok) 45%, var(--line));
}
.fw-glance__big--near {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
}
.fw-glance__big-val {
  display: block;
  font-size: 1.55rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.fw-glance__big--exact .fw-glance__big-val { color: var(--ok); }
.fw-glance__big--near .fw-glance__big-val { color: var(--accent); }
.fw-glance__big-lab {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  color: var(--muted);
}
.fw-glance__bar {
  display: flex;
  width: 100%;
  height: 2.1rem;
  border-radius: 999px;
  overflow: hidden;
  background: var(--bg-3);
  border: 1px solid var(--line);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12);
}
.fw-glance__seg {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #0b1220;
  min-width: 0;
  transition: width 0.25s ease;
}
.fw-glance__seg--exact {
  background: linear-gradient(180deg, #9be6b0, var(--ok));
}
.fw-glance__seg--near {
  background: linear-gradient(180deg, #7eb6ff, var(--accent));
  color: #f4f8ff;
}
.fw-glance__seg--miss {
  background: linear-gradient(180deg, #f5a0a6, var(--danger));
  color: #1a1010;
}
.fw-glance__legend {
  list-style: none;
  margin: 0.75rem 0 0.5rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.9rem;
  color: var(--ink-2);
}
.fw-glance__legend li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
}
.fw-glance__dot {
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 999px;
  flex-shrink: 0;
  margin-top: 0.2rem;
}
.fw-glance__dot--exact { background: var(--ok); }
.fw-glance__dot--near { background: var(--accent); }
.fw-glance__dot--miss { background: var(--danger); }
.fw-glance__plain {
  margin: 0.65rem 0 0;
  font-size: 0.9rem;
  line-height: 1.45;
  padding-top: 0.65rem;
  border-top: 1px solid var(--line);
}

/* ── Regressions: obs tier explain ───────────────────── */
.reg-obs-steps {
  margin: 0.5rem 0 0.75rem;
  padding-left: 1.2rem;
  line-height: 1.5;
  color: var(--ink-2);
}
.reg-obs-steps > li {
  margin-bottom: 0.65rem;
}
.reg-obs-bands {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem 1.25rem;
  margin: 0.55rem 0 0.25rem;
}
@media (max-width: 640px) {
  .reg-obs-bands {
    grid-template-columns: 1fr;
  }
}
.reg-obs-bands h3 {
  margin: 0 0 0.3rem;
  font-size: 0.85rem;
  color: var(--ink);
}
.reg-obs-bands ul {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.88rem;
  color: var(--ink-2);
}
.reg-obs-bands li {
  margin: 0.15rem 0;
}

/* ── Stress testing ───────────────────────────────────── */
.page-head__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: flex-start;
}
.stress-champ {
  margin-bottom: 1.1rem;
}
.stress-champ__grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 1.25rem;
  align-items: start;
}
@media (max-width: 800px) {
  .stress-champ__grid {
    grid-template-columns: 1fr;
  }
}
.stress-champ__title {
  margin: 0.15rem 0 0.35rem;
  font-size: 1.35rem;
}
.stress-champ__meta,
.stress-champ__cuts {
  margin: 0.2rem 0;
  font-size: 0.9rem;
}
.stress-champ__rule {
  margin: 1rem 0 0;
  padding-top: 0.85rem;
  border-top: 1px solid var(--line);
  font-size: 0.92rem;
  color: var(--ink-2);
}
.stress-metrics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem;
}
.stress-metric {
  background: var(--bg-3);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0.7rem 0.8rem;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.stress-metric--accent {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
}
.stress-metric--fw {
  border-color: color-mix(in srgb, var(--fw) 45%, var(--line));
}
.stress-metric__val {
  font-size: 1.45rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  line-height: 1.1;
}
.stress-metric--accent .stress-metric__val { color: var(--accent); }
.stress-metric--fw .stress-metric__val { color: var(--fw); }
.stress-metric__lab {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  font-weight: 600;
}
.stress-section {
  margin-bottom: 1.1rem;
}
.stress-section h2 {
  margin: 0 0 0.4rem;
  font-size: 1.2rem;
}
.stress-h3 {
  margin: 1.1rem 0 0.45rem;
  font-size: 1rem;
  color: var(--ink-2);
}
.stress-chart-wrap {
  margin: 0.75rem 0 1rem;
  overflow-x: auto;
  color: var(--ink-2);
}
.stress-chart {
  width: 100%;
  max-width: 760px;
  height: auto;
  display: block;
}
.stress-chart__tick,
.stress-chart__xlabel,
.stress-chart__barlabel,
.stress-chart__legend,
.stress-chart__axis,
.stress-chart__champ {
  font-size: 10px;
  fill: var(--muted);
  font-family: var(--font);
}
.stress-chart__legend {
  font-size: 11px;
  font-weight: 600;
}
.stress-chart__champ {
  fill: var(--accent-2);
  font-weight: 600;
}
.stress-chart__axis {
  font-size: 11px;
  font-weight: 600;
  fill: var(--ink-2);
}
.stress-chart__barlabel {
  font-size: 11px;
  fill: var(--ink-2);
}
.table-wrap {
  overflow-x: auto;
  margin-top: 0.5rem;
}
.stress-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.88rem;
}
.stress-table th,
.stress-table td {
  text-align: left;
  padding: 0.45rem 0.55rem;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
.stress-table th {
  color: var(--muted);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
}
.stress-table .num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.stress-table tr.is-shipped {
  background: color-mix(in srgb, var(--ok) 8%, transparent);
}
.stress-table tr.is-baseline td {
  color: var(--muted);
}
.stress-table .is-down {
  color: var(--danger);
  font-weight: 600;
}
.stress-table .is-up {
  color: var(--ok);
  font-weight: 600;
}
.stress-table--compact td,
.stress-table--compact th {
  padding: 0.38rem 0.45rem;
  font-size: 0.84rem;
}
.tag {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.12rem 0.4rem;
  border-radius: 999px;
  background: var(--bg-3);
  color: var(--muted);
  border: 1px solid var(--line);
}
.tag--ok {
  color: var(--ok);
  border-color: color-mix(in srgb, var(--ok) 40%, var(--line));
  background: color-mix(in srgb, var(--ok) 12%, transparent);
}
.tag--no {
  color: var(--danger);
  border-color: color-mix(in srgb, var(--danger) 35%, var(--line));
  background: color-mix(in srgb, var(--danger) 10%, transparent);
}
.tag--warn {
  color: var(--fw);
  border-color: color-mix(in srgb, var(--fw) 40%, var(--line));
  background: color-mix(in srgb, var(--fw) 12%, transparent);
}
.stress-landed {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.75rem;
  margin: 0.75rem 0 1.1rem;
}
.stress-landed__card {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0.85rem 0.95rem;
  background: var(--bg-3);
}
.stress-landed__card h3 {
  margin: 0 0 0.4rem;
  font-size: 0.95rem;
}
.stress-landed__card p {
  margin: 0;
  font-size: 0.88rem;
  color: var(--ink-2);
  line-height: 1.45;
}
.stress-takeaway {
  margin-top: 1.1rem;
  padding: 1rem 1.1rem;
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--fw) 35%, var(--line));
  background: color-mix(in srgb, var(--fw) 8%, var(--bg-2));
}
.stress-takeaway h3 {
  margin: 0 0 0.45rem;
  font-size: 1.05rem;
}
.stress-takeaway p {
  margin: 0 0 0.55rem;
  line-height: 1.5;
  color: var(--ink-2);
}
.stress-takeaway p:last-child {
  margin-bottom: 0;
}

/* ── Player lookup (/players) ─────────────────────────── */
.lookup-page {
  max-width: 1240px;
  margin: 0 auto;
}
.lookup-hero {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.75rem 1.5rem;
  align-items: flex-end;
  margin-bottom: 1rem;
}
.lookup-hero .page-title {
  margin: 0.1rem 0 0.35rem;
}
.lookup-hero__stat {
  margin: 0;
  font-size: 0.9rem;
}
.lookup-hero__stat strong {
  color: var(--ink);
  font-size: 1.1rem;
}

.lookup-filters {
  margin-bottom: 1rem;
  padding: 1rem 1.1rem 0.9rem;
}
.lookup-filters__search {
  display: flex;
  gap: 0.55rem;
  margin-bottom: 0.75rem;
}
.lookup-filters__search input[type="search"] {
  flex: 1;
  min-width: 0;
  font-size: 1rem;
  padding: 0.7rem 0.95rem;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--bg);
  color: var(--ink);
}
.lookup-filters__search input[type="search"]:focus {
  outline: none;
  border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);
}
.lookup-filters__row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 0.75rem;
  align-items: flex-end;
  margin-bottom: 0.65rem;
}
.lookup-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
  padding-top: 0.55rem;
  border-top: 1px solid var(--line);
}
.lookup-chips__label {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
  margin-right: 0.15rem;
}
.lookup-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--ink-2);
  background: var(--bg);
  border: 1px solid var(--line);
  transition: background 0.12s, border-color 0.12s, color 0.12s;
}
.lookup-chip:hover {
  border-color: color-mix(in srgb, var(--accent) 40%, var(--line));
  color: var(--ink);
}
.lookup-chip.is-active {
  background: color-mix(in srgb, var(--accent) 18%, var(--bg-2));
  border-color: color-mix(in srgb, var(--accent) 50%, var(--line));
  color: var(--accent);
}
.lookup-chip--clear {
  color: var(--muted);
  font-weight: 500;
}

.lookup-layout {
  display: grid;
  grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  min-height: 420px;
}
@media (max-width: 900px) {
  .lookup-layout {
    grid-template-columns: 1fr;
  }
}

.lookup-list {
  padding: 0;
  overflow: hidden;
  position: sticky;
  top: calc(var(--header-h) + 0.75rem);
  max-height: calc(100vh - var(--header-h) - 1.5rem);
  display: flex;
  flex-direction: column;
}
@media (max-width: 900px) {
  .lookup-list {
    position: relative;
    top: 0;
    max-height: 320px;
  }
}
.lookup-list__head {
  padding: 0.75rem 1rem 0.55rem;
  border-bottom: 1px solid var(--line);
  flex-shrink: 0;
}
.lookup-list__title {
  margin: 0;
  font-size: 0.95rem;
}
.lookup-list__items {
  list-style: none;
  margin: 0;
  padding: 0.35rem;
  overflow-y: auto;
  flex: 1;
}
.lookup-list__more {
  margin: 0;
  padding: 0.5rem 0.85rem 0.75rem;
  font-size: 0.8rem;
  border-top: 1px solid var(--line);
}

.lookup-row {
  width: 100%;
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: center;
  text-align: left;
  padding: 0.55rem 0.65rem;
  margin-bottom: 0.2rem;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  transition: background 0.12s, border-color 0.12s;
}
.lookup-row:hover {
  background: var(--bg-3);
}
.lookup-row:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}
.lookup-row.is-active {
  background: color-mix(in srgb, var(--accent) 14%, var(--bg-2));
  border-color: color-mix(in srgb, var(--accent) 35%, var(--line));
}
.lookup-row__main {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
}
.lookup-row__name {
  font-weight: 600;
  font-size: 0.92rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lookup-row__meta {
  font-size: 0.75rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lookup-row__scores {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.1rem;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
  font-size: 0.78rem;
}
.lookup-row__fw {
  font-weight: 700;
  color: var(--fw);
}
.lookup-row__nhle {
  font-weight: 600;
  color: var(--nhle);
}
.lookup-row__age {
  font-size: 0.72rem;
}

.lookup-empty,
.lookup-placeholder {
  padding: 1.5rem 1.15rem;
  text-align: center;
}
.lookup-empty__title,
.lookup-placeholder__title {
  margin: 0 0 0.35rem;
  font-weight: 600;
  color: var(--ink);
}
.lookup-placeholder__card {
  max-width: 22rem;
  margin: 2rem auto;
  padding: 1.5rem 1.35rem;
  border-radius: 14px;
  border: 1px dashed var(--line);
  background: var(--bg-3);
  text-align: left;
}
.lookup-placeholder__tips {
  margin: 0.85rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.88rem;
  line-height: 1.5;
}

.lookup-detail-panel {
  padding: 0;
  min-height: 360px;
  overflow: hidden;
}
.lookup-detail-panel.is-loading {
  opacity: 0.7;
}

.lookup-detail {
  padding: 1.15rem 1.25rem 1.4rem;
}
.lookup-detail__hero {
  margin-bottom: 1.1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--line);
}
.lookup-detail__kicker {
  margin: 0 0 0.25rem;
  font-size: 0.8rem;
  color: var(--muted);
  font-weight: 600;
}
.lookup-detail__name {
  margin: 0 0 0.55rem;
  font-size: 1.55rem;
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.lookup-detail__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.85rem;
}
.pill--nhle {
  background: color-mix(in srgb, var(--nhle) 16%, transparent);
  color: var(--nhle);
  border: 1px solid color-mix(in srgb, var(--nhle) 35%, var(--line));
}
.pill--fw {
  background: color-mix(in srgb, var(--fw) 16%, transparent);
  color: var(--fw);
  border: 1px solid color-mix(in srgb, var(--fw) 35%, var(--line));
}
.lookup-detail__facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 0.55rem 1rem;
  margin: 0;
}
.lookup-detail__facts dt {
  margin: 0;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
  color: var(--muted);
}
.lookup-detail__facts dd {
  margin: 0.15rem 0 0;
  font-size: 0.92rem;
  color: var(--ink);
}
.lookup-detail__body {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
}
.lookup-detail__cards .talent-brief__models {
  margin-top: 0;
}
.lookup-detail__empty-proj {
  margin: 0;
  padding: 0.75rem;
  border-radius: 10px;
  background: var(--bg-3);
}
.lookup-detail__career .career-by-season {
  margin-top: 0;
}

/* Soften brief chrome inside lookup */
.lookup-detail .talent-brief__label {
  font-size: 0.72rem;
}

/* ── Team Blueprint ──────────────────────────────────── */
.bp-meta {
  margin-bottom: 1.1rem;
}
.bp-meta__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.75rem 1rem;
}
.bp-meta__grid .stat__label {
  display: block;
  margin-bottom: 0.15rem;
}
.bp-meta__grid .stat__value {
  display: block;
}
.bp-ladder,
.bp-latest {
  margin-bottom: 1.25rem;
}
.bp-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.bp-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
  font-variant-numeric: tabular-nums;
}
.bp-table th,
.bp-table td {
  padding: 0.45rem 0.55rem;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
  text-align: left;
}
.bp-table thead th {
  font-size: 0.72rem;
  text-transform: none;
  letter-spacing: 0.01em;
  color: var(--muted);
  font-weight: 700;
  white-space: nowrap;
}
.bp-table tbody th {
  font-weight: 600;
  color: var(--ink-2);
  white-space: nowrap;
}
.bp-table .num {
  text-align: right;
  white-space: nowrap;
}
.bp-n {
  display: block;
  font-weight: 500;
  font-size: 0.68rem;
}
.bp-iqr {
  display: block;
  font-size: 0.68rem;
  font-weight: 500;
}
.bp-footnote {
  margin: 0.55rem 0 0;
}
.bp-table--latest .pill--tier {
  font-size: 0.68rem;
  max-width: 11rem;
}
.pill--tier {
  display: inline-block;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--bg-3);
  color: var(--ink-2);
  font-weight: 700;
  line-height: 1.25;
}
.pill--tier-presidents {
  background: color-mix(in srgb, var(--fw) 18%, transparent);
  color: var(--fw);
  border-color: color-mix(in srgb, var(--fw) 40%, var(--line));
}
.pill--tier-division_winner {
  background: color-mix(in srgb, var(--accent) 16%, transparent);
  color: var(--accent);
  border-color: color-mix(in srgb, var(--accent) 40%, var(--line));
}
.pill--tier-playoff {
  background: color-mix(in srgb, var(--ok) 14%, transparent);
  color: var(--ok);
  border-color: color-mix(in srgb, var(--ok) 40%, var(--line));
}
.pill--tier-wild_card {
  background: color-mix(in srgb, var(--accent-2) 14%, transparent);
  color: var(--accent-2);
  border-color: color-mix(in srgb, var(--accent-2) 40%, var(--line));
}
.pill--tier-missed {
  color: var(--muted);
}
.pill--tier-bottom_5 {
  background: color-mix(in srgb, var(--danger) 12%, transparent);
  color: var(--danger);
  border-color: color-mix(in srgb, var(--danger) 35%, var(--line));
}
.bp-tier-presidents {
  background: color-mix(in srgb, var(--fw) 6%, transparent);
}
.bp-tier-bottom_5 {
  background: color-mix(in srgb, var(--danger) 5%, transparent);
}
.bp-next {
  margin-top: 0.5rem;
}
.bp-next__title {
  margin: 0 0 0.45rem;
  font-size: 1.05rem;
}
.bp-next__list {
  margin: 0;
  padding-left: 1.15rem;
  color: var(--ink-2);
  line-height: 1.5;
}
.bp-next__list li {
  margin: 0.3rem 0;
}
@media (max-width: 767px) {
  .bp-table {
    font-size: 0.78rem;
  }
  .bp-table th,
  .bp-table td {
    padding: 0.38rem 0.4rem;
  }
}

/* Phase 2 diagnosis */
.bp-diagnose {
  margin-bottom: 1.25rem;
}
.bp-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 0.85rem;
  align-items: flex-end;
  margin-bottom: 1rem;
}
.bp-picker .field {
  min-width: 10rem;
}
.bp-picker .btn {
  min-height: 42px;
}
.bp-dx-empty {
  margin: 0.25rem 0 0;
}
.bp-dx-hero {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 0 1rem;
  border-top: 1px solid var(--line);
  margin-top: 0.25rem;
}
.bp-dx-hero__name {
  margin: 0.15rem 0 0.4rem;
  font-size: 1.35rem;
  letter-spacing: -0.02em;
}
.bp-dx-hero__meta {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.75rem;
  align-items: center;
}
.bp-dx-fits {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}
.bp-dx-fit {
  min-width: 8rem;
  padding: 0.65rem 0.85rem;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: var(--bg-3);
}
.bp-dx-fit--po {
  border-color: color-mix(in srgb, var(--fw) 40%, var(--line));
}
.bp-compare-heading {
  margin: 0.85rem 0 0.25rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
}
.bp-po-note {
  margin: 0.15rem 0 0.55rem;
}
.bp-actions-drop {
  margin: 0 0 1rem;
}
.bp-actions-drop .bp-actions__list {
  margin-top: 0.35rem;
  padding-bottom: 0.35rem;
}
.pill--po {
  display: inline-block;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--bg-3);
  color: var(--ink-2);
  font-weight: 700;
  font-size: 0.68rem;
  line-height: 1.25;
}
.pill--po-cup {
  background: color-mix(in srgb, var(--fw) 20%, transparent);
  color: var(--fw);
  border-color: color-mix(in srgb, var(--fw) 45%, var(--line));
}
.pill--po-finalist {
  background: color-mix(in srgb, var(--accent) 16%, transparent);
  color: var(--accent);
  border-color: color-mix(in srgb, var(--accent) 40%, var(--line));
}
.pill--po-conf_final {
  background: color-mix(in srgb, var(--accent-2) 14%, transparent);
  color: var(--accent-2);
  border-color: color-mix(in srgb, var(--accent-2) 40%, var(--line));
}
.pill--po-second_round {
  background: color-mix(in srgb, var(--ok) 12%, transparent);
  color: var(--ok);
  border-color: color-mix(in srgb, var(--ok) 35%, var(--line));
}
.pill--po-first_round {
  color: var(--muted);
}
.pill--po-out {
  color: var(--muted);
  opacity: 0.85;
}

/* Collapsible ladders */
.bp-ladder-fold {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--bg-2);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.bp-ladder-fold__summary {
  cursor: pointer;
  list-style: none;
  padding: 0.85rem 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  user-select: none;
}
.bp-ladder-fold__summary::-webkit-details-marker {
  display: none;
}
.bp-ladder-fold__summary::before {
  content: "▸";
  color: var(--muted);
  font-size: 0.85rem;
  flex-shrink: 0;
  transition: transform 0.12s ease;
}
.bp-ladder-fold[open] > .bp-ladder-fold__summary::before {
  transform: rotate(90deg);
}
.bp-ladder-fold__summary:hover {
  background: color-mix(in srgb, var(--accent) 6%, transparent);
}
.bp-ladder-fold__hint {
  display: block;
  margin-top: 0.2rem;
  font-weight: 500;
}
.bp-ladder-fold__body {
  padding: 0 1rem 1rem;
  border-top: 1px solid var(--line);
}
.bp-ladder-fold[open] > .bp-ladder-fold__body {
  padding-top: 0.85rem;
}

/* Blueprint → scout pool bridge banner */
.bp-bridge {
  margin-bottom: 0.85rem;
  border-color: color-mix(in srgb, var(--accent) 35%, var(--line));
  background: color-mix(in srgb, var(--accent) 8%, var(--bg-2));
}
.bp-bridge p {
  margin: 0;
  line-height: 1.4;
}

/* Metric trend charts — same field/select theme as diagnosis picker */
.bp-chart-panel {
  margin-top: 1rem;
  padding: 0.85rem 1rem 1rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: color-mix(in srgb, var(--bg-2) 55%, var(--bg));
}
.bp-chart-panel__head {
  margin-bottom: 0.55rem;
}
.bp-chart-panel__heading {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
}
.bp-chart-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  align-items: flex-end;
  margin: 0 0 0.55rem;
}
.bp-chart-controls.bp-picker {
  /* reuse diagnose picker row spacing */
  margin-bottom: 0.55rem;
}
.bp-chart-metric-field {
  min-width: 12rem;
  flex: 1 1 14rem;
}
.bp-chart-median-check {
  padding-bottom: 0.4rem;
  white-space: normal;
}
.bp-chart-series-actions {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  padding-bottom: 0.2rem;
}
.btn--sm {
  font-size: 0.8rem;
  padding: 0.35rem 0.65rem;
  border-radius: 8px;
  line-height: 1.2;
}
.bp-chart-panel__title {
  margin: 0.35rem 0 0.45rem;
  font-size: 1.02rem;
  font-weight: 700;
  min-height: 1.2em;
}
.bp-chart-panel__sub {
  margin: 0 0 0.45rem;
  max-width: 48rem;
  line-height: 1.4;
}
.bp-chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.55rem;
}
.bp-chart-chip {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem 0.4rem;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.32rem 0.6rem;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--bg);
  color: var(--ink-2);
  cursor: pointer;
  line-height: 1.2;
  opacity: 0.42;
  transition: opacity 0.12s, border-color 0.12s, background 0.12s;
  user-select: none;
}
.bp-chart-chip.is-on {
  opacity: 1;
  border-color: color-mix(in srgb, var(--accent) 40%, var(--line));
  background: color-mix(in srgb, var(--accent) 10%, var(--bg));
  color: var(--ink);
}
.bp-chart-chip:hover {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
}
.bp-chart-chip:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 55%, transparent);
  outline-offset: 2px;
}
.bp-chart-chip__swatch {
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 999px;
  flex-shrink: 0;
}
.bp-chart-chip__meta {
  font-size: 0.7rem;
  font-weight: 500;
}
.bp-chart-frame {
  position: relative;
  width: 100%;
  overflow-x: auto;
  color: var(--muted);
  border: 1px solid var(--line);
  border-radius: 10px;
  background: color-mix(in srgb, var(--bg) 55%, var(--bg-2));
  padding: 0.45rem;
}
.bp-chart-svg {
  width: 100%;
  min-width: 520px;
  height: auto;
  display: block;
}
.bp-chart-empty {
  margin: 0.5rem 0 0;
}
.bp-chart-tip {
  position: absolute;
  z-index: 3;
  min-width: 10rem;
  max-width: 17rem;
  padding: 0.5rem 0.65rem;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg-2) 94%, transparent);
  box-shadow: var(--shadow);
  backdrop-filter: blur(10px);
  font-size: 0.78rem;
  color: var(--ink);
  pointer-events: none;
}
.bp-chart-tip.is-pinned {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent),
    var(--shadow);
}
.bp-tip-season {
  font-weight: 700;
  margin-bottom: 0.35rem;
  font-size: 0.8rem;
}
.bp-tip-pin {
  display: inline-block;
  margin-left: 0.25rem;
  font-weight: 600;
  font-size: 0.68rem;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.bp-tip-row {
  display: grid;
  grid-template-columns: 0.65rem 1fr auto;
  gap: 0.35rem 0.45rem;
  align-items: center;
  margin: 0.18rem 0;
}
.bp-tip-swatch {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
}
.bp-tip-name {
  color: var(--ink-2);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bp-tip-val {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
@media (max-width: 767px) {
  .bp-chart-controls {
    flex-direction: column;
    align-items: stretch;
  }
  .bp-chart-median-check {
    padding-bottom: 0;
  }
  .bp-chart-series-actions {
    padding-bottom: 0;
  }
}
.bp-actions {
  margin: 0.25rem 0 1rem;
}
.bp-actions__title {
  margin: 0 0 0.55rem;
  font-size: 1rem;
}

/* Report card — top needs */
.bp-report {
  margin: 0.35rem 0 1.15rem;
}

/* ── Unlock hero ─────────────────────────────────────── */
.bp-unlock {
  position: relative;
  margin: 0 0 0.75rem;
  padding: 0.65rem 0.85rem 0.7rem;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line));
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb, var(--accent) 14%, var(--bg-2)) 0%,
      color-mix(in srgb, var(--bg-2) 88%, var(--bg)) 55%,
      color-mix(in srgb, var(--fw) 8%, var(--bg-2)) 100%
    );
  box-shadow: var(--shadow);
  overflow: hidden;
}
.bp-unlock__glow {
  position: absolute;
  inset: -50% -25% auto auto;
  width: 45%;
  height: 140%;
  background: radial-gradient(
    closest-side,
    color-mix(in srgb, var(--accent) 22%, transparent),
    transparent 70%
  );
  pointer-events: none;
  opacity: 0.7;
}
.bp-unlock--st_bottleneck {
  border-color: color-mix(in srgb, var(--fw) 45%, var(--line));
}
.bp-unlock--st_bottleneck .bp-unlock__badge {
  background: color-mix(in srgb, var(--fw) 22%, transparent);
  color: var(--fw);
  border-color: color-mix(in srgb, var(--fw) 45%, var(--line));
}
.bp-unlock--finishing_leak,
.bp-unlock--hot_finish_mask {
  border-color: color-mix(in srgb, var(--fw) 40%, var(--line));
}
.bp-unlock--two_way_process,
.bp-unlock--chance_suppression,
.bp-unlock--chance_creation,
.bp-unlock--share_tilt {
  border-color: color-mix(in srgb, var(--danger) 28%, var(--line));
}
.bp-unlock__main {
  position: relative;
  z-index: 1;
}
.bp-unlock__kicker {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin-bottom: 0.25rem;
}
.bp-unlock__badge {
  display: inline-flex;
  align-items: center;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  color: var(--accent);
  border: 1px solid color-mix(in srgb, var(--accent) 40%, var(--line));
}
.bp-unlock__headline {
  margin: 0 0 0.25rem;
  font-size: clamp(0.98rem, 1.6vw, 1.15rem);
  line-height: 1.3;
  letter-spacing: -0.015em;
  max-width: 42rem;
}
.bp-unlock__blurb {
  margin: 0 0 0.45rem;
  max-width: 46rem;
  color: var(--ink-2);
  line-height: 1.35;
  font-size: 0.82rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bp-unlock__evidence {
  list-style: none;
  margin: 0 0 0.5rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
.bp-unlock-chip {
  display: inline-flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.4rem;
  min-width: 0;
  padding: 0.28rem 0.5rem;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 70%, transparent);
  backdrop-filter: blur(6px);
}
.bp-unlock-chip--good {
  border-color: color-mix(in srgb, var(--ok) 40%, var(--line));
  background: color-mix(in srgb, var(--ok) 10%, var(--bg));
}
.bp-unlock-chip--bad {
  border-color: color-mix(in srgb, var(--danger) 40%, var(--line));
  background: color-mix(in srgb, var(--danger) 9%, var(--bg));
}
.bp-unlock-chip--focus {
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--danger) 35%, transparent);
}
.bp-unlock-chip__lab {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
}
.bp-unlock-chip__val {
  font-size: 0.88rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}
.bp-unlock-chip__note {
  font-size: 0.68rem;
  color: var(--muted);
  line-height: 1.2;
}
.bp-unlock__cta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem 0.85rem;
  padding-top: 0.45rem;
  border-top: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
}
.bp-unlock__cta-copy {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.2rem 0.45rem;
  min-width: 0;
}
.bp-unlock__cta-label {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--fw);
}
.bp-unlock__cta-copy strong {
  font-size: 0.92rem;
}
.bp-unlock__cta-why {
  display: none; /* blurb already covers this — keeps card short */
}
.bp-unlock__cta-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
.bp-unlock__cta-btns .btn {
  padding: 0.35rem 0.7rem;
  font-size: 0.82rem;
  min-height: 0;
}
.bp-unlock__lane-note {
  margin: 0.35rem 0 0;
  line-height: 1.3;
}
.gap-board-honesty {
  padding: 0.45rem 0.6rem;
  border-radius: 8px;
  border: 1px solid color-mix(in srgb, var(--fw) 35%, var(--line));
  background: color-mix(in srgb, var(--fw) 10%, var(--bg));
  line-height: 1.4;
}

/* ── Banked / limiters split ─────────────────────────── */
.bp-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin: 0 0 1rem;
}
.bp-split__col {
  margin: 0;
  padding: 0.85rem 0.9rem;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: var(--bg-2);
  box-shadow: var(--shadow);
}
.bp-split__col--banked {
  border-color: color-mix(in srgb, var(--ok) 35%, var(--line));
  background: color-mix(in srgb, var(--ok) 6%, var(--bg-2));
}
.bp-split__col--limiters {
  border-color: color-mix(in srgb, var(--danger) 32%, var(--line));
  background: color-mix(in srgb, var(--danger) 5%, var(--bg-2));
}
.bp-split__head {
  display: flex;
  gap: 0.55rem;
  align-items: flex-start;
  margin-bottom: 0.65rem;
}
.bp-split__icon {
  flex: 0 0 auto;
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-size: 0.78rem;
  font-weight: 800;
  background: color-mix(in srgb, var(--ok) 20%, transparent);
  color: var(--ok);
  border: 1px solid color-mix(in srgb, var(--ok) 40%, var(--line));
}
.bp-split__icon--warn {
  background: color-mix(in srgb, var(--danger) 18%, transparent);
  color: var(--danger);
  border-color: color-mix(in srgb, var(--danger) 40%, var(--line));
}
.bp-split__title {
  margin: 0;
  font-size: 0.98rem;
}
.bp-split__sub {
  margin: 0.15rem 0 0;
  font-size: 0.8rem;
  line-height: 1.3;
}
.bp-split__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.bp-split-item {
  margin: 0;
  padding: 0.5rem 0.55rem;
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--line) 85%, transparent);
  background: color-mix(in srgb, var(--bg) 55%, transparent);
}
.bp-split-item__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.3rem 0.5rem;
}
.bp-split-item__vals {
  margin-top: 0.2rem;
  font-size: 0.88rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.45rem;
  font-variant-numeric: tabular-nums;
}
.bp-split-item__why {
  margin: 0.3rem 0 0;
  font-size: 0.8rem;
  color: var(--ink-2);
  line-height: 1.35;
}
.bp-split-item__ctas {
  margin-top: 0.45rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.bp-split-item__ctas .btn {
  white-space: nowrap;
}

/* ── Peer mirror ─────────────────────────────────────── */
.bp-peers {
  margin: 0 0 1.1rem;
  padding: 0.85rem 0.95rem 0.95rem;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg-2) 80%, var(--bg));
}
.bp-peers__head {
  margin-bottom: 0.55rem;
}
.bp-peers__title {
  margin: 0 0 0.15rem;
  font-size: 1rem;
}
.bp-peers__sub {
  margin: 0;
  font-size: 0.85rem;
}
.bp-peers__wrap {
  margin: 0;
}
.bp-peers-table th[scope="row"] {
  font-weight: 600;
}
.bp-peers-row--self {
  background: color-mix(in srgb, var(--accent) 12%, transparent);
}
.bp-peers-row--self th,
.bp-peers-row--self td {
  font-weight: 700;
}
.bp-peers__foot {
  margin: 0.55rem 0 0;
  line-height: 1.4;
}
.bp-needs-block {
  margin: 0.85rem 0 0;
}
.bp-needs-block__head {
  margin-bottom: 0.55rem;
}
.bp-need-card--unlock {
  border-color: color-mix(in srgb, var(--fw) 45%, var(--line));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--fw) 20%, transparent);
}
@media (max-width: 820px) {
  .bp-split {
    grid-template-columns: 1fr;
  }
  .bp-unlock__cta-row {
    flex-direction: column;
    align-items: stretch;
  }
}
.bp-report-viz {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 0.85rem 1rem;
  margin: 0 0 1rem;
  padding: 0.85rem 0.95rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: color-mix(in srgb, var(--bg-2) 75%, var(--bg));
}
.bp-report-viz__label {
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
  margin-bottom: 0.2rem;
}
.bp-report-viz__blurb {
  margin: 0 0 0.65rem;
  line-height: 1.35;
}
.bp-ladder-viz__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.bp-ladder-viz__rung {
  margin: 0;
  padding: 0;
  border-radius: 10px;
  border: 1px solid transparent;
  background: color-mix(in srgb, var(--bg) 55%, transparent);
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.bp-ladder-viz__btn {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.45rem 0.55rem;
  border: 0;
  border-radius: inherit;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.bp-ladder-viz__btn:hover {
  background: color-mix(in srgb, var(--accent) 6%, transparent);
}
.bp-ladder-viz__btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.bp-ladder-viz__rung--next {
  border-color: color-mix(in srgb, var(--accent) 28%, var(--line));
}
.bp-ladder-viz__rung--selected {
  border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
  background: color-mix(in srgb, var(--accent) 10%, var(--bg));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent);
}
.bp-ladder-viz__rung--selected .bp-ladder-viz__pct {
  color: var(--fw);
}
.bp-ladder-viz__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin-bottom: 0.3rem;
}
.bp-ladder-viz__meta strong {
  font-size: 0.92rem;
}
.bp-ladder-viz__pct {
  margin-left: auto;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--accent);
}
.bp-ladder-viz__track {
  height: 0.55rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--line) 80%, var(--bg-3));
  overflow: hidden;
}
.bp-ladder-viz__fill {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--accent) 70%, #5b8def),
    var(--accent)
  );
  min-width: 0;
  transition: width 0.35s ease;
}
.bp-ladder-viz__rung--next .bp-ladder-viz__fill {
  background: linear-gradient(
    90deg,
    var(--accent),
    color-mix(in srgb, var(--fw) 55%, var(--accent))
  );
}
.bp-ladder-viz__sub {
  margin-top: 0.25rem;
}
.bp-radar-viz__frame {
  position: relative;
  width: 100%;
  max-width: 22rem;
  margin: 0 auto;
}
.bp-radar-svg {
  width: 100%;
  height: auto;
  display: block;
}
.bp-radar-svg .radar-grid {
  fill: none;
  stroke: var(--line);
  stroke-width: 1;
}
.bp-radar-svg .radar-axis {
  stroke: color-mix(in srgb, var(--line) 80%, transparent);
  stroke-width: 1;
}
.bp-radar-svg .radar-target {
  fill: none;
  stroke: color-mix(in srgb, var(--ok) 55%, var(--line));
  stroke-width: 1.5;
  stroke-dasharray: 4 3;
}
.bp-radar-svg .radar-target-poly {
  fill: color-mix(in srgb, var(--ok) 10%, transparent);
  stroke: color-mix(in srgb, var(--ok) 70%, var(--line));
  stroke-width: 2;
  stroke-dasharray: 5 4;
  transition: opacity 0.15s ease;
}
.bp-radar-svg .radar-target-poly--flash {
  animation: bp-radar-flash 0.45s ease;
}
@keyframes bp-radar-flash {
  0% { stroke-width: 3.5; fill-opacity: 0.35; }
  100% { stroke-width: 2; fill-opacity: 1; }
}
.bp-radar-svg .radar-team {
  fill: color-mix(in srgb, var(--accent) 22%, transparent);
  stroke: var(--accent);
  stroke-width: 2.25;
}
.bp-radar-svg .radar-dot {
  fill: var(--accent);
  stroke: var(--bg);
  stroke-width: 1.25;
}
.bp-radar-svg .radar-dot-target {
  fill: var(--bg);
  stroke: color-mix(in srgb, var(--ok) 75%, var(--line));
  stroke-width: 1.75;
}
.bp-radar-svg .radar-label {
  fill: var(--ink-2);
  font-size: 10px;
  font-weight: 600;
}
.bp-radar-comparing {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  line-height: 1.35;
}
.bp-radar-comparing strong {
  color: var(--accent);
}
.bp-radar-tip {
  position: absolute;
  z-index: 3;
  pointer-events: none;
  max-width: 14rem;
  padding: 0.4rem 0.55rem;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: var(--bg-2);
  box-shadow: var(--shadow);
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--ink);
}
.bp-radar-legend {
  list-style: none;
  margin: 0.45rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  justify-content: center;
  font-size: 0.78rem;
  color: var(--muted);
}
.bp-radar-legend li {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.bp-radar-swatch {
  width: 0.85rem;
  height: 0.55rem;
  border-radius: 3px;
  display: inline-block;
}
.bp-radar-swatch--team {
  background: color-mix(in srgb, var(--accent) 35%, transparent);
  border: 1.5px solid var(--accent);
}
.bp-radar-swatch--target {
  background: transparent;
  border: 1.5px dashed color-mix(in srgb, var(--ok) 55%, var(--line));
}
@media (max-width: 860px) {
  .bp-report-viz {
    grid-template-columns: 1fr;
  }
}
.bp-report__head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.65rem 1.25rem;
  align-items: flex-start;
  margin-bottom: 0.75rem;
}
.bp-report__title {
  margin: 0 0 0.2rem;
  font-size: 1.05rem;
}
.bp-report__sub {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.4;
}
.bp-report__story {
  margin: 0;
  max-width: 28rem;
  padding: 0.45rem 0.7rem;
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--line));
  background: color-mix(in srgb, var(--accent) 8%, var(--bg-3));
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--ink-2);
}
.bp-report__cards {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16.5rem, 1fr));
  gap: 0.65rem;
}
.bp-report__cards--compact {
  margin-top: 0.5rem;
}
.bp-need-card {
  display: flex;
  gap: 0.65rem;
  margin: 0;
  padding: 0.75rem 0.8rem;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--bg-2);
  box-shadow: var(--shadow);
}
.bp-need-card--gap {
  border-color: color-mix(in srgb, var(--danger) 40%, var(--line));
  background: color-mix(in srgb, var(--danger) 6%, var(--bg-2));
}
.bp-need-card--soft_gap {
  border-color: color-mix(in srgb, #e2b84a 40%, var(--line));
  background: color-mix(in srgb, #e2b84a 7%, var(--bg-2));
}
.bp-need-card__rank {
  flex: 0 0 auto;
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 0.82rem;
  background: color-mix(in srgb, var(--accent) 16%, var(--bg));
  color: var(--accent);
  border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line));
}
.bp-need-card__body {
  flex: 1 1 auto;
  min-width: 0;
}
.bp-need-card__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem 0.5rem;
  margin-bottom: 0.3rem;
}
.bp-need-card__metric {
  font-size: 0.98rem;
  letter-spacing: -0.01em;
}
.bp-need-card__vals {
  margin: 0 0 0.35rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.45rem;
  align-items: baseline;
  font-size: 0.9rem;
  line-height: 1.35;
}
.bp-need-card__vals em {
  font-style: normal;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  font-weight: 600;
  margin-right: 0.15rem;
}
.bp-need-card__why {
  margin: 0 0 0.55rem;
  font-size: 0.88rem;
  line-height: 1.4;
  color: var(--ink-2);
}
.bp-need-card__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

/* Metric browser — pick any metric → Gap Board */
.bp-metric-browser {
  margin: 0 0 1.15rem;
  padding: 0.85rem 0.95rem 1rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: color-mix(in srgb, var(--bg-2) 70%, var(--bg));
}
.bp-metric-browser__head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  align-items: flex-end;
  margin-bottom: 0.7rem;
}
.bp-metric-browser__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.65rem;
  align-items: flex-end;
}
.bp-metric-browser__filters .field {
  min-width: 9rem;
  margin: 0;
}
.bp-metric-browser__filters input[type="search"] {
  min-width: 11rem;
}
.bp-metric-table th[scope="row"] {
  font-weight: 600;
}
.bp-metric-table__why {
  display: block;
  font-weight: 500;
  font-size: 0.78rem;
  margin-top: 0.15rem;
  line-height: 1.3;
  max-width: 28rem;
}
.bp-metric-table__ctas {
  white-space: nowrap;
}
.bp-metric-table__ctas .btn {
  margin: 0.1rem 0.15rem 0.1rem 0;
}
.bp-metric-browser__empty {
  margin: 0.55rem 0 0;
}
.bp-compare-fold {
  margin: 0 0 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg-2);
  padding: 0;
  overflow: hidden;
}
.bp-compare-fold > summary {
  cursor: pointer;
  list-style: none;
  padding: 0.7rem 0.9rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  align-items: baseline;
  user-select: none;
}
.bp-compare-fold > summary::-webkit-details-marker {
  display: none;
}
.bp-compare-fold > summary::before {
  content: "▸";
  color: var(--muted);
  font-size: 0.85rem;
  margin-right: 0.15rem;
}
.bp-compare-fold[open] > summary::before {
  content: "▾";
}
.bp-compare-fold > .bp-compare-tabs {
  padding: 0 0.85rem 0.85rem;
  margin-bottom: 0;
  border-top: 1px solid var(--line);
  padding-top: 0.65rem;
}
@media (max-width: 640px) {
  .bp-report__cards {
    grid-template-columns: 1fr;
  }
  .bp-metric-browser__filters {
    width: 100%;
  }
  .bp-metric-browser__filters .field,
  .bp-metric-browser__filters input[type="search"] {
    flex: 1 1 100%;
    min-width: 0;
  }
}
.bp-process-story {
  margin: 0 0 0.85rem;
  padding: 0.65rem 0.8rem;
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--line));
  background: color-mix(in srgb, var(--accent) 8%, var(--bg-3));
}
.bp-process-story__head {
  display: block;
  font-size: 0.95rem;
  margin-bottom: 0.25rem;
}
.bp-process-story__blurb {
  margin: 0.15rem 0 0;
  line-height: 1.45;
  color: var(--ink-2);
  font-size: 0.92rem;
}
.bp-process-story__snap {
  margin: 0.4rem 0 0;
  line-height: 1.35;
}
.bp-process-story__lane {
  display: inline-block;
  margin-right: 0.35rem;
  padding: 0.05rem 0.4rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--accent);
  background: color-mix(in srgb, var(--accent) 14%, var(--bg));
  border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line));
}
.bp-process-story--finishing_leak,
.bp-process-story--hot_finish_mask {
  border-color: color-mix(in srgb, #e2b84a 40%, var(--line));
  background: color-mix(in srgb, #e2b84a 10%, var(--bg-3));
}
.bp-process-story--chance_suppression {
  border-color: color-mix(in srgb, #f07178 35%, var(--line));
  background: color-mix(in srgb, #f07178 8%, var(--bg-3));
}
.bp-process-story--chance_creation,
.bp-process-story--volume_not_quality {
  border-color: color-mix(in srgb, #3d8bfd 35%, var(--line));
  background: color-mix(in srgb, #3d8bfd 8%, var(--bg-3));
}
.bp-process-story--two_way_process,
.bp-process-story--share_tilt {
  border-color: color-mix(in srgb, #a78bfa 35%, var(--line));
  background: color-mix(in srgb, #a78bfa 9%, var(--bg-3));
}
.bp-action__summary {
  margin: 0.15rem 0 0;
  font-size: 0.86rem;
  line-height: 1.4;
}
.bp-actions__list {
  margin: 0;
  padding-left: 1.2rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.bp-action__lanes {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin-top: 0.5rem;
}
.bp-action__lane {
  padding: 0.45rem 0.55rem;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 70%, var(--bg-2));
}
.bp-action__lane--draft_eligible {
  border-color: color-mix(in srgb, var(--accent) 30%, var(--line));
}
.bp-action__lane--nhl_available {
  border-color: color-mix(in srgb, #5b8def 40%, var(--line));
  background: color-mix(in srgb, #5b8def 7%, var(--bg));
}
.bp-action__lane-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
  margin-bottom: 0.35rem;
}
.bp-action__lane-head strong {
  font-size: 0.82rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.bp-action__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0;
}
.bp-action__hint {
  margin: 0.3rem 0 0;
  line-height: 1.35;
}
.bp-action__head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  align-items: baseline;
}
.bp-action__need {
  margin: 0.2rem 0 0.15rem;
  color: var(--ink-2);
  line-height: 1.45;
}
.bp-action__pool {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.4;
}
.bp-action--gap .bp-action__head strong {
  color: var(--danger);
}
.bp-compare-tabs {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  margin-bottom: 1rem;
}
.bp-compare {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg-3);
  padding: 0.35rem 0.75rem 0.55rem;
}
.bp-compare summary {
  cursor: pointer;
  font-size: 0.95rem;
  padding: 0.4rem 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  align-items: baseline;
}
.bp-compare summary::-webkit-details-marker {
  display: none;
}
.bp-compare[open] summary {
  border-bottom: 1px solid var(--line);
  margin-bottom: 0.45rem;
}
.bp-row-gap {
  background: color-mix(in srgb, var(--danger) 7%, transparent);
}
.bp-row-soft_gap {
  background: color-mix(in srgb, var(--gold) 8%, transparent);
}
.bp-row-strength {
  background: color-mix(in srgb, var(--ok) 7%, transparent);
}
.bp-history {
  margin-top: 0.5rem;
}
.bp-hist-current {
  outline: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line));
}
.bp-table--dx {
  font-size: 0.82rem;
}
@media (max-width: 767px) {
  .bp-picker {
    flex-direction: column;
    align-items: stretch;
  }
  .bp-picker .btn {
    width: 100%;
    justify-content: center;
  }
  .bp-dx-fit {
    width: 100%;
  }
}

/* ── Gap Board (Blueprint team-help list) ───────────────── */
.gap-board-head .page-head__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: flex-start;
}
.gap-board-context {
  margin-bottom: 0.85rem;
}
.gap-board-context__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.75rem 1.25rem;
}
.gap-board-context__value {
  margin: 0.15rem 0 0;
  font-size: 0.98rem;
}
.gap-board-context__body {
  margin-top: 0.75rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--line);
}
.gap-board-recipe {
  margin-top: 0.65rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.gap-board-filters {
  margin-bottom: 0.85rem;
}
.gap-board-filters__row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  align-items: flex-end;
}
.gap-board-filters .field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 10rem;
}
.gap-board-filters .field__label {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  font-weight: 600;
}
.gap-board-filters input,
.gap-board-filters select {
  padding: 0.4rem 0.55rem;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: var(--bg);
  color: var(--text);
  font: inherit;
}
.gap-board__scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--bg-2);
}
.gap-board-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.86rem;
  min-width: 960px;
}
.gap-board-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  text-align: left;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  font-weight: 700;
  padding: 0.55rem 0.6rem;
  background: var(--bg-3, var(--bg-2));
  border-bottom: 1px solid var(--line);
  white-space: nowrap;
}
.gap-board-table thead th.num,
.gap-board-table td.num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.gap-board-table tbody td {
  padding: 0.5rem 0.6rem;
  border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  vertical-align: top;
  white-space: nowrap;
}
.gap-board-table tbody tr.gap-board-row:hover td {
  background: color-mix(in srgb, var(--accent) 6%, transparent);
}
.gap-board-table__expand {
  width: 2.25rem;
  text-align: center;
}
.gap-board-table__name {
  white-space: normal;
  min-width: 9rem;
}
.gap-board-table__player {
  display: block;
  font-weight: 600;
}
.gap-board-table__player-btn {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.gap-board-table__player-btn:hover .gap-board-table__player {
  color: var(--accent);
  text-decoration: underline;
}
.gap-board-table__player-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: 4px;
}
.gap-board-table__sub {
  font-size: 0.68rem;
  line-height: 1.25;
  margin-top: 0.15rem;
  white-space: normal;
  max-width: 9rem;
}
.gap-board-brief-row td {
  padding: 0 !important;
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 40%, var(--bg-2));
  white-space: normal;
}
.gap-board-brief {
  padding: 0.75rem 1rem 1rem;
}
.gap-brief-toolbar {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 0.45rem;
}
@media (max-width: 720px) {
  .gap-board-table {
    font-size: 0.8rem;
    min-width: 820px;
  }
}

/* ── Multi-metric fit (Gap Board expand) ─────────────── */
.mm-fit {
  margin: 0.75rem 0 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: color-mix(in srgb, var(--bg-2) 92%, var(--accent) 4%);
}
.mm-fit__head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  align-items: flex-start;
}
.mm-fit__headline {
  margin: 0.25rem 0 0;
  font-size: 0.95rem;
  font-weight: 600;
}
.mm-fit__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
.mm-fit__note {
  margin: 0.5rem 0 0.65rem;
  line-height: 1.4;
}
.mm-fit__scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg);
}
.mm-fit-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
  min-width: 880px;
}
.mm-fit-table thead th {
  text-align: left;
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  font-weight: 700;
  padding: 0.45rem 0.5rem;
  background: var(--bg-3, var(--bg-2));
  border-bottom: 1px solid var(--line);
  white-space: nowrap;
  position: sticky;
  top: 0;
  z-index: 1;
}
.mm-fit-table thead th.num,
.mm-fit-table td.num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.mm-fit-table tbody td {
  padding: 0.45rem 0.5rem;
  border-bottom: 1px solid color-mix(in srgb, var(--line) 65%, transparent);
  vertical-align: top;
}
.mm-fit-row--current td {
  background: color-mix(in srgb, var(--accent) 10%, transparent);
}
.mm-fit-row--upgrade td:first-child {
  box-shadow: inset 3px 0 0 #34d399;
}
.mm-fit-row--downgrade td:first-child {
  box-shadow: inset 3px 0 0 #f87171;
}
.mm-fit-metric {
  font-weight: 600;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem;
}
.mm-fit-sub {
  display: block;
  font-size: 0.68rem;
  margin-top: 0.12rem;
  line-height: 1.25;
  white-space: normal;
  max-width: 12rem;
}
.mm-fit-delta--up { color: #34d399; }
.mm-fit-delta--down { color: #f87171; }
[data-theme="light"] .mm-fit-delta--up { color: #047857; }
[data-theme="light"] .mm-fit-delta--down { color: #b91c1c; }
.mm-fit-rates {
  min-width: 10rem;
  white-space: normal;
}
.mm-fit-rate-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem;
}
.mm-fit-rate-chips .gap-formula__chip {
  max-width: 7.5rem;
}

/* Early men's-Euro call-up chips (SHL/KHL/Allsv) on junior Path */
.path-chip {
  display: inline-flex;
  align-items: center;
  margin-left: 0.25rem;
  padding: 0.05rem 0.32rem;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  vertical-align: middle;
  white-space: nowrap;
}
.path-chip--euro {
  background: color-mix(in srgb, #38bdf8 22%, transparent);
  color: #bae6fd;
  border: 1px solid color-mix(in srgb, #38bdf8 45%, transparent);
}
[data-theme="light"] .path-chip--euro {
  background: color-mix(in srgb, #0284c7 14%, #fff);
  color: #075985;
  border-color: color-mix(in srgb, #0284c7 35%, var(--line));
}

/* ── Team Prospect Tracker ───────────────────────────── */
.prospects-head__total {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.prospects-filters {
  margin: 0 0 1.25rem;
  padding: 0.85rem 1rem 0.95rem;
  background: var(--bg-2);
  border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--line));
  border-left: 4px solid var(--accent);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.prospects-filters__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.75rem;
  margin-bottom: 0.65rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--line);
}
.prospects-filters__title {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent);
}
.prospects-filters__hint {
  font-size: 0.8rem;
}
.prospects-filters__row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 0.85rem;
  align-items: flex-end;
}
.prospects-filters__actions {
  display: flex;
  gap: 0.4rem;
  align-items: center;
  margin-left: auto;
}
.prospects-filters .field--sm .field__label {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--ink-2);
}
.prospects-filters .field--sm input,
.prospects-filters .field--sm select {
  min-width: 7.25rem;
  min-height: 2.35rem;
  font-size: 0.9rem;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  padding: 0.35rem 0.55rem;
}
.prospects-filters .field--sm input:focus,
.prospects-filters .field--sm select:focus {
  outline: 2px solid color-mix(in srgb, var(--accent) 45%, transparent);
  outline-offset: 1px;
  border-color: color-mix(in srgb, var(--accent) 40%, var(--line));
}
/* legacy quiet class still styles if cached markup appears */
.prospects-filters--quiet {
  background: var(--bg-2);
  border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--line));
  box-shadow: var(--shadow);
}

.prospects-board {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem 2.25rem;
  align-items: start;
}
@media (max-width: 820px) {
  .prospects-board {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}
.prospects-conf__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0 0 0.85rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid var(--line);
}
.prospects-conf__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.prospects-conf__count {
  font-size: 0.8rem;
  font-variant-numeric: tabular-nums;
}
.prospects-div {
  margin-bottom: 1rem;
}
.prospects-div:last-child {
  margin-bottom: 0;
}
.prospects-div__label {
  margin: 0 0 0.35rem;
  padding-left: 0.15rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.prospects-list {
  margin: 0;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--line) 75%, transparent);
  border-radius: 10px;
  overflow: hidden;
  background: color-mix(in srgb, var(--panel) 88%, transparent);
}
.prospects-path-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 1rem;
  margin: 0 0 0.85rem;
  font-size: 0.72rem;
  color: var(--ink-2);
}
.prospects-path-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  white-space: nowrap;
}
.prospects-row {
  display: grid;
  grid-template-columns: 2.6rem minmax(0, 1fr) minmax(5.5rem, 8.5rem) 2.2rem;
  gap: 0.45rem 0.55rem;
  align-items: center;
  padding: 0.42rem 0.7rem;
  text-decoration: none;
  color: inherit;
  border-top: 1px solid color-mix(in srgb, var(--line) 55%, transparent);
  transition: background 0.12s ease;
}
.prospects-row:first-child,
.prospects-row--head {
  border-top: none;
}
.prospects-row:not(.prospects-row--head):hover {
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}
.prospects-row.is-empty {
  opacity: 0.45;
}
.prospects-row--head {
  padding-top: 0.35rem;
  padding-bottom: 0.28rem;
  background: color-mix(in srgb, var(--ink-2) 4%, transparent);
}
.prospects-row__ab {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--ink-2);
}
.prospects-row__name {
  font-size: 0.88rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.prospects-row__path {
  display: block;
  min-width: 0;
}
.prospects-path-stack {
  width: 100%;
  height: 9px;
}
.prospects-path-stack.is-empty {
  background: color-mix(in srgb, var(--ink-2) 10%, transparent);
}
.prospects-row__bands {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 0.2rem;
  justify-items: center;
}
.prospects-colhead {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-2);
  text-align: center;
}
.prospects-row__path.prospects-colhead {
  text-align: left;
}
.prospects-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.2rem;
  padding: 0.05rem 0.2rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--ink-2);
  background: color-mix(in srgb, var(--ink-2) 10%, transparent);
}
.prospects-dot--eu {
  background: color-mix(in srgb, #38bdf8 16%, transparent);
}
.prospects-dot--ahl {
  background: color-mix(in srgb, #a78bfa 14%, transparent);
}
.prospects-dot--nhl {
  background: color-mix(in srgb, #34d399 16%, transparent);
}
.prospects-row__count {
  text-align: right;
  font-size: 0.9rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.prospects-row--head .prospects-row__count {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.prospects-footnote {
  margin: 1.25rem 0 0;
  max-width: 40rem;
  line-height: 1.4;
}

/* ── Team prospect overview dashboard ────────────────── */
.pto-section-title {
  margin: 0 0 0.65rem;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.pto-top {
  display: grid;
  gap: 0.9rem;
  margin: 0 0 1.25rem;
}
.pto-tiles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}
@media (max-width: 720px) {
  .pto-tiles { grid-template-columns: 1fr; }
}
.pto-tile {
  padding: 0.75rem 0.85rem;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--line) 75%, transparent);
  background: color-mix(in srgb, var(--panel) 90%, transparent);
}
.pto-tile__label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.pto-tile__value {
  margin-top: 0.2rem;
  font-size: 1.55rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.pto-tile__sub {
  margin-top: 0.2rem;
  font-size: 0.75rem;
}
.pto-panels {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 0.75rem;
  align-items: stretch;
}
.pto-side {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-width: 0;
}
.pto-panel--mix {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.pto-panel--mix .pto-donut {
  flex: 1 1 auto;
  justify-content: center;
  width: 100%;
}
@media (max-width: 820px) {
  .pto-panels { grid-template-columns: 1fr; }
}
.pto-panel {
  padding: 0.75rem 0.85rem;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--line) 75%, transparent);
  background: color-mix(in srgb, var(--panel) 90%, transparent);
}
.pto-panel__title {
  margin: 0 0 0.55rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.pto-panel--heat {
  min-width: 0;
  padding-top: 0.65rem;
  padding-bottom: 0.65rem;
}
.pto-heat {
  width: 100%;
  border-collapse: separate;
  border-spacing: 3px;
  font-variant-numeric: tabular-nums;
  table-layout: fixed;
}
.pto-heat__corner,
.pto-heat__col,
.pto-heat__row {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-2);
  padding: 0 0.15rem 0.15rem;
  text-align: center;
}
.pto-heat__row {
  text-align: left;
  width: 2.4rem;
  padding-right: 0.35rem;
  white-space: nowrap;
}
.pto-heat__cell {
  height: 1.4rem;
  text-align: center;
  vertical-align: middle;
  font-size: 0.72rem;
  font-weight: 700;
  border-radius: 5px;
  color: var(--ink);
  background: color-mix(in srgb, var(--ink-2) 6%, transparent);
}
.pto-heat__cell.is-empty {
  color: color-mix(in srgb, var(--ink-2) 45%, transparent);
  font-weight: 500;
  background: color-mix(in srgb, var(--ink-2) 4%, transparent);
}
.pto-heat__cell--junior:not(.is-empty) {
  background: color-mix(in srgb, #64748b calc(var(--pto-heat-a, 0.4) * 100%), transparent);
}
.pto-heat__cell--europe:not(.is-empty) {
  background: color-mix(in srgb, #38bdf8 calc(var(--pto-heat-a, 0.4) * 100%), transparent);
}
.pto-heat__cell--ahl:not(.is-empty) {
  background: color-mix(in srgb, #a78bfa calc(var(--pto-heat-a, 0.4) * 100%), transparent);
}
.pto-heat__cell--nhl:not(.is-empty) {
  background: color-mix(in srgb, #34d399 calc(var(--pto-heat-a, 0.4) * 100%), transparent);
}
.pto-heat__note {
  margin: 0.4rem 0 0;
  font-size: 0.68rem;
}
.pto-stack {
  display: flex;
  height: 10px;
  border-radius: 999px;
  overflow: hidden;
  background: color-mix(in srgb, var(--ink-2) 8%, transparent);
}
.pto-stack__seg { display: block; height: 100%; min-width: 0; }
/* Match path-donut / pto-swatch band colors */
.pto-stack__seg--jr,
.pto-stack__seg--junior { background: #64748b; }
.pto-stack__seg--eu,
.pto-stack__seg--europe { background: #38bdf8; }
.pto-stack__seg--ahl { background: #a78bfa; }
.pto-stack__seg--nhl { background: #34d399; }
.pto-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 0.55rem;
  font-size: 0.78rem;
  color: var(--ink-2);
}
.pto-swatch {
  display: inline-block;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 2px;
  margin-right: 0.25rem;
  vertical-align: middle;
}
.pto-swatch--jr { background: color-mix(in srgb, var(--ink-2) 35%, transparent); }
.pto-swatch--eu { background: #38bdf8; }
.pto-swatch--ahl { background: #a78bfa; }
.pto-classes {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}
.pto-classes li {
  display: grid;
  grid-template-columns: 2rem 1fr 1.5rem;
  gap: 0.45rem;
  align-items: center;
  font-size: 0.8rem;
}
.pto-classes__yr {
  font-weight: 600;
  color: var(--ink-2);
  font-variant-numeric: tabular-nums;
}
.pto-classes__bar {
  height: 6px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--ink-2) 8%, transparent);
  overflow: hidden;
}
.pto-classes__bar > span {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent) 65%, transparent);
}
.pto-classes__n {
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: var(--ink-2);
}

.pto-standouts { margin: 0 0 1.25rem; }
.pto-standouts__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
}
@media (max-width: 960px) {
  .pto-standouts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .pto-standouts__grid { grid-template-columns: 1fr; }
}
.pto-card {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.8rem 0.85rem;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--line) 75%, transparent);
  background: color-mix(in srgb, var(--panel) 92%, transparent);
  text-decoration: none;
  color: inherit;
  transition: border-color 0.12s ease, background 0.12s ease;
}
.pto-card:hover {
  border-color: color-mix(in srgb, var(--accent) 50%, var(--line));
  background: color-mix(in srgb, var(--accent) 6%, var(--panel));
}
.pto-card__label {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.pto-card__name {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.25;
}
.pto-card__meta { font-size: 0.75rem; }
.pto-card__metric {
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
  margin-top: 0.35rem;
}
.pto-card__num {
  font-size: 1.45rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.pto-card__unit { font-size: 0.75rem; }
.pto-card__season { margin-top: 0.25rem; font-size: 0.72rem; }

.pto-board { margin: 0 0 1.25rem; }
.pto-board__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.4rem;
  margin-bottom: 0.45rem;
}
.pto-board__table {
  border: 1px solid color-mix(in srgb, var(--line) 75%, transparent);
  border-radius: 12px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  background: color-mix(in srgb, var(--panel) 90%, transparent);
}
.pto-board__empty {
  margin: 0;
  padding: 0.65rem 0.75rem;
  border: 1px dashed color-mix(in srgb, var(--line) 80%, transparent);
  border-radius: 10px;
}
.pto-board__row {
  display: grid;
  grid-template-columns:
    1.6rem
    minmax(10rem, 1.55fr)
    minmax(6.25rem, 7.5rem)
    2.85rem
    2.65rem
    2.65rem
    2.85rem
    4rem
    minmax(3.5rem, 0.8fr);
  gap: 0.35rem 0.8rem;
  align-items: center;
  min-width: 46rem;
  padding: 0.42rem 0.85rem;
  text-decoration: none;
  color: inherit;
  border-top: 1px solid color-mix(in srgb, var(--line) 45%, transparent);
  font-size: 0.82rem;
  line-height: 1.25;
}
.pto-board__row:first-child { border-top: none; }
.pto-board__row:not(.pto-board__row--head):hover {
  background: color-mix(in srgb, var(--accent) 7%, transparent);
}
.pto-board__row--head {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-2);
  background: color-mix(in srgb, var(--ink-2) 4%, transparent);
  padding-top: 0.4rem;
  padding-bottom: 0.35rem;
}
.pto-board__sort {
  display: inline-flex;
  align-items: center;
  justify-content: inherit;
  gap: 0.2rem;
  margin: 0;
  padding: 0.1rem 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  cursor: pointer;
  text-align: inherit;
  white-space: nowrap;
}
.pto-board__sort.num {
  justify-content: flex-end;
  width: 100%;
}
.pto-board__sort:hover {
  color: var(--ink);
}
.pto-board__sort.is-sorted {
  color: var(--accent);
}
.pto-board__sort.is-sorted::after {
  content: "▾";
  font-size: 0.65em;
  line-height: 1;
  opacity: 0.9;
}
.pto-board__sort.is-sorted.is-asc::after {
  content: "▴";
}
.pto-board__rank {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.pto-board__league {
  display: block;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 0.76rem;
  letter-spacing: 0.01em;
}
.pto-board__row .num,
.pto-board__stat {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  padding-right: 0.1rem;
}
.pto-board__stat--p {
  font-weight: 700;
}
.pto-board__stat--ppg {
  color: var(--ink-2);
  font-size: 0.78rem;
}
.pto-board__player {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: baseline;
  gap: 0.4rem;
  min-width: 0;
}
.pto-board__player strong {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 0.84rem;
}
.pto-board__player .muted {
  flex: 0 0 auto;
  white-space: nowrap;
  font-size: 0.68rem;
}
.pto-board__bars-h { text-align: left; }
.pto-board__bar {
  height: 5px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--ink-2) 8%, transparent);
  overflow: hidden;
}
.pto-board__bar > span {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent) 70%, transparent);
}
@media (max-width: 720px) {
  .pto-board__row {
    min-width: 40rem;
    grid-template-columns:
      1.45rem
      minmax(13rem, 2fr)
      minmax(4.75rem, 5.75rem)
      2.5rem
      2.3rem
      2.3rem
      2.5rem
      3.4rem
      minmax(2.5rem, 0.6fr);
    gap: 0.3rem 0.55rem;
    padding: 0.42rem 0.7rem;
  }
  /* Name above draft meta so long names are not ellipsized beside the pick label. */
  .pto-board__player {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.05rem;
  }
  .pto-board__player strong {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    line-height: 1.2;
    max-width: 100%;
  }
  .pto-board__player .muted {
    font-size: 0.62rem;
    line-height: 1.2;
  }
}

.pto-donut {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.85rem;
  position: relative;
}
.pto-donut__chart {
  position: relative;
  width: 17.5rem;
  height: 17.5rem;
  flex: 0 0 auto;
}
.pto-donut__logo {
  position: absolute;
  inset: 12%;
  width: 76%;
  height: 76%;
  margin: auto;
  object-fit: contain;
  opacity: 0.13;
  pointer-events: none;
  z-index: 0;
  user-select: none;
}
/* Default / dark UI: use light-on-dark NHL marks */
.pto-donut__logo--light { display: none; }
.pto-donut__logo--dark { display: block; }
[data-theme="light"] .pto-donut__logo--light { display: block; opacity: 0.11; }
[data-theme="light"] .pto-donut__logo--dark { display: none; }
.pto-donut__svg {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.pto-donut__slice {
  cursor: pointer;
  transform-box: fill-box;
  transform-origin: center;
  transition: transform 0.18s ease, opacity 0.18s ease, filter 0.18s ease;
  outline: none;
}
.pto-donut__slice.is-dim {
  opacity: 0.35;
}
.pto-donut__slice.is-active {
  filter: brightness(1.08);
}
.pto-donut__center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 2;
}
.pto-donut__total {
  font-size: 2rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.pto-donut__total-label {
  margin-top: 0.25rem;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-2);
  white-space: nowrap;
}
.pto-donut__tip {
  box-sizing: border-box;
  width: 100%;
  min-height: 2.6rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.08rem;
  padding: 0.4rem 0.55rem;
  border-radius: 8px;
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  background: color-mix(in srgb, var(--ink-2) 5%, transparent);
  font-size: 0.75rem;
  text-align: center;
  line-height: 1.25;
  pointer-events: none;
}
.pto-donut__tip[hidden] {
  /* Keep the slot so hover never shoves Standouts around */
  display: flex !important;
  visibility: hidden;
}
.pto-donut__tip.is-live {
  visibility: visible;
  border-color: color-mix(in srgb, var(--accent) 40%, var(--line));
  background: color-mix(in srgb, var(--accent) 8%, var(--panel));
}
.pto-donut__tip strong {
  font-size: 0.8rem;
}
.pto-legend {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem 0.55rem;
  margin-top: 0;
  font-size: 0.78rem;
  color: var(--ink-2);
  width: 100%;
}
.pto-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.15rem 0.3rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.pto-legend__item:hover,
.pto-legend__item:focus-visible {
  background: color-mix(in srgb, var(--accent) 10%, transparent);
  outline: none;
}
.pto-swatch {
  display: inline-block;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 2px;
  margin-right: 0.25rem;
  vertical-align: middle;
}
.pto-swatch--junior,
.pto-swatch--jr { background: #64748b; }
.pto-swatch--europe,
.pto-swatch--eu { background: #38bdf8; }
.pto-swatch--ahl { background: #a78bfa; }
.pto-swatch--nhl { background: #34d399; }
.pto-donut__slice--junior { fill: #64748b; }
.pto-donut__slice--europe { fill: #38bdf8; }
.pto-donut__slice--ahl { fill: #a78bfa; }
.pto-donut__slice--nhl { fill: #34d399; }

/* ── Mobile polish (Prospect Tracker + touch) ─────────── */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  overflow-x: hidden;
}
.site-main {
  padding-left: max(var(--space), env(safe-area-inset-left));
  padding-right: max(var(--space), env(safe-area-inset-right));
  padding-bottom: max(1.25rem, env(safe-area-inset-bottom));
}
.site-footer__inner {
  padding-left: max(var(--space), env(safe-area-inset-left));
  padding-right: max(var(--space), env(safe-area-inset-right));
}

@media (max-width: 767px) {
  .board-who {
    align-items: flex-start;
  }
  .board-who__label {
    min-width: 100%;
  }
  .board-who__clear {
    margin-left: 0;
  }
  .board-who-pill {
    min-height: 40px;
    font-size: 0.8rem;
  }
  .board-chip-row__label {
    min-width: 100%;
    margin-bottom: 0.1rem;
  }
  .board-chip {
    min-height: 36px;
  }
  .board-facets__search input[type="search"] {
    font-size: 16px;
    min-height: 44px;
  }
}

@media (max-width: 767px) {
  /* Filters: full-width touch targets */
  .prospects-filters {
    padding: 0.75rem 0.8rem 0.85rem;
    margin-bottom: 0.9rem;
  }
  .prospects-filters__actions {
    margin-left: 0;
  }
  .prospects-filters__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem 0.55rem;
    align-items: end;
  }
  .prospects-filters .field--sm {
    width: 100%;
    min-width: 0;
  }
  .prospects-filters .field--sm input,
  .prospects-filters .field--sm select {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    font-size: 16px; /* avoid iOS zoom */
  }
  .prospects-filters__actions {
    grid-column: 1 / -1;
    display: flex;
    gap: 0.4rem;
  }
  .prospects-filters__actions .btn {
    flex: 1 1 auto;
    justify-content: center;
    min-height: 44px;
  }

  /* Conference board: denser, taller tap rows */
  .prospects-board {
    gap: 1.15rem;
  }
  .prospects-conf__title {
    font-size: 0.9rem;
  }
  .prospects-div__label {
    margin-bottom: 0.3rem;
  }
  .prospects-path-legend {
    gap: 0.4rem 0.75rem;
    font-size: 0.68rem;
    margin-bottom: 0.7rem;
  }
  .prospects-row {
    grid-template-columns: 2.35rem minmax(0, 1fr) minmax(4.5rem, 6.5rem) 2rem;
    gap: 0.3rem 0.4rem;
    padding: 0.58rem 0.55rem;
    min-height: 46px;
  }
  .prospects-row--head {
    padding: 0.35rem 0.55rem;
  }
  .prospects-row__ab {
    font-size: 0.72rem;
  }
  .prospects-row__name {
    font-size: 0.84rem;
  }
  .prospects-colhead {
    font-size: 0.55rem;
  }
  .prospects-path-stack {
    height: 8px;
  }
  .prospects-dot {
    min-width: 1.05rem;
    font-size: 0.64rem;
  }
  .prospects-row__count {
    font-size: 0.88rem;
  }

  /* Snapshot tiles: 3-up compact on phones */
  .pto-tiles {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.4rem;
  }
  .pto-tile {
    padding: 0.55rem 0.5rem;
  }
  .pto-tile__label {
    font-size: 0.58rem;
    letter-spacing: 0.04em;
  }
  .pto-tile__value {
    font-size: 1.15rem;
  }
  .pto-tile__sub {
    font-size: 0.62rem;
    line-height: 1.25;
  }

  /* Standouts: horizontal snap carousel */
  .pto-standouts__grid {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.55rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    padding-bottom: 0.35rem;
    margin: 0 -0.15rem;
    padding-left: 0.15rem;
    padding-right: 0.15rem;
    scrollbar-width: none;
  }
  .pto-standouts__grid::-webkit-scrollbar { display: none; }
  .pto-card {
    flex: 0 0 min(78vw, 15.5rem);
    scroll-snap-align: start;
    padding: 0.7rem 0.75rem;
    min-height: 7.2rem;
  }
  .pto-card__name { font-size: 0.95rem; }
  .pto-card__num { font-size: 1.3rem; }

  .pto-board__table {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 12px;
  }
  .pto-board__row {
    min-width: 40rem;
    font-size: 0.82rem;
  }
  .pto-board__player {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.05rem;
  }
  .pto-board__player strong {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    line-height: 1.2;
  }

  /* Donut: still large on phone, with breathing room */
  .pto-donut__chart {
    width: min(16rem, 72vw);
    height: min(16rem, 72vw);
  }
  .pto-donut__total {
    font-size: 1.75rem;
  }
  .pto-donut__tip {
    min-height: 2.8rem;
    font-size: 0.72rem;
  }

  /* Full list section head */
  .section-head {
    flex-wrap: wrap;
    gap: 0.25rem 0.5rem;
  }

  /* Talent expand button size */
  .talent-row__expand-btn {
    min-width: 40px;
    min-height: 40px;
  }
}

@media (max-width: 420px) {
  .pto-tiles {
    grid-template-columns: 1fr;
  }
  .pto-tile__value {
    font-size: 1.35rem;
  }
  .prospects-row {
    grid-template-columns: 2.2rem minmax(0, 1fr) 5.6rem 1.85rem;
  }
  .prospects-row__name {
    font-size: 0.8rem;
  }
  .page-title {
    font-size: 1.25rem;
  }
}

/* ── Admin ───────────────────────────────────────────── */
.admin-status__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
}
.admin-status__grid > div {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.55rem 0.65rem;
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
}
.admin-sources {
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  border-radius: 10px;
  padding: 0.55rem 0.75rem 0.7rem;
  margin: 0 0 0.75rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.85rem;
}
.admin-sources legend {
  padding: 0 0.25rem;
}
.admin-check {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.85rem;
  cursor: pointer;
}

/* Dump health lights */
.admin-light {
  width: 0.85rem;
  height: 0.85rem;
  border-radius: 999px;
  flex: 0 0 auto;
  background: #a3a3a3;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, #000 25%, transparent);
}
.admin-light--sm {
  width: 0.55rem;
  height: 0.55rem;
}
[data-status="green"] > .admin-light,
.admin-light[data-status="green"],
.admin-health__card[data-status="green"] .admin-light,
.admin-health__overall[data-status="green"] .admin-light {
  background: #22c55e;
  box-shadow: 0 0 0 2px color-mix(in srgb, #22c55e 28%, transparent);
}
[data-status="yellow"] > .admin-light,
.admin-light[data-status="yellow"],
.admin-health__card[data-status="yellow"] .admin-light,
.admin-health__overall[data-status="yellow"] .admin-light {
  background: #eab308;
  box-shadow: 0 0 0 2px color-mix(in srgb, #eab308 28%, transparent);
}
[data-status="red"] > .admin-light,
.admin-light[data-status="red"],
.admin-health__card[data-status="red"] .admin-light,
.admin-health__overall[data-status="red"] .admin-light {
  background: #ef4444;
  box-shadow: 0 0 0 2px color-mix(in srgb, #ef4444 28%, transparent);
}
.admin-health__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.35rem;
}
.admin-health__overall {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.45rem 0.7rem;
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  min-width: 14rem;
}
.admin-health__counts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.65rem;
}
.admin-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  font-size: 0.75rem;
}
.admin-pill--green { color: #86efac; border-color: color-mix(in srgb, #22c55e 45%, var(--line)); }
.admin-pill--yellow { color: #fde047; border-color: color-mix(in srgb, #eab308 45%, var(--line)); }
.admin-pill--red { color: #fca5a5; border-color: color-mix(in srgb, #ef4444 45%, var(--line)); }
[data-theme="light"] .admin-pill--green { color: #15803d; }
[data-theme="light"] .admin-pill--yellow { color: #a16207; }
[data-theme="light"] .admin-pill--red { color: #b91c1c; }
.admin-health__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16.5rem, 1fr));
  gap: 0.65rem;
}
.admin-health__card {
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  border-radius: 12px;
  padding: 0.65rem 0.75rem;
  background: color-mix(in srgb, #000 10%, var(--panel));
}
.admin-health__card[data-status="green"] {
  border-color: color-mix(in srgb, #22c55e 40%, var(--line));
}
.admin-health__card[data-status="yellow"] {
  border-color: color-mix(in srgb, #eab308 40%, var(--line));
}
.admin-health__card[data-status="red"] {
  border-color: color-mix(in srgb, #ef4444 45%, var(--line));
}
.admin-health__card-top {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.5rem;
  align-items: start;
}
.admin-health__badge {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.85;
}
.admin-health__summary {
  margin: 0.45rem 0 0.25rem;
  font-size: 0.84rem;
  line-height: 1.35;
}
.admin-health__details {
  margin: 0;
  padding-left: 1rem;
  line-height: 1.35;
}
.admin-form__row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  margin-bottom: 0.75rem;
}
.admin-form__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.admin-job__log,
.admin-cli {
  margin: 0.5rem 0 0;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  background: color-mix(in srgb, #000 18%, var(--panel));
  font-size: 0.72rem;
  line-height: 1.4;
  overflow: auto;
  max-height: 18rem;
  white-space: pre-wrap;
}
.admin-cli { max-height: none; }
@media (max-width: 720px) {
  .admin-status__grid { grid-template-columns: 1fr 1fr; }
}

/* ── Admin login ─────────────────────────────────────── */
.admin-login {
  display: flex;
  justify-content: center;
  padding: 1.5rem 0 2rem;
}
.admin-login__card {
  width: min(100%, 24rem);
  padding: 1.25rem 1.35rem 1.4rem;
}
.admin-login__form {
  display: grid;
  gap: 0.75rem;
  margin-top: 0.85rem;
}
.admin-login__form .field input {
  width: 100%;
  min-height: 44px;
  font-size: 16px;
}
.admin-login__error {
  margin: 0.65rem 0 0;
  padding: 0.5rem 0.65rem;
  border-radius: 8px;
  background: color-mix(in srgb, #f87171 16%, transparent);
  color: #fecaca;
  font-size: 0.85rem;
}
[data-theme="light"] .admin-login__error {
  color: #991b1b;
}
.admin-login__hint {
  margin: 0.65rem 0 0;
  line-height: 1.4;
}

/* ── Scout desk (hybrid home) ───────────────────────── */
.desk {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  max-width: 1200px;
  margin: 0 auto;
  min-height: calc(100vh - var(--header-h) - 5.5rem);
}

/* Top strip: title + search on one row */
.desk-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  padding: 0.55rem 0.75rem;
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: 12px;
}
.desk-top__id {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
}
.desk-top__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  line-height: 1.2;
}
.desk-top__season {
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  color: var(--accent-2);
  background: color-mix(in srgb, var(--accent-2) 14%, transparent);
}
.desk-top__meta {
  margin: 0;
  font-size: 0.75rem;
}
.desk-top__meta a {
  color: var(--accent);
  text-decoration: none;
}
.desk-top__meta a:hover { text-decoration: underline; }
.desk-top__search {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.35rem;
  flex: 1 1 18rem;
  min-width: 0;
  max-width: 36rem;
  margin-left: auto;
}
.desk-top__q {
  flex: 1 1 auto;
  min-width: 0;
  height: 2rem;
  padding: 0 0.65rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--bg);
  color: var(--ink);
  font: inherit;
  font-size: 0.85rem;
}
.desk-top__q:focus {
  outline: 2px solid color-mix(in srgb, var(--accent) 45%, transparent);
  outline-offset: 1px;
}
.desk-top__select {
  height: 2rem;
  padding: 0 0.4rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--bg);
  color: var(--ink);
  font: inherit;
  font-size: 0.8rem;
  max-width: 5.5rem;
}
.desk-top__go {
  height: 2rem;
  padding: 0 0.75rem;
  font-size: 0.82rem;
  border-radius: 8px;
}

/* Value card */
.desk-card {
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.desk-card__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 0.85rem;
  padding: 0.55rem 0.75rem;
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg-3) 55%, var(--bg-2));
}
.desk-card__title-block {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.55rem;
  min-width: 0;
}
.desk-card__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
}
.desk-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.12rem 0.5rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--ink-2);
  background: color-mix(in srgb, var(--accent) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--line));
  white-space: nowrap;
}
.desk-card__count {
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
}
.desk-card__count::before { content: "· "; }
.desk-card__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.65rem;
}
.desk-card__link {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--accent);
  text-decoration: none;
  white-space: nowrap;
}
.desk-card__link:hover { text-decoration: underline; }

.desk-seg {
  display: inline-flex;
  border: 1px solid var(--line);
  border-radius: 999px;
  overflow: hidden;
  background: var(--bg);
}
.desk-seg__btn {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.28rem 0.62rem;
  cursor: pointer;
  line-height: 1;
}
.desk-seg__btn:hover { color: var(--ink); }
.desk-seg__btn.is-active {
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  color: var(--accent);
}
.desk-seg__btn.is-partial {
  background: color-mix(in srgb, var(--accent) 10%, transparent);
  color: var(--accent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent);
}
.desk-seg__parent {
  position: relative;
  display: inline-flex;
}
.desk-seg__btn--parent {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
}
.desk-seg__caret {
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 0.22rem solid transparent;
  border-right: 0.22rem solid transparent;
  border-top: 0.28rem solid currentColor;
  opacity: 0.75;
  translate: 0 0.05rem;
}
.desk-seg__btn--parent[aria-expanded="true"] .desk-seg__caret {
  transform: rotate(180deg);
}
.desk-prod-pop--path {
  left: 0;
  right: auto;
  min-width: 14rem;
  max-width: min(22rem, 92vw);
  z-index: 30;
}
.desk-prod-pop--path.is-open {
  /* Portaled to body + fixed coords from JS — escape overflow:hidden chip bars */
  position: fixed;
  z-index: 400;
}
.desk-seg.desk-seg--wrap {
  /* Keep pill clip for leaf rows; path pop is portaled so this is optional safety */
  overflow: visible;
}
.desk-switch {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.78rem;
  color: var(--ink-2);
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}
.desk-switch input { accent-color: var(--accent); }

/* Mobile tabs (hidden on desktop) */
.desk-tabs {
  display: none;
  gap: 0;
  border-bottom: 1px solid var(--line);
  background: var(--bg-2);
}
.desk-tabs__btn {
  flex: 1;
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 0.55rem 0.75rem;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.desk-tabs__btn.is-active {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

.desk-value-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  min-height: 0;
  flex: 1 1 auto;
}
.desk-value-grid.is-loading { opacity: 0.55; pointer-events: none; }
.desk-item.is-open > .desk-row--player {
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  box-shadow: inset 3px 0 0 var(--accent);
}

/* Player profile popout */
.desk-popout {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(0.75rem, env(safe-area-inset-top)) max(0.75rem, env(safe-area-inset-right)) max(0.75rem, env(safe-area-inset-bottom)) max(0.75rem, env(safe-area-inset-left));
}
.desk-popout[hidden] { display: none !important; }
.desk-popout__backdrop {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, #020617 55%, transparent);
  backdrop-filter: blur(2px);
  cursor: pointer;
}
.desk-popout__panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(960px, 100%);
  max-height: min(88vh, 860px);
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: var(--shadow), 0 24px 64px rgba(0, 0, 0, 0.35);
  overflow: hidden;
}
.desk-popout__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.7rem 0.9rem;
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg-3) 65%, var(--bg-2));
  flex-shrink: 0;
}
.desk-popout__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.desk-popout__actions {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-shrink: 0;
}
.desk-popout__full {
  display: inline-flex;
  align-items: center;
  height: 2rem;
  padding: 0 0.7rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--bg);
  color: var(--accent);
  font-size: 0.78rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}
.desk-popout__full:hover {
  background: color-mix(in srgb, var(--accent) 12%, var(--bg));
  border-color: color-mix(in srgb, var(--accent) 35%, var(--line));
}
.desk-popout__full[hidden] {
  display: none !important;
}
.desk-popout__close {
  appearance: none;
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--bg);
  color: var(--ink-2);
  font: inherit;
  font-size: 0.95rem;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
}
.desk-popout__close:hover {
  color: var(--ink);
  background: var(--bg-3);
}
.desk-popout__body.talent-brief,
.desk .desk-popout .talent-brief {
  flex: 1 1 auto;
  min-width: 0 !important;
  max-width: none;
  margin: 0;
  padding: 0.85rem 1rem 1.1rem;
  border: 0;
  border-bottom: 0;
  background: var(--bg-2);
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
.desk-popout .talent-brief__layout,
.desk-popout .talent-brief__grid {
  max-width: none;
}
body.desk-popout-open {
  overflow: hidden;
}

@media (max-width: 640px) {
  .desk-popout {
    padding: 0;
    align-items: stretch;
  }
  .desk-popout__panel {
    width: 100%;
    max-height: none;
    height: 100%;
    border-radius: 0;
  }
}

.desk-board {
  min-width: 0;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--line);
  min-height: 0;
}
.desk-board:last-child { border-right: 0; }
.desk-board__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.45rem 0.75rem 0.3rem;
}
.desk-board__head h3 {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 700;
}
.desk-board__n {
  font-weight: 600;
  color: var(--muted);
  font-size: 0.75rem;
}
.desk-board__meta {
  font-size: 0.7rem;
}
.desk-board__scroll {
  flex: 1 1 auto;
  max-height: none;
  min-height: 18rem;
  overflow: auto;
  overscroll-behavior: contain;
}
.desk-board__list {
  display: flex;
  flex-direction: column;
  padding: 0 0.35rem 0.4rem;
}
.desk-item {
  border-radius: 8px;
}
.desk-item.is-open {
  background: color-mix(in srgb, var(--accent) 7%, transparent);
}
.desk-item.is-open > .desk-row--player {
  border-bottom-color: transparent;
}

.desk-row {
  display: grid;
  grid-template-columns: 1.55rem minmax(0, 1fr) 3.6rem 2.1rem;
  gap: 0.25rem 0.4rem;
  align-items: center;
  width: 100%;
  padding: 0.28rem 0.4rem;
  border: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  box-sizing: border-box;
}
.desk-row--head {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--bg-2);
  color: var(--muted);
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
  padding-top: 0.2rem;
  padding-bottom: 0.25rem;
  border-bottom-color: var(--line);
}
.desk-row--player {
  cursor: pointer;
  border-radius: 8px;
}
.desk-row--player:hover {
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}
.desk-row--player:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 50%, transparent);
  outline-offset: 1px;
}
.desk-row__rank {
  font-variant-numeric: tabular-nums;
  font-size: 0.72rem;
  color: var(--muted);
  text-align: right;
}
.desk-row__sort {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: inherit;
  font-weight: inherit;
  text-align: left;
  padding: 0;
  margin: 0;
  cursor: pointer;
  min-width: 0;
}
.desk-row__sort:hover { color: var(--ink); }
.desk-row__sort.is-sorted { color: var(--accent); }
.desk-row__sort.is-sorted::after { content: " ▾"; font-size: 0.7em; }
.desk-row__sort.is-sorted.is-asc::after { content: " ▴"; }
.desk-row--head .desk-row__metric.desk-row__sort,
.desk-row--head .desk-row__elig.desk-row__sort {
  text-align: right;
}
.desk-row__player {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.02rem;
}
.desk-row__name {
  font-size: 0.84rem;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.25;
}
.desk-row__meta {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.35rem;
  min-width: 0;
  font-size: 0.7rem;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.desk-row__meta > span {
  overflow: hidden;
  text-overflow: ellipsis;
}
.desk-row__pos {
  font-weight: 700;
  color: var(--ink-2);
  flex: 0 0 auto;
}
.desk-row__metric {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0;
  min-width: 0;
}
.desk-metric {
  font-size: 0.88rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.15;
}
.desk-metric--fw { color: var(--fw); }
.desk-metric--nhle { color: var(--nhle); }
.desk-metric__sub {
  font-size: 0.62rem;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.desk-row__elig {
  justify-self: end;
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--ok);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.desk-empty {
  margin: 0;
  padding: 1.25rem 0.9rem;
  color: var(--muted);
  font-size: 0.88rem;
  text-align: center;
}



/* Production module */
.desk-card--production {
  margin-top: 0.15rem;
  flex: 0 0 auto;
}
.desk-card--production .desk-board__scroll--production {
  max-height: min(52vh, 30rem);
}
.desk-seg--wrap {
  flex-wrap: wrap;
  border-radius: 10px;
}
.desk-production-grid {
  min-height: 0;
}
.desk-production-grid.is-loading {
  opacity: 0.55;
  pointer-events: none;
}
.desk-board--production {
  border-right: 0;
}
.desk-board__scroll--production {
  max-height: min(52vh, 30rem);
  flex: 0 1 auto;
}
.desk-production-grid--full .desk-board__scroll--production {
  max-height: min(75vh, 48rem);
}
.desk-seg__btn[href] {
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}
.desk--production-full .desk-card--production {
  flex: 1 1 auto;
}

/* Scouting Board — Production-style full list, simple top filters */
.desk--scouting-board {
  gap: 0.75rem;
}
.scout-board-top {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
  padding: 0.15rem 0 0.35rem;
  border-bottom: 1px solid color-mix(in srgb, var(--line) 75%, transparent);
}
.scout-board-top__title {
  margin: 0;
  font-size: clamp(1.25rem, 2.4vw, 1.55rem);
  font-weight: 750;
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.scout-board-top__season {
  margin-left: 0.4rem;
  font-size: 0.72em;
  font-weight: 600;
  color: var(--muted);
}
.scout-board-top__meta {
  margin: 0.25rem 0 0;
  font-size: 0.82rem;
}
.scout-board-top__meta a,
.scout-board-top__meta .desk-prod-clear {
  color: inherit;
}
.scout-board-top__filters {
  flex: 1 1 auto;
  display: flex;
  justify-content: flex-end;
  min-width: min(100%, 18rem);
}
.scout-board-panel {
  background: var(--bg-2);
  border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  border-radius: 12px;
  padding: 0.35rem 0.45rem 0.55rem;
  min-width: 0;
}
.desk--scouting-board .desk-board__head--compact {
  padding: 0.25rem 0.35rem 0.45rem;
}
.desk--scouting-board .desk-board__head--compact h3 {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  font-weight: 700;
}
.desk--scouting-board .desk-production-grid--full .desk-board__scroll--production {
  max-height: min(78vh, 52rem);
}
@media (max-width: 720px) {
  .scout-board-top {
    align-items: stretch;
  }
  .scout-board-top__filters {
    justify-content: flex-start;
  }
  .desk--scouting-board .desk-production-grid--full .desk-board__scroll--production {
    max-height: min(70vh, 40rem);
  }
}

.desk-prod-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
}
.desk-prod-table th,
.desk-prod-table td {
  padding: 0.3rem 0.4rem;
  border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  text-align: left;
  white-space: nowrap;
  vertical-align: middle;
}
.desk-prod-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--bg-2);
  color: var(--muted);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  cursor: pointer;
  user-select: none;
}
.desk-prod-table th:hover {
  color: var(--ink);
  background: color-mix(in srgb, var(--accent) 8%, var(--bg-2));
}
.desk-prod-table th.is-sorted {
  color: var(--accent);
}
.desk-prod-table th.is-sorted .desk-prod-th__label::after {
  content: " ▾";
  font-size: 0.7em;
}
.desk-prod-table th.is-sorted.is-asc .desk-prod-th__label::after {
  content: " ▴";
}
.desk-prod-th {
  position: sticky;
  overflow: visible;
}
.desk-prod-th__row {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
}
.desk-prod-th__filter {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  line-height: 1;
  width: 1rem;
  height: 1rem;
  padding: 0;
  border-radius: 0.25rem;
  cursor: pointer;
  opacity: 0.45;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
/* Funnel — reads as filter, not sort */
.desk-prod-th__filter::before {
  content: "";
  display: block;
  width: 0.62rem;
  height: 0.55rem;
  background: currentColor;
  clip-path: polygon(0 0, 100% 0, 62% 48%, 62% 100%, 38% 100%, 38% 48%);
}
.desk-prod-th__filter:hover,
.desk-prod-th__filter[aria-expanded="true"] {
  opacity: 1;
  background: color-mix(in srgb, var(--accent) 14%, transparent);
  color: var(--accent);
}
.desk-prod-th.is-filtered {
  color: var(--accent);
}
.desk-prod-th.is-filtered .desk-prod-th__filter {
  opacity: 1;
  color: var(--accent);
}
.desk-prod-th.is-filtered .desk-prod-th__label::before {
  content: "";
  display: inline-block;
  width: 0.35rem;
  height: 0.35rem;
  margin-right: 0.25rem;
  border-radius: 50%;
  background: var(--accent);
  vertical-align: middle;
}
.desk-prod-pop {
  position: absolute;
  top: calc(100% + 0.25rem);
  right: 0;
  z-index: 20;
  min-width: 10.5rem;
  padding: 0.55rem 0.6rem 0.5rem;
  border-radius: 0.55rem;
  border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  background: var(--bg-1, var(--bg-2));
  box-shadow: 0 8px 24px color-mix(in srgb, #000 22%, transparent);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
  color: var(--ink);
  cursor: default;
  text-align: left;
}
.desk-prod-pop--elig {
  min-width: 12rem;
}
.desk-prod-pop__title {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  margin-bottom: 0.4rem;
}
.desk-prod-pop__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-bottom: 0.5rem;
}
.desk-prod-pop__chip {
  appearance: none;
  border: 1px solid color-mix(in srgb, var(--line) 85%, transparent);
  background: color-mix(in srgb, var(--bg-2) 80%, transparent);
  color: var(--ink-2);
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.22rem 0.45rem;
  border-radius: 999px;
  cursor: pointer;
}
.desk-prod-pop__chip:hover {
  border-color: color-mix(in srgb, var(--accent) 40%, var(--line));
}
.desk-prod-pop__chip.is-on {
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  border-color: color-mix(in srgb, var(--accent) 55%, transparent);
  color: var(--accent);
}
.desk-prod-pop__field {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.5rem;
  font-size: 0.75rem;
}
.desk-prod-pop__input {
  width: 5.2rem;
  padding: 0.28rem 0.4rem;
  border-radius: 0.35rem;
  border: 1px solid color-mix(in srgb, var(--line) 85%, transparent);
  background: var(--bg-2);
  color: var(--ink);
  font: inherit;
  font-variant-numeric: tabular-nums;
}
.desk-prod-pop__input:focus {
  outline: 2px solid color-mix(in srgb, var(--accent) 45%, transparent);
  outline-offset: 1px;
}
.desk-prod-pop__actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.35rem;
}
.desk-prod-pop__clear,
.desk-prod-pop__apply,
.desk-prod-clear {
  appearance: none;
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 700;
  cursor: pointer;
  padding: 0.2rem 0.4rem;
  border-radius: 0.3rem;
}
.desk-prod-pop__clear,
.desk-prod-clear {
  color: var(--muted);
}
.desk-prod-pop__clear:hover,
.desk-prod-clear:hover {
  color: var(--ink);
  background: color-mix(in srgb, var(--line) 35%, transparent);
}
.desk-prod-pop__apply {
  color: var(--accent);
  background: color-mix(in srgb, var(--accent) 12%, transparent);
}
.desk-prod-pop__apply:hover {
  background: color-mix(in srgb, var(--accent) 22%, transparent);
}
.desk-prod-clear {
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.desk-prod-table__rank {
  width: 1.7rem;
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}
.desk-prod-table__num {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
.desk-prod-table__p {
  color: var(--accent-2);
  font-weight: 700;
}
.desk-prod-table__pos {
  font-weight: 700;
  color: var(--ink-2);
}
.desk-prod-table__path {
  font-size: 0.76rem;
  color: var(--ink-2);
}
.desk-prod-table__team {
  max-width: 9.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 0.76rem;
  color: var(--muted);
}
.desk-prod-table__player {
  min-width: 7.5rem;
}
.desk-prod-table__name {
  font-weight: 700;
}
.desk-prod-table__elig {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--ok);
  text-transform: uppercase;
  text-align: right !important;
}
.desk-prod-table__row {
  cursor: pointer;
}
.desk-prod-table__row:hover {
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}
.desk-prod-table__row.is-open,
.desk-item.is-open.desk-prod-table__row {
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  box-shadow: inset 3px 0 0 var(--accent);
}
.desk-prod-table__row:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 50%, transparent);
  outline-offset: -2px;
}

/* Pipelines module */
.desk-card--pipelines {
  margin-top: 0.15rem;
  flex: 0 0 auto;
}
.desk-pipelines {
  padding: 0 0.15rem 0.55rem;
}
.desk-pipelines__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.9fr);
  gap: 0.75rem;
  /* start: charts stay natural height so Draft class bottom is the align target */
  align-items: start;
}
.desk-pipelines__table-wrap {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  /* Height synced to Draft class card bottom via desk.js */
}
.desk-pipelines__head {
  padding: 0.45rem 0.6rem 0.25rem;
  flex-shrink: 0;
}
.desk-pipelines__charts {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 0.35rem 0.45rem 0.2rem 0;
}
.desk-board__scroll--pipelines {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  padding: 0 0.35rem 0.35rem;
}
.desk-pipe-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
}
.desk-pipe-table th,
.desk-pipe-table td {
  padding: 0.3rem 0.4rem;
  border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  text-align: left;
  white-space: nowrap;
  vertical-align: middle;
}
.desk-pipe-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--bg-2);
  color: var(--muted);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  cursor: pointer;
  user-select: none;
}
.desk-pipe-table th:hover {
  color: var(--ink);
  background: color-mix(in srgb, var(--accent) 8%, var(--bg-2));
}
.desk-pipe-table th.is-sorted {
  color: var(--accent);
}
.desk-pipe-table th.is-sorted::after {
  content: " ▾";
  font-size: 0.7em;
}
.desk-pipe-table th.is-sorted.is-asc::after {
  content: " ▴";
}
.desk-pipe-table__rank {
  width: 1.7rem;
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}
.desk-pipe-table__num {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
.desk-pipe-table__jp {
  color: var(--accent-2);
  font-weight: 700;
}
.desk-pipe-table__row:hover {
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}
.desk-pipe-table tr.is-empty {
  opacity: 0.45;
}
.desk-pipe-org {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}
.desk-pipe-org:hover .desk-pipe-org__ab {
  color: var(--accent);
}
.desk-pipe-org__logo {
  width: 18px;
  height: 18px;
  object-fit: contain;
  flex-shrink: 0;
}
.desk-pipe-org__ab {
  font-weight: 700;
  width: 2.2rem;
}
.desk-pipe-table__team {
  max-width: 11rem;
  overflow: hidden;
  text-overflow: ellipsis;
}
.desk-pipe-team {
  color: var(--ink-2);
  text-decoration: none;
  font-size: 0.76rem;
}
.desk-pipe-team:hover {
  color: var(--accent);
}
.desk-chart {
  margin: 0;
  padding: 0.55rem 0.65rem 0.6rem;
}
.desk-chart__title {
  margin: 0 0 0.4rem;
  font-size: 0.78rem;
  font-weight: 700;
}
.desk-bars,
.desk-mix {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
}
.desk-bars__row,
.desk-mix__row {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr) 3.2rem;
  gap: 0.35rem;
  align-items: center;
  font-size: 0.74rem;
}
.desk-mix__row {
  grid-template-columns: 4.2rem minmax(0, 1fr) 5.5rem;
}
.desk-bars__label,
.desk-mix__label {
  font-weight: 700;
  color: var(--ink-2);
  text-decoration: none;
}
.desk-bars__label:hover { color: var(--accent); }
.desk-bars__track,
.desk-mix__track {
  height: 0.55rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--line) 55%, transparent);
  overflow: hidden;
}
.desk-bars__fill,
.desk-mix__fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: color-mix(in srgb, var(--accent-2) 75%, var(--accent));
  min-width: 2px;
}
.desk-mix__fill--chl { background: #3d8bfd; }
.desk-mix__fill--ushl { background: #60a5fa; }
.desk-mix__fill--junior_a { background: #38bdf8; }
.desk-mix__fill--ncaa { background: #a78bfa; }
.desk-mix__fill--europe_jr { background: #f59e0b; }
.desk-mix__fill--draft { background: color-mix(in srgb, var(--accent) 70%, #94a3b8); }
.desk-bars__val,
.desk-mix__val {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
.desk-pipelines__note {
  margin: 0.45rem 0.65rem 0.15rem;
}

@media (max-width: 900px) {
  .desk-pipelines__layout {
    grid-template-columns: 1fr;
  }
  .desk-pipelines__charts {
    padding: 0 0.45rem;
  }
  .desk-board__scroll--pipelines {
    max-height: min(50vh, 28rem);
  }
  .desk-pipe-table__team { display: none; }
  .desk-pipe-table th[data-pipe-sort="name"] { display: none; }

  .desk {
    gap: 0.55rem;
    min-height: 0;
  }
  .desk-top__search {
    flex: 1 1 100%;
    max-width: none;
    margin-left: 0;
  }
  .desk-tabs { display: flex; }
  .desk-value-grid {
    grid-template-columns: 1fr;
  }
  .desk-board {
    border-right: 0;
  }
  .desk-board:not(.is-active) {
    display: none !important;
  }
  .desk-board.is-active {
    display: flex !important;
  }
  .desk-board__scroll {
    max-height: min(70vh, 36rem);
  }
  .desk-board__head {
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.2rem 0.5rem;
  }
  .desk-board__hint { display: none; }

  .desk-card__bar {
    flex-direction: column;
    align-items: stretch;
    gap: 0.55rem;
  }
  .desk-card__controls {
    width: 100%;
  }
  .desk-card__link {
    margin-left: auto;
  }

  /* Path / position chips: swipe row instead of awkward wrap */
  .desk-seg--wrap {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    max-width: 100%;
    border-radius: 999px;
  }
  .desk-seg--wrap::-webkit-scrollbar { display: none; }
  .desk-seg--wrap .desk-seg__btn,
  .desk-seg--wrap .desk-seg__parent {
    flex: 0 0 auto;
  }
  .desk-seg--wrap .desk-seg__btn {
    padding: 0.42rem 0.72rem;
  }
  .desk-prod-pop--path {
    position: fixed;
    left: 0.75rem;
    right: 0.75rem;
    width: auto;
    max-width: none;
    min-width: 0;
  }

  .desk-card--production .desk-board__scroll--production,
  .desk-board__scroll--production {
    max-height: min(68vh, 34rem);
    -webkit-overflow-scrolling: touch;
  }
  .desk-production-grid--full .desk-board__scroll--production {
    max-height: min(78vh, 44rem);
  }

  /* Production table: sticky player, denser cells, bigger filter targets */
  .desk-prod-table {
    font-size: 0.74rem;
  }
  .desk-prod-table th,
  .desk-prod-table td {
    padding: 0.38rem 0.32rem;
  }
  .desk-prod-table__player {
    position: sticky;
    left: 0;
    z-index: 2;
    background: var(--bg-2, var(--panel));
    min-width: 6.5rem;
    box-shadow: 1px 0 0 color-mix(in srgb, var(--line) 70%, transparent);
  }
  .desk-prod-table thead .desk-prod-table__player {
    z-index: 3;
  }
  .desk-prod-th__filter {
    width: 1.35rem;
    height: 1.35rem;
    opacity: 0.7;
  }
  .desk-prod-th__filter::before {
    width: 0.7rem;
    height: 0.62rem;
  }

  /* Filter popovers → bottom sheet on phone */
  .desk-prod-pop,
  .desk-prod-pop--elig {
    position: fixed;
    left: 0.65rem;
    right: 0.65rem;
    bottom: max(0.65rem, env(safe-area-inset-bottom));
    top: auto;
    min-width: 0;
    width: auto;
    max-width: none;
    z-index: 90;
    padding: 0.75rem 0.8rem 0.7rem;
    border-radius: 14px;
    box-shadow: 0 12px 36px color-mix(in srgb, #000 28%, transparent);
  }
  .desk-prod-pop__chip {
    min-height: 2rem;
    padding: 0.35rem 0.7rem;
    font-size: 0.8rem;
  }
  .desk-prod-pop__input {
    width: 100%;
    min-height: 2.5rem;
    font-size: 16px; /* avoid iOS focus zoom */
  }
  .desk-prod-pop__field {
    flex-wrap: wrap;
  }
  .desk-prod-pop__actions {
    gap: 0.5rem;
  }
  .desk-prod-pop__clear,
  .desk-prod-pop__apply {
    min-height: 2.25rem;
    padding: 0.35rem 0.75rem;
    font-size: 0.82rem;
  }
}

@media (max-width: 720px) {
  .desk-top__search {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    gap: 0.4rem;
    align-items: stretch;
  }
  .desk-top__q,
  .hs-suggest {
    grid-column: 1 / -1;
  }
  .desk-top__q,
  .desk-top__select {
    font-size: 16px; /* avoid iOS focus zoom */
    min-height: 2.5rem;
    max-width: none;
    width: 100%;
  }
  .desk-top__go {
    min-height: 2.5rem;
    padding: 0 0.9rem;
  }
  .desk-chip {
    white-space: normal;
    line-height: 1.25;
  }
  .desk-card__title-block {
    gap: 0.3rem 0.45rem;
  }
  .desk-seg__btn {
    padding: 0.4rem 0.7rem;
    min-height: 2.1rem;
  }
  .desk-switch {
    min-height: 2.1rem;
  }
}

@media (max-width: 520px) {
  .desk-top {
    padding: 0.5rem 0.6rem;
  }
  .desk-top__select { max-width: 4.6rem; }
  .desk-card__bar {
    padding: 0.5rem 0.6rem;
  }
  .desk-row {
    grid-template-columns: 1.35rem minmax(0, 1fr) 3.2rem 1.8rem;
    padding: 0.35rem 0.3rem;
    min-height: 2.6rem;
  }
  .desk-prod-table__team,
  .desk-prod-table th[data-prod-sort="team"],
  .desk-prod-table td.desk-prod-table__team { display: none; }
  .desk-prod-table__path,
  .desk-prod-table th[data-prod-sort="league"],
  .desk-prod-table td.desk-prod-table__path { display: none; }
  .desk-row__name { font-size: 0.8rem; }
  .desk-prod-table__player { min-width: 5.8rem; }
  .desk-board__meta {
    font-size: 0.68rem;
    line-height: 1.35;
  }
}

/* ── Player search typeahead ─────────────────────────── */
.hs-suggest {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
}
.hs-suggest > input {
  width: 100%;
}
.hs-suggest__list {
  position: absolute;
  z-index: 80;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  min-width: min(100%, 22rem);
  max-height: min(22rem, 55vh);
  overflow: auto;
  margin: 0;
  padding: 0.3rem;
  list-style: none;
  border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--line));
  border-radius: 10px;
  background: var(--bg-2);
  box-shadow: var(--shadow);
}
.desk-top__search .hs-suggest__list {
  min-width: 22rem;
  width: max(100%, 22rem);
}
.lookup-filters__search .hs-suggest {
  flex: 1 1 auto;
}
.hs-suggest__item {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0.45rem 0.6rem;
  border-radius: 8px;
  cursor: pointer;
}
.hs-suggest__item:hover,
.hs-suggest__item.is-active {
  background: color-mix(in srgb, var(--accent) 12%, var(--bg));
}
.hs-suggest__name {
  font-weight: 700;
  color: var(--ink);
  font-size: 0.9rem;
}
.hs-suggest__meta {
  font-size: 0.75rem;
}
.hs-suggest__empty {
  padding: 0.55rem 0.65rem;
  font-size: 0.82rem;
}
.desk-top__search {
  overflow: visible;
}
.filters__primary .hs-suggest__list {
  min-width: 18rem;
}

/* ── League Stats page ── */
.stats-page { margin: 0 0 2rem; }
.stats-filters {
  margin: 0 0 0.9rem;
  padding: 0.75rem 0.9rem;
}
.stats-filters__row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 0.85rem;
  align-items: flex-end;
}
.stats-filters .field--grow { flex: 1 1 14rem; min-width: 12rem; }
.stats-filters__actions { display: flex; align-items: flex-end; padding-bottom: 0.1rem; }
.stats-board { padding: 0.75rem 0.9rem 0.9rem; }
.stats-board__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  margin: 0 0 0.55rem;
}
.stats-board__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
}
.stats-board__n {
  margin-left: 0.4rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--ink-2);
  font-variant-numeric: tabular-nums;
}
.stats-board__scroll {
  overflow: auto;
  max-height: min(70vh, 52rem);
  border-radius: 8px;
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  /* Deter casual select/copy of the board (filters stay selectable). */
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
.stats-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
  -webkit-user-select: none;
  user-select: none;
}
.stats-table th,
.stats-table td {
  padding: 0.3rem 0.45rem;
  border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  text-align: left;
  white-space: nowrap;
  vertical-align: middle;
}
.stats-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--bg-2, var(--panel));
  color: var(--ink-2);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  cursor: pointer;
  user-select: none;
}
.stats-table th:hover {
  color: var(--ink);
  background: color-mix(in srgb, var(--accent) 8%, var(--bg-2, var(--panel)));
}
.stats-table th.is-sorted { color: var(--accent); }
.stats-table th.is-sorted::after { content: " ▾"; font-size: 0.7em; }
.stats-table th.is-sorted.is-asc::after { content: " ▴"; }
/* Filterable stats headers use the Production funnel marker, not ::after */
.stats-table {
  overflow: visible;
}
.stats-board__scroll {
  overflow: auto;
}
.stats-table th.desk-prod-th {
  overflow: visible;
  position: sticky;
  top: 0;
  z-index: 2;
}
.stats-table th.desk-prod-th.is-sorted::after { content: none; }
.stats-table th.desk-prod-th.is-sorted .desk-prod-th__label::after {
  content: " ▾";
  font-size: 0.7em;
}
.stats-table th.desk-prod-th.is-sorted.is-asc .desk-prod-th__label::after {
  content: " ▴";
}
.stats-table__elig {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--ok, var(--accent));
  text-transform: uppercase;
  text-align: right !important;
}
.stats-table__rank {
  width: 1.7rem;
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}
.stats-table__num {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
.stats-table__p { color: var(--accent-2, var(--accent)); font-weight: 700; }
.stats-table__pos { font-weight: 700; color: var(--ink-2); }
.stats-table__team {
  max-width: 11rem;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 0.76rem;
  color: var(--ink-2);
}
.stats-table__player { min-width: 8rem; }
.stats-table__name { font-weight: 700; }
.stats-table__toi { font-variant-numeric: tabular-nums; font-weight: 600; }
.stats-table__row { cursor: pointer; }
.stats-table__row:hover {
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}
.stats-table__row.is-open,
.stats-table__row.is-expanded {
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  box-shadow: inset 3px 0 0 var(--accent);
}
.stats-table__row:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 50%, transparent);
  outline-offset: -2px;
}
@media (max-width: 720px) {
  .stats-board__scroll { max-height: min(75vh, 40rem); }
  .stats-table { font-size: 0.74rem; }
}
