/*
 * GO Sports Pro Design System Foundation 1.0
 * Global authority loaded after every feature stylesheet.
 * Page styles may control layout, but must not redefine typography, surfaces,
 * controls, status language, or body-copy weight.
 */

/* Foundational values are owned by assets/css/ui-foundation/tokens.css. */

html { font-size: 16px; }
body {
  font-family: var(--gsp-font-body);
  font-size: var(--gsp-type-body);
  font-weight: var(--gsp-weight-body);
  line-height: var(--gsp-line-body);
  color: var(--gsp-text-primary);
  background: var(--gsp-bg-page);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

/* Headings are the only general text elements allowed to be bold. */
h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  color: var(--gsp-text-primary);
  font-family: var(--gsp-font-display);
  font-weight: var(--gsp-weight-heading);
  line-height: var(--gsp-line-heading);
}
h1 { font-size: clamp(34px, 4vw, var(--gsp-type-h1)); }
h2 { font-size: clamp(26px, 3vw, var(--gsp-type-h2)); }
h3 { font-size: var(--gsp-type-h3); }
h4 { font-size: var(--gsp-type-h4); }

/* Body copy is never bold. This includes nested strong/b tags in prose. */
p, li, dd, blockquote, figcaption,
.description, .helper-text, .supporting-copy, .summary-copy,
[class*="__description"], [class*="__copy"], [class*="-description"],
[class*="-summary"] p, [class*="-read"] > p,
.card p, .panel p, article p, section p {
  font-weight: var(--gsp-weight-body) !important;
}
p strong, p b, li strong, li b, dd strong, dd b, blockquote strong,
.description strong, .description b, .helper-text strong, .helper-text b,
.card p strong, .card p b, .panel p strong, .panel p b,
article p strong, article p b, section p strong, section p b {
  font-weight: var(--gsp-weight-body) !important;
}
p, li, dd, blockquote { line-height: var(--gsp-line-body); }
small, .caption { font-size: var(--gsp-type-caption); }

/* Labels, eyebrows, metrics, navigation, badges and controls may be emphasized. */
label, legend, th,
.eyebrow, .kicker, .section-eyebrow, .gsp-eyebrow,
[class*="__eyebrow"], [class*="-eyebrow"],
[class*="__label"], [class*="-label"],
.nav-label, .metric-label, .stat-label {
  font-weight: var(--gsp-weight-label) !important;
}
.eyebrow, .kicker, .section-eyebrow, .gsp-eyebrow,
[class*="__eyebrow"], [class*="-eyebrow"] {
  color: var(--gsp-brand) !important;
  font-size: var(--gsp-type-caption);
  letter-spacing: .12em;
  line-height: 1.3;
  text-transform: uppercase;
}

/* Universal surface contract. */
.gsp-card, .gsp-panel, .card, .panel, .dashboard-card, .admin-card,
[class$="-card"], [class$="-panel"] {
  border-color: var(--gsp-border) !important;
  border-radius: var(--gsp-panel-radius) !important;
}
.gsp-card, .gsp-panel, .card, .panel, .dashboard-card, .admin-card {
  background: var(--gsp-bg-card);
  box-shadow: var(--gsp-shadow-card);
}
.gsp-card__body, .gsp-panel__body, .card-body, .panel-body {
  padding: var(--gsp-panel-padding);
}

/* Universal control contract. */
button, .button, [class*="btn-"], [class*="button-"],
input[type="button"], input[type="submit"], input[type="reset"] {
  min-height: var(--gsp-control-height);
  border-radius: var(--gsp-control-radius) !important;
  font-family: var(--gsp-font-body);
  font-weight: var(--gsp-weight-label);
  line-height: 1.2;
}
input, select, textarea {
  border-color: var(--gsp-border);
  border-radius: var(--gsp-control-radius) !important;
  background: var(--gsp-bg-input);
  color: var(--gsp-text-primary);
  font: inherit;
}

/* Shared button primitives. */
.gsp-button, .button, .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--gsp-space-2);
  padding: 10px 16px;
  border: 1px solid var(--gsp-border);
  background: var(--gsp-bg-interactive);
  color: var(--gsp-text-primary);
  text-decoration: none;
  transition: border-color var(--gsp-transition-fast), background var(--gsp-transition-fast), transform var(--gsp-transition-fast);
}
.gsp-button:hover, .button:hover, .btn:hover { border-color: var(--gsp-border-brand); }
.gsp-button--primary, .button-primary, .btn-primary, .primary-button {
  border-color: var(--gsp-brand-bright) !important;
  background: var(--gsp-brand) !important;
  color: var(--gsp-brand-ink) !important;
}

/* Shared badge/status contract. */
.gsp-badge, .badge, [class*="status-"], [class*="state-"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 4px 9px;
  border-radius: var(--gsp-radius-pill) !important;
  font-size: 11px;
  font-weight: var(--gsp-weight-label) !important;
  line-height: 1;
  letter-spacing: .04em;
  text-transform: uppercase;
}

/* Shared metric and grid primitives. */
.gsp-metric, .metric, [class*="metric-card"], [class*="stat-card"] {
  min-width: 0;
  padding: var(--gsp-space-4);
  border: 1px solid var(--gsp-border);
  border-radius: var(--gsp-control-radius);
  background: var(--gsp-bg-card-raised);
}
.gsp-metric__value, .metric-value, [class*="metric-value"], [class*="stat-value"] {
  font-size: 24px;
  font-weight: var(--gsp-weight-heading);
  line-height: 1.1;
}
.gsp-grid { display: grid; gap: var(--gsp-grid-gap); }
.gsp-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gsp-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gsp-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Section rhythm. */
.gsp-section { margin-top: var(--gsp-section-gap); }
.gsp-section + .gsp-section { margin-top: var(--gsp-section-gap); }
.gsp-section__header { margin-bottom: var(--gsp-space-6); }
.gsp-section__header > :last-child { margin-bottom: 0; }

/* NFL page correction: prose had inherited heavy page-specific weights. */
.nmi-shell p, .nmi-shell li, .nmi-shell .nmi-intel-card b,
.nmi-shell .nmi-decision-reasons p, .nmi-shell .nmi-execution-gate p,
.nmi-shell .nmi-player span, .nmi-shell .nmi-change-mind span,
.nmi-shell .nmi-joe > span, .nmi-shell .nmi-hero-copy > span,
.nmi-shell .nmi-concern p, .nmi-shell .nmi-why p {
  font-weight: var(--gsp-weight-body) !important;
  letter-spacing: normal !important;
}
.nmi-shell .nmi-intel-card b { color: var(--gsp-text-secondary); }
.nmi-shell .nmi-panel, .nmi-shell .nmi-board-panel, .nmi-shell .nmi-comparison,
.nmi-shell .nmi-bottom article, .nmi-shell .nmi-joe,
.nmi-shell .nmi-metrics article, .nmi-shell .nmi-intel-card,
.nmi-shell .nmi-versus > article {
  border-radius: var(--gsp-panel-radius) !important;
  border-color: var(--gsp-border) !important;
}

@media (max-width: 900px) {
  .gsp-grid--3, .gsp-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  :root { --gsp-panel-padding: 16px; --gsp-section-gap: 24px; }
  .gsp-grid--2, .gsp-grid--3, .gsp-grid--4 { grid-template-columns: 1fr; }
}

.gsp-deployment-stamp{display:inline-flex;margin:8px 0;padding:5px 9px;border:1px solid #90cf07;border-radius:999px;background:#101111;color:#90cf07;font-size:11px;font-weight:600;letter-spacing:.08em}
