* { box-sizing: border-box; margin: 0; padding: 0; }
html, body {
  overflow-x: hidden;
  max-width: 100%;
}
/* Colour tokens owned by components/betdna-theme-engine.css */
body {
  font-family: var(--bdna-font-family, system-ui, -apple-system, Segoe UI, sans-serif);
  background: var(--bg);
  color: var(--text);
  min-height: 100dvh;
  padding-bottom: 88px;
}
.skip-link {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  z-index: 9999;
  padding: 8px 16px;
  background: var(--surface);
  color: var(--text);
  text-decoration: none;
  border-radius: var(--radius);
  font-weight: 600;
}
.skip-link:focus {
  left: 12px;
  top: 12px;
  width: auto;
  height: auto;
  overflow: visible;
}
#app { max-width: 100%; overflow-x: hidden; }
.header {
  padding: 20px 16px 12px;
  background: linear-gradient(180deg, var(--bdna-header-gradient-start) 0%, var(--bdna-header-gradient-end) 100%);
}
.header-top { display: flex; align-items: center; gap: 10px; }
.header h1 { font-size: 1.5rem; font-weight: 700; }
.subtitle { color: var(--muted); font-size: 0.85rem; margin-top: 4px; }
.badge {
  font-size: 0.75rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 999px;
  letter-spacing: 0.05em;
}
.badge.live { background: #166534; color: #86efac; }
.stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 16px;
}
.stat {
  background: var(--surface);
  border-radius: var(--radius);
  padding: 12px;
  text-align: center;
}
.stat-val { display: block; font-size: 1.25rem; font-weight: 700; color: var(--accent); }
.stat-lbl { font-size: 0.75rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; }
.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 8px 12px;
}
.tab {
  flex-shrink: 0;
  padding: 8px 14px;
  border: none;
  border-radius: 999px;
  background: var(--surface);
  color: var(--muted);
  font-size: 0.85rem;
  cursor: pointer;
}
.tab.active { background: var(--bdna-secondary); color: var(--bdna-on-primary); }
main { padding: 0 12px 16px; max-width: 100%; overflow-x: hidden; }
.loading { color: var(--muted); text-align: center; padding: 40px; }
.strategy-bar {
  background: var(--surface);
  border-radius: var(--radius);
  padding: 14px;
  margin-bottom: 12px;
  border-left: 3px solid var(--accent2);
}
.strategy-bar h2 { font-size: 0.95rem; margin-bottom: 4px; }
.strategy-bar p { font-size: 0.8rem; color: var(--muted); line-height: 1.4; }
.workspace-purpose { border-left-color: var(--accent); }
.workspace-question {
  font-size: 0.85rem;
  color: var(--text);
  font-weight: 600;
  margin-bottom: 4px;
}
.workspace-kpi-note { margin-bottom: 10px; padding: 0 2px; }
.fixture-board-note { margin: 0 0 10px; padding: 0 2px; }
.workspace-evidence-link {
  margin: 0 0 12px;
  padding: 10px 14px;
  background: var(--surface);
  border-radius: var(--radius);
  border: 1px solid var(--surface2);
}
.history-metrics-primary { grid-template-columns: repeat(3, 1fr); }
.history-metrics-extra { margin-top: 8px; }
.history-metrics-extra summary { cursor: pointer; font-size: 0.8rem; color: var(--muted); }
.history-metrics-extra .history-metrics { margin-top: 8px; grid-template-columns: repeat(3, 1fr); }
.checkpoint { font-size: 0.75rem; color: var(--accent); margin-top: 6px; }

/* EP-006 ? Interface Mode Engine density gates */
#app.mode-beginner [data-info-level="important"],
#app.mode-beginner [data-info-level="expert"],
#app.mode-beginner [data-info-level="diagnostics"],
#app.mode-beginner [data-info-level="founder"],
#app.mode-guest [data-info-level="important"],
#app.mode-guest [data-info-level="expert"],
#app.mode-guest [data-info-level="diagnostics"],
#app.mode-guest [data-info-level="founder"],
#app.mode-basic [data-info-level="important"],
#app.mode-basic [data-info-level="expert"],
#app.mode-basic [data-info-level="diagnostics"],
#app.mode-basic [data-info-level="founder"] {
  display: none !important;
}
#app.mode-standard [data-info-level="expert"],
#app.mode-standard [data-info-level="diagnostics"],
#app.mode-standard [data-info-level="founder"] {
  display: none !important;
}
#app.mode-advanced [data-info-level="diagnostics"],
#app.mode-advanced [data-info-level="founder"] {
  display: none !important;
}
#app:not(.mode-founder) [data-info-level="founder"] {
  display: none !important;
}
#app.mode-founder [data-info-level="founder"] {
  display: revert !important;
}
/* LAW 024 — Founder never shows diagnostics (contracts, data-status, ops panels). */
#app.mode-founder [data-info-level="diagnostics"] {
  display: none !important;
}
.mode-switch {
  display: grid;
  gap: 8px;
  margin: 8px 0 12px;
}
.mode-switch-compact {
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}
.mode-switch-opt {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 10px 12px;
  background: var(--bg);
  border: 1px solid var(--surface2);
  border-radius: 8px;
  cursor: pointer;
  font-size: 0.8rem;
}
.mode-switch-opt.active {
  border-color: var(--accent2);
  background: rgba(59, 130, 246, 0.12);
}
.mode-switch-opt input { margin-top: 2px; accent-color: var(--accent2); }
.mode-switch-text { display: flex; flex-direction: column; gap: 2px; }
.mode-indicator {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 999px;
  background: var(--surface2);
  color: var(--muted);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.mode-indicator.mode-advanced { color: var(--accent2); }
.mode-indicator.mode-developer { color: var(--warn); }
.developer-diagnostics-panel .pred-grid { margin-top: 8px; }
.card {
  background: var(--surface);
  border-radius: var(--radius);
  padding: 16px;
  margin-bottom: 10px;
  border: 1px solid var(--surface2);
  max-width: 100%;
  overflow: hidden;
}
.card.top { border-color: var(--accent); }
.card-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 12px; }
.card-rank {
  background: var(--bdna-accent);
  color: var(--bdna-on-accent);
  font-weight: 800;
  font-size: 0.75rem;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.card-rank.example { background: var(--warn); }
.match-name { font-size: 1.05rem; font-weight: 600; word-break: break-word; overflow-wrap: anywhere; }
.meta { font-size: 0.75rem; color: var(--muted); margin-top: 2px; }
.profit {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--accent);
}
.profit.zero { color: var(--muted); }
.bets { display: grid; gap: 8px; margin-top: 12px; }
.bet-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  background: var(--bg);
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 0.85rem;
  width: 100%;
  max-width: 100%;
}
.bet-row strong { color: var(--text); }
.odds { color: var(--accent2); font-weight: 600; }
.note { font-size: 0.75rem; color: var(--warn); margin-top: 8px; }
.sure-card { border-color: var(--warn); }
.stake-ladder {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin: 12px 0;
}
.stake-step {
  background: var(--bg);
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
}
.stake-step::after { content: " ?"; color: var(--muted); }
.stake-step:last-child::after { content: ""; }
.how-section { margin-bottom: 20px; }
.how-section h3 { font-size: 1rem; margin-bottom: 8px; color: var(--accent2); }
.how-section p, .how-section li { font-size: 0.85rem; color: var(--muted); line-height: 1.5; }
.how-section ol { padding-left: 20px; }
.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  gap: 2px;
  background: var(--surface);
  border-top: 1px solid var(--surface2);
  padding: 6px 2px calc(6px + env(safe-area-inset-bottom));
  z-index: 1000;
}
.bottom-nav--home-only {
  justify-content: center;
  max-width: 140px;
  margin-left: auto;
  margin-right: auto;
  left: 0;
  right: 0;
}
.bottom-nav--home-only .nav-btn {
  flex: 1 1 auto;
}
.home-connection-lost { text-align: center; padding: 24px 16px; }
.home-connection-actions { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; align-items: center; }
.home-connection-founder code { font-size: 0.85em; }
.nav-btn {
  background: none;
  border: none;
  color: var(--muted);
  padding: 8px 1px;
  font-size: 0.62rem;
  cursor: pointer;
  border-radius: 8px;
  touch-action: manipulation;
  -webkit-tap-highlight-color: color-mix(in srgb, var(--bdna-accent) 20%, transparent);
  user-select: none;
  flex: 1 1 0;
  min-width: 0;
}
.nav-btn.active { color: var(--bdna-nav-active); background: var(--bdna-nav-active-bg); font-weight: 600; }
.nav-ic {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin: 0 auto 3px;
  border-radius: 7px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  background: var(--bdna-hover);
  color: inherit;
  line-height: 1;
}
.nav-btn.active .nav-ic {
  background: rgba(34, 197, 94, 0.22);
  color: var(--accent);
}
.nav-btn:focus-visible .nav-ic {
  box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.45);
}

