/* CAR-555 visual parity reset — staging-safe visual layer only.
   Preserves existing copy, IDs, scripts, API hooks, legal/rules text, and runtime flows. */

:root,
:root[data-theme="empire"],
body[data-theme="empire"] {
  --car555-map-bg: url("assets/brand/map-motif.svg");
}

body[data-theme="empire"] {
  background: var(--bg, #F8F1DF) !important;
  color: var(--ink, #0B1828) !important;
  font-family: var(--font-body, 'Inter', system-ui, sans-serif) !important;
}

/* Thin fixed staging strip — never participates in flex/grid page layout. */
body.public-page-v2,
body.ops-page-v2 {
  padding-top: 24px !important;
}
.ps2-stage-banner,
.os2-stage-banner {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 10000 !important;
  min-height: 0 !important;
  height: 24px !important;
  padding: 3px 10px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  background: var(--accent, #D49635) !important;
  color: var(--accent-fg, #0B1828) !important;
  font-size: 10px !important;
  line-height: 1 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  font-weight: 800 !important;
  pointer-events: none !important;
}
.ps2-stage-banner img,
.os2-stage-banner img { width: 13px !important; height: 13px !important; display: block !important; }
.ps2-header,
.os2-top-bar { top: 24px !important; }

/* Public-shell button contrast: beat broad anchor inheritance and legacy button rules. */
.ps2 a.ps2-btn,
.ps2 button.ps2-btn { text-decoration: none !important; }
.ps2 a.ps2-btn--primary,
.ps2 button.ps2-btn--primary {
  background: var(--primary, #0A2540) !important;
  color: var(--primary-fg, #FBF3DE) !important;
  border-color: transparent !important;
}
.ps2 a.ps2-btn--accent,
.ps2 button.ps2-btn--accent {
  background: var(--accent, #D49635) !important;
  color: var(--accent-fg, #0B1828) !important;
  border-color: transparent !important;
}
.ps2 a.ps2-btn--ghost,
.ps2 button.ps2-btn--ghost {
  background: rgba(255, 251, 241, 0.74) !important;
  color: var(--ink, #0B1828) !important;
  border-color: var(--line, #E2D5B4) !important;
}

/* Home: replace abstract blob with the same Jersey island map treatment used by the old bus shell. */
.ps2-hero { isolation: isolate; background: linear-gradient(135deg, rgba(246,237,214,.94), rgba(255,251,241,.82)) !important; }
.ps2-hero__motif { display: none !important; }
.ps2-hero::before,
.ps2-pricing::before,
.ps2-footer::before,
.car555-public-page::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: var(--car555-map-bg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: min(92vw, 1180px) auto;
  filter: grayscale(.18) sepia(.12) saturate(.85) contrast(1.02);
  opacity: .20;
  z-index: 0;
}
.ps2-pricing__body,
.ps2-footer__lede,
.ps2-footer__legal { color: rgba(255, 255, 255, .72) !important; }
.ps2-footer__col a { color: rgba(255, 255, 255, .78) !important; }
.ps2-hero__inner,
.ps2-pricing__inner,
.ps2-footer__inner,
.ps2-footer__legal { position: relative; z-index: 1; }
.ps2-pricing { isolation: isolate; }
.ps2-pricing::before { opacity: .10; filter: grayscale(.2) sepia(.18) saturate(.75) contrast(1.05); }
.ps2-footer { isolation: isolate; }
.ps2-footer::before { opacity: .08; filter: grayscale(.3) sepia(.12) saturate(.55) invert(.08); }

/* Shared public legacy-page repair for bus + leaderboard without changing text/JS. */
.car555-public-page {
  position: relative !important;
  min-height: 100vh !important;
  overflow-x: hidden !important;
}
.car555-public-page > * { position: relative; z-index: 1; }
.car555-public-page header {
  background: rgba(255, 251, 241, .90) !important;
  color: var(--ink, #0B1828) !important;
  border-bottom: 1px solid var(--line, #E2D5B4) !important;
  padding: 56px 24px 34px !important;
  backdrop-filter: blur(14px);
}
.car555-public-page header h1,
.car555-public-page .scoreboard-hero h1,
.car555-public-page h2,
.car555-public-page h3 {
  font-family: var(--font-display, 'Fraunces', Georgia, serif) !important;
  color: var(--ink, #0B1828) !important;
  letter-spacing: -0.018em !important;
  text-transform: none !important;
}
.car555-public-page header p,
.car555-public-page p,
.car555-public-page .muted,
.car555-public-page .hero-copy,
.car555-public-page .empty-state,
.car555-public-page .leaderboard-note,
.car555-public-page .leaderboard-note strong { color: var(--ink-mute, #5A6472) !important; }
.car555-public-page .container,
.car555-public-page .scoreboard-shell {
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding: 44px 24px 80px !important;
  text-align: center;
}
.car555-public-page .grid,
.car555-public-page .podium-grid,
.car555-public-page .ranking-table,
.car555-public-page .scoreboard-hero {
  border-color: var(--line, #E2D5B4) !important;
}
.car555-public-page .bus-card,
.car555-public-page .podium-card,
.car555-public-page .ranking-table,
.car555-public-page .scoreboard-hero,
.car555-public-page .leaderboard-note,
.car555-public-page .date-filter {
  background: rgba(255, 251, 241, .92) !important;
  color: var(--ink, #0B1828) !important;
  border: 1px solid var(--line, #E2D5B4) !important;
  border-radius: 22px !important;
  box-shadow: var(--shadow-md, 0 18px 45px rgba(10,37,64,.10)) !important;
}
.car555-public-page .bus-card { padding: 30px !important; }
.car555-public-page .bus-card i,
.car555-public-page .kicker,
.car555-public-page .podium-worth,
.car555-public-page .row-worth { color: var(--accent, #D49635) !important; }
.car555-public-page .btn-live,
.car555-public-page .btn-back,
.car555-public-page a[href*="libertybus"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  min-height: 48px !important;
  padding: 0 22px !important;
  background: var(--primary, #0A2540) !important;
  color: var(--primary-fg, #FBF3DE) !important;
  border: 1px solid transparent !important;
  border-radius: 14px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  box-shadow: var(--shadow-sm, 0 8px 20px rgba(10,37,64,.12)) !important;
}
.car555-public-page .ranking-row,
.car555-public-page .ranking-head {
  background: rgba(246, 237, 214, .62) !important;
  color: var(--ink, #0B1828) !important;
  border-color: var(--line-soft, #EFE5C9) !important;
}
.car555-public-page .row-rank,
.car555-public-page .podium-rank { color: var(--primary, #0A2540) !important; }
.car555-public-page .progress-track { background: var(--surface-3, #EDE1C2) !important; }
.car555-public-page .progress-fill { background: linear-gradient(90deg, var(--primary, #0A2540), var(--accent, #D49635)) !important; }

/* Dashboard: fix flex/stage-strip interaction and bring cards/sidebar into Empire shell. */
body.car555-dashboard-page { display: flex !important; }
body.car555-dashboard-page .mobile-header,
body.car555-dashboard-page .bottom-nav,
body.car555-dashboard-page .sidebar,
body.car555-dashboard-page .content,
body.car555-dashboard-page .stat-card,
body.car555-dashboard-page .team-list { border-color: var(--line, #E2D5B4) !important; }
body.car555-dashboard-page .mobile-header,
body.car555-dashboard-page .sidebar {
  background: linear-gradient(180deg, var(--primary, #0A2540), #0E1D2F) !important;
  color: var(--primary-fg, #FBF3DE) !important;
}
body.car555-dashboard-page .logo { color: var(--accent, #D49635) !important; font-family: var(--font-display, 'Fraunces', Georgia, serif) !important; text-transform: none !important; letter-spacing: -0.012em !important; }
body.car555-dashboard-page .nav-item { color: rgba(251,243,222,.76) !important; }
body.car555-dashboard-page .nav-item:hover,
body.car555-dashboard-page .nav-item.active { background: rgba(217,164,65,.16) !important; color: var(--primary-fg, #FBF3DE) !important; }
body.car555-dashboard-page .content { background: radial-gradient(circle at 80% 0%, rgba(217,164,65,.14), transparent 34%), var(--bg, #F8F1DF) !important; }
body.car555-dashboard-page .stat-card,
body.car555-dashboard-page .team-list {
  background: rgba(255,251,241,.94) !important;
  border: 1px solid var(--line, #E2D5B4) !important;
  border-radius: 20px !important;
  box-shadow: var(--shadow-sm, 0 8px 20px rgba(10,37,64,.08)) !important;
}
body.car555-dashboard-page .header h1,
body.car555-dashboard-page .stat-card .value,
body.car555-dashboard-page .team-info h3 { color: var(--primary, #0A2540) !important; }
body.car555-dashboard-page .btn-action {
  background: var(--accent, #D49635) !important;
  color: var(--accent-fg, #0B1828) !important;
  border-radius: 12px !important;
  border: 1px solid rgba(10,37,64,.08) !important;
}

/* Ops/banker/admin/finance visual repair. Use scoped class names and leave JS hooks intact. */
body.ops-page-v2,
body.car555-ops-page {
  background: radial-gradient(circle at 82% 0%, rgba(217,164,65,.14), transparent 32%), var(--bg, #F8F1DF) !important;
  color: var(--ink, #0B1828) !important;
}
body.ops-page-v2::before {
  content: "";
  position: fixed;
  inset: 24px 0 0 0;
  pointer-events: none;
  background-image: var(--car555-map-bg);
  background-position: center 80px;
  background-repeat: no-repeat;
  background-size: min(92vw, 1180px) auto;
  opacity: .08;
  filter: grayscale(.22) sepia(.12) saturate(.75);
  z-index: 0;
}
body.ops-page-v2 > * { position: relative; z-index: 1; }
body.ops-page-v2 .auth-card,
body.ops-page-v2 .card,
body.ops-page-v2 .modal-card,
body.ops-page-v2 .ticket-card,
body.ops-page-v2 .submission-card,
body.ops-page-v2 .metric,
body.ops-page-v2 .session-card,
body.ops-page-v2 .notice,
body.ops-page-v2 .hero,
body.ops-page-v2 section,
body.ops-page-v2 .panel {
  background: rgba(255,251,241,.94) !important;
  color: var(--ink, #0B1828) !important;
  border: 1px solid var(--line, #E2D5B4) !important;
  border-radius: 18px !important;
  box-shadow: var(--shadow-sm, 0 8px 20px rgba(10,37,64,.08)) !important;
}
body.ops-page-v2 .auth-card { max-width: 440px; margin: 10vh auto !important; padding: 30px !important; }
body.ops-page-v2 .header,
body.ops-page-v2 .topbar,
body.ops-page-v2 .topbar-inner {
  background: rgba(255,251,241,.92) !important;
  color: var(--ink, #0B1828) !important;
  border-color: var(--line, #E2D5B4) !important;
}
body.ops-page-v2 h1,
body.ops-page-v2 h2,
body.ops-page-v2 h3,
body.ops-page-v2 .logo {
  color: var(--primary, #0A2540) !important;
  font-family: var(--font-display, 'Fraunces', Georgia, serif) !important;
  text-transform: none !important;
  letter-spacing: -0.012em !important;
}
body.ops-page-v2 p,
body.ops-page-v2 .hero p,
body.ops-page-v2 .session-line,
body.ops-page-v2 .muted,
body.ops-page-v2 .empty-state,
body.ops-page-v2 .locked-note,
body.ops-page-v2 small { color: var(--ink-mute, #5A6472) !important; }
body.ops-page-v2 .session-line strong,
body.ops-page-v2 strong { color: var(--ink, #0B1828) !important; }
body.ops-page-v2 input,
body.ops-page-v2 select,
body.ops-page-v2 textarea {
  background: var(--surface, #FFFBF1) !important;
  color: var(--ink, #0B1828) !important;
  border: 1px solid var(--line, #E2D5B4) !important;
  border-radius: 12px !important;
}
body.ops-page-v2 .btn,
body.ops-page-v2 button,
body.ops-page-v2 .mini-btn,
body.ops-page-v2 .btn-action,
body.ops-page-v2 .btn-gold,
body.ops-page-v2 .btn-money,
body.ops-page-v2 .btn-live,
body.ops-page-v2 #banker-login-btn {
  background: var(--primary, #0A2540) !important;
  color: var(--primary-fg, #FBF3DE) !important;
  border: 1px solid transparent !important;
  border-radius: 12px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}
body.ops-page-v2 .btn-ghost,
body.ops-page-v2 .btn-secondary,
body.ops-page-v2 .top-links a,
body.ops-page-v2 .links a {
  background: rgba(255,251,241,.68) !important;
  color: var(--ink, #0B1828) !important;
  border: 1px solid var(--line, #E2D5B4) !important;
}
body.ops-page-v2 .btn-jail,
body.ops-page-v2 .btn-danger { background: var(--danger, #A8412F) !important; color: #fff !important; }
body.ops-page-v2 .btn-unjail,
body.ops-page-v2 .btn-success { background: var(--success, #497A4C) !important; color: #fff !important; }
body.ops-page-v2 .tabs,
body.ops-page-v2 .tab-bar { background: transparent !important; border-color: var(--line, #E2D5B4) !important; }
body.ops-page-v2 .tab,
body.ops-page-v2 .status-pill,
body.ops-page-v2 .pill,
body.ops-page-v2 .badge {
  background: var(--surface-3, #EDE1C2) !important;
  color: var(--ink, #0B1828) !important;
  border-color: var(--line, #E2D5B4) !important;
}
body.ops-page-v2 .tab.active,
body.ops-page-v2 .status-pill.ok,
body.ops-page-v2 .pill.ok { background: var(--primary, #0A2540) !important; color: var(--primary-fg, #FBF3DE) !important; }

@media (max-width: 767px) {
  .ps2-header,
  .os2-top-bar { top: 24px !important; }
  body.car555-dashboard-page .mobile-header { top: 24px !important; }
}

/* CR0247 final blue/gold override: keep reset from reintroducing cream cards. */
body.car555-dashboard-page,
body.car555-dashboard-page .content,
body.ops-page-v2,
body.ops-page-v2 main,
body.ops-page-v2 #main-content {
  background:
    radial-gradient(circle at 10% -8%, rgba(212, 150, 53, 0.22), transparent 24rem),
    radial-gradient(circle at 90% 8%, rgba(32, 90, 132, 0.28), transparent 30rem),
    linear-gradient(145deg, #06162A 0%, #0A2540 54%, #07182D 100%) !important;
  color: #FBF3DE !important;
}

body.car555-dashboard-page .header,
body.car555-dashboard-page .stat-card,
body.car555-dashboard-page .team-list,
body.car555-dashboard-page .team-card,
body.car555-dashboard-page .team-item,
body.ops-page-v2 .topbar,
body.ops-page-v2 .topbar-inner,
body.ops-page-v2 .header,
body.ops-page-v2 .hero,
body.ops-page-v2 .card,
body.ops-page-v2 .session-card,
body.ops-page-v2 .metric,
body.ops-page-v2 .status-pill,
body.ops-page-v2 .notice,
body.ops-page-v2 .row,
body.ops-page-v2 .flow-row,
body.ops-page-v2 .runtime-row,
body.ops-page-v2 .ticket-card,
body.ops-page-v2 .submission-card,
body.ops-page-v2 .modal-card,
body.ops-page-v2.live-map-shell .live-safety-card,
body.ops-page-v2.live-map-shell .header-stats > div {
  background: #0A2540 !important;
  border: 2px solid #D49635 !important;
  color: #FBF3DE !important;
  box-shadow: 0 18px 44px rgba(2, 9, 20, 0.34) !important;
}

body.car555-dashboard-page .bottom-nav,
body.car555-dashboard-page input,
body.car555-dashboard-page select,
body.car555-dashboard-page textarea,
body.ops-page-v2 input,
body.ops-page-v2 select,
body.ops-page-v2 textarea,
body.ops-page-v2 .tabs,
body.ops-page-v2 .write-banner,
body.ops-page-v2 .note-box,
body.ops-page-v2 .team-row {
  background: #07182D !important;
  border-color: rgba(212, 150, 53, 0.38) !important;
  color: #FBF3DE !important;
}

body.car555-dashboard-page .nav-item.active,
body.car555-dashboard-page .bnav-item.active,
body.ops-page-v2 .tab.active,
body.ops-page-v2 .btn-gold,
body.ops-page-v2 .btn.gold,
body.ops-page-v2 .btn-money {
  background: #D49635 !important;
  border-color: #D49635 !important;
  color: #06162A !important;
}
