/*
 * GO Sports Pro Global Color Governance 1.0
 * Final color authority. Loaded after every feature and design-system stylesheet.
 * Blue/navy surfaces and controls are not part of the GO Sports Pro interface.
 */

:root {
  --gsp-surface-base: #101111;
  --gsp-surface-raised: #151716;
  --gsp-surface-soft: #181a18;
  --gsp-surface-interactive: #121712;
  --gsp-surface-hover: #1a211c;
  --gsp-control-secondary: #171c19;
  --gsp-control-secondary-hover: #202821;
  --gsp-control-border: #344039;
  --gsp-link: #90cf07;
  --gsp-info: #aeb5b1;

  /* Legacy aliases commonly used by feature pages. */
  --blue: var(--gsp-brand);
  --primary: var(--gsp-brand);
  --primary-color: var(--gsp-brand);
  --accent-blue: var(--gsp-brand);
  --panel-blue: var(--gsp-surface-base);
  --navy: var(--gsp-surface-base);
  --surface: var(--gsp-surface-base);
  --surface-2: var(--gsp-surface-raised);
  --card-bg: var(--gsp-surface-base);
  --panel-bg: var(--gsp-surface-base);
}

/* Universal neutral surface authority. Page modules may vary layout, not hue. */
.gsp-card, .gsp-panel, .card, .panel, .dashboard-card, .admin-card,
[class$="-card"], [class$="-panel"], [class*="__card"], [class*="__panel"],
[class*="-surface"], [class*="-workspace"]:not([class^="gsp-workspace-header"]), [class*="-board"],
.nmi-shell > section, .nmi-shell > article,
.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,
.recommendation-shell section, .recommendation-shell article {
  background-color: var(--gsp-surface-base) !important;
  background-image: none !important;
  border-color: var(--gsp-border) !important;
}

/* Nested surfaces retain hierarchy without becoming blue. */
.gsp-card .gsp-card, .gsp-panel .gsp-panel,
.card .card, .panel .panel,
[class$="-card"] [class$="-card"],
[class$="-panel"] [class$="-panel"],
.nmi-shell .nmi-intel-card,
.nmi-shell .nmi-versus > article,
.nmi-shell .nmi-metrics article,
.nmi-shell .nmi-decision-reasons > article,
.nmi-shell .nmi-change-mind,
.nmi-shell .nmi-concern,
.nmi-shell .nmi-why {
  background-color: var(--gsp-surface-raised) !important;
  background-image: none !important;
}

/* All buttons use only green primary or neutral dark secondary/ghost styles. */
button, .button, .btn, [role="button"],
[class*="btn-"], [class*="button-"],
input[type="button"], input[type="submit"], input[type="reset"],
a.button, a.btn, a[class*="button"], a[class*="btn"] {
  background-color: var(--gsp-control-secondary) !important;
  background-image: none !important;
  border-color: var(--gsp-control-border) !important;
  color: var(--gsp-text-primary) !important;
  box-shadow: none !important;
}
button:hover, .button:hover, .btn:hover, [role="button"]:hover,
[class*="btn-"]:hover, [class*="button-"]:hover,
a.button:hover, a.btn:hover, a[class*="button"]:hover, a[class*="btn"]:hover {
  background-color: var(--gsp-control-secondary-hover) !important;
  border-color: var(--gsp-brand-dark) !important;
  color: var(--gsp-text-primary) !important;
}

/* Explicit primary actions remain GO green. */
.gsp-button--primary, .button-primary, .btn-primary, .primary-button,
.is-primary, [data-variant="primary"], [data-tone="primary"],
button[type="submit"]:not(.secondary):not(.is-secondary):not(.ghost),
input[type="submit"] {
  background-color: var(--gsp-brand) !important;
  background-image: none !important;
  border-color: var(--gsp-brand-bright) !important;
  color: var(--gsp-brand-ink) !important;
}
.gsp-button--primary:hover, .button-primary:hover, .btn-primary:hover,
.primary-button:hover, .is-primary:hover, [data-variant="primary"]:hover,
[data-tone="primary"]:hover,
button[type="submit"]:not(.secondary):not(.is-secondary):not(.ghost):hover,
input[type="submit"]:hover {
  background-color: var(--gsp-brand-bright) !important;
  color: var(--gsp-brand-ink) !important;
}

/* Neutralize common framework and legacy blue utility classes. */
.bg-primary, .bg-blue, [class*="bg-blue-"], [class*="bg-sky-"], [class*="bg-indigo-"],
.btn-blue, .button-blue, .is-blue, .blue-button,
.alert-info, .badge-info, .status-info, .tag-info {
  background-color: var(--gsp-surface-interactive) !important;
  background-image: none !important;
  border-color: var(--gsp-border) !important;
  color: var(--gsp-text-primary) !important;
}
.text-primary, .text-blue, [class*="text-blue-"], [class*="text-sky-"], [class*="text-indigo-"] {
  color: var(--gsp-brand) !important;
}
.border-primary, .border-blue, [class*="border-blue-"], [class*="border-sky-"], [class*="border-indigo-"] {
  border-color: var(--gsp-border-brand) !important;
}

/* Global shell controls previously hardcoded as blue. */
.joe-global-bar__actions button,
.joe-global-bar__actions a:not(.is-primary),
.joe-dock button, .joe-dock a,
.joe-dock .joe-dock__main,
.joe-command,
.joe-command__input b,
.joe-command__input kbd,
.joe-command__results a:hover,
.joe-command__results a.is-match {
  background-color: var(--gsp-control-secondary) !important;
  background-image: none !important;
  border-color: var(--gsp-control-border) !important;
  color: var(--gsp-text-primary) !important;
}
.joe-dock .joe-dock__main,
.joe-command__input b {
  background-color: var(--gsp-brand) !important;
  color: var(--gsp-brand-ink) !important;
}

/* Links may be green or neutral, never button-blue. */
a { --gsp-local-link: var(--gsp-link); }
a:not(.button):not(.btn):not([class*="button"]):not([class*="btn"]) {
  color: var(--gsp-local-link);
}

/* Status semantics are intentionally exempt from the no-blue surface rule. */
.status-bet, .state-bet, .badge-bet, .tag-bet,
.status-pass, .state-pass, .badge-pass, .tag-pass,
.status-success, .state-success, .badge-success, .tag-success {
  background-color: rgba(144, 207, 7, .16) !important;
  border-color: rgba(144, 207, 7, .35) !important;
  color: var(--gsp-brand-bright) !important;
}
.status-wait, .state-wait, .badge-wait, .tag-wait,
.status-warning, .state-warning, .badge-warning, .tag-warning {
  background-color: rgba(243, 207, 0, .16) !important;
  border-color: rgba(243, 207, 0, .34) !important;
  color: var(--gsp-warning) !important;
}
.status-no-bet, .state-no-bet, .badge-no-bet, .tag-no-bet,
.status-fail, .state-fail, .badge-fail, .tag-fail,
.status-danger, .state-danger, .badge-danger, .tag-danger {
  background-color: rgba(255, 51, 79, .14) !important;
  border-color: rgba(255, 51, 79, .32) !important;
  color: var(--gsp-danger) !important;
}