.card-btn {
  width: 100%;
  text-align: left;
  cursor: pointer;
  border: 1px solid var(--surface2);
  font: inherit;
  color: inherit;
  touch-action: manipulation;
}
.card-btn.open { border-color: var(--accent2); }
.card-header-left { display: flex; align-items: center; gap: 8px; }
.lock-badge {
  font-size: 0.72rem;
  font-weight: 800;
  background: #1e3a5f;
  color: #93c5fd;
  padding: 2px 6px;
  border-radius: 4px;
  letter-spacing: 0.04em;
}
.game-block {
  background: var(--bg);
  border-radius: 8px;
  padding: 10px 12px;
  margin-top: 8px;
}
.game-label {
  font-size: 0.75rem;
  font-weight: 800;
  color: var(--accent2);
  letter-spacing: 0.06em;
  margin-bottom: 4px;
}
.game-divider {
  text-align: center;
  font-size: 0.7rem;
  color: var(--warn);
  margin: 8px 0 4px;
  font-weight: 600;
}
.card-footer { margin-top: 10px; }
.tap-hint { font-size: 0.75rem; color: var(--muted); }
.expand-panel {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed var(--surface2);
  font-size: 0.8rem;
  color: var(--muted);
  text-align: left;
}
.expand-panel ol { padding-left: 18px; margin-top: 8px; }
.expand-panel li { margin-bottom: 4px; }
.strategy-head { display: flex; align-items: center; gap: 12px; width: 100%; }
.sport-icon { font-size: 1.8rem; }
.chevron { margin-left: auto; color: var(--muted); }
.strategy-card { text-align: left; }
.small { font-size: 0.75rem; color: var(--muted); margin-top: 6px; }
.saved-msg { text-align: center; color: var(--accent); font-size: 0.9rem; margin-top: 8px; }
.tab, .tier-tab { touch-action: manipulation; cursor: pointer; }
@media (min-width: 480px) {
  #app { max-width: 480px; margin: 0 auto; }
}
@media (min-width: 768px) {
  body {
    background: linear-gradient(180deg, #0c1222 0%, var(--bg) 12%);
  }
  #app { max-width: min(720px, 100vw); }
  .bottom-nav {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: min(720px, 100vw);
    border-left: 1px solid var(--surface2);
    border-right: 1px solid var(--surface2);
  }
}
@media (min-width: 1280px) {
  #app { max-width: min(960px, 92vw); }
  .bottom-nav { width: min(960px, 92vw); }
}

.tier-tabs { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 12px 8px; }
.tier-tab.active { background: var(--bdna-warning); color: var(--bdna-on-warning); }

.tier-badge {
  font-size: 0.75rem;
  font-weight: 800;
  padding: 2px 8px;
  border-radius: 6px;
  letter-spacing: 0.06em;
  display: inline-block;
  margin-bottom: 6px;
}
.tier-badge.gold { background: #854d0e; color: #fde047; }
.tier-badge.platinum { background: #1e293b; color: #e2e8f0; border: 1px solid #94a3b8; }
.tier-badge.silver { background: #475569; color: #e2e8f0; }
.tier-badge.bronze { background: #7c2d12; color: #fdba74; }
.tier-badge.punt { background: #312e81; color: #c4b5fd; }

.pred-card.tier-platinum { border-color: #94a3b8; }
.pred-card.tier-gold { border-color: #eab308; }
.pred-card.tier-silver { border-color: #94a3b8; }
.pred-card.tier-bronze { border-color: #ea580c; }
.pred-card.tier-punt { border-color: #7c3aed; }

.pred-conf { text-align: right; }
.conf-val { font-size: 1.4rem; font-weight: 800; color: var(--accent); }
.conf-lbl { font-size: 0.75rem; color: var(--muted); }

.pred-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 12px 0;
  font-size: 0.8rem;
}
.pred-grid .lbl { display: block; font-size: 0.75rem; color: var(--muted); text-transform: uppercase; }
.market-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.market-chip {
  background: var(--bg);
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 0.7rem;
  color: var(--accent2);
}
.edge-row { font-size: 0.75rem; margin-top: 8px; }
.edge.pos { color: var(--accent); font-weight: 600; }
.lambda { font-size: 0.75rem; color: var(--muted); margin-top: 6px; }

.settings-form { display: grid; gap: 16px; }
.settings-section {
  background: var(--surface);
  border-radius: var(--radius);
  padding: 14px;
  border: 1px solid var(--surface2);
}
.settings-section h3 { font-size: 0.9rem; margin-bottom: 10px; color: var(--accent2); }
.toggle-row, .field {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-size: 0.85rem;
  padding: 6px 0;
  color: var(--muted);
}
.field input[type=number] {
  width: 72px;
  background: var(--bg);
  border: 1px solid var(--surface2);
  color: var(--text);
  border-radius: 6px;
  padding: 6px 8px;
}
.muted-box p { font-size: 0.8rem; color: var(--muted); margin: 4px 0; }
.save-btn {
  width: 100%;
  padding: 14px;
  background: var(--accent);
  color: var(--bdna-on-accent);
  font-weight: 700;
  border: none;
  border-radius: var(--radius);
  cursor: pointer;
  font-size: 1rem;
}
.badge.live { background: #166534; color: #86efac; }
#plan-badge { background: #1e3a5f; color: #93c5fd; }
.backtest-card { margin-bottom: 12px; }
.backtest-card h3 { font-size: 0.95rem; margin-bottom: 10px; color: var(--accent2); }
.backtest-card h4 { font-size: 0.8rem; color: var(--muted); margin: 10px 0 6px; }
.sub-section { margin-top: 8px; }
.metric-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.metric-cell {
  background: var(--bg);
  border-radius: 8px;
  padding: 10px;
  text-align: center;
}
.metric-lbl { display: block; font-size: 0.75rem; color: var(--muted); text-transform: uppercase; }
.metric-val { display: block; font-size: 1.1rem; color: var(--accent); margin-top: 4px; }
.metric-sub { display: block; font-size: 0.75rem; color: var(--muted); margin-top: 2px; }
.league-row span:last-child { font-size: 0.75rem; color: var(--muted); }
.insight-list { padding-left: 18px; font-size: 0.8rem; color: var(--muted); line-height: 1.5; }
.insight-list li { margin-bottom: 8px; }
.insight-card { border-left: 3px solid var(--warn); }
.approved-strat { margin-bottom: 12px; border-left: 3px solid var(--accent); }
.approved-strat.top { border-left-color: var(--warn); }
.approved-strat .small { font-size: 0.75rem; margin-top: 8px; }
.free-badge { background: #166534; color: #bbf7d0; font-size: 0.75rem; padding: 2px 6px; border-radius: 4px; }
.acca-card { margin-bottom: 12px; text-align: left; width: 100%; }
.acca-legs { margin-top: 8px; }
.acca-leg { font-size: 0.78rem; padding: 6px 0; border-bottom: 1px solid var(--surface2); }
.acca-leg.hit { color: #86efac; }
.acca-leg.miss { color: #fca5a5; }
.acca-legs-panel { margin-top: 8px; }
.hidden { display: none; }
.btn-primary {
  width: 100%;
  margin: 12px 0;
  padding: 12px 16px;
  min-height: 48px;
  border: none;
  border-radius: var(--bdna-radius-sm);
  background: var(--bdna-btn-primary-bg);
  color: var(--bdna-btn-primary-text);
  font-weight: 700;
  font-size: 0.9rem;
  cursor: pointer;
  touch-action: manipulation;
}
.btn-primary:focus-visible {
  outline: 2px solid var(--accent2);
  outline-offset: 2px;
}
.btn-primary:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.learning-card { margin-bottom: 12px; }
.learning-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 10px 0; }
.learning-block { margin-top: 12px; }
.learning-head { display: flex; gap: 8px; align-items: center; font-size: 0.8rem; margin-bottom: 4px; }
.link-btn { background: none; border: none; color: var(--accent); font-size: 0.75rem; cursor: pointer; padding: 4px 0; }
.header-home-btn { color: inherit; font-size: inherit; font-weight: inherit; font-family: inherit; padding: 0; text-align: left; }
.header-home-btn:hover, .header-home-btn:focus-visible { color: var(--accent); text-decoration: underline; }
.bet-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 10px;
  width: 100%;
  max-width: 100%;
}
.bet-links-compact { margin-top: 6px; gap: 6px; }
.bet-link {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  padding: 12px 14px;
  border-radius: 10px;
  text-decoration: none;
  font-size: 0.88rem;
  font-weight: 600;
  min-height: 48px;
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(34, 197, 94, 0.25);
  line-height: 1.25;
}
.bet-link.bet365 {
  background: linear-gradient(135deg, #14532d 0%, #166534 100%);
  color: #ecfdf5;
  border: 1px solid #22c55e;
}
.bet-link.compare {
  background: var(--surface2);
  color: var(--text);
  align-items: center;
  text-align: center;
  font-size: 0.8rem;
  font-weight: 500;
  min-height: 44px;
}
.bet-link-title { font-weight: 700; }
.bet-link-sub {
  font-size: 0.72rem;
  font-weight: 400;
  opacity: 0.92;
  margin-top: 3px;
  line-height: 1.35;
  word-break: break-word;
  overflow-wrap: anywhere;
  max-width: 100%;
}
.acca-leg-block { margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid var(--surface2); }

/* Multi-book odds comparison */
.odds-compare-wrap { margin-top: 8px; }
.odds-compare-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.odds-table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--surface2);
  border-radius: 10px;
}
.odds-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
  min-width: 420px;
}
.odds-table th,
.odds-table td {
  padding: 8px 10px;
  text-align: center;
  border-bottom: 1px solid var(--surface2);
}
.odds-table th:first-child,
.odds-table td.odds-book {
  text-align: left;
  font-weight: 600;
  white-space: nowrap;
}
.odds-table thead th {
  background: var(--surface2);
  color: var(--muted);
  font-weight: 600;
}
.odds-cell.best {
  background: rgba(34, 197, 94, 0.15);
  color: #86efac;
  font-weight: 700;
}
.odds-cell.pick {
  box-shadow: inset 0 0 0 2px #fbbf24;
}
.odds-cell.empty { color: var(--muted); opacity: 0.5; }
.odds-row.aggregate td.odds-book { font-style: italic; color: var(--muted); }
.odds-best-bar {
  margin: 0 0 8px;
  padding: 8px 10px;
  background: rgba(34, 197, 94, 0.08);
  border-radius: 8px;
  font-size: 0.82rem;
}
.fixture-day-row {
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.compare-row { margin-top: 10px; }

/* Season game mode */
.game-hero { text-align: center; }
.game-sub { margin: 8px 0; }
.game-leader-list { display: flex; flex-direction: column; gap: 8px; }
.game-leader-row {
  display: grid;
  grid-template-columns: 28px 28px 1fr auto;
  gap: 10px;
  align-items: center;
  width: 100%;
  padding: 12px;
  border: 1px solid var(--surface2);
  border-radius: 10px;
  background: var(--surface);
  cursor: pointer;
  text-align: left;
  color: inherit;
}
.game-leader-row.active { border-color: var(--accent); background: rgba(34, 197, 94, 0.06); }
.game-leader-mid { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.game-leader-end { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.game-rank { font-weight: 700; color: var(--muted); }
.game-icon { font-size: 1.2rem; }
.game-pot { display: flex; flex-direction: column; gap: 4px; margin-top: 8px; font-size: 1.05rem; }
.chart-legend { display: flex; flex-wrap: wrap; gap: 8px 12px; margin-top: 8px; font-size: 0.72rem; }
.chart-legend-item { display: inline-flex; align-items: center; gap: 4px; }
.chart-legend-item i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; }
.hit-bar-row { display: grid; grid-template-columns: 80px 1fr auto; gap: 8px; align-items: center; margin-bottom: 8px; font-size: 0.78rem; }
.hit-bar-track { height: 8px; background: var(--surface2); border-radius: 4px; overflow: hidden; }
.hit-bar-fill { height: 100%; background: var(--accent); border-radius: 4px; }
.game-stat-row { display: flex; justify-content: space-between; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--surface2); font-size: 0.85rem; }
.game-pred-row { padding: 10px 0; border-bottom: 1px solid var(--surface2); }
.game-pred-row.hit { border-left: 3px solid #22c55e; padding-left: 8px; }
.game-pred-row.miss { border-left: 3px solid #64748b; padding-left: 8px; }
.game-pred-top { display: flex; justify-content: space-between; font-size: 0.78rem; color: var(--muted); }
.game-sport-row { display: grid; grid-template-columns: 32px 1fr auto; gap: 10px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--surface2); }
.game-strat-list { margin: 8px 0 0 16px; font-size: 0.88rem; line-height: 1.6; }
.season-chart { min-height: 100px; }
.game-fixture-row {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 10px;
  padding: 12px 0;
  border-bottom: 1px solid var(--surface2);
  opacity: 0.65;
}
.game-fixture-row.selected { opacity: 1; }
.game-fixture-check { display: flex; align-items: flex-start; padding-top: 4px; }
.game-fixture-check input { width: 18px; height: 18px; }
.game-fixture-pick { display: grid; grid-template-columns: 1fr 90px; gap: 8px; margin-top: 8px; }
.game-day-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.pot-lbl { font-size: 0.72rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; }
.game-strategy-bar .strategy-bar-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.info-btn {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--surface2);
  background: var(--surface);
  color: var(--accent);
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  line-height: 1;
}
.info-btn:hover { border-color: var(--accent); background: rgba(34, 197, 94, 0.08); }
.game-help-panel { border-left: 3px solid var(--accent); }
.game-help-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.game-help-head h3 { margin: 0; font-size: 0.95rem; }
.game-data-trust { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--surface2); }
.game-data-trust ul { margin: 6px 0 0 16px; line-height: 1.6; }
.game-status-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.game-status-pill {
  font-size: 0.72rem;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--surface2);
}
.game-status-pill.pos { background: rgba(34, 197, 94, 0.15); color: #86efac; }
.game-busy-banner {
  text-align: center;
  padding: 8px 12px;
  margin-bottom: 10px;
  border-radius: 8px;
  background: rgba(59, 130, 246, 0.12);
  color: #93c5fd;
  font-size: 0.85rem;
}
.game-fixture-list { max-height: 65vh; overflow-y: auto; }
.game-bet-slip-panel {
  position: sticky;
  bottom: 0;
  z-index: 4;
  margin: 8px 0 0;
  max-width: 100%;
  overflow-x: hidden;
}
.game-bet-slip-bar {
  position: sticky;
  bottom: 0;
  z-index: 3;
  margin: 8px 0 0;
  padding: 8px 10px;
  background: var(--bdna-card, var(--card, #1e293b));
  border-top: 1px solid var(--border, #334155);
  max-width: 100%;
  overflow-wrap: anywhere;
}
.game-betting-card {
  margin: 0 0 8px;
  padding: 6px 0;
  border-bottom: 1px solid var(--border, #334155);
}
@media (max-width: 720px) {
  .game-bet-slip-panel {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 0;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0));
    background: var(--bdna-card, var(--card, #0f172a));
    border-top: 1px solid var(--border, #334155);
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.35);
  }
  .game-bet-slip-bar {
    position: static;
    margin: 0;
    border-top: 0;
    padding: 0;
  }
  .game-fixture-list { padding-bottom: 88px; }
}
.ufc-play-desk .ufc-departments { gap: 6px; }
.game-fixture-row.selected {
  opacity: 1;
  background: rgba(34, 197, 94, 0.04);
  border-radius: 8px;
  padding-left: 4px;
  padding-right: 4px;
}
.game-quick-btns { flex-wrap: wrap; }
.game-review-hero { text-align: left; }
.game-review-list .game-fixture-row { opacity: 1; pointer-events: none; }
.game-locked-note {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(34, 197, 94, 0.06);
  border-left: 3px solid var(--accent);
}
.game-loop-hint { margin-top: 10px; font-size: 0.78rem; }
.game-theatre-progress { text-align: left; }
.game-theatre-progress h3 { margin: 4px 0; }
.game-full-theatre { margin-top: 8px; max-width: 100%; overflow-x: hidden; }
.ste-day-theatre { padding: 10px 12px; }
.ste-day-theatre--watch .ptm-pitch-host--watch {
  margin: 8px 0 4px;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 0 0 1px rgba(255,255,255,0.06);
}
.ste-day-theatre--watch .ptm-pitch-host--watch .me-canvas {
  width: 100%;
  max-width: 100%;
  height: auto;
  min-height: 340px;
  aspect-ratio: 800 / 520;
  display: block;
  background: #1a3d2e;
}
.ste-day-theatre--game .ptm-scoreboard.is-goal-flash .ptm-score,
.ptm-scoreboard.is-goal-flash .ptm-score {
  color: #fbbf24;
  text-shadow: 0 0 18px rgba(251, 191, 36, 0.55);
  transform: scale(1.08);
  transition: transform 0.2s ease, color 0.2s ease;
}
.ste-day-theatre--game .ptm-timeline--compact {
  max-height: 4.2em;
  overflow: hidden;
  margin-top: 4px;
  font-size: 0.78rem;
  opacity: 0.72;
}
.ste-day-theatre--game .ptm-phase--quiet,
.ste-day-theatre--game .ptm-phase[hidden] {
  display: none !important;
  margin: 0;
  height: 0;
}
.ste-day-theatre--game .ptm-commentary {
  margin-top: 6px;
}
.ste-day-theatre--game .ptm-commentary-line {
  font-size: 0.92rem;
  line-height: 1.35;
}
/* Theatre immersion — pitch owns the viewport; Home dock yields. */
html.theatre-immersive .bottom-nav,
body.theatre-immersive .bottom-nav,
html.theatre-immersive #bottom-nav,
body.theatre-immersive #bottom-nav {
  transform: translateY(110%);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.25s ease, opacity 0.2s ease;
}
html.theatre-immersive .game-full-theatre,
body.theatre-immersive .game-full-theatre {
  padding-bottom: 8px;
}
@media (max-width: 720px) {
  .ste-day-theatre--watch .ptm-pitch-host--watch .me-canvas {
    min-height: min(68vh, 520px);
  }
  .ste-day-theatre--game {
    padding: 6px 8px 4px;
  }
  .ste-day-theatre--game .ptm-scoreboard {
    margin-bottom: 4px;
    gap: 2px 8px;
  }
  .ste-day-theatre--game .ptm-score {
    font-size: 1.15rem;
  }
  .ste-day-theatre--game .ptm-controls {
    position: sticky;
    bottom: 0;
    z-index: 5;
    padding: 8px 0 4px;
    background: linear-gradient(transparent, rgba(15, 23, 42, 0.92) 35%);
  }
}
.ste-day-theatre--watch .ptm-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-top: 10px;
}
.ste-day-theatre--watch .ptm-watch-hint { margin: 6px 0 0; opacity: 0.65; }
.ste-day-theatre--watch .pex-meters,
.ste-day-theatre--watch .pex-atmosphere { display: none !important; }
/* Developer telemetry clarity stays hidden; immersive story strip is Founder-visible (RC-006). */
.ste-day-theatre--watch .ptr-clarity:not(.ptr-clarity--immersive) { display: none !important; }
/* Founder journey — ops chrome must not occupy the decision path (LAW 024 / Founder UX). */
#app.mode-founder #global-status-bar,
#app.mode-founder #pex-page-health-host,
#app.mode-founder #live-intel-bar-host,
#app.mode-founder #wsp-quick-bar-host,
#app.mode-founder #live-stale-host,
#app.mode-founder #live-timeline-panel,
#app.mode-founder .pex-status-bar,
#app.mode-founder .pex-page-health,
#app.mode-founder .pex-journey-health,
#app.mode-founder .usmc-matrix,
#app.mode-founder .siw-hunt-tools {
  display: none !important;
}

/* Founder Product Review — developer chrome never visible outside Developer mode. */
html:not([data-interface-mode="developer"]) .ste-highlights,
html:not([data-interface-mode="developer"]) .ste-highlights--developer,
html:not([data-interface-mode="developer"]) .me-toolbar,
html:not([data-interface-mode="developer"]) .bde-highlight-rail,
html:not([data-interface-mode="developer"]) .bd-highlight-rail,
html:not([data-interface-mode="developer"]) .me-five-second-bar,
html:not([data-interface-mode="developer"]) .me-ai-bar,
html:not([data-interface-mode="developer"]) .me-intel-bar,
html:not([data-interface-mode="developer"]) .ptr-clarity:not(.ptr-clarity--immersive) {
  display: none !important;
}
.ptr-clarity--immersive {
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
  margin: 0 0 8px;
  border-radius: 8px;
  background: rgba(15, 23, 42, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 0.8rem;
}
.ste-day-theatre--watch .ptm-timeline--live {
  max-height: 120px;
  margin-top: 6px;
}
.ptm-scoreboard {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  grid-template-rows: auto auto;
  gap: 4px 12px;
  align-items: center;
  margin-bottom: 10px;
}
.ptm-team-home { text-align: right; }
.ptm-team-away { text-align: left; }
.ptm-score { grid-column: 2; font-size: 1.35rem; font-weight: 700; text-align: center; }
.ptm-clock { grid-column: 1 / -1; text-align: center; font-weight: 600; }
.ptm-phase { grid-column: 1 / -1; text-align: center; }
.ptm-pitch-host { max-width: 100%; overflow: hidden; }
.ptm-pitch-host .me-toolbar,
.ptm-pitch-host .me-five-second-bar,
.ptm-pitch-host .me-intel-bar,
.ptm-pitch-host .me-ai-bar,
.ptm-pitch-host .me-state-bar { display: none; }
.ptm-pitch-host .me-canvas { width: 100%; max-width: 100%; height: auto; min-height: 200px; }
.ptm-commentary { margin: 10px 0; padding: 10px 12px; border-radius: 8px; background: var(--surface2, rgba(255,255,255,0.04)); }
.ptm-commentary-line { margin: 0; line-height: 1.45; }
.ptm-timeline {
  list-style: none;
  margin: 8px 0 12px;
  padding: 0;
  max-height: 160px;
  overflow-y: auto;
  border-left: 2px solid rgba(255,255,255,0.12);
}
.ptm-timeline-row {
  display: grid;
  grid-template-columns: 4.5rem 1fr;
  gap: 8px;
  padding: 3px 0 3px 10px;
  font-size: 0.85rem;
  opacity: 0.55;
}
.ptm-timeline-row.is-passed { opacity: 0.85; }
.ptm-timeline-row.is-current {
  opacity: 1;
  font-weight: 600;
}
.ptm-timeline-clock { opacity: 0.8; }
.ptm-stats { margin: 0 0 8px; text-align: center; }
.ptm-law { margin: 0 0 8px; font-size: 0.72rem; opacity: 0.6; }
.ptm-highlights { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.ptm-hl-btn {
  padding: 4px 10px; border-radius: 999px; border: 1px solid var(--border, rgba(255,255,255,0.12));
  background: transparent; font-size: 0.72rem; cursor: pointer;
}
.ptm-controls { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* Match Theatre Renderer ? alive clarity */
.ptr-clarity {
  display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; justify-content: center;
  padding: 8px 10px; margin-bottom: 8px; border-radius: 8px;
  background: rgba(15,23,42,0.45); border: 1px solid rgba(255,255,255,0.08);
  font-size: 0.78rem;
}
.ptr-poss-home { color: #93c5fd; font-weight: 600; }
.ptr-poss-away { color: #fca5a5; font-weight: 600; }
.ptr-danger-low { opacity: 0.65; }
.ptr-danger-medium { color: #fde047; font-weight: 600; }
.ptr-danger-high { color: #fbbf24; font-weight: 700; }
.ptr-mom { opacity: 0.75; }
.ptr-bet { font-weight: 600; padding: 2px 8px; border-radius: 6px; }
.ptr-bet-win { color: #86efac; background: rgba(34,197,94,0.12); }
.ptr-bet-lose { color: #fca5a5; background: rgba(239,68,68,0.12); }
.ptr-bet-live { color: #fde68a; background: rgba(251,191,36,0.1); }
.me-pitch-shell--alive .me-canvas { display: block; width: 100%; height: auto; border-radius: 8px; }
.ptr-break-overlay {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  background: rgba(15,23,42,0.72); z-index: 4; border-radius: inherit;
}
.ste-day-theatre { position: relative; }
.game-full-theatre { position: relative; max-width: 100%; overflow-x: hidden; }
.game-theatre-watch .betdna-workspace-header,
.game-theatre-watch .workspace-purpose,
.game-theatre-watch [data-home-root],
.game-theatre-watch .piw-season-tools > .game-strategy-bar { display: none !important; }
.game-theatre-watch .game-theatre-kicker { margin: 0 0 6px; }
.game-theatre-kicker { margin: 0 0 8px; text-align: center; }
.game-day-bar { padding: 10px 14px; }
.game-day-bar .game-day-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.game-day-bar h3 { margin: 0; }
.game-mini-stats--compact { grid-template-columns: repeat(2, 1fr); }
.ste-day-theatre { max-width: 100%; overflow-x: hidden; }
.ptm-scoreboard { flex-wrap: wrap; justify-content: center; gap: 6px 12px; }
.ptr-break-card {
  padding: 16px 18px; border-radius: 12px; background: var(--surface, #1e293b);
  border: 1px solid rgba(255,255,255,0.12); max-width: 320px; width: 90%;
  display: flex; flex-direction: column; gap: 10px;
}
.ptr-break-title { margin: 0; text-align: center; }
.ptr-break-body { display: flex; flex-direction: column; gap: 6px; }
.ptr-break-row { display: flex; justify-content: space-between; gap: 12px; font-size: 0.82rem; }
.ptr-break-k { opacity: 0.65; }
.ptr-break-continue { align-self: center; margin-top: 4px; }
.ste-day-theatre .ste-anim-flash,
.ste-day-theatre .pex-story-caption--event { animation: none !important; }
.game-mini-summary { text-align: left; }
.game-mini-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px 12px;
  margin: 12px 0;
  font-size: 0.82rem;
}
.pie-day-end { margin-bottom: 12px; }
.pie-day-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px 12px;
  margin: 12px 0;
  font-size: 0.82rem;
}
.pie-day-grid div { display: flex; flex-direction: column; gap: 2px; }
.pie-day-grid dt { color: var(--muted); font-size: 0.72rem; }
.pie-day-grid dd { margin: 0; font-weight: 600; }
.pie-day-highlights { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.pie-cookie-moment { color: var(--accent, #f59e0b); }
.ste-highlights {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0;
}
.ste-day-theatre .pex-learning-moment,
.ste-day-theatre .pex-historical,
.ste-day-theatre .pex-header { display: none !important; }
.game-mini-stats div { display: flex; flex-direction: column; gap: 2px; }
.game-mini-stats dt { color: var(--muted); font-size: 0.72rem; }
.game-mini-stats dd { margin: 0; font-weight: 600; }
.game-theatre-recap { margin-bottom: 12px; }
.game-settled-matches { display: flex; flex-direction: column; gap: 8px; }
.game-settled-match {
  padding: 10px;
  border-radius: 8px;
  background: var(--surface2);
  border-left: 3px solid var(--muted);
}
.game-settled-match.win { border-left-color: #22c55e; }
.game-settled-match.loss { border-left-color: #64748b; }
.game-settled-top { display: flex; justify-content: space-between; gap: 8px; }
.game-compare-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.game-compare-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px;
  border-radius: 8px;
  background: var(--surface2);
  font-size: 0.82rem;
}
.game-compare-cell .lbl { color: var(--muted); font-size: 0.72rem; }
.game-compare-cell strong { font-size: 1.1rem; }
.lab-bank-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
.lab-bank-field { font-size: 0.78rem; }
.lab-bank-field input { width: 100%; margin-top: 2px; }
.lab-results-panel .table-scroll { max-height: 320px; overflow: auto; }
.row-win td { background: rgba(34, 197, 94, 0.08); }
.row-loss td { background: rgba(239, 68, 68, 0.06); }
.chart-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin: 12px 0; }
.btn-link.game-leader-row { width: 100%; text-align: left; cursor: pointer; border: none; background: transparent; }
.chart-spark { display: block; margin: 8px 0; max-width: 100%; }
@media (min-width: 520px) {
  .lab-bank-grid { grid-template-columns: repeat(5, 1fr); }
}
@media (max-width: 520px) {
  .game-fixture-pick { grid-template-columns: 1fr; }
  .game-compare-grid { grid-template-columns: 1fr; }
  .game-quick-btns .btn-sm { flex: 1 1 45%; }
}
.acca-leg-block:last-child { border-bottom: none; }
.acca-leg-match, .acca-leg-pick { word-break: break-word; overflow-wrap: anywhere; max-width: 100%; }

/* History tab */
.history-controls { margin-bottom: 12px; }
.history-select {
  width: 100%;
  padding: 10px;
  border-radius: 8px;
  border: 1px solid var(--surface2);
  background: var(--bg);
  color: var(--text);
  font-size: 0.85rem;
  margin-top: 4px;
}
.history-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 12px 0;
}
.history-metrics .lbl { display: block; font-size: 0.75rem; color: var(--muted); text-transform: uppercase; }
.history-metrics strong { font-size: 0.95rem; }
.history-metrics .pos { color: var(--accent); }
.history-metrics .neg { color: #f87171; }
.bankroll-chart {
  width: 100%;
  height: 80px;
  margin: 10px 0;
  border-radius: 8px;
  background: var(--bg);
}
.filter-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
}
.filter-lbl { font-size: 0.7rem; color: var(--muted); min-width: 42px; }
.filter-chip {
  padding: 5px 10px;
  border-radius: 999px;
  border: 1px solid var(--surface2);
  background: var(--bg);
  color: var(--muted);
  font-size: 0.7rem;
  cursor: pointer;
}
/* G16: was color: var(--bdna-on-primary) - the GREEN primary's on-colour used
   on a BLUE fill, measured 4.05:1. --bdna-on-secondary is 5.14:1. */
.filter-chip.active { background: var(--bdna-secondary); color: var(--bdna-on-secondary, var(--bdna-on-primary)); border-color: var(--bdna-secondary); }
.history-list-title {
  font-size: 0.85rem;
  color: var(--muted);
  margin: 8px 0 10px;
  padding: 0 4px;
}
.history-row {
  background: var(--surface);
  border-radius: var(--radius);
  padding: 12px;
  margin-bottom: 8px;
  border-left: 3px solid var(--surface2);
}
.history-row.win { border-left-color: var(--accent); }
.history-row.loss { border-left-color: #f87171; }
.history-row.draw { border-left-color: var(--warn); }
.history-row-top {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.history-date { font-size: 0.75rem; color: var(--muted); flex: 1; }
.history-pnl { font-weight: 700; font-size: 0.9rem; }
.history-pnl.pos { color: var(--accent); }
.history-pnl.neg { color: #f87171; }
.history-match { font-weight: 600; font-size: 0.9rem; margin-bottom: 4px; word-break: break-word; overflow-wrap: anywhere; }
.history-meta { word-break: break-word; overflow-wrap: anywhere; }
.history-meta { font-size: 0.75rem; color: var(--muted); line-height: 1.4; }
.history-meta.g2 { margin-top: 4px; font-style: italic; }
.history-foot { font-size: 0.7rem; color: var(--muted); margin-top: 6px; }
.result-badge {
  font-size: 0.72rem;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: 4px;
  letter-spacing: 0.04em;
}
.result-badge.hit { background: #166534; color: #86efac; }
.result-badge.miss { background: #7f1d1d; color: #fca5a5; }
.result-badge.draw { background: #78350f; color: #fcd34d; }
.history-backtest { margin-top: 12px; }
.history-backtest summary { cursor: pointer; font-weight: 600; }
.small.muted { color: var(--muted); font-size: 0.75rem; }

/* Home hub & navigation */
.nav-ic { display: block; font-size: 1.1rem; line-height: 1.2; }
.hub-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-bottom: 16px;
}
.hub-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 14px 12px;
  background: var(--surface);
  border: 1px solid var(--surface2);
  border-radius: var(--radius);
  color: inherit;
  text-align: left;
  cursor: pointer;
  touch-action: manipulation;
  min-height: 88px;
}
.hub-card:active { background: var(--surface2); }
.hub-icon { font-size: 1.5rem; }
.hub-title { font-weight: 700; font-size: 0.9rem; }
.hub-desc { font-size: 0.72rem; color: var(--muted); line-height: 1.35; }
.welcome-bar { border-left-color: var(--accent); }
.steps-card { margin-bottom: 12px; }
.section-title { font-size: 0.95rem; margin-bottom: 8px; }
.steps-list {
  padding-left: 20px;
  font-size: 0.85rem;
  color: var(--muted);
  line-height: 1.55;
}
.steps-list li { margin-bottom: 6px; }
.highlight-card { border-left: 3px solid var(--warn); margin-bottom: 12px; }
.btn-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 10px;
}
.btn-secondary {
  width: 100%;
  padding: 12px 16px;
  min-height: 48px;
  border: 1px solid var(--bdna-btn-secondary-border);
  border-radius: var(--bdna-radius-sm);
  background: var(--bdna-btn-secondary-bg);
  color: var(--bdna-btn-secondary-text);
  font-weight: 600;
  font-size: 0.88rem;
  cursor: pointer;
  touch-action: manipulation;
}
.btn-secondary:focus-visible {
  outline: 2px solid var(--bdna-focus);
  outline-offset: 2px;
}
.btn-secondary:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.btn-utility {
  padding: 10px 14px;
  min-height: 44px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--text-secondary);
  font-weight: 600;
  font-size: 0.85rem;
  cursor: pointer;
  touch-action: manipulation;
}
.btn-utility:focus-visible {
  outline: 2px solid var(--accent2);
  outline-offset: 2px;
}
.btn-danger {
  background: var(--bdna-btn-danger-bg);
  color: var(--bdna-btn-danger-text);
  border: 1px solid var(--bdna-danger-border);
}
.btn-secondary:active { background: var(--bg); }
.btn-sm { padding: 10px; font-size: 0.8rem; margin: 8px 0 0; }
.empty-state {
  text-align: center;
  padding: 28px 16px;
  background: var(--surface);
  border-radius: var(--radius);
  margin-bottom: 12px;
  border: 1px dashed var(--surface2);
}
.betdna-empty-state {
  border: 1px dashed var(--surface2);
}
.betdna-empty-state::before {
  content: "";
  display: block;
  width: 36px;
  height: 36px;
  margin: 0 auto 12px;
  border-radius: 50%;
  border: 2px solid var(--surface2);
  opacity: 0.7;
}
.empty-title { font-weight: 700; font-size: 1rem; margin-bottom: 8px; }
.empty-msg { font-size: 0.85rem; color: var(--muted); margin-bottom: 16px; line-height: 1.45; }
.quick-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--surface2);
}
.quick-link {
  flex: 1 1 calc(50% - 4px);
  min-width: 0;
  padding: 10px 8px;
  border: 1px solid var(--surface2);
  border-radius: 8px;
  background: var(--surface);
  color: var(--muted);
  font-size: 0.78rem;
  cursor: pointer;
  touch-action: manipulation;
}
.quick-link:active { color: var(--accent); border-color: var(--accent); }
.quick-access-bar.is-hidden { display: none; }
.quick-access-bar {
  display: flex;
  gap: 6px;
  padding: 6px 10px;
  background: var(--surface);
  border-bottom: 1px solid var(--surface2);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.qa-btn {
  flex: 1 0 auto;
  min-width: 0;
  padding: 7px 10px;
  border: 1px solid var(--surface2);
  border-radius: 999px;
  background: transparent;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  touch-action: manipulation;
}
.qa-btn.active {
  color: var(--accent);
  border-color: rgba(34, 197, 94, 0.45);
  background: rgba(34, 197, 94, 0.1);
  font-weight: 600;
}
.qa-btn:active { opacity: 0.85; }
.hub-primary-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
.hub-primary-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 14px 12px;
  border: 1px solid var(--surface2);
  border-radius: 12px;
  background: var(--surface);
  color: inherit;
  text-align: left;
  cursor: pointer;
  touch-action: manipulation;
}
.hub-primary-card:active { background: var(--surface2); }
.hub-primary-card strong { font-size: 0.95rem; }
.hub-primary-card span { font-size: 0.72rem; color: var(--muted); line-height: 1.35; }
.quick-jump-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.quick-jump-btn {
  padding: 12px 6px;
  border: 1px solid var(--surface2);
  border-radius: 8px;
  background: var(--bg);
  color: var(--text);
  font-size: 0.75rem;
  cursor: pointer;
  touch-action: manipulation;
}
.quick-jump-btn:active { border-color: var(--accent2); }
.help-section { margin-top: 12px; }
.footer-note {
  text-align: center;
  font-size: 0.72rem;
  color: var(--muted);
  margin: 16px 0 8px;
  line-height: 1.4;
}
.saved-msg { color: var(--accent); font-size: 0.85rem; text-align: center; }
.saved-msg.neg { color: #f87171; }
.warn-note { color: var(--warn); }
.warn-txt { color: var(--warn); }
.activity-log { margin-top: 12px; }
.log-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.log-list { max-height: 220px; overflow-y: auto; font-size: 0.75rem; }
.log-row { display: grid; grid-template-columns: 52px 1fr; gap: 4px 8px; padding: 6px 0; border-bottom: 1px solid var(--surface2); }
.log-row .log-detail { grid-column: 2; color: var(--muted); font-size: 0.7rem; }
.log-time { color: var(--muted); font-family: monospace; }
.log-msg { color: var(--text); }

/* Career Manager */
.career-hero {
  background: linear-gradient(135deg, #0f2744 0%, #0f172a 60%);
  border: 1px solid #1e3a5f;
  border-radius: var(--radius);
  padding: 16px;
  margin-bottom: 12px;
}
.career-hero-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.career-hero h2 { font-size: 1.2rem; margin: 0; }
.career-sub { font-size: 0.8rem; color: var(--muted); margin: 4px 0 0; }
.career-pot { text-align: right; }
.career-pot strong { display: block; font-size: 1.6rem; color: var(--accent); }
.pot-lbl { font-size: 0.75rem; color: var(--muted); text-transform: uppercase; }
.pot-delta { font-size: 0.75rem; color: var(--muted); }
.career-progress { margin-top: 12px; }
.progress-bar { height: 6px; background: var(--surface2); border-radius: 3px; overflow: hidden; margin-bottom: 6px; }
.progress-fill { height: 100%; background: linear-gradient(90deg, #22c55e, #38bdf8); border-radius: 3px; }
.career-chip-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.career-chip {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  min-width: 64px; padding: 8px 10px; border-radius: 10px;
  background: var(--bg); border: 1px solid var(--surface2);
  color: var(--text); cursor: pointer; font-size: 0.7rem;
}
.career-chip.active { border-color: var(--accent); background: #0f2a1a; }
.chip-id { font-weight: 700; color: var(--accent2); }
.chip-end { font-size: 0.75rem; color: var(--muted); }
.tactics-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 10px 0; }
.market-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2px; }
.toggle-row.compact { padding: 4px 0; font-size: 0.78rem; }
.career-runs { font-size: 0.75rem; }
.career-run-row { display: grid; grid-template-columns: 28px 1fr 48px 56px; gap: 6px; padding: 4px 0; border-bottom: 1px solid var(--surface2); font-size: 0.75rem; }
.career-run-row.best { border-left: 2px solid var(--accent); padding-left: 6px; }
.career-strats h3, .career-tactics h3, .career-ai h3 { font-size: 0.9rem; color: var(--accent2); margin-bottom: 6px; }
.career-tactics h4 { font-size: 0.8rem; color: var(--muted); margin: 12px 0 6px; }
.warn-card { border-left: 3px solid #f59e0b; margin-bottom: 12px; }
.warn-card strong { color: #fbbf24; }
.report-meta-banner, .dashboard-runtime-banner { margin-bottom: 12px; }
#recovery-host { margin: 0 12px 8px; }
.intelligence-recovery-banner { border-left: 4px solid var(--accent2); }
.recovery-title { font-size: 0.95rem; margin: 0 0 6px; color: var(--accent2); }
.recovery-steps { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 4px; }
.recovery-step { font-size: 0.82rem; display: flex; align-items: center; gap: 8px; color: var(--muted); }
.recovery-step.recovery-active { color: var(--text); font-weight: 600; }
.recovery-step.recovery-done { color: var(--pos, #22c55e); }
.recovery-icon { width: 1.1em; text-align: center; font-weight: 700; }
.report-meta-banner .report-runtime-status { color: var(--accent2); font-weight: 600; }
.report-strategy-intel { margin-bottom: 12px; }
.report-intel-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px 12px; margin-top: 8px; }
.report-intel-cell .lbl { display: block; font-size: 0.72rem; color: var(--muted); margin-bottom: 2px; }
.report-intel-rec { margin-top: 8px; }
.product-action-funnel { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin-bottom: 12px; }
.product-funnel-step { display: flex; flex-direction: column; gap: 4px; padding: 8px 10px; border-radius: 8px; background: var(--bg); }
.product-funnel-step.is-current { outline: 1px solid var(--accent2); }
.product-funnel-num { font-size: 0.72rem; color: var(--muted); font-weight: 600; }
.product-glossary-chip { text-decoration: underline dotted; cursor: help; margin-right: 8px; }
.product-help-panel { margin-bottom: 12px; }
.product-kpi-legend { margin: 6px 0 10px; }
.code-block {
  background: var(--bg);
  padding: 10px;
  border-radius: 8px;
  font-size: 0.72rem;
  overflow-x: auto;
  margin: 8px 0;
  white-space: pre;
}

.today-card { border-left: 3px solid var(--accent); margin-bottom: 12px; }
.today-header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 12px; }
.today-updated { font-size: 0.72rem; color: var(--muted); }
.today-block { margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px dashed var(--surface2); }
.today-block:last-of-type { border-bottom: none; }
.today-block h4 { font-size: 0.8rem; color: var(--accent2); margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.04em; }
.today-punt { margin-bottom: 12px; }
.today-punt-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 4px; }
.today-acca { padding: 8px 0; border-bottom: 1px solid var(--surface2); }
.today-acca:last-child { border-bottom: none; }
.bet-card-learn {
  background: var(--surface);
  border-radius: var(--radius);
  padding: 12px;
  margin-bottom: 10px;
  border-left: 3px solid var(--surface2);
}
.bet-card-learn.win { border-left-color: var(--accent); }
.bet-card-learn.loss { border-left-color: #f87171; }
.bet-card-learn.compact { padding: 10px; margin-bottom: 8px; }
.bet-card-top { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 6px; }
.band-tier { display: flex; align-items: center; gap: 8px; margin: 10px 0 6px; flex-wrap: wrap; }
.diversified-card { margin-bottom: 12px; }
.fixture-row {
  width: 100%;
  text-align: left;
  margin-bottom: 10px;
  padding: 14px;
  background: var(--surface);
  border-radius: var(--radius);
  border: 1px solid var(--surface2);
}
.fixture-row.open { border-color: var(--accent2); }
.fixture-row-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 6px; }
.fixture-row-left { display: flex; gap: 6px; align-items: center; }
.fixture-row-pick { font-size: 0.85rem; margin-top: 4px; }
.fixture-expand { text-align: left; }
.fixture-day-row { margin-bottom: 8px; }
.fixture-day-meta { margin-bottom: 12px; padding: 0 4px; }
.team-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
@media (max-width: 400px) { .team-grid { grid-template-columns: 1fr; } }
.team-col h4 { font-size: 0.78rem; color: var(--accent2); margin-bottom: 8px; }
.prob-row { display: grid; grid-template-columns: 72px 1fr 42px; gap: 8px; align-items: center; font-size: 0.78rem; margin-bottom: 6px; }
.prob-row.highlight strong { color: var(--accent); }
.prob-track { height: 8px; background: var(--bg); border-radius: 4px; overflow: hidden; }
.prob-fill { height: 100%; background: linear-gradient(90deg, var(--accent2), var(--accent)); border-radius: 4px; }
.fixture-bet-card { background: var(--bg); border-radius: 8px; padding: 10px; margin-bottom: 8px; }
.league-grade {
  font-size: 0.75rem;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: 4px;
  background: var(--surface2);
}
.grade-A { color: #86efac; }
.grade-B { color: #93c5fd; }
.grade-C { color: #fcd34d; }
.grade-D { color: #fca5a5; }
@media (max-width: 360px) {
  .bottom-nav .nav-btn { font-size: max(0.68rem, 11px); padding: 8px 2px; }
}

.segment-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin: 12px 0; }
.segment-btn {
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
  padding: 12px; border-radius: 10px; border: 1px solid var(--surface2);
  background: var(--surface); color: var(--text); cursor: pointer; text-align: left;
}
.segment-btn.active { border-color: var(--accent); background: rgba(56, 189, 248, 0.08); }
.segment-btn:disabled { opacity: 0.45; cursor: not-allowed; }
.seg-icon { font-size: 1.4rem; }
.usmc-matrix { margin-bottom: 16px; }
.usmc-table { width: 100%; border-collapse: collapse; margin-top: 8px; }
.usmc-table th, .usmc-table td { padding: 6px 8px; border-bottom: 1px solid var(--surface2); text-align: left; }
.usmc-badge { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 0.72rem; border: 1px solid var(--surface2); }
.usmc-ready { color: #34d399; border-color: rgba(52, 211, 153, 0.35); }
.usmc-partial { color: #fbbf24; border-color: rgba(251, 191, 36, 0.35); }
.usmc-blocked, .usmc-no-data { color: #f87171; border-color: rgba(248, 113, 113, 0.35); }
.usmc-manual, .usmc-research { color: #94a3b8; }
.cle-panel { margin-bottom: 16px; }
.cle-stats { display: flex; gap: 16px; flex-wrap: wrap; margin: 8px 0; }
.cle-stats div { min-width: 80px; }
.cle-search-row { display: flex; gap: 8px; margin: 10px 0; flex-wrap: wrap; }
.cle-search { flex: 1; min-width: 200px; padding: 8px 10px; border-radius: 8px; border: 1px solid var(--surface2); background: var(--surface); color: var(--text); }
.cle-memories { display: grid; gap: 10px; margin-top: 10px; }
.cle-memory { padding: 10px 12px; border-left: 3px solid rgba(56, 189, 248, 0.45); }
.cle-memory-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.cle-badge { padding: 2px 8px; border-radius: 999px; border: 1px solid var(--surface2); font-size: 0.72rem; }
.boss-table { width: 100%; border-collapse: collapse; font-size: 0.78rem; margin-top: 8px; }
.boss-table th, .boss-table td { padding: 8px 6px; border-bottom: 1px solid var(--surface2); text-align: left; vertical-align: top; }
.boss-table th { color: var(--muted); font-weight: 600; }
.bet-ledger-scroll .boss-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--surface);
  box-shadow: 0 1px 0 var(--surface2);
}
.boss-table tbody tr:nth-child(even) { background: rgba(255, 255, 255, 0.02); }
.boss-table td, .boss-table th { font-variant-numeric: tabular-nums; }
.chart-row { display: grid; grid-template-columns: 80px 1fr 36px; gap: 8px; align-items: center; margin: 4px 0; font-size: 0.75rem; }
.chart-bar { height: 8px; }
.chart-lbl { color: var(--muted); }
.chart-val { text-align: right; }
.pattern-card { border-color: rgba(99, 102, 241, 0.35); }
.pattern-grid { display: grid; gap: 16px; margin-top: 12px; }
@media (min-width: 720px) { .pattern-grid { grid-template-columns: 1fr 1fr; } }
.pattern-group h4 { margin: 0 0 4px; font-size: 0.85rem; }
.pattern-sub { margin: 0 0 6px; font-size: 0.68rem; color: var(--muted); padding-left: 72px; }
.pattern-notes { margin: 10px 0; padding-left: 18px; font-size: 0.78rem; line-height: 1.45; }
.pattern-notes li { margin-bottom: 4px; }
.roi-bar-row { display: grid; grid-template-columns: 72px 1fr 44px; gap: 6px; align-items: center; margin: 3px 0; font-size: 0.72rem; }
.roi-bar-track { height: 10px; background: var(--surface2); border-radius: 4px; overflow: hidden; }
.roi-bar-fill { height: 100%; border-radius: 4px; min-width: 2px; }
.roi-bar-fill.pos { background: linear-gradient(90deg, #166534, #22c55e); }
.roi-bar-fill.neg { background: linear-gradient(90deg, #991b1b, #ef4444); }
.gem-list { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.gem-card { background: var(--surface2); border-radius: 8px; padding: 8px 10px; font-size: 0.78rem; }
.gem-card summary { cursor: pointer; font-weight: 600; }
.avoid-list { font-size: 0.75rem; color: var(--muted); margin: 8px 0; padding-left: 18px; }
.honesty-flags { margin: 10px 0; padding-left: 18px; font-size: 0.78rem; color: #fbbf24; line-height: 1.45; }
.honesty-flags li { margin-bottom: 4px; }
.verdict-card.warn-card { border-color: rgba(251, 191, 36, 0.45); }
.verdict-card.verdict-deploy { border-color: rgba(52, 211, 153, 0.55); background: rgba(52, 211, 153, 0.06); }
.verdict-card.verdict-paper { border-color: rgba(251, 191, 36, 0.5); background: rgba(251, 191, 36, 0.06); }
.verdict-card.verdict-reject { border-color: rgba(248, 113, 113, 0.5); background: rgba(248, 113, 113, 0.06); }
.investor-card.ready-card { border-color: rgba(34, 197, 94, 0.5); }
.investor-card { border-color: rgba(99, 102, 241, 0.35); }
.playbook-charts { display: grid; gap: 12px; margin: 12px 0; }
@media (min-width: 640px) { .playbook-charts { grid-template-columns: 1fr 1fr; } }
.chart-block h4 { margin: 0 0 6px; font-size: 0.8rem; color: var(--muted); }
.trend-svg { width: 100%; height: 90px; background: var(--surface2); border-radius: 8px; }
.svg-lbl { font-size: 8px; fill: var(--muted); }
.pb-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 8px 0; align-items: center; }
.pb-tab { padding: 6px 12px; border-radius: 8px; border: 1px solid var(--surface2); background: transparent; color: inherit; cursor: pointer; font-size: 0.78rem; }
/* G16: the active tab inherited the page text colour onto a green fill -
   rgb(241,245,249) on rgb(34,197,94) measured 2.08:1 against a 4.5:1
   threshold, found on the LIVE site once the strategy data loaded.
   --bdna-on-primary is the token designed to sit on the green primary. */
.pb-tab.active { background: var(--accent); border-color: var(--accent); color: var(--bdna-on-primary, #052e16); font-weight: 600; }
.day-playbook { margin: 6px 0; background: var(--surface2); border-radius: 8px; padding: 6px 10px; }
.day-playbook summary { cursor: pointer; font-size: 0.78rem; }
.playbook-table { font-size: 0.7rem; }
.playbook-table .bet-row { background: rgba(99, 102, 241, 0.08); }
.pos-fill { background: #22c55e !important; }
.neg-fill { background: #ef4444 !important; }
.day-playbook-list { max-height: 420px; overflow-y: auto; }

.strategy-live-card { border-color: rgba(99, 102, 241, 0.35); }
.strategy-live-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 8px; }
.strategy-live-head h3 { flex: 1; margin: 0; }
.strategy-tabs { flex-wrap: wrap; }
.strategy-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 8px 0; }
.live-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #22c55e; margin-right: 4px; box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.25); }
.live-dot-label { font-size: 0.72rem; color: var(--muted); display: flex; align-items: center; }
.live-pulse-wrap { background: rgba(34, 197, 94, 0.08); border: 1px solid rgba(34, 197, 94, 0.25); border-radius: 10px; padding: 10px 12px; margin: 10px 0; }
.live-pick-row { display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid var(--border); font-size: 0.78rem; }
.live-pick-row:last-child { border-bottom: none; }
.bet-ledger-scroll { max-height: 480px; overflow: auto; margin-top: 8px; }
.bet-ledger .bet-live { background: rgba(34, 197, 94, 0.12); }
.live-badge { background: var(--bdna-danger); color: var(--bdna-btn-danger-text); }
.watch-badge { background: #f59e0b; }
.paper-badge { background: #6366f1; }
.filter-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 12px 0 8px; }
.playbook-charts { grid-template-columns: 1fr 1fr; }
@media (min-width: 900px) { .playbook-charts { grid-template-columns: repeat(2, 1fr); } }
.intel-card .intel-row { padding: 8px 0; border-bottom: 1px solid var(--surface2); }
.intel-card .intel-row:last-child { border-bottom: none; }
.intel-card .intel-row strong { display: block; margin-bottom: 2px; }

.platform-banner {
  margin: 0 12px 12px;
  padding: 12px 14px;
  border-radius: var(--radius);
  font-size: 0.85rem;
  line-height: 1.45;
}
.done-banner { background: rgba(34, 197, 94, 0.12); border: 1px solid rgba(34, 197, 94, 0.4); }
.warn-banner { background: rgba(251, 191, 36, 0.1); border: 1px solid rgba(251, 191, 36, 0.35); }
.banner-action { display: block; margin-top: 6px; font-size: 0.78rem; color: var(--muted); }
.compact-bar { margin-bottom: 8px; padding: 12px 14px; }
.compact-bar h2 { font-size: 1.05rem; margin-bottom: 4px; }
.done-card { border-color: rgba(34, 197, 94, 0.45); }
.action-card { border-color: rgba(59, 130, 246, 0.35); }
.details-card { padding: 12px 16px; }
.details-card summary { cursor: pointer; font-weight: 600; font-size: 0.9rem; }
.league-table { width: 100%; border-collapse: collapse; font-size: 0.75rem; margin-top: 10px; }
.league-table th, .league-table td { padding: 6px 8px; text-align: left; border-bottom: 1px solid var(--surface2); }
.league-table th { color: var(--muted); font-weight: 600; text-transform: uppercase; font-size: 0.75rem; }
.table-wrap { overflow-x: auto; max-width: 100%; }
.chip-row { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.chip { font-size: 0.72rem; padding: 4px 10px; border-radius: 999px; background: var(--surface2); color: var(--muted); }
.segment-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
@media (min-width: 520px) { .segment-grid { grid-template-columns: repeat(3, 1fr); } }
.segment-btn { text-align: left; padding: 10px 12px; border-radius: var(--radius); border: 1px solid var(--surface2); background: var(--bg); color: inherit; cursor: pointer; }
.segment-btn.active { border-color: var(--accent2); background: rgba(59, 130, 246, 0.12); }
.segment-btn .seg-icon { font-size: 1.2rem; display: block; margin-bottom: 4px; }

.suregold-card { border-color: rgba(251, 191, 36, 0.45); margin-bottom: 12px; }
.suregold-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 12px; }
.suregold-head h2 { font-size: 1.1rem; margin: 0; }
.suregold-stats { display: flex; gap: 6px; }
.sure-match { font-size: 1.05rem; font-weight: 600; margin: 0 0 4px; }
.sure-ladder { margin: 10px 0; }
.sure-step { background: var(--bg); padding: 8px 14px; border-radius: 8px; font-weight: 600; font-size: 0.85rem; border: 1px solid var(--surface2); }
.sure-step.active { border-color: var(--warn); background: rgba(251, 191, 36, 0.12); color: #fbbf24; }
.sure-step.done { opacity: 0.45; text-decoration: line-through; }
.sure-archive-title { font-size: 0.85rem; margin: 16px 0 8px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; }
.sure-archive-table { width: 100%; border-collapse: collapse; font-size: 0.72rem; }
.sure-archive-table th, .sure-archive-table td { padding: 6px 8px; border-bottom: 1px solid var(--surface2); text-align: left; }
.sure-archive-table th { color: var(--muted); font-weight: 600; }
.suregold-card a { color: var(--accent2); }

.ok-banner { background: rgba(59, 130, 246, 0.1); border: 1px solid rgba(59, 130, 246, 0.35); }
.live-banner { background: rgba(34, 197, 94, 0.08); border: 1px solid rgba(34, 197, 94, 0.35); }
.gap-banner { background: rgba(148, 163, 184, 0.08); border: 1px solid var(--surface2); font-size: 0.78rem; color: var(--muted); }
.boss-hero {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 16px; margin-bottom: 10px;
  background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
  border-radius: var(--radius); border: 1px solid var(--surface2);
}
.boss-hero h2 { font-size: 1.15rem; margin: 0; }
.boss-hero-actions { display: flex; gap: 8px; flex-wrap: wrap; }

.hunt-scope-banner { border-color: rgba(34, 197, 94, 0.35); background: rgba(34, 197, 94, 0.06); }
.hunt-scope-banner.narrow { border-color: rgba(251, 191, 36, 0.35); background: rgba(251, 191, 36, 0.06); }
.hunt-scope-banner h3 { margin: 0 0 6px; font-size: 1rem; }

.fixture-interest-card { border-color: rgba(59, 130, 246, 0.35); }
.fixture-interest-row { padding: 10px 0; border-bottom: 1px solid var(--border); }
.fixture-interest-row.compact { padding: 8px 0; }
.fi-day-block { margin-top: 12px; }
.strategy-explainer-card { border-color: rgba(168, 85, 247, 0.35); margin-bottom: 12px; }
.strategy-explainer-card h3 { margin: 0 0 6px; font-size: 0.95rem; }
.fi-day-block h4 { margin: 0 0 8px; font-size: 0.95rem; }
.fi-match-head { display: flex; flex-direction: column; gap: 2px; margin-bottom: 6px; }
.fi-strat { font-size: 0.72rem; margin: 2px 4px 2px 0; display: inline-block; }
.fi-main { display: flex; flex-direction: column; gap: 2px; }
.fi-strats { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0; }
.tier-punt-block, .tier-acca-block { margin: 16px 0; }
.bot-slot-select { font-size: 0.75rem; margin-right: 4px; }
.btn-accent { padding: 10px 16px; border-radius: 10px; border: none; background: var(--accent); color: #052e16; font-weight: 700; cursor: pointer; font-size: 0.85rem; }
.btn-chip { padding: 4px 10px; border-radius: 6px; border: 1px solid var(--surface2); background: var(--bg); color: var(--accent2); font-size: 0.68rem; font-weight: 600; cursor: pointer; }
.btn-chip:hover { border-color: var(--accent2); }
.card-head-row { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 6px; }
.card-head-row h3 { font-size: 0.95rem; margin: 0; }
.pill { font-size: 0.68rem; padding: 4px 10px; border-radius: 999px; background: var(--surface2); color: var(--muted); }
.tab-row { display: flex; gap: 6px; flex-wrap: wrap; margin: 10px 0 6px; }
.country-chips .chip { cursor: pointer; border: 1px solid transparent; background: var(--bg); }
.country-chips .chip.active { border-color: var(--accent2); color: var(--text); }
.league-table tr.active-row { background: rgba(59, 130, 246, 0.08); }
.compact-top25 { border-color: rgba(59, 130, 246, 0.35); }
.compact-top25 h3 { font-size: 0.9rem; margin-bottom: 8px; }
.platform-banner { margin: 0 0 10px; }

/* ?? Football Intelligence cards ?? */
.intel-card-list { display: flex; flex-direction: column; gap: 12px; }
.intel-card {
  display: block;
  width: 100%;
  text-align: left;
  padding: 14px 16px;
  border: 1px solid var(--surface2);
  border-radius: 12px;
  background: var(--surface);
  cursor: pointer;
  transition: border-color 0.15s;
}
.intel-card.open { border-color: var(--accent2); box-shadow: 0 0 0 1px rgba(59, 130, 246, 0.15); }
.intel-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; margin-bottom: 6px; }
.intel-card-meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.intel-comp { font-size: 0.72rem; font-weight: 700; color: var(--accent2); text-transform: uppercase; letter-spacing: 0.03em; }
.intel-kickoff { font-size: 0.72rem; color: var(--muted); white-space: nowrap; }
.intel-match { font-size: 1.05rem; font-weight: 700; margin: 0 0 10px; line-height: 1.25; }
.intel-rec { margin-bottom: 10px; padding: 8px 10px; background: var(--bg); border-radius: 8px; font-size: 0.85rem; }
.intel-rec-lbl { display: block; font-size: 0.75rem; text-transform: uppercase; color: var(--muted); margin-bottom: 2px; }
.intel-rec-conf { color: var(--accent); font-weight: 600; margin-left: 6px; }
.intel-market-grid { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; font-size: 0.78rem; }
.intel-market-row { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: baseline; }
.intel-mk { font-weight: 700; color: var(--muted); min-width: 42px; font-size: 0.68rem; text-transform: uppercase; }
.intel-market-row em { font-style: normal; color: var(--muted); font-size: 0.72rem; }
.intel-formula-block { padding: 10px; background: rgba(59, 130, 246, 0.06); border-radius: 8px; margin-bottom: 8px; border: 1px solid rgba(59, 130, 246, 0.12); }
.intel-formula-head { margin-bottom: 6px; }
.intel-formula-total { font-size: 0.78rem; font-weight: 700; color: var(--accent2); }
.intel-formula-agg { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: baseline; margin-bottom: 4px; font-size: 0.8rem; }
.intel-formula-count { font-size: 0.72rem; color: var(--accent); font-weight: 600; }
.intel-formula-chips { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.intel-formula-chip { font-size: 0.75rem; padding: 3px 8px; border-radius: 6px; background: var(--bg); color: var(--muted); border: 1px solid var(--surface2); }
.intel-tap-hint { font-size: 0.72rem; color: var(--muted); margin: 8px 0 0; }
.intel-expand { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--surface2); }
.intel-section { margin-bottom: 16px; }
.intel-section h4 { font-size: 0.78rem; color: var(--accent2); margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.04em; }
.intel-prob-row { display: grid; grid-template-columns: 76px 1fr 44px; gap: 8px; align-items: center; font-size: 0.76rem; margin-bottom: 5px; }
.intel-prob-row.highlight .intel-prob-val { color: var(--accent); }
.intel-prob-track { height: 7px; background: var(--bg); border-radius: 4px; overflow: hidden; }
.intel-prob-fill { height: 100%; background: linear-gradient(90deg, #3b82f6, #22d3ee); border-radius: 4px; }
.intel-team-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 420px) { .intel-team-grid { grid-template-columns: 1fr; } }
.intel-team-col h4 { font-size: 0.76rem; margin-bottom: 6px; }
.intel-team-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; font-size: 0.76rem; }
.intel-score-list { margin: 0; padding-left: 1.2rem; font-size: 0.85rem; }
.intel-score-list li { margin-bottom: 4px; }
.intel-formula-table-wrap { overflow-x: auto; }
.intel-formula-table { width: 100%; font-size: 0.72rem; border-collapse: collapse; }
.intel-formula-table th, .intel-formula-table td { padding: 6px 8px; text-align: left; border-bottom: 1px solid var(--surface2); }
.intel-action-section { padding-top: 12px; border-top: 1px dashed var(--surface2); opacity: 0.95; }
.intel-book-actions { margin-top: 10px; }
.intel-hunt-banner { margin-bottom: 12px; }
.intel-hunt-list { margin: 6px 0 0; padding-left: 1.2rem; }
.intel-dashboard-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 6px; }
.intel-dashboard h2 { margin: 0; font-size: 1.1rem; }
.warn-pill { background: rgba(251, 191, 36, 0.15); color: #fcd34d; }
.live-pill { background: rgba(34, 197, 94, 0.15); color: #86efac; }
.warn-text { color: #fcd34d; }
.staking-packages-card summary { cursor: pointer; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; }
.staking-packages-card summary::-webkit-details-marker { display: none; }
.staking-packages-body { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--surface2); }
.operator-panel { margin-top: 12px; }
.operator-panel summary { cursor: pointer; font-weight: 600; padding: 4px 0; }
.operator-panel summary::-webkit-details-marker { display: none; }
.intel-na { margin: 6px 0; }
.intel-layer { margin: 12px 0; padding: 10px 12px; border-radius: 8px; background: var(--bg); }
.intel-layer-title { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--accent2); margin: 0 0 6px; font-weight: 700; }
.intel-layer-note { margin: 0 0 8px; }
.intel-prob-layer { border-left: 3px solid #22d3ee; }
.intel-formula-layer { border-left: 3px solid #3b82f6; }
.intel-rec-layer { border-left: 3px solid #a78bfa; }
.intel-prob-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
@media (max-width: 520px) { .intel-prob-grid { grid-template-columns: repeat(3, 1fr); } }
.intel-prob-cell { font-size: 0.72rem; text-align: center; padding: 6px 4px; background: var(--surface); border-radius: 6px; }
.intel-prob-cell-lbl { display: block; font-size: 0.62rem; color: var(--muted); margin-bottom: 2px; }
.intel-prob-cell strong { font-size: 0.78rem; }
.intel-xg { margin: 8px 0 0; }
.intel-formula-list { margin: 4px 0 6px; padding-left: 1.2rem; font-size: 0.75rem; }
.intel-formula-list-lbl { margin: 4px 0 0; }
.intel-formula-odds { margin: 4px 0 0; color: var(--muted); }
.intel-formula-pick { font-size: 0.9rem; }
.intel-disagree { margin-top: 6px; }
.intel-prob-na .intel-prob-val { color: var(--muted); font-weight: 500; }
.intel-rec-line { margin: 0; font-size: 0.88rem; }
.intel-learning-row { padding: 6px 0; border-bottom: 1px solid var(--surface2); font-size: 0.8rem; }
.fi-formula-list { margin: 4px 0 0; padding-left: 1.1rem; }

/* MIP backlog panel (cockpit auxiliary) */
.mip-backlog-panel { margin-bottom: 12px; }
.mip-backlog-panel summary { cursor: pointer; list-style: none; }
.mip-backlog-panel summary::-webkit-details-marker { display: none; }
.mip-backlog-full { margin: 8px 0 0; padding-left: 1.2rem; font-size: 0.82rem; }
.mip-backlog-full li { margin-bottom: 4px; }
.muted-layer { background: rgba(0,0,0,0.15); }

/* Scoreline-first Match Intelligence Cockpit */
.cockpit-card {
  display: block; width: 100%; text-align: left;
  padding: 14px 16px; border-radius: 12px;
  background: var(--surface); border: 1px solid var(--surface2);
  cursor: pointer; transition: border-color 0.15s;
  border-left: 3px solid rgba(34, 211, 238, 0.55);
}
.cockpit-card.cockpit-partial { border-left-color: rgba(251, 191, 36, 0.6); }
.cockpit-card.open { border-color: var(--accent2); }
.cockpit-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; margin-bottom: 4px; }
.cockpit-header-meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.cockpit-comp { font-size: 0.72rem; font-weight: 700; color: var(--accent2); text-transform: uppercase; }
.cockpit-kickoff { font-size: 0.72rem; color: var(--muted); }
.cockpit-match { font-size: 1.05rem; font-weight: 700; margin: 0 0 10px; }
.cockpit-layer { margin: 10px 0; padding: 10px 12px; border-radius: 8px; background: var(--bg); }
.cockpit-layer-title { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--accent2); margin: 0 0 6px; font-weight: 700; }
.cockpit-layer-note { margin: 0 0 4px; color: var(--muted); }
.cockpit-team-compare { display: grid; grid-template-columns: 1fr auto 1fr; gap: 8px; align-items: center; font-size: 0.78rem; }
@media (max-width: 420px) { .cockpit-team-compare { grid-template-columns: 1fr; } .cockpit-vs { display: none; } }
.cockpit-vs { color: var(--muted); font-size: 0.72rem; font-weight: 700; text-align: center; }
.cockpit-team-side strong { display: block; margin-bottom: 2px; }
.cockpit-gx-line { margin: 0; font-size: 0.88rem; }
.cockpit-hist-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 480px) { .cockpit-hist-grid { grid-template-columns: 1fr; } }
.cockpit-hist-lbl { display: block; font-size: 0.62rem; font-weight: 700; color: var(--muted); margin-bottom: 6px; text-transform: uppercase; }
.cockpit-hist-row { display: grid; grid-template-columns: 22px 1fr 38px; gap: 6px; align-items: center; font-size: 0.72rem; margin-bottom: 4px; }
.cockpit-hist-goals { font-weight: 600; color: var(--muted); }
.cockpit-hist-track { height: 8px; background: var(--surface); border-radius: 4px; overflow: hidden; }
.cockpit-hist-fill { height: 100%; background: linear-gradient(90deg, #06b6d4, #3b82f6); border-radius: 4px; }
.cockpit-hist-pct { text-align: right; font-weight: 600; }
.cockpit-score-table-wrap { overflow-x: auto; }
.cockpit-score-table { width: 100%; font-size: 0.76rem; border-collapse: collapse; }
.cockpit-score-table th, .cockpit-score-table td { padding: 5px 8px; text-align: left; border-bottom: 1px solid var(--surface2); }
.cockpit-narrative-text { margin: 0; font-size: 0.88rem; line-height: 1.45; font-style: italic; color: var(--text); }
.cockpit-analyst-consensus { margin: 0; font-size: 0.82rem; }
.cockpit-disagree { color: var(--muted); margin-top: 4px; }
.cockpit-markets-secondary { opacity: 0.85; border-left: 2px solid var(--surface2); }
.cockpit-markets-compact { margin: 0; color: var(--muted); }
.cockpit-markets-grid { display: flex; flex-direction: column; gap: 8px; font-size: 0.78rem; }
.cockpit-markets-group { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: baseline; }
.cockpit-group-lbl { font-weight: 700; font-size: 0.62rem; color: var(--muted); text-transform: uppercase; width: 100%; }
.cockpit-tap-hint { font-size: 0.72rem; color: var(--muted); margin: 10px 0 0; }
.fx-fixture-departments { display: flex; flex-direction: column; gap: 8px; }
.ufc-card { display: flex; flex-direction: column; gap: 0; max-width: 100%; overflow-x: hidden; }
.ufc-overview { padding: 12px 14px; border-bottom: 1px solid var(--border, #334155); }
.ufc-overview-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 8px; }
.ufc-sport-tag { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--accent2, #06b6d4); }
/* Sport-shaped cards — accent + left rail so non-football never reads as football shells */
.ufc-card.ufc-shape-h2h {
  border-left: 3px solid var(--ufc-sport-accent, #38bdf8);
  background: linear-gradient(90deg, color-mix(in srgb, var(--ufc-sport-accent, #38bdf8) 12%, transparent), transparent 40%);
}
.ufc-card.ufc-shape-football { border-left: 3px solid #22c55e; }
.ufc-card.ufc-sport-tennis { --ufc-sport-accent: #a3e635; }
.ufc-card.ufc-sport-mlb { --ufc-sport-accent: #f97316; }
.ufc-card.ufc-sport-boxing { --ufc-sport-accent: #f43f5e; }
.ufc-card.ufc-sport-mma { --ufc-sport-accent: #e11d48; }
.ufc-card.ufc-sport-cricket { --ufc-sport-accent: #14b8a6; }
.ufc-card.ufc-sport-rugby { --ufc-sport-accent: #84cc16; }
.ufc-card.ufc-sport-nba { --ufc-sport-accent: #f59e0b; }
.ufc-card.ufc-sport-nhl { --ufc-sport-accent: #60a5fa; }
.ufc-card.ufc-sport-nfl { --ufc-sport-accent: #a78bfa; }
.ufc-card.ufc-sport-darts { --ufc-sport-accent: #fb7185; }
.ufc-card.ufc-sport-snooker { --ufc-sport-accent: #4ade80; }
.ufc-card[data-ufc-sport]:not([data-ufc-sport="football"]) .ufc-sport-tag {
  font-weight: 700;
}
.tic-fixtures-board .tic-ufc-list { margin-top: 8px; }
.tic-expand-hint { margin: 0 0 8px; }

/* Play journey — markets first, study collapsed, Theatre pitch shell above fold */
.play-study-details {
  margin: 8px 0 0;
  border: 1px solid var(--border, #334155);
  border-radius: 10px;
  padding: 0 10px;
}
.play-study-summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: baseline;
  padding: 10px 0;
}
.play-study-summary::-webkit-details-marker { display: none; }
.play-study-body { padding: 0 0 12px; }
.play-story-markets { margin-top: 4px; }
.play-theatre-pitch-skeleton {
  min-height: min(42vh, 280px);
  border-radius: 12px;
  background:
    linear-gradient(180deg, #14532d 0%, #166534 48%, #14532d 100%);
  border: 2px solid rgba(255, 255, 255, 0.12);
  position: relative;
}
.play-theatre-pitch-skeleton::after {
  content: "";
  position: absolute;
  inset: 12% 8%;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 4px;
}
.game-full-theatre[data-theatre-pending="1"] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.game-theatre-watch .game-theatre-chrome {
  margin-top: 0;
}
.play-desk-layout--game .play-console-stage {
  max-height: none;
}
.play-console-hero--tight .play-console-match {
  font-size: 1.15rem;
  margin: 0 0 4px;
}
.play-header-compact {
  padding: 8px 12px !important;
  margin-bottom: 6px !important;
}
.play-header-compact h2 { margin: 0; font-size: 1.1rem; }
.play-rail-compact { margin: 0 0 4px; font-size: 0.78rem; }
.play-flow-compact { padding-top: 2px; }
.play-daybar-compact {
  padding: 6px 10px !important;
  margin-bottom: 6px !important;
}
.play-daybar-compact h3 { margin: 0; font-size: 0.95rem; }
.play-daybar-compact .game-day-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.game-quick-btns--compact { margin: 0 0 4px !important; gap: 6px; }
.play-flow-compact .play-console-nav { margin-bottom: 4px; }
.play-flow-compact .play-console-card.play-fixture-story { gap: 0; }
.play-story-markets { scroll-margin-top: 8px; }
.play-desk-layout--game.play-desk-layout--console,
.play-flow-compact .play-desk-layout--game {
  max-height: none;
  padding-right: min(300px, 32vw);
}
.ufc-participants { display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; margin-bottom: 8px; font-weight: 600; }
.ufc-vs { font-weight: 400; color: var(--muted, #94a3b8); font-size: 0.85rem; }
.ufc-overview-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 6px 12px; margin: 0; }
.ufc-departments { padding: 8px 10px 12px; }
.monkey-fixture-list,
.intel-card-list.ufc-list {
  max-width: 100%;
  overflow-x: hidden;
}
.ufc-list .ufc-card { margin-bottom: 10px; }
.siw-ufc-list { margin-top: 8px; }
.game-ufc-row { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: start; }
.game-ufc-host { min-width: 0; }
.ufc-play-footer { display: flex; flex-wrap: wrap; gap: 10px; padding: 8px 12px; border-top: 1px solid var(--border, #334155); }
.ufc-theatre-inline .lmc-inline { max-width: 100%; overflow-x: hidden; }
.ufc-theatre-inline .lmc-body-grid { display: flex; flex-direction: column; gap: 12px; }

/* Founder Product Correction 001 — curated Today workspace */
.today-curated {
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-width: 920px;
  margin: 0 auto;
}
.today-date-slim { margin: 0 0 8px; }
.today-section-head h2 {
  margin: 0 0 4px;
  font-size: 1.15rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}
.today-section-head p { margin: 0 0 10px; }
.today-featured-fixture {
  padding: 14px 16px;
  border: 1px solid var(--border, #334155);
  border-radius: 12px;
  background: color-mix(in srgb, var(--panel, #0f172a) 92%, var(--accent2, #06b6d4));
}
.today-featured-card-host .ufc-card { margin: 0; box-shadow: none; }
.ufc-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.today-tier-stack,
.today-sport-stack {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.today-tier-block,
.today-sport-block {
  border: 1px solid var(--border, #334155);
  border-radius: 10px;
  padding: 0;
  background: var(--panel, #0f172a);
}
.today-tier-block > summary,
.today-sport-block > summary {
  cursor: pointer;
  list-style: none;
  padding: 12px 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.today-tier-block > summary::-webkit-details-marker,
.today-sport-block > summary::-webkit-details-marker { display: none; }
.today-tier-body,
.today-sport-body { padding: 0 12px 12px; }
.today-shared-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: flex-end;
  padding: 10px 12px;
  border: 1px solid var(--border, #334155);
  border-radius: 10px;
  background: var(--panel, #0f172a);
}
.today-search-field { flex: 1 1 220px; min-width: 0; margin: 0; }
.today-search-field input[type="search"] { width: 100%; }
.today-comp-block { margin: 0 0 12px; }
.today-comp-title {
  margin: 0 0 8px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--muted, #94a3b8);
}
.ufc-role { display: block; margin-bottom: 2px; }
.today-opp-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.today-opp-row .link-btn {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  width: 100%;
  text-align: left;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid transparent;
  background: transparent;
}
.today-opp-row .link-btn:hover { border-color: var(--border, #334155); }
.ufc-prediction-panel .ufc-stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 8px;
}
.lmc-speed-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.ufc-theatre-actions { margin-top: 8px; }

.today-fixtures-board,
.today-command-centre,
.sports-intelligence-workspace,
.siw-ufc-list,
.ufc-list {
  max-width: 100%;
  overflow-x: hidden;
}
.snb-scroll {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 100%;
  overflow-x: hidden;
}
.tic-filter-row,
.siw-filter-row {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.tic-tier-chips,
.tic-summary-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  max-width: 100%;
  overflow-x: hidden;
}
.ufc-stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 6px 12px; }
.history-ufc-host { margin-top: 8px; }
.fx-fixture-dept { border: 1px solid var(--border, #334155); border-radius: 8px; background: var(--surface1, #1e293b); }
.fx-fixture-dept summary { cursor: pointer; padding: 10px 12px; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.fx-fixture-dept summary::-webkit-details-marker { display: none; }
.fx-fixture-dept[open] .fx-dept-chevron { transform: rotate(180deg); }
.fx-fixture-dept-body { padding: 0 12px 12px; border-top: 1px solid var(--border, #334155); }
.today-fixtures-board { margin-top: 12px; }
.today-fixtures-title { margin: 0 0 10px; font-size: 1rem; }
.today-sport-fixture-group,
.siw-sport-fixture-group { margin: 0 0 18px; }
.today-sport-group-title,
.siw-sport-group-title {
  margin: 0 0 8px;
  font-size: 0.9rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  text-transform: capitalize;
  color: var(--text-muted, #94a3b8);
}
.ufc-missing-why,
.siw-sport-why {
  margin: 8px 0 0;
  color: var(--text-muted, #94a3b8);
}
.today-tomorrow-preview { margin-top: 12px; }
.tic-platform-mood { margin: 8px 0 12px; padding: 10px 12px; border-radius: 8px; background: var(--surface2, #0f172a); }
.tic-mood-label { margin: 0 0 4px; }
.cockpit-section { margin-bottom: 16px; }
.cockpit-section h4 { font-size: 0.78rem; color: var(--accent2); margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.04em; }
.cockpit-collapse { margin: 8px 0; padding: 0; background: transparent; }
.cockpit-collapse-summary { cursor: pointer; list-style: none; font-size: 0.72rem; font-weight: 700; color: var(--muted); padding: 8px 0; }
.cockpit-collapse-summary::-webkit-details-marker { display: none; }
.cockpit-collapse-body { padding: 0 0 4px; }
.cockpit-collapse .cockpit-layer { margin: 6px 0; padding: 8px 10px; }
.cockpit-card:not(.open) .cockpit-layer { margin: 8px 0; padding: 8px 12px; }
.fixtures-expert-wrap .fixtures-expert-panels { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; }
.fixtures-expert-wrap .staking-packages-card { margin: 0; }
.learning-card-compact { margin-bottom: 12px; }
.exec-section { margin-bottom: 16px; }
.exec-section .section-title { font-size: 0.9rem; margin: 0 0 8px; }
.intel-hunt-inline { margin-top: 12px; padding: 10px 12px; border-radius: 8px; }
.cockpit-support-layer { opacity: 0.92; border-left: 2px solid rgba(148, 163, 184, 0.35); }
.cockpit-collapse > summary { cursor: pointer; list-style: none; }
.cockpit-collapse > summary::-webkit-details-marker { display: none; }
.cockpit-collapse-body { margin-top: 6px; }
.cockpit-card[role="button"] { cursor: pointer; }
.cockpit-card[role="button"]:focus-visible { outline: 2px solid var(--accent2); outline-offset: 2px; }
.fixtures-expert-panels { margin-top: 16px; }
.fixtures-exec-nav { margin-top: 12px; padding: 12px 14px; }
.fixtures-exec-btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.home-fixtures-cta { margin: 0 0 12px; }
.intel-link-btn { margin-top: 8px; }
.cockpit-readiness-panel > summary { cursor: pointer; list-style: none; padding: 4px 0; }
.cockpit-readiness-panel > summary::-webkit-details-marker { display: none; }
.readiness-summary { display: flex; flex-direction: column; gap: 4px; }
.readiness-summary .readiness-header { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.readiness-body { margin-top: 10px; }
.cockpit-journal-note { margin-bottom: 12px; }
.cockpit-journal-note summary { cursor: pointer; list-style: none; }
.cockpit-journal-note summary::-webkit-details-marker { display: none; }

/* Base data split view */
.split-summary-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 480px) { .split-summary-grid { grid-template-columns: 1fr; } }
.split-team-col strong { display: block; margin-bottom: 6px; font-size: 0.82rem; }
.split-team-table { width: 100%; font-size: 0.72rem; border-collapse: collapse; }
.split-team-table td { padding: 3px 6px; border-bottom: 1px solid var(--surface2); }
.split-team-table td:first-child { color: var(--muted); width: 45%; }
.split-missing { margin: 6px 0 0; }
.split-compare-row { margin: 8px 0; }
.split-compare-lbl { display: block; font-size: 0.68rem; font-weight: 700; color: var(--muted); text-transform: uppercase; margin-bottom: 4px; }
.split-compare-bars { display: flex; gap: 4px; height: 10px; margin-bottom: 2px; }
.split-bar-home { background: linear-gradient(90deg, #06b6d4, #0891b2); border-radius: 4px; min-width: 2px; }
.split-bar-away { background: linear-gradient(90deg, #f59e0b, #d97706); border-radius: 4px; min-width: 2px; }
.split-compare-edge { color: var(--muted); }
.split-gx-note { margin: 8px 0 0; }
.cockpit-readiness { margin-bottom: 12px; }
.readiness-table { width: 100%; font-size: 0.78rem; border-collapse: collapse; margin-top: 8px; }
.readiness-table th, .readiness-table td { padding: 6px 8px; text-align: left; border-bottom: 1px solid var(--surface2); }
.feed-explain { margin-top: 10px; padding: 8px 10px; border-radius: 8px; background: var(--bg); }
.feed-explain-list { margin: 6px 0 0; padding-left: 18px; }
.readiness-details summary { cursor: pointer; }
.readiness-header { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.readiness-header h3 { margin: 0; }
.readiness-subhead { font-size: 0.78rem; margin: 14px 0 6px; color: var(--accent2); text-transform: uppercase; letter-spacing: 0.04em; }
.readiness-scroll { overflow-x: auto; }
.feed-sources-table { min-width: 900px; font-size: 0.72rem; }
.feed-status-pill { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; }
.feed-status-ok { background: rgba(34, 197, 94, 0.2); color: #22c55e; }
.feed-status-stale { background: rgba(251, 191, 36, 0.2); color: #fbbf24; }
.feed-status-disabled { background: rgba(148, 163, 184, 0.2); color: var(--muted); }
.feed-status-missing { background: rgba(239, 68, 68, 0.2); color: #ef4444; }
.feed-status-empty { background: rgba(148, 163, 184, 0.15); color: var(--muted); }
.feed-status-error { background: rgba(239, 68, 68, 0.25); color: #ef4444; }
.feed-day-banner { margin-bottom: 10px; padding: 10px 12px; font-size: 0.82rem; }
.feed-day-warn { margin: 6px 0 0; color: var(--muted); }
.feed-day-note { margin: 6px 0; padding: 6px 8px; background: var(--bg); border-radius: 6px; }

/* Cockpit Phase 2 ? intelligence layers */
.cockpit-quality { border-left: 3px solid rgba(34, 211, 238, 0.5); }
.cockpit-quality-proxy { border-left-color: rgba(251, 191, 36, 0.65); }
.cockpit-quality-partial { border-left-color: rgba(239, 68, 68, 0.45); }
.cockpit-quality-head { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 4px; }
.cockpit-quality-pill { font-size: 0.68rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; text-transform: uppercase; }
.pill-full { background: rgba(34, 211, 238, 0.15); color: #67e8f9; }
.pill-partial { background: rgba(239, 68, 68, 0.12); color: #fca5a5; }
.pill-proxy { background: rgba(251, 191, 36, 0.15); color: #fcd34d; }
.cockpit-quality-detail { margin: 0; }
.cockpit-quality-border-full { border-left-color: rgba(34, 211, 238, 0.7); }
.cockpit-quality-border-partial { border-left-color: rgba(251, 191, 36, 0.6); }
.cockpit-quality-border-proxy { border-left-color: rgba(251, 191, 36, 0.45); }
.cockpit-compare-summary { margin: 6px 0 0; }
.cockpit-team-intel-name { display: block; margin-bottom: 6px; font-size: 0.82rem; }
.cockpit-team-intel-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px 10px; font-size: 0.74rem; }
@media (max-width: 520px) { .cockpit-team-intel-grid { grid-template-columns: 1fr 1fr; } }
.cockpit-atkdef { border-left: 3px solid rgba(6, 182, 212, 0.35); }
.cockpit-insight-list { margin: 8px 0 0; padding-left: 1.2rem; }
.cockpit-strength-row { display: flex; flex-direction: column; gap: 4px; margin-top: 8px; }
.cockpit-prob-compact { display: flex; flex-direction: column; gap: 2px; }
.score-landscape { display: flex; flex-direction: column; gap: 4px; }
.score-land-row { display: grid; grid-template-columns: 42px 1fr 44px; gap: 8px; align-items: center; font-size: 0.76rem; }
.score-land-top .score-land-score { color: var(--accent); font-weight: 700; }
.score-land-top .score-land-fill { background: linear-gradient(90deg, #22d3ee, #3b82f6); }
.score-land-score { font-weight: 600; font-variant-numeric: tabular-nums; }
.score-land-track { height: 8px; background: var(--surface); border-radius: 4px; overflow: hidden; }
.score-land-fill { height: 100%; background: linear-gradient(90deg, #475569, #64748b); border-radius: 4px; }
.score-land-pct { text-align: right; font-weight: 600; font-size: 0.72rem; }
.score-landscape-full { margin-bottom: 10px; }
.score-land-group { margin-bottom: 10px; }
.score-land-group-lbl { display: block; font-size: 0.62rem; font-weight: 700; color: var(--muted); text-transform: uppercase; margin-bottom: 4px; }

/* Monkey Test ? first-time user affordances */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.monkey-fixture-toolbar { margin-bottom: 10px; }
.monkey-search-input {
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--text);
  font-size: 1rem;
}
.monkey-toolbar-hint { margin: 6px 0 0; }
.monkey-opportunities-header { margin-bottom: 8px; }
.monkey-fixture-actions { display: inline-flex; gap: 4px; margin-left: 8px; vertical-align: middle; }
.monkey-pin-btn, .monkey-compare-btn, .monkey-sport-fav {
  min-width: 36px;
  min-height: 36px;
  padding: 4px 8px;
  border: none;
  background: transparent;
  font-size: 1.1rem;
  cursor: pointer;
  border-radius: 6px;
}
.monkey-pin-btn.is-pinned, .monkey-sport-fav.is-fav { color: #fbbf24; }
.monkey-compare-btn.is-active { color: var(--accent2); background: var(--surface); }
.monkey-league-group { margin-bottom: 8px; }
.monkey-league-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  list-style: none;
}
.monkey-league-body { margin-top: 8px; }
.monkey-compare-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--border);
}
.monkey-compare-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 480px) {
  .monkey-compare-grid { grid-template-columns: 1fr; }
}
.monkey-yesterday-actions { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--border); }
.monkey-yesterday-btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.monkey-first-run { border-left: 3px solid var(--accent2); margin-bottom: 10px; }
.monkey-mode-hint { margin: 8px 0; }
.today-package-summary { border-left: 3px solid var(--accent); margin-bottom: 10px; }
.today-package-btns { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
.monkey-fav-sports { margin-bottom: 10px; }
.monkey-stat-legend { margin-top: 4px; }
.bottom-nav .nav-btn { font-size: max(0.68rem, 11px); }
#quick-access::after {
  content: "";
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 24px;
  background: linear-gradient(90deg, transparent, var(--bg));
}
#quick-access { position: relative; }

/* Today Command Centre */
.today-command-centre { border-left: 4px solid var(--accent2); margin-bottom: 12px; }
.tcc-header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 10px; }
.tcc-title { margin: 0; font-size: 1.35rem; }
.tcc-clock { margin: 4px 0 0; font-size: 0.88rem; color: var(--muted); }
.tcc-health-pill { font-size: 0.78rem; padding: 6px 10px; border-radius: 999px; background: var(--surface); display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.tcc-health-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; background: currentColor; }
.tcc-day-strip { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.tcc-day-chip { padding: 8px 12px; border-radius: 8px; border: 1px solid var(--border); background: var(--bg); font-size: 0.85rem; cursor: pointer; }
.tcc-day-chip.active { border-color: var(--accent2); background: var(--surface); }
.tcc-delta { margin: 8px 0; padding: 8px 10px; border-radius: 8px; background: var(--surface); }
.tcc-delta-new { border-left: 3px solid var(--accent2); }
.tcc-delta-fresh { border-left: 3px solid var(--muted); }
.tcc-delta-list { margin: 4px 0 0; padding-left: 18px; }
.tcc-delta-label { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; color: var(--muted); }
.tcc-section-title { margin: 12px 0 4px; font-size: 1rem; }
.tcc-top-picks { display: flex; flex-direction: column; gap: 6px; }
.tcc-top-pick-row { display: grid; grid-template-columns: 28px 1fr auto; gap: 8px; align-items: center; text-align: left; padding: 10px; border-radius: 8px; border: 1px solid var(--border); background: var(--bg); cursor: pointer; width: 100%; }
.tcc-top-rank { font-weight: 700; color: var(--accent2); }
.tcc-top-match { display: flex; flex-direction: column; gap: 2px; }
.tcc-top-signals { font-size: 0.78rem; color: var(--accent); white-space: nowrap; }
.tcc-next-action { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--border); }
.tcc-next-label { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; color: var(--muted); margin: 0 0 6px; }
.tcc-next-step { display: flex; gap: 8px; align-items: center; padding: 6px 0; font-size: 0.85rem; background: none; border: none; color: var(--text); cursor: pointer; text-align: left; width: 100%; }
.tcc-next-step span:first-child { font-weight: 700; color: var(--accent2); min-width: 18px; }
.tcc-next-step.is-static { cursor: default; opacity: 0.9; }
.tcc-low-priority { margin-top: 10px; }
.tcc-low-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.tcc-low-chip { padding: 4px 8px; border-radius: 6px; border: 1px solid var(--border); background: var(--surface); font-size: 0.78rem; }
.tcc-exec-brief { border-left: 3px solid var(--accent); margin-bottom: 10px; }
.tcc-brief-lead { margin: 0 0 6px; }
.tcc-brief-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.tcc-list-title { margin: 0 0 10px; }
.fixture-day-row-secondary { opacity: 0.95; }

/* Collapsed fixture card */
.match-status { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; padding: 2px 6px; border-radius: 4px; }
.match-status.status-scheduled { background: var(--surface); color: var(--muted); }
.match-status.status-live { background: #166534; color: #bbf7d0; }
.match-status.status-finished { background: #334155; color: #cbd5e1; }
.cockpit-summary-strip { margin: 8px 0; display: flex; flex-direction: column; gap: 6px; }
.cockpit-quick-indicators { display: flex; flex-wrap: wrap; gap: 6px; }
.cockpit-ind { font-size: 0.72rem; padding: 3px 8px; border-radius: 999px; background: var(--surface); }
.cockpit-one-liner { margin: 4px 0 0; line-height: 1.4; }
.cockpit-card:not(.open) .cockpit-expand { display: none; }

/* Workspace inline briefings (Help without Help) */
.workspace-brief { border-left: 3px solid var(--accent2); margin-bottom: 10px; }
.workspace-brief-lead { margin: 0 0 6px; font-size: 0.9rem; }
.workspace-brief-detail { margin: 0; line-height: 1.45; }
.workspace-brief-actions { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 8px; }

/* Founder demo guide */
.founder-demo-guide { border-left: 4px solid var(--accent); margin-bottom: 12px; }
.founder-demo-summary { cursor: pointer; font-size: 0.95rem; }
.founder-demo-lead { margin: 0 0 10px; line-height: 1.45; }
.founder-demo-steps { margin: 0 0 10px 18px; padding: 0; line-height: 1.55; }
.founder-demo-steps li { margin-bottom: 6px; }
.founder-more-pitch { border-left: 4px solid var(--accent2); margin-bottom: 12px; }
.founder-value-list { margin: 0; padding-left: 18px; line-height: 1.55; }
.founder-value-list li { margin-bottom: 8px; }
.execution-tabs { flex-wrap: wrap; gap: 6px; }

/* User-visible action feedback */
.user-toast {
  position: fixed;
  left: 50%;
  bottom: calc(72px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  max-width: min(92vw, 420px);
  padding: 12px 16px;
  border-radius: 10px;
  font-size: 0.88rem;
  font-weight: 600;
  text-align: center;
  z-index: 1100;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  background: #14532d;
  color: #bbf7d0;
  border: 1px solid rgba(34, 197, 94, 0.45);
}
.user-toast-error { background: #450a0a; color: #fecaca; border-color: rgba(248, 113, 113, 0.45); }
.user-toast-warn { background: #422006; color: #fde68a; border-color: rgba(251, 191, 36, 0.45); }
/* FIP-001: toast at bottom covered Lock bets on mobile Play slip — move toast to top on Play */
html.ux-view-game .user-toast,
body.ux-view-game .user-toast {
  top: calc(12px + env(safe-area-inset-top));
  bottom: auto;
}
.monkey-first-run .section-title { font-size: 1.05rem; }
.monkey-first-run .steps-list { font-size: 0.88rem; line-height: 1.55; }

/* IA readability ? compact hierarchy, scroll lists */
.ia-scroll-list { max-height: min(58vh, 520px); overflow-y: auto; }
.ia-compact-details { margin: 8px 0; padding: 8px 12px; }
.ia-compact-details summary { cursor: pointer; font-weight: 600; font-size: 0.85rem; }
.workspace-brief-inline { margin: 0 0 10px; line-height: 1.45; }
.workspace-purpose { margin-bottom: 10px; }
.workspace-purpose h2 { font-size: 1.15rem; margin-bottom: 4px; }
.workspace-question { font-size: 0.95rem; margin: 0 0 4px; line-height: 1.35; }
.workspace-brief { padding: 10px 12px; margin-bottom: 8px; }
.workspace-brief-lead { font-size: 0.85rem; margin: 0; line-height: 1.4; }
.today-command-centre { padding: 12px 14px; margin-bottom: 10px; }
.tcc-eyebrow { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin: 0 0 2px; }
.tcc-section { margin-top: 10px; }
.tcc-section-title { font-size: 0.92rem; margin-bottom: 4px; }
.tcc-next-action { margin-top: 10px; }
.tcc-exec-brief { padding: 10px 12px; margin-bottom: 8px; }
.tcc-exec-brief .tcc-brief-lead { margin: 0 0 8px; font-size: 0.85rem; }
.fixture-toolbar-row { margin: 6px 0; }
.fixture-day-extra { margin: 6px 0; }
.card { padding: 12px 14px; margin-bottom: 10px; }
.hub-primary-card { padding: 10px 12px; }
.execution-tabs { margin: 0 0 8px; }
.exec-tab-hint { margin: 8px 0 0; }

/* Skeleton loading ? NN/G perceived performance */
@keyframes bdna-skeleton-pulse {
  0%, 100% { opacity: 0.55; }
  50% { opacity: 1; }
}
.skeleton-fixture-list { display: flex; flex-direction: column; gap: 10px; }
.skeleton-fixture-card { pointer-events: none; animation: bdna-skeleton-pulse 1.4s ease-in-out infinite; }
.skeleton-row-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 8px; }
.skeleton-row-card { pointer-events: none; padding: 12px 14px; }
.skeleton-line {
  height: 12px;
  border-radius: 6px;
  background: linear-gradient(90deg, var(--surface2) 0%, #475569 50%, var(--surface2) 100%);
  background-size: 200% 100%;
  animation: bdna-skeleton-shimmer 1.6s ease-in-out infinite;
  margin-bottom: 8px;
}
@media (prefers-reduced-motion: reduce) {
  .skeleton-line {
    animation: none;
    background: var(--surface2);
  }
}
.skeleton-w60 { width: 60%; }
.skeleton-w40 { width: 40%; }
.skeleton-w30 { width: 30%; }
.skeleton-row { display: flex; gap: 8px; margin-top: 4px; }
.skeleton-chip { height: 22px; width: 72px; border-radius: 999px; background: var(--surface2, #1e293b); }

/* Tabular numerals ? Oddschecker/Bloomberg alignment for odds & KPIs */
.stat-val, .odds, .bet-row strong, .tcc-top-rank, .pred-grid strong, .profit, .kpi-val,
.card-rank, .stake-step, .game-compare-cell strong {
  font-variant-numeric: tabular-nums;
}

/* Command palette ? TradingView/Bloomberg jump nav */
.cmd-palette-backdrop {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(0, 0, 0, 0.55);
  display: flex; align-items: flex-start; justify-content: center;
  padding: 12vh 16px 16px;
}
.cmd-palette { width: min(520px, 100%); max-height: 70vh; overflow: hidden; display: flex; flex-direction: column; }
.cmd-search-wrap { display: flex; align-items: center; gap: 8px; padding: 12px; border-bottom: 1px solid var(--border, #334155); }
.cmd-search-input { flex: 1; border: none; background: transparent; color: inherit; font-size: 1rem; outline: none; }
.cmd-kbd { font-size: 0.7rem; padding: 2px 6px; border-radius: 4px; background: var(--surface2); color: var(--muted); }
.cmd-list { overflow-y: auto; padding: 6px; }
.cmd-item {
  display: flex; align-items: flex-start; gap: 10px; width: 100%; text-align: left;
  padding: 10px 12px; border: none; background: transparent; color: inherit; border-radius: 8px; cursor: pointer;
}
.cmd-item:hover, .cmd-item.active { background: var(--surface2, #1e293b); }
.cmd-icon { font-size: 1.1rem; line-height: 1.2; }
.cmd-text { display: flex; flex-direction: column; gap: 2px; }
.cmd-footer { padding: 8px 12px; margin: 0; border-top: 1px solid var(--border, #334155); }
.cmd-hint-btn { font-size: inherit; vertical-align: baseline; padding: 0 4px; }
.header-cmd-hint { margin: -4px 0 8px; font-size: 0.78rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.brief-play { border-left-color: var(--accent); }

/* ?? Fixture card V2 ? commercial collapsed layout ?? */
.fx-v2-card {
  padding: 0;
  overflow: visible;
  border-left: none;
  border-top: 3px solid var(--accent, #22c55e);
}
.fx-v2-card.cockpit-partial { border-top-color: #fbbf24; }
.fx-v2-card.open { border-top-color: var(--accent2, #06b6d4); }
.fx-v2-body { padding: 10px 12px 8px; }
.fx-v2-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.fx-v2-head-open {
  flex-wrap: wrap;
  padding: 10px 12px 0;
  margin-bottom: 0;
}
.fx-v2-comp {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--accent2, #06b6d4);
}
.fx-v2-kick {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--muted, #b0bcc9);
  font-variant-numeric: tabular-nums;
}
.fx-v2-teams {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 10px;
}
.fx-v2-teams-compact {
  padding: 0 12px 8px;
  margin-bottom: 0;
}
.fx-v2-team {
  padding: 8px 10px;
  border-radius: 8px;
  background: var(--surface2, #1e293b);
  min-width: 0;
}
.fx-v2-side {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted, #b0bcc9);
  margin-bottom: 2px;
}
.fx-v2-name {
  display: block;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--text, #f1f5f9);
  word-break: break-word;
}
.fx-v2-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  margin: 0 0 8px;
}
.fx-v2-metric {
  padding: 8px 6px;
  border-radius: 8px;
  background: rgba(34, 197, 94, 0.08);
  border: 1px solid rgba(34, 197, 94, 0.2);
  text-align: center;
  min-width: 0;
}
.fx-v2-metric-rec {
  background: rgba(6, 182, 212, 0.1);
  border-color: rgba(6, 182, 212, 0.25);
}
.fx-v2-metric dt {
  margin: 0 0 2px;
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted, #b0bcc9);
}
.fx-v2-metric dd {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--text, #f1f5f9);
  word-break: break-word;
}
.fx-v2-expand {
  margin: 0;
  padding: 6px 0 2px;
  text-align: center;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--accent, #22c55e);
  border-top: 1px solid var(--border, #334155);
}
.fx-v2-collapse-hint {
  margin: 0;
  padding: 8px 12px;
  text-align: center;
  font-size: 0.78rem;
  color: var(--muted, #b0bcc9);
  border-top: 1px solid var(--border, #334155);
}
.fx-v2-card.open .fx-v2-body { display: none; }
.fx-v2-card .cockpit-expand { margin: 0; padding: 10px 12px 12px; border-top: 1px solid var(--border, #334155); }
.fx-v2-card:not(.open) .cockpit-expand { display: none; }
.intel-card-list { gap: 8px; }
.intel-card-list .section-title { margin-bottom: 6px; font-size: 0.92rem; }

@media (max-width: 520px) {
  .fx-v2-metrics { grid-template-columns: 1fr; }
  .fx-v2-teams { grid-template-columns: 1fr; }
}

/* ?? Trust Card (Mission P1.1) ? commercial readability ?? */
.trust-card-wrap { padding: 0 !important; }
.intel-card-list .fx-v2-card,
.gsi-opp-list .gsi-opp-card.trust-card-article {
  width: 100%;
  max-width: 100%;
}
.trust-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 14px 16px 12px;
  font-size: 0.875rem;
  line-height: 1.55;
  overflow: visible;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
.trust-fixture {
  padding-bottom: 12px;
  margin-bottom: 4px;
  border-bottom: 1px solid var(--border, #334155);
}
.trust-rank {
  display: inline-block;
  font-weight: 800;
  font-size: 0.95rem;
  color: var(--accent2, #06b6d4);
  margin-bottom: 6px;
}
.trust-fixture-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
  font-size: 0.75rem;
  color: var(--muted, #94a3b8);
  margin-bottom: 10px;
}
.trust-sport { font-weight: 700; color: var(--text, #e2e8f0); }
.trust-comp { font-weight: 600; }
.trust-format {
  padding: 2px 8px;
  border-radius: 4px;
  background: rgba(6, 182, 212, 0.12);
  color: var(--accent2, #06b6d4);
  font-weight: 600;
}
.trust-kick { font-variant-numeric: tabular-nums; }
.trust-participants {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 16px;
}
.trust-participant {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  padding: 8px 10px;
  border-radius: 8px;
  background: var(--surface2, #1e293b);
}
.trust-part-lbl {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted, #94a3b8);
  font-weight: 600;
}
.trust-part-name {
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--text, #f1f5f9);
  line-height: 1.35;
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
}
.trust-belief-block {
  padding: 12px 14px;
  margin: 12px 0 8px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(34, 197, 94, 0.1), rgba(6, 182, 212, 0.06));
  border: 1px solid rgba(34, 197, 94, 0.22);
}
.trust-belief-label,
.trust-section-lbl,
.trust-verdict-lbl {
  margin: 0 0 6px;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--muted, #94a3b8);
  font-weight: 700;
}
.trust-belief-value {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--text, #f8fafc);
  line-height: 1.35;
  white-space: normal;
}
.trust-section {
  padding: 10px 0;
  border-bottom: 1px solid rgba(51, 65, 85, 0.6);
}
.trust-section-val {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text, #e2e8f0);
  line-height: 1.55;
  white-space: normal;
  overflow: visible;
}
.trust-section-confidence .trust-confidence-level {
  margin: 0 0 6px;
  font-weight: 800;
  font-size: 0.95rem;
  color: var(--text, #f1f5f9);
}
.trust-decision-action {
  margin: 0 0 6px;
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--text, #f8fafc);
  line-height: 1.4;
}
.trust-evidence-list {
  margin: 0;
  padding: 0 0 0 1.1rem;
  list-style: disc;
}
.trust-evidence-list li {
  margin: 0 0 8px;
  line-height: 1.55;
  color: var(--text, #cbd5e1);
}
.trust-evidence-list li:last-child { margin-bottom: 0; }
.trust-section-change .trust-evidence-list { list-style: circle; }
.trust-section-safe .trust-section-val { font-weight: 700; }
.trust-section-value .trust-section-val { color: #cbd5e1; }
.trust-section-why .trust-section-val { color: #cbd5e1; }
.trust-section-memory .trust-section-val {
  font-weight: 600;
  color: var(--accent2, #22d3ee);
}
.trust-verdict {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px 14px;
  margin-top: 10px;
  border-radius: 8px;
  border-left: 4px solid var(--border, #475569);
}
.trust-verdict-val {
  margin: 0;
  font-weight: 600;
  font-size: 0.875rem;
  line-height: 1.5;
  white-space: normal;
}
.trust-high { border-left-color: #22c55e; background: rgba(34, 197, 94, 0.08); }
.trust-mid { border-left-color: #06b6d4; background: rgba(6, 182, 212, 0.06); }
.trust-low { border-left-color: #fbbf24; background: rgba(251, 191, 36, 0.07); }
.trust-none { border-left-color: #64748b; background: rgba(100, 116, 139, 0.08); }
.trust-expand-hint {
  margin: 10px 0 0;
  padding-top: 8px;
  font-size: 0.72rem;
  color: var(--muted, #64748b);
  text-align: center;
  border-top: 1px dashed var(--border, #334155);
}
.gsi-opp-card.trust-card-article {
  display: grid;
  grid-template-columns: 2.75rem 1fr;
  gap: 0;
  align-items: stretch;
}
.gsi-opp-card.trust-card-article .gsi-opp-rank {
  padding: 14px 0 0 4px;
}
.gsi-opp-card.trust-card-article .gsi-opp-body { padding: 0; min-width: 0; }
.fx-v2-card:not(.open)[class*="cockpit-quality-border"] {
  border-top-color: var(--border, #334155) !important;
}

@media (max-width: 640px) {
  .trust-participants { grid-template-columns: 1fr; }
  .trust-card { padding: 12px 14px 10px; }
}

@media (min-width: 900px) {
  .intel-card-list,
  .gsi-opp-list {
    max-width: 880px;
  }
}

/* ?? Global Sports Intelligence Centre ?? */
.gsi-header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.gsi-title { margin: 0 0 4px; font-size: 1.25rem; }
.gsi-subtitle { margin: 0; font-size: 0.88rem; color: var(--muted, #b0bcc9); }
.gsi-filter-badge { margin: 6px 0 0; font-size: 0.78rem; color: var(--muted, #b0bcc9); }
.gsi-search-wrap { flex: 1; min-width: 220px; max-width: 420px; }
.gsi-search {
  width: 100%; padding: 10px 12px; border-radius: 8px;
  border: 1px solid var(--border, #334155); background: var(--surface2, #1e293b); color: inherit;
}
.gsi-filter-bar { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.gsi-filter-chip {
  padding: 6px 10px; border-radius: 999px; border: 1px solid var(--border, #334155);
  background: var(--bdna-card); font-size: 0.78rem; cursor: pointer; color: inherit;
}
.gsi-filter-chip.active { border-color: var(--accent, #22c55e); background: rgba(34, 197, 94, 0.1); }
.gsi-filter-football { border-style: dashed; }
.gsi-opp-list { display: flex; flex-direction: column; gap: 8px; }
.gsi-opp-card {
  display: grid; grid-template-columns: 32px 1fr; gap: 10px;
  padding: 10px 12px; border-radius: 12px; border: 1px solid var(--border, #334155);
  background: var(--bdna-card); cursor: pointer; border-top: 3px solid var(--accent2, #06b6d4);
}
.gsi-opp-card.open { border-top-color: var(--accent, #22c55e); }
.gsi-opp-rank { font-size: 1.1rem; font-weight: 800; color: var(--accent2, #06b6d4); text-align: center; padding-top: 4px; }
.gsi-opp-head { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 8px; font-size: 0.78rem; }
.gsi-opp-sport { font-weight: 700; }
.gsi-opp-comp { color: var(--accent2, #06b6d4); text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.68rem; font-weight: 700; }
.gsi-opp-kick { margin-left: auto; color: var(--muted, #b0bcc9); font-variant-numeric: tabular-nums; }
.gsi-opp-participants,
.gsi-opp-teams { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 8px; }
.gsi-opp-participant,
.gsi-opp-team { padding: 6px 8px; border-radius: 8px; background: var(--surface2, #1e293b); }
.gsi-opp-participant .lbl,
.gsi-opp-team .lbl { display: block; font-size: 0.62rem; text-transform: uppercase; color: var(--muted, #b0bcc9); }
.gsi-opp-participant strong,
.gsi-opp-team strong { font-size: 0.92rem; }
.gsi-sport-stats { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.gsi-stat-chip { font-size: 0.68rem; padding: 3px 8px; border-radius: 999px; background: rgba(6, 182, 212, 0.12); color: var(--text, #e2e8f0); }
.gsi-stat-lbl { text-transform: uppercase; font-weight: 700; color: var(--muted, #b0bcc9); margin-right: 4px; }
.gsi-sport-panel h5 { margin: 10px 0 4px; font-size: 0.72rem; text-transform: uppercase; color: var(--muted, #b0bcc9); }
.gsi-expand-sections ul { margin: 0; padding-left: 1.1rem; font-size: 0.82rem; }
.gsi-bet-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.gsi-bet-chip { font-size: 0.68rem; padding: 4px 8px; border-radius: 6px; border: 1px solid var(--border, #334155); background: var(--surface2, #1e293b); }
.gsi-sport-tennis .gsi-opp-participant:first-child { border-left: 3px solid #ca8a04; }
.gsi-sport-horse_racing .gsi-opp-participant:first-child { border-left: 3px solid #a855f7; }
.gsi-sport-greyhound_racing .gsi-opp-participant:first-child { border-left: 3px solid #f97316; }

/* Data Platform Centre */
.dpc-wrap { margin-bottom: 16px; }
.dpc-header { margin-bottom: 12px; }
.dpc-toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
.dpc-meta { margin-left: auto; font-size: 0.78rem; color: var(--muted, #b0bcc9); }
.dpc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 12px; }
.dpc-panel h3 { margin: 0 0 8px; font-size: 0.85rem; }
.dpc-table { width: 100%; border-collapse: collapse; font-size: 0.78rem; }
.dpc-table th, .dpc-table td { padding: 6px 8px; border-bottom: 1px solid var(--border, #334155); text-align: left; vertical-align: top; }
.dpc-badge { font-size: 0.65rem; padding: 2px 6px; border-radius: 999px; text-transform: uppercase; font-weight: 700; }
.dpc-badge-pos { background: rgba(34,197,94,0.2); color: var(--accent, #22c55e); }
.dpc-badge-neg { background: rgba(239,68,68,0.15); color: #f87171; }
.dpc-badge-muted { background: rgba(148,163,184,0.15); color: var(--muted, #b0bcc9); }
.dpc-guide { margin-top: 12px; }
.dpc-guide-steps { font-size: 0.82rem; line-height: 1.5; }
.dpc-feed-list, .dpc-missing { margin: 0; padding-left: 1.1rem; font-size: 0.78rem; }
@media (max-width: 768px) { .dpc-grid { grid-template-columns: 1fr; } }
.gsi-opp-metrics { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin: 0 0 6px; }
.gsi-opp-metrics div { text-align: center; padding: 6px 4px; border-radius: 6px; background: rgba(6, 182, 212, 0.08); min-width: 0; }
.gsi-opp-score { background: rgba(34, 197, 94, 0.12) !important; }
.gsi-opp-metrics dt { margin: 0; font-size: 0.58rem; text-transform: uppercase; color: var(--muted, #b0bcc9); }
.gsi-opp-metrics dd { margin: 0; font-size: 0.82rem; font-weight: 700; }
.gsi-opp-expand { margin: 0; text-align: center; font-size: 0.75rem; font-weight: 600; color: var(--accent, #22c55e); padding-top: 6px; border-top: 1px solid var(--border, #334155); }
.gsi-fir-panel { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--border, #334155); }
.gsi-fir-panel h4 { margin: 0 0 8px; font-size: 0.82rem; color: var(--accent2, #06b6d4); }
.gsi-fir-table { width: 100%; font-size: 0.78rem; border-collapse: collapse; }
.gsi-fir-table td { padding: 4px 8px; border-bottom: 1px solid var(--surface2, #1e293b); }
.fir-intel-desk { margin: 10px 0 14px; padding: 12px 14px; border-radius: 10px; border: 1px solid var(--accent2, #06b6d4); background: rgba(6, 182, 212, 0.06); }
.fir-intel-title { margin: 0 0 10px; font-size: 0.88rem; color: var(--accent2, #06b6d4); }
.fir-intel-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px 12px; margin: 0 0 10px; font-size: 0.78rem; }
.fir-intel-metrics dt { margin: 0; font-size: 0.58rem; text-transform: uppercase; color: var(--muted, #94a3b8); }
.fir-intel-metrics dd { margin: 0; font-weight: 700; }
.fir-intel-metrics dd.fir-metric-empty { font-weight: 500; font-size: 0.72rem; line-height: 1.35; color: var(--muted, #94a3b8); }
.fir-metric-empty { font-weight: 500; color: var(--muted, #94a3b8); }
.fir-desk-banner { margin: 0 0 12px; padding: 10px 12px; border-radius: 8px; border-left: 3px solid var(--accent2, #06b6d4); background: rgba(6, 182, 212, 0.08); }
.fir-desk-banner strong { display: block; margin-bottom: 4px; font-size: 0.82rem; }
.fir-intel-explain { margin: 0 0 8px; font-size: 0.82rem; line-height: 1.45; }
.fir-intel-section { margin-top: 8px; }
.fir-intel-section h5 { margin: 0 0 4px; font-size: 0.72rem; text-transform: uppercase; color: var(--muted); }
.fir-intel-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.fir-chip { font-size: 0.72rem; padding: 2px 8px; border-radius: 999px; background: var(--surface2, #1e293b); }
.fir-chip-value { border: 1px solid var(--accent, #22c55e); color: var(--accent, #22c55e); }
.fir-chain-row { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0; }
.fir-chain-chip { font-size: 0.68rem; padding: 2px 6px; border-radius: 4px; background: var(--surface2, #1e293b); }
.fir-intel-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px 8px; margin-top: 8px; }
.fir-intel-meta dt { margin: 0; font-size: 0.58rem; text-transform: uppercase; color: var(--muted); }
.fir-intel-meta dd { margin: 0; font-size: 0.75rem; }
.fir-venue-panel { margin: 10px 0; padding: 10px 12px; border: 1px solid var(--surface2); border-radius: 8px; }
.fir-venue-title { margin: 0 0 8px; font-size: 0.72rem; text-transform: uppercase; color: var(--muted); }
.fir-venue-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px 10px; margin: 0; }
.fir-venue-grid dt { margin: 0; font-size: 0.58rem; text-transform: uppercase; color: var(--muted); }
.fir-venue-grid dd { margin: 0; font-weight: 600; font-size: 0.78rem; }
.fir-venue-chip { display: inline-block; margin-left: 6px; }
.fir-weather-panel { margin: 10px 0; padding: 10px 12px; border: 1px solid var(--surface2); border-radius: 8px; }
.fir-weather-title { margin: 0 0 8px; font-size: 0.72rem; text-transform: uppercase; color: var(--muted); }
.fir-weather-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px 10px; margin: 0; }
.fir-weather-grid dt { margin: 0; font-size: 0.58rem; text-transform: uppercase; color: var(--muted); }
.fir-weather-grid dd { margin: 0; font-weight: 600; font-size: 0.78rem; }
.fir-env-panel { margin: 10px 0; padding: 10px 12px; border: 1px solid var(--surface2); border-radius: 8px; }
.fir-env-title { margin: 0 0 8px; font-size: 0.72rem; text-transform: uppercase; color: var(--muted); }
.fir-env-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px 10px; margin: 0; }
.fir-env-grid dt { margin: 0; font-size: 0.58rem; text-transform: uppercase; color: var(--muted); }
.fir-env-grid dd { margin: 0; font-weight: 600; font-size: 0.78rem; }
.fir-env-chip { display: inline-block; margin-top: 4px; }
.fmd-director { padding: 12px 14px; margin: 12px 0; }
.fmd-title { margin: 0 0 4px; font-size: 1rem; }
.fmd-scoreboard { display: grid; gap: 6px; margin: 10px 0; padding: 10px; background: var(--surface2); border-radius: 8px; text-align: center; }
.fmd-scoreboard-main { display: flex; align-items: center; justify-content: center; gap: 16px; font-size: 1.1rem; }
.fmd-score { font-weight: 800; font-size: 1.4rem; letter-spacing: 0.05em; }
.fmd-clock { font-size: 0.75rem; color: var(--muted); text-transform: uppercase; }
.fmd-main { display: grid; grid-template-columns: 1fr 180px; gap: 12px; margin: 10px 0; }
.fmd-pitch-wrap { position: relative; }
.fmd-pitch { position: relative; aspect-ratio: 105 / 68; background:
  repeating-linear-gradient(90deg, #1a5c2e 0 12px, #1c6331 12px 24px),
  linear-gradient(180deg, #1a5c2e 0%, #164d27 100%); border-radius: 8px; border: 2px solid rgba(255,255,255,0.18); overflow: hidden; }
.fmd-pitch-markings { position: absolute; inset: 6%; border: 1.5px solid rgba(255,255,255,0.28); border-radius: 2px; pointer-events: none; }
.fmd-halfway { position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: rgba(255,255,255,0.28); transform: translateX(-50%); }
.fmd-centre-circle { position: absolute; left: 50%; top: 50%; width: 18%; aspect-ratio: 1; border: 1.5px solid rgba(255,255,255,0.28); border-radius: 50%; transform: translate(-50%, -50%); }
.fmd-penalty { position: absolute; top: 22%; bottom: 22%; width: 14%; border: 1.5px solid rgba(255,255,255,0.25); }
.fmd-penalty-home { left: 0; border-left: none; }
.fmd-penalty-away { right: 0; border-right: none; }
.fmd-goal { position: absolute; top: 38%; bottom: 38%; width: 2.2%; background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.35); }
.fmd-goal-home { left: -1.2%; }
.fmd-goal-away { right: -1.2%; }
.fmd-flag { position: absolute; width: 5px; height: 5px; background: #f5c518; border-radius: 1px; box-shadow: 0 0 0 1px rgba(0,0,0,0.25); }
.fmd-flag-tl { left: 0; top: 0; }
.fmd-flag-tr { right: 0; top: 0; }
.fmd-flag-bl { left: 0; bottom: 0; }
.fmd-flag-br { right: 0; bottom: 0; }
.fmd-technical { position: absolute; bottom: -4%; width: 16%; height: 3%; background: rgba(0,0,0,0.25); border: 1px solid rgba(255,255,255,0.15); }
.fmd-technical-home { left: 28%; }
.fmd-technical-away { right: 28%; }
.fmd-ads { position: absolute; left: 4%; right: 4%; bottom: 1%; height: 3%; background: linear-gradient(90deg, rgba(0,40,80,0.5), rgba(80,0,20,0.45), rgba(0,40,80,0.5)); opacity: 0.7; pointer-events: none; }
.fmd-crowd-band { position: absolute; inset: 0; box-shadow: inset 0 0 40px rgba(0,0,0,0.35); pointer-events: none; }
.fmd-pitch-wrap[data-crowd="celebrating"] .fmd-crowd-band,
.fmd-pitch-wrap[data-crowd="late_winner"] .fmd-crowd-band { box-shadow: inset 0 0 50px rgba(255,200,60,0.25); }
.fmd-player { position: absolute; width: 22px; height: 22px; border-radius: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; justify-content: center; font-size: 0.55rem; font-weight: 700; transition: left 0.45s ease, top 0.45s ease; z-index: 2; }
.fmd-player-home { background: #1a4d8c; color: #fff; border: 1px solid #fff; }
.fmd-player-away { background: #c41e3a; color: #fff; border: 1px solid #fff; }
.fmd-player-gk { box-shadow: 0 0 0 2px #f5c518; }
.fmd-official { position: absolute; width: 10px; height: 10px; border-radius: 50%; transform: translate(-50%, -50%); background: #111; border: 1px solid #f5c518; z-index: 3; transition: left 0.45s ease, top 0.45s ease; }
.fmd-official-assistant_1, .fmd-official-assistant_2 { background: #f5c518; border-color: #111; width: 8px; height: 8px; }
.fmd-official-fourth_official { background: #444; }
.fmd-ball { position: absolute; width: 10px; height: 10px; background: #fff; border-radius: 50%; transform: translate(-50%, -50%); box-shadow: 0 0 4px rgba(0,0,0,0.5); z-index: 4; transition: left 0.35s ease, top 0.35s ease; }
.fmd-weather-rain .fmd-pitch-markings { opacity: 0.85; filter: brightness(0.92); }
.fmd-weather-cloud .fmd-crowd-band { opacity: 0.9; }
.fmd-meters { display: flex; flex-direction: column; gap: 8px; }
.fmd-bar { height: 8px; background: var(--surface2); border-radius: 4px; overflow: hidden; display: flex; }
.fmd-bar-home { background: #1a4d8c; }
.fmd-bar-away { background: #c41e3a; }
.fmd-bar-fill { background: var(--accent, #3b82f6); height: 100%; transition: width 0.3s; }
.fmd-bar-pressure { background: #f59e0b; }
.fmd-bar-danger { background: #ef4444; }
.fmd-secondary { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 10px 0; }
.fmd-commentary-panel { padding: 10px; border: 1px solid var(--surface2); border-radius: 8px; }
.fmd-panel-title { margin: 0 0 6px; font-size: 0.68rem; text-transform: uppercase; color: var(--muted); }
.fmd-commentary-line { margin: 0; font-size: 0.85rem; line-height: 1.4; }
.fmd-timeline { display: flex; flex-wrap: wrap; gap: 4px; margin: 10px 0; }
.fmd-timeline-event { padding: 2px 6px; font-size: 0.65rem; border-radius: 4px; border: 1px solid var(--surface2); background: transparent; cursor: pointer; }
.fmd-timeline-event.active { background: var(--accent, #3b82f6); color: #fff; border-color: transparent; }
.fmd-pace { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 8px; }
.fmd-pace-btn { padding: 4px 8px; font-size: 0.7rem; border-radius: 4px; border: 1px solid var(--surface2); background: transparent; cursor: pointer; }
.fmd-pace-btn.active { background: var(--accent, #3b82f6); color: #fff; border-color: transparent; }
@media (max-width: 720px) {
  .fmd-main { grid-template-columns: 1fr; }
  .fmd-secondary { grid-template-columns: 1fr; }
}

/* Sports Theatre Engine */
.ste-theatre { padding: 12px 14px; margin: 12px 0; transition: box-shadow 0.4s ease; }
.ste-title { margin: 0 0 4px; font-size: 1rem; }
.ste-story-rail { margin: 10px 0 6px; }
.ste-story-progress { height: 4px; background: var(--surface2); border-radius: 2px; overflow: hidden; }
.ste-story-fill { display: block; height: 100%; background: var(--accent, #3b82f6); transition: width 0.5s ease; }
.ste-story-beat { text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); }
.ste-atmosphere-row { display: flex; gap: 16px; align-items: center; margin: 8px 0; flex-wrap: wrap; }
.ste-emotion { padding: 6px 10px; border-radius: 6px; background: var(--surface2); }
.ste-emotion-calm { border-left: 3px solid #64748b; }
.ste-emotion-building { border-left: 3px solid #3b82f6; }
.ste-emotion-tense { border-left: 3px solid #f59e0b; }
.ste-emotion-critical { border-left: 3px solid #ef4444; background: rgba(239, 68, 68, 0.06); }
.ste-emotion-celebration { border-left: 3px solid #22c55e; }
.ste-emotion-relief { border-left: 3px solid #14b8a6; }
.ste-emotion-disappointment { border-left: 3px solid #94a3b8; }
.ste-emotion-historic { border-left: 3px solid #a855f7; }
.ste-emotion-label { display: block; font-size: 0.58rem; text-transform: uppercase; }
.ste-emotion-value { text-transform: capitalize; font-size: 0.85rem; }
.ste-crowd { font-size: 0.78rem; }
.ste-crowd-mood { text-transform: capitalize; font-weight: 600; margin-right: 8px; }
.ste-context { margin: 6px 0 10px; padding: 6px 8px; background: var(--surface2); border-radius: 6px; }
.ste-director-embed { margin: 8px 0; }
.ste-commentary-sync { margin: 10px 0; }
.ste-commentary-line { transition: opacity 0.3s ease; }
.ste-stats { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0; }
.ste-stat { padding: 4px 8px; background: var(--surface2); border-radius: 4px; font-size: 0.75rem; }
.ste-learning { margin-top: 10px; padding: 10px; border: 1px solid var(--surface2); border-radius: 8px; }
.ste-panel-title { margin: 0 0 6px; font-size: 0.68rem; text-transform: uppercase; color: var(--muted); }
.ste-lessons { margin: 0; padding-left: 18px; }
.ste-modes, .ste-sport-select { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.ste-mode-chip { padding: 4px 8px; font-size: 0.68rem; border-radius: 4px; border: 1px solid var(--surface2); background: transparent; cursor: pointer; text-transform: capitalize; }
.ste-mode-chip.active { background: var(--accent, #3b82f6); color: #fff; border-color: transparent; }
.ste-presentation {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
  padding: 4px 8px 8px;
}
.ste-pres-chip {
  padding: 5px 10px;
  font-size: 0.72rem;
  border-radius: 999px;
  border: 1px solid rgba(148, 163, 184, 0.45);
  background: rgba(15, 23, 42, 0.55);
  color: #e2e8f0;
  cursor: pointer;
}
.ste-pres-chip.active {
  background: rgba(59, 130, 246, 0.35);
  border-color: rgba(147, 197, 253, 0.8);
  color: #fff;
}
.ste-anim-celebrate .fmd-score { animation: ste-celebrate 0.6s ease 1; }
.ste-anim-flash .ste-director-embed { animation: ste-event-flash 0.65s ease 1; }
@keyframes ste-event-flash { 0%, 100% { opacity: 1; } 40% { opacity: 0.82; } }
@keyframes ste-celebrate { 0% { transform: scale(1); } 50% { transform: scale(1.08); } 100% { transform: scale(1); } }

/* Multi-sport arena layouts */
.md-arena-wrap { position: relative; }
.md-arena { position: relative; aspect-ratio: 16 / 9; border-radius: 8px; border: 2px solid rgba(255,255,255,0.12); overflow: hidden; background: linear-gradient(180deg, #1a5c2e 0%, #164d27 100%); }
.md-arena-label { position: absolute; top: 6px; left: 8px; z-index: 1; }
.md-ball { position: absolute; width: 10px; height: 10px; background: #fff; border-radius: 50%; transform: translate(-50%, -50%); transition: left 0.4s ease, top 0.4s ease; box-shadow: 0 0 4px rgba(0,0,0,0.5); }
.md-court-tennis { background: linear-gradient(180deg, #2d6a4f, #1b4332); aspect-ratio: 78 / 36; }
.md-ground-cricket { background: linear-gradient(180deg, #40916c, #1b4332); aspect-ratio: 16 / 10; }
.md-diamond-mlb { background: linear-gradient(180deg, #8B4513 40%, #1a5c2e 40%); aspect-ratio: 4 / 3; }
.md-court-nba, .md-court-volleyball { background: linear-gradient(180deg, #c17a2e, #8B5A2B); aspect-ratio: 94 / 50; }
.md-field-nfl { background: linear-gradient(180deg, #1a5c2e, #164d27); aspect-ratio: 120 / 53; }
.md-rink-nhl { background: linear-gradient(180deg, #e8f4f8, #b8d4e3); }
.md-rink-nhl .md-ball { background: #111; width: 8px; height: 8px; border-radius: 2px; }
.md-pitch-rugby { background: linear-gradient(180deg, #1a5c2e, #0f3d1a); aspect-ratio: 100 / 68; }
.md-course-golf { background: linear-gradient(180deg, #2d6a4f, #52b788 60%, #1b4332); aspect-ratio: 16 / 9; }
.md-track-racing, .md-track-greyhound { background: linear-gradient(90deg, #228B22 0%, #8B4513 50%, #228B22 100%); aspect-ratio: 21 / 9; }
.md-circuit-f1 { background: linear-gradient(180deg, #333, #111); aspect-ratio: 16 / 9; }
.md-circuit-fe { background: linear-gradient(180deg, #1a1a2e, #009fe3 80%); aspect-ratio: 16 / 9; }
.md-ring-boxing { background: radial-gradient(circle, #2a2a3a 30%, #1a1a2e); aspect-ratio: 1 / 1; max-height: 220px; }
.md-octagon-mma { background: radial-gradient(circle, #16213e 40%, #0f3460); aspect-ratio: 1 / 1; max-height: 220px; clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%); }
.md-table-snooker { background: linear-gradient(180deg, #0d5c2e, #1a7431); aspect-ratio: 2 / 1; }
.md-stage-darts { background: linear-gradient(180deg, #1b263b, #415a77); aspect-ratio: 16 / 9; }
.md-road-cycling { background: linear-gradient(90deg, #64748b, #94a3b8, #64748b); aspect-ratio: 21 / 9; }
.md-arena-olympics { background: linear-gradient(135deg, #0085c7, #df0024, #f4c430); aspect-ratio: 16 / 9; }
.md-sport-select { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.md-sport-chip { padding: 4px 8px; font-size: 0.68rem; border-radius: 4px; border: 1px solid var(--surface2); background: transparent; cursor: pointer; }
.md-sport-chip.active { background: var(--accent, #3b82f6); color: #fff; border-color: transparent; }
.md-scoreboard { display: grid; gap: 6px; margin: 10px 0; padding: 10px; background: var(--surface2); border-radius: 8px; text-align: center; }
.md-score-main { display: flex; align-items: center; justify-content: center; gap: 16px; }
.md-score { font-weight: 800; font-size: 1.3rem; }
.gsi-expert-tools { margin-top: 12px; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--border, #334155); }
@media (max-width: 640px) {
  .gsi-opp-metrics { grid-template-columns: repeat(2, 1fr); }
  .gsi-opp-metrics .gsi-opp-score { grid-column: 1 / -1; }
  .gsi-opp-participants,
  .gsi-opp-teams { grid-template-columns: 1fr; }
}

/* ?? Lab saved runs ? compact commercial cards ?? */
.lab-runs-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 4px;
}
.lab-run-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  padding: 14px 16px;
  border: 1px solid var(--border, #334155);
  border-radius: 12px;
  background: var(--bdna-card);
  color: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
}
.lab-run-card:hover {
  border-color: var(--accent, #22c55e);
  background: rgba(34, 197, 94, 0.04);
}
.lab-run-card.active {
  border-color: var(--accent, #22c55e);
  background: rgba(34, 197, 94, 0.08);
  box-shadow: 0 0 0 1px rgba(34, 197, 94, 0.25);
}
.lab-run-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.lab-run-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -0.01em;
  flex: 1;
  min-width: 0;
}
.lab-run-status {
  flex-shrink: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 4px 8px;
  border-radius: 999px;
  background: var(--surface2, #1e293b);
  color: var(--muted, #b0bcc9);
}
.lab-run-status.status-open {
  background: rgba(34, 197, 94, 0.15);
  color: var(--bdna-success);
}
.lab-run-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.lab-run-metric {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 10px;
  border-radius: 8px;
  background: var(--surface2, #1e293b);
}
.lab-run-metric-val {
  font-size: 1.05rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}
.lab-run-metric-lbl {
  font-size: 0.75rem;
  color: var(--muted, #b0bcc9);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.lab-run-updated {
  margin: 0;
  font-size: 0.8rem;
  color: var(--muted, #b0bcc9);
}

/* ?? AI Research Lab ? optimisation centre ?? */
.lab-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
}
.lab-filter-chip {
  padding: 8px 14px;
  border: 1px solid var(--border, #334155);
  border-radius: 999px;
  background: var(--surface2, #1e293b);
  color: var(--text, #e2e8f0);
  font-size: 0.85rem;
  font-weight: 500;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.lab-filter-chip:hover {
  border-color: var(--accent, #22c55e);
}
.lab-filter-chip.active {
  border-color: var(--accent, #22c55e);
  background: rgba(34, 197, 94, 0.12);
  color: var(--bdna-success);
}
.lab-opt-panel {
  margin-bottom: 16px;
  padding: 18px 20px;
}
.lab-opt-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.lab-opt-title {
  margin: 0 0 4px;
  font-size: 1.15rem;
  font-weight: 700;
}
.lab-opt-sub {
  margin: 0;
  font-size: 0.88rem;
  color: var(--muted, #b0bcc9);
}
.lab-opt-filter-label {
  font-size: 0.85rem;
  color: var(--muted, #b0bcc9);
}
.lab-opt-progress {
  height: 8px;
  border-radius: 999px;
  background: var(--surface2, #1e293b);
  overflow: hidden;
  margin-bottom: 10px;
}
.lab-opt-progress-fill {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--bdna-btn-success-bg), var(--bdna-success));
  transition: width 0.4s ease;
}
.lab-opt-status {
  margin: 0 0 4px;
  font-weight: 600;
}
.lab-opt-actions {
  margin-top: 14px;
}
.lab-results-panel {
  margin-bottom: 16px;
  padding: 18px 20px;
}
.lab-results-panel h3 {
  margin: 0 0 12px;
}
.lab-top-formula {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  padding: 12px 14px;
  margin-bottom: 14px;
  border-radius: 10px;
  background: rgba(34, 197, 94, 0.08);
  border: 1px solid rgba(34, 197, 94, 0.25);
}
.lab-top-formula .lbl {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted, #b0bcc9);
}
.lab-results-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}
.lab-results-tab {
  padding: 6px 12px;
  border: 1px solid var(--border, #334155);
  border-radius: 8px;
  background: transparent;
  color: var(--muted, #b0bcc9);
  font-size: 0.82rem;
  cursor: pointer;
}
.lab-results-tab.active {
  border-color: var(--accent, #22c55e);
  color: var(--bdna-success);
  background: rgba(34, 197, 94, 0.1);
}
.lab-analytics-details {
  margin-top: 12px;
}
.lab-candidates-section {
  margin-top: 8px;
}
.lab-candidates-section .section-title {
  margin: 0 0 12px;
  font-size: 1.05rem;
}
.lab-candidates-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.lab-candidate-card {
  padding: 16px 18px;
  border: 1px solid var(--border, #334155);
  border-radius: 12px;
  background: var(--bdna-card);
  cursor: pointer;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.lab-candidate-card:hover {
  border-color: var(--accent, #22c55e);
}
.lab-candidate-card.active {
  border-color: var(--accent, #22c55e);
  box-shadow: 0 0 0 1px rgba(34, 197, 94, 0.25);
}
.lab-candidate-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
}
.lab-candidate-name {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
}
.lab-candidate-status {
  flex-shrink: 0;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 4px 8px;
  border-radius: 999px;
  background: var(--surface2, #1e293b);
  color: var(--muted, #b0bcc9);
}
.lab-candidate-status.status-top-ranked {
  background: rgba(34, 197, 94, 0.15);
  color: var(--bdna-success);
}
.lab-candidate-status.status-improving {
  background: rgba(59, 130, 246, 0.15);
  color: #60a5fa;
}
.lab-candidate-meta {
  margin: 0 0 10px;
  font-size: 0.85rem;
  color: var(--muted, #b0bcc9);
}
.lab-candidate-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 0 0 10px;
}
.lab-opt-live-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin: 12px 0 0;
  padding: 10px;
  border-radius: 8px;
  background: var(--surface2, #1e293b);
}
.lab-opt-live-stats dt {
  margin: 0;
  font-size: 0.72rem;
  text-transform: uppercase;
  color: var(--muted, #b0bcc9);
}
.lab-opt-live-stats dd {
  margin: 2px 0 0;
  font-weight: 700;
  font-size: 0.9rem;
}
.lab-candidate-version {
  display: block;
  margin-top: 2px;
}
.lab-candidate-metrics div {
  padding: 8px 10px;
  border-radius: 8px;
  background: var(--surface2, #1e293b);
}
.lab-candidate-metrics dt {
  margin: 0;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted, #b0bcc9);
}
.lab-candidate-metrics dd {
  margin: 2px 0 0;
  font-size: 1rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.lab-candidate-updated {
  margin: 0 0 10px;
  font-size: 0.8rem;
  color: var(--muted, #b0bcc9);
}
.lab-candidate-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.lab-manual-advanced {
  margin-top: 20px;
  padding: 12px 0;
}
.lab-manual-advanced .warn {
  color: #fbbf24;
}
@media (max-width: 640px) {
  .lab-candidate-metrics { grid-template-columns: repeat(2, 1fr); }
}

/* ?? Fixture card collapsed hierarchy ?? */
.cockpit-collapsed-hierarchy {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 10px 0 4px;
  padding: 12px 14px;
  border-radius: 10px;
  background: var(--surface2, #1e293b);
  border: 1px solid var(--border, #334155);
}
.cockpit-hierarchy-row {
  display: grid;
  grid-template-columns: 7.5rem 1fr;
  gap: 10px;
  align-items: baseline;
  font-size: 0.92rem;
  line-height: 1.35;
}
.cockpit-hierarchy-lbl {
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted, #b0bcc9);
}
.cockpit-hierarchy-val {
  font-weight: 600;
  color: var(--text, #f1f5f9);
  word-break: break-word;
}

@media (max-width: 480px) {
  .lab-run-metrics { grid-template-columns: 1fr 1fr; }
  .lab-run-metrics .lab-run-metric:last-child { grid-column: 1 / -1; }
  .cockpit-hierarchy-row { grid-template-columns: 1fr; gap: 2px; }
}

/* Scientific Lab Engine */
.sl-lab { margin: 12px 0; padding: 12px 14px; border: 1px solid var(--surface2); border-radius: 8px; }
.sl-title { margin: 0 0 4px; font-size: 0.95rem; }
.sl-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 10px 0; }
.sl-metrics dt { font-size: 0.58rem; text-transform: uppercase; color: var(--muted); margin: 0; }
.sl-metrics dd { margin: 0; font-weight: 600; font-size: 0.78rem; }
.sl-experiments { display: grid; gap: 8px; margin: 10px 0; }
.sl-experiment { padding: 10px; border-radius: 6px; border-left: 3px solid var(--surface2); background: var(--surface2); }
.sl-confirmed { border-left-color: #22c55e; }
.sl-rejected { border-left-color: #ef4444; }
.sl-inconclusive { border-left-color: #f59e0b; }
.sl-exp-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.sl-status { font-size: 0.65rem; text-transform: uppercase; font-weight: 700; padding: 2px 6px; border-radius: 4px; }
.sl-status.sl-confirmed { background: rgba(34,197,94,0.15); color: #22c55e; }
.sl-status.sl-rejected { background: rgba(239,68,68,0.15); color: #ef4444; }
.sl-status.sl-inconclusive { background: rgba(245,158,11,0.15); color: #f59e0b; }
.sl-learning { margin-top: 6px; font-style: italic; }
.sl-panel-title { margin: 0 0 6px; font-size: 0.68rem; text-transform: uppercase; color: var(--muted); }
.sl-knowledge ul { margin: 0; padding-left: 18px; }
.sl-next { margin-top: 8px; }

/* Experiment Factory */
.ef-factory { margin: 12px 0; padding: 12px 14px; border: 1px solid var(--surface2); border-radius: 8px; }
.ef-title { margin: 0 0 4px; font-size: 0.95rem; }
.ef-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 10px 0; }
.ef-metrics dt { font-size: 0.58rem; text-transform: uppercase; color: var(--muted); margin: 0; }
.ef-metrics dd { margin: 0; font-weight: 600; font-size: 0.78rem; }
.ef-queue { list-style: none; margin: 10px 0; padding: 0; display: grid; gap: 8px; }
.ef-queue-item { padding: 8px 10px; background: var(--surface2); border-radius: 6px; border-left: 3px solid var(--accent, #3b82f6); }
.ef-queue-item.ef-negative { border-left-color: #f59e0b; }
.ef-priority { display: inline-block; min-width: 24px; font-size: 0.65rem; font-weight: 700; color: var(--muted); margin-right: 6px; }
.ef-id { font-size: 0.75rem; margin-right: 6px; }
.ef-type { text-transform: uppercase; font-size: 0.58rem; }
.ef-question { margin: 4px 0 0; }
.ef-panel-title { margin: 0 0 6px; font-size: 0.68rem; text-transform: uppercase; color: var(--muted); }
.ef-patterns ul { margin: 0; padding-left: 18px; }
.ef-next { margin-top: 8px; }

/* Autonomous Learning */
.al-learning { margin: 12px 0; padding: 12px 14px; border: 1px solid var(--surface2); border-radius: 8px; }
.al-title { margin: 0 0 4px; font-size: 0.95rem; }
.al-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 10px 0; }
.al-metrics dt { font-size: 0.58rem; text-transform: uppercase; color: var(--muted); margin: 0; }
.al-metrics dd { margin: 0; font-weight: 600; font-size: 0.78rem; }
.al-analyses { display: grid; gap: 8px; margin: 10px 0; }
.al-analysis { padding: 8px 10px; background: var(--surface2); border-radius: 6px; border-left: 3px solid var(--accent, #3b82f6); }
.al-analysis.al-confirmed { border-left-color: #22c55e; }
.al-analysis.al-rejected { border-left-color: #ef4444; }
.al-analysis.al-inconclusive { border-left-color: #f59e0b; }
.al-next { margin-top: 8px; }

/* Strategy Evolution */
.se-evolution { margin: 12px 0; padding: 12px 14px; border: 1px solid var(--surface2); border-radius: 8px; }
.se-title { margin: 0 0 4px; font-size: 0.95rem; }
.se-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 10px 0; }
.se-metrics dt { font-size: 0.58rem; text-transform: uppercase; color: var(--muted); margin: 0; }
.se-metrics dd { margin: 0; font-weight: 600; font-size: 0.78rem; }
.se-champion { padding: 6px 8px; background: var(--surface2); border-radius: 6px; margin: 8px 0; }
.se-strategies { display: grid; gap: 8px; margin: 10px 0; }
.se-strategy { padding: 8px 10px; background: var(--surface2); border-radius: 6px; border-left: 3px solid var(--accent, #3b82f6); }
.se-next { margin-top: 8px; }

/* Lab Governor */
.lg-governor { margin: 12px 0; padding: 12px 14px; border: 1px solid var(--surface2); border-radius: 8px; }
.lg-title { margin: 0 0 4px; font-size: 0.95rem; }
.lg-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 10px 0; }
.lg-metrics dt { font-size: 0.58rem; text-transform: uppercase; color: var(--muted); margin: 0; }
.lg-metrics dd { margin: 0; font-weight: 600; font-size: 0.78rem; }
.lg-top { padding: 6px 8px; background: var(--surface2); border-radius: 6px; margin: 8px 0; }
.lg-questions { list-style: none; padding: 0; margin: 8px 0; display: grid; gap: 4px; }
.lg-question { padding: 4px 8px; background: var(--surface2); border-radius: 4px; border-left: 2px solid var(--accent, #8b5cf6); }
.lg-next { margin-top: 8px; }

/* Living Match Centre */
body.lmc-open { overflow: hidden; }
.lmc-overlay {
  position: fixed; inset: 0; z-index: 9000;
  background: rgba(0, 0, 0, 0.72); backdrop-filter: blur(4px);
  display: flex; align-items: stretch; justify-content: center; padding: 12px;
}
.lmc-shell {
  width: min(1100px, 100%); max-height: 100%; display: flex; flex-direction: column;
  background: var(--surface, #0f172a); border: 1px solid var(--surface2, #1e293b);
  border-radius: 12px; box-shadow: 0 24px 64px rgba(0, 0, 0, 0.45);
}
.lmc-shell-bar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 14px; border-bottom: 1px solid var(--surface2);
}
.lmc-shell-body { overflow: auto; padding: 12px 14px 16px; flex: 1; }
.lmc-header { margin-bottom: 12px; }
.lmc-header-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.lmc-comp { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); }
.lmc-clock { font-size: 0.78rem; color: var(--muted); }
.lmc-scoreboard {
  display: grid; grid-template-columns: 1fr auto 1fr; gap: 8px; align-items: center;
  padding: 12px; background: var(--surface2); border-radius: 10px; margin-bottom: 8px;
}
.lmc-team-name { font-weight: 700; font-size: 1rem; }
.lmc-team-home { text-align: right; }
.lmc-team-away { text-align: left; }
.lmc-score { font-size: 1.6rem; font-weight: 800; letter-spacing: 0.06em; text-align: center; }
.lmc-meta-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 0; }
.lmc-meta-grid dt { font-size: 0.58rem; text-transform: uppercase; color: var(--muted); }
.lmc-meta-grid dd { margin: 0; font-size: 0.78rem; }
.lmc-body-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 12px; }
@media (max-width: 820px) { .lmc-body-grid { grid-template-columns: 1fr; } }
.lmc-panel { padding: 10px 12px; background: var(--surface2); border-radius: 8px; margin-bottom: 10px; }
.lmc-panel-title { margin: 0 0 8px; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--muted); }
.lmc-rec-card {
  display: grid; gap: 4px; padding: 10px; border-radius: 8px;
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.15), rgba(34, 197, 94, 0.08));
  border-left: 3px solid var(--accent, #3b82f6); margin-bottom: 10px;
}
.lmc-rec-pick { font-size: 1.1rem; }
.lmc-rec-conf { font-size: 0.78rem; color: var(--muted); }
.lmc-pred-main { display: flex; align-items: baseline; gap: 8px; margin-bottom: 8px; }
.lmc-pred-scoreline { font-size: 1.4rem; font-weight: 800; }
.lmc-pred-pct { color: var(--muted); }
.lmc-1x2-bar { display: flex; height: 22px; border-radius: 4px; overflow: hidden; margin-bottom: 8px; font-size: 0.65rem; font-weight: 700; }
.lmc-1x2-home { background: #3b82f6; display: flex; align-items: center; justify-content: center; min-width: 24px; }
.lmc-1x2-draw { background: #64748b; display: flex; align-items: center; justify-content: center; min-width: 20px; }
.lmc-1x2-away { background: #f59e0b; display: flex; align-items: center; justify-content: center; min-width: 24px; }
.lmc-market-meters { display: grid; gap: 6px; }
.lmc-meter { display: grid; grid-template-columns: 72px 1fr 36px; gap: 6px; align-items: center; }
.lmc-meter-lbl { font-size: 0.68rem; color: var(--muted); }
.lmc-meter-track { height: 8px; background: rgba(255,255,255,0.08); border-radius: 4px; overflow: hidden; }
.lmc-meter-fill { display: block; height: 100%; background: var(--accent, #3b82f6); border-radius: 4px; }
.lmc-meter-momentum .lmc-meter-fill { background: #22c55e; }
.lmc-meter-pressure .lmc-meter-fill { background: #f59e0b; }
.lmc-meter-danger .lmc-meter-fill { background: #ef4444; }
.lmc-meter-val { font-size: 0.68rem; text-align: right; }
.lmc-scoreline-row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.lmc-scoreline-chip { font-size: 0.68rem; padding: 2px 6px; background: rgba(255,255,255,0.06); border-radius: 4px; }
.lmc-h2h-visual { display: grid; grid-template-columns: 1fr auto 1fr; gap: 8px; align-items: center; margin-bottom: 8px; text-align: center; }
.lmc-h2h-vs { color: var(--muted); font-size: 0.72rem; }
.lmc-form-row { display: grid; grid-template-columns: 64px 1fr 56px; gap: 6px; align-items: center; margin-bottom: 4px; }
.lmc-form-track { height: 6px; background: rgba(255,255,255,0.08); border-radius: 3px; overflow: hidden; }
.lmc-form-fill { display: block; height: 100%; background: #8b5cf6; }
.lmc-form-lbl { font-size: 0.68rem; text-align: right; }
.lmc-metrics-grid { display: grid; gap: 6px; }
.lmc-timeline { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 8px; }
.lmc-tl-event {
  font-size: 0.65rem; padding: 2px 6px; border-radius: 4px; border: 1px solid var(--surface2);
  background: var(--surface); cursor: pointer;
}
.lmc-tl-goal { border-color: #22c55e; color: #22c55e; }
.lmc-tl-yellow_card { border-color: #f59e0b; }
.lmc-tl-red_card { border-color: #ef4444; }
.lmc-goal-list { margin: 0; padding-left: 16px; }
.lmc-xstat-row { display: flex; gap: 12px; align-items: center; margin-bottom: 4px; }
.lmc-replay-host { margin: 8px 0; }
.lmc-replay-host .fmd-director { margin: 0; padding: 8px; }
.lmc-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.lmc-footer { margin-top: 10px; text-align: center; }
.lmc-state-shell { padding: 24px; text-align: center; }

/* Sports Broadcast Engine */
body.sbe-active { padding-top: 0; }
.sbe-global-chrome {
  position: sticky; top: 0; z-index: 800;
  background: linear-gradient(180deg, #0a0f1a 0%, #0f172a 100%);
  border-bottom: 2px solid #e10600;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4);
}
.sbe-breaking {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 6px 14px; background: linear-gradient(90deg, rgba(225, 6, 0, 0.25), transparent);
  animation: sbe-breaking-in var(--bdna-duration-normal, 200ms) var(--bdna-ease-emphasized, ease);
}
.sbe-breaking-tag {
  font-size: 0.62rem; font-weight: 800; letter-spacing: 0.12em;
  padding: 2px 8px; background: #e10600; color: #fff; border-radius: 2px;
}
.sbe-breaking-headline { font-weight: 700; font-size: 0.82rem; flex: 1; min-width: 200px; }
.sbe-breaking-sub { font-size: 0.72rem; color: var(--muted); }
.sbe-ticker-wrap {
  display: flex; align-items: stretch; overflow: hidden;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.sbe-ticker-label {
  flex-shrink: 0; padding: 4px 10px; font-size: 0.62rem; font-weight: 800;
  letter-spacing: 0.1em; background: #1e3a5f; color: #38bdf8;
  display: flex; align-items: center;
}
.sbe-ticker-track { flex: 1; overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 2%, #000 98%, transparent); }
.sbe-ticker-inner {
  display: flex; align-items: center; gap: 0; white-space: nowrap;
  animation: sbe-ticker-scroll 45s linear infinite;
}
body.sbe-reduced-motion .sbe-ticker-inner { animation: none; flex-wrap: wrap; white-space: normal; }
.sbe-ticker-item { padding: 5px 12px; font-size: 0.72rem; font-weight: 500; }
.sbe-ticker-sep { color: #e10600; font-size: 0.5rem; opacity: 0.7; padding: 0 4px; }
.sbe-ticker-opportunity { color: #38bdf8; }
.sbe-ticker-research { color: #a78bfa; }
.sbe-lower-third {
  position: relative; margin: 8px 0; overflow: hidden;
  animation: sbe-lt-in var(--bdna-duration-slow, 320ms) var(--bdna-ease-emphasized, ease);
}
.sbe-lt-bar { height: 3px; background: linear-gradient(90deg, #e10600, #38bdf8); }
.sbe-lt-body {
  padding: 8px 14px; background: rgba(15, 23, 42, 0.92);
  border-left: 4px solid #e10600;
}
.sbe-lt-primary { margin: 0; font-weight: 700; font-size: 0.88rem; }
.sbe-lt-secondary { margin: 2px 0 0; font-size: 0.75rem; color: var(--muted); }
.sbe-lt-tertiary { margin: 2px 0 0; font-size: 0.68rem; color: #38bdf8; }
.sbe-lt-celebrate { animation: sbe-celebrate 0.6s ease 1; }
.sbe-lt-pulse .sbe-lt-bar { animation: sbe-pulse-bar-once 0.75s ease 1; }
.sbe-scoreboard, .sbe-sb-main { display: flex; align-items: center; justify-content: center; gap: 12px; }
.sbe-scoreboard {
  flex-direction: column; padding: 10px 16px;
  background: linear-gradient(180deg, rgba(30, 58, 95, 0.4), rgba(15, 23, 42, 0.9));
  border-radius: 8px; border: 1px solid rgba(255, 255, 255, 0.08);
}
.sbe-sb-comp { font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); }
.sbe-sb-score { font-size: 1.5rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.sbe-sb-team { font-weight: 600; font-size: 0.9rem; min-width: 80px; }
.sbe-sb-home { text-align: right; }
.sbe-sb-away { text-align: left; }
.sbe-sb-clock { font-size: 0.72rem; color: #38bdf8; font-weight: 600; }
/* Sport-specific scoreboard variants (graphics_profiles.json) */
.md-scoreboard-sets, .md-scoreboard-runs, .md-scoreboard-innings,
.md-scoreboard-quarters, .md-scoreboard-periods, .md-scoreboard-tries,
.md-scoreboard-leaderboard, .md-scoreboard-race, .md-scoreboard-laps,
.md-scoreboard-rounds, .md-scoreboard-frames, .md-scoreboard-legs,
.md-scoreboard-gap, .md-scoreboard-medal {
  display: flex; flex-direction: column; align-items: center;
  padding: 10px 16px; background: linear-gradient(180deg, rgba(30, 58, 95, 0.4), rgba(15, 23, 42, 0.9));
  border-radius: 8px; border: 1px solid rgba(255, 255, 255, 0.08);
}
.md-scoreboard-sets::before { content: "SETS"; font-size: 0.55rem; color: var(--muted); }
.md-scoreboard-runs::before { content: "RUNS"; font-size: 0.55rem; color: var(--muted); }
.md-scoreboard-quarters::before { content: "QTR"; font-size: 0.55rem; color: var(--muted); }
.md-scoreboard-laps::before { content: "LAP"; font-size: 0.55rem; color: var(--muted); }
.sbe-league-table, .sbe-tournament, .sbe-facts, .sbe-insights { margin: 10px 0; }
.sbe-panel-title {
  margin: 0 0 8px; font-size: 0.72rem; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--muted); font-weight: 700;
}
.sbe-table { width: 100%; border-collapse: collapse; font-size: 0.75rem; }
.sbe-table th, .sbe-table td { padding: 6px 8px; text-align: left; border-bottom: 1px solid rgba(255,255,255,0.06); }
.sbe-table-animate tbody tr { animation: sbe-row-in var(--bdna-duration-normal, 200ms) ease backwards; }
.sbe-tree { display: grid; gap: 8px; }
.sbe-tree-round { padding: 8px; background: var(--surface2); border-radius: 6px; border-left: 3px solid #38bdf8; }
.sbe-tree-date { font-size: 0.68rem; font-weight: 700; color: #38bdf8; display: block; margin-bottom: 4px; }
.sbe-tree-fixture { display: block; font-size: 0.75rem; padding: 2px 0; }
.sbe-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 640px) { .sbe-facts { grid-template-columns: 1fr; } }
.sbe-fact-title { margin: 0 0 4px; font-size: 0.68rem; text-transform: uppercase; color: var(--muted); }
.sbe-fact-item { font-size: 0.72rem; margin-bottom: 4px; padding-left: 8px; border-left: 2px solid #8b5cf6; }
.sbe-insight-card {
  padding: 8px 10px; margin-bottom: 6px; background: var(--surface2);
  border-radius: 6px; animation: sbe-row-in 0.3s ease backwards;
}
.sbe-lmc-chrome { margin-bottom: 10px; }
.sbe-workspace-pack { margin-bottom: 8px; }
@keyframes sbe-ticker-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes sbe-breaking-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@keyframes sbe-lt-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes sbe-row-in { from { opacity: 0; transform: translateX(-8px); } to { opacity: 1; transform: none; } }
@keyframes sbe-pulse-bar-once { 0%, 100% { opacity: 1; } 50% { opacity: 0.55; } }
@keyframes sbe-celebrate { 0% { transform: scale(1); } 40% { transform: scale(1.02); } 100% { transform: scale(1); } }

/* Play Experience Engine */
.pex-header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.pex-sport-score { font-size: 0.68rem; font-weight: 700; padding: 2px 8px; border-radius: 4px; text-transform: uppercase; letter-spacing: 0.04em; }
.pex-score-green { background: rgba(34, 197, 94, 0.2); color: #22c55e; }
.pex-score-amber { background: rgba(245, 158, 11, 0.2); color: #f59e0b; }
.pex-score-red { background: rgba(239, 68, 68, 0.2); color: #ef4444; }
.pex-story-caption {
  padding: 12px 14px; margin: 8px 0; border-radius: 8px;
  background: linear-gradient(135deg, rgba(15, 23, 42, 0.95), rgba(30, 58, 95, 0.6));
  border-left: 4px solid #38bdf8;
}
.pex-story-caption--calm {
  background: var(--surface2, rgba(15, 23, 42, 0.85));
  border: 1px solid rgba(100, 116, 139, 0.35);
  border-left: 3px solid #64748b;
}
.pex-story-caption--calm .pex-caption-beat { color: #94a3b8; font-weight: 700; letter-spacing: 0.1em; }
.pex-story-caption--calm .pex-caption-text { font-weight: 500; color: var(--text, #e2e8f0); }
.pex-story-caption--event { animation: pex-caption-in var(--bdna-duration-slow, 320ms) var(--bdna-ease-emphasized, ease) 1; }
.pex-emotion-celebration .pex-story-caption, .pex-emotion-critical .pex-story-caption { border-left-color: #e10600; }
.pex-caption-beat { font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); }
.pex-caption-text { margin: 4px 0 0; font-size: 0.95rem; font-weight: 600; line-height: 1.35; }
.pex-meters { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; margin: 8px 0; }
.pex-meter { display: grid; grid-template-columns: 1fr auto; gap: 4px; align-items: center; }
.pex-meter-lbl { grid-column: 1 / -1; font-size: 0.62rem; text-transform: uppercase; color: var(--muted); }
.pex-meter-track { grid-column: 1; height: 6px; background: rgba(255,255,255,0.08); border-radius: 3px; overflow: hidden; }
.pex-meter-fill { display: block; height: 100%; background: #38bdf8; border-radius: 3px; transition: width var(--bdna-duration-normal, 200ms) ease; }
.pex-meter-momentum .pex-meter-fill { background: #22c55e; }
.pex-meter-pressure .pex-meter-fill { background: #f59e0b; }
.pex-meter-danger .pex-meter-fill { background: #ef4444; }
.pex-meter-val { font-size: 0.68rem; font-weight: 700; }
.pex-turning-points { display: flex; flex-wrap: wrap; gap: 4px; margin: 8px 0; }
.pex-tp-marker {
  font-size: 0.65rem; padding: 3px 8px; border-radius: 4px; border: 1px solid rgba(255,255,255,0.15);
  background: var(--surface2); cursor: pointer; transition: all var(--bdna-duration-fast, 120ms) ease;
}
.pex-tp-marker.active, .pex-tp-marker:hover { border-color: #e10600; color: #e10600; transform: scale(1.05); }
.pex-atmosphere { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.pex-atmo-chip { font-size: 0.68rem; padding: 2px 8px; border-radius: 999px; background: rgba(255,255,255,0.06); }
.pex-atmo-celebration { background: rgba(34, 197, 94, 0.15); color: #22c55e; }
.pex-atmo-critical, .pex-atmo-tense { background: rgba(239, 68, 68, 0.12); color: #f87171; }
.pex-crowd-roar { background: rgba(225, 6, 0, 0.15); }
.pex-historical { padding: 6px 10px; margin: 6px 0; border-left: 2px solid #8b5cf6; background: rgba(139, 92, 246, 0.08); }
.pex-hist-label { font-weight: 700; margin-right: 6px; }
.pex-learning-moment {
  padding: 8px 12px; margin: 8px 0; border-radius: 6px;
  background: rgba(59, 130, 246, 0.12); border: 1px solid rgba(59, 130, 246, 0.3);
}
.pex-learning-tag { font-size: 0.62rem; font-weight: 800; text-transform: uppercase; color: #38bdf8; }
@keyframes pex-caption-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes pex-learning-pop { 0% { opacity: 0; transform: scale(0.98); } 100% { opacity: 1; transform: scale(1); } }
body.sbe-reduced-motion .pex-story-caption, body.sbe-reduced-motion .pex-learning-moment { animation: none; }

/* Visual Intelligence Engine */
.vin-featured-strip, .vin-centre-grid, .vin-compact-row {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin: 8px 0;
}
.vin-card {
  padding: 10px; border-radius: 8px; background: var(--surface2); border: 1px solid rgba(255,255,255,0.08);
  margin: 0;
}
.vin-card-title { font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin-bottom: 6px; }
.vin-card-canvas { min-height: 48px; }
.vin-card-decision { margin: 6px 0 0; line-height: 1.35; color: var(--text); }
.vin-svg { width: 100%; max-height: 80px; }
.vin-wheel-val { font-size: 14px; font-weight: 700; fill: var(--text, #e2e8f0); }
.vin-bar-row { display: grid; grid-template-columns: 44px 1fr 36px; gap: 6px; align-items: center; margin: 3px 0; }
.vin-bar-lbl, .vin-bar-val { font-size: 0.65rem; }
.vin-bar-track { height: 6px; background: rgba(255,255,255,0.08); border-radius: 3px; overflow: hidden; }
.vin-bar-fill { display: block; height: 100%; border-radius: 3px; transition: width var(--bdna-duration-normal, 200ms) ease; }
.vin-pressure-zone { margin: 4px 0; }
.vin-zone-lbl { font-size: 0.62rem; text-transform: uppercase; color: var(--muted); }
.vin-zone-bar { display: flex; height: 6px; border-radius: 3px; overflow: hidden; background: rgba(255,255,255,0.06); }
.vin-zone-bar span { display: block; height: 100%; }
.vin-timeline { display: flex; flex-wrap: wrap; gap: 4px; }
.vin-tl-marker {
  font-size: 0.62rem; padding: 2px 6px; border-radius: 4px; background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.12);
}
.vin-tl-goal { border-color: #22c55e; color: #22c55e; }
.vin-hist-compare, .vin-sim-compare { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.vin-hist-col { text-align: center; }
.vin-hist-lbl { display: block; font-size: 0.62rem; color: var(--muted); }
.vin-hist-delta { font-weight: 700; font-size: 0.85rem; }
.vin-hist-delta.pos, .vin-strat-ev.pos, .vin-market.pos { color: #22c55e; }
.vin-hist-delta.neg, .vin-strat-ev.neg, .vin-market.neg { color: #ef4444; }
.vin-venue-name { display: block; font-size: 0.75rem; font-weight: 600; margin-bottom: 4px; }
.vin-weather { display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; }
.vin-weather-temp { font-size: 1.1rem; font-weight: 700; }
.vin-rank-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.vin-rank-cell { padding: 4px 6px; background: rgba(255,255,255,0.04); border-radius: 4px; }
.vin-form-row { display: flex; align-items: center; gap: 8px; margin: 4px 0; }
.vin-form-team { font-size: 0.68rem; min-width: 48px; }
.vin-form-chips { display: flex; gap: 3px; }
.vin-form-chip { width: 18px; height: 18px; border-radius: 3px; font-size: 0.6rem; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.vin-form-w { background: rgba(34,197,94,0.25); color: #22c55e; }
.vin-form-d { background: rgba(148,163,184,0.2); color: #94a3b8; }
.vin-form-l { background: rgba(239,68,68,0.2); color: #ef4444; }
.vin-strat-row { display: flex; justify-content: space-between; gap: 8px; font-size: 0.72rem; padding: 3px 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
.vin-strat-conf { font-weight: 700; }
.vin-pred-val { font-size: 1.4rem; font-weight: 800; color: #22d3ee; }
.vin-market-mv { font-size: 1rem; font-weight: 700; }
@keyframes vin-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
body.sbe-reduced-motion .vin-card { animation: none; }

/* BetDNA Experience Engine */
.bex-view-enter { animation: bex-view-in var(--bdna-duration-slow, 320ms) var(--bdna-ease-emphasized, ease); }
@keyframes bex-view-in { from { opacity: 0.92; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.bex-stay-pulse { font-size: 0.62rem; font-weight: 800; padding: 2px 7px; border-radius: 999px; letter-spacing: 0.04em; }
.bex-pulse-green { background: rgba(34,197,94,0.2); color: #22c55e; }
.bex-pulse-amber { background: rgba(245,158,11,0.2); color: #f59e0b; }
.bex-pulse-red { background: rgba(239,68,68,0.2); color: #ef4444; }
.bex-question-strip { display: flex; gap: 4px; }
.bex-q-chip { width: 20px; height: 20px; border-radius: 50%; font-size: 0.65rem; display: inline-flex; align-items: center; justify-content: center; }
.bex-q-yes { background: rgba(34,197,94,0.25); color: #22c55e; }
.bex-q-notyet { background: rgba(148,163,184,0.15); color: #94a3b8; }
body.sbe-reduced-motion .bex-view-enter { animation: none; }

/* BetDNA Sports Intelligence Assistant (BIA) */
.bia-root { position: fixed; inset: 0; pointer-events: none; z-index: 9000; }
.bia-float {
  position: fixed;
  z-index: 9001;
  pointer-events: auto;
  touch-action: none;
  transition: left 0.18s ease, top 0.18s ease, transform 0.18s ease;
}
.bia-float.bia-dragging { transition: none; }
.bia-float.bia-edge-peek[data-dock="right"] { transform: translateX(calc(100% - 14px)); }
.bia-float.bia-edge-peek[data-dock="left"] { transform: translateX(calc(-100% + 14px)); }
.bia-float.bia-edge-peek[data-dock="top"] { transform: translateY(calc(-100% + 14px)); }
.bia-float.bia-minimized .bia-panel { display: none !important; }
.bia-float.bia-minimized .bia-fab {
  width: 48px; height: 48px; padding: 0; border-radius: 50%;
  justify-content: center;
}
.bia-float.bia-minimized .bia-fab-label { display: none; }
.bia-fab {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 16px; border-radius: 999px;
  background: var(--accent, #3b82f6); color: #fff; border: none;
  box-shadow: 0 4px 20px rgba(0,0,0,0.35); cursor: grab;
  font-weight: 600; font-size: 0.9rem;
}
.bia-float.bia-dragging .bia-fab { cursor: grabbing; }
.bia-fab:hover { filter: brightness(1.08); }
.bia-fab-icon { width: 22px; height: 22px; border-radius: 50%; background: rgba(255,255,255,0.2); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; }
.bia-drag-handle {
  width: 28px; height: 4px; border-radius: 2px;
  background: rgba(148,163,184,0.45); margin: 0 auto 6px; cursor: grab;
  flex-shrink: 0;
}
.bia-header { display: flex; flex-direction: column; padding: 10px 14px 8px; border-bottom: 1px solid var(--border, #334155); cursor: grab; }
.bia-header-row { display: flex; justify-content: space-between; align-items: flex-start; width: 100%; gap: 8px; }
.bia-header-actions { display: flex; align-items: center; gap: 2px; flex-shrink: 0; }
.bia-minimize {
  background: transparent; border: none; color: inherit;
  font-size: 1.2rem; cursor: pointer; line-height: 1; padding: 0 6px;
}
.bia-panel {
  position: absolute;
  width: min(420px, calc(100vw - 32px)); max-height: min(70vh, 560px);
  display: flex; flex-direction: column;
  background: var(--surface, #1e293b); border: 1px solid var(--border, #334155);
  border-radius: 12px; box-shadow: 0 8px 32px rgba(0,0,0,0.45);
  z-index: 9002;
}
.bia-panel-dock-right { right: calc(100% + 10px); bottom: 0; }
.bia-panel-dock-left { left: calc(100% + 10px); bottom: 0; }
.bia-panel-dock-top { left: 0; top: calc(100% + 10px); }
.bia-panel-dock-bottom { left: 0; bottom: calc(100% + 10px); }
.bia-panel[hidden] { display: none !important; }
.bia-title { margin: 0; font-size: 1rem; }
.bia-close { background: transparent; border: none; color: inherit; font-size: 1.4rem; cursor: pointer; line-height: 1; }
.bia-suggestions { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 14px; border-bottom: 1px solid var(--border, #334155); }
.bia-suggest-btn { font-size: 0.72rem; }
.bia-messages { flex: 1; overflow-y: auto; padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; min-height: 120px; }
.bia-msg { padding: 10px 12px; border-radius: 10px; font-size: 0.88rem; line-height: 1.45; }
.bia-msg-user { align-self: flex-end; background: rgba(59,130,246,0.2); max-width: 92%; }
.bia-msg-assistant { align-self: flex-start; background: rgba(15,23,42,0.6); border: 1px solid var(--border, #334155); max-width: 96%; }
.bia-msg-loading { opacity: 0.7; font-style: italic; }
.bia-protected-badge { display: inline-block; font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; padding: 2px 6px; border-radius: 4px; background: rgba(245,158,11,0.2); color: #f59e0b; margin-bottom: 6px; }
.bia-form { display: flex; gap: 8px; padding: 12px 14px; border-top: 1px solid var(--border, #334155); }
.bia-input { flex: 1; padding: 8px 10px; border-radius: 8px; border: 1px solid var(--border, #334155); background: var(--bg, #0f172a); color: inherit; }
.bia-send { flex-shrink: 0; }
@media (max-width: 480px) {
  .bia-fab-label { display: none; }
  .bia-panel {
    width: min(420px, calc(100vw - 24px));
    max-height: min(65vh, 480px);
  }
  .bia-panel-dock-right,
  .bia-panel-dock-left {
    right: auto; left: 50%; transform: translateX(-50%);
    bottom: calc(100% + 10px);
  }
}

/* Personal Sports Advisor */
.bia-tabs { display: flex; gap: 4px; padding: 0 14px 8px; border-bottom: 1px solid var(--border, #334155); }
.bia-tab { flex: 1; padding: 8px; border: none; background: transparent; color: inherit; cursor: pointer; border-radius: 8px; font-weight: 600; font-size: 0.85rem; }
.bia-tab.active { background: rgba(59,130,246,0.2); color: var(--accent, #3b82f6); }
.bia-panel-body { flex: 1; overflow-y: auto; display: flex; flex-direction: column; min-height: 0; }
.psa-tab-wrap { padding: 10px 14px; }
.psa-dashboard { display: flex; flex-direction: column; gap: 8px; }
.psa-dash-section { border: 1px solid var(--border, #334155); border-radius: 8px; padding: 8px 10px; }
.psa-dash-section summary { cursor: pointer; font-size: 0.88rem; }
.psa-dash-body { margin-top: 8px; }
.psa-chip { display: inline-block; padding: 2px 8px; margin: 2px; border-radius: 999px; background: rgba(59,130,246,0.15); font-size: 0.78rem; }
.psa-list { margin: 0; padding-left: 1.1rem; }
.psa-arch { margin: 0 0 10px; }
.psa-risk-picker { display: flex; gap: 6px; margin-bottom: 12px; flex-wrap: wrap; }
.psa-daily-insight { margin: 10px 14px 0; padding: 10px 12px; border-left: 3px solid var(--accent, #3b82f6); }

/* LP-012 Lab Research Department */
.lrc-shell { display: flex; flex-direction: column; gap: 14px; }
.lrc-dashboard-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px 14px; margin: 0; }
.lrc-dashboard-grid div { display: flex; flex-direction: column; gap: 2px; }
.lrc-dashboard-grid dt { font-size: 0.72rem; color: var(--muted, #b0bcc9); }
.lrc-dashboard-grid dd { margin: 0; font-weight: 600; font-size: 0.88rem; }
.lrc-institute-dashboard { border-left: 3px solid var(--accent, #3b82f6); }
.lrc-batch-field { display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; }
.lrc-batch-field select { min-width: 88px; }
.lrc-expand { margin: 0; }
.lrc-expand summary { cursor: pointer; list-style: none; }
.lrc-expand summary::-webkit-details-marker { display: none; }
.lrc-expand-body { margin-top: 10px; }
.lrc-advanced-controls .lrc-expand-body { padding-top: 4px; }
.lrc-header-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 12px; }
.lrc-title { margin: 0 0 4px; font-size: 1.25rem; }
.lrc-sub { margin: 0; color: var(--muted, #b0bcc9); font-size: 0.9rem; }
.lrc-facility-badge { padding: 4px 10px; border-radius: 999px; font-size: 0.78rem; font-weight: 600; }
.lrc-facility-badge.lrc-active { background: rgba(34, 197, 94, 0.15); color: var(--bdna-success, #22c55e); }
.lrc-facility-badge.lrc-running { background: rgba(59, 130, 246, 0.18); color: #60a5fa; border: 1px solid rgba(59, 130, 246, 0.35); }
.lrc-facility-badge.lrc-exhausted { background: rgba(34, 197, 94, 0.12); color: var(--bdna-success, #22c55e); border: 1px solid rgba(34, 197, 94, 0.35); }
.lrc-facility-badge.lrc-paused { background: rgba(251, 191, 36, 0.15); color: #fbbf24; }
.lrc-running-status { color: #60a5fa; }
.lrc-section-title { margin: 0 0 10px; font-size: 1rem; }
.lrc-count { font-weight: 400; color: var(--muted, #b0bcc9); font-size: 0.85rem; }
.lrc-flow { display: flex; flex-direction: column; gap: 12px; }
.lrc-exp-list { margin: 0; padding-left: 1.1rem; display: flex; flex-direction: column; gap: 10px; }
.lrc-exp-list.compact { gap: 6px; }
.lrc-exp-row { list-style: decimal; }
.lrc-exp-top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 4px; }
.lrc-status { font-size: 0.72rem; text-transform: uppercase; padding: 2px 6px; border-radius: 4px; font-weight: 600; }
.lrc-status-waiting { background: rgba(148, 163, 184, 0.2); }
.lrc-status-running { background: rgba(59, 130, 246, 0.2); color: #60a5fa; }
.lrc-status-completed { background: rgba(34, 197, 94, 0.15); color: #22c55e; }
.lrc-status-failed { background: rgba(239, 68, 68, 0.15); color: #ef4444; }
.lrc-priority { font-size: 0.75rem; color: var(--muted, #b0bcc9); }
.lrc-progress { height: 6px; background: var(--border, #334155); border-radius: 3px; margin: 6px 0; overflow: hidden; }
.lrc-progress-fill { height: 100%; background: var(--accent, #3b82f6); transition: width 0.3s; }
.lrc-health-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px 16px; margin: 0; }
.lrc-health-grid div { display: flex; flex-direction: column; gap: 2px; }
.lrc-health-grid dt { font-size: 0.75rem; color: var(--muted, #b0bcc9); }
.lrc-health-grid dd { margin: 0; font-weight: 600; }
.lrc-discovery-list { margin: 0; padding-left: 1.1rem; }
.lrc-next-q { font-size: 1rem; margin: 0 0 8px; }
.lrc-promotion-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.lrc-promotion-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--border, #334155); }
.lrc-control-row { flex-wrap: wrap; }
.lrc-meta { margin-top: 4px; }
.lrc-busy { color: var(--accent, #60a5fa); margin: 8px 0; }
.lrc-exhausted { color: var(--bdna-success, #22c55e); font-weight: 600; }
.lrc-error { margin-bottom: 8px; }
.lrc-dept-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; margin-top: 8px; }
.lrc-dept-card { padding: 10px; border-radius: 8px; background: rgba(255,255,255,0.03); border: 1px solid var(--border, #334155); }
.lrc-dept-card strong { display: block; font-size: 0.85rem; margin: 4px 0; }
.lrc-top25-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.lrc-run-research { font-size: 1.05rem; padding: 12px 24px; }

/* LP-013 Formula Genome */
.fg-genome { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; }
.fg-main-title { margin: 0 0 4px; font-size: 1.2rem; }
.fg-title { margin: 0 0 10px; font-size: 1rem; }
.fg-subtitle { margin: 0 0 6px; font-size: 0.9rem; }
.fg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px 14px; margin: 0; }
.fg-grid div { display: flex; flex-direction: column; gap: 2px; }
.fg-grid dt { font-size: 0.75rem; color: var(--muted, #b0bcc9); }
.fg-grid dd { margin: 0; font-weight: 600; }
.fg-stage { font-size: 0.68rem; text-transform: uppercase; padding: 2px 5px; border-radius: 4px; background: rgba(148, 163, 184, 0.2); }
.fg-stage-active, .fg-stage-commercial_ready { background: rgba(34, 197, 94, 0.15); color: #22c55e; }
.fg-stage-retired { background: rgba(239, 68, 68, 0.12); color: #ef4444; }
.fg-stage-experimental { background: rgba(59, 130, 246, 0.15); color: #60a5fa; }
.fg-tree-list { margin: 0; padding-left: 1rem; display: flex; flex-direction: column; gap: 12px; }
.fg-tree-children { margin: 6px 0 0; padding-left: 1.2rem; }
.fg-rank-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.fg-promo-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.fg-meta { margin-top: 4px; }

/* LP-014 Strategy Genome */
.sg-genome { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; }
.sg-main-title { margin: 0 0 4px; font-size: 1.2rem; }
.sg-title { margin: 0 0 10px; font-size: 1rem; }
.sg-subtitle { margin: 0 0 6px; font-size: 0.9rem; }
.sg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px 14px; margin: 0; }
.sg-grid div { display: flex; flex-direction: column; gap: 2px; }
.sg-grid dt { font-size: 0.75rem; color: var(--muted, #b0bcc9); }
.sg-grid dd { margin: 0; font-weight: 600; }
.sg-stage { font-size: 0.68rem; text-transform: uppercase; padding: 2px 5px; border-radius: 4px; background: rgba(148, 163, 184, 0.2); display: inline-block; margin: 0 2px; }
.sg-stage-active, .sg-stage-commercial_ready { background: rgba(34, 197, 94, 0.15); color: #22c55e; }
.sg-stage-retired { background: rgba(239, 68, 68, 0.12); color: #ef4444; }
.sg-stage-needs_evidence { background: rgba(251, 191, 36, 0.15); color: #fbbf24; }
.sg-tree-list { margin: 0; padding-left: 1rem; display: flex; flex-direction: column; gap: 12px; }
.sg-tree-children { margin: 6px 0 0; padding-left: 1.2rem; }
.sg-rank-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.sg-risk-table { width: 100%; border-collapse: collapse; }
.sg-risk-table th, .sg-risk-table td { padding: 4px 8px; border-bottom: 1px solid var(--border, #334155); text-align: left; }
.sg-pipeline-flow { line-height: 2; }
.sg-meta { margin-top: 4px; }

/* LP-015 Evolution Engine */
.evo-engine { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; }
.evo-main-title { margin: 0 0 4px; font-size: 1.2rem; }
.evo-title { margin: 0 0 10px; font-size: 1rem; }
.evo-subtitle { margin: 0 0 6px; font-size: 0.9rem; }
.evo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px 14px; margin: 0; }
.evo-grid div { display: flex; flex-direction: column; gap: 2px; }
.evo-grid dt { font-size: 0.75rem; color: var(--muted, #b0bcc9); }
.evo-grid dd { margin: 0; font-weight: 600; }
.evo-loop-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.evo-table { width: 100%; border-collapse: collapse; }
.evo-table th, .evo-table td { padding: 4px 8px; border-bottom: 1px solid var(--border, #334155); text-align: left; }
.evo-verdict { font-size: 0.68rem; text-transform: uppercase; padding: 2px 5px; border-radius: 4px; background: rgba(148, 163, 184, 0.2); }
.evo-verdict-active, .evo-verdict-learning { background: rgba(34, 197, 94, 0.15); color: #22c55e; }
.evo-verdict-saturated { background: rgba(239, 68, 68, 0.12); color: #ef4444; }
.evo-verdict-diminishing { background: rgba(251, 191, 36, 0.15); color: #fbbf24; }
.evo-severity { font-size: 0.68rem; text-transform: uppercase; padding: 2px 5px; border-radius: 4px; }
.evo-severity-critical { background: rgba(239, 68, 68, 0.15); color: #ef4444; }
.evo-severity-high { background: rgba(251, 191, 36, 0.15); color: #fbbf24; }
.evo-severity-medium { background: rgba(148, 163, 184, 0.2); color: #94a3b8; }
.evo-pipeline-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.evo-btn-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.evo-meta { margin-top: 4px; }
.evo-engine-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.evo-protected, .evo-isolated { font-size: 0.65rem; text-transform: uppercase; padding: 2px 6px; border-radius: 4px; margin-left: 6px; }
.evo-protected { background: rgba(59, 130, 246, 0.15); color: #3b82f6; }
.evo-isolated { background: rgba(168, 85, 247, 0.15); color: #a855f7; }
.evo-founder-decision { border: 1px solid rgba(251, 191, 36, 0.35); }
.evo-decision-row { margin: 12px 0; }
.evo-cmp-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 10px; }
.evo-improved { color: #22c55e; }
.evo-worse { color: #ef4444; }

/* PLAY-001 Match Engine ? Canvas pitch */
.me-pitch-shell { display: flex; flex-direction: column; gap: 6px; width: 100%; }
.me-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 4px 0; }
.me-clock { font-weight: 700; font-size: 1rem; }
.me-camera-row { display: flex; gap: 4px; margin-left: auto; }
.me-cam-btn { font-size: 0.68rem; padding: 3px 8px; border-radius: 4px; border: 1px solid var(--border, #334155); background: transparent; color: inherit; cursor: pointer; }
.me-cam-btn.active { background: rgba(59, 130, 246, 0.2); border-color: #3b82f6; }
.me-canvas { width: 100%; max-width: 100%; height: auto; border-radius: 8px; display: block; background: #1a3d2e; }
.me-state-bar { padding: 4px 0; }
.me-intel-bar { padding: 2px 0; color: var(--text-secondary, #94a3b8); font-size: 0.85em; }
.me-ai-bar { padding: 2px 0; font-style: italic; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.me-flow, .me-behaviour, .me-ball { margin-right: 4px; }

/* PLAY-003 Match Theatre Presentation */
.mtp-broadcast-overlay { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--border-subtle, rgba(148,163,184,0.2)); }
.mtp-scoreboard { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; font-weight: 600; }
.mtp-sb-comp { font-size: 0.75em; color: var(--text-secondary, #94a3b8); width: 100%; }
.mtp-sb-main { display: flex; align-items: center; gap: 12px; flex: 1; }
.mtp-sb-score { font-size: 1.25em; letter-spacing: 0.05em; }
.mtp-sb-clock { font-size: 0.9em; color: var(--text-secondary, #94a3b8); }
.mtp-meters { display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); gap: 6px; }
.mtp-meter { display: flex; flex-direction: column; gap: 2px; }
.mtp-meter-label { font-size: 0.7em; text-transform: uppercase; color: var(--text-secondary, #94a3b8); }
.mtp-meter-bar { height: 4px; background: rgba(148,163,184,0.2); border-radius: 2px; overflow: hidden; }
.mtp-meter-home, .mtp-meter-fill { display: block; height: 100%; background: #3b82f6; border-radius: 2px; }
.mtp-meter-danger-bar .mtp-meter-fill { background: #ef4444; }
.mtp-meter-val { font-size: 0.75em; }
.mtp-story-banner { padding: 6px 0; }
.mtp-story-headline { margin: 0; font-size: 0.9em; }
.mtp-crowd { display: flex; align-items: center; gap: 8px; }
.mtp-crowd-level { text-transform: capitalize; font-weight: 600; font-size: 0.85em; }
.mtp-crowd-explosion, .mtp-crowd-roar { color: #fbbf24; }
.mtp-crowd-oooo { color: #f97316; }
.mtp-crowd-boo { color: #94a3b8; }
.mtp-commentary { padding: 8px; background: rgba(15,23,42,0.4); border-radius: 6px; }
.mtp-density-sparse { opacity: 0.85; }
.mtp-density-intense { border-left: 3px solid #fbbf24; }
.mtp-commentary-header { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.mtp-personality-badge { font-size: 0.7em; text-transform: uppercase; letter-spacing: 0.06em; color: #38bdf8; }
.mtp-commentary-primary { margin: 0; font-size: 0.95em; line-height: 1.4; }
.mtp-commentary-cookie { margin: 6px 0 0; color: #fbbf24; font-style: italic; }
.mtp-atmosphere { font-size: 0.8em; }

/* PLAY-004 Living Football World */
.lfw-career { margin-top: 12px; }
.lfw-header { margin-bottom: 8px; }
.lfw-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px; }
.lfw-input, .lfw-select { font-size: 0.85em; padding: 4px 8px; }
.lfw-dashboard { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.lfw-panel { padding: 8px; background: rgba(15,23,42,0.25); border-radius: 6px; }
.lfw-panel-title { margin: 0 0 6px; font-size: 0.85em; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-secondary, #94a3b8); }
.lfw-table { width: 100%; border-collapse: collapse; }
.lfw-table td, .lfw-table th { padding: 2px 6px; text-align: left; }
.lfw-user-row { background: rgba(59,130,246,0.15); font-weight: 600; }
.lfw-news { list-style: none; padding: 0; margin: 0; }
.lfw-news li { padding: 4px 0; border-bottom: 1px solid rgba(148,163,184,0.15); }
.lfw-other-matches { list-style: none; padding: 0; margin: 0; }
.lfw-challenge-row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.lfw-law { margin-top: 10px; font-style: italic; }

/* Monster Loop 007 ? Career Living Universe */
.clu-panel { margin: 12px 0; padding: 12px; border-left: 3px solid rgba(56, 189, 248, 0.45); }
.clu-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); gap: 8px; margin: 8px 0; }
.clu-stats div { padding: 6px 8px; background: rgba(15, 23, 42, 0.25); border-radius: 6px; }
.clu-stats dt { font-size: 0.72rem; color: var(--muted, #94a3b8); margin: 0; }
.clu-stats dd { margin: 2px 0 0; font-weight: 600; }
.clu-loop { margin: 6px 0 10px; padding-left: 18px; columns: 2; column-gap: 16px; }
.clu-challenges { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.clu-challenge { font-size: 0.72rem; padding: 2px 8px; border-radius: 999px; border: 1px solid rgba(148, 163, 184, 0.35); text-transform: capitalize; }
.clu-pass { color: #4ade80; border-color: rgba(74, 222, 128, 0.35); }
.clu-fail { color: #f87171; border-color: rgba(248, 113, 113, 0.35); }

/* PLAY-005 Broadcast Director */
.bd-director-bar { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; padding: 8px; background: rgba(15,23,42,0.45); border-radius: 6px; }
.bd-mode-btns, .bd-cam-row { display: flex; flex-wrap: wrap; gap: 4px; }
.bd-mode-btn, .bd-cam-btn { font-size: 0.75em; padding: 3px 8px; border-radius: 4px; border: 1px solid rgba(148,163,184,0.3); background: transparent; color: inherit; cursor: pointer; }
.bd-mode-btn.active, .bd-cam-btn.active { background: #3b82f6; border-color: #3b82f6; color: #fff; }
.bd-ai-reason { margin: 0; font-style: italic; }
.bd-callouts { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.bd-callout { font-size: 0.8em; padding: 3px 8px; border-radius: 4px; background: rgba(59,130,246,0.2); }
.bd-callout-goal_scorer { background: rgba(251,191,36,0.35); font-weight: 600; }
.bd-callout-red_card { background: rgba(239,68,68,0.35); }
.bd-callout-yellow_card { background: rgba(250,204,21,0.25); }
.bd-graphics-overlay { margin-top: 4px; }
.bd-formation, .bd-strategy, .bd-story-line { margin: 2px 0; }
.bd-highlight-rail { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; margin-top: 8px; }
.bd-hl-marker { font-size: 0.75em; padding: 2px 6px; border-radius: 3px; border: 1px solid rgba(148,163,184,0.4); background: transparent; cursor: pointer; }
.bd-hl-marker:hover { background: rgba(59,130,246,0.2); }
.bd-summaries { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.bd-summary-chip { padding: 2px 8px; background: rgba(15,23,42,0.35); border-radius: 4px; }
.bd-momentum-flash { height: 2px; background: linear-gradient(90deg, transparent, #ef4444, transparent); margin: 4px 0; animation: bd-pulse-once 0.8s ease 1; }
@keyframes bd-pulse-once { 0%, 100% { opacity: 0.35; } 50% { opacity: 1; } }

/* PLAY-006 Sport Modules */
.sm-badge { font-size: 0.75em; padding: 2px 8px; border-radius: 4px; background: rgba(59,130,246,0.25); margin-right: 6px; }
.me-pitch-shell[data-sport="horse_racing"] .me-canvas { border-color: #8B4513; }
.me-pitch-shell[data-sport="tennis"] .me-canvas { border-color: #2d6a4f; }
.me-pitch-shell[data-sport="nba"] .me-canvas { border-color: #552583; }

/* PLAY-008 Living Sports Universe */
.lsu-live-panel { margin: 8px 0; padding: 10px; background: rgba(15,23,42,0.45); border-radius: 8px; border-left: 3px solid #22c55e; }
.lsu-live-title { margin: 0 0 6px; }
.lsu-comp-row, .lsu-sport-row { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.lsu-comp-chip, .lsu-sport-chip { font-size: 0.7em; padding: 2px 6px; background: rgba(59,130,246,0.2); border-radius: 4px; }
.lsu-media-feed { margin-top: 8px; }
.lsu-news { margin: 2px 0; font-style: italic; }
.lsu-calendar { margin-bottom: 4px; }

/* PLAY-007 Three Second Law */
.tsl-panel { margin: 8px 0; padding: 10px; background: rgba(15,23,42,0.5); border-radius: 8px; border: 1px solid rgba(59,130,246,0.25); }
.tsl-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); gap: 8px; }
.tsl-cell { display: flex; flex-direction: column; gap: 2px; }
.tsl-label { font-size: 0.7em; text-transform: uppercase; opacity: 0.7; letter-spacing: 0.05em; }
.tsl-value { font-size: 0.95em; }
.tsl-sub { font-size: 0.75em; opacity: 0.8; }
.tsl-home { color: #60a5fa; }
.tsl-away { color: #f87171; }
.tsl-balanced, .tsl-level { color: #94a3b8; }
.tsl-danger-high { background: rgba(239,68,68,0.15); border-radius: 4px; padding: 4px; }
.tsl-danger-med { background: rgba(251,191,36,0.1); border-radius: 4px; padding: 4px; }
.fmd-director-embedded .me-pitch-shell { margin: 0; }

/* AP-016 Pattern Discovery */
.pat-discovery { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; }
.pat-main-title { margin: 0 0 4px; font-size: 1.2rem; }
.pat-title { margin: 0 0 10px; font-size: 1rem; }
.pat-subtitle { margin: 0 0 6px; font-size: 0.9rem; }
.pat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px 14px; margin: 0; }
.pat-grid div { display: flex; flex-direction: column; gap: 2px; }
.pat-grid dt { font-size: 0.75rem; color: var(--muted, #b0bcc9); }
.pat-grid dd { margin: 0; font-weight: 600; }
.pat-table { width: 100%; border-collapse: collapse; }
.pat-table th, .pat-table td { padding: 4px 8px; border-bottom: 1px solid var(--border, #334155); text-align: left; }
.pat-status { font-size: 0.68rem; text-transform: uppercase; padding: 2px 5px; border-radius: 4px; background: rgba(148, 163, 184, 0.2); }
.pat-status-commercial, .pat-status-stable { background: rgba(34, 197, 94, 0.15); color: #22c55e; }
.pat-status-weak, .pat-status-retired { background: rgba(239, 68, 68, 0.12); color: #ef4444; }
.pat-status-emerging, .pat-status-experimental { background: rgba(59, 130, 246, 0.15); color: #60a5fa; }
.pat-pipeline-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pat-btn-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.pat-meta { margin-top: 4px; }

/* AP-017 Formula Intelligence */
.fint-intel { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; }
.fint-main-title { margin: 0 0 4px; font-size: 1.2rem; }
.fint-title { margin: 0 0 10px; font-size: 1rem; }
.fint-subtitle { margin: 0 0 6px; font-size: 0.9rem; }
.fint-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px 14px; margin: 0; }
.fint-grid div { display: flex; flex-direction: column; gap: 2px; }
.fint-grid dt { font-size: 0.75rem; color: var(--muted, #b0bcc9); }
.fint-grid dd { margin: 0; font-weight: 600; }
.fint-table { width: 100%; border-collapse: collapse; }
.fint-table th, .fint-table td { padding: 4px 8px; border-bottom: 1px solid var(--border, #334155); text-align: left; }
.fint-tier { font-size: 0.68rem; text-transform: uppercase; padding: 2px 5px; border-radius: 4px; background: rgba(148, 163, 184, 0.2); }
.fint-tier-platinum { background: rgba(168, 85, 247, 0.2); color: #c084fc; }
.fint-tier-gold { background: rgba(251, 191, 36, 0.2); color: #fbbf24; }
.fint-tier-silver { background: rgba(148, 163, 184, 0.25); color: #cbd5e1; }
.fint-tier-bronze { background: rgba(180, 83, 9, 0.2); color: #d97706; }
.fint-tier-unranked { background: rgba(100, 116, 139, 0.2); color: #94a3b8; }
.fint-tier-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.fint-btn-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.fint-meta { margin-top: 4px; }

/* AP-018 Simulation Universe */
.sim-universe { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; }
.sim-main-title { margin: 0 0 4px; font-size: 1.2rem; }
.sim-title { margin: 0 0 10px; font-size: 1rem; }
.sim-subtitle { margin: 0 0 6px; font-size: 0.9rem; }
.sim-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px 14px; margin: 0; }
.sim-grid div { display: flex; flex-direction: column; gap: 2px; }
.sim-grid dt { font-size: 0.75rem; color: var(--muted, #b0bcc9); }
.sim-grid dd { margin: 0; font-weight: 600; }
.sim-table { width: 100%; border-collapse: collapse; }
.sim-table th, .sim-table td { padding: 4px 8px; border-bottom: 1px solid var(--border, #334155); text-align: left; }
.sim-risk { font-size: 0.68rem; text-transform: uppercase; padding: 2px 5px; border-radius: 4px; }
.sim-risk-low { background: rgba(34, 197, 94, 0.15); color: #22c55e; }
.sim-risk-medium { background: rgba(251, 191, 36, 0.15); color: #fbbf24; }
.sim-risk-high { background: rgba(239, 68, 68, 0.12); color: #ef4444; }
.sim-league-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.sim-btn-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.sim-meta { margin-top: 4px; }
.bia-personal-badge { display: inline-block; font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; padding: 2px 6px; border-radius: 4px; background: rgba(59,130,246,0.2); color: #60a5fa; margin-bottom: 6px; }

/* PLAY-009 Sandbox Universe */
.sbx-panel { margin: 12px 0; padding: 14px; border-left: 3px solid #8b5cf6; }
.sbx-title { margin: 0 0 8px; }
.sbx-section { margin: 10px 0; }
.sbx-chips, .sbx-timeline, .sbx-mc-tiers { display: flex; flex-wrap: wrap; gap: 6px; }
.sbx-chip, .sbx-mc-tier { font-size: 0.75rem; padding: 4px 8px; border-radius: 6px; border: 1px solid var(--border, #334155); background: rgba(139,92,246,0.12); cursor: pointer; }
.sbx-timeline-chip { font-size: 0.72rem; padding: 3px 7px; border-radius: 4px; background: rgba(15,23,42,0.5); }
.sbx-lib-entry { padding: 4px 0; border-bottom: 1px solid rgba(51,65,85,0.5); }
.sbx-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; margin-top: 10px; }
.sbx-grid div { display: flex; flex-direction: column; gap: 2px; }
.sbx-grid dt { font-size: 0.72rem; color: var(--muted, #b0bcc9); }
.sbx-grid dd { margin: 0; font-weight: 600; }
.sbx-compare-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.sbx-compare-table th, .sbx-compare-table td { padding: 4px 8px; border-bottom: 1px solid var(--border, #334155); }
.sbx-baseline { background: rgba(34,197,94,0.08); }
.sbx-disc-q { margin: 4px 0; padding-left: 8px; border-left: 2px solid #8b5cf6; }
.sbx-actions { display: flex; gap: 8px; margin: 8px 0; }

/* PLAY-010 Five Second Bar + Football Story Mode */
.me-five-second-bar {
  display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center;
  padding: 8px 12px; margin-bottom: 6px;
  background: linear-gradient(90deg, rgba(139,92,246,0.18), rgba(34,197,94,0.12));
  border-radius: 8px; border-left: 3px solid #8b5cf6;
  font-size: 0.82rem;
}
.me-fs-sport { font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #a78bfa; }
.me-fs-winning strong { color: #f8fafc; }
.me-fs-betdna { color: #22c55e; font-weight: 600; }
.me-fs-conf { color: #60a5fa; }
.me-fs-mom { color: #fbbf24; }
.me-fs-danger { color: #f87171; }
.me-story-row { display: inline-flex; gap: 4px; margin-left: auto; }
.me-story-btn { font-size: 0.68rem; padding: 2px 6px; border-radius: 4px; border: 1px solid var(--border, #334155); background: transparent; cursor: pointer; opacity: 0.85; }
.me-story-btn.active { background: rgba(139,92,246,0.25); border-color: #8b5cf6; }
.me-pitch-shell[data-me-silent="true"] .mtp-commentary,
.me-pitch-shell[data-me-silent="true"] .ste-story-rail { display: none !important; }
.me-pitch-shell[data-me-no-stats="true"] .me-state-bar,
.me-pitch-shell[data-me-no-stats="true"] .me-intel-bar,
.me-pitch-shell[data-me-no-stats="true"] .mtp-meters,
.me-pitch-shell[data-me-no-stats="true"] .tsl-panel { display: none !important; }
.me-pitch-shell[data-me-no-overlays="true"] .mtp-scoreboard,
.me-pitch-shell[data-me-no-overlays="true"] .bde-bar,
.me-pitch-shell[data-me-no-overlays="true"] .bde-callout,
.me-pitch-shell[data-me-no-overlays="true"] .bde-graphics,
.me-pitch-shell[data-me-no-overlays="true"] .bde-highlight-rail { display: none !important; }

/* PLAY-011 Player Experience */
.pex-panel { margin: 12px 0; padding: 14px; border-left: 3px solid #f59e0b; }
.pex-title { margin: 0 0 8px; }
.pex-section { margin: 10px 0; }
.pex-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.pex-grid div { display: flex; flex-direction: column; gap: 2px; }
.pex-grid dt { font-size: 0.72rem; color: var(--muted, #b0bcc9); }
.pex-grid dd { margin: 0; font-weight: 600; }
.pex-achievements { display: flex; flex-wrap: wrap; gap: 6px; }
.pex-ach { font-size: 0.72rem; padding: 3px 8px; border-radius: 6px; background: rgba(15,23,42,0.5); opacity: 0.7; }
.pex-ach-unlocked { background: rgba(245,158,11,0.2); opacity: 1; border: 1px solid #f59e0b; }
.pex-timeline { list-style: none; padding: 0; margin: 0; }
.pex-tl-item { padding: 4px 0; border-bottom: 1px solid rgba(51,65,85,0.4); }
.pex-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pex-col-chip { font-size: 0.72rem; padding: 3px 8px; border-radius: 4px; background: rgba(245,158,11,0.12); }
.pex-disc { margin: 4px 0; }
.pex-actions { display: flex; gap: 8px; margin: 10px 0; }
.pex-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 8px; }
.pex-meta div { display: flex; flex-direction: column; }
.pex-meta dt { font-size: 0.7rem; color: var(--muted, #b0bcc9); }
.pex-meta dd { margin: 0; font-weight: 600; }

/* PLAY-012 Product Guardian */
.pgd-panel { margin: 12px 0; padding: 14px; border-left: 3px solid #10b981; }
.pgd-title { margin: 0 0 8px; }
.pgd-verdict { margin: 8px 0; }
.pgd-gates { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 6px; margin: 10px 0; }
.pgd-gate { display: flex; justify-content: space-between; font-size: 0.75rem; padding: 4px 8px; border-radius: 4px; background: rgba(15,23,42,0.5); }
.pgd-pass { border-left: 2px solid #22c55e; }
.pgd-warn { border-left: 2px solid #f59e0b; }
.pgd-law { font-style: italic; margin-top: 8px; }

/* PLAY-013 Career Dynasty */
.cdy-panel { margin: 12px 0; padding: 14px; border-left: 3px solid #6366f1; }
.cdy-title { margin: 0 0 8px; }
.cdy-verdict { margin: 8px 0; }
.cdy-gates { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 6px; margin: 10px 0; }
.cdy-gate { display: flex; justify-content: space-between; font-size: 0.75rem; padding: 4px 8px; border-radius: 4px; background: rgba(15,23,42,0.5); }
.cdy-pass { border-left: 2px solid #6366f1; }
.cdy-warn { border-left: 2px solid #f59e0b; }
.cdy-engines { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.cdy-engine-chip { font-size: 0.68rem; padding: 3px 8px; border-radius: 999px; background: rgba(99,102,241,0.15); color: #a5b4fc; }
.cdy-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 8px 0; }
.cdy-stats div { display: flex; flex-direction: column; }
.cdy-stats dt { font-size: 0.7rem; color: var(--muted, #b0bcc9); }
.cdy-stats dd { margin: 0; font-weight: 600; }
.cdy-law { font-style: italic; margin-top: 8px; }

/* PLAY-014 Club Business */
.clb-panel { margin: 12px 0; padding: 14px; border-left: 3px solid #f59e0b; }
.clb-title { margin: 0 0 8px; }
.clb-verdict { margin: 8px 0; }
.clb-gates { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 6px; margin: 10px 0; }
.clb-gate { display: flex; justify-content: space-between; font-size: 0.75rem; padding: 4px 8px; border-radius: 4px; background: rgba(15,23,42,0.5); }
.clb-pass { border-left: 2px solid #f59e0b; }
.clb-warn { border-left: 2px solid #ef4444; }
.clb-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 8px 0; }
.clb-stats div { display: flex; flex-direction: column; }
.clb-stats dt { font-size: 0.7rem; color: var(--muted, #b0bcc9); }
.clb-stats dd { margin: 0; font-weight: 600; }
.clb-law { font-style: italic; margin-top: 8px; }

/* PLAY-015 Media Press Match Day */
.mdp-panel { margin: 12px 0; padding: 14px; border-left: 3px solid #38bdf8; }
.mdp-title { margin: 0 0 8px; }
.mdp-five-sec { margin: 6px 0; }
.mdp-headlines { list-style: none; padding: 0; margin: 8px 0; }
.mdp-headlines li { font-size: 0.82rem; padding: 4px 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
.mdp-cat { font-size: 0.65rem; text-transform: uppercase; color: #38bdf8; margin-right: 6px; }
.mdp-law { font-style: italic; margin-top: 8px; }

/* PLAY-016 Match Theatre Department */
.mtd-panel { margin: 12px 0; padding: 14px; border-left: 3px solid #a78bfa; }
.mtd-title { margin: 0 0 8px; }
.mtd-verdict { margin: 6px 0; }
.mtd-gates { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 6px; margin: 8px 0; }
.mtd-gate { display: flex; justify-content: space-between; font-size: 0.72rem; padding: 4px 8px; border-radius: 4px; background: rgba(255,255,255,0.04); }
.mtd-pass strong { color: #4ade80; }
.mtd-warn strong { color: #fbbf24; }
.mtd-layers { list-style: none; padding: 0; margin: 8px 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 4px; }
.mtd-layers li { font-size: 0.78rem; display: flex; justify-content: space-between; padding: 3px 0; border-bottom: 1px solid rgba(255,255,255,0.05); }
.mtd-layer-ok em { color: #4ade80; font-style: normal; }
.mtd-layer-warn em { color: #fbbf24; font-style: normal; }
.mtd-five-sec { margin: 6px 0; }
.mtd-law { font-style: italic; margin-top: 8px; }
.me-replay-row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 6px; }
.me-replay-btn { font-size: 0.75rem; padding: 4px 8px; }
.me-a11y { display: inline-flex; align-items: center; gap: 4px; margin-left: 8px; }

/* PLAY-017 Living Universe Department */
.lud-panel { margin: 12px 0; padding: 14px; border-left: 3px solid #34d399; }
.lud-title { margin: 0 0 8px; }
.lud-verdict { margin: 6px 0; }
.lud-gates { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 6px; margin: 8px 0; }
.lud-gate { display: flex; justify-content: space-between; font-size: 0.72rem; padding: 4px 8px; border-radius: 4px; background: rgba(255,255,255,0.04); }
.lud-pass strong { color: #4ade80; }
.lud-warn strong { color: #fbbf24; }
.lud-subs { list-style: none; padding: 0; margin: 8px 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 4px; }
.lud-subs li { font-size: 0.78rem; display: flex; justify-content: space-between; padding: 3px 0; border-bottom: 1px solid rgba(255,255,255,0.05); }
.lud-subs em { color: #34d399; font-style: normal; }
.lud-clock { margin: 8px 0; }
.lud-law { font-style: italic; margin-top: 8px; }

/* PLAY-018 Sporting History Department */
.shd-panel { margin: 12px 0; padding: 14px; border-left: 3px solid #f59e0b; }
.shd-title { margin: 0 0 8px; }
.shd-verdict { margin: 6px 0; }
.shd-gates { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 6px; margin: 8px 0; }
.shd-gate { display: flex; justify-content: space-between; font-size: 0.72rem; padding: 4px 8px; border-radius: 4px; background: rgba(255,255,255,0.04); }
.shd-pass strong { color: #4ade80; }
.shd-warn strong { color: #fbbf24; }
.shd-stories { list-style: none; padding: 0; margin: 8px 0; }
.shd-stories li { font-size: 0.82rem; padding: 4px 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
.shd-story-type { font-size: 0.65rem; text-transform: uppercase; color: #f59e0b; margin-right: 6px; }
.shd-knowledge { margin: 8px 0; }
.shd-law { font-style: italic; margin-top: 8px; }

/* PLAY-019 Explainable Intelligence Department */
.xid-panel { margin: 12px 0; padding: 14px; border-left: 3px solid #60a5fa; }
.xid-title { margin: 0 0 8px; }
.xid-verdict { margin: 6px 0; }
.xid-gates { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 6px; margin: 8px 0; }
.xid-gate { display: flex; justify-content: space-between; font-size: 0.72rem; padding: 4px 8px; border-radius: 4px; background: rgba(255,255,255,0.04); }
.xid-pass strong { color: #4ade80; }
.xid-warn strong { color: #fbbf24; }
.xid-chain { margin: 8px 0; }
.xid-contrib { margin: 6px 0; }
.xid-summary { margin: 8px 0; }
.xid-law { font-style: italic; margin-top: 8px; }

/* PLAY-020 ? Founder Command Centre Department */
.fcc-panel { margin: 12px 0; padding: 14px; border-left: 3px solid #a78bfa; }
.fcc-title { margin: 0 0 8px; }
.fcc-subtitle { margin: 10px 0 6px; font-size: 0.85rem; }
.fcc-verdict { margin: 6px 0; }
.fcc-briefing { margin: 8px 0; padding: 8px; background: rgba(167,139,250,0.06); border-radius: 6px; }
.fcc-bullets { margin: 4px 0 0; padding-left: 1.2rem; }
.fcc-wall { margin: 8px 0; }
.fcc-dept-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 6px; }
.fcc-dept { display: flex; flex-direction: column; font-size: 0.72rem; padding: 6px 8px; border-radius: 4px; background: rgba(255,255,255,0.04); }
.fcc-dept strong { font-size: 0.75rem; }
.fcc-dept em { font-style: normal; opacity: 0.85; margin-top: 2px; }
.fcc-dept-ok { border-left: 2px solid #4ade80; }
.fcc-dept-warn { border-left: 2px solid #fbbf24; }
.fcc-risks, .fcc-decisions { margin: 8px 0; }
.fcc-risk-list, .fcc-decision-list { margin: 4px 0 0; padding-left: 1.2rem; }
.fcc-gates { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 6px; margin: 8px 0; }
.fcc-gate { display: flex; justify-content: space-between; font-size: 0.72rem; padding: 4px 8px; border-radius: 4px; background: rgba(255,255,255,0.04); }
.fcc-pass strong { color: #4ade80; }
.fcc-warn strong { color: #fbbf24; }
.fcc-law { font-style: italic; margin-top: 8px; }

/* PLAY-021 ? Platform Operations Department */
.pod-panel { margin: 12px 0; padding: 14px; border-left: 3px solid #34d399; }
.pod-title { margin: 0 0 8px; }
.pod-subtitle { margin: 10px 0 6px; font-size: 0.85rem; }
.pod-verdict { margin: 6px 0; }
.pod-health { margin: 8px 0; padding: 8px; background: rgba(52,211,153,0.06); border-radius: 6px; }
.pod-alerts { margin: 8px 0; }
.pod-alert-list { margin: 4px 0 0; padding-left: 1.2rem; }
.pod-checks { margin: 6px 0; }
.pod-audit { margin: 8px 0; font-style: italic; }
.pod-gates { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 6px; margin: 8px 0; }
.pod-gate { display: flex; justify-content: space-between; font-size: 0.72rem; padding: 4px 8px; border-radius: 4px; background: rgba(255,255,255,0.04); }
.pod-pass strong { color: #4ade80; }
.pod-warn strong { color: #fbbf24; }
.pod-law { font-style: italic; margin-top: 8px; }

/* UX Recovery Loop ? movement communicates change, never attention fatigue */
.pex-story-caption--calm,
.pex-story-caption--calm * {
  animation: none !important;
}
@media (prefers-reduced-motion: reduce) {
  .sbe-ticker-inner,
  .skeleton-fixture-card,
  .skeleton-line,
  .bdna-loading-pulse,
  .ste-anim-celebrate .fmd-score,
  .sbe-lt-celebrate,
  .bd-momentum-flash {
    animation: none !important;
  }
}

/* LOOP 105 ? Founder Health + football reference Theatre */
.founder-health { max-width: 960px; margin: 0 auto; }
.fh-header { margin-bottom: 12px; }
.fh-title { margin: 0 0 4px; }
.fh-global { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; margin: 12px 0; }
.fh-global dt { font-size: 0.75rem; color: var(--muted, #94a3b8); }
.fh-global dd { margin: 0; font-weight: 600; }
.fh-board-head, .fh-row {
  display: grid;
  grid-template-columns: 1fr 88px minmax(140px, 2fr) minmax(100px, 1fr);
  gap: 8px;
  align-items: center;
  width: 100%;
  text-align: left;
}
.fh-board-head { padding: 6px 10px; }
.fh-row {
  margin: 0 0 6px;
  padding: 10px;
  border: 1px solid var(--border, #334155);
  border-radius: 8px;
  background: transparent;
  color: inherit;
  cursor: pointer;
}
.fh-row:hover { border-color: #64748b; }
[data-fh="YES"] { color: #4ade80; }
[data-fh="NO"] { color: #f87171; }
[data-fh="UNKNOWN"] { color: #fbbf24; }
.home-founder-health-chip { margin-left: 8px; }
.fh-detail-title { margin: 14px 0 8px; font-size: 0.95rem; }
.fh-evidence-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 8px 12px;
  margin: 0 0 12px;
}
.fh-evidence-grid dt { font-size: 0.75rem; color: var(--muted, #94a3b8); margin: 0; }
.fh-evidence-grid dd { margin: 0; font-size: 0.9rem; }
.fh-finding-list { list-style: none; margin: 0; padding: 0; }
.fh-finding-list li {
  padding: 8px 10px;
  margin: 0 0 6px;
  border: 1px solid var(--border, #334155);
  border-radius: 6px;
}
.fmd-timeline-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; max-width: 100%; }
.fmd-timeline-event {
  display: inline-flex; gap: 4px; padding: 4px 8px;
  border-radius: 6px; background: rgba(30,41,59,0.6); font-size: 0.8rem;
}
.fmd-timeline-event.active { outline: 1px solid #93c5fd; }
.fmd-sheets-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.fmd-xi, .fmd-bench { margin: 0; padding-left: 1.1rem; font-size: 0.85rem; }
.cookie-commentary-channel {
  margin-top: 8px; padding: 8px 10px;
  border-left: 3px solid #c4b5fd; background: rgba(76,29,149,0.15);
}
.crowd-engine-badge { font-size: 0.8rem; color: #94a3b8; }
@media (max-width: 720px) {
  .fh-board-head { display: none; }
  .fh-row { grid-template-columns: 1fr auto; }
  .fh-reason, .fh-checked { grid-column: 1 / -1; }
  .fmd-sheets-grid { grid-template-columns: 1fr; }
}

/* Play betting desk ? game only, no intelligence viewer chrome */
.play-desk-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
  gap: 12px;
  align-items: start;
  max-width: 100%;
}
.play-desk-main { min-width: 0; }
.play-fixture {
  border: 1px solid var(--border, #334155);
  border-radius: 10px;
  margin: 0 0 10px;
  overflow: hidden;
  background: rgba(15, 23, 42, 0.35);
}
.play-fixture.selected { border-color: rgba(74, 222, 128, 0.45); }
.play-fixture-head {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 8px;
  align-items: start;
  padding: 10px;
}
.play-fixture-toggle {
  display: block;
  width: 100%;
  text-align: left;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  padding: 0;
}
.play-fixture-body { padding: 0 12px 12px; border-top: 1px solid var(--border, #334155); }
.play-fixture-rail {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 4px 2px 10px;
  margin-bottom: 4px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.play-rail-chip {
  flex: 0 0 auto;
  scroll-snap-align: start;
  max-width: 180px;
  text-align: left;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: rgba(15, 23, 42, 0.45);
  color: inherit;
  cursor: pointer;
}
.play-rail-chip.active {
  border-color: rgba(96, 165, 250, 0.85);
  background: rgba(37, 99, 235, 0.22);
}
.play-rail-chip.selected { box-shadow: inset 0 0 0 1px rgba(74, 222, 128, 0.45); }
.play-rail-tier {
  display: inline-block;
  font-size: 0.65rem;
  opacity: 0.75;
  margin-right: 4px;
}
.play-rail-name {
  display: block;
  font-size: 0.78rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.play-fixture-nav {
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.play-desk-layout--console {
  grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
}
.play-desk-layout--game {
  display: grid;
  /* Slip is viewport-fixed — stage uses full width with reserved right gutter */
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  max-height: calc(100vh - 140px);
  padding-right: min(316px, 34vw);
}
.play-console-card {
  border: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 14px;
  padding: 12px 14px;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.92), rgba(15, 23, 42, 0.72));
  margin: 0;
}
/* Founder Obs 220539: story card is a vertical stack — never legacy 36px|1fr grid. */
.play-console-card.play-fixture-story,
.play-fixture-story {
  display: flex;
  flex-direction: column;
  gap: 0;
  opacity: 1;
  padding: 0;
  border-bottom: none;
  grid-template-columns: unset;
}
.play-console-card.play-fixture-story.game-fixture-row,
.play-fixture-story.game-fixture-row {
  display: flex;
  flex-direction: column;
  grid-template-columns: unset;
}
.play-console-card.selected {
  border-color: rgba(74, 222, 128, 0.55);
}
.play-console-hero--tight { text-align: left; margin-bottom: 8px; }
.play-console-hero--tight .play-console-match {
  margin: 0 0 4px;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
}
.play-console-nav { margin-bottom: 8px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.play-desk-layout--game .play-console-stage {
  min-width: 0;
  max-height: calc(100vh - 140px);
  overflow-y: auto;
  padding-right: 4px;
}
.play-bet-slip--pinned,
.play-desk-layout--game .play-bet-slip.open {
  /* Founder Lock Obs: sticky-in-flow still painted Lock below the fold
     (slip top ~610px, Lock ~974px, viewport 900). Pin slip to viewport. */
  display: flex;
  flex-direction: column;
  position: fixed;
  top: 12px;
  right: 12px;
  bottom: 12px;
  width: min(300px, calc(34vw - 16px));
  max-height: none;
  overflow: hidden;
  /* Above .user-toast (1100) so Lock always receives clicks */
  z-index: 1200;
  margin: 0;
  box-sizing: border-box;
}
.play-desk-layout--game .play-bet-slip.collapsed {
  display: flex;
}
.play-bet-slip--pinned .play-slip-head,
.play-bet-slip--pinned .play-slip-modes,
.play-bet-slip--pinned .play-slip-totals,
.play-bet-slip--pinned .play-slip-actions {
  flex: 0 0 auto;
}
.play-bet-slip--pinned .play-slip-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.play-bet-slip--pinned .play-slip-actions {
  position: sticky;
  bottom: 0;
  margin-top: auto;
  padding: 10px 0 4px;
  background: linear-gradient(180deg, transparent, rgba(15, 23, 42, 0.98) 18%);
  border-top: 1px solid rgba(148, 163, 184, 0.28);
  z-index: 2;
}
.play-bet-slip--pinned .play-slip-actions .btn-primary {
  width: 100%;
}
.play-mkt-board { margin-top: 6px; }
.play-quick-rec {
  width: 100%;
  margin-bottom: 10px;
  font-size: 1rem;
  padding: 12px 14px;
}
.play-mkt-groups {
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 8px;
  margin-bottom: 6px;
  -webkit-overflow-scrolling: touch;
}
.play-mkt-chip {
  flex: 0 0 auto;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: rgba(15, 23, 42, 0.55);
  color: inherit;
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 0.78rem;
  cursor: pointer;
  white-space: nowrap;
}
.play-mkt-chip.active {
  border-color: rgba(96, 165, 250, 0.9);
  background: rgba(37, 99, 235, 0.28);
}
.play-price-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.play-price-chip {
  flex: 1 1 120px;
  min-width: 110px;
  max-width: 180px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 10px 8px;
  border-radius: 12px;
  border: 1px solid rgba(148, 163, 184, 0.4);
  background: rgba(15, 23, 42, 0.65);
  color: inherit;
  cursor: pointer;
}
.play-price-chip.rec { border-color: rgba(251, 191, 36, 0.75); }
.play-price-chip.on-slip {
  border-color: rgba(74, 222, 128, 0.75);
  background: rgba(22, 101, 52, 0.35);
}
.play-price-pick { font-size: 0.82rem; font-weight: 600; }
.play-price-odds { font-size: 1.05rem; font-weight: 700; }
/* Founder Play — hide engineering status chrome entirely */
html.ux-view-game #pex-page-health-host,
html.ux-view-game #global-status-bar,
html.ux-view-game #live-intel-bar-host,
html.ux-view-game #pex-journey-host,
html.ux-view-game .pex-page-health,
html.ux-view-game .pex-journey-health,
html.ux-view-game .live-intel-bar,
body.ux-view-game #pex-page-health-host,
body.ux-view-game #global-status-bar,
body.ux-view-game #live-intel-bar-host,
body.ux-view-game #pex-journey-host,
body.ux-view-game .pex-page-health,
body.ux-view-game .pex-journey-health,
body.ux-view-game .live-intel-bar,
.game-theatre-watch #pex-page-health-host,
.game-theatre-watch #global-status-bar,
.game-theatre-watch #live-intel-bar-host,
.game-theatre-watch #pex-journey-host {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
@media (max-width: 900px) {
  .play-desk-layout--game {
    grid-template-columns: 1fr;
    max-height: none;
    padding-right: 0;
  }
  .play-desk-layout--game .play-console-stage {
    max-height: none;
    padding-bottom: 48vh;
  }
  /* Beat desktop `.play-bet-slip.open` (same specificity) — bottom sheet */
  .play-desk-layout--game .play-bet-slip.open.play-bet-slip--pinned {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    width: auto;
    max-height: 44vh;
    border-radius: 14px 14px 0 0;
    z-index: 40;
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.35);
  }
}
.play-console-card.selected {
  border-color: rgba(74, 222, 128, 0.55);
  box-shadow: 0 0 0 1px rgba(74, 222, 128, 0.2);
}
.play-console-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.play-console-pos {
  font-size: 0.85rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #94a3b8;
}
.play-console-hero { text-align: center; margin-bottom: 14px; }
.play-console-meta { margin: 0 0 6px; }
.play-console-match {
  margin: 0 0 12px;
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  line-height: 1.15;
  font-weight: 700;
}
.play-console-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  text-align: center;
}
.play-console-stats .k {
  display: block;
  font-size: 0.68rem;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 2px;
}
.play-console-stats strong {
  font-size: 0.92rem;
}
.play-console-actions {
  justify-content: center;
  margin: 14px 0 8px;
  gap: 8px;
}
.play-console-actions .active {
  outline: 1px solid rgba(147, 197, 253, 0.85);
}
.play-console-hint { text-align: center; margin: 8px 0 0; }
.play-console-select {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.play-console-markets {
  border-top: 1px solid rgba(51, 65, 85, 0.7);
  margin-top: 10px;
  padding-top: 10px;
}
@media (max-width: 900px) {
  .play-desk-layout--console { grid-template-columns: 1fr; }
  .play-console-stats { grid-template-columns: 1fr; }
}
.play-study-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 8px;
  margin: 10px 0;
}
.play-study-grid dt { font-size: 0.72rem; color: var(--muted, #94a3b8); }
.play-study-grid dd { margin: 0; font-size: 0.88rem; }
.play-rec-box {
  padding: 10px;
  border-radius: 8px;
  background: rgba(59, 130, 246, 0.12);
  margin-bottom: 10px;
}
.play-rec-kicker { font-size: 0.75rem; color: #93c5fd; margin: 0 0 4px; }
.play-fixture-story .play-console-hero { padding: 12px 14px 4px; }
.play-story-section {
  padding: 8px 14px 12px;
  border-top: 1px solid rgba(148, 163, 184, 0.2);
}
.play-story-section-title { margin: 0 0 4px; font-size: 0.95rem; }
.play-story-hint { margin: 0 0 8px; }
.play-story-confidence {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 14px;
  margin-bottom: 10px;
}
.play-story-kicker {
  margin: 0;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted, #94a3b8);
}
.play-story-conf-val { margin: 0; font-size: 1.6rem; font-weight: 700; }
.play-story-pred { margin: 0; }
.play-match-dna { margin-bottom: 10px; }
.play-dna-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 6px; }
.play-dna-tag {
  border: 1px solid rgba(96, 165, 250, 0.45);
  background: rgba(37, 99, 235, 0.18);
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 0.75rem;
}
.play-story-next {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px 14px 16px;
  border-top: 1px solid rgba(148, 163, 184, 0.25);
}
.play-next-fixture { width: 100%; }
.play-fixture-rail { display: none !important; }
.play-odds-state { font-size: 0.75rem; margin-left: 6px; opacity: 0.85; }
.play-market-block { margin: 0 0 12px; }
.play-market-title { margin: 0 0 6px; font-size: 0.85rem; }
.play-market-list { list-style: none; margin: 0; padding: 0; }
.play-market-row {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) 64px 88px 72px auto;
  gap: 6px;
  align-items: center;
  padding: 6px 0;
  border-bottom: 1px solid rgba(51, 65, 85, 0.5);
  font-size: 0.85rem;
}
.play-market-row.rec { background: rgba(251, 191, 36, 0.06); }
.play-market-row.on-slip { background: rgba(74, 222, 128, 0.08); }
.play-bet-slip {
  position: sticky;
  top: 12px;
  padding: 12px;
  border: 1px solid var(--border, #334155);
  border-radius: 12px;
  background: var(--bdna-card, #0f172a);
  max-height: calc(100vh - 24px);
  overflow: auto;
  z-index: 5;
}
.play-slip-list { list-style: none; margin: 0; padding: 0; }
.play-slip-row {
  display: grid;
  grid-template-columns: 1fr 72px auto;
  gap: 6px;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid rgba(51, 65, 85, 0.6);
}
.play-slip-stake { width: 72px; }
.play-slip-totals { display: grid; gap: 4px; margin: 10px 0; }
.play-slip-totals div { display: flex; justify-content: space-between; gap: 8px; font-size: 0.9rem; }
.play-slip-modes .active { outline: 1px solid #93c5fd; }
.play-fixture-stake { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; margin-top: 8px; }
@media (max-width: 900px) {
  .play-desk-layout { grid-template-columns: 1fr; }
  .play-bet-slip {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    top: auto;
    max-height: 48vh;
    border-radius: 16px 16px 0 0;
    box-shadow: 0 -8px 28px rgba(0,0,0,0.4);
    padding-bottom: calc(12px + env(safe-area-inset-bottom, 0));
  }
  .play-bet-slip.collapsed { max-height: 56px; overflow: hidden; }
  .play-fixture-list { padding-bottom: 72px; }
  .play-market-row {
    grid-template-columns: 1fr 56px auto;
    grid-template-areas:
      "sel odds btn"
      "fair edge conf"
      "avail avail avail";
  }
  .play-sel { grid-area: sel; }
  .play-odds { grid-area: odds; text-align: right; }
  .play-fair { grid-area: fair; }
  .play-edge { grid-area: edge; }
  .play-conf { grid-area: conf; }
  .play-market-row > .btn-secondary,
  .play-market-row > button { grid-area: btn; justify-self: end; }
  .play-avail, .play-hist { grid-area: avail; }
}
.empty-state {
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid rgba(148, 163, 184, 0.25);
  background: rgba(15, 23, 42, 0.35);
}
.empty-state p { margin: 0 0 6px; }
.empty-state p:last-child { margin-bottom: 0; }
