/* GO SPORTS PRO v5.4.0 — Universal Component System 1.0
   Shared below-hero component authority. Metallic/chrome hero treatments are intentionally preserved. */
:root{
  --gsp-ucs-surface:#121413;
  --gsp-ucs-surface-raised:#181b19;
  --gsp-ucs-surface-soft:#0d0f0e;
  --gsp-ucs-border:#2a2f2b;
  --gsp-ucs-border-strong:#383e39;
  --gsp-ucs-radius:14px;
  --gsp-ucs-radius-sm:10px;
  --gsp-ucs-pad:22px;
  --gsp-ucs-gap:18px;
  --gsp-ucs-row:58px;
}

/* Hero exclusion contract: never flatten branded metallic workspace heroes. */
:where(.workspace-hero,.inner-workspace-hero,.gsp-workspace-hero,.hero-metallic,.metallic-hero,
.executive-hero,.today-hero,.community-hero,[data-gsp-hero="metallic"],[class*="metallic"][class*="hero"]){
  --gsp-ucs-exempt:1;
}

/* Governed section shell below heroes. */
:where(.main-content,.workspace-content,.workspace-body,.dashboard-content,.engine-content,.rie,.ao-shell,.oci-shell){
  --gsp-component-gap:var(--gsp-ucs-gap);
}
:where(.main-content,.workspace-content,.workspace-body,.dashboard-content,.engine-content,.rie,.ao-shell,.oci-shell) > * + *{
  margin-top:var(--gsp-component-gap);
}

/* Universal surfaces. Exclude heroes, navigation, logos, charts and semantic badges. */
:where(
  .ui-surface,.ui-panel,.ui-card,.panel,.card,.workspace-card,.engine-card,.dashboard-card,.content-card,
  .summary-card,.metric-card,.stat-card,.stats-card,.kpi-card,.data-card,.detail-card,.comparison-card,
  .table-card,.list-card,.timeline-card,.evidence-card,.monitoring-card,.decision-card,.execution-card,
  .rie section,.rie .box,.rie .agent,.rie .history,.rie .test,.rie .rpi-gate,.rie .rie-factor,
  [data-gsp-component="surface"],[data-gsp-component="card"],[data-gsp-component="panel"]
):not(.workspace-hero):not(.inner-workspace-hero):not(.gsp-workspace-hero):not(.hero-metallic):not(.metallic-hero):not(.executive-hero):not(.today-hero):not(.community-hero):not([data-gsp-hero]){
  background:var(--gsp-ucs-surface)!important;
  background-image:none!important;
  border:1px solid var(--gsp-ucs-border)!important;
  border-radius:var(--gsp-ucs-radius)!important;
  box-shadow:none!important;
  color:var(--gsp-color-text-primary)!important;
}

/* Raised content nested inside governed surfaces. */
:where(.metric-card,.stat-card,.kpi-card,.data-card,.detail-card,.comparison-row,.table-row,.list-row,
.rie .box,.rie .agent,.rie .history,.rie .test,.rie .rpi-gate,.rie .rie-factor,
[data-gsp-component="metric"],[data-gsp-component="row"]){
  background:var(--gsp-ucs-surface-raised)!important;
  border-color:var(--gsp-ucs-border)!important;
  box-shadow:none!important;
}

/* Universal section headers. */
:where(.section-header,.panel-header,.card-header,.workspace-section-header,.engine-section-header,
[data-gsp-component="section-header"]){
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin:0 0 16px;
  padding:0;
  border:0!important;
  background:transparent!important;
}
:where(.section-header,.panel-header,.card-header,.workspace-section-header,.engine-section-header) h2,
:where(.section-header,.panel-header,.card-header,.workspace-section-header,.engine-section-header) h3{
  margin:0;color:var(--gsp-color-text-primary)!important;
}
:where(.section-eyebrow,.eyebrow,.kicker,[data-gsp-component="eyebrow"]){
  color:var(--gsp-brand)!important;
  letter-spacing:.11em!important;
  text-transform:uppercase!important;
  font-weight:800!important;
}

