/* Report-card styles lifted verbatim from the app's prism.css so a recorded
   answer renders on this page exactly as it does in The Prism. */
#report-modal-body .national-scout-report { max-width: 900px; margin: 0 auto; }
/* ── national-scout-report (ntr-* classes — rendered by Claude inside results screen) ── */
    .national-scout-report {
      background: var(--surface);
      border-radius: 14px;
      overflow: hidden;
      font-size: .84rem;
    }
.ntr-header {
      background: var(--surface2);
      border-bottom: 1px solid var(--border);
      border-left: 3px solid var(--accent);
      padding: 22px 26px;
    }
.ntr-title {
      font-family: var(--font-display);
      font-size: 1.4rem; font-weight: 800;
      color: var(--text); letter-spacing: -0.03em;
      margin-bottom: 5px;
    }
.ntr-meta { color: var(--accent); font-family: var(--font-mono); font-size: .72rem; letter-spacing: .04em; }
.ntr-squad {
      padding: 16px 22px 18px;
      background: var(--surface);
      border-bottom: 2px solid var(--accent);
    }
.ntr-squad-title {
      font-family: var(--font-mono); font-size: .58rem; text-transform: uppercase;
      letter-spacing: .12em; color: var(--accent); font-weight: 700; margin-bottom: 12px;
    }
.ntr-squad-groups { display: flex; flex-direction: column; gap: 8px; }
.ntr-squad-group { display: flex; align-items: flex-start; gap: 12px; }
.ntr-squad-pos {
      font-family: var(--font-mono); font-size: .6rem; font-weight: 800;
      color: var(--text); text-transform: uppercase; letter-spacing: .1em;
      min-width: 40px; padding-top: 2px; flex-shrink: 0;
    }
.ntr-squad-count { font-weight: 400; color: var(--text-muted); }
.ntr-squad-names { font-size: .8rem; color: var(--text-dim); line-height: 1.6; }
.ntr-section { padding: 16px 22px; border-bottom: 1px solid var(--border); }
.ntr-section:last-of-type { border-bottom: 0; }
.ntr-section h3 {
      font-family: var(--font-mono); font-size: .62rem; text-transform: uppercase;
      letter-spacing: .1em; color: var(--text-muted); margin-bottom: 12px; font-weight: 700;
    }
.ntr-count { font-size: .6rem; font-weight: 400; color: var(--text-muted); text-transform: none; letter-spacing: 0; font-family: var(--font); }
.ntr-table-wrap { overflow-x: auto; border-radius: 10px; border: 1px solid var(--border); }
.ntr-table { width: 100%; border-collapse: collapse; font-size: .8rem; }
.ntr-table thead { background: var(--surface2); }
.ntr-table th {
      padding: 9px 12px; text-align: left; font-family: var(--font-mono); font-size: .58rem; font-weight: 700;
      text-transform: uppercase; letter-spacing: .08em; color: var(--text-muted); white-space: nowrap;
      border-bottom: 1px solid var(--border);
    }
