/* Champions League player track records — addendum to nba_players.css.
   The npp-* layout AND accent are reused as-is so every player board on
   the site reads as one product. Scoped to .npp-page--ucl. */

.npp-page--ucl .npp-avatar {
  background: linear-gradient(140deg, #2563eb 0%, #1e293b 80%);
}

/* The NBA grid is `minmax(260px, 340px) 1fr` because its narrow first
   column holds a radar chart. Ours holds a five-column model-vs-baseline
   table, which gets clipped at 340px, so the two cards share the row more
   evenly here. The scoped mobile rule has to be restated: a
   `.npp-page--ucl .npp-grid` selector outranks the unscoped media query
   in nba_players.css, so without this the page would keep two columns on
   a phone. */
.npp-page--ucl .npp-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
@media (max-width: 900px) {
  .npp-page--ucl .npp-grid { grid-template-columns: 1fr; }
}

/* Mobile: a grid item defaults to min-width:auto, so a child that cannot
   shrink below its min-content widens the track past the viewport and
   makes the whole PAGE scroll sideways. Wide tables scroll inside their
   own container, never the body. */
.npp-page--ucl .npp-grid > * { min-width: 0; }
.npp-page--ucl .npp-card { max-width: 100%; }
.npp-page--ucl .npp-games-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.npp-page--ucl .npp-chart-wrap { max-width: 100%; overflow: hidden; }

/* NEVER use overflow-wrap:anywhere here: it breaks INSIDE numbers, so
   "+17.6" renders as "+17." / "6" and reads as two different figures.
   Numeric cells stay on one line and the table scrolls in its own box. */
.npp-page--ucl .npp-naive-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.npp-page--ucl .npp-naive-table th,
.npp-page--ucl .npp-naive-table td { white-space: nowrap; }
.npp-page--ucl .npp-naive-table th:first-child,
.npp-page--ucl .npp-naive-table td:first-child { white-space: normal; }

/* The uncertainty that always travels with the score. Deliberately quiet
   (it is a caveat, not a headline) but never hidden: the skill is a ratio
   of small numbers and is far noisier for players who rarely shoot. */
.npp-page--ucl .npp-se {
  color: #94a3b8;
  font-size: 0.82em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* A row whose score is inside one standard error of zero. The number is
   still published, it just stops looking like a ranking position. */
.npp-page--ucl .npp-skill-flat { color: #cbd5e1; }

.npp-page--ucl .npp-role-tag {
  display: inline-block;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-size: 0.78rem;
  background: rgba(148, 163, 184, 0.14);
  color: #cbd5e1;
  white-space: nowrap;
}
.npp-page--ucl .npp-role-GOALKEEPER { background: rgba(250, 204, 21, 0.16); color: #fde68a; }
.npp-page--ucl .npp-role-DEFENDER { background: rgba(56, 189, 248, 0.16); color: #bae6fd; }
.npp-page--ucl .npp-role-MIDFIELDER { background: rgba(74, 222, 128, 0.16); color: #bbf7d0; }
.npp-page--ucl .npp-role-FORWARD { background: rgba(248, 113, 113, 0.16); color: #fecaca; }

/* ── predicted vs actual (mig 058) ───────────────────────────────────────
 *
 * Chart.js grouped bars (the NBA profile's house style), one canvas per stat
 * family. The wrapper needs a fixed height because the charts run with
 * maintainAspectRatio: false, same as .npp-chart-wrap next door.
 */
.npp-page--ucl .npp-shape-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.4rem;
}

/* A goalkeeper has ONE stat family (saves), so his chart would stretch the
   full card width. Cap it. */
.npp-page--ucl .npp-shape-grid > :only-child { max-width: 640px; }

.npp-page--ucl .npp-shape-title {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  color: #e2e8f0;
}

.npp-page--ucl .npp-shape-subtitle {
  margin: 0 0 0.6rem;
  font-size: 0.85rem;
  color: #cbd5e1;
}

.npp-page--ucl .npp-shape-wrap { height: 230px; }

.npp-page--ucl .npp-shape-bands {
  margin-top: 1.5rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(148, 163, 184, 0.16);
}

/* Outfield players carry the radar instead of the season-totals bars, so
   the bands stand alone in their card: no divider, and the band title is
   the card title. */
.npp-page--ucl .npp-shape-bands--solo {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.npp-page--ucl .npp-shape-bands--solo > .npp-shape-title {
  font-size: 1.1rem;
  margin-bottom: 0.3rem;
}

/* Goalkeepers have no radar, so the profile grid collapses to one column. */
.npp-page--ucl .npp-grid--single { grid-template-columns: 1fr; }

@media (max-width: 560px) {
  .npp-page--ucl .npp-shape-wrap { height: 190px; }
}
