/* CS2STAT readability pass.
   Tokens raise the normal scale by one measured step; this final layer keeps
   old hard-coded microcopy aligned without making dense scoreboards bulky. */

body { font-size: var(--text-base); }

/* Shared hierarchy: eyebrows and secondary labels should remain compact, but
   never look like disabled placeholder text. */
.page-eyebrow,
.match-library__eyebrow,
.app-sidebar__section-label,
.ui-badge { font-size: 11px; }

.page-header__heading h1 { font-size: clamp(34px, 3vw, 38px); }
.page-header__heading p { font-size: var(--text-sm); }

.app-sidebar__nav a,
.app-topbar__title,
.app-mobile-nav a { font-size: var(--text-base); }
.app-steam-status strong { font-size: 12px; }
.app-steam-status small,
.app-sidebar__logout,
.app-footer,
.site-footer,
.site-footer a { font-size: 11px; }

/* Match centre: visible context first, dense numbers second. */
.match-detail-breadcrumb,
.match-overview-card__meta,
.match-overview-card__replay,
.match-overview-result__label,
.match-overview-result__context { font-size: 11px; }

.match-detail-page .top-tab-nav a {
  min-height: 48px;
  padding-inline: 2px !important;
  font-size: 13px !important;
}
.match-detail-page .top-tab-nav a[aria-current="page"] {
  background: transparent;
  color: #fff !important;
}

.match-detail-page .subtab-nav button,
.match-detail-page .duel-chip-nav button,
.match-detail-page .utility-mode-tabs button { font-size: 12px !important; }

.match-detail-page .match-story-entry__eyebrow,
.match-detail-page .metric-label,
.match-detail-page .record-label { font-size: 11px !important; }
.match-detail-page .team-header-half,
.match-detail-page .team-header-avg { font-size: 10px !important; }
.match-detail-page .match-story-entry__copy p { font-size: 13px; }
.match-detail-page .score-table thead th,
.match-detail-page .equipment-table thead th,
.match-detail-page .duel-matrix-table thead th,
.match-detail-page .h2h-table-card thead th { font-size: 11px; }
.match-detail-page .score-table tbody td,
.match-detail-page .equipment-table tbody td,
.match-detail-page .h2h-table-card tbody td { font-size: 13px; }
.match-detail-page .player-name,
.match-detail-page td.col-player { font-size: 14px; }

/* BO selector: every option is a real card, the current one is unmistakable. */
.match-overview-maps {
  min-height: 66px;
  gap: 7px;
  padding: 7px 10px;
  background: rgba(5, 9, 15, .72);
}
.match-overview-map {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-content: center;
  gap: 3px 12px;
  min-width: 136px;
  min-height: 50px;
  padding: 6px 13px;
  border: 1px solid rgba(148, 173, 204, .16);
  border-radius: var(--radius-sm);
  background: rgba(13, 20, 30, .58);
  color: #a1b1c2;
  font-size: 11px;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, color .16s ease, transform .16s ease;
}
.match-overview-map:last-child { border-right: 1px solid rgba(148, 173, 204, .16); }
.match-overview-map small {
  grid-column: 1 / -1;
  color: #64788e;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
}
.match-overview-map > span { font-weight: 700; }
.match-overview-map b { font-size: 12px; }
.match-overview-map--summary > span { grid-column: 1 / -1; }
.match-overview-map:hover {
  border-color: rgba(148, 173, 204, .38);
  background: rgba(22, 33, 49, .86);
  color: #fff;
  transform: translateY(-1px);
}
.match-overview-map.is-active {
  border-color: rgba(255, 106, 18, .68);
  background: linear-gradient(180deg, rgba(255, 106, 18, .14), rgba(255, 106, 18, .065));
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255, 106, 18, .08), 0 6px 20px rgba(0, 0, 0, .16);
}
.match-overview-map.is-active small { color: #ff9660; }
.match-overview-map.is-active::after {
  right: 12px;
  bottom: -1px;
  left: 12px;
  height: 3px;
  border-radius: 2px 2px 0 0;
}

/* Match library and upload flow. */
.match-library__header p,
.match-table-head,
.match-filter > span,
.library-match-row__date > span,
.library-rating > small,
.library-series-maps span,
.library-series-maps a,
.library-grid-card__topline time strong,
.library-grid-card__topline time small,
.library-grid-series span,
.upload-dialog__eyebrow,
.upload-files > header span,
.upload-files li b,
.upload-files li small { font-size: 11px; }

.match-source-tab,
.source-item,
.library-match-row__actions .ui-button { font-size: 12px; }

/* Player Hub and public stats pages. */
.player-rail__name span,
.player-rail__season-note,
.player-rail__progress-label,
.metric-guide__item,
.match-row__meta span,
.match-row__date { font-size: 12px; }

.player-rail__uncalibrated-pill,
.player-country-code,
.metric-guide__label,
.metric-guide small,
.overview-kpi__label,
.teammates-table th,
.compare-table th { font-size: 11px; }

.player-tabs a { font-size: 15px; }

/* Marketing remains expressive; only its smallest explanatory type grows. */
.landing-series__head span,
.landing-series__maps small,
.landing-series__summary span,
.landing-story__screen figcaption span { font-size: 10px; }
.landing-series__summary strong,
.landing-series__summary a,
.landing-label-grid span { font-size: 13px; }

@media (max-width: 767px) {
  .page-header__heading h1 { font-size: 30px; }
  .match-overview-maps { min-height: 64px; padding: 7px 8px; }
  .match-overview-map { min-width: 128px; min-height: 48px; padding-inline: 11px; }
  .match-detail-page .top-tab-nav a {
    min-height: 46px;
    padding-inline: 1px !important;
    font-size: 12px !important;
  }
  .match-detail-page .score-table tbody td,
  .match-detail-page .equipment-table tbody td,
  .match-detail-page .h2h-table-card tbody td { font-size: 12px; }
}