/* Metric system: neutral containers, semantic values only. */
:where(.metric-grid,.stats-grid,.kpi-grid,[data-gsp-component="metric-grid"]){
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:12px!important;
}
:where(.metric-card,.stat-card,.kpi-card,[data-gsp-component="metric"]){
  min-height:96px;
  padding:16px!important;
}
:where(.metric-label,.stat-label,.kpi-label,[data-gsp-component="metric-label"]){
  color:var(--gsp-color-text-muted)!important;
  font-size:12px!important;
  font-weight:600!important;
}
:where(.metric-value,.stat-value,.kpi-value,[data-gsp-component="metric-value"]){
  color:var(--gsp-color-text-primary)!important;
  font-size:clamp(24px,2.4vw,34px)!important;
  font-weight:800!important;
  letter-spacing:-.025em!important;
}
:where(.metric-value.is-positive,.stat-value.is-positive,.kpi-value.is-positive,[data-status="positive"]){color:var(--gsp-brand)!important}

/* Universal rows and tables. */
:where(.table-row,.list-row,.comparison-row,.engine-row,.recommendation-row,[data-gsp-component="row"]){
  min-height:var(--gsp-ucs-row);
  padding:12px 14px!important;
  border:1px solid var(--gsp-ucs-border)!important;
  border-radius:var(--gsp-ucs-radius-sm)!important;
  background:var(--gsp-ucs-surface-raised)!important;
}
:where(.table-row,.list-row,.comparison-row,.engine-row,.recommendation-row) +
:where(.table-row,.list-row,.comparison-row,.engine-row,.recommendation-row){margin-top:8px}
:where(table){border-collapse:separate!important;border-spacing:0 8px!important}
:where(th){color:var(--gsp-color-text-muted)!important;font-size:11px!important;text-transform:uppercase;letter-spacing:.07em}
:where(td){background:var(--gsp-ucs-surface-raised);border-top:1px solid var(--gsp-ucs-border);border-bottom:1px solid var(--gsp-ucs-border)}
:where(td:first-child){border-left:1px solid var(--gsp-ucs-border);border-radius:10px 0 0 10px}
:where(td:last-child){border-right:1px solid var(--gsp-ucs-border);border-radius:0 10px 10px 0}

/* Universal controls. */
:where(.btn,.button,.ui-button,button[type="button"],button[type="submit"]):not(.joe-global-notifications){
  min-height:42px;
  border-radius:9px!important;
  border:1px solid var(--gsp-ucs-border-strong)!important;
  background:#222623!important;
  color:var(--gsp-color-text-primary)!important;
  box-shadow:none!important;
}
:where(.btn,.button,.ui-button,button[type="button"],button[type="submit"]):not(.joe-global-notifications):hover{
  background:#2a2f2b!important;border-color:#4a524b!important;
}
:where(.btn.primary,.button.primary,.ui-button--primary,[data-variant="primary"]){
  background:var(--gsp-brand)!important;
  color:#071000!important;
  border-color:var(--gsp-brand)!important;
}

/* Status remains semantic, not decorative. */
:where(.badge,.tag,.status-pill,.decision-pill,[data-gsp-component="status"]){
  border-radius:999px!important;
  box-shadow:none!important;
}

/* Quiet dividers and standardized internal padding. */
:where(.ui-card-body,.panel-body,.card-body,.workspace-card-body,[data-gsp-component="body"]){padding:var(--gsp-ucs-pad)!important}
:where(hr,.divider,.section-divider){border:0!important;border-top:1px solid var(--gsp-ucs-border)!important}
:where(.muted,.secondary-text,.helper-text){color:var(--gsp-color-text-muted)!important}

/* Do not alter sportsbook logo tiles or team marks. */
:where(.gsp-sb-logo,.gsp-partner-logo,.team-logo,.sportsbook-logo){background:#f7f7f5!important}

@media(max-width:900px){
  :root{--gsp-ucs-pad:17px;--gsp-ucs-gap:14px;--gsp-ucs-row:52px}
  :where(.metric-grid,.stats-grid,.kpi-grid,[data-gsp-component="metric-grid"]){grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  :where(.metric-grid,.stats-grid,.kpi-grid,[data-gsp-component="metric-grid"]){grid-template-columns:1fr}
}
