/* ==========================================================================
   FULL TOURNAMENT REPORT - PAGE-WIDE STYLES
   ========================================================================== */
.page-watermark {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-30deg);
  width: 600px;
  height: 600px;
  opacity: 0.09;
  pointer-events: none;
  z-index: 0;
}

/* Positioning context for watermark */
.report-page-body {
  position: relative;
  overflow: hidden;
}

/* ==========================================================================
   PAGE 1: TOURNAMENT SUMMARY
   ========================================================================== */
.page-tournament-summary {
  padding: 36px 48px;
  min-height: calc(900px * 1.414); /* A4 proportional min-height */
}

.trn-hero {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 2px solid rgba(189, 210, 253, 0.15);
  z-index: 1;
  position: relative;
}

.trn-hero-left {
  flex: 1;
}

.trn-eyebrow {
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 3px;
  color: var(--accent-cyan);
  text-transform: uppercase;
  display: block;
  margin-bottom: 8px;
}

.trn-title {
  font-family: "Outfit", sans-serif;
  font-size: 36px;
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 12px;
  letter-spacing: -0.5px;
}

.trn-meta-strip {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.trn-meta-item {
  font-size: 11px;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 4px;
}

.trn-meta-icon {
  color: var(--accent-cyan);
}

.trn-stats-strip {
  display: flex;
  gap: 8px;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.trn-stat-pill {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 8px 14px;
  border-radius: 8px;
  text-align: center;
  min-width: 56px;
}

.trn-stat-pill.accent {
  border-color: rgba(90, 124, 237, 0.3);
  background: rgba(90, 124, 237, 0.05);
}

.trn-stat-num {
  display: block;
  font-family: "Roboto Mono", monospace;
  font-size: 20px;
  font-weight: 700;
  color: var(--text-high);
}

.trn-stat-pill.accent .trn-stat-num {
  color: var(--accent-neon);
}

.trn-stat-lbl {
  font-size: 8px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.trn-hero-right {
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.trn-hero-badge {
  background: linear-gradient(
    135deg,
    rgba(189, 210, 253, 0.1),
    rgba(90, 124, 237, 0.1)
  );
  border: 1px solid rgba(189, 210, 253, 0.3);
  padding: 16px 20px;
  border-radius: 12px;
  text-align: center;
}

.trn-badge-text {
  display: block;
  font-family: "Outfit", sans-serif;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 2px;
  color: var(--accent-cyan);
  text-transform: uppercase;
  line-height: 1.4;
}

.trn-section {
  margin-bottom: 20px;
  position: relative;
  z-index: 1;
}

.trn-section-title {
  font-family: "Outfit", sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.trn-section-icon {
  color: var(--accent-cyan);
}

.trn-highlights-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}

.trn-highlight-card {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 12px;
  border-radius: 8px;
}

.trn-highlight-card.champions {
  border-color: rgba(255, 215, 0, 0.4);
  background: linear-gradient(135deg, rgba(255, 215, 0, 0.12), var(--bg-panel));
}

.trn-highlight-card.runner-up {
  border-color: rgba(192, 192, 192, 0.35);
  background: linear-gradient(135deg, rgba(192, 192, 192, 0.08), var(--bg-panel));
}

.trn-highlight-card.second-runner-up {
  border-color: rgba(205, 127, 50, 0.35);
  background: linear-gradient(135deg, rgba(205, 127, 50, 0.08), var(--bg-panel));
}

.trn-highlight-card.top-scorer {
  border-color: rgba(0, 229, 255, 0.3);
  background: linear-gradient(135deg, rgba(0, 229, 255, 0.06), var(--bg-panel));
}

.trn-highlight-card.best-player {
  border-color: rgba(163, 71, 255, 0.3);
  background: linear-gradient(135deg, rgba(163, 71, 255, 0.06), var(--bg-panel));
}

.trn-highlight-card.best-keeper {
  border-color: rgba(0, 255, 102, 0.3);
  background: linear-gradient(135deg, rgba(0, 255, 102, 0.06), var(--bg-panel));
}

.trn-hl-label {
  display: block;
  font-family: "Outfit", sans-serif;
  font-size: 8px;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 1.5px;
  margin-bottom: 4px;
}

.trn-hl-name {
  display: block;
  font-family: "Outfit", sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-high);
  margin-bottom: 2px;
  line-height: 1.3;
}

.trn-hl-detail {
  font-size: 9px;
  color: var(--accent-cyan);
}

.trn-journey-flow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 12px 16px;
  border-radius: 12px;
}

.trn-journey-stage {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 4px;
  min-width: 80px;
}

.trn-stage-node {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--grid-line);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Outfit", sans-serif;
  font-weight: 800;
  font-size: 11px;
  color: var(--text-muted);
}

.trn-stage-node.final {
  background: linear-gradient(135deg, #d4af37, #ffd700);
  color: #000;
}

.trn-stage-info {
  display: flex;
  flex-direction: column;
}

.trn-stage-name {
  font-family: "Outfit", sans-serif;
  font-size: 9px;
  font-weight: 700;
  color: var(--text-high);
}

.trn-stage-detail {
  font-size: 7px;
  color: var(--text-muted);
}

.trn-stage-arrow {
  width: 30px;
  height: 1px;
  background: var(--grid-line);
  position: relative;
}

.trn-stage-arrow::after {
  content: ">";
  position: absolute;
  right: -2px;
  top: -7px;
  color: var(--grid-line);
  font-size: 12px;
}

/* ── Group Division Grid ── */
.trn-groups-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

.trn-group-card {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  border-radius: 8px;
  overflow: hidden;
}

.trn-group-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 10px;
  background: rgba(90, 124, 237, 0.06);
  border-bottom: 1px solid var(--grid-line);
}

.trn-group-name {
  font-family: "Outfit", sans-serif;
  font-size: 9px;
  font-weight: 800;
  color: var(--accent-brand);
  letter-spacing: 0.5px;
}

.trn-group-count {
  font-size: 7px;
  color: var(--text-muted);
}

.trn-group-schools {
  display: flex;
  flex-direction: column;
}

.trn-group-school {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.03);
}

.trn-group-school:last-child {
  border-bottom: none;
}

.trn-group-school.winner {
  background: linear-gradient(135deg, rgba(255, 215, 0, 0.08), transparent);
}
.trn-group-school.runner {
  background: linear-gradient(135deg, rgba(192, 192, 192, 0.06), transparent);
}

.trn-group-rank {
  width: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.trn-group-pos {
  font-family: "Outfit", sans-serif;
  font-size: 9px;
  font-weight: 700;
  color: var(--text-muted);
}

.trn-group-crest {
  width: 24px;
  height: 24px;
  border-radius: 4px;
  background: rgba(90, 124, 237, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}

.trn-group-logo {
  width: 20px;
  height: 20px;
  object-fit: contain;
}

.trn-group-initials {
  font-family: "Outfit", sans-serif;
  font-size: 8px;
  font-weight: 800;
  color: var(--accent-brand);
}

.trn-group-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.trn-group-school-name {
  font-size: 8px;
  font-weight: 600;
  color: var(--text-high);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.trn-group-school-stats {
  font-family: "Roboto Mono", monospace;
  font-size: 6.5px;
  color: var(--text-muted);
}

.trn-intelligence-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.trn-intel-card {
  background: rgba(189, 210, 253, 0.03);
  border: 1px solid rgba(189, 210, 253, 0.1);
  padding: 14px;
  border-radius: 8px;
}

.trn-intel-card p {
  margin: 0;
  font-size: 11px;
  font-weight: 600;
  color: var(--text-high);
}

.trn-brand-name.accent {
  color: var(--accent-neon);
  font-weight: 700;
}

.trn-brand-divider {
  width: 1px;
  height: 32px;
  background: var(--grid-line);
}

/* ==========================================================================
   PAGE 2: SCHOOL / TEAM SUMMARY
   ========================================================================== */
.page-school-summary {
  padding: 22px 36px;
  min-height: calc(900px * 1.414); /* A4 proportional min-height */
}

.sch-hero {
  position: relative;
  margin-bottom: 16px;
}

/* ── School Achievement Badge (top-right corner) ── */
.sch-achievement-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 14px;
  border-radius: 6px;
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  z-index: 2;
}

.sch-achievement-icon {
  font-size: 16px;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,0.2));
}

.sch-achievement-label {
  white-space: nowrap;
}