.ntr-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); vertical-align: middle; }
.ntr-table tr:last-child td { border-bottom: 0; }
.ntr-table tr:hover td { background: var(--surface2); }
.ntr-row-callup td:first-child { border-left: 3px solid var(--accent); }
.ntr-row-monitor td:first-child { border-left: 3px solid #b45309; }
.ntr-row-consider td:first-child { border-left: 3px solid var(--border2); }
.ntr-cell-player { display: flex; flex-direction: column; gap: 2px; }
.ntr-player-name { font-family: var(--font-display); font-weight: 700; font-size: .88rem; color: var(--text); }
.ntr-player-league { font-family: var(--font-mono); font-size: .58rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: .04em; }
.ntr-badge { font-family: var(--font-mono); font-size: .58rem; font-weight: 700; padding: 3px 9px; border-radius: 9999px; letter-spacing: .06em; text-transform: uppercase; }
.ntr-callup { background: var(--accent); color: #fff; }
.ntr-monitor { background: #fef7e0; color: #b45309; border: 1px solid rgba(180,83,9,.2); }
.ntr-consider { background: var(--surface2); color: var(--text-muted); border: 1px solid var(--border); }
body.dark .ntr-monitor { background: rgba(180,83,9,.15); color: #f97316; }
.ntr-summary { padding: 16px 22px; background: var(--surface2); border-top: 1px solid var(--border); }
.ntr-summary h3 { font-family: var(--font-mono); font-size: .62rem; text-transform: uppercase; letter-spacing: .1em; color: var(--text-muted); margin-bottom: 8px; font-weight: 700; }
.ntr-summary p { line-height: 1.7; color: var(--text); font-size: .83rem; }
/* ── Result B — rb-report ── */
    .rb-thread { max-width: 920px; margin: 0 auto; padding: 24px 28px 40px; }
.rb-report {
      background: var(--card-bg);
      border: 1px solid var(--border);
      border-radius: 16px; overflow: hidden;
      box-shadow: var(--shadow-card);
      animation: rbFadeIn .2s ease;
    }
.rb-tagbar {
      display: flex; align-items: center; gap: 10px;
      padding: 11px 22px;
      border-bottom: 1px solid var(--border);
      background: var(--surface-light);
      font-family: var(--font-mono); font-size: 10px;
      letter-spacing: 0.14em; text-transform: uppercase;
      color: var(--muted-2);
    }
.rb-tagbar .pill {
      padding: 3px 8px; border: 1px solid var(--border);
      border-radius: 9999px; background: var(--card-pill-bg); color: var(--text);
    }
.rb-tagbar .pill.accent { color: var(--accent); border-color: var(--card-accent-border); background: var(--accent-soft); }
.rb-tagbar .spacer { flex: 1; }
.rb-head {
      padding: 24px 24px 18px;
      display: grid; grid-template-columns: 1fr auto;
      gap: 24px; align-items: flex-end;
      border-bottom: 1px solid var(--border);
    }
.rb-head .name {
      font-family: var(--font-display); font-weight: 800;
      font-size: 38px; letter-spacing: -0.04em; line-height: 1;
    }
.rb-head .name .dot { color: var(--accent); }
.rb-head .sub {
      margin-top: 8px;
      font-family: var(--font-mono); font-size: 11.5px;
      color: var(--muted-2); letter-spacing: 0.05em; text-transform: uppercase;
    }
.rb-head .verdict-chip {
      display: inline-flex; align-items: center; gap: 10px;
      background: var(--card-invert-bg); color: var(--card-invert-fg);
      padding: 10px 16px; border-radius: 12px;
    }
.rb-head .verdict-chip .lbl {
      font-family: var(--font-mono); font-size: 9.5px;
      letter-spacing: 0.14em; text-transform: uppercase;
      color: var(--card-invert-dim);
    }
.rb-head .verdict-chip .val {
      font-family: var(--font-display); font-weight: 800;
      font-size: 28px; letter-spacing: -0.04em;
      color: var(--accent); line-height: 1;
    }
.rb-tabs {
      display: flex; border-bottom: 1px solid var(--border); padding: 0 24px;
    }
.rb-tab {
      padding: 12px 16px;
      font-family: var(--font-mono); font-size: 10.5px;
      letter-spacing: 0.12em; text-transform: uppercase;
      color: var(--muted-2); cursor: pointer;
      border-bottom: 2px solid transparent; margin-bottom: -1px;
      transition: color .15s;
    }
.rb-tab.is-active { color: var(--text); border-bottom-color: var(--accent); }
.rb-tab .count { margin-left: 6px; color: var(--muted-3); }
.rb-body { padding: 22px 24px 24px; display: flex; flex-direction: column; }
.rb-narrative {
      font-size: 14.5px; line-height: 1.6; color: var(--text);
      max-width: 640px; width: 100%; text-wrap: pretty;
    }
.rb-narrative p { margin: 0 0 14px; }
.rb-narrative p:last-child { margin: 0; }
.rb-narrative .hl { color: var(--accent); font-family: var(--font-mono); font-size: 13px; padding: 0 1px; }
.rb-narrative strong { font-weight: 600; }
.rb-keystats {
      display: grid; grid-template-columns: repeat(4, 1fr);
      gap: 8px; margin-top: 22px;
    }
.rb-keystats .k {
      background: var(--surface-light); border: 1px solid var(--border);
      border-radius: 10px; padding: 10px 12px;
    }
.rb-keystats .k .lbl {
      font-family: var(--font-mono); font-size: 9.5px;
      color: var(--muted-3); letter-spacing: 0.1em; text-transform: uppercase;
    }
.rb-keystats .k .val {
      font-family: var(--font-display); font-weight: 700;
      font-size: 20px; letter-spacing: -0.03em; margin-top: 2px;
    }
.rb-keystats .k .sub {
      font-family: var(--font-mono); font-size: 10px;
      color: var(--accent); margin-top: 2px;
    }
.rb-foot {
      display: flex; align-items: center; justify-content: space-between;
      padding: 14px 24px;
      border-top: 1px solid var(--border); background: var(--surface-light);
      font-family: var(--font-mono); font-size: 10.5px;
      letter-spacing: 0.06em; color: var(--muted-2); text-transform: uppercase;
    }
.rb-foot .actions { display: flex; gap: 8px; text-transform: none; letter-spacing: 0; }
@media (max-width: 860px) {
.rb-keystats { grid-template-columns: repeat(2, 1fr); }
.rb-head { grid-template-columns: 1fr; }
.rb-head .verdict-chip { justify-self: start; }
}
/* ── rb-report tab panels ── */
    .rb-panel { padding: 22px 24px 24px; display: flex; flex-direction: column; gap: 20px; }
.rb-stats-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.rb-stats-cat { display: flex; flex-direction: column; gap: 4px; }
.rb-stats-cat-hd {
      font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 0.12em;
      text-transform: uppercase; color: var(--muted-2); margin-bottom: 6px;
      padding-bottom: 4px; border-bottom: 1px solid var(--border);
    }
.rb-stats-table { width: 100%; border-collapse: collapse; }
.rb-stats-table tr { border-bottom: 1px solid var(--surface-light); }
.rb-stats-table tr:last-child { border-bottom: none; }
.rb-stats-table td { padding: 4px 0; font-size: 13px; vertical-align: middle; }
.rb-stat-lbl { color: var(--muted-1); }
.rb-stat-val { font-family: var(--font-mono); font-weight: 600; text-align: right; padding: 0 8px; white-space: nowrap; }
.rb-stat-per { font-family: var(--font-mono); font-size: 10.5px; color: var(--accent); text-align: right; white-space: nowrap; }
.rb-strength-list, .rb-concern-list {
      list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px;
    }
.rb-strength-list li, .rb-concern-list li {
      font-size: 14px; line-height: 1.55; color: var(--text);
      padding-left: 18px; position: relative;
    }
.rb-strength-list li::before { content: '↑'; position: absolute; left: 0; color: #22c55e; font-size: 12px; }
.rb-concern-list li::before { content: '↓'; position: absolute; left: 0; color: #f97316; font-size: 12px; }
.rb-strength-list .hl, .rb-concern-list .hl {
      color: var(--accent); font-family: var(--font-mono); font-size: 12.5px;
    }
.rb-comp-list { display: flex; flex-direction: column; gap: 16px; }
.rb-comp-item {
      padding: 14px 16px; background: var(--surface-light);
      border: 1px solid var(--border); border-radius: 10px;
    }
.rb-comp-name { font-size: 15px; font-weight: 600; color: var(--text); }
.rb-comp-meta {
      font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.08em;
      color: var(--muted-2); text-transform: uppercase; margin: 4px 0 8px;
    }
.rb-comp-reason { font-size: 13.5px; line-height: 1.55; color: var(--muted-1); margin: 0; }
.rb-trajectory p { font-size: 14.5px; line-height: 1.65; color: var(--text); margin: 0; }
/* ── Scout Report Card ── */
    .scout-report {
      background: var(--surface2);
      border: 1px solid var(--border2);
      border-radius: 20px;
      overflow: hidden;
      margin: 4px 0;
      font-size: .84rem;
    }
.sr-header {
      background: var(--rui-dark);
      border-bottom: 1px solid var(--border2);
      padding: 22px 24px;
    }
.sr-name {
      font-family: var(--font-display);
      font-size: 1.35rem;
      font-weight: 600;
      color: #ffffff;
      letter-spacing: -0.03em;
      margin-bottom: 6px;
    }
.sr-meta { font-family: var(--font-mono); color: var(--teal); font-size: .76rem; letter-spacing: 0.02em; font-weight: 500; }
.sr-section {
      padding: 16px 24px;
      border-bottom: 1px solid var(--border);
    }
.sr-section:last-child { border-bottom: none; }
.sr-section h3 {
      font-family: var(--font-mono);
      font-size: .65rem;
      text-transform: uppercase;
      letter-spacing: .12em;
      color: var(--text-muted);
      margin-bottom: 12px;
      font-weight: 600;
    }
.sr-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(115px, 1fr));
      gap: 8px;
    }
.sr-stat {
      background: var(--surface3);
      border: 1px solid var(--border);
      border-radius: 12px;
      padding: 10px 12px;
      display: flex;
      flex-direction: column;
      gap: 3px;
    }
.sr-label {
      font-family: var(--font-mono);
      font-size: .6rem;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: .08em;
      font-weight: 500;
    }
.sr-value {
      font-family: var(--font-display);
      font-size: .95rem;
      font-weight: 600;
      color: var(--text);
      letter-spacing: -0.01em;
    }
.sr-strengths { color: var(--teal);         margin-bottom: 8px; line-height: 1.65; font-size: .83rem; }
.sr-develop { color: var(--rui-warning);  margin-bottom: 8px; line-height: 1.65; font-size: .83rem; }
.sr-potential { color: var(--text-dim);      line-height: 1.65; font-size: .83rem; }
.sr-value-sub {
      display: block;
      font-family: var(--font-mono);
      font-size: .58rem;
      color: var(--teal);
      font-weight: 500;
      letter-spacing: 0.04em;
      margin-top: 1px;
    }
.sr-footer {
      padding: 16px 24px;
      display: flex;
      align-items: center;
      gap: 16px;
      flex-wrap: wrap;
      background: var(--rui-dark);
      border-top: 1px solid var(--border);
    }
.sr-rating { display: flex; align-items: baseline; gap: 6px; }
.sr-rating-label {
      font-family: var(--font-mono);
      font-size: .62rem;
      color: rgba(255,255,255,0.45);
      text-transform: uppercase;
      letter-spacing: .1em;
      font-weight: 600;
    }
.sr-rating-value {
      font-family: var(--font-display);
      font-size: 2.4rem;
      font-weight: 700;
      color: var(--teal);
      line-height: 1;
      letter-spacing: -0.04em;
    }
.sr-recommendation { color: rgba(255,255,255,0.72); font-size: .78rem; flex: 1; line-height: 1.6; letter-spacing: 0.01em; }
/* ── Player Comparison ── */
    .player-comparison {
      background: var(--surface2);
      border: 1px solid var(--border2);
      border-radius: 20px;
      overflow: hidden;
      padding: 22px 24px;
      margin: 4px 0;
    }
.player-comparison h2 {
      font-family: var(--font-display);
      font-size: .7rem;
      font-weight: 600;
      color: var(--text-muted);
      margin-bottom: 16px;
      text-transform: uppercase;
      letter-spacing: .12em;
    }
.comparison-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
      margin-bottom: 14px;
    }
.comp-col h3 {
      font-family: var(--font-display);
      font-size: .875rem;
      font-weight: 600;
      color: var(--text);
      margin-bottom: 10px;
      padding-bottom: 8px;
      border-bottom: 1px solid var(--border2);
      letter-spacing: -0.01em;
    }
.comp-stat {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 5px 0;
      border-bottom: 1px solid rgba(0,0,0,.06);
      font-size: .77rem;
    }
.comp-stat .label { font-family: var(--font-mono); color: var(--text-dim); letter-spacing: 0.01em; }
.comp-stat .val { font-weight: 600; color: var(--text); }
.comp-stat .val.better { color: var(--teal); }
.verdict {
      background: rgba(37,99,235,.04);
      border: 1px solid rgba(37,99,235,.15);
      border-radius: 12px;
      padding: 12px 16px;
      font-size: .81rem;
      color: var(--text);
      line-height: 1.65;
      letter-spacing: 0.01em;
    }
/* ── Opposition DNA Report ──────────────────────────────────────────────── */
    /* ── Opposition DNA redesign ── */
    .team-dna-report {
      /* v2: remapped to global tokens so the card flips correctly in dark mode
         (was a self-scoped hardcoded-light palette that stayed white in dark). */
      --dr-accent: var(--accent); --dr-accent-soft: var(--accent-dim);
      --dr-bg-sunken: var(--surface2); --dr-bg-dark: var(--ink);
      --dr-border: var(--border); --dr-border-soft: var(--border); --dr-border-dark: var(--border2);
      --dr-text-1: var(--text); --dr-text-2: var(--text-dim); --dr-text-3: var(--text-muted); --dr-text-4: var(--text-muted);
      --dr-good: var(--success); --dr-good-soft: rgba(22,163,74,0.10); --dr-good-border: rgba(22,163,74,0.22);
      --dr-warn: var(--warning); --dr-warn-soft: rgba(249,115,22,0.10); --dr-warn-border: rgba(249,115,22,0.22);
      --dr-bad: var(--danger); --dr-bad-soft: rgba(226,59,74,0.10); --dr-bad-border: rgba(226,59,74,0.22);
      --dr-r-card: var(--r-md); --dr-r-tile: var(--r-sm); --dr-r-pill: var(--r-pill);
      font-family: var(--font);
      -webkit-font-smoothing: antialiased;
      color: var(--dr-text-1);
      display: flex; flex-direction: column; gap: 14px;
    }
/* ── DNA card base ── */
    .team-dna-report .dna-card {
      background: var(--surface); border: 1px solid var(--dr-border);
      border-radius: var(--dr-r-card); padding: 20px 22px;
    }
/* ── Hero (dna-header) — the signature dark element ── */
    .team-dna-report .dna-header {
      background: var(--dr-bg-dark); color: var(--ink-text);
      border-radius: var(--dr-r-card); padding: 28px 32px;
      position: relative; overflow: hidden;
    }
.team-dna-report .dna-header::after {
      content: ""; position: absolute; right: -80px; top: 50%;
      transform: translateY(-50%); width: 400px; height: 400px;
      border-radius: 999px;
      background: radial-gradient(circle, rgba(37,99,235,0.2), transparent 65%);
      pointer-events: none;
    }
.team-dna-report .dna-team-name {
      font-family: var(--font-display); font-weight: 700;
      font-size: 36px; letter-spacing: -0.04em; line-height: 1;
      color: #fff; margin-bottom: 10px; position: relative; z-index: 1;
    }
.team-dna-report .dna-meta {
      font-family: var(--font-mono);
      font-size: 11.5px; color: rgba(255,255,255,0.55);
      letter-spacing: 0.04em; text-transform: uppercase;
      position: relative; z-index: 1;
    }
/* ── Section titles ── */
    .team-dna-report .dna-section-title {
      font-family: var(--font-mono);
      font-size: 10px; color: var(--dr-text-4);
      letter-spacing: 0.1em; text-transform: uppercase;
      font-weight: 600; margin-bottom: 16px;
    }
.team-dna-report .dna-squad-meta { color: var(--dr-text-3); font-weight: 400; letter-spacing: 0; font-size: .65rem; font-family: var(--font); text-transform: none; }
/* ── Fingerprint ── */
    .team-dna-report .dna-fingerprint {
      background: var(--surface); border: 1px solid var(--dr-border);
      border-radius: var(--dr-r-card); padding: 20px 22px;
    }
.team-dna-report .dna-fp-title {
      font-family: var(--font-mono);
      font-size: 10px; color: var(--dr-text-4);
      letter-spacing: 0.1em; text-transform: uppercase;
      font-weight: 600; margin-bottom: 20px;
    }
.team-dna-report .dna-fp-axis { margin-bottom: 6px; }
.team-dna-report .dna-fp-axis:last-child { margin-bottom: 0; }
.team-dna-report .dna-fp-top {
      display: grid; grid-template-columns: 190px 1fr 100px;
      align-items: center; gap: 16px; margin-bottom: 6px;
    }
.team-dna-report .dna-fp-label { font-size: 14px; color: var(--dr-text-1); font-weight: 500; }
.team-dna-report .dna-fp-bar-wrap {
      height: 8px; background: var(--dr-bg-sunken);
      border-radius: 999px; overflow: hidden; position: relative;
      border: 1px solid var(--dr-border-soft);
    }
.team-dna-report .dna-fp-bar {
      position: absolute; inset: 0; background: var(--dr-accent);
      border-radius: 999px; transition: width .4s ease;
    }
.team-dna-report .dna-fp-score {
      font-family: var(--font-mono);
      font-size: 12px; color: var(--dr-text-1); font-weight: 500; text-align: right;
    }
.team-dna-report .dna-fp-badge {
      font-family: var(--font-mono);
      font-size: 9.5px; font-weight: 600; padding: 3px 8px;
      border-radius: var(--dr-r-pill); letter-spacing: 0.08em;
      text-transform: uppercase; border: 1px solid; white-space: nowrap;
      display: inline-block; margin-right: 8px;
    }
.team-dna-report .dna-fp-elite { color: var(--dr-good); background: var(--dr-good-soft); border-color: var(--dr-good-border); }
.team-dna-report .dna-fp-high { color: var(--dr-accent); background: var(--dr-accent-soft); border-color: rgba(37,99,235,0.18); }
.team-dna-report .dna-fp-medium { color: var(--dr-warn); background: var(--dr-warn-soft); border-color: var(--dr-warn-border); }
.team-dna-report .dna-fp-low { color: var(--dr-bad); background: var(--dr-bad-soft); border-color: var(--dr-bad-border); }
.team-dna-report .dna-fp-evidence {
      display: flex; flex-wrap: wrap; gap: 6px;
      padding-left: 206px; margin-bottom: 14px;
    }
.team-dna-report .dna-fp-axis:last-child .dna-fp-evidence { margin-bottom: 0; }
.team-dna-report .dna-ev-chip {
      font-family: var(--font-mono);
      font-size: 10.5px; color: var(--dr-text-3);
      background: var(--dr-bg-sunken); border: 1px solid var(--dr-border-soft);
      border-radius: 6px; padding: 2px 9px; white-space: nowrap;
    }
/* ── Performance stats ── */
    .team-dna-report .dna-perf-section {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
    }
.team-dna-report .dna-perf-col {
      background: var(--surface); border: 1px solid var(--dr-border);
      border-radius: var(--dr-r-card); padding: 20px 18px;
    }
.team-dna-report .dna-perf-heading {
      font-family: var(--font-display); font-weight: 700;
      font-size: 13px; letter-spacing: -0.01em; color: var(--dr-text-1);
      margin-bottom: 12px;
      display: flex; align-items: center; gap: 8px;
    }
.team-dna-report .dna-perf-heading::before {
      content: ""; width: 8px; height: 8px; border-radius: 2px; flex-shrink: 0;
    }
.team-dna-report .dna-perf-col:nth-child(1) .dna-perf-heading::before { background: #2563EB; }
.team-dna-report .dna-perf-col:nth-child(2) .dna-perf-heading::before { background: #0a0a0a; }
.team-dna-report .dna-perf-col:nth-child(3) .dna-perf-heading::before { background: #7c3aed; }
.team-dna-report .dna-perf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.team-dna-report .dna-perf-tile {
      background: var(--surface); border: 1px solid var(--dr-border);
      border-radius: var(--dr-r-tile); padding: 12px 14px;
      display: flex; flex-direction: column; gap: 4px; min-width: 0;
    }
.team-dna-report .dna-tile-hero { background: var(--dr-bg-sunken); border-color: var(--dr-border-soft); }
.team-dna-report .dna-tile-full { grid-column: span 2; }
.team-dna-report .dna-tile-label {
      font-family: var(--font-mono);
      font-size: 9.5px; color: var(--dr-text-4);
      letter-spacing: 0.08em; text-transform: uppercase;
    }
.team-dna-report .dna-tile-val {
      font-family: var(--font-display); font-weight: 700;
      font-size: 22px; letter-spacing: -0.035em; line-height: 1.05; color: var(--dr-text-1);
    }
.team-dna-report .dna-tile-sub {
      font-family: var(--font-mono);
      font-size: 10.5px; color: var(--dr-text-3); margin-top: auto;
    }
/* ── Key reads ── */
    .team-dna-report .dna-key-reads {
      background: var(--surface); border: 1px solid var(--dr-border);
      border-radius: var(--dr-r-card); padding: 20px 22px;
    }
.team-dna-report .dna-key-list { display: flex; flex-direction: column; gap: 14px; }
.team-dna-report .dna-key-item { display: grid; grid-template-columns: 26px 1fr; gap: 12px; align-items: start; }
.team-dna-report .dna-key-num {
      font-family: var(--font-mono); font-size: 10px;
      color: var(--dr-accent); border: 1px solid rgba(37,99,235,0.3);
      background: var(--dr-accent-soft); border-radius: 6px;
      width: 22px; height: 22px; display: inline-flex; align-items: center;
      justify-content: center; font-weight: 600; flex-shrink: 0;
    }
.team-dna-report .dna-key-text { font-size: 13px; line-height: 1.55; color: var(--dr-text-1); }
.team-dna-report .dna-key-text strong { font-weight: 600; }
.team-dna-report .dna-key-muted { color: var(--dr-text-3); }
/* ── Form ── */
    .team-dna-report .dna-form-curve {
      background: var(--surface); border: 1px solid var(--dr-border);
      border-radius: var(--dr-r-card); padding: 20px 22px;
    }
.team-dna-report .dna-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.team-dna-report .dna-chip {
      width: 28px; height: 28px; border-radius: 7px;
      display: inline-flex; align-items: center; justify-content: center;
      font-family: var(--font-mono);
      font-weight: 600; font-size: 12px; flex-shrink: 0;
    }
.team-dna-report .dna-W { background: var(--dr-good-soft); color: var(--dr-good); border: 1px solid var(--dr-good-border); }
.team-dna-report .dna-D { background: var(--dr-warn-soft); color: var(--dr-warn); border: 1px solid var(--dr-warn-border); }
.team-dna-report .dna-L { background: var(--dr-bad-soft); color: var(--dr-bad); border: 1px solid var(--dr-bad-border); }
.team-dna-report .dna-fixture-table { width: 100%; border-collapse: collapse; }
.team-dna-report .dna-fixture-table td { padding: 9px 4px; border-bottom: 1px solid var(--dr-border-soft); vertical-align: middle; font-size: 13px; }
.team-dna-report .dna-fixture-table tr:last-child td { border-bottom: 0; }
.team-dna-report .dna-fix-match { color: var(--dr-text-1); font-weight: 500; padding-left: 8px; }
.team-dna-report .dna-fix-venue {
      font-family: var(--font-mono);
      color: var(--dr-text-3); font-size: 10.5px; width: 40px;
      text-align: right; text-transform: uppercase; letter-spacing: 0.04em;
    }
.team-dna-report .dna-fix-date {
      font-family: var(--font-mono);
      color: var(--dr-text-3); font-size: 10.5px; width: 56px;
      text-align: right; text-transform: uppercase; letter-spacing: 0.04em;
    }
/* ── Home / Away ── */
    .team-dna-report .dna-home-away {
      display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
    }
.team-dna-report .dna-ha-block {
      background: var(--surface); border: 1px solid var(--dr-border);
      border-radius: var(--dr-r-card); padding: 18px 20px;
      display: flex; flex-direction: column; gap: 6px;
    }
.team-dna-report .dna-ha-label {
      font-family: var(--font-mono);
      font-size: 10px; color: var(--dr-text-4);
      letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600;
    }
.team-dna-report .dna-ha-record {
      font-family: var(--font-display); font-weight: 700;
      font-size: 20px; letter-spacing: -0.02em; color: var(--dr-text-1);
    }
.team-dna-report .dna-ha-gf {
      font-family: var(--font-mono);
      font-size: 10.5px; color: var(--dr-text-3); margin-top: 2px;
    }
/* ── Squad ── */
    .team-dna-report .dna-squad-gaps {
      background: var(--surface); border: 1px solid var(--dr-border);
      border-radius: var(--dr-r-card); padding: 20px 22px;
    }
.team-dna-report .dna-squad-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.team-dna-report .dna-bucket {
      background: var(--dr-bg-sunken); border: 1px solid var(--dr-border-soft);
      border-radius: var(--dr-r-tile); padding: 16px 18px;
      display: flex; flex-direction: column; gap: 6px;
    }
.team-dna-report .dna-bucket-pos {
      font-family: var(--font-mono);
      font-size: 11px; font-weight: 600; color: var(--dr-accent); letter-spacing: 0.08em;
    }
.team-dna-report .dna-bucket-count {
      font-family: var(--font-display); font-weight: 700;
      font-size: 28px; letter-spacing: -0.04em; line-height: 1; color: var(--dr-text-1);
    }
.team-dna-report .dna-bucket-age {
      font-family: var(--font-mono);
      font-size: 10.5px; color: var(--dr-text-3);
    }
.team-dna-report .dna-flag {
      font-family: var(--font-mono);
      font-size: 9px; font-weight: 600; padding: 3px 8px;
      border-radius: var(--dr-r-pill); letter-spacing: 0.08em;
      text-transform: uppercase; border: 1px solid; display: inline-block; width: fit-content;
    }
.team-dna-report .dna-flag-strong { color: var(--dr-good); background: var(--dr-good-soft); border-color: var(--dr-good-border); }
.team-dna-report .dna-flag-thin { color: var(--dr-bad); background: var(--dr-bad-soft); border-color: var(--dr-bad-border); }
/* ── Tactical analysis ── */
    .team-dna-report .dna-analysis {
      background: var(--surface); border: 1px solid var(--dr-border);
      border-radius: var(--dr-r-card); padding: 20px 22px;
    }
.team-dna-report .dna-analysis-text {
      font-size: 14px; line-height: 1.75; color: var(--dr-text-2); margin-top: 4px;
    }
.team-dna-report .dna-analysis-text strong {
      color: var(--dr-text-1); font-weight: 600;
      background: linear-gradient(transparent 65%, rgba(37,99,235,0.12) 65%);
      padding: 0 1px;
    }
.dna-query-bar {
      display: grid; grid-template-columns: 1fr auto; gap: 8px;
      background: var(--surface); border: 1px solid var(--border);
      border-radius: var(--r-lg); padding: 8px;
      align-items: stretch; position: relative;
    }
.dna-query-field {
      display: flex; align-items: center; gap: 12px;
      padding: 8px 14px; border-radius: var(--r-sm);
      transition: background .15s; cursor: text; min-width: 0;
    }
.dna-query-field:hover { background: var(--surface2); }
.dna-query-field:focus-within { background: var(--surface2); box-shadow: inset 0 0 0 1.5px var(--accent); }
.dna-search-icon { color: var(--text-muted); flex-shrink: 0; }
.dna-query-field-col { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.dna-query-label { font-family: var(--font-mono); font-size: 9.5px; color: var(--text-muted); letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 1px; }
.dna-query-input { border: 0; background: transparent; padding: 0; outline: none; font-family: var(--font); font-size: 15px; color: var(--text); width: 100%; }
.dna-query-input::placeholder { color: var(--text-muted); }
.dna-query-cta {
      background: var(--ink); color: var(--ink-text); border: 0; border-radius: var(--r-sm);
      padding: 0 22px; font-family: var(--font); font-size: 14px; font-weight: 600;
      cursor: pointer; display: inline-flex; align-items: center; gap: 8px;
      transition: background .12s; white-space: nowrap;
    }
.dna-query-cta:hover { background: #1a1a1a; }
.dna-query-cta:disabled { background: #737373; cursor: default; }
.dna-query-helpers { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; align-items: center; padding: 0 2px; }
.dna-helper-label { font-family: var(--font-mono); font-size: 10px; color: #a3a3a3; letter-spacing: 0.06em; text-transform: uppercase; margin-right: 4px; }
.dna-recent-chip {
      background: #fff; border: 1px solid #e7e5e4; border-radius: 9999px;
      padding: 5px 12px; font-size: 12px; color: #404040;
      cursor: pointer; transition: border-color .12s, color .12s;
      display: inline-flex; align-items: center; gap: 6px; font-family: var(--font);
    }
.dna-recent-chip:hover { border-color: #d6d3d1; color: #0a0a0a; }
.dna-recent-chip.active { background: #000; color: #fff; border-color: #000; }
.dna-chip-crest { width: 14px; height: 14px; border-radius: 3px; color: #fff; font-family: var(--font-mono); font-size: 8px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
/* Dropdown positioning inside query bar */
    .dna-query-bar #dna-team-dropdown { position: absolute; left: 8px; right: 130px; top: calc(100% + 6px); z-index: 200; }
@media (max-width: 900px) {
.team-dna-report .dna-perf-section { grid-template-columns: 1fr; }
.team-dna-report .dna-home-away { grid-template-columns: 1fr; }
.team-dna-report .dna-squad-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
.team-dna-report .dna-fp-top { grid-template-columns: 130px 1fr 90px; }
.team-dna-report .dna-fp-evidence { padding-left: 0; }
}
@media (max-width: 600px) {
.sr-grid { grid-template-columns: repeat(2, 1fr); }
.comparison-grid { grid-template-columns: 1fr; }
}
.pill-W, .pill-D, .pill-L {
      width: 18px; height: 18px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: .6rem; font-weight: 700; color: #fff;
    }
.pill-W { background: #16a34a; }
.pill-D { background: #d97706; }
.pill-L { background: #dc2626; }
.rb-topbar { display: flex; align-items: center; gap: 12px; padding: 12px 24px; background: var(--surface); border-bottom: 1px solid var(--border2); flex-wrap: wrap; position: sticky; top: 0; z-index: 10; }
.rb-back-btn { font-size: .78rem; padding: 6px 13px; border-radius: 8px; border: 1px solid var(--border2); background: var(--surface2); color: var(--text-muted); cursor: pointer; white-space: nowrap; }
.rb-back-btn:hover { color: var(--text); border-color: var(--accent); }
.rb-scout-info { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; }
.rb-input { font-size: .78rem; padding: 5px 10px; border-radius: 7px; border: 1px solid var(--border2); background: var(--surface2); color: var(--text); width: 140px; outline: none; }
.rb-input:focus { border-color: var(--accent); }
.rb-date { font-size: .72rem; color: var(--text-muted); font-family: var(--mono); white-space: nowrap; }
.rb-export-btn { padding: 7px 16px; font-size: .78rem; font-weight: 700; background: var(--accent); color: #fff; border: none; border-radius: 8px; cursor: pointer; white-space: nowrap; }
.rb-export-btn:hover { opacity: .88; }
#rb-panel .rb-body { display: grid; grid-template-columns: 180px 1fr; gap: 0; flex: 1; min-height: 0; }
@media (max-width: 700px) {
#rb-panel .rb-body { grid-template-columns: 1fr; }
}
.rb-controls { padding: 20px 14px; border-right: 1px solid var(--border2); background: var(--surface); position: sticky; top: 57px; max-height: calc(100vh - 57px); overflow-y: auto; }
.rb-controls-title { font-size: .68rem; font-family: var(--mono); text-transform: uppercase; letter-spacing: .07em; color: var(--text-muted); margin-bottom: 12px; }
.rb-toggle-row { display: flex; align-items: center; gap: 7px; margin-bottom: 7px; cursor: pointer; }
.rb-toggle-row input[type=checkbox] { accent-color: var(--accent); cursor: pointer; }
.rb-toggle-label { font-size: .78rem; color: var(--text); cursor: pointer; }
.rb-canvas { padding: 28px 24px; overflow-y: auto; background: var(--bg); }
.rb-obs-area { margin-top: 8px; }
.rb-obs-field { font-size: .78rem; color: var(--text); line-height: 1.55; padding: 7px 10px; border-radius: 8px; border: 1px dashed transparent; min-height: 32px; transition: border-color .15s; }
.rb-obs-field:hover { border-color: var(--border2); }
.rb-obs-field:focus { border-color: var(--accent); border-style: solid; }
.rb-obs-label { font-size: .62rem; font-family: var(--mono); text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted); margin-bottom: 3px; }
.rb-meta-row { display: flex; align-items: center; gap: 12px; margin-top: 14px; padding: 10px 12px; background: var(--surface2); border-radius: 10px; flex-wrap: wrap; }
.rb-meta-field-wrap { display: flex; flex-direction: column; gap: 2px; }
.rb-meta-label { font-size: .62rem; font-family: var(--mono); text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted); }
.rb-rating-input { width: 52px; font-size: 1.4rem; font-weight: 700; color: var(--accent); background: none; border: none; border-bottom: 1px solid var(--border2); outline: none; padding: 2px 0; font-family: var(--display); text-align: center; }
.rb-rating-input:focus { border-color: var(--accent); }
.rb-rec-field { flex: 1; min-width: 120px; font-size: .82rem; color: var(--text); padding: 4px 6px; border-radius: 6px; border: 1px dashed transparent; }
.rb-rec-field:hover { border-color: var(--border2); }
.rb-rec-field:focus { border-color: var(--accent); border-style: solid; }
.rb-custom-score-badge { display: inline-flex; align-items: center; gap: 6px; background: var(--surface2); border: 1px solid var(--border2); border-radius: 20px; padding: 3px 12px; font-size: .8rem; margin-top: 6px; }
.rb-custom-score-val { color: var(--accent); font-weight: 700; font-family: var(--mono); }
/* ═══════════════════════════════════════════════════════════════
       v2 TYPE NORMALIZATION — one section-eyebrow treatment platform-wide.
       Same element (small label above a section/card) was rendered at 5+
       sizes, 3 weights, and 2 font families across screens. This unifies the
       metrics (family/size/weight/spacing) while preserving each rule's color.
       Appended last so it wins on source order (CLAUDE.md pitfall).
       ═══════════════════════════════════════════════════════════════ */
    .section-title,
    .ns-section-eyebrow, .ns-form-hero-eyebrow, .ns-results-eyebrow, .ns-card-eyebrow,
    .dash-section-title, .dash-suggest-label,
    .workspace-col-title,
    .sl-group-label, .sl-summary-label,
    .ntr-squad-title, .ntr-section h3, .ntr-summary h3,
    .ta-suggest-label,
    .li-section-title, .li-card-title,
    .pulse-col-title {
      font-family: var(--font-mono);
      font-size: var(--fs-label);
      font-weight: 600;
      letter-spacing: .09em;
      text-transform: uppercase;
    }
/* v2 TYPE NORMALIZATION — micro stat/field labels (one treatment). */
    .ns-stat-label, .ns-bstat-label, .rb-keystats .k .lbl, .sr-label,
    .sl-stat-label, .pd-label, .li-metric-label, .dna-tile-label {
      font-family: var(--font-mono);
      font-size: var(--fs-microlabel);
      font-weight: 600;
      letter-spacing: .07em;
      text-transform: uppercase;
    }
/* ───────────────────────────────────────────────────────────────
       6B · TYPOGRAPHY NORMALISATION (append — source-order wins)
       Keep the vibe (WC screen is the reference); collapse the drift:
       loud display sizes → the 5-step Nunito scale at near-equivalent
       sizes, buttons → one token, DNA px-island body → the rem scale.
       ─────────────────────────────────────────────────────────────── */

    /* Display heroes → 5-step scale (near-equivalent, minimal visual shift) */
    .rb-head .name,
    .team-dna-report .dna-team-name,
    .sr-rating-value,
    .ns-results-name { font-size: var(--fs-d1); }
.rb-head .verdict-chip .val,
    .team-dna-report .dna-perf-big { font-size: var(--fs-d2); }
.ntr-title,
    .sr-name { font-size: var(--fs-d3); }
/* Buttons → one size token */
    .pd-btn, .pd-mode-btn, .li-refresh, .li-sort, .li-load,
    .pcb-hf-add, .wc-subt, .rb-back-btn, .rb-export-btn { font-size: var(--fs-btn); }
/* DNA px-island body text → rem scale (was 14/13px) */
    .team-dna-report .dna-fp-label { font-size: var(--fs-body); }
.team-dna-report .dna-key-text,
    .team-dna-report .dna-fixture-table td { font-size: var(--fs-body-sm); }
@media (max-width: 640px) {
.team-analysis-report .ta-squad-grid,
      .team-analysis-report .ta-sp-tiles,
      .team-dna-report .dna-squad-grid,
      .wc-groups-grid, .sl-card-grid { grid-template-columns: 1fr !important; }
}

/* ── terminal panels (Home) ── */
.term-panel {
  grid-column: span 4; background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-sm); display: flex; flex-direction: column; overflow: hidden;
  min-width: 0;
}
.term-panel.wide { grid-column: span 6; }
.term-panel.w8 { grid-column: span 8; }
.term-panel.full { grid-column: span 12; }
@media (max-width: 1180px) {
.term-panel { grid-column: span 6; }
.term-panel.wide, .term-panel.w8, .term-panel.full { grid-column: span 12; }
}
@media (max-width: 720px) {
.term-panel, .term-panel.wide, .term-panel.w8, .term-panel.full { grid-column: span 12; }
}
.term-hd {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 7px 10px; border-bottom: 1px solid var(--border); background: var(--surface2);
}
.term-hd .t {
  font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase; color: var(--text-dim);
  display: inline-flex; align-items: center; gap: 6px;
}
.term-hd .t .lv { width: 5px; height: 5px; border-radius: 50%; background: var(--live); }
.term-hd .code {
  font-family: var(--font-mono); font-size: 9px; letter-spacing: .05em; color: var(--text-muted);
  border: 1px solid var(--border); border-radius: 3px; padding: 1px 5px;
}
.term-note {
  padding: 5px 10px; font-size: 9px; color: var(--text-muted);
  border-bottom: 1px solid var(--border); background: var(--surface2); line-height: 1.45;
}
.trow {
  display: flex; align-items: center; gap: 8px; padding: 5px 10px;
  font-size: var(--fs-body-sm); border-bottom: 1px solid var(--border);
  cursor: pointer; transition: background .1s; min-width: 0;
}
.trow:last-child { border-bottom: none; }
.trow:hover { background: var(--accent-dim); }
.trow .rk { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--text-muted); width: 13px; flex-shrink: 0; }
.trow .nm { flex: 1 1 auto; min-width: 46px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.trow .nm small { color: var(--text-muted); }
.trow .val { font-family: var(--font-mono); font-size: var(--fs-body-sm); font-weight: 500; flex-shrink: 0; }
.trow .php { width: 22px; height: 22px; border-radius: 50%; object-fit: cover; object-position: top; background: var(--surface3); flex-shrink: 0; display: inline-block; }
.tscore { font-family: var(--font-mono); font-size: var(--fs-body-sm); font-weight: 500; color: var(--accent); flex-shrink: 0; }
/* board rows: position chip */
.trow .pos {
  font-family: var(--font-mono); font-size: 8px; font-weight: 500; letter-spacing: .04em;
  color: var(--text-muted); border: 1px solid var(--border); border-radius: 3px;
  padding: 1px 4px; flex-shrink: 0; width: 30px; text-align: center;
}
.trow .val.dn { color: var(--danger); }
/* ── Terminal loading skeleton ──────────────────────────────────────────────
   Panel-shaped placeholder used by _v3TermSkeleton() while the Leagues
   terminal's fetches are in flight. It replaces the old behaviour where the
   legacy league picker flashed for the whole cold load. Row metrics match
   .trow / .trow .php so the layout does not shift when data lands. */
.term-skel .sk-row { padding: 6px 10px; }
/* .term-hd shares --surface2 with .sk, so the title bar needs its own tint. */
.term-skel .term-hd .sk { background: color-mix(in srgb, var(--text) 11%, transparent); }
/* ── Home skeleton ────────────────────────────────────────────────────────
   Shaped like .term-panel so the real content swaps in without the layout
   jumping. Shown only on a first-ever visit — after that the stale-while-
   revalidate cache paints real data immediately. */
.sk-panel .term-hd { border-bottom: 1px solid var(--border); }
/* ── Home panel rows ── */
.trow.tmv { cursor: pointer; }
/* .term-panel carries `grid-column: span 4` for the terminal's four-column
   grid. Left alone it makes each panel span this two-column grid as well, so
   the pair stacks instead of sitting side by side. */
.hw-grid > .term-panel { grid-column: auto; }
/* ═══════════════════════════════════════════════════════════════════════════
   Indexes — the tester's own panels, and the builder that makes them.
   Appended at the END of the file on purpose: v3 rules must outrank the
   inherited v2 ones by source order rather than by !important.
   ═══════════════════════════════════════════════════════════════════════════ */

/* A panel the user made, marked by a spectrum edge rather than a badge: it reads
   as theirs at a glance without adding another label to a dense grid. */
.term-panel.ix-panel {
  border-left: 2px solid var(--accent);
}
.term-panel.ix-panel .term-hd .t { color: var(--text); }
.term-hd .code.ix-code { cursor: pointer; }
.term-hd .code.ix-code:hover { color: var(--accent); border-color: var(--accent); }
/* Column labels. Right-aligned to sit over the numbers, and the score label
   carries the accent its own column uses so the two are unmistakably paired. */
.ix-cols {
  display: flex; justify-content: flex-end; gap: 12px; flex-wrap: wrap;
  padding: 4px 10px 5px;
  font-family: var(--font-mono); font-size: 9px; letter-spacing: .06em;
  text-transform: uppercase; border-bottom: 1px solid var(--border);
}
.ix-col-s { color: var(--accent); }
.ix-col-v { color: var(--text-muted); }
.ix-col-ok { color: var(--success); }
/* The strip sits under a sub-heading inside a panel that already has a note, so
   it must not add a second heavy rule across the panel. */
.tsub + .ix-cols { border-bottom-color: var(--border); padding-top: 2px; }
.ix-hd-r { display: inline-flex; align-items: center; gap: 6px; }
.ix-edit {
  padding: 1px 6px; font-family: var(--font-mono); font-size: 9px; letter-spacing: .05em;
  text-transform: uppercase; color: var(--text-muted); background: none;
  border: 1px solid var(--border); border-radius: 3px; cursor: pointer;
}
.ix-edit:hover { color: var(--accent); border-color: var(--accent); }
.term-panel.ix-panel .term-hd .code { color: var(--accent); border-color: var(--accent); }
/* The standing "one more" tile, at the end of the tester's own panels. */
.term-panel.ix-new {
  border-style: dashed; background: none; cursor: pointer;
  align-items: center; justify-content: center;
  /* Sit at the top of the grid cell rather than stretching to match the height
     of the index beside it, which turns a prompt into a large empty box. */
  align-self: start;
}
.term-panel.ix-new:hover { border-color: var(--accent); background: var(--accent-dim); }
/* A panel that must begin a row. Used by the scout board, which leads a line of
   three: the board, the week's goals and the week's best performances. Without
   it that line starts wherever the index panels above it happen to end, and the
   trio splits across two rows for any tester with the wrong number of indexes
   saved. Only the start is pinned, so the responsive span rules still apply and
   the trio folds to two-up and then one-up on narrower screens. */
.term-panel.row-start { grid-column: 1 / span 4; }
@media (max-width: 1180px) {
.term-panel.row-start { grid-column: 1 / span 6; }
}
@media (max-width: 720px) {
.term-panel.row-start { grid-column: 1 / span 12; }
}