.sch-achievement-badge.champion {
  background: linear-gradient(135deg, #ffd700 0%, #f0a500 40%, #ffd700 70%, #f0a500 100%);
  border: 1.5px solid #c8a600;
  color: #5c3d00;
  text-shadow: 0 1px 0 rgba(255,255,255,0.3);
}

.sch-achievement-badge.runner-up {
  background: linear-gradient(135deg, #e8e8e8 0%, #c0c0c0 40%, #e8e8e8 70%, #b0b0b0 100%);
  border: 1.5px solid #a0a0a0;
  color: #3a3a3a;
  text-shadow: 0 1px 0 rgba(255,255,255,0.4);
}

.sch-achievement-badge.second-runner-up {
  background: linear-gradient(135deg, #e8a060 0%, #cd7f32 40%, #e8a060 70%, #b87333 100%);
  border: 1.5px solid #a0622e;
  color: #3d1f00;
  text-shadow: 0 1px 0 rgba(255,255,255,0.25);
}

.sch-hero-content {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 12px;
}

.sch-crest-area {
  flex-shrink: 0;
}

.sch-large-crest {
  width: 52px;
  height: 52px;
  color: var(--accent-cyan);
  opacity: 0.7;
}

.sch-large-crest-img {
  width: 52px;
  height: 52px;
  object-fit: contain;
  border-radius: 8px;
}

.sch-identity {
  flex: 1;
}

.sch-eyebrow {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--text-muted);
  text-transform: uppercase;
  display: block;
  margin-bottom: 2px;
}

.sch-school-name {
  font-family: "Outfit", sans-serif;
  font-size: 28px;
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 4px;
}

.sch-meta-row {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  color: var(--text-muted);
  flex-wrap: wrap;
}

.sch-meta-divider {
  color: var(--grid-line);
}

.sch-standing-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
}

.sch-standing-badge {
  padding: 2px 10px;
  border-radius: 4px;
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
}

.sch-standing-badge.bronze {
  background: rgba(205, 127, 50, 0.15);
  color: var(--color-bronze);
  border: 1px solid rgba(205, 127, 50, 0.3);
}

.sch-standing-badge.silver {
  background: rgba(192, 192, 192, 0.15);
  color: var(--color-silver);
  border: 1px solid rgba(192, 192, 192, 0.3);
}

.sch-standing-text {
  font-size: 10px;
  color: var(--text-muted);
}

.sch-record-strip {
  display: flex;
  gap: 8px;
}

.sch-record-item {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 8px 14px;
  border-radius: 6px;
  text-align: center;
  min-width: 52px;
}

.sch-record-item.win .sch-rec-num {
  color: var(--accent-neon);
}
.sch-record-item.loss .sch-rec-num {
  color: var(--coral-error);
}
.sch-record-item.gd .sch-rec-num {
  color: var(--accent-cyan);
}

.sch-rec-num {
  display: block;
  font-family: "Roboto Mono", monospace;
  font-size: 18px;
  font-weight: 700;
  color: var(--text-high);
}

.sch-rec-lbl {
  font-size: 8px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.sch-stats-dashboard {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
  margin-bottom: 12px;
}

.sch-stat-cell {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 8px 6px;
  border-radius: 6px;
  text-align: center;
}

.sch-stat-val {
  display: block;
  font-family: "Roboto Mono", monospace;
  font-weight: 700;
  font-size: 16px;
  color: var(--accent-cyan);
}

.sch-stat-lbl {
  font-size: 7px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

.sch-split-row {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 12px;
  margin-bottom: 12px;
}

.sch-radar-panel,
.sch-insights-panel {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 12px;
  border-radius: 8px;
}

.sch-panel-title {
  font-family: "Outfit", sans-serif;
  font-size: 9px;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 10px;
}

.sch-radar-wrap {
  display: flex;
  justify-content: center;
}

.sch-team-radar-canvas {
  width: 160px;
  height: 160px;
  background: rgba(255, 255, 255, 0.01);
  border-radius: 8px;
}

.sch-insight-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.sch-insight-item {
  padding: 8px 10px;
  border-radius: 6px;
  border-left: 2px solid;
}

.sch-insight-item.attacking {
  background: rgba(90, 124, 237, 0.03);
  border-left-color: var(--accent-neon);
}

.sch-insight-item.defensive {
  background: rgba(189, 210, 253, 0.03);
  border-left-color: var(--accent-cyan);
}

.sch-insight-item.discipline {
  background: rgba(255, 215, 0, 0.03);
  border-left-color: var(--gold-standard);
}

.sch-insight-cat {
  display: block;
  font-family: "Outfit", sans-serif;
  font-size: 7px;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 1px;
  margin-bottom: 2px;
}

.sch-insight-item p {
  font-size: 9px;
  color: var(--text-muted);
  line-height: 1.4;
}

.sch-journey-section {
  margin-bottom: 12px;
}

.sch-journey-visual {
  display: flex;
  align-items: flex-start;
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 10px 12px;
  border-radius: 8px;
  overflow-x: auto;
}

.sch-journey-node {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-width: 72px;
}

.sch-journey-circle {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Outfit", sans-serif;
  font-weight: 800;
  font-size: 10px;
  margin-bottom: 3px;
}

.sch-journey-circle.win {
  background: rgba(90, 124, 237, 0.15);
  color: var(--accent-neon);
  border: 1.5px solid var(--accent-neon);
}

.sch-journey-circle.loss {
  background: rgba(255, 74, 74, 0.15);
  color: var(--coral-error);
  border: 1.5px solid var(--coral-error);
}

.sch-journey-circle.draw {
  background: rgba(189, 210, 253, 0.1);
  color: var(--text-muted);
  border: 1.5px solid var(--text-muted);
}

.sch-journey-stage {
  font-size: 8px;
  font-weight: 600;
  color: var(--text-muted);
}
.sch-journey-score {
  font-size: 9px;
  font-family: "Roboto Mono", monospace;
  color: var(--text-high);
}
.sch-journey-opp {
  font-size: 7px;
  color: var(--text-muted);
  margin-top: 1px;
}

.sch-journey-connector {
  width: 24px;
  height: 2px;
  background: var(--grid-line);
  margin-top: 11px;
  flex-shrink: 0;
}

.sch-style-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.sch-style-bars {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 10px 12px;
  border-radius: 8px;
}

.sch-style-bar-row {
  display: flex;
  justify-content: space-between;
  font-size: 9px;
  color: var(--text-muted);
  margin-bottom: 2px;
  margin-top: 6px;
}

.sch-style-bar-row:first-child {
  margin-top: 0;
}

.sch-style-pct {
  color: var(--accent-cyan);
  font-family: "Roboto Mono", monospace;
  font-size: 9px;
}

.sch-style-bar {
  height: 4px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 2px;
}

.sch-style-fill.primary {
  height: 100%;
  border-radius: 2px;
  background: var(--accent-neon);
}
.sch-style-fill.secondary {
  height: 100%;
  border-radius: 2px;
  background: var(--accent-cyan);
}
.sch-style-fill.tertiary {
  height: 100%;
  border-radius: 2px;
  background: var(--text-muted);
}

.sch-style-tags {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sch-tag-block {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 10px;
  border-radius: 8px;
}

.sch-tag-block-title {
  display: block;
  font-family: "Outfit", sans-serif;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 1px;
  margin-bottom: 6px;
}

.sch-tag-block-title.green {
  color: var(--accent-neon);
}
.sch-tag-block-title.amber {
  color: var(--accent-cyan);
}

.sch-tag {
  display: inline-block;
  font-size: 8px;
  padding: 2px 6px;
  border-radius: 3px;
  margin: 1px 2px;
  line-height: 1.3;
}

.sch-tag.green {
  background: rgba(90, 124, 237, 0.08);
  color: var(--accent-neon);
  border: 1px solid rgba(90, 124, 237, 0.15);
}
.sch-tag.amber {
  background: rgba(189, 210, 253, 0.08);
  color: var(--accent-cyan);
  border: 1px solid rgba(189, 210, 253, 0.15);
}

/* ==========================================================================
   TEAM JOURNEY PAGE
   ========================================================================== */
.page-team-journey {
  padding: 28px 40px;
  min-height: calc(900px * 1.414); /* A4 proportional min-height */
}

/* ==========================================================================
   MATCH DETAIL PAGES
   ========================================================================== */
.page-match-detail {
  padding: 28px 40px;
  min-height: calc(900px * 1.414); /* A4 proportional min-height */
}

/* ── Compact Row: Strengths/Weaknesses + Squad Roster ── */
.sch-compact-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.sch-compact-left,
.sch-compact-right {
  min-width: 0;
}

.sch-compact-tags {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.sch-compact-tag-block {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 7px 8px;
  border-radius: 6px;
}

.sch-compact-tag-label {
  display: block;
  font-family: "Outfit", sans-serif;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: 1px;
  margin-bottom: 3px;
}

.sch-compact-tag-label.green {
  color: var(--accent-neon);
}
.sch-compact-tag-label.amber {
  color: var(--accent-cyan);
}

.sch-compact-tag {
  display: inline-block;
  font-size: 7px;
  padding: 1px 5px;
  border-radius: 3px;
  margin: 1px 2px;
  line-height: 1.3;
}

.sch-compact-tag.green {
  background: rgba(0, 201, 81, 0.08);
  color: var(--success);
  border: 1px solid rgba(0, 201, 81, 0.15);
}
.sch-compact-tag.amber {
  background: rgba(247, 60, 47, 0.08);
  color: var(--danger);
  border: 1px solid rgba(247, 60, 47, 0.15);
}

.sch-compact-roster {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3px;
}

.sch-compact-player {
  display: flex;
  align-items: center;
  gap: 4px;
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  border-radius: 4px;
  padding: 3px 6px;
}

.sch-compact-jersey {
  font-family: "Outfit", sans-serif;
  font-size: 8px;
  font-weight: 800;
  color: #5a7ced;
  min-width: 20px;
  text-align: center;
  flex-shrink: 0;
}

.sch-compact-pinfo {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

.sch-compact-pname {
  font-size: 7.5px;
  color: var(--text-high);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}

.sch-compact-ovr {
  font-family: "Outfit", sans-serif;
  font-size: 9px;
  font-weight: 800;
  color: var(--accent-brand);
  flex-shrink: 0;
  min-width: 18px;
  text-align: right;
}

/* ── DNP (Did Not Play) Badge ── */
.sch-compact-player.dnp {
  opacity: 0.5;
  background: var(--bg-panel-muted, #1a1e26);
}

.sch-compact-dnp-badge {
  font-family: "Outfit", sans-serif;
  font-size: 6px;
  font-weight: 700;
  color: #8E9BAE;
  background: rgba(142, 155, 174, 0.15);
  border: 1px solid rgba(142, 155, 174, 0.25);
  border-radius: 3px;
  padding: 1px 4px;
  margin-left: 4px;
  flex-shrink: 0;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* ── Compact Journey ── */
.sch-journey-section {
  margin-top: 6px;
}

.sch-journey-compact {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  border-radius: 6px;
  padding: 6px 10px;
  gap: 0;
  flex-wrap: wrap;
}

.sch-journey-node-cp {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  min-width: 48px;
}

.sch-journey-circle-cp {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Outfit", sans-serif;
  font-size: 9px;
  font-weight: 800;
  border: 1.5px solid var(--grid-line);
}

.sch-journey-circle-cp.win {
  background: rgba(0, 201, 81, 0.1);
  border-color: rgba(0, 201, 81, 0.3);
  color: var(--success);
}
.sch-journey-circle-cp.loss {
  background: rgba(247, 60, 47, 0.1);
  border-color: rgba(247, 60, 47, 0.3);
  color: var(--danger);
}
.sch-journey-circle-cp.draw {
  background: rgba(254, 153, 0, 0.1);
  border-color: rgba(254, 153, 0, 0.3);
  color: var(--warning);
}

.sch-journey-label-cp {
  font-size: 7px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.3px;
  white-space: nowrap;
}

.sch-journey-score-cp {
  font-family: "Roboto Mono", monospace;
  font-size: 9px;
  font-weight: 700;
  color: var(--text-high);
}

.sch-journey-arrow-cp {
  font-size: 12px;
  color: var(--accent-brand);
  opacity: 0.35;
  margin: 0 2px;
  padding-bottom: 12px;
}

/* ── Compact Match Results Table ── */
.sch-matches-section {
  margin-top: 6px;
}

.sch-matches-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 8px;
}

.sch-matches-table th {
  font-size: 7px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 4px 5px;
  border-bottom: 1px solid var(--grid-line);
  font-weight: 600;
}

.sch-matches-table td {
  padding: 4px 5px;
  border-bottom: 1px solid var(--grid-line);
  color: var(--text-muted);
}

.sch-mt-num {
  color: var(--text-muted) !important;
}
.sch-mt-opp {
  color: var(--text-high) !important;
  font-weight: 600;
}
.sch-mt-stage {
  font-size: 7px;
}
.sch-mt-score {
  color: var(--text-high) !important;
  font-weight: 700;
  font-size: 9px !important;
}
.sch-mt-goal {
  color: var(--accent-neon) !important;
}
.sch-mt-result {
  font-size: 7px;
  padding: 1px 5px;
  border-radius: 3px;
  font-weight: 700;
}
.sch-mt-result.win {
  background: rgba(0, 201, 81, 0.1);
  color: var(--success);
}
.sch-mt-result.loss {
  background: rgba(247, 60, 47, 0.1);
  color: var(--danger);
}
.sch-mt-result.draw {
  background: rgba(254, 153, 0, 0.1);
  color: var(--warning);
}

.sch-roster-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1px;
  overflow: hidden;
}

.sch-roster-name {
  display: block;
  font-size: 9px;
  font-weight: 600;
  color: var(--text-high);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sch-roster-pos {
  font-size: 7px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.sch-roster-ovr {
  font-family: "Outfit", sans-serif;
  font-size: 13px;
  font-weight: 800;
  color: var(--accent-neon);
  min-width: 24px;
  text-align: right;
}

/* Light theme overrides for roster cards */
.report-page .sch-roster-card {
  background: #ffffff !important;
  border-color: #e0e0e0 !important;
}
.report-page .sch-roster-ovr {
  color: #5a7ced !important;
}

/* ── Own Goal Intelligence Card ──────────────────── */
.trn-intel-card.og-intel-card {
  border-left: 3px solid #f59e0b;
  background: rgba(245, 158, 11, 0.05);
}

.trn-intel-badge {
  display: inline-block;
  font-family: "Outfit", sans-serif;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #f59e0b;
  background: rgba(245, 158, 11, 0.12);
  padding: 2px 8px;
  border-radius: 3px;
  margin-bottom: 6px;
}

/* ── Own Goal Stat Cell ──────────────────────────── */
.sch-stat-cell.has-og {
  border-color: rgba(245, 158, 11, 0.4);
  background: rgba(245, 158, 11, 0.04);
}

.sch-stat-og-sub {
  display: block;
  font-size: 7px;
  color: var(--text-muted);
  margin-top: 3px;
  letter-spacing: 0.3px;
}

.og-highlight {
  color: #f59e0b;
  font-weight: 700;
}

/* Light theme own goal overrides */
.report-page .sch-stat-cell.has-og {
  border-color: rgba(245, 158, 11, 0.35) !important;
  background: rgba(245, 158, 11, 0.06) !important;
}
.report-page .trn-intel-card.og-intel-card {
  background: rgba(245, 158, 11, 0.06) !important;
}

/* ── Own Goal Roster Card ────────────────────────── */
.sch-roster-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
  min-width: 32px;
}

.sch-roster-card.has-own-goal {
  border-left: 2px solid #f59e0b;
}

.sch-roster-og-badge {
  font-size: 6px;
  font-weight: 800;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: #f59e0b;
  background: rgba(245, 158, 11, 0.15);
  padding: 1px 4px;
  border-radius: 2px;
  white-space: nowrap;
}

.match-hero {
  margin-bottom: 16px;
  padding: 12px;
  border-bottom: 1px solid var(--grid-line);
}

.match-hero-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.match-num-label {
  font-family: "Outfit", sans-serif;
  font-size: 14px;
  font-weight: 800;
  color: var(--accent-cyan);
  letter-spacing: 1px;
}

.match-stage-pill {
  background: rgba(189, 210, 253, 0.1);
  color: var(--accent-cyan);
  font-size: 9px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 4px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.match-scoreline {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.match-team-self,
.match-team-opp {
  width: 35%;
}

.match-school-name {
  font-family: "Outfit", sans-serif;
  font-size: 18px;
  font-weight: 800;
  color: var(--text-high);
}

.match-school-name.opp {
  text-align: right;
  color: var(--text-muted);
  font-size: 14px;
  display: block;
}

.match-score-center {
  text-align: center;
}

.match-score-nums {
  font-family: "Roboto Mono", monospace;
  font-size: 32px;
  font-weight: 800;
  color: var(--accent-neon);
  display: block;
}

.match-pso-scoreline {
  text-align: center;
  margin-top: 4px;
}

.match-pso-score-text {
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 600;
  color: var(--coral-error);
  letter-spacing: 0.5px;
}

.match-result-badge {
  display: inline-block;
  padding: 2px 12px;
  border-radius: 4px;
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1px;
  margin-top: 4px;
}

.match-result-badge.win {
  background: rgba(90, 124, 237, 0.15);
  color: var(--accent-neon);
}
.match-result-badge.loss {
  background: rgba(255, 74, 74, 0.15);
  color: var(--coral-error);
}
.match-result-badge.draw {
  background: rgba(189, 210, 253, 0.1);
  color: var(--text-muted);
}

.match-meta-row {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  font-size: 9px;
  color: var(--text-muted);
}

.match-meta-divider {
  color: var(--grid-line);
}

.match-body-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}

.match-panel-title {
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--grid-line);
  padding-bottom: 6px;
}

.match-panel-title.sub {
  border-bottom: none;
  font-size: 9px;
  margin-top: 12px;
}

.match-timeline {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.match-timeline-event {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 7px 10px;
  border-radius: 6px;
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  border-left: 3px solid var(--grid-line);
  transition: none;
}

/* ── Category-specific styling ── */
/* Team Goal → green */
.match-timeline-event.scoring {
  border-left-color: var(--success);
  background: linear-gradient(135deg, rgba(0, 201, 81, 0.05), var(--bg-panel));
}
/* Assist → cyan */
.match-timeline-event.assist-cat {
  border-left-color: var(--accent-cyan);
  background: linear-gradient(
    135deg,
    rgba(189, 210, 253, 0.04),
    var(--bg-panel)
  );
}
/* Team Yellow Card → gold/yellow */
.match-timeline-event.card {
  border-left-color: var(--gold-standard);
  background: linear-gradient(135deg, rgba(255, 215, 0, 0.06), var(--bg-panel));
}
/* Team Red Card → crimson (distinct from opponent goal red) */
.match-timeline-event.red-card {
  border-left-color: #c0392b;
  background: linear-gradient(135deg, rgba(192, 57, 43, 0.06), var(--bg-panel));
}
/* Own Goal / Opponent Goal → red */
.match-timeline-event.own-goal {
  border-left-color: var(--coral-error);
  background: linear-gradient(135deg, rgba(247, 60, 47, 0.05), var(--bg-panel));
}
/* Team Foul → amber */
.match-timeline-event.foul-cat {
  border-left-color: var(--warning);
  background: linear-gradient(135deg, rgba(254, 153, 0, 0.03), var(--bg-panel));
}
/* Opponent actions (foul, card) → neutral gray */
.match-timeline-event.opp-neutral {
  border-left-color: var(--text-muted);
  background: linear-gradient(
    135deg,
    rgba(145, 154, 168, 0.04),
    var(--bg-panel)
  );
  opacity: 0.85;
}
/* Phase events → muted */
.match-timeline-event.phase {
  border-left-color: var(--text-muted);
  background: transparent;
  opacity: 0.55;
}

.match-tl-time {
  font-family: "Roboto Mono", monospace;
  font-weight: 700;
  font-size: 12px;
  color: var(--accent-cyan);
  min-width: 26px;
  text-align: center;
  padding-top: 1px;
}

.match-tl-icon {
  font-size: 13px;
  flex-shrink: 0;
  width: 18px;
  text-align: center;
}

.match-tl-icon-svg {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.match-tl-icon-svg svg {
  display: block;
  width: 12px;
  height: 16px;
}

.match-timeline-event.scoring .match-tl-icon {
  color: var(--success);
}
.match-timeline-event.assist-cat .match-tl-icon {
  color: var(--accent-cyan);
}
.match-timeline-event.red-card .match-tl-icon {
  color: #c0392b;
}
.match-timeline-event.own-goal .match-tl-icon {
  color: var(--coral-error);
}
.match-timeline-event.foul-cat .match-tl-icon {
  color: var(--warning);
}
.match-timeline-event.opp-neutral .match-tl-icon {
  color: var(--text-muted);
}

.match-tl-content {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}

.match-tl-label {
  font-family: "Outfit", sans-serif;
  font-size: 7.5px;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 0.8px;
  text-transform: uppercase;
  line-height: 1.1;
}

.match-timeline-event.scoring .match-tl-label {
  color: var(--success);
}
.match-timeline-event.card .match-tl-label {
  color: var(--gold-standard);
}
.match-timeline-event.red-card .match-tl-label {
  color: #c0392b;
}
.match-timeline-event.own-goal .match-tl-label {
  color: var(--coral-error);
}
.match-timeline-event.opp-neutral .match-tl-label {
  color: var(--text-muted);
}

.match-tl-player {
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 600;
  color: var(--text-high);
  line-height: 1.3;
}

.match-tl-detail {
  font-size: 8px;
  color: var(--text-muted);
  line-height: 1.3;
}

.match-stats-panel {
  background: var(--bg-panel);
  padding: 24px;
  border-radius: 12px;
}

.match-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-bottom: 12px;
}

.match-stat-item {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 24px 10px 20px 10px; /* increased padding top/bottom */
  border-radius: 8px;
  text-align: center;
}

.match-stat-item.intensity {
  border-color: rgba(189, 210, 253, 0.2);
}

.match-stat-val {
  display: block;
  font-family: "Inter", sans-serif;
  font-size: 24px;
  font-weight: 700;
  color: var(--text-high);
  margin-bottom: 12px;
}

.match-stat-item.intensity .match-stat-val {
  color: var(--accent-cyan);
}

.match-stat-lbl {
  display: block;
  font-size: 9px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.match-performers {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.match-performer-card {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 8px 10px;
  border-radius: 6px;
}

.match-perf-rank {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--grid-line);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Outfit", sans-serif;
  font-weight: 800;
  font-size: 11px;
  color: var(--text-muted);
  flex-shrink: 0;
}

.match-performer-card:first-child .match-perf-rank {
  background: linear-gradient(135deg, var(--accent-neon), var(--accent-cyan));
  color: #000;
}

.match-perf-info {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.match-perf-name {
  font-family: "Outfit", sans-serif;
  font-size: 11px;
  font-weight: 600;
  color: var(--text-high);
}

.match-perf-contribution {
  font-size: 9px;
  color: var(--text-muted);
}

.match-perf-rating {
  font-family: "Roboto Mono", monospace;
  font-weight: 700;
  font-size: 14px;
  color: var(--accent-neon);
}

/* ── Penalty Shootout (compact paired-kick layout) ── */
.match-pso-section {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  border-radius: 10px;
  padding: 10px 14px;
  margin-bottom: 12px;
}

.match-pso-title {
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: var(--accent-neon);
  letter-spacing: 2px;
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 6px;
}

.match-pso-scorebar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 8px;
}

.match-pso-scorebar-team {
  display: flex;
  align-items: center;
  gap: 8px;
}

.match-pso-scorebar-name {
  font-family: "Outfit", sans-serif;
  font-size: 9px;
  font-weight: 600;
  color: var(--text-high);
}

.match-pso-scorebar-num {
  font-family: "Outfit", sans-serif;
  font-size: 20px;
  font-weight: 800;
  color: var(--accent-neon);
  min-width: 20px;
  text-align: center;
}

.match-pso-scorebar-team.opp .match-pso-scorebar-num {
  color: var(--accent-neon);
}

.match-pso-scorebar-vs {
  font-size: 12px;
  color: var(--text-muted);
}

.match-pso-kicks-row {
  display: flex;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
}

.match-pso-pair {
  display: flex;
  flex-direction: column;
  gap: 3px;
  background: rgba(90,124,237,0.03);
  border: 1px solid rgba(90,124,237,0.08);
  border-radius: 6px;
  padding: 4px 5px;
  min-width: 90px;
}

.match-pso-kick-compact {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 2px 4px;
  border-radius: 3px;
}

.match-pso-kick-compact.scored {
  background: rgba(0,201,81,0.08);
}

.match-pso-kick-compact.missed {
  background: rgba(247,60,47,0.06);
}

.match-pso-kick-compact.empty {
  opacity: 0.3;
}

.match-pso-kick-compact .match-pso-kick-icon {
  font-size: 9px;
  min-width: 10px;
  text-align: center;
}

.match-pso-kick-compact.scored .match-pso-kick-icon { color: var(--success); }
.match-pso-kick-compact.missed .match-pso-kick-icon { color: var(--danger); }

.match-pso-kick-compact .match-pso-kick-player {
  font-size: 7.5px;
  color: var(--text-high);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.match-pso-kick-compact.opp .match-pso-kick-player {
  color: var(--accent-neon);
}

.match-pso-side:first-of-type .match-pso-total { color: var(--success); }
.match-pso-side:last-of-type .match-pso-total { color: var(--coral-error); }

.match-pso-side:first-of-type .match-pso-total {
  color: var(--success);
}
.match-pso-side:last-of-type .match-pso-total {
  color: var(--coral-error);
}

.match-insight-box {
  background: linear-gradient(
    135deg,
    rgba(189, 210, 253, 0.04),
    rgba(18, 24, 41, 0.6)
  );
  border: 1px solid rgba(189, 210, 253, 0.12);
  border-radius: 10px;
  overflow: hidden;
  margin-top: 4px;
}

.match-insight-inner {
  display: flex;
  align-items: stretch;
  gap: 0;
}

.match-insight-stat-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  background: rgba(189, 210, 253, 0.06);
  min-width: 80px;
  border-right: 1px solid rgba(189, 210, 253, 0.08);
}

.match-insight-stat-label {
  font-family: "Outfit", sans-serif;
  font-size: 7px;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 2px;
}

.match-insight-stat-val {
  font-family: "Outfit", sans-serif;
  font-size: 26px;
  font-weight: 800;
  color: var(--accent-cyan);
  line-height: 1;
}

.match-insight-stat-sub {
  font-size: 10px;
  font-weight: 600;
  color: var(--text-muted);
  margin-top: 2px;
}

.match-insight-divider {
  width: 1px;
  background: rgba(189, 210, 253, 0.08);
}

.match-insight-text-block {
  flex: 1;
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.match-insight-kicker {
  font-family: "Outfit", sans-serif;
  font-size: 8px;
  font-weight: 700;
  color: var(--accent-cyan);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 3px;
}

.match-insight-text-block p {
  font-size: 10px;
  color: var(--text-muted);
  line-height: 1.45;
  font-style: italic;
  margin: 0;
}

.match-insight-score-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  min-width: 72px;
  border-left: 1px solid rgba(189, 210, 253, 0.08);
}

.match-insight-score-badge.win {
  background: rgba(90, 124, 237, 0.06);
}

.match-insight-score-badge.loss {
  background: rgba(255, 74, 74, 0.06);
}

.match-insight-score-num {
  font-family: "Roboto Mono", monospace;
  font-size: 18px;
  font-weight: 800;
  color: var(--text-high);
  line-height: 1;
}

.match-insight-score-badge.win .match-insight-score-num {
  color: var(--accent-neon);
}

.match-insight-score-badge.loss .match-insight-score-num {
  color: var(--coral-error);
}

.match-insight-score-lbl {
  font-family: "Outfit", sans-serif;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 1px;
  margin-top: 2px;
}

.match-insight-score-badge.win .match-insight-score-lbl {
  color: var(--accent-neon);
}

.match-insight-score-badge.loss .match-insight-score-lbl {
  color: var(--coral-error);
}

/* ==========================================================================
   FULL PLAYER PAGES (SCOUTING DOSSIER)
   ========================================================================== */
.page-player-full {
  padding: 28px 40px;
  min-height: calc(900px * 1.414); /* A4 proportional min-height */
}

.plr-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--grid-line);
}

.plr-header-left {
  flex: 1;
}

.plr-header-eyebrow {
  font-family: "Outfit", sans-serif;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--text-muted);
  text-transform: uppercase;
  display: block;
  margin-bottom: 4px;
}

.plr-name {
  font-family: "Outfit", sans-serif;
  font-size: 28px;
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 4px;
}

.plr-meta-line {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  color: var(--text-muted);
}

.plr-meta-divider {
  color: var(--grid-line);
}

.plr-jersey-badge {
  font-family: "Roboto Mono", monospace;
  font-weight: 700;
  color: var(--accent-cyan);
  background: rgba(189, 210, 253, 0.1);
  padding: 1px 6px;
  border-radius: 3px;
}

.plr-header-right {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.plr-ovr-block {
  padding: 8px 18px;
  border-radius: 10px;
  border: 2px solid;
  text-align: center;
}

.plr-ovr-block.tier-bronze {
  background: linear-gradient(135deg, #1e1712, #3d2d20);
  border-color: var(--color-bronze);
}
.plr-ovr-block.tier-silver {
  background: linear-gradient(135deg, #182026, #2a3641);
  border-color: var(--color-silver);
}
.plr-ovr-block.tier-gold {
  background: linear-gradient(135deg, #2a210a, #524014);
  border-color: var(--color-gold);
}
.plr-ovr-block.tier-elite {
  background: linear-gradient(135deg, #180d2a, #301655);
  border-color: var(--color-elite);
}
.plr-ovr-block.tier-rising-star {
  background: linear-gradient(135deg, #240a20, #4d123c);
  border-color: var(--color-star-magenta);
}

.plr-ovr-num {
  display: block;
  font-family: "Outfit", sans-serif;
  font-size: 38px;
  font-weight: 800;
  line-height: 1;
  color: #ffffff; /* always white — badge has a dark gradient background */
}

.plr-ovr-label {
  font-size: 8px;
  letter-spacing: 2px;
  color: rgba(255, 255, 255, 0.6); /* always white/muted — dark bg */
  text-transform: uppercase;
}

/* ── DNP (Did Not Play) Notice for Full Player Page ── */
.plr-dnp-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(142, 155, 174, 0.08);
  border: 1px solid rgba(142, 155, 174, 0.2);
  border-radius: 6px;
  padding: 8px 12px;
  margin-bottom: 10px;
  font-size: 8.5px;
  color: #8E9BAE;
  line-height: 1.4;
}

.plr-dnp-icon {
  font-size: 14px;
  flex-shrink: 0;
  color: #6B7A90;
}

.plr-matches-badge {
  font-size: 9px;
  color: var(--text-muted);
  background: var(--bg-panel);
  padding: 3px 8px;
  border-radius: 4px;
  border: 1px solid var(--grid-line);
}

.plr-card-showcase {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 16px;
}

.plr-card-front,
.plr-card-back {
  width: 100%;
  aspect-ratio: 5 / 7;
  position: relative;
}

.plr-card-front {
  max-width: 240px;
  margin: 0 auto;
  background: transparent;
  border: none;
  box-shadow: none;
  border-radius: 0;
  overflow: visible;
}
.plr-card-back {
  max-width: 240px;
  margin: 0 auto;
  border-radius: 14px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #2d3750;
  background: #16181a;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
}

.plr-card-back .card-back-top-row {
  font-size: 8px;
  margin-bottom: 6px;
}
.plr-card-back .card-back-analytics {
  height: auto;
  margin-top: 6px;
}
.plr-card-back .mini-table {
  gap: 3px;
}
.plr-card-back .back-table-row {
  font-size: 9px;
}
.plr-card-back .scout-list li {
  font-size: 8px;
}
.plr-card-back .verification-stamp .stamp-name {
  font-size: 10px;
}

.plr-card-back-radar {
  width: 100px;
  height: 100px;
  margin: 0 auto;
}

.plr-stats-section {
  margin-bottom: 14px;
}

.plr-stats-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
}

.plr-stat-cell {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 8px 6px;
  border-radius: 6px;
  text-align: center;
}

.plr-stat-val {
  display: block;
  font-family: "Roboto Mono", monospace;
  font-weight: 700;
  font-size: 16px;
  color: var(--text-high);
}

.plr-stat-val.accent {
  color: var(--accent-neon);
}
.plr-stat-val.accent2 {
  color: var(--accent-cyan);
}
.plr-stat-val.warning {
  color: var(--gold-standard);
}
.plr-stat-val.danger {
  color: var(--coral-error);
}

.plr-stat-lbl {
  font-size: 7px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

.plr-performance-grid {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 12px;
  margin-bottom: 14px;
}

.plr-radar-panel,
.plr-attributes-panel {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 12px;
  border-radius: 8px;
}

.plr-panel-title {
  font-family: "Outfit", sans-serif;
  font-size: 9px;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 10px;
}

.plr-full-radar-canvas {
  width: 140px;
  height: 140px;
  display: block;
  margin: 0 auto;
}

.plr-attr-list {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.plr-attr-row {
  display: grid;
  grid-template-columns: 70px 1fr 28px;
  gap: 8px;
  align-items: center;
}

.plr-attr-label {
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 600;
  color: var(--text-muted);
}

.plr-attr-track {
  height: 6px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 3px;
  overflow: hidden;
}

.plr-attr-fill {
  height: 100%;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--accent-brand), var(--accent-light));
}

.plr-attr-val {
  font-family: "Roboto Mono", monospace;
  font-weight: 700;
  font-size: 12px;
  text-align: right;
  color: var(--text-high);
}

.plr-match-log {
  margin-bottom: 14px;
}

.plr-match-table {
  font-size: 10px;
}
.plr-match-table th {
  font-size: 8px;
  padding: 8px 10px;
}
.plr-match-table td {
  font-size: 10px;
  padding: 8px 10px;
}

.plr-bottom-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 12px;
  flex: 1;
}

.plr-archetype-panel,
.plr-insight-panel {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 12px;
  border-radius: 8px;
}

.plr-archetype-label {
  font-family: "Outfit", sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--accent-cyan);
  display: block;
  margin-bottom: 10px;
}

.plr-archetype-bars {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.plr-arch-row {
  margin-bottom: 4px;
}

.plr-arch-labels {
  display: flex;
  justify-content: space-between;
  font-size: 9px;
  margin-bottom: 3px;
}

.plr-arch-labels span:first-child {
  color: var(--text-muted);
}
.plr-arch-labels span:last-child {
  color: var(--accent-cyan);
  font-family: "Roboto Mono", monospace;
}

.plr-arch-track {
  height: 5px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 2px;
}

.plr-arch-fill {
  height: 100%;
  border-radius: 2px;
  background: var(--accent-neon);
}

.plr-insight-panel {
  background: rgba(189, 210, 253, 0.03);
  border-color: rgba(189, 210, 253, 0.15);
}

.plr-insight-panel p {
  font-size: 10px;
  color: var(--text-muted);
  line-height: 1.5;
  font-style: italic;
  margin-bottom: 8px;
}

.plr-insight-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--grid-line);
  padding-top: 8px;
}

.plr-insight-sign {
  display: flex;
  flex-direction: column;
}

.plr-insight-name {
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 600;
}

.plr-insight-role {
  font-size: 8px;
  color: var(--text-muted);
}

/* ==========================================================================
   CONCLUSION & ACKNOWLEDGEMENTS PAGE
   ========================================================================== */
.page-conclusion {
  padding: 36px 48px;
  min-height: calc(900px * 1.414); /* A4 proportional min-height */
}

.concl-hero {
  text-align: center;
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--grid-line);
}

.concl-eyebrow {
  font-family: "Outfit", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 3px;
  color: var(--accent-cyan);
  text-transform: uppercase;
  display: block;
  margin-bottom: 6px;
}

.concl-title {
  font-family: "Outfit", sans-serif;
  font-size: 28px;
  font-weight: 800;
  margin-bottom: 4px;
}

.concl-subtitle {
  font-size: 11px;
  color: var(--text-muted);
}

.concl-box {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 14px;
  border-radius: 10px;
  margin-bottom: 12px;
}

.concl-summary-box {
  background: linear-gradient(
    135deg,
    rgba(189, 210, 253, 0.05),
    var(--bg-panel)
  );
  border: 1px solid rgba(189, 210, 253, 0.15);
  padding: 16px;
  border-radius: 10px;
  margin-bottom: 14px;
}

.concl-box-title {
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.concl-box-title.green {
  color: var(--accent-neon);
}
.concl-box-title.cyan {
  color: var(--accent-cyan);
}

.concl-summary-text {
  font-size: 11px;
  color: var(--text-muted);
  line-height: 1.6;
}

.concl-grid-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.concl-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.concl-list li {
  font-size: 10px;
  color: var(--text-muted);
  padding-left: 12px;
  position: relative;
  line-height: 1.4;
}

.concl-list li::before {
  content: "\25AA";
  position: absolute;
  left: 0;
}
.concl-list.green li::before {
  color: var(--accent-neon);
}
.concl-list.cyan li::before {
  color: var(--accent-cyan);
}
.concl-list.dev li::before {
  color: var(--accent-cyan);
}

.concl-closing {
  margin-bottom: 14px;
}

.concl-closing-quote {
  background: linear-gradient(135deg, rgba(255, 215, 0, 0.05), var(--bg-panel));
  border: 1px solid rgba(255, 215, 0, 0.15);
  padding: 16px;
  border-radius: 10px;
  margin-bottom: 12px;
  text-align: center;
}

.concl-closing-quote p {
  font-family: "Outfit", sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-high);
  line-height: 1.6;
  font-style: italic;
}

.concl-tech-insight {
  background: rgba(189, 210, 253, 0.03);
  border: 1px solid rgba(189, 210, 253, 0.1);
  padding: 14px;
  border-radius: 10px;
}

.concl-tech-insight p {
  font-size: 11px;
  color: var(--text-muted);
  line-height: 1.5;
  font-style: italic;
  margin-bottom: 10px;
}

.concl-sign-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--grid-line);
  padding-top: 10px;
}

.concl-sign-block {
  display: flex;
  flex-direction: column;
}

.concl-sign-name {
  font-family: "Outfit", sans-serif;
  font-size: 12px;
  font-weight: 600;
}

.concl-sign-title {
  font-size: 9px;
  color: var(--text-muted);
}

.concl-acknowledgements {
  margin-top: auto;
}

.concl-ack-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  padding: 14px;
  border-radius: 10px;
}

.concl-ack-item {
  text-align: center;
  padding: 8px;
}

.concl-ack-item.highlight {
  background: rgba(90, 124, 237, 0.05);
  border: 1px solid rgba(90, 124, 237, 0.15);
  border-radius: 8px;
}

.concl-ack-role {
  display: block;
  font-size: 7px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 3px;
}

.concl-ack-name {
  font-family: "Outfit", sans-serif;
  font-size: 11px;
  font-weight: 600;
  color: var(--text-high);
}

.concl-ack-name.accent {
  color: var(--accent-neon);
  font-weight: 700;
}

/* ==========================================================================
   REPORT COVER PAGE
   ========================================================================== */
.page-ns-cover {
  padding: 0;
  min-height: calc(900px * 1.414);
  display: flex;
  align-items: center;
  justify-content: center;
}

.page-ns-cover .report-page-body {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.page-ns-cover .page-watermark {
  opacity: 0.06;
  width: 500px;
  height: 500px;
}

.cover-wrapper {
  text-align: center;
  position: relative;
  z-index: 1;
  padding: 40px 20px;
}

.cover-logo {
  margin-bottom: 20px;
  display: inline-block;
  filter: drop-shadow(0 4px 20px rgba(90, 124, 237, 0.2));
}

.cover-brand {
  font-family: "Outfit", sans-serif;
  font-size: 42px;
  font-weight: 800;
  color: var(--accent-brand);
  letter-spacing: 4px;
  line-height: 1;
  margin-bottom: 8px;
}

.cover-tagline {
  font-family: "Outfit", sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: var(--text-muted);
  letter-spacing: 3px;
  text-transform: uppercase;
  margin-bottom: 24px;
}

.cover-divider {
  width: 80px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--accent-brand), transparent);
  margin: 0 auto 24px;
}

.cover-tournament {
  font-family: "Outfit", sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--text-high);
  margin-bottom: 6px;
  line-height: 1.2;
}

.cover-meta {
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 4px;
}

.cover-category {
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 600;
  color: var(--accent-cyan);
  letter-spacing: 2px;
  text-transform: uppercase;
}

.cover-report-for {
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 600;
  color: var(--text-muted);
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.cover-school-name {
  font-family: "Outfit", sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--text-high);
  line-height: 1.2;
}

.cover-footer-text {
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.cover-footer-text span {
  font-size: 9px;
  color: var(--text-muted);
  letter-spacing: 1px;
}

/* ==========================================================================
   ABOUT NEXTSPORTZ INTRO PAGE — Redesigned layout
   ========================================================================== */

/* ── Page Container ── */
.page-ns-intro {
  padding: 18px 38px;
  min-height: 0;
  height: auto;
}

/* ── Hero Block ── */
.nsi-hero {
  text-align: center;
  margin-bottom: 8px;
  padding: 10px 18px 10px;
  background: linear-gradient(
    135deg,
    rgba(90, 124, 237, 0.04),
    rgba(189, 210, 253, 0.02)
  );
  border: 1px solid rgba(189, 210, 253, 0.12);
  border-radius: 10px;
  position: relative;
  z-index: 1;
}

.nsi-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: "Outfit", sans-serif;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 3px;
  color: var(--accent-brand);
  text-transform: uppercase;
  background: rgba(90, 124, 237, 0.08);
  border: 1px solid rgba(90, 124, 237, 0.2);
  padding: 4px 14px;
  border-radius: 20px;
  margin-bottom: 5px;
}

.nsi-hero-badge svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.nsi-hero-title {
  font-family: "Outfit", sans-serif;
  font-size: 28px;
  font-weight: 800;
  margin-bottom: 4px;
  letter-spacing: -0.3px;
  line-height: 1.15;
  color: var(--text-high);
}

.nsi-hero-subtitle {
  font-size: 10px;
  color: var(--text-muted);
  max-width: 520px;
  margin: 0 auto 8px;
  line-height: 1.45;
}

.nsi-hero-stats {
  display: flex;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
}

.nsi-hero-stat {
  text-align: center;
  min-width: 56px;
}

.nsi-hero-stat-num {
  display: block;
  font-family: "Outfit", sans-serif;
  font-size: 17px;
  font-weight: 800;
  color: var(--text-high);
  line-height: 1.1;
}

.nsi-hero-stat.accent .nsi-hero-stat-num {
  color: var(--accent-brand);
}

.nsi-hero-stat-lbl {
  font-size: 7.5px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* ── Section ── */
.nsi-section {
  margin-bottom: 7px;
  position: relative;
  z-index: 1;
}

.nsi-section-last {
  margin-bottom: 5px;
}

.nsi-section-head {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 3px;
}

.nsi-section-badge {
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 800;
  color: var(--accent-brand);
  background: rgba(90, 124, 237, 0.08);
  border: 1px solid rgba(90, 124, 237, 0.18);
  width: 22px;
  height: 22px;
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.nsi-section-title {
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

/* ── Body Text ── */
.nsi-body {
  font-size: 9px;
  color: var(--text-muted);
  line-height: 1.4;
  margin-bottom: 5px;
}

.nsi-body strong {
  color: var(--text-high);
  font-weight: 600;
}

/* ── Grids ── */
.nsi-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}

.nsi-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}

/* ── Pillars ── */
.nsi-pillar {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  border-left: 3px solid var(--accent-brand);
  padding: 7px 10px;
  border-radius: 0 6px 6px 0;
  display: flex;
  gap: 6px;
  align-items: flex-start;
}

.nsi-pillar-icon-wrap {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 5px;
  background: rgba(90, 124, 237, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
}

.nsi-pillar-icon {
  font-size: 12px;
  color: var(--accent-brand);
  line-height: 1;
}

.nsi-pillar-body {
  flex: 1;
  min-width: 0;
}

.nsi-pillar-title {
  font-family: "Outfit", sans-serif;
  font-size: 9px;
  font-weight: 700;
  color: var(--text-high);
  display: block;
  margin-bottom: 1px;
}

.nsi-pillar-desc {
  font-size: 7.5px;
  color: var(--text-muted);
  line-height: 1.35;
}

/* ── Compare Cards ── */
.nsi-compare-card {
  padding: 6px 10px;
  border-radius: 7px;
  border: 1px solid var(--grid-line);
  background: var(--bg-panel);
}

.nsi-compare-card.without {
  border-left: 3px solid var(--danger);
  background: linear-gradient(135deg, rgba(247, 60, 47, 0.03), var(--bg-panel));
}

.nsi-compare-card.with {
  border-left: 3px solid var(--success);
  background: linear-gradient(135deg, rgba(0, 201, 81, 0.03), var(--bg-panel));
}

.nsi-compare-label {
  font-family: "Outfit", sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1.2px;
  display: block;
  margin-bottom: 3px;
}

.nsi-compare-card.without .nsi-compare-label {
  color: var(--danger);
}
.nsi-compare-card.with .nsi-compare-label {
  color: var(--success);
}

.nsi-compare-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.nsi-compare-list li {
  font-size: 9px;
  color: var(--text-muted);
  padding-left: 8px;
  position: relative;
  line-height: 1.3;
}

.nsi-compare-list li::before {
  content: "\2022";
  position: absolute;
  left: 0;
}

.nsi-compare-card.without .nsi-compare-list li::before {
  color: var(--danger);
  opacity: 0.5;
}
.nsi-compare-card.with .nsi-compare-list li::before {
  color: var(--success);
}

/* ── Flow Steps ── */
.nsi-flow {
  display: flex;
  align-items: flex-start;
  gap: 0;
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  border-radius: 8px;
  padding: 6px 6px;
}

.nsi-flow-step {
  flex: 1;
  text-align: center;
  padding: 0 4px;
}

.nsi-flow-num {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(90, 124, 237, 0.1);
  border: 2px solid rgba(90, 124, 237, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Outfit", sans-serif;
  font-size: 11px;
  font-weight: 800;
  color: var(--accent-brand);
  margin: 0 auto 4px;
}

.nsi-flow-title {
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: var(--text-high);
  display: block;
  margin-bottom: 1px;
}

.nsi-flow-desc {
  font-size: 8.5px;
  color: var(--text-muted);
  line-height: 1.3;
}

.nsi-flow-arrow {
  font-size: 14px;
  color: var(--accent-brand);
  opacity: 0.4;
  padding-top: 6px;
  flex-shrink: 0;
}

/* ── Outcomes ── */
.nsi-outcome {
  background: var(--bg-panel);
  border: 1px solid var(--grid-line);
  border-radius: 7px;
  padding: 6px 10px;
  display: flex;
  gap: 6px;
  align-items: flex-start;
}

.nsi-outcome-icon {
  flex-shrink: 0;
  line-height: 1;
  margin-top: 2px;
  color: var(--accent-brand);
}

.nsi-outcome-icon svg {
  display: block;
}

.nsi-outcome-body {
  flex: 1;
  min-width: 0;
}

.nsi-outcome-title {
  font-family: "Outfit", sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: var(--text-high);
  display: block;
  margin-bottom: 1px;
}

.nsi-outcome-desc {
  font-size: 8.5px;
  color: var(--text-muted);
  line-height: 1.3;
}

/* ── CTA Block ── */
.nsi-cta {
  margin-top: 6px;
  position: relative;
  z-index: 1;
}

.nsi-cta-inner {
  background: linear-gradient(
    135deg,
    rgba(90, 124, 237, 0.1),
    rgba(90, 124, 237, 0.03)
  );
  border: 1.5px solid rgba(90, 124, 237, 0.3);
  padding: 8px 16px;
  border-radius: 10px;
  text-align: center;
}

.nsi-cta-title {
  font-family: "Outfit", sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-high);
  margin-bottom: 2px;
}

.nsi-cta-body {
  font-size: 10px;
  color: var(--text-muted);
  line-height: 1.35;
  margin-bottom: 4px;
  max-width: 460px;
  margin-left: auto;
  margin-right: auto;
}

.nsi-cta-body strong {
  color: var(--text-high);
  font-weight: 600;
}

.nsi-cta-contacts {
  display: flex;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
}

.nsi-cta-contact {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  color: var(--text-high);
  font-weight: 500;
}

.nsi-cta-contact-icon {
  color: var(--accent-brand);
  font-size: 11px;
}

/* ==========================================================================
   REPORT PAGE BASE OVERRIDES FOR FULL REPORT PAGES
   ========================================================================== */
.page-tournament-summary .report-footer,
.page-school-summary .report-footer,
.page-match-detail .report-footer,
.page-player-full .report-footer,
.page-conclusion .report-footer,
.page-ns-intro .report-footer {
  z-index: 1;
  position: relative;
}

/* Print overrides for full report pages */
@media print {
  @page {
    size: A4;
    margin: 0mm;
  }

  /* Force white body background, remove dark theme */
  html,
  body {
    background: #ffffff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    padding: 12mm 14mm !important;
    margin: 0 !important;
  }

  /* Hide toolbar, page navigation, export buttons, and other non-report UI */
  .tr-toolbar,
  .tr-page-nav,
  .tr-export-btn,
  .print-button,
  .export-btn-pdf,
  #toolbar,
  #page-nav {
    display: none !important;
  }

  /* Report body container — no max-width, no extra padding */
  .tr-body,
  .report-paper-container {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: #ffffff !important;
  }

  .page-tournament-summary,
  .page-school-summary,
  .page-match-detail,
  .page-player-full,
  .page-conclusion,
  .page-ns-intro,
  .page-ns-cover {
    background: #ffffff !important;
    color: #1a1a1a !important;
    border: none !important;
    box-shadow: none !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    height: auto !important;
    max-width: none !important;
    padding: 0 !important;
    display: table !important;
    table-layout: fixed !important;
    page-break-after: always !important;
    break-after: page !important;
  }

  /* Body content — inner padding is minimal since @page provides outer margin */
  .report-page-body {
    display: table-row-group !important;
    padding: 4mm 6mm 2mm 6mm !important;
  }

  /* Footer hidden on print */
  .report-footer,
  .report-footer-inner {
    display: none !important;
  }

  /* Normalize padding on all report page types — consistent content width */
  .page-player-full,
  .page-tournament-summary,
  .page-school-summary,
  .page-match-detail,
  .page-conclusion,
  .page-ns-intro,
  .page-ns-cover {
    padding: 6mm 0 !important;
  }

  .page-watermark {
    opacity: 0.09 !important;
  }

  /* Card front gets light borders, card back stays dark */
  .plr-card-front {
    border-color: #e0e0e0 !important;
    box-shadow: none !important;
  }
  .plr-card-back {
    border-color: #2d3750 !important;
    background: #16181a !important;
    color: #ffffff !important;
    box-shadow: none !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .plr-card-back span,
  .plr-card-back strong,
  .plr-card-back td,
  .plr-card-back th,
  .plr-card-back li {
    color: #ffffff !important;
  }
  .plr-card-back .card-back-top-row {
    color: #5a7ced !important;
  }
  .plr-card-back .back-table-row span {
    color: rgba(255, 255, 255, 0.6) !important;
  }
  .plr-card-back .back-table-row strong {
    color: #5a7ced !important;
  }

  .trn-highlight-card,
  .trn-intel-card,
  .sch-stat-cell,
  .match-timeline-event,
  .plr-stat-cell,
  .plr-radar-panel,
  .plr-attributes-panel,
  .plr-archetype-panel,
  .plr-insight-panel,
  .concl-box,
  .concl-summary-box,
  .sch-radar-panel,
  .sch-insights-panel,
  .sch-style-bars,
  .sch-tag-block {
    background: #f5f5f7 !important;
    border-color: #e0e0e0 !important;
    color: #1a1a1a !important;
  }

  .match-result-badge.win {
    background: rgba(0, 201, 81, 0.1) !important;
    color: #00873a !important;
  }
  .match-result-badge.loss {
    background: rgba(247, 60, 47, 0.1) !important;
    color: #c42b20 !important;
  }

  /* Force CSS variables in print — report pages use light theme */
  .report-page {
    --bg-obsidian: #ffffff !important;
    --bg-panel: #f5f5f7 !important;
    --text-high: #1a1a1a !important;
    --text-medium: #333333 !important;
    --text-muted: #888888 !important;
    --accent-neon: #5a7ced !important;
    --accent-cyan: #5a7ced !important;
    --accent-brand: #5a7ced !important;
    --grid-line: #e0e0e0 !important;
    color: #1a1a1a !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* Restore card-back dark variables in print */
  .report-page .plr-card-back {
    --bg-obsidian: #101316 !important;
    --bg-panel: #16181a !important;
    --text-high: #ffffff !important;
    --text-medium: #ffffff !important;
    --text-muted: rgba(255, 255, 255, 0.6) !important;
    --accent-brand: #5a7ced !important;
    --grid-line: #2d3750 !important;
  }

  /* Card front — keep white text in print (Flutter: gray100=#FFFFFF) */
  .report-page .plr-card-front {
    color: #ffffff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .report-page .plr-card-front .mad-ovr-val,
  .report-page .plr-card-front .mad-stat-big,
  .report-page .plr-card-front .mad-stat-num,
  .report-page .plr-card-front .mad-nameplate span {
    color: #ffffff !important;
  }
  .report-page .plr-card-front .mad-ovr-lbl,
  .report-page .plr-card-front .mad-stat-lbl-sm {
    color: rgba(255, 255, 255, 0.6) !important;
  }
  .report-page .plr-card-front .mad-stat-key {
    color: rgba(255, 255, 255, 0.7) !important;
  }
  .report-page .plr-card-front .mad-silhouette svg {
    color: rgba(255, 255, 255, 0.5) !important;
  }
  .report-page .plr-card-front .mad-nameplate {
    background: transparent !important;
  }
  .report-page .plr-card-front .mad-stat-vdivider {
    background: rgba(255, 255, 255, 0.2) !important;
  }

  /* OVR block — always dark bg, text always white in print too */
  .report-page .plr-ovr-num {
    color: #ffffff !important;
  }
  .report-page .plr-ovr-label {
    color: rgba(255, 255, 255, 0.6) !important;
  }
}

/* ==========================================================================
   LIGHT THEME OVERRIDES FOR ALL REPORT PAGES (on-screen)
   ========================================================================== */

/* Watermark — very subtle on white */
html:not(.dark) .report-page .page-watermark {
  opacity: 0.09;
}

/* Text colors — dark on white */
html:not(.dark) .report-page,
html:not(.dark) .report-page h1,
html:not(.dark) .report-page h2,
html:not(.dark) .report-page h3,
html:not(.dark) .report-page h4,
html:not(.dark) .report-page h5,
html:not(.dark) .report-page strong,
html:not(.dark) .report-page span,
html:not(.dark) .report-page td,
html:not(.dark) .report-page th,
html:not(.dark) .report-page p,
html:not(.dark) .report-page li {
  color: #1a1a1a;
}

/* Muted/secondary text */
html:not(.dark) .report-page .trn-eyebrow,
html:not(.dark) .report-page .sch-subtitle,
html:not(.dark) .report-page .match-meta-row,
html:not(.dark) .report-page .match-meta-divider,
html:not(.dark) .report-page .match-stat-lbl,
html:not(.dark) .report-page .plr-meta-row span,
html:not(.dark) .report-page .plr-stat-lbl,
html:not(.dark) .report-page .concl-eyebrow,
html:not(.dark) .report-page .stamp-verified,
html:not(.dark) .report-page .match-tl-detail,
html:not(.dark) .report-page .plr-attrib-label,
html:not(.dark) .report-page .plr-insight-label,
html:not(.dark) .report-page .cp-stat-label,
html:not(.dark) .report-page .ts-record-lbl,
html:not(.dark) .report-page .ts-stat-lbl,
html:not(.dark) .report-page .ts-perf-cat,
html:not(.dark) .report-page .ts-standing-sub,
html:not(.dark) .report-page .sch-insight-label,
html:not(.dark) .report-page .concl-summary-label {
  color: #666 !important;
}

/* Panel/card backgrounds — light gray */
html:not(.dark) .report-page .trn-highlight-card,
html:not(.dark) .report-page .trn-intel-card,
html:not(.dark) .report-page .trn-group-card,
html:not(.dark) .report-page .sch-stat-cell,
html:not(.dark) .report-page .sch-radar-panel,
html:not(.dark) .report-page .sch-insights-panel,
html:not(.dark) .report-page .sch-style-bars,
html:not(.dark) .report-page .sch-tag-block,
html:not(.dark) .report-page .sch-compact-tag-block,
html:not(.dark) .report-page .sch-compact-player,
html:not(.dark) .report-page .sch-journey-compact,
html:not(.dark) .report-page .match-timeline-event,
html:not(.dark) .report-page .match-stats-panel,
html:not(.dark) .report-page .match-insight-box,
html:not(.dark) .report-page .match-pso-section,
html:not(.dark) .report-page .plr-stat-cell,
html:not(.dark) .report-page .plr-radar-panel,
html:not(.dark) .report-page .plr-attributes-panel,
html:not(.dark) .report-page .plr-archetype-panel,
html:not(.dark) .report-page .plr-insight-panel,
html:not(.dark) .report-page .concl-box,
html:not(.dark) .report-page .concl-summary-box,
html:not(.dark) .report-page .ts-stat-box,
html:not(.dark) .report-page .ts-section,
html:not(.dark) .report-page .cp-stat-box {
  background: #f5f5f7 !important;
  border-color: #e0e0e0 !important;
}

/* Highlight card category colors (on light theme) */
html:not(.dark) .report-page .trn-highlight-card.champions {
  background: linear-gradient(135deg, rgba(255, 215, 0, 0.12), #f5f5f7) !important;
  border-color: rgba(255, 215, 0, 0.45) !important;
}
html:not(.dark) .report-page .trn-highlight-card.runner-up {
  background: linear-gradient(135deg, rgba(192, 192, 192, 0.1), #f5f5f7) !important;
  border-color: rgba(192, 192, 192, 0.4) !important;
}
html:not(.dark) .report-page .trn-highlight-card.second-runner-up {
  background: linear-gradient(135deg, rgba(205, 127, 50, 0.1), #f5f5f7) !important;
  border-color: rgba(205, 127, 50, 0.4) !important;
}
html:not(.dark) .report-page .trn-highlight-card.top-scorer {
  background: linear-gradient(135deg, rgba(0, 229, 255, 0.08), #f5f5f7) !important;
  border-color: rgba(0, 229, 255, 0.35) !important;
}
html:not(.dark) .report-page .trn-highlight-card.best-player {
  background: linear-gradient(135deg, rgba(163, 71, 255, 0.08), #f5f5f7) !important;
  border-color: rgba(163, 71, 255, 0.35) !important;
}
html:not(.dark) .report-page .trn-highlight-card.best-keeper {
  background: linear-gradient(135deg, rgba(0, 255, 102, 0.08), #f5f5f7) !important;
  border-color: rgba(0, 255, 102, 0.35) !important;
}

/* Inner cards inside panels — white */
html:not(.dark) .report-page .match-stat-item:not(.intensity),
html:not(.dark) .report-page .match-performer-card {
  background: #ffffff !important;
  border-color: #e0e0e0 !important;
}

/* Borders */
html:not(.dark) .report-page .report-header,
html:not(.dark) .report-page .plr-match-log table,
html:not(.dark) .report-page .plr-match-log th,
html:not(.dark) .report-page .plr-match-log td {
  border-color: #e0e0e0 !important;
}

/* Table headers and rows */
html:not(.dark) .report-page table thead th {
  background: #f0f0f2 !important;
  color: #555 !important;
  border-color: #e0e0e0 !important;
}

html:not(.dark) .report-page table tbody td {
  border-color: #e8e8e8 !important;
  color: #1a1a1a !important;
}

html:not(.dark) .report-page table tbody tr:nth-child(even) {
  background: #fafafa !important;
}

/* Accent colors stay vibrant on white */
html:not(.dark) .report-page .trn-hero-title,
html:not(.dark) .report-page .sch-school-name,
html:not(.dark) .report-page .plr-name,
html:not(.dark) .report-page .match-score-nums,
html:not(.dark) .report-page .concl-hero-title,
html:not(.dark) .report-page .ts-school-name {
  color: #1a1a1a !important;
}

/* Accent brand / links */
html:not(.dark) .report-page .sch-compact-ovr,
html:not(.dark) .report-page .match-perf-rating,
html:not(.dark) .report-page .plr-ovr-val,
html:not(.dark) .report-page .ts-perf-val,
html:not(.dark) .report-page .sch-stat-val {
  color: #5a7ced !important;
}

/* OVR block — always dark bg, text must always be white */
html:not(.dark) .report-page .plr-ovr-num {
  color: #ffffff !important;
}
html:not(.dark) .report-page .plr-ovr-label {
  color: rgba(255, 255, 255, 0.6) !important;
}
/* Matches badge — stays subtle on white page, just needs readable text */
html:not(.dark) .report-page .plr-matches-badge {
  color: #555555 !important;
  background: #f0f0f3 !important;
  border-color: #d8d8dc !important;
}

/* Result badges — lighter backgrounds on white */
html:not(.dark) .report-page .match-result-badge.win {
  background: rgba(0, 201, 81, 0.1) !important;
  color: #00873a !important;
}
html:not(.dark) .report-page .match-result-badge.loss {
  background: rgba(247, 60, 47, 0.1) !important;
  color: #c42b20 !important;
}

/* Match hero area */
html:not(.dark) .report-page .match-hero {
  background: #f5f5f7 !important;
  border-color: #e0e0e0 !important;
}

/* Journey nodes */
html:not(.dark) .report-page .ts-journey-circle.win {
  background: rgba(0, 201, 81, 0.12) !important;
  color: #00873a !important;
  border-color: rgba(0, 201, 81, 0.3) !important;
}
html:not(.dark) .report-page .ts-journey-circle.loss {
  background: rgba(247, 60, 47, 0.12) !important;
  color: #c42b20 !important;
  border-color: rgba(247, 60, 47, 0.3) !important;
}

/* Tags */
html:not(.dark) .report-page .ts-tag.green,
html:not(.dark) .report-page .sch-tag.green,
html:not(.dark) .report-page .sch-compact-tag.green {
  background: rgba(0, 201, 81, 0.08) !important;
  color: #00873a !important;
  border-color: rgba(0, 201, 81, 0.2) !important;
}
html:not(.dark) .report-page .sch-compact-tag.amber {
  background: rgba(247, 60, 47, 0.08) !important;
  color: #c42b20 !important;
  border-color: rgba(247, 60, 47, 0.2) !important;
}
html:not(.dark) .report-page .ts-tag.mute,
html:not(.dark) .report-page .sch-tag.amber,
html:not(.dark) .report-page .sch-compact-tag.amber {
  background: rgba(255, 165, 0, 0.08) !important;
  color: #b36b00 !important;
  border-color: rgba(255, 165, 0, 0.2) !important;
}

/* Timeline event icons/lines — light theme */
html:not(.dark) .report-page .match-timeline-event {
  background: transparent !important;
  border-color: #e0e0e0 !important;
  border-left-color: #d0d0d0 !important;
}
html:not(.dark) .report-page .match-timeline-event.scoring {
  background: linear-gradient(
    135deg,
    rgba(0, 201, 81, 0.04),
    transparent
  ) !important;
  border-left-color: #00a844 !important;
}
html:not(.dark) .report-page .match-timeline-event.assist-cat {
  background: linear-gradient(
    135deg,
    rgba(90, 124, 237, 0.02),
    transparent
  ) !important;
  border-left-color: #8ea5f0 !important;
}
html:not(.dark) .report-page .match-timeline-event.card {
  background: linear-gradient(
    135deg,
    rgba(212, 175, 55, 0.06),
    transparent
  ) !important;
  border-left-color: #c9a020 !important;
}
html:not(.dark) .report-page .match-timeline-event.red-card {
  background: linear-gradient(
    135deg,
    rgba(192, 57, 43, 0.05),
    transparent
  ) !important;
  border-left-color: #b03227 !important;
}
html:not(.dark) .report-page .match-timeline-event.own-goal {
  background: linear-gradient(
    135deg,
    rgba(247, 60, 47, 0.04),
    transparent
  ) !important;
  border-left-color: #c42b20 !important;
}
html:not(.dark) .report-page .match-timeline-event.foul-cat {
  background: linear-gradient(
    135deg,
    rgba(254, 153, 0, 0.03),
    transparent
  ) !important;
  border-left-color: #cc7a00 !important;
}
html:not(.dark) .report-page .match-timeline-event.opp-neutral {
  background: linear-gradient(
    135deg,
    rgba(0, 0, 0, 0.02),
    transparent
  ) !important;
  border-left-color: #c0c0c0 !important;
  opacity: 0.8;
}
html:not(.dark) .report-page .match-timeline-event.phase {
  opacity: 0.45;
  background: transparent !important;
}

html:not(.dark) .report-page .match-tl-label {
  color: #555 !important;
}
html:not(.dark) .report-page .match-timeline-event.scoring .match-tl-label {
  color: #00873a !important;
}
html:not(.dark) .report-page .match-timeline-event.card .match-tl-label {
  color: #b8941f !important;
}
html:not(.dark) .report-page .match-timeline-event.red-card .match-tl-label {
  color: #a02b20 !important;
}
html:not(.dark) .report-page .match-timeline-event.own-goal .match-tl-label {
  color: #c42b20 !important;
}
html:not(.dark) .report-page .match-timeline-event.opp-neutral .match-tl-label {
  color: #888 !important;
}
html:not(.dark) .report-page .match-tl-player {
  color: #1a1a1a !important;
}
html:not(.dark) .report-page .match-tl-detail {
  color: #777 !important;
}
html:not(.dark) .report-page .match-tl-time {
  color: #5a7ced !important;
}

/* Insight boxes */
html:not(.dark) .report-page .match-insight-inner {
  background: #f5f5f7 !important;
  border-color: #e0e0e0 !important;
}

/* Player card back — stays dark (it's the MadSportzCard) — exact Flutter colors */
html:not(.dark) .report-page .plr-card-back {
  /* Restore dark-theme CSS variables inside the card so child elements get correct colors */
  --bg-obsidian: #101316; /* gray900 */
  --bg-panel: #16181a; /* gray850 */
  --text-high: #ffffff; /* gray100 */
  --text-medium: #ffffff;
  --text-muted: rgba(255, 255, 255, 0.6);
  --accent-brand: #5a7ced; /* brand500 */
  --accent-neon: #5a7ced;
  --accent-cyan: #5a7ced;
  --grid-line: #2d3750; /* gray700 */

  background: #16181a !important;
  border-color: #2d3750 !important;
  color: #ffffff !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5) !important;
}
html:not(.dark) .report-page .plr-card-back span,
html:not(.dark) .report-page .plr-card-back strong,
html:not(.dark) .report-page .plr-card-back td,
html:not(.dark) .report-page .plr-card-back th,
html:not(.dark) .report-page .plr-card-back p,
html:not(.dark) .report-page .plr-card-back li {
  color: inherit !important;
}
/* Card back specific text overrides */
html:not(.dark) .report-page .plr-card-back .card-back-top-row {
  color: #5a7ced !important; /* brand500 */
}
html:not(.dark) .report-page .plr-card-back .back-table-row span {
  color: rgba(255, 255, 255, 0.6) !important;
}
html:not(.dark) .report-page .plr-card-back .back-table-row strong {
  color: #5a7ced !important;
}
html:not(.dark) .report-page .plr-card-back .scout-title {
  color: rgba(255, 255, 255, 0.6) !important;
}
html:not(.dark) .report-page .plr-card-back .scout-list li {
  color: #ffffff !important;
}
html:not(.dark) .report-page .plr-card-back .scout-list li::before {
  color: #5a7ced !important;
}
html:not(.dark) .report-page .plr-card-back .scout-list.dev-list li::before {
  color: rgba(255, 255, 255, 0.6) !important;
}
html:not(.dark) .report-page .plr-card-back .stamp-verified {
  color: rgba(255, 255, 255, 0.6) !important;
}
html:not(.dark) .report-page .plr-card-back .stamp-name {
  color: #ffffff !important;
}
html:not(.dark) .report-page .plr-card-back .stamp-id {
  color: #5a7ced !important;
}
html:not(.dark) .report-page .plr-card-back .card-back-analysis-divider {
  background: rgba(255, 255, 255, 0.07) !important;
}
html:not(.dark) .report-page .plr-card-back .card-back-footer {
  border-top-color: rgba(255, 255, 255, 0.07) !important;
}

/* NS Score badge on player header */
html:not(.dark) .report-page .plr-ovr-badge {
  background: #5a7ced !important;
  color: #ffffff !important;
}

/* Radar chart canvas needs no background override */

/* Conclusion page signature */
html:not(.dark) .report-page .concl-sign-name {
  color: #1a1a1a !important;
}
html:not(.dark) .report-page .concl-sign-title {
  color: #666 !important;
}

html:not(.dark) .report-page .cover-brand {
  color: #5a7ced !important;
}

html:not(.dark) .report-page .cover-tournament {
  color: #1a1a1a !important;
}

html:not(.dark) .report-page .cover-tagline,
html:not(.dark) .report-page .cover-meta,
html:not(.dark) .report-page .cover-footer-text span {
  color: #666 !important;
}

html:not(.dark) .report-page .cover-category {
  color: #5a7ced !important;
}

html:not(.dark) .report-page .cover-report-for {
  color: #666 !important;
}

html:not(.dark) .report-page .cover-school-name {
  color: #1a1a1a !important;
}

/* NS Intro page — redesigned light theme overrides */
html:not(.dark) .report-page .nsi-hero {
  background: linear-gradient(
    135deg,
    rgba(90, 124, 237, 0.03),
    rgba(189, 210, 253, 0.01)
  ) !important;
  border-color: rgba(189, 210, 253, 0.08) !important;
}

html:not(.dark) .report-page .nsi-pillar,
html:not(.dark) .report-page .nsi-compare-card,
html:not(.dark) .report-page .nsi-flow,
html:not(.dark) .report-page .nsi-outcome {
  background: #f5f5f7 !important;
  border-color: #e0e0e0 !important;
}

html:not(.dark) .report-page .nsi-pillar {
  border-left-color: #5a7ced !important;
}

html:not(.dark) .report-page .nsi-compare-card.without {
  background: linear-gradient(
    135deg,
    rgba(247, 60, 47, 0.02),
    #f5f5f7
  ) !important;
  border-left-color: #f73c2f !important;
}

html:not(.dark) .report-page .nsi-compare-card.with {
  background: linear-gradient(
    135deg,
    rgba(0, 201, 81, 0.02),
    #f5f5f7
  ) !important;
  border-left-color: #00c951 !important;
}

html:not(.dark) .report-page .nsi-pillar-icon-wrap {
  background: rgba(90, 124, 237, 0.06) !important;
}

html:not(.dark) .report-page .nsi-flow-num {
  background: rgba(90, 124, 237, 0.06) !important;
  border-color: rgba(90, 124, 237, 0.2) !important;
}

html:not(.dark) .report-page .nsi-cta-inner {
  background: linear-gradient(
    135deg,
    rgba(90, 124, 237, 0.06),
    rgba(90, 124, 237, 0.02)
  ) !important;
  border-color: rgba(90, 124, 237, 0.2) !important;
}

html:not(.dark) .report-page .nsi-hero-badge {
  background: rgba(90, 124, 237, 0.05) !important;
  border-color: rgba(90, 124, 237, 0.18) !important;
}

html:not(.dark) .report-page .nsi-section-badge {
  background: rgba(90, 124, 237, 0.05) !important;
  border-color: rgba(90, 124, 237, 0.15) !important;
}

html:not(.dark) .report-page .nsi-hero-subtitle,
html:not(.dark) .report-page .nsi-body,
html:not(.dark) .report-page .nsi-pillar-desc,
html:not(.dark) .report-page .nsi-flow-desc,
html:not(.dark) .report-page .nsi-outcome-desc,
html:not(.dark) .report-page .nsi-cta-body,
html:not(.dark) .report-page .nsi-compare-list li {
  color: #666 !important;
}

html:not(.dark) .report-page .nsi-hero-stat-lbl,
html:not(.dark) .report-page .nsi-section-title {
  color: #555 !important;
}

html:not(.dark) .report-page .nsi-pillar-title,
html:not(.dark) .report-page .nsi-flow-title,
html:not(.dark) .report-page .nsi-outcome-title,
html:not(.dark) .report-page .nsi-cta-title,
html:not(.dark) .report-page .nsi-hero-stat-num,
html:not(.dark) .report-page .nsi-cta-contact {
  color: #1a1a1a !important;
}

html:not(.dark) .report-page .nsi-hero-stat.accent .nsi-hero-stat-num,
html:not(.dark) .report-page .nsi-hero-badge,
html:not(.dark) .report-page .nsi-section-badge,
html:not(.dark) .report-page .nsi-pillar-icon,
html:not(.dark) .report-page .nsi-flow-num,
html:not(.dark) .report-page .nsi-flow-arrow,
html:not(.dark) .report-page .nsi-cta-contact-icon {
  color: #5a7ced !important;
}

html:not(.dark) .report-page .nsi-compare-card.without .nsi-compare-label {
  color: #c42b20 !important;
}

html:not(.dark) .report-page .nsi-compare-card.with .nsi-compare-label {
  color: #00873a !important;
}

/* ==========================================================================
   CARD FRONT — MadSportsCard Shield (exact Flutter colors — NEVER changes)
   AppPalette: gray100=#FFFFFF, brand500=#5A7CED, gray900=#101316
   ========================================================================== */

/* Shield card lives inside .plr-card-front — force white text since
   .report-page generic overrides set color:#1A1A1A on all spans/strong/etc. */
.report-page .plr-card-front {
  color: #ffffff !important; /* gray100 */
}

/* Silhouette icon — 50% white (matches Flutter: AppPalette.gray100.withValues(alpha: 0.5)) */
.report-page .plr-card-front .mad-silhouette svg {
  color: rgba(255, 255, 255, 0.5) !important;
}

/* NS Score big number — full white (AppPalette.gray100) */
.report-page .plr-card-front .mad-ovr-val {
  color: #ffffff !important;
}
/* NS Score label — 60% white (AppPalette.gray100.withValues(alpha: 0.6)) */
.report-page .plr-card-front .mad-ovr-lbl {
  color: rgba(255, 255, 255, 0.6) !important;
}

/* MP stat number — full white */
.report-page .plr-card-front .mad-stat-big {
  color: #ffffff !important;
}
/* MP/WR labels — 60% white */
.report-page .plr-card-front .mad-stat-lbl-sm {
  color: rgba(255, 255, 255, 0.6) !important;
}

/* Name plate — transparent background, white text */
.report-page .plr-card-front .mad-nameplate {
  background: transparent !important;
}
.report-page .plr-card-front .mad-nameplate span {
  color: #ffffff !important;
}

/* Stats grid — labels 70% white, numbers full white (matching Flutter) */
.report-page .plr-card-front .mad-stat-key {
  color: rgba(255, 255, 255, 0.7) !important;
}
.report-page .plr-card-front .mad-stat-num {
  color: #ffffff !important;
}
/* Divider between stat columns — 20% white */
.report-page .plr-card-front .mad-stat-vdivider {
  background: rgba(255, 255, 255, 0.2) !important;
}

/* Hide main app nav and footer on print — only report content should show */
@media print {
  nav,
  footer {
    display: none !important;
  }

  main {
    padding: 0 !important;
    margin: 0 !important;
  }
}
