:root {
  color-scheme: dark;
  /* ── PropStein terminal palette: graphite and high-signal baby blue ── */
  --bg-app: #0B0D11;              /* structural dark grey: deep slate-black base canvas */
  --bg-app-raised: #11141B;       /* primary workspace panels */
  --bg-card: #11141B;             /* primary workspace panels */
  --bg-card-hover: #171B24;       /* hovered table rows or active inputs */
  --border-subtle: #222733;       /* razor-sharp 1px solid hairline */
  --text-main: #F3F4F6;           /* high clarity crisp white */
  --text-muted-2: #9CA3AF;        /* subtle slate gray */
  --accent-primary: #38BDF8;      /* high-signal baby blue (electric sky blue) */
  --accent-primary-hover: #7dd3fc;
  --accent-primary-bright: #38BDF8;
  --accent-cyan: #38BDF8;         /* ice-blue highlights */
  --accent-success: #10B981;      /* profit / edge emerald */
  --accent-warning: #F59E0B;      /* amber alerts */
  --accent-surface: #0C2538;      /* muted selection surface fill */

  /* legacy aliases → system tokens */
  --bg-canvas: var(--bg-app);
  --bg-surface: var(--bg-card);
  --bg-elevated: var(--bg-app-raised);
  --border-hairline: var(--border-subtle);

  --brand-accent: var(--accent-primary-bright);
  --brand-accent-bright: #7dd3fc;
  --brand-accent-dim: #0C2538;
  --brand-accent-border: #38BDF8;
  --brand-accent-glow: transparent;

  --baby-blue: var(--accent-primary-bright);
  --baby-blue-bright: #7dd3fc;
  --baby-blue-ring: #38BDF8;
  --baby-blue-glow: transparent;

  --warn-amber: var(--accent-warning);
  --under-cyan: var(--accent-cyan);
  --text-primary: var(--text-main);
  --text-secondary: #9CA3AF;
  --text-muted: var(--text-muted-2);

  --bg: var(--bg-app);
  --surface: var(--bg-card);
  --surface-2: #11141B;
  --surface-3: var(--bg-card-hover);
  --surface-row-hover: #171B24;
  --text: var(--text-main);
  --text-dim: var(--text-secondary);
  --muted: var(--text-muted-2);
  --faint: #64748B;
  --line: var(--border-subtle);
  --line-strong: #222733;
  --accent: var(--accent-primary-bright);
  --accent-ink: #0B0D11;
  --amber: var(--accent-warning);
  --amber-bg: rgba(245, 158, 11, 0.08);
  --danger: #F87171;
  --radius: 4px;
  --radius-sm: 2px;
  --radius-lg: 4px;
  --radius-pill: 999px;
  --edge-hi: none;
  --shadow-sm: none;
  --shadow-md: none;
  --shadow: none;
  --font-display: 'Space Grotesk', 'IBM Plex Sans', -apple-system, 'Segoe UI', sans-serif;
  --mono: 'JetBrains Mono', 'SF Mono', 'IBM Plex Mono', ui-monospace, Menlo, Consolas, monospace;
  --sans: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  --pw-bg-deep: #0B0D11;
  --pw-bg-bar: #0B0D11;
  --pw-bg-control: #171B24;
  --pw-border: #222733;
  --pw-accent: var(--brand-accent);
  --pw-accent-bright: var(--brand-accent-bright);
  --pw-accent-dim: var(--brand-accent-dim);
  --pw-accent-border: var(--brand-accent-border);
}

[hidden] {
  display: none !important;
}

* { box-sizing: border-box; }

html {
  background: var(--bg);
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  overflow-x: hidden;
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  font-size: 13.5px;
  line-height: 1.5;
  text-rendering: optimizeLegibility;
}

/* Display face: brand voice on structural headings only. */
h1, h2, h3, .anti-tout-title {
  font-family: var(--font-display);
  letter-spacing: -0.015em;
}

button, input, select { font: inherit; }
button, select, input { min-height: 40px; }
button { color: inherit; }

.shell { width: min(1380px, calc(100% - 32px)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 12px; top: -80px; z-index: 100; padding: 10px 14px; border-radius: var(--radius); background: var(--accent); color: var(--accent-ink); font-weight: 800; }
.skip-link:focus { top: 12px; }

/* ─── 2-TIER INSTITUTIONAL TERMINAL CHROME ─── */
.pw-terminal-chrome {
  display: block !important;
  position: sticky;
  top: 0;
  z-index: 40;
  background: #1c2432 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
  font-family: var(--mono);
  font-size: 12px;
  user-select: none;
  width: 100%;
}

/* 1. Stop PropWire brand and Slate dropdown from overlapping */
.topbar, .header-bar, .pw-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: nowrap;
}
.brand, .logo-link, .pw-brand, #slateSelect, #slateSelector {
  position: static !important;
  flex-shrink: 0;
}
/* 2. Remove duplicate native arrow on Mkt / Intent selects */
select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
/* 3. Hide the legacy Light/Dark Moon Toggle permanently */
#themeToggle, .theme-toggle, [aria-label*="theme" i] {
  display: none !important;
}
/* 4. Rebalance 1% from Player to Edge column so "PRICE CHECK / EDGE ?" never clips */
.slate-table th:nth-child(1), .propwire-table th:nth-child(1), .propwire-table td:nth-child(1) {
  width: 26% !important;
}
.slate-table th:nth-child(5), .propwire-table th:nth-child(5), .propwire-table td:nth-child(5) {
  width: 20% !important;
  padding-right: 16px !important;
}

/* TIER 1: Global Top Bar (46px) */
.pw-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 46px;
  padding: 0 16px;
  border-bottom: 1px solid var(--pw-border);
  gap: 12px;
}
.pw-topbar-left, .pw-topbar-right {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.pw-brand {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
  line-height: 1;
}
.pw-brand-img {
  height: 24px;
  width: auto;
  max-width: 140px;
  display: block;
  object-fit: contain;
}
.pw-brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: var(--radius-sm);
  background: var(--pw-accent-dim);
  border: 1px solid var(--pw-accent-border);
  color: var(--pw-accent-bright);
  font-size: 13px;
  font-weight: 800;
}
.pw-dot {
  color: var(--pw-accent-bright);
}
.pw-divider {
  width: 1px;
  height: 18px;
  background: var(--pw-border);
  flex-shrink: 0;
}
.pw-select {
  background: var(--pw-bg-control);
  border: 1px solid var(--pw-border);
  border-radius: var(--radius-sm);
  color: #f8fafc;
  font-family: inherit;
  font-size: 11.5px;
  padding: 0 8px;
  height: 28px;
  outline: none;
}
.pw-alert-pill {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 28px;
  padding: 0 10px;
  border-radius: var(--radius-sm);
  background: rgba(245, 158, 11, 0.08);
  border: 1px solid rgba(245, 158, 11, 0.28);
  color: #fde68a;
  font-size: 11px;
  cursor: pointer;
  min-width: 0;
  white-space: nowrap;
  font-family: inherit;
  transition: all 0.15s ease;
}
.pw-alert-pill:hover {
  background: rgba(245, 158, 11, 0.16);
  border-color: rgba(245, 158, 11, 0.45);
}
.pw-alert-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--pw-amber);
  flex-shrink: 0;
}
.pw-alert-count {
  font-weight: 750;
  color: var(--pw-amber);
  flex-shrink: 0;
}
.pw-alert-preview {
  color: #cbd5e1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 260px;
}
.pw-alert-chevron {
  color: var(--pw-amber);
  font-size: 10px;
  flex-shrink: 0;
}

/* Single Unified Risk Stepper Group */
.pw-risk-group {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 28px;
  padding: 0 10px;
  background: var(--pw-bg-control);
  border: 1px solid var(--pw-border);
  border-radius: var(--radius-sm);
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}
.pw-stepper {
  display: flex;
  align-items: center;
  gap: 4px;
}
.pw-stepper-label {
  color: #6e7681;
  font-size: 11px;
}
.pw-stepper-val {
  color: var(--pw-accent-bright);
  font-weight: 700;
  min-width: 32px;
  text-align: center;
}
.pw-step-btn {
  background: transparent;
  border: none;
  color: #94a3b8;
  cursor: pointer;
  padding: 0 3px;
  font-size: 13px;
  line-height: 1;
}
.pw-step-btn:hover {
  color: #ffffff;
}
.pw-risk-sep {
  color: rgba(255, 255, 255, 0.15);
  font-size: 10px;
}

.pw-receipt-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  height: 28px;
  padding: 0 9px;
  border-radius: var(--radius-sm);
  background: var(--pw-accent-dim);
  border: 1px solid var(--pw-accent-border);
  color: var(--pw-accent-bright);
  font-size: 11px;
  font-weight: 600;
  flex-shrink: 0;
  white-space: nowrap;
}
.pw-receipt-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--pw-accent-bright);
}

.pw-btn-nav {
  height: 28px;
  padding: 0 10px;
  background: var(--pw-bg-control);
  border: 1px solid var(--pw-border);
  border-radius: var(--radius-sm);
  color: #cbd5e1;
  font-family: inherit;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
  transition: all 0.15s ease;
}
.pw-btn-nav:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  color: #ffffff;
}
.pw-btn-ledger {
  background: rgba(128, 198, 246, 0.08);
  border-color: rgba(128, 198, 246, 0.3);
  color: #80c6f6;
}
.pw-btn-ledger:hover {
  background: rgba(128, 198, 246, 0.18);
  border-color: rgba(128, 198, 246, 0.5);
  color: #80c6f6;
}
.pw-btn-icon {
  width: 28px;
  height: 28px;
  background: var(--pw-bg-control);
  border: 1px solid var(--pw-border);
  border-radius: var(--radius-sm);
  color: #94a3b8;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  font-family: inherit;
  transition: all 0.15s ease;
}
.pw-btn-icon:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.08);
}

/* TIER 2: Filter & Matchup Bar (42px) */
.pw-filterbar {
  display: flex;
  align-items: center;
  height: 42px;
  padding: 0 16px;
  background: var(--pw-bg-bar);
  gap: 8px;
}
.pw-segmented {
  display: flex;
  background: var(--pw-bg-control);
  padding: 2px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--pw-border);
  flex-shrink: 0;
}
.pw-seg-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  height: 24px;
  padding: 0 9px;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  background: transparent;
  color: #94a3b8;
  font-family: inherit;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s ease;
}
.pw-seg-btn.active {
  background: var(--pw-accent-dim);
  border-color: var(--pw-accent-border);
  color: var(--pw-accent-bright);
}
.pw-seg-count {
  font-size: 10px;
  opacity: 0.85;
  font-variant-numeric: tabular-nums;
}

/* Search Input: Guaranteed 210px width so it never crushes */
.pw-search-wrap {
  position: relative;
  width: 210px;
  flex-shrink: 0;
}
.pw-search-input {
  width: 100%;
  height: 28px;
  padding: 0 26px 0 10px;
  background: var(--pw-bg-control);
  border: 1px solid var(--pw-border);
  border-radius: var(--radius-sm);
  color: #f8fafc;
  font-family: inherit;
  font-size: 12px;
  outline: none;
}
.pw-search-input:focus {
  border-color: var(--pw-accent-bright);
  box-shadow: 0 0 0 2px var(--pw-accent-dim);
}
.pw-kbd {
  position: absolute;
  right: 6px;
  top: 5px;
  padding: 1px 5px;
  font-size: 10px;
  color: #6e7681;
  background: rgba(255, 255, 255, 0.05);
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

/* Horizontal Filter Chip Row (Desktop & Mobile) */
.pw-chip-scroll-row {
  display: flex;
  align-items: center;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  gap: 6px;
  padding: 2px 0;
  scrollbar-width: none;
  flex: 1;
}
.pw-chip-scroll-row::-webkit-scrollbar {
  display: none;
}
.chip-segment-group {
  display: inline-flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-pill);
  padding: 2px;
  gap: 2px;
  flex-shrink: 0;
}
.chip-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  height: 28px;
  min-width: 36px;
  padding: 0 10px;
  font: 600 11.5px/1 var(--sans);
  border-radius: var(--radius-pill);
  border: 1px solid transparent;
  background: transparent;
  color: #94a3b8;
  cursor: pointer;
  transition: all 0.12s ease;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}
.chip-pill:hover {
  color: #f1f5f9;
}
.chip-pill.active {
  background: rgba(128, 198, 246, 0.18) !important;
  border: 1px solid rgba(128, 198, 246, 0.5) !important;
  color: #80c6f6 !important;
  font-weight: 750 !important;
  box-shadow: 0 0 10px rgba(128, 198, 246, 0.28), 0 1px 3px rgba(0, 0, 0, 0.25) !important;
}
.chip-count-pill {
  font-size: 10px;
  padding: 1px 5px;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.08);
  color: inherit;
}
.chip-pill.active .chip-count-pill {
  background: rgba(128, 198, 246, 0.25) !important;
  color: #80c6f6 !important;
  font-weight: 700 !important;
}
.chip-divider {
  display: inline-block;
  width: 1px;
  height: 20px;
  background: rgba(255, 255, 255, 0.1);
  margin: 0 2px;
  flex-shrink: 0;
}
.chip-pill-more {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #cbd5e1;
}
.chip-chevron {
  font-size: 10px;
  color: #6e7681;
}

/* Mobile Drawer Trigger for Secondary Filters */
.pw-filter-toggle-btn {
  display: none;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius);
  color: #f1f5f9;
  font: 700 11.5px/1 var(--sans);
  padding: 6px 10px;
  cursor: pointer;
  white-space: nowrap;
  user-select: none;
  transition: all 0.15s ease;
}
.filter-toggle-icon {
  font-size: 11px;
}
.filter-toggle-chevron {
  font-size: 9px;
  transition: transform 0.2s ease;
}

/* Compact Facet Dropdowns */
.pw-facets {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.pw-facet {
  display: flex;
  align-items: center;
  height: 28px;
  padding: 0 8px;
  background: var(--pw-bg-control);
  border: 1px solid var(--pw-border);
  border-radius: var(--radius-sm);
  gap: 5px;
}
.pw-facet-label {
  color: #6e7681;
  font-size: 11px;
}
.pw-facet select {
  background: transparent;
  border: none;
  color: #f8fafc;
  font-family: inherit;
  font-weight: 600;
  font-size: 11px;
  cursor: pointer;
  outline: none;
}

/* Scrollable Game Pill Strip */
.pw-game-strip {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  flex: 1;
  min-width: 0;
  scrollbar-width: none;
}
.pw-game-strip::-webkit-scrollbar {
  display: none;
}

/* Mobile Responsive Layout (< 900px) */
@media (max-width: 900px) {
  .pw-topbar, .pw-filterbar {
    height: auto;
    flex-wrap: wrap;
    padding: 8px 12px;
    gap: 8px;
  }
  .pw-alert-preview, .pw-receipt-badge, .pw-view-toggle {
    display: none;
  }
  .pw-search-wrap {
    flex: 1 1 100%;
    order: -1;
    width: 100%;
  }
  .pw-game-strip {
    flex: 1 1 100%;
    padding-top: 4px;
  }
}

/* ─── INSTITUTIONAL INJURY & VACATED VOLUME CARD GRID DRAWER ─── */
.injury-drawer-wrap {
  margin: 10px 0;
}
.pw-injury-drawer {
  background: #090d16;
  border: 1px solid rgba(245, 158, 11, 0.28);
  border-radius: var(--radius);
  overflow: hidden;
  font-family: var(--mono);
}
.pw-injury-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 14px;
  background: rgba(245, 158, 11, 0.08);
  border-bottom: 1px solid rgba(245, 158, 11, 0.2);
  font-size: 11.5px;
  gap: 10px;
}
.pw-injury-header-left {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  overflow: hidden;
}
.pw-injury-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #f59e0b;
  flex-shrink: 0;
}
.pw-injury-title {
  font-weight: 800;
  color: #f59e0b;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  flex-shrink: 0;
}
.pw-injury-badge {
  padding: 1px 6px;
  border-radius: var(--radius-sm);
  background: rgba(245, 158, 11, 0.2);
  color: #fde68a;
  font-size: 10px;
  font-weight: 750;
  flex-shrink: 0;
}
.pw-injury-summary-preview {
  color: #94a3b8;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 11px;
}
.text-red {
  color: #f87171 !important;
}
.text-amber {
  color: #fbbf24 !important;
}
.pw-injury-header-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.pw-injury-receipt-pill {
  padding: 2px 7px;
  border-radius: var(--radius-sm);
  background: var(--brand-accent-dim);
  border: 1px solid var(--brand-accent-border);
  color: var(--brand-accent-bright);
  font-size: 10.5px;
  font-weight: 600;
}
.pw-injury-close-btn {
  padding: 3px 8px;
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #fde68a;
  font-family: inherit;
  font-size: 11px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.pw-injury-close-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
}

/* 2-Column (Tablet) / 3-Column (Desktop) Grid capped at 280px */
.pw-injury-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: 10px;
  padding: 12px;
  max-height: 280px;
  overflow-y: auto;
}
.pw-injury-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 10px;
  border-radius: var(--radius);
  background: #0d1320;
  border: 1px solid rgba(255, 255, 255, 0.07);
  gap: 8px;
  transition: border-color 0.15s ease;
}
.pw-injury-card:hover {
  border-color: rgba(255, 255, 255, 0.18);
}
.pw-injury-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.pw-injury-player-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.pw-injury-name-col {
  min-width: 0;
  line-height: 1.2;
}
.pw-injury-name-row {
  display: flex;
  align-items: center;
  gap: 6px;
}
.pw-injury-player-name {
  font-family: var(--sans);
  font-weight: 750;
  font-size: 13px;
  color: #ffffff;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pw-injury-team-code {
  font-size: 10px;
  color: #94a3b8;
  font-weight: 700;
}
.pw-injury-sub-row {
  font-size: 10.5px;
  color: #94a3b8;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pw-injury-sep {
  color: rgba(255, 255, 255, 0.2);
  margin: 0 2px;
}
.pw-injury-practice {
  color: #6e7681;
}

.pw-injury-status-badge {
  padding: 2px 7px;
  border-radius: var(--radius-sm);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.03em;
  border: 1px solid;
  flex-shrink: 0;
  white-space: nowrap;
}
.status-tier-red {
  background: rgba(239, 68, 68, 0.15);
  border-color: rgba(239, 68, 68, 0.35);
  color: #f87171;
}
.status-tier-amber {
  background: rgba(245, 158, 11, 0.15);
  border-color: rgba(245, 158, 11, 0.35);
  color: #fbbf24;
}
.status-tier-slate {
  background: rgba(100, 116, 139, 0.15);
  border-color: rgba(100, 116, 139, 0.30);
  color: #cbd5e1;
}

.pw-injury-quant-strip {
  padding: 4px 8px;
  border-radius: var(--radius-sm);
  background: #070a12;
  border: 1px solid rgba(255, 255, 255, 0.05);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 11px;
}
.pw-injury-impact-text {
  color: var(--brand-accent-bright);
  font-weight: 650;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pw-injury-beneficiaries {
  font-size: 10px;
  color: #94a3b8;
  flex-shrink: 0;
}

.pw-injury-card-footer {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-family: var(--sans);
}
.pw-injury-note {
  font-size: 11px;
  color: #cbd5e1;
  line-height: 1.35;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pw-injury-source {
  font-family: var(--mono);
  font-size: 9.5px;
  color: #6e7681;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Global Volt Green Utility Overrides */
.text-emerald-400, .text-emerald-500, .proj-value, .edge-positive, .text-accent {
  color: var(--brand-accent-bright) !important;
}
.bg-emerald-500\/15, .bg-emerald-500\/10, .pill-active {
  background-color: var(--brand-accent-dim) !important;
  border-color: var(--brand-accent-border) !important;
  color: var(--brand-accent-bright) !important;
}

/* ─── CONTROLS & INPUTS (SOFT BORDERS + FOCUS RING) ─── */
.control, .search-control input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 0 12px;
  background: rgba(255, 255, 255, 0.04);
  color: var(--text);
  font-family: var(--sans);
  font-size: 13px;
  outline: none;
  min-height: 40px;
  height: 40px;
  transition: all 0.15s ease;
}
.control:hover, .search-control input:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: var(--line-strong);
}
.control:focus, .search-control input:focus, button:focus-visible, .table-scroll:focus-visible {
  outline: none;
  border-color: rgba(128, 198, 246, 0.5);
  box-shadow: 0 0 0 2px rgba(128, 198, 246, 0.25);
  background: rgba(255, 255, 255, 0.07);
  color: #ffffff;
}
.compact-control { width: 190px; min-height: 36px; height: 36px; font-size: 12.5px; }

.policy-chip {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.03);
  color: var(--muted);
  font: 600 11px/1 var(--mono);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  cursor: help;
}
.help-bubble {
  display: inline-grid;
  place-items: center;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: 1px solid var(--line-strong);
  color: var(--muted);
  font: 700 9px/1 var(--mono);
  cursor: help;
  vertical-align: middle;
}
.help-bubble:hover { color: var(--text); border-color: var(--accent); }

.icon-button {
  width: 36px;
  min-height: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius);
  background: var(--surface-2);
  color: var(--muted);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  transition: all 0.15s ease;
}
.icon-button:hover { color: var(--text); background: var(--surface-3); border-color: var(--line-strong); }
.icon-button svg { width: 17px; height: 17px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ─── SLATE TOTALS TICKER (Consolidated into Command Bar & Availability Bar) ─── */
.ticker {
  display: none;
}
.ticker-inner {
  min-height: 30px;
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  white-space: nowrap;
}

/* ─── SINGLE-LINE AVAILABILITY & VERIFICATION STATUS ─── */
.availability-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: rgba(245, 158, 11, 0.05);
  border: 1px solid rgba(245, 158, 11, 0.2);
  border-radius: var(--radius);
  padding: 4px 10px;
  margin: 4px 0 6px;
  font: 500 11px/1.2 var(--sans);
  color: #cbd5e1;
}
.availability-lead {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  overflow: hidden;
}
.badge-amber {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font: 800 10.5px/1 var(--mono);
  color: var(--amber);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  flex-shrink: 0;
}
.badge-amber .prop-icon { width: 11px; height: 11px; }
.availability-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #94a3b8;
}
.availability-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.receipt-count-pill {
  font: 700 10px/1 var(--mono);
  color: var(--accent);
  background: rgba(128, 198, 246, 0.1);
  border: 1px solid rgba(128, 198, 246, 0.25);
  padding: 2.5px 7px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
}
.availability-bar .text-button {
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.25);
  border-radius: var(--radius-sm);
  color: #fbbf24;
  font: 700 10.5px/1 var(--sans);
  padding: 3px 8px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.availability-bar .text-button:hover {
  background: rgba(245, 158, 11, 0.2);
  color: #ffffff;
}
.injury-details {
  margin: -4px 0 8px;
  padding: 8px 12px;
  background: rgba(15, 23, 42, 0.6);
  border: 1px solid rgba(245, 158, 11, 0.2);
  border-top: none;
  border-radius: 0 0 6px 6px;
  font-size: 11.5px;
  color: var(--muted);
}

/* ─── LINEAR-STYLE QUANT COMMAND BAR (HIGH-DENSITY TOOLBAR) ─── */
.quant-command-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 44px;
  padding: 0 12px;
  background: #090d16;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  margin-bottom: 6px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
  font-family: var(--mono);
  user-select: none;
}
.command-bar-left {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0;
}
.command-bar-right {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}
.bar-divider {
  width: 1px;
  height: 18px;
  background: rgba(255, 255, 255, 0.1);
  margin: 0 2px;
  flex-shrink: 0;
}

/* Segmented Dataset Switcher */
.dataset-switcher {
  display: inline-flex;
  background: #0d1320;
  padding: 2px;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.08);
  flex-shrink: 0;
}
.seg-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 9px;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: transparent;
  color: #94a3b8;
  font: 600 11px/1.2 var(--sans);
  cursor: pointer;
  transition: all 0.12s ease;
}
.seg-btn:hover { color: #f8fafc; }
.seg-btn.active {
  background: rgba(128, 198, 246, 0.18);
  color: #80c6f6;
  border-color: rgba(128, 198, 246, 0.45);
  box-shadow: 0 0 8px rgba(128, 198, 246, 0.25);
  font-weight: 700;
}
.seg-count {
  font: 700 9.5px/1 var(--mono);
  padding: 1px 5px;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.06);
  color: inherit;
  font-variant-numeric: tabular-nums;
}

/* Compact Command Search (Prevents flex-crush) */
.command-search-wrap {
  position: relative;
  min-width: 180px;
  flex: 1 1 200px;
  max-width: 280px;
}
.command-search-wrap input {
  width: 100%;
  height: 28px;
  padding: 0 24px 0 8px;
  background: #0d1320;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: var(--radius-sm);
  color: #f1f5f9;
  font: 500 11.5px/1 var(--sans);
  transition: border-color 0.15s ease;
}
.command-search-wrap input:focus {
  outline: none;
  border-color: rgba(128, 198, 246, 0.5);
  box-shadow: 0 0 6px rgba(128, 198, 246, 0.2);
}
.command-search-wrap input::placeholder { color: #475569; }
.search-kbd-hint {
  position: absolute;
  right: 6px;
  top: 6px;
  padding: 1px 4px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-sm);
  color: #6e7681;
  font: 700 9px/1 var(--mono);
  pointer-events: none;
}

/* Faceted Filter Pills */
.faceted-pills {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  white-space: nowrap;
  scrollbar-width: none;
}
.faceted-pills::-webkit-scrollbar { display: none; }
.facet-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 28px;
  padding: 0 8px;
  background: #0d1320;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-sm);
  font: 600 11px/1 var(--mono);
  color: #cbd5e1;
  cursor: pointer;
  transition: all 0.12s ease;
}
.facet-pill:hover {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.15);
}
.facet-label { color: #6e7681; font-size: 10px; }
.facet-select {
  background: transparent;
  border: none;
  color: #ffffff;
  font: 600 11px/1 var(--sans);
  cursor: pointer;
  outline: none;
  padding-right: 2px;
}
.facet-select option { background: #0f172a; color: #f8fafc; }
.facet-arrow { font-size: 9px; color: #6e7681; margin-left: -2px; }
.facet-input {
  background: transparent;
  border: none;
  color: #ffffff;
  font: 600 11px/1 var(--sans);
  width: 44px;
  outline: none;
}
.facet-input::placeholder { color: #cbd5e1; }

/* Interactive Bankroll Risk Steppers */
.risk-steppers-group {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #0d1320;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-sm);
  padding: 3px 8px;
  font-variant-numeric: tabular-nums;
}
.risk-stepper {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
}
.stepper-label { color: #6e7681; font-size: 10px; }
.stepper-btn {
  background: transparent;
  border: none;
  color: #94a3b8;
  font: 700 12px/1 var(--mono);
  padding: 0 3px;
  cursor: pointer;
  min-height: auto;
  height: auto;
  transition: color 0.1s ease;
}
.stepper-btn:hover { color: #ffffff; }
.stepper-val {
  color: #10b981;
  font-weight: 700;
  font-size: 11.5px;
  min-width: 26px;
  text-align: center;
}
.stepper-divider { color: rgba(255, 255, 255, 0.12); font-size: 10px; margin: 0 1px; }

/* Desktop Hotkey Legend */
.desktop-kbd-legend {
  display: none;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  color: #6e7681;
}
@media (min-width: 1024px) {
  .desktop-kbd-legend { display: flex; }
}
.desktop-kbd-legend kbd {
  padding: 1.5px 5px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-sm);
  font: 700 9.5px/1 var(--mono);
  color: #cbd5e1;
}
.kbd-dot { color: rgba(255, 255, 255, 0.15); margin: 0 1px; }

/* Horizontal Matchup Strip (Mobile/Tablet Swipe Strip; Desktop uses Slate dropdown in command bar) */
.prime-chips-strip {
  overflow-x: auto;
  white-space: nowrap;
  scrollbar-width: none;
  margin-bottom: 6px;
}
@media (min-width: 1024px) {
  .prime-chips-strip {
    display: none;
  }
}
.prime-chips-strip::-webkit-scrollbar { display: none; }
.prime-chips {
  display: flex;
  gap: 6px;
  padding: 2px 0;
}
.game-chip {
  flex: 0 0 auto;
  height: 26px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-pill);
  padding: 0 10px;
  background: #0d1320;
  color: #94a3b8;
  font: 650 10.5px/1 var(--mono);
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  transition: all 0.12s ease;
  display: inline-flex;
  align-items: center;
}
.game-chip:hover, .game-chip.active {
  color: #f8fafc;
  border-color: rgba(128, 198, 246, 0.4);
  background: rgba(128, 198, 246, 0.08);
}

/* ─── FIRST-RUN QUANTITATIVE BRIEFING ONBOARDING MODAL ─── */
.first-run-briefing-modal,
.first-run-briefing {
  position: fixed !important;
  inset: 0 !important;
  z-index: 99999 !important;
  background: rgba(5, 8, 16, 0.85) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  display: flex;
  align-items: center !important;
  justify-content: center !important;
  padding: 16px !important;
  box-sizing: border-box !important;
}
.first-run-briefing-modal[hidden],
.first-run-briefing[hidden] {
  display: none !important;
}
.first-run-briefing-card {
  background: #0d121f !important;
  border: 1px solid rgba(128, 198, 246, 0.25) !important;
  border-radius: var(--radius-lg) !important;
  padding: 20px 22px !important;
  max-width: 580px !important;
  width: 100% !important;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.7) !important;
  box-sizing: border-box !important;
}
.first-run-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.first-run-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 700;
  color: #80c6f6;
  letter-spacing: -0.01em;
}
.first-run-intro {
  font-size: 12px;
  line-height: 1.45;
  color: #94a3b8;
  margin: 0 0 14px 0;
}
.first-run-dismiss {
  background: transparent;
  border: none;
  color: var(--muted);
  font-size: 16px;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: var(--radius-sm);
  transition: all 0.12s ease;
}
.first-run-dismiss:hover {
  color: #f8fafc;
  background: var(--surface-3);
}
.first-run-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 16px;
}
.first-run-step {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: var(--radius);
  padding: 10px 12px;
}
.first-run-step-num {
  font-family: var(--mono);
  font-size: 9.5px;
  font-weight: 700;
  color: #80c6f6;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.first-run-step-title {
  font-size: 12px;
  font-weight: 600;
  color: #f8fafc;
  margin-bottom: 4px;
}
.first-run-step-desc {
  font-size: 10.5px;
  line-height: 1.4;
  color: #94a3b8;
}
.first-run-modal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.first-run-persist-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11.5px;
  color: #6e7681;
  cursor: pointer;
  user-select: none;
}
.first-run-enter-btn {
  background: #80c6f6;
  color: #0b0f19;
  border: none;
  border-radius: var(--radius);
  font-weight: 750;
  font-size: 12.5px;
  padding: 8px 16px;
  cursor: pointer;
  transition: all 0.12s ease;
}
.first-run-enter-btn:hover {
  background: #80c6f6;
  box-shadow: 0 0 12px rgba(128, 198, 246, 0.4);
}
@media (max-width: 768px) {
  .first-run-grid {
    grid-template-columns: 1fr;
    gap: 8px;
    max-height: 48vh;
    overflow-y: auto;
  }
  .first-run-modal-footer {
    flex-direction: column;
    align-items: stretch;
  }
  .first-run-enter-btn {
    width: 100%;
    text-align: center;
  }
}

/* v136 — compact mobile command surface + high-trust theme */
.pw-command-row { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pw-command-row .sport-switcher-bar {
  position: static;
  flex: 0 0 auto;
  padding: 0;
  border: 0;
  background: transparent !important;
}
.pw-command-row .sport-switcher { padding: 2px; }
.pw-command-row .sport-switch-btn { min-height: 28px; padding: 5px 11px; }
.mobile-usage-ticker { display: none; }
.pw-theme-toggle {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  min-width: 32px;
  padding: 0;
  border: 1px solid #343b48;
  border-radius: var(--radius);
  background: #202630;
  color: #a9b4c4;
  cursor: pointer;
}
.pw-theme-toggle:hover { color: #f4f7fb; border-color: #4a5565; }
.theme-icon { width: 15px; height: 15px; }
.theme-icon-sun { display: none; }
[data-theme="light"] .theme-icon-sun { display: block; }
[data-theme="light"] .theme-icon-moon { display: none; }

@media (max-width: 768px) {
  .pw-topbar { height: 42px !important; min-height: 42px !important; background: #0b0e14 !important; }
  .pw-brand { min-width: 96px; }
  .pw-brand-img { width: 96px !important; height: 24px !important; }
  .pw-injury-header-pill { display: none !important; }
  #pricingBtn { height: 27px !important; }
  .pw-theme-toggle { width: 28px; height: 27px; min-width: 28px; min-height: 27px; }
  .pw-filterbar {
    gap: 6px !important;
    padding: 6px 8px 7px !important;
    background: #121821 !important;
  }
  .pw-command-row { width: 100%; gap: 7px; }
  .pw-command-row .sport-switcher-bar { flex: 0 0 auto; }
  .pw-command-row .sport-switcher { gap: 1px; border-color: #303846; background: #0e131b; }
  .pw-command-row .sport-switch-btn {
    min-width: 42px;
    min-height: 30px;
    height: 30px;
    padding: 0 7px;
    font-size: 10px;
  }
  .sport-switch-btn.active,
  .sport-switch-btn[data-sport="nba"].active,
  .chip-pill.active {
    border-color: rgba(128, 198, 246, .42) !important;
    background: rgba(128, 198, 246, .14) !important;
    color: #80c6f6 !important;
  }
  .pw-command-row .pw-search-wrap { order: initial !important; flex: 1 1 auto !important; width: auto !important; min-width: 0; }
  .pw-command-row .pw-search-input { height: 30px !important; min-height: 30px !important; }
  .pw-chip-scroll-row { gap: 4px !important; padding: 0 !important; }
  .chip-segment-group { padding: 1px !important; gap: 1px !important; }
  .chip-pill { height: 27px !important; min-height: 27px !important; padding: 0 7px !important; font-size: 10px !important; }
  .chip-divider { height: 18px !important; }
  .mobile-usage-ticker {
    display: grid;
    grid-template-columns: 18px auto minmax(0,1fr) auto 12px;
    align-items: center;
    gap: 6px;
    width: 100%;
    min-height: 30px;
    padding: 5px 7px;
    border: 1px solid rgba(245,158,11,.22);
    border-radius: var(--radius);
    background: rgba(120,73,15,.12);
    color: #cbd5e1;
    text-align: left;
  }
  .mobile-usage-icon { display: grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; background: rgba(245,158,11,.16); color: #fbbf24; font: 800 10px/1 var(--mono); }
  .mobile-usage-label { color: #f0b94d; font: 700 9px/1 var(--mono); letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
  .mobile-usage-summary { min-width: 0; overflow: hidden; color: #9da9ba; font: 500 10px/1.2 var(--mono); text-overflow: ellipsis; white-space: nowrap; }
  .mobile-usage-count { padding: 2px 5px; border-radius: var(--radius-pill); background: rgba(245,158,11,.13); color: #f4c467; font: 700 9px/1 var(--mono); }
  .mobile-usage-chevron { color: #8692a5; transition: transform .16s ease; }
  .mobile-usage-ticker.is-open .mobile-usage-chevron { transform: rotate(180deg); }

  .data-quality-banner {
    min-height: 30px;
    flex-wrap: nowrap !important;
    padding: 5px 8px !important;
    gap: 7px !important;
    border-left-width: 2px;
    overflow: hidden;
  }
  .data-quality-banner .dq-item { min-width: 0; flex: 1 1 auto; flex-basis: auto !important; display: flex; overflow: hidden; }
  .data-quality-banner .dq-item strong { font-size: 9px; white-space: nowrap; }
  .data-quality-banner .dq-item span { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
  .data-quality-banner .dq-item:nth-child(n+2) { display: none; }
  .dq-retry-btn { flex: 0 0 auto; min-height: 22px !important; padding: 2px 6px !important; font-size: 9px !important; }

  .injury-drawer-wrap { width: 100%; overflow: hidden; }
  .pw-injury-drawer, .pw-injury-grid, .pw-injury-card { width: 100%; min-width: 0; overflow: hidden; }
  .pw-injury-title { font-size: 10px; }
  .pw-injury-title { font-size: 0; }
  .pw-injury-title::after { content: 'Injury & usage impact'; font-size: 10px; }
  .pw-injury-note, .pw-injury-impact-text { white-space: normal !important; overflow-wrap: anywhere; padding-right: 4px; }

  .mobile-quant-row { padding: 11px 10px !important; }
  .card-id-block { min-width: 0; gap: 7px !important; }
  .card-name-group { min-width: 0; }
  .card-player-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .card-team-matchup { display: inline; white-space: normal; }
  .uncal-tag { display: inline-flex; margin-left: 5px; vertical-align: 1px; }
  .card-grid-row { gap: 5px !important; }
  .grid-col-val { font-variant-numeric: tabular-nums; }
  .col-model .grid-col-val { color: #80c6f6; }
  .card-btn-log.blocked { opacity: .46; cursor: not-allowed; }

  .mobile-bottom-nav {
    height: calc(58px + env(safe-area-inset-bottom, 0px));
    padding: 4px 6px env(safe-area-inset-bottom, 0px);
    background: rgba(12,17,24,.96) !important;
    border-top-color: #293240 !important;
    box-shadow: 0 -8px 28px rgba(0,0,0,.34);
  }
  .bottom-nav-item { min-width: 44px; min-height: 48px; gap: 2px; border-radius: var(--radius); color: #7f8b9d; }
  .bottom-nav-item.active { background: rgba(16,185,129,.09); color: #80c6f6; }
  .bottom-nav-item.active::before { content: ''; position: absolute; top: 1px; width: 20px; height: 2px; border-radius: var(--radius-sm); background: #80c6f6; }
  .bottom-nav-item .prop-icon { width: 18px; height: 18px; }
  .bottom-nav-item span:not(.bottom-nav-badge) { font-size: 10px; }

  .execution-dialog { max-height: 92dvh !important; }
  .execution-dialog-header { position: sticky; top: 0; z-index: 3; background: inherit; }
  .execution-summary { margin-top: 10px; }
  .execution-actions { bottom: -22px; }
  .execution-confirm { min-height: 50px; }
}

/* Light/high-trust mode intentionally uses cool paper surfaces, not pure white. */
[data-theme="light"] body { background: #edf1f4 !important; color: #17202b; }
[data-theme="light"] .pw-terminal-chrome,
[data-theme="light"] .pw-topbar,
[data-theme="light"] .pw-filterbar,
[data-theme="light"] .mobile-bottom-nav { background: rgba(247,249,250,.97) !important; border-color: #cdd5de !important; }
[data-theme="light"] .pw-search-input,
[data-theme="light"] .sport-switcher,
[data-theme="light"] .chip-segment-group,
[data-theme="light"] .chip-pill:not(.active),
[data-theme="light"] .pw-theme-toggle { background: #fff !important; border-color: #c8d1dc !important; color: #526174 !important; }
[data-theme="light"] .mobile-quant-row,
[data-theme="light"] .execution-shell,
[data-theme="light"] .cross-book-row { background: #f8fafb !important; border-color: #cfd7e1 !important; color: #17202b; }
[data-theme="light"] .card-player-name,
[data-theme="light"] .grid-col-val,
[data-theme="light"] .execution-identity h3,
[data-theme="light"] .execution-summary strong { color: #17202b !important; }
[data-theme="light"] .card-team-matchup,
[data-theme="light"] .grid-col-lbl,
[data-theme="light"] .grid-col-sub { color: #66758a !important; }
[data-theme="light"] .mobile-usage-ticker { background: #fff8e8; border-color: #dec78e; }
[data-theme="light"] .bottom-nav-item { color: #647287; }
[data-theme="light"] .bottom-nav-item.active { color: #087a5b; background: rgba(5,150,105,.09); }

/* ─── Sophisticated Slate visual system ────────────────────────────────
   Presentation-only overrides: preserve the terminal's structure and
   interactions while making model data—not chrome—the visual priority. */
:root {
  --bg-canvas: #0b0e14;
  --bg-surface: #141a23;
  --bg-elevated: #131a24;
  --border-hairline: #232c3b;
  --brand-accent: #80c6f6;
  --brand-accent-bright: #b7e5ff;
  --brand-accent-dim: rgba(128, 198, 246, 0.14);
  --brand-accent-border: rgba(128, 198, 246, 0.35);
  --brand-accent-glow: rgba(128, 198, 246, 0.25);
  --text-primary: #ffffff;
  --text-secondary: #8b949e;
  --text-muted: #7d8592;
  --surface-3: #1c2432;
  --surface-row-hover: #1a212d;
  --line: #232c3b;
  --line-strong: #2d3a4d;
  --accent-ink: #07101c;
  --amber-bg: #2a1a15;
  --pw-bg-deep: #141a23;
  --pw-bg-bar: #141a23;
  --pw-bg-control: #1c2432;
  --pw-border: #232c3b;
  --shadow: 0 16px 40px -24px rgba(0, 0, 0, 0.85);
}

body {
  background: #0b0e14;
  color: #ffffff;
  font-family: var(--sans);
}

.pw-terminal-chrome,
.pw-filterbar,
.sport-switcher-bar {
  background: rgba(20, 26, 35, 0.97) !important;
  border-color: #232c3b !important;
  box-shadow: none;
}

.pw-topbar-right .pw-stepper,
.pw-select,
.pw-btn-nav,
.pw-btn-icon {
  background: #1c2432;
  border-color: #2d3a4d;
  box-shadow: none;
}

.pw-stepper-label,
.slate-table th,
.chip-segment-group[data-eyebrow]::before {
  color: #8b949e;
  letter-spacing: .05em;
}

.sport-switcher {
  background: #141a23;
  border-color: #2d3a4d;
  border-radius: var(--radius);
  box-shadow: none;
}

.sport-switch-btn {
  border-radius: var(--radius-sm);
  color: #8b949e;
  font-family: var(--sans);
  text-shadow: none !important;
}

.sport-switch-btn::before { display: none; }

.sport-switch-btn.active,
.sport-switch-btn[data-sport="nba"].active {
  color: #07101c;
  background: #80c6f6;
  border-color: #80c6f6;
  box-shadow: none;
}

.data-quality-banner {
  position: sticky;
  top: 133px;
  z-index: 34;
  flex-wrap: nowrap;
  align-items: center;
  min-height: 36px;
  margin: 0;
  padding: 6px 12px;
  gap: 16px;
  border: 0;
  border-bottom: 1px solid #392a22;
  border-left: 3px solid #f59e0b;
  border-radius: 0;
  background: #2a1a15;
  box-shadow: none;
  color: #c9c0ba;
}

.data-quality-banner .dq-item {
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: row;
  align-items: baseline;
  gap: 8px;
  padding: 0;
}

.data-quality-banner .dq-item strong {
  flex: 0 0 auto;
  color: #f59e0b;
  font-size: 10px;
  letter-spacing: .05em;
}

.dq-retry-btn {
  min-height: 26px;
  padding: 3px 10px;
  border-color: #5a4030;
  background: transparent;
  color: #d1c7c0;
}

.table-scroll {
  border-color: #232c3b;
  background: #141a23;
  box-shadow: var(--edge-hi);
}

.slate-table th {
  background: #131a24;
  color: #8b949e;
  font-family: var(--sans);
  font-weight: 500;
  letter-spacing: .05em;
}

.slate-table td {
  border-bottom-color: #1d2430;
}

.slate-table th,
.slate-table td,
.number-main,
.model-num-row,
.bullet-container,
.edge-cell,
.price-check,
.pw-stepper-val {
  font-variant-numeric: tabular-nums lining-nums;
}

.slate-table td.td-num,
.number-main,
.model-num-row,
.bullet-container,
.edge-cell,
.price-check,
.pw-stepper-val {
  font-family: var(--mono);
}

.player-name,
.card-player-name {
  color: #f0f3f6;
  font-family: var(--sans);
  font-weight: 600;
}

.driver-badge.alpha {
  color: #6ee7b7;
  border-color: rgba(52, 211, 153, 0.35);
  background: rgba(16, 185, 129, 0.12);
}
.driver-badge.volume {
  color: #38bdf8;
  border-color: rgba(56, 189, 248, 0.35);
  background: rgba(56, 189, 248, 0.10);
}
.driver-badge.air,
.driver-badge.adot {
  color: #a5b4fc;
  border-color: rgba(129, 140, 248, 0.35);
  background: rgba(99, 102, 241, 0.12);
}
.driver-badge.surge {
  color: #fcd34d;
  border-color: rgba(245, 158, 11, 0.35);
  background: rgba(245, 158, 11, 0.12);
}
.uncal-tag {
  color: #80c6f6;
  border-color: rgba(128, 198, 246, 0.42);
  background: rgba(128, 198, 246, 0.10);
  box-shadow: none;
}

.number-main.book-empty {
  color: #6e7681;
  font-weight: 500;
}

.meta-pill.model-only,
.exec-tag-none {
  color: #7d8592;
  background: #1a212d;
  border-color: #343841;
  box-shadow: none;
}

.bullet-bold.text-fair { color: #8b949e; font-weight: 600; }
.bullet-bold.text-accent { color: #f0f3f6; }
.bullet-dim,
.bullet-bottom-sub,
.ci-range { color: #7d8592; }
.bullet-bk { color: #7d8592; font-weight: 500; }

.bullet-svg .ci-band,
.bullet-svg [data-ci-band] { fill: #232c3b; }

.chip-pill.active,
.pw-seg-btn.active {
  box-shadow: none !important;
}

@media (max-width: 768px) {
  .data-quality-banner {
    position: static;
    flex-wrap: wrap;
    gap: 6px 12px;
  }
  .data-quality-banner .dq-item {
    flex-basis: 100%;
  }
}

/* ─── DATA BOARD & TABLE SURFACES ─── */
.data-board { margin-top: 10px; }
.table-scroll {
  width: 100%;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.4);
}
.slate-table { width: 100%; min-width: 920px; border-collapse: collapse; table-layout: fixed; }
.slate-table th:nth-child(1) { width: 28%; } /* PLAYER / DRIVER */
.slate-table th:nth-child(2) { width: 12%; } /* MATCHUP */
.slate-table th:nth-child(3) { width: 18%; } /* BOOK & STATUS */
.slate-table th:nth-child(4) { width: 24%; } /* MODEL + BULLET GRAPH */
.slate-table th:nth-child(5) { width: 18%; } /* PRICE CHECK / EDGE */
.slate-table th, .slate-table td {
  border-right: 1px solid rgba(255, 255, 255, 0.04);
  font-variant-numeric: tabular-nums;
}
.slate-table th:last-child, .slate-table td:last-child {
  border-right: none;
}
.slate-table th {
  height: 38px;
  padding: 0 14px;
  border-bottom: 1px solid var(--line);
  background: var(--surface-2);
  color: var(--muted);
  text-align: left;
  font: 750 10px/1 var(--mono);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.slate-table th.th-num { text-align: right; }
.slate-table td {
  height: 56px;
  padding: 6px 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  vertical-align: middle;
}
.slate-table td.td-num { text-align: right; }
.slate-table tr:last-child td { border-bottom: 0; }
.slate-table tbody tr[data-testid="slate-row"] {
  background: var(--surface);
  cursor: pointer;
  transition: background 0.12s cubic-bezier(0.4, 0, 0.2, 1);
}
.slate-table tbody tr[data-testid="slate-row"]:hover {
  background: var(--surface-row-hover);
}
.slate-table tbody tr[data-testid="slate-row"]:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }

/* ─── PLAYER CELL ─── */
.player-cell { display: flex; align-items: center; gap: 10px; min-width: 0; }
.team-logo-badge { width: 24px; height: 24px; object-fit: contain; flex: 0 0 24px; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .45)); }
.player-info { min-width: 0; }
.position-box {
  width: 30px;
  height: 30px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-2);
  color: var(--muted);
  font: 750 10px/1 var(--mono);
}
.player-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 750; font-size: 13.5px; }
.player-meta-line { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 3px; }
.cell-sub { display: block; color: var(--faint); font: 600 10px/1.2 var(--mono); font-variant-numeric: tabular-nums; }
.insight-sub { font-family: var(--sans); font-size: 11px; line-height: 1.35; color: var(--muted); max-width: 290px; white-space: normal; }

/* ─── OFFICIAL HIGH-CONTRAST TEAM CREST BADGES ─── */
.team-crest {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  user-select: none;
  border-radius: var(--radius);
  border: 1px solid;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.45);
  overflow: hidden;
}
.team-crest.crest-sm {
  width: 18px;
  height: 18px;
  padding: 2px;
  border-radius: var(--radius-sm);
}
.team-crest.crest-md {
  width: 26px;
  height: 26px;
  padding: 3px;
  border-radius: var(--radius);
}
.team-crest.crest-lg {
  width: 36px;
  height: 36px;
  padding: 4px;
  border-radius: var(--radius);
}
.crest-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.65));
  display: block;
}

/* ─── MATCHUP CELL IN DESKTOP TABLE ─── */
.matchup-cell {
  display: flex;
  flex-direction: column;
  gap: 3px;
  justify-content: center;
}
.matchup-crests-row {
  display: flex;
  align-items: center;
  gap: 5px;
}
.matchup-vs {
  font: 700 10.5px/1 var(--mono);
  color: var(--muted);
}
.matchup-sub-row {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
}
.matchup-teams-text {
  font: 700 11px/1 var(--mono);
  color: #cbd5e1;
}

/* ─── SLATE MATCHUP CHIPS WITH CRESTS ─── */
.game-chip-matchup {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.chip-team-code {
  font-weight: 750;
  font-size: 11px;
}
.chip-at {
  color: var(--muted);
  font-size: 10px;
  margin: 0 1px;
}
.chip-prime-tag {
  color: var(--accent);
  font-size: 10px;
  margin-left: 4px;
  font-weight: 700;
}

/* ─── LIVE ODDS POLLING WIDGET ─── */
.live-polling-widget {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: #0d1320;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 3px 8px;
  font: 650 11px/1 var(--mono);
  color: #94a3b8;
  user-select: none;
  cursor: pointer;
  flex-shrink: 0;
  transition: all 0.15s ease;
}
.live-polling-widget:hover {
  border-color: rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.06);
  color: #dce3ec;
}
.polling-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #10b981;
  flex-shrink: 0;
}
.polling-dot.pulse {
  box-shadow: 0 0 0 0 rgba(128, 198, 246, 0.7);
  animation: pollingPulse 2s infinite;
}
@keyframes pollingPulse {
  0% { box-shadow: 0 0 0 0 rgba(128, 198, 246, 0.6); }
  70% { box-shadow: 0 0 0 5px rgba(128, 198, 246, 0); }
  100% { box-shadow: 0 0 0 0 rgba(128, 198, 246, 0); }
}
.polling-timer {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.polling-refresh-btn {
  background: transparent;
  border: none;
  padding: 1px 2px;
  color: #6e7681;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm);
  transition: all 0.15s ease;
}
.polling-refresh-btn:hover {
  color: #10b981;
}
.poll-refresh-icon {
  width: 12px;
  height: 12px;
  display: block;
}
.polling-refresh-btn.is-spinning .poll-refresh-icon {
  animation: spinPoll 0.6s linear infinite;
}
@keyframes spinPoll {
  100% { transform: rotate(360deg); }
}

/* ─── MOBILE BOTTOM SHEET HANDLE ─── */
.dialog-sheet-handle {
  display: none;
}

/* ─── NUMBERS & TABULAR MONO ─── */
.number-main {
  font: 750 14px/1.2 var(--mono);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  color: var(--text-primary);
}
.book-side {
  color: #94a3b8;
  font-weight: 600;
  font-size: 11.5px;
  margin-right: 2px;
}
.odds-val {
  color: var(--faint);
  font: 650 11px/1 var(--mono);
  font-variant-numeric: tabular-nums;
  margin-left: 2px;
}

/* ─── SVG VECTOR ICONS ─── */
.prop-icon { width: 12px; height: 12px; display: inline-block; vertical-align: -1.5px; flex: 0 0 12px; stroke: currentColor; }
.prop-icon.icon-edge { color: var(--accent); }
.prop-icon.icon-surge { color: var(--accent); }
.prop-icon.icon-alpha { color: var(--accent); }
.prop-icon.icon-air { color: #80c6f6; }
.prop-icon.icon-deep { color: #f0883e; }
.prop-icon.icon-volume { color: var(--accent); }
.prop-icon.icon-starter { color: var(--muted); }
.prop-icon.icon-depth { color: var(--faint); }
.prop-icon.icon-lock { color: var(--muted); }
.prop-icon.icon-warn { color: var(--amber); }

/* ─── KEY DRIVER BADGES ─── */
.driver-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 7px;
  border-radius: var(--radius-sm);
  font: 700 9.5px/1.2 var(--mono);
  font-variant-numeric: tabular-nums;
  text-transform: uppercase;
  letter-spacing: .03em;
  border: 1px solid var(--line);
  background: var(--surface-3);
  color: var(--muted);
  white-space: nowrap;
}
.driver-badge .prop-icon { width: 10px; height: 10px; vertical-align: 0; }
.driver-badge.alpha { color: #6ee7b7; border-color: rgba(52, 211, 153, 0.35); background: rgba(16, 185, 129, 0.12); }
.driver-badge.surge { color: #fcd34d; border-color: rgba(245, 158, 11, 0.35); background: rgba(245, 158, 11, 0.12); font-weight: 700; }
.driver-badge.air, .driver-badge.adot { color: #a5b4fc; border-color: rgba(129, 140, 248, 0.35); background: rgba(99, 102, 241, 0.12); }
.driver-badge.volume { color: #38bdf8; border-color: rgba(56, 189, 248, 0.35); background: rgba(56, 189, 248, 0.10); }
.driver-badge.starter { color: var(--text-dim); border-color: var(--line-strong); background: var(--surface-2); }
.driver-badge.depth { color: var(--faint); border-color: var(--line); background: transparent; }

/* ─── INACTIVE COLUMN DIMMING & INTERACTIVE LINE SIMULATOR ─── */
.th-inactive-col {
  opacity: 0.40 !important;
}

.simulate-line-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  font-size: 11px;
  font-family: var(--mono);
  font-weight: 500;
  color: #94a3b8;
  background: rgba(56, 189, 248, 0.06);
  border: 1px solid rgba(56, 189, 248, 0.20);
  border-radius: 9999px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.simulate-line-btn:hover {
  color: #ffffff;
  background: rgba(56, 189, 248, 0.15);
  border-color: rgba(56, 189, 248, 0.40);
}
.simulate-line-btn .sim-plus {
  color: #38bdf8;
  font-weight: 700;
}

.sim-input-wrap {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 8px;
  background: #04070E;
  border: 1px solid rgba(56, 189, 248, 0.40);
  border-radius: 9999px;
}
.sim-line-input {
  width: 58px;
  background: transparent;
  border: none;
  outline: none;
  color: #ffffff;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  text-align: center;
}
.sim-close-btn {
  background: transparent;
  border: none;
  color: #64748b;
  cursor: pointer;
  font-size: 11px;
  padding: 0 2px;
}
.sim-close-btn:hover {
  color: #ffffff;
}

.simulated-edge-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  border-radius: 6px;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.simulated-edge-badge.pos {
  color: #38bdf8;
  background: rgba(56, 189, 248, 0.15);
  border: 1px solid rgba(56, 189, 248, 0.30);
}
.simulated-edge-badge.neg {
  color: #f43f5e;
  background: rgba(244, 63, 94, 0.12);
  border: 1px solid rgba(244, 63, 94, 0.30);
}

.matchup-sub-row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 6px !important;
}
.matchup-sub-row .venue-badge {
  margin-left: auto !important;
  flex-shrink: 0 !important;
}

/* ─── MODEL QUANT COLUMN (RIGHT ALIGNED) ─── */
.split-cell { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; min-width: 0; }
.model-num-row {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 3px;
  font: 750 14px/1.2 var(--mono);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.model-num-row .num-bold { color: var(--text-primary); font-weight: 800; letter-spacing: -0.02em; }
.model-num-row .label-dim { color: #6e7681; font: 600 10px/1 var(--mono); text-transform: uppercase; letter-spacing: .05em; margin-right: 2px; }
.split-divider { display: inline-block; margin: 0 4px; color: var(--line-strong); font-weight: 400; }
.ci-range {
  display: block;
  margin-top: 2px;
  color: #94a3b8;
  font: 450 11.5px/1.2 var(--mono);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}
.info-trigger {
  display: inline-grid;
  place-items: center;
  width: 15px;
  height: 15px;
  margin-left: 6px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--surface-3);
  color: var(--muted);
  font: 700 9px/1 var(--mono);
  cursor: help;
  padding: 0;
  line-height: 1;
}
.info-trigger:hover { color: var(--text); border-color: var(--accent); background: rgba(128, 198, 246, 0.15); }

/* ─── BOOK & STATUS (RIGHT ALIGNED) ─── */
.book-cell { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.book-meta { display: flex; align-items: center; justify-content: flex-end; gap: 5px; flex-wrap: wrap; margin-top: 1px; }
.book-tag { color: var(--muted); font: 700 10px/1 var(--mono); }
.injury-warning-tag {
  display: inline-flex;
  align-items: center;
  gap: 3.5px;
  color: var(--amber);
  font: 750 9px/1 var(--mono);
  padding: 1px 5px;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(245, 158, 11, 0.35);
  background: var(--amber-bg);
}
.injury-warning-tag .prop-icon { width: 9px; height: 9px; vertical-align: 0; }

/* Directional Over/Under Line Pill (↑ / ↓ Visual Block) */
.dir-line-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 7px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-sm);
  font-family: var(--mono);
  font-weight: 800;
  letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
  vertical-align: middle;
}
.dir-line-pill.dir-over {
  color: #80c6f6;
}
.dir-line-pill.dir-under {
  color: #80c6f6;
}
.dir-arrow {
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
}
.dir-line-pill.dir-over .dir-arrow {
  color: #80c6f6;
}
.dir-line-pill.dir-under .dir-arrow {
  color: #80c6f6;
}
.fixed-odds {
  display: inline-block !important;
  min-width: 44px !important;
  text-align: right !important;
  font-family: var(--mono) !important;
  font-variant-numeric: tabular-nums !important;
  font-feature-settings: "tnum" 1 !important;
}
.heatmap-edge {
  padding: 2px 6px !important;
  border-radius: var(--radius-sm) !important;
}

/* ─── DIRECTIONAL TICK FLASHES (MOMENTUM INGESTION) ─── */
/* Peripheral vision telemetry: Green flash for positive EV gains, Amber flash for EV decay */
@keyframes tickFlashUp {
  0% {
    background-color: rgba(128, 198, 246, 0.45) !important;
    box-shadow: inset 0 0 16px rgba(128, 198, 246, 0.40), 0 0 10px rgba(128, 198, 246, 0.35) !important;
  }
  100% {
    background-color: transparent !important;
    box-shadow: none !important;
  }
}

@keyframes tickFlashDown {
  0% {
    background-color: rgba(245, 158, 11, 0.45) !important;
    box-shadow: inset 0 0 16px rgba(245, 158, 11, 0.40), 0 0 10px rgba(245, 158, 11, 0.35) !important;
  }
  100% {
    background-color: transparent !important;
    box-shadow: none !important;
  }
}

.tick-flash-up {
  animation: tickFlashUp 0.85s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
  position: relative !important;
  border-radius: var(--radius) !important;
}

.tick-flash-down {
  animation: tickFlashDown 0.85s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
  position: relative !important;
  border-radius: var(--radius) !important;
}

.tick-flash-glyph {
  display: inline-block;
  font-size: 8.5px;
  font-weight: 900;
  line-height: 1;
  margin-left: 4px;
  vertical-align: middle;
}
.tick-glyph-up {
  color: #80c6f6;
}
.tick-glyph-down {
  color: #f59e0b;
}

/* 400ms Ingestion Heartbeat (subtle fallback) */
.cell-shimmer {
  position: relative !important;
}

@media (prefers-reduced-motion: reduce) {
  .tick-flash-up,
  .tick-flash-down {
    animation: none !important;
    background-color: transparent !important;
  }
  .pulse,
  .polling-dot,
  .toast,
  .mobile-quant-row {
    animation: none !important;
    transition: none !important;
  }
}

/* ─── INLINE PRICE HISTORY SPARKLINES (40x15 SVG) ─── */
.book-sparkline-wrap {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 3px;
  cursor: help;
}
.price-sparkline-svg {
  display: block;
  overflow: visible;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
}
.sparkline-delta {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  padding: 1px 4px;
  border-radius: var(--radius-sm);
  display: inline-block;
}
.sparkline-delta.steam-up {
  background: rgba(128, 198, 246, 0.18);
  border: 1px solid rgba(128, 198, 246, 0.4);
  color: #80c6f6;
}
.sparkline-delta.steam-down {
  background: rgba(245, 158, 11, 0.18);
  border: 1px solid rgba(245, 158, 11, 0.4);
  color: #fbbf24;
}
.sparkline-delta.steam-flat {
  background: rgba(148, 163, 184, 0.12);
  border: 1px solid rgba(148, 163, 184, 0.25);
  color: #94a3b8;
}

/* ─── CORRELATED EXPOSURE ENGINE (SAME-TEAM RISK & HEDGE) ─── */
.corr-risk-pill {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 6px;
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.35);
  border-radius: var(--radius-sm);
  color: #fbbf24;
  font-family: var(--mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin-top: 3px;
  line-height: 1.1;
  cursor: default;
}
.corr-risk-pill.corr-hedge {
  background: rgba(128, 198, 246, 0.12);
  border-color: rgba(128, 198, 246, 0.35);
  color: #80c6f6;
}
.corr-risk-pill .corr-icon {
  font-size: 10px;
}
.corr-dismiss-btn {
  background: transparent;
  border: none;
  color: inherit;
  font-size: 11px;
  cursor: pointer;
  padding: 0 2px;
  margin-left: 4px;
  opacity: 0.7;
  line-height: 1;
  border-radius: var(--radius-sm);
}
.corr-dismiss-btn:hover {
  opacity: 1;
  background: rgba(255, 255, 255, 0.1);
}
.mq-signal-badge.corr-risk {
  background: rgba(245, 158, 11, 0.15) !important;
  border-color: rgba(245, 158, 11, 0.45) !important;
  color: #fbbf24 !important;
}
.mq-signal-badge.corr-hedge {
  background: rgba(128, 198, 246, 0.15) !important;
  border-color: rgba(128, 198, 246, 0.45) !important;
  color: #80c6f6 !important;
}
.portfolio-risk-alert {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px 14px;
  margin-bottom: 14px;
  background: rgba(245, 158, 11, 0.10);
  border: 1px solid rgba(245, 158, 11, 0.32);
  border-radius: var(--radius);
  font-size: 11.5px;
  color: #fcd34d;
  line-height: 1.4;
  position: relative;
}
.portfolio-risk-alert-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-weight: 800;
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #f59e0b;
  font-size: 11px;
}
.portfolio-risk-alert strong {
  color: #fff;
}
.badge.corr-risk-badge {
  background: rgba(245, 158, 11, 0.2);
  color: #fbbf24;
  border: 1px solid rgba(245, 158, 11, 0.4);
  font-size: 9px;
  padding: 2px 5px;
  border-radius: var(--radius-sm);
  font-family: var(--mono);
  font-weight: 700;
}
.badge.corr-hedge-badge {
  background: rgba(128, 198, 246, 0.2);
  color: #80c6f6;
  border: 1px solid rgba(128, 198, 246, 0.4);
  font-size: 9px;
  padding: 2px 5px;
  border-radius: var(--radius-sm);
  font-family: var(--mono);
  font-weight: 700;
}

/* ─── PRICE CHECK & HEATMAP EDGE CELL (FINTECH TWO-TIER TRADING SIGNAL) ─── */
.edge-cell-wrap {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  width: 100%;
}
.edge-cell {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  padding: 3px 8px;
  border-radius: var(--radius);
  min-width: 80px;
  box-sizing: border-box;
  transition: all 0.12s ease;
}
.edge-cell-verified {
  background: linear-gradient(90deg, rgba(128, 198, 246, 0.04) 0%, rgba(128, 198, 246, 0.12) 100%);
  border: 1px solid rgba(128, 198, 246, 0.22);
}
.edge-cell-caution {
  background: linear-gradient(90deg, rgba(245, 158, 11, 0.04) 0%, rgba(245, 158, 11, 0.14) 100%);
  border: 1px solid rgba(245, 158, 11, 0.25);
}
.edge-cell-subgate {
  background: rgba(148, 163, 184, 0.05);
  border: 1px solid rgba(148, 163, 184, 0.12);
}
.edge-cell-unverified {
  background: rgba(148, 163, 184, 0.04);
  border: 1px solid rgba(148, 163, 184, 0.1);
}
.edge-cell-closed {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.04);
}
.edge-cell-none {
  background: transparent;
}
.edge-cell-halt {
  background: linear-gradient(90deg, rgba(239, 68, 68, 0.08) 0%, rgba(239, 68, 68, 0.2) 100%) !important;
  border: 1px solid rgba(239, 68, 68, 0.5) !important;
}
.edge-line-top.text-halt {
  color: #f87171 !important;
  text-shadow: 0 0 10px rgba(248, 113, 113, 0.35) !important;
}
.exec-tag-halt {
  background: rgba(239, 68, 68, 0.25) !important;
  border: 1px solid rgba(239, 68, 68, 0.6) !important;
  color: #fca5a5 !important;
}
.edge-line-top {
  font-family: var(--mono);
  font-size: 13.5px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  line-height: 1.15;
  text-align: right;
  letter-spacing: -0.01em;
}
.edge-line-top.text-verified {
  color: #80c6f6;
  text-shadow: 0 0 10px rgba(128, 198, 246, 0.2);
}
.edge-line-top.text-caution {
  color: #fbbf24;
  text-shadow: 0 0 10px rgba(251, 191, 36, 0.2);
}
.edge-line-top.text-subgate {
  color: #94a3b8;
}
.edge-line-top.text-unverified {
  color: #94a3b8;
}
.edge-line-top.text-closed {
  color: var(--faint);
  font-size: 11px;
}
.edge-line-top.text-muted {
  color: var(--faint);
}

.exec-tag {
  font-family: var(--mono);
  font-size: 8.5px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1;
  margin-top: 2px;
  display: inline-block;
  padding: 1.5px 6px;
  border-radius: var(--radius-pill);
  box-sizing: border-box;
}
.exec-tag-active {
  background: rgba(128, 198, 246, 0.18);
  border: 1px solid rgba(128, 198, 246, 0.5);
  color: #80c6f6;
}
.exec-tag-verify {
  background: rgba(245, 158, 11, 0.22);
  border: 1px solid rgba(245, 158, 11, 0.55);
  color: #fde68a;
}
.exec-tag-subgate {
  background: rgba(100, 116, 139, 0.2);
  border: 1px solid rgba(148, 163, 184, 0.35);
  color: #cbd5e1;
}
.exec-tag-closed {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--faint);
}
.exec-tag-unverified {
  background: rgba(148, 163, 184, 0.12);
  border: 1px solid rgba(148, 163, 184, 0.3);
  color: #94a3b8;
}
.exec-tag-none {
  color: var(--faint);
}

.row-log-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  min-width: 28px;
  min-height: 28px;
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #94a3b8;
  font-family: var(--mono);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  padding: 0;
  transition: all 0.15s cubic-bezier(0.16, 1, 0.3, 1);
  flex-shrink: 0;
}
.row-log-btn:hover {
  background: rgba(128, 198, 246, 0.18);
  border-color: rgba(128, 198, 246, 0.4);
  color: #80c6f6;
  transform: scale(1.06);
}
.row-log-btn.logged {
  background: rgba(128, 198, 246, 0.22);
  border-color: rgba(128, 198, 246, 0.5);
  color: #10b981;
}
.row-log-btn:not(.logged):not(.blocked) {
  width: auto;
  min-width: 52px;
  padding: 0 8px;
  font-size: 9px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.row-log-btn.blocked,
.card-btn-log.blocked {
  cursor: not-allowed !important;
  opacity: 0.52;
  transform: none !important;
}

.price-lock { color: var(--faint); }
.metric-lock { color: var(--faint); }
.metric-lock .number-main { text-decoration: line-through; text-decoration-thickness: 1px; }
.actionable { color: var(--accent); }
.caution { color: var(--amber); }
.closed { color: var(--faint); }

.meta-pill {
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  gap: 4.5px;
  min-height: 23px;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: var(--radius-pill);
  color: var(--muted);
  font: 700 10px/1 var(--mono);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.meta-pill .prop-icon { width: 10px; height: 10px; vertical-align: -0.5px; }
.meta-pill.actionable {
  border-color: rgba(128, 198, 246, 0.5);
  background: rgba(128, 198, 246, 0.12);
  color: var(--accent);
  box-shadow: 0 0 8px rgba(128, 198, 246, 0.2);
  font-weight: 800;
}
.meta-pill.unverified { border-color: var(--line); background: var(--surface-2); color: var(--muted); }
.meta-pill.model-only { border-color: var(--line); background: var(--surface-2); color: var(--faint); font-weight: 650; }
.meta-pill.caution { border-color: rgba(245, 158, 11, 0.4); color: var(--amber); background: var(--amber-bg); }
.meta-pill.closed { border-color: var(--line); background: transparent; color: var(--faint); }

.injury-tag {
  display: inline-flex;
  min-height: 20px;
  align-items: center;
  margin-left: 5px;
  padding: 0 6px;
  border: 1px solid rgba(245, 158, 11, 0.35);
  border-radius: var(--radius-pill);
  color: var(--amber);
  background: var(--amber-bg);
  font: 800 9px/1 var(--mono);
  vertical-align: middle;
}
.surge-tag {
  display: inline-flex;
  min-height: 22px;
  align-items: center;
  gap: 4px;
  margin-left: 6px;
  padding: 0 8px;
  border: 1px solid rgba(128, 198, 246, 0.45);
  border-radius: var(--radius-pill);
  background: rgba(128, 198, 246, 0.12);
  color: var(--accent);
  font: 800 9px/1 var(--mono);
  letter-spacing: .04em;
  vertical-align: middle;
  box-shadow: 0 0 8px rgba(128, 198, 246, 0.2);
  animation: surge-glow 2.4s ease-in-out infinite alternate;
}
.surge-tag .prop-icon { width: 10px; height: 10px; vertical-align: 0; }
@keyframes surge-glow {
  0% { box-shadow: 0 0 4px rgba(128, 198, 246, 0.15); }
  100% { box-shadow: 0 0 12px rgba(128, 198, 246, 0.4); }
}

.hurdle-gauge { display: block; width: 150px; height: 32px; overflow: visible; margin-left: auto; }
.gauge-line { stroke: var(--line-strong); stroke-width: 2; }
.gauge-fair { fill: var(--muted); }
.gauge-target { fill: var(--amber); }
.gauge-offer { fill: var(--text); }
.gauge-label { fill: var(--faint); font: 700 7px var(--mono); }
.gauge-empty { color: var(--faint); font: 600 10px/1.3 var(--mono); text-align: right; }

/* ─── CARD VIEW & 76PX COMPACT ORDER-BOOK ROWS ─── */
.card-grid {
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: transparent;
  border: none;
  border-radius: var(--radius);
  overflow: visible;
  padding: 6px 4px 28px 4px;
  box-shadow: none;
}
.mobile-quant-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 14px;
  background: #090d16;
  border: 1.5px solid rgba(128, 198, 246, 0.85);
  border-radius: var(--radius-lg);
  font-family: var(--mono);
  user-select: none;
  cursor: pointer;
  position: relative;
  z-index: 1;
  transition: transform 0.12s ease, border-color 0.15s ease, box-shadow 0.2s ease, background 0.12s ease;
  animation: rowFadeUp 0.18s cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: calc(var(--row-index, 0) * 20ms);
  /* Baby blue ring with atmospheric smoke outside */
  box-shadow:
    0 0 0 1px rgba(128, 198, 246, 0.4),
    0 0 16px 2px rgba(128, 198, 246, 0.25),
    0 8px 26px 4px rgba(15, 23, 42, 0.85),
    0 18px 48px 12px rgba(0, 0, 0, 0.92);
}
.mobile-quant-row::before {
  content: '';
  position: absolute;
  inset: -5px;
  border-radius: 16px;
  background: radial-gradient(ellipse at 50% 50%, rgba(128, 198, 246, 0.2) 0%, rgba(15, 23, 42, 0.55) 55%, transparent 100%);
  filter: blur(10px);
  z-index: -1;
  pointer-events: none;
  opacity: 0.9;
  transition: opacity 0.2s ease, filter 0.2s ease;
}
.mobile-quant-row:last-child {
  border-bottom: 1.5px solid rgba(128, 198, 246, 0.85);
}
.mobile-quant-row:hover {
  background: rgba(255, 255, 255, 0.035);
  border-color: rgba(128, 198, 246, 0.95);
  box-shadow:
    0 0 0 1.5px rgba(128, 198, 246, 0.6),
    0 0 24px 4px rgba(128, 198, 246, 0.38),
    0 10px 32px 6px rgba(15, 23, 42, 0.9),
    0 22px 56px 16px rgba(0, 0, 0, 0.95);
  transform: translateY(-1px);
}
.mobile-quant-row:hover::before {
  opacity: 1;
  filter: blur(14px);
}
.mobile-quant-row:active {
  background: rgba(255, 255, 255, 0.05);
  transform: scale(0.99);
}
.mobile-quant-row.top-edge-play {
  border-color: rgba(128, 198, 246, 0.9);
  background: radial-gradient(circle at 90% 20%, rgba(128, 198, 246, 0.09) 0%, #090d16 70%);
  box-shadow:
    0 0 0 1px rgba(128, 198, 246, 0.5),
    0 0 20px 3px rgba(128, 198, 246, 0.3),
    0 8px 28px 4px rgba(15, 23, 42, 0.85),
    0 18px 50px 14px rgba(0, 0, 0, 0.92);
}
.mq-line-1 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  min-height: 19px;
  line-height: 1.15;
}
.mq-id-group {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  overflow: hidden;
}
.mq-name-block {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  line-height: 1.18;
}
.mq-name-row {
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
}
.mq-pos-badge {
  font-size: 9px;
  font-weight: 750;
  padding: 1px 3px;
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.06);
  color: #cbd5e1;
  flex-shrink: 0;
}
.mq-player-name {
  font-family: var(--sans);
  font-weight: 700;
  font-size: 13px;
  color: #f8fafc;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mq-sub-row {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  color: #94a3b8;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mq-sep {
  color: rgba(255, 255, 255, 0.2);
  font-size: 9px;
  flex-shrink: 0;
}
.mq-role-badge {
  font-size: 9px;
  color: #80c6f6;
  font-weight: 600;
  flex-shrink: 0;
}
.mq-matchup {
  font-size: 10.5px;
  color: #6e7681;
  flex-shrink: 0;
}
.mq-env-badge {
  font-size: 8.5px;
  color: #94a3b8;
  background: rgba(255, 255, 255, 0.04);
  padding: 1px 3px;
  border-radius: var(--radius-sm);
  flex-shrink: 0;
}
.mq-edge-wrap {
  flex-shrink: 0;
}
.mq-edge-val {
  font-size: 10.5px;
  font-weight: 800;
  color: #10b981;
  background: rgba(128, 198, 246, 0.1);
  border: 1px solid rgba(128, 198, 246, 0.3);
  padding: 1px 5px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
}
.mq-edge-verify {
  font-size: 10.5px;
  font-weight: 800;
  color: #f59e0b;
  background: rgba(245, 158, 11, 0.1);
  border: 1px solid rgba(245, 158, 11, 0.3);
  padding: 1px 5px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
}
.mq-edge-closed {
  font-size: 9.5px;
  font-weight: 700;
  color: #6e7681;
  background: rgba(255, 255, 255, 0.04);
  padding: 1px 4px;
  border-radius: var(--radius-sm);
}
.mq-edge-none {
  font-size: 9.5px;
  color: #6e7681;
}

/* Line 2: 3-Column Quant Strip */
.mq-line-2 {
  display: grid;
  grid-template-columns: 2.8fr 4.6fr 2.6fr;
  align-items: center;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  padding-top: 1px;
  line-height: 1.15;
}
.mq-col-book {
  display: flex;
  flex-direction: column;
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  padding-right: 6px;
  overflow: hidden;
  line-height: 1.15;
}
.mq-strip-lbl {
  font-size: 8px;
  color: #6e7681;
  letter-spacing: 0.04em;
  font-weight: 700;
  display: block;
  text-transform: uppercase;
}
.mq-no-quote {
  font-size: 10px;
  color: #6e7681;
  white-space: nowrap;
}
.mq-book-val {
  font-size: 11px;
  color: #f8fafc;
  font-weight: 700;
  white-space: nowrap;
}
.mq-side-over { color: #10b981; font-weight: 800; font-size: 9.5px; }
.mq-side-under { color: #80c6f6; font-weight: 800; font-size: 9.5px; }
.mq-book-line { color: #ffffff; font-weight: 800; font-size: 12.5px; }
.mq-book-odds { color: #94a3b8; font-size: 10px; }

.mq-col-model {
  display: flex;
  flex-direction: column;
  padding: 0 6px;
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  overflow: hidden;
  line-height: 1.1;
}
.mq-model-nums {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  font-size: 10px;
  color: #6e7681;
}
.mq-model-nums b { font-weight: 750; font-size: 11px; }
.mq-model-nums b.text-accent { color: #10b981; }
.mq-model-nums b:not(.text-accent) { color: #dce3ec; }
.mq-model-sub {
  font-size: 9px;
  color: #6e7681;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mq-col-stake {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  padding-left: 5px;
}
.mq-stake-info {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  line-height: 1;
}
.mq-stake-label { font-size: 8px; color: #6e7681; letter-spacing: 0.04em; }
.mq-stake-val { font-size: 10px; font-weight: 700; }
.mq-stake-val.text-accent { color: #10b981; }
.mq-stake-val.text-subgate { color: #6e7681; font-weight: 600; font-size: 9px; }
.mq-stake-val.text-dim { color: #6e7681; }
.mobile-quant-row .star-btn {
  min-height: 18px;
  height: 18px;
  padding: 0 2px;
  font-size: 13px;
  line-height: 1;
}
.mq-log-btn {
  width: 32px;
  min-height: 32px;
  height: 32px;
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #f1f5f9;
  font: 700 13.5px/1 var(--sans);
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: transform 0.08s ease, background-color 0.08s ease, border-color 0.08s ease;
  padding: 0;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.mq-log-btn:active {
  transform: scale(0.92);
  background: rgba(128, 198, 246, 0.28) !important;
  border-color: rgba(128, 198, 246, 0.6) !important;
  color: #10b981 !important;
}
.mq-log-btn.logged {
  background: rgba(128, 198, 246, 0.2);
  border-color: rgba(128, 198, 246, 0.4);
  color: #10b981;
}

/* ─── TRUE-SCALE QUANT BULLET GRAPH ─── */
.bullet-container {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
  max-width: 195px;
  margin-left: auto;
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
  user-select: none;
}
.bullet-top-readout {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 5px;
  font-size: 12px;
  line-height: 1.2;
}
.bullet-dim {
  font-size: 9px;
  font-weight: 700;
  color: #6e7681;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-right: 2px;
}
.bullet-bold {
  font-weight: 800;
  letter-spacing: -0.01em;
}
.bullet-bold.text-fair { color: #f8fafc; }
.bullet-bold.text-accent { color: #10b981; }
.bullet-svg {
  width: 100%;
  height: 13px;
  overflow: visible;
  display: block;
}
.bullet-bottom-sub {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 9.5px;
  color: #94a3b8;
  line-height: 1.1;
}
.bullet-bk {
  color: rgba(245, 158, 11, 0.9);
  font-weight: 600;
}
.td-bullet .bullet-top-readout {
  justify-content: center;
}
.td-bullet .bullet-bottom-sub {
  justify-content: center;
}

/* Distribution Sparklines (Fallback / Legacy) */
.model-dist-row {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 2px;
}
.dist-sparkline {
  display: inline-block;
  vertical-align: middle;
  overflow: visible;
  flex-shrink: 0;
}
.dist-fill {
  fill: rgba(128, 198, 246, 0.12);
  transition: fill 0.2s ease;
}
.dist-stroke {
  fill: none;
  stroke: rgba(128, 198, 246, 0.65);
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.dist-median-line {
  stroke: #10b981;
  stroke-width: 1.5;
  stroke-linecap: round;
}
.dist-book-line {
  stroke: var(--warn);
  stroke-width: 1.2;
}

/* Ambient Radial Glow for Top Edge Plays */
.slate-row.top-edge-play {
  background: radial-gradient(ellipse 75% 70% at 50% 50%, rgba(128, 198, 246, 0.08) 0%, rgba(128, 198, 246, 0.02) 65%, transparent 100%) !important;
  box-shadow: inset 0 0 24px rgba(128, 198, 246, 0.04);
}
.prop-card.top-edge-play {
  border-color: rgba(128, 198, 246, 0.4) !important;
  background: radial-gradient(circle at 85% 15%, rgba(128, 198, 246, 0.14) 0%, rgba(15, 23, 42, 0.85) 65%) !important;
  box-shadow: 0 4px 24px rgba(128, 198, 246, 0.09) !important;
}

/* Staggered Row & Card Motion */
@keyframes rowFadeUp {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.slate-row {
  animation: rowFadeUp 0.22s cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: calc(var(--row-index, 0) * 30ms);
}

/* Skeleton Loading States */
@keyframes pulseSkeleton {
  0%, 100% {
    opacity: 0.4;
    background-color: rgba(255, 255, 255, 0.05);
  }
  50% {
    opacity: 0.8;
    background-color: rgba(255, 255, 255, 0.12);
  }
}
.skeleton-block {
  display: inline-block;
  background: rgba(255, 255, 255, 0.07);
  border-radius: var(--radius-sm);
  animation: pulseSkeleton 1.4s ease-in-out infinite;
}
.skeleton-row td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
}
.skeleton-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 14px;
  display: flex;
  flex-direction: column;
}

.inspect-button {
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 0 12px;
  background: rgba(255, 255, 255, 0.04);
  color: var(--muted);
  font: 650 11.5px/1 var(--sans);
  cursor: pointer;
  transition: all 0.15s ease;
}
.inspect-button:hover { color: var(--text); border-color: var(--line-strong); background: rgba(255, 255, 255, 0.08); }
.empty-state { padding: 48px 20px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); color: var(--muted); text-align: center; }
.empty-state.nba-market-only { padding: 18px; text-align: left; }
.nba-market-head, .nba-market-quote, .nba-market-sides { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.nba-market-head strong { color: var(--text); font-size: 17px; }
.nba-market-head p, .nba-market-disclaimer { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.nba-market-head > span { color: var(--muted); border: 1px solid var(--line); border-radius: 7px; padding: 5px 8px; font: 700 10px var(--mono); }
.nba-market-disclaimer { margin: 10px 0 16px; }
.nba-market-list { display: grid; gap: 8px; max-height: 680px; overflow-y: auto; }
.nba-market-quote { padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: linear-gradient(135deg, #171a1f, #0b0d11); }
.nba-market-quote strong { display: block; color: var(--text); font-size: 13px; }
.nba-market-quote span { display: block; font-size: 11px; }
.nba-market-quote > div:first-child span { margin-top: 4px; }
.nba-market-sides span { min-width: 122px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; font-family: var(--mono); white-space: nowrap; }
.nba-market-sides b { float: right; margin-left: 8px; color: var(--text); }
.nba-market-browse { min-height: 44px; padding: 10px 16px; border: 1px solid var(--brand-accent); border-radius: 9px; background: rgba(128, 198, 246, 0.1); color: var(--brand-accent); font: 700 12px var(--sans); cursor: pointer; }
.nba-market-browse:hover { background: rgba(128, 198, 246, 0.18); }
.nba-market-browse:focus-visible { outline: 2px solid var(--brand-accent); outline-offset: 3px; }
.nba-market-view-table .nba-market-quote { display: grid; grid-template-columns: minmax(180px, 1fr) auto; border-radius: 6px; padding: 9px 12px; }
.nba-market-view-table .nba-market-sides span { min-width: 115px; padding: 5px 8px; }
.nba-market-view-cards .nba-market-list { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.nba-market-view-cards .nba-market-quote, .nba-market-view-compact-grid .nba-market-quote { align-items: stretch; flex-direction: column; }
.nba-market-view-cards .nba-market-sides, .nba-market-view-compact-grid .nba-market-sides { width: 100%; }
.nba-market-view-cards .nba-market-sides span, .nba-market-view-compact-grid .nba-market-sides span { flex: 1; min-width: 0; }
.nba-market-view-compact-grid .nba-market-list { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.nba-market-view-compact-grid .nba-market-quote { padding: 9px; }
.nba-market-view-compact-grid .nba-market-sides { gap: 5px; }
.nba-market-view-compact-grid .nba-market-sides span { padding: 5px; font-size: 10px; }
@media (max-width: 640px) { .nba-market-list { grid-template-columns: 1fr !important; } .nba-market-quote, .nba-market-view-table .nba-market-quote { display: flex; align-items: stretch; flex-direction: column; } .nba-market-sides span { flex: 1; min-width: 0; } }

/* ─── v222: PLAYER IDENTITY IN NBA MARKET-ONLY CARDS (merge repair) ───
   Headshot (pw-avatar, initials fallback) + matchup team crests on the browsed
   FanDuel reference lines. Quotes ship team:null, so the avatar's team badge
   rides the photo entry's team code and the crests are the game's away/home
   codes from the games file. (The home-edge preview no longer renders sample
   line cards since #88 — identity lives on the board; the dead home-edge
   avatar rules from v221 are pruned.) */
.nba-market-id { display: flex; align-items: center; gap: 10px; min-width: 0; }
.nba-market-id .pw-avatar { width: 42px; height: 42px; flex: 0 0 42px; }
.nba-market-id .pw-avatar .pw-avatar-initials { font-size: 12px; }
.nba-market-id-text { min-width: 0; }
.nba-market-id-text > span { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.nba-market-matchup, .nba-market-quote .nba-market-matchup { display: inline-flex; align-items: center; gap: 4px; flex-shrink: 0; }
.nba-market-matchup .team-crest { width: 18px; height: 18px; padding: 2px; }
.nba-market-vs, .nba-market-quote .nba-market-vs { display: inline; color: var(--muted); font-size: 10px; }
.nba-market-view-compact-grid .nba-market-id .pw-avatar { width: 34px; height: 34px; flex-basis: 34px; }
.nba-market-view-compact-grid .nba-market-id .pw-avatar .pw-avatar-initials { font-size: 10px; }

/* ─── DATA INTEGRITY FOOTER ─── */
.trust-line { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 12px; color: var(--faint); font-size: 11px; }
.trust-line > div { min-height: 48px; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.trust-line strong { color: var(--muted); margin-right: 5px; }
#clvStatus { cursor: pointer; transition: border-color 0.15s ease, background-color 0.15s ease, transform 0.08s ease; user-select: none; }
#clvStatus:hover { border-color: rgba(128, 198, 246, 0.45); background: rgba(128, 198, 246, 0.05); }
#clvStatus:active { transform: scale(0.995); }
#clvStatus:focus-visible { outline: 2px solid var(--brand-accent); outline-offset: 2px; }
.status-dot { width: 7px; height: 7px; display: inline-block; margin-right: 6px; border-radius: 50%; background: var(--faint); }


/* ─── MODAL DETAIL & CONTEXT-AWARE RESEARCH SHEET ─── */
.star-btn {
  background: none;
  border: none;
  color: var(--muted);
  font-size: 15px;
  line-height: 1;
  padding: 2px 4px;
  cursor: pointer;
  border-radius: var(--radius-sm);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s ease;
  flex-shrink: 0;
}
.star-btn:hover {
  color: var(--amber);
  transform: scale(1.15);
}
.star-btn.starred {
  color: var(--amber);
  text-shadow: 0 0 8px rgba(245, 158, 11, 0.4);
}
.star-modal-btn {
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 0 14px;
  background: var(--surface-2);
  color: var(--text);
  font: 650 12px/1 var(--sans);
  cursor: pointer;
  transition: all 0.15s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.star-modal-btn:hover {
  border-color: var(--amber);
  color: var(--amber);
}
.star-modal-btn.starred {
  border-color: rgba(245, 158, 11, 0.4);
  background: rgba(245, 158, 11, 0.12);
  color: var(--amber);
}

.detail-dialog {
  width: min(720px, calc(100% - 24px));
  max-height: min(880px, calc(100vh - 32px));
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-lg);
  padding: 0;
  box-shadow: var(--shadow-md), var(--edge-hi);
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--shadow);
  z-index: 120;
  overflow: hidden;
}
.dialog-shell {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: min(880px, calc(100vh - 32px));
  overflow: hidden;
  margin: 0;
}
.detail-dialog::backdrop {
  background: rgba(3, 7, 12, .8);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  z-index: 115;
}
.dialog-header {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--line);
  background: #090d16;
  z-index: 10;
}
.dialog-header h2 { margin: 4px 0 0; font-size: 20px; letter-spacing: -.03em; color: var(--text-primary); }
.detail-title-row { display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.detail-title-row .team-logo-badge { width: 28px; height: 28px; flex: 0 0 28px; border-radius: var(--radius-sm); }
#detailContent {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 16px 20px 24px;
}
.detail-hero { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.detail-insight-banner {
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface-2);
  font-size: 12px;
  line-height: 1.4;
  color: var(--text);
}
.detail-insight-banner strong { color: var(--accent); margin-right: 5px; }
.detail-stat { padding: 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface-2); }
.detail-stat span { color: var(--faint); font: 700 9px/1.2 var(--mono); text-transform: uppercase; }
.detail-stat strong { display: block; margin-top: 6px; font: 750 17px/1.1 var(--mono); font-variant-numeric: tabular-nums; color: var(--text-primary); }
.detail-stat-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 6px;
}
.detail-stat-badge {
  font: 700 9px/1.2 var(--mono);
  color: #80c6f6;
  background: rgba(128, 198, 246, 0.12);
  border: 1px solid rgba(128, 198, 246, 0.3);
  padding: 1px 5px;
  border-radius: var(--radius-sm);
  letter-spacing: 0.02em;
  white-space: nowrap;
}

/* ─── 2-COLUMN INSTITUTIONAL TERMINAL SPECIFICATION GRID ─── */
.spec-grid-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  background: #090d16;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 12px 14px;
  margin: 14px 0 6px;
  font-family: var(--mono);
}
.spec-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.spec-col-invalidation {
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  padding-right: 12px;
}
.spec-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  padding-bottom: 6px;
}
.spec-title {
  font: 750 11px/1.2 var(--sans);
  color: #f1f5f9;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.spec-tag {
  font: 700 9px/1.2 var(--mono);
  padding: 2px 5px;
  border-radius: var(--radius-sm);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}
.spec-tag.tag-dome {
  background: rgba(128, 198, 246, 0.14);
  border: 1px solid rgba(128, 198, 246, 0.35);
  color: #80c6f6;
}
.spec-tag.tag-wind {
  background: rgba(245, 158, 11, 0.14);
  border: 1px solid rgba(245, 158, 11, 0.35);
  color: #fbbf24;
}
.spec-tag.tag-model {
  background: rgba(128, 198, 246, 0.12);
  border: 1px solid rgba(128, 198, 246, 0.32);
  color: #80c6f6;
}
.spec-meta-list {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: 11px;
  line-height: 1.35;
}
.spec-meta-item {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}
.spec-k {
  color: #6e7681;
  font-weight: 600;
  white-space: nowrap;
}
.spec-v {
  color: #cbd5e1;
  text-align: right;
}
.spec-alert {
  font-size: 10.5px;
  line-height: 1.3;
  padding: 6px 8px;
  border-radius: var(--radius-sm);
  margin-top: 4px;
}
.spec-alert.alert-amber {
  background: rgba(245, 158, 11, 0.10);
  border: 1px solid rgba(245, 158, 11, 0.25);
  color: #fbbf24;
}
.spec-note {
  font: 400 11px/1.4 var(--sans);
  color: #94a3b8;
  margin-top: 4px;
  padding-top: 6px;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}
.detail-section { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.detail-section h3 { margin: 0 0 9px; font-size: 13px; font-weight: 700; }
.detail-section p { margin: 0; color: var(--muted); }
.detail-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px 14px; margin: 0; }
.detail-list div { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px solid var(--line); }
.detail-list dt { color: var(--faint); font-size: 12px; }
.detail-list dd { margin: 0; font-family: var(--mono); font-weight: 700; font-size: 12.5px; font-variant-numeric: tabular-nums; text-align: right; color: var(--text-primary); }
.warning-box { margin-top: 12px; padding: 11px; border: 1px solid rgba(245, 158, 11, 0.35); border-radius: var(--radius); background: var(--amber-bg); color: var(--text); }

.toast {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 150;
  max-width: min(440px, calc(100% - 40px));
  padding: 10px 16px;
  border: 1px solid rgba(128, 198, 246, 0.35);
  border-radius: var(--radius);
  background: rgba(9, 13, 22, 0.96);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.6), 0 0 20px rgba(128, 198, 246, 0.15);
  color: #f8fafc;
  font-family: var(--mono);
  font-size: 12px;
  pointer-events: auto;
  opacity: 0;
  transform: translateY(12px) scale(0.98);
  transition: opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.toast.visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.toast-content {
  display: flex;
  align-items: center;
  gap: 10px;
}
.toast-indicator {
  color: #80c6f6;
  font-size: 10px;
  animation: pulse-dot 1.2s infinite ease-in-out;
  flex-shrink: 0;
}
.toast-msg {
  font-weight: 600;
  letter-spacing: -0.01em;
  color: #f1f5f9;
  flex: 1;
  min-width: 0;
}
.toast-undo-btn {
  background: rgba(128, 198, 246, 0.18);
  border: 1px solid rgba(128, 198, 246, 0.5);
  border-radius: var(--radius-sm);
  color: #80c6f6;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 800;
  padding: 4px 10px;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  flex-shrink: 0;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  touch-action: manipulation;
  transition: all 0.15s ease;
}
.toast-undo-btn:hover, .toast-undo-btn:active {
  background: rgba(128, 198, 246, 0.35);
  border-color: #80c6f6;
  color: #ffffff;
  transform: scale(1.05);
}

@keyframes pulse-dot {
  0%, 100% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.2); }
}

@keyframes ledger-pulse {
  0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(128, 198, 246, 0.6); }
  50% { transform: scale(1.08); box-shadow: 0 0 16px 4px rgba(128, 198, 246, 0.4); border-color: rgba(128, 198, 246, 0.8); }
  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(128, 198, 246, 0); }
}
.ledger-pulse {
  animation: ledger-pulse 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ─── STICKY CONTEXT BAR ─── */
.sticky-context-bar {
  position: sticky;
  top: 0;
  z-index: 35;
  background: rgba(13, 17, 23, 0.94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
  display: none;
}
.sticky-context-bar.is-visible {
  display: block;
}
.sticky-context-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 12px;
  min-height: 36px;
  gap: 8px;
}
.sticky-pill-label {
  font: 650 11.5px/1.2 var(--sans);
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sticky-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.sticky-count-pill {
  font: 750 11px/1 var(--mono);
  color: var(--accent);
  background: rgba(128, 198, 246, 0.1);
  border: 1px solid rgba(128, 198, 246, 0.25);
  padding: 2px 7px;
  border-radius: var(--radius-pill);
  font-variant-numeric: tabular-nums;
}
.sticky-top-btn {
  background: transparent;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  color: var(--muted);
  font: 600 11px/1 var(--sans);
  padding: 3px 8px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.sticky-top-btn:hover { color: var(--text); border-color: var(--line-strong); }

/* ─── PORTFOLIO / LEDGER BUTTON ─── */
.portfolio-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 0 10px;
  background: rgba(128, 198, 246, 0.08);
  border: 1px solid rgba(128, 198, 246, 0.28);
  border-radius: var(--radius);
  color: var(--accent);
  font: 700 11.5px/1 var(--sans);
  cursor: pointer;
  transition: all 0.15s ease;
}
.portfolio-button:hover {
  background: rgba(128, 198, 246, 0.18);
  border-color: rgba(128, 198, 246, 0.5);
}
.portfolio-btn-text { font-weight: 700; }
.portfolio-count-badge {
  background: var(--accent);
  color: #0d1117;
  font: 800 10px/1 var(--mono);
  padding: 1px 5px;
  border-radius: var(--radius-pill);
  font-variant-numeric: tabular-nums;
}

/* ─── LOG BET BUTTON ─── */
.log-bet-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 6px 14px;
  background: rgba(128, 198, 246, 0.1);
  border: 1px solid rgba(128, 198, 246, 0.3);
  border-radius: var(--radius);
  color: var(--accent);
  font: 700 11.5px/1 var(--sans);
  cursor: pointer;
  transition: all 0.15s ease;
}
.log-bet-btn:hover {
  background: var(--accent);
  color: #0d1117;
}
.log-bet-btn.logged {
  background: rgba(255, 255, 255, 0.05);
  border-color: var(--line);
  color: var(--muted);
  cursor: default;
}

/* ─── FILTERS CONTAINER & MOBILE DRAWER ─── */
.filters-container { display: grid; gap: 8px; }
.search-row-mobile { display: flex; gap: 8px; align-items: flex-end; width: 100%; }
.search-row-mobile .search-control { flex: 1; }
.mobile-filter-btn {
  display: none;
  height: 38px;
  padding: 0 12px;
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--text);
  font: 650 11.5px/1 var(--sans);
  cursor: pointer;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  transition: all 0.15s ease;
}
.mobile-filter-btn:hover { background: var(--surface-3); border-color: var(--line-strong); }
.filter-count-badge {
  background: var(--accent);
  color: #0d1117;
  font: 800 10px/1 var(--mono);
  padding: 2px 6px;
  border-radius: var(--radius-pill);
  font-variant-numeric: tabular-nums;
}

/* ─── KEYBOARD SHORTCUTS HINT & FOCUS ─── */
.result-line-right { display: flex; align-items: center; gap: 14px; }
.kbd-hint { font: 600 10.5px/1 var(--mono); color: var(--muted); display: inline-flex; align-items: center; gap: 4px; }
.kbd {
  display: inline-block;
  padding: 2px 5px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  color: var(--text);
  font: 750 9.5px/1 var(--mono);
}
/* ─── HIGH-CONTRAST FOCUS RING FOR KEYBOARD-DRIVEN NAVIGATION (J / K) ─── */
tr.keyboard-focus,
tr.terminal-focused,
tr[data-focused="true"] {
  background: linear-gradient(90deg, rgba(128, 198, 246, 0.08) 0%, transparent 100%) !important;
  outline: none !important;
}
tr.keyboard-focus td:first-child,
tr.terminal-focused td:first-child,
tr[data-focused="true"] td:first-child {
  border-left: 2px solid #80c6f6 !important;
  box-shadow: inset 2px 0 0 0 #80c6f6 !important;
}
article.keyboard-focus,
article.terminal-focused,
article[data-focused="true"] {
  border-left: 2px solid #80c6f6 !important;
  box-shadow: inset 2px 0 0 0 #80c6f6 !important;
  background: linear-gradient(90deg, rgba(128, 198, 246, 0.08) 0%, rgba(13, 19, 32, 0.95) 100%) !important;
  outline: none !important;
}

/* ─── 80% CONFIDENCE INTERVAL STATISTICAL BOUNDARY TAG ─── */
.bullet-ci-wrap {
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.bullet-ci-tag {
  display: inline-block;
  padding: 1px 5px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-sm);
  font-family: var(--mono);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  color: #cbd5e1;
  font-weight: 600;
  letter-spacing: -0.01em;
}

/* ─── WHAT-IF SCENARIO SANDBOX ─── */
.scenario-box {
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 13px 14px;
  margin-top: 14px;
}
.scenario-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
}
.scenario-header h4 {
  font: 700 12px/1.2 var(--sans);
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
}
.scenario-reset-btn {
  background: none;
  border: none;
  color: var(--muted);
  font: 600 11px/1 var(--mono);
  cursor: pointer;
  padding: 2px 4px;
}
.scenario-reset-btn:hover { color: var(--accent); }
.scenario-slider-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-block: 8px;
}
.scenario-slider-row input[type="range"] {
  flex: 1;
  accent-color: var(--accent);
  cursor: pointer;
  height: 6px;
}
.scenario-val {
  font: 750 13px/1 var(--mono);
  color: var(--accent);
  min-width: 52px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.scenario-results {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}
.scenario-result-item {
  background: var(--surface-3);
  padding: 7px 10px;
  border-radius: var(--radius);
  text-align: right;
}
.scenario-result-item span {
  display: block;
  font: 600 9.5px/1.2 var(--mono);
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .04em;
}
.scenario-result-item strong {
  display: block;
  font: 750 14px/1.2 var(--mono);
  color: var(--text);
  margin-top: 3px;
  font-variant-numeric: tabular-nums;
}
.scenario-badge {
  display: inline-block;
  margin-top: 8px;
  font: 650 11px/1.3 var(--mono);
  padding: 4px 8px;
  border-radius: var(--radius-sm);
  background: rgba(128, 198, 246, 0.1);
  border: 1px solid rgba(128, 198, 246, 0.25);
  color: var(--accent);
}

/* ─── PORTFOLIO DIALOG & CLV SCORECARD ─── */
.portfolio-dialog { max-width: 760px; width: 100%; }
.portfolio-summary-bar {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 16px;
  padding: 12px;
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.portfolio-summary-stat span { display: block; font: 700 10px/1 var(--mono); color: var(--muted); text-transform: uppercase; }
.portfolio-summary-stat strong { display: block; font: 800 18px/1.2 var(--mono); color: var(--accent); margin-top: 4px; font-variant-numeric: tabular-nums; }
.portfolio-table-wrap { overflow-x: auto; width: 100%; border: 1px solid var(--line); border-radius: var(--radius); }
.portfolio-table { width: 100%; border-collapse: collapse; font: 12px/1.4 var(--sans); }
.portfolio-table th { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line); background: var(--surface-2); color: var(--muted); font: 700 10px/1 var(--mono); text-transform: uppercase; }
.portfolio-table th.num, .portfolio-table td.num { text-align: right; }
.portfolio-table td { padding: 9px 10px; border-bottom: 1px solid rgba(255, 255, 255, 0.04); font-variant-numeric: tabular-nums; }
.portfolio-empty { padding: 32px 16px; text-align: center; color: var(--muted); font-size: 13px; }
.portfolio-actions-bar {
  margin-top: 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.portfolio-actions-left {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.portfolio-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--text-primary);
  font: 700 11.5px/1 var(--mono);
  cursor: pointer;
  transition: all 0.15s ease;
}
.portfolio-action-btn:hover {
  background: var(--surface-3);
  border-color: var(--line-strong);
  color: var(--accent);
}
.portfolio-action-btn svg {
  width: 14px;
  height: 14px;
  stroke: currentColor;
}

/* ─── PROGRAMMABLE MARKET ALERTS (SNIPER ENGINE) ─── */
.pw-btn-sniper {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  position: relative;
  background: rgba(128, 198, 246, 0.08);
  border: 1px solid rgba(128, 198, 246, 0.25);
  color: #80c6f6;
  transition: all 0.15s ease;
}
.pw-btn-sniper:hover {
  background: rgba(128, 198, 246, 0.15);
  border-color: #80c6f6;
  color: #fff;
}
.sniper-icon-symbol {
  font-size: 13px;
}
.sniper-active-badge {
  padding: 1px 4px;
  background: #80c6f6;
  color: #0c1015;
  font-size: 8.5px;
  font-weight: 900;
  border-radius: var(--radius-sm);
  letter-spacing: 0.04em;
  font-family: var(--mono);
}
.chip-sniper-btn {
  border-color: rgba(128, 198, 246, 0.35) !important;
  color: #80c6f6 !important;
}
.sniper-mobile-dot {
  width: 6px;
  height: 6px;
  background: #80c6f6;
  border-radius: 50%;
  box-shadow: 0 0 6px #80c6f6;
  display: inline-block;
  margin-left: 2px;
}

.sniper-dialog {
  max-width: 620px;
  width: 100%;
}
.sniper-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 4px 0 10px 0;
}
.sniper-card {
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 14px;
}
.sniper-toggle-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.sniper-toggle-label {
  display: flex;
  flex-direction: column;
}
.sniper-toggle-title {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 800;
  color: #fff;
}
.sniper-toggle-sub {
  font-size: 11.5px;
  color: var(--muted);
  margin-top: 2px;
}
.sniper-switch-wrap {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
}
.sniper-switch-wrap input {
  opacity: 0;
  width: 0;
  height: 0;
}
.sniper-slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background-color: #334155;
  transition: .3s;
  border-radius: var(--radius-pill);
}
.sniper-slider:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background-color: #cbd5e1;
  transition: .3s;
  border-radius: 50%;
}
.sniper-switch-wrap input:checked + .sniper-slider {
  background-color: #80c6f6;
}
.sniper-switch-wrap input:checked + .sniper-slider:before {
  transform: translateX(20px);
  background-color: #0c1015;
}

.sniper-section-title {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #94a3b8;
  margin-bottom: 8px;
}
.sniper-stepper-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.sniper-edge-btn {
  padding: 6px 12px;
  background: var(--surface-3);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
  cursor: pointer;
  transition: all 0.15s ease;
}
.sniper-edge-btn:hover {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.2);
}
.sniper-edge-btn.active {
  background: rgba(128, 198, 246, 0.15);
  border-color: #80c6f6;
  color: #80c6f6;
  box-shadow: 0 0 8px rgba(128, 198, 246, 0.2);
}
.sniper-checkbox-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  font-size: 12px;
  color: var(--text-primary);
  cursor: pointer;
}
.sniper-checkbox-row input {
  accent-color: #80c6f6;
  width: 16px;
  height: 16px;
}
.sniper-webhook-input {
  width: 100%;
  padding: 8px 10px;
  background: var(--surface-3);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: #fff;
  font-family: var(--mono);
  font-size: 11.5px;
  box-sizing: border-box;
}
.sniper-webhook-input:focus {
  outline: none;
  border-color: #80c6f6;
}
.sniper-webhook-row {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}
.sniper-test-btn {
  padding: 7px 12px;
  background: var(--surface-3);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  cursor: pointer;
  white-space: nowrap;
}
.sniper-test-btn:hover {
  border-color: #80c6f6;
  color: #80c6f6;
}
.sniper-feed-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 150px;
  overflow-y: auto;
  margin-top: 6px;
}
.sniper-feed-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 10px;
  background: var(--surface-3);
  border-radius: var(--radius-sm);
  font-size: 11.5px;
  font-family: var(--mono);
}
.sniper-feed-item .sniped-player {
  font-weight: 700;
  color: #fff;
}
.sniper-feed-item .sniped-edge {
  color: #80c6f6;
  font-weight: 800;
}
.sniper-feed-item .sniped-time {
  color: var(--muted);
  font-size: 10px;
}

.mobile-bottom-nav {
  display: none;
}

/* ─── RESPONSIVE BREAKPOINTS ─── */
@media (max-width: 920px) {
  .header-main { gap: 12px; }
  .policy-chip { display: none; }
  .filters { grid-template-columns: 1fr 1fr; }
  .search-control { grid-column: 1 / -1; }
  .trust-line { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  .board-heading { display: none !important; }
  .policy-chip { display: none !important; }
  .desktop-kbd-legend { display: none !important; }
  .view-switch { display: none !important; }

  /* Hard-enforce Mobile Quant Card View over Desktop Table */
  #tableView, .desktop-table-container, .table-scroll {
    display: none !important;
  }
  #cardView {
    display: grid !important;
  }

  .quant-command-bar {
    height: auto;
    padding: 7px 10px;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  .command-bar-left {
    flex-wrap: wrap;
    gap: 6px;
  }
  .command-search-wrap, .pw-search-wrap {
    order: -1 !important;
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .faceted-pills {
    width: 100%;
    overflow-x: auto;
  }
  .command-bar-right {
    justify-content: space-between;
    gap: 8px;
  }

  /* Mobile Filters Drawer Trigger & Secondary Facets Reflow */
  .pw-filter-toggle-btn {
    display: inline-flex !important;
  }
  #collapsibleFilters.pw-facets {
    display: none;
    width: 100%;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 6px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
  }
  #collapsibleFilters.pw-facets.is-open {
    display: flex !important;
  }

  /* Horizontal Game-Pill Strip gets unobstructed touch-swipe priority */
  .pw-game-strip {
    flex: 1 1 100% !important;
    width: 100% !important;
    order: 2 !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }

  /* Bottom sheet for modals on mobile */
  .dialog-sheet-handle {
    display: block;
    width: 40px;
    height: 4px;
    background: rgba(255, 255, 255, 0.35);
    border-radius: var(--radius-pill);
    margin: 8px auto 6px auto;
    flex-shrink: 0;
  }
  [data-theme="light"] .dialog-sheet-handle {
    background: rgba(0, 0, 0, 0.25);
  }
  .detail-dialog {
    width: 100% !important;
    max-width: 100% !important;
    max-height: 90vh !important;
    margin: 0 !important;
    margin-bottom: 0 !important;
    border-bottom: none !important;
    border-top-left-radius: 20px !important;
    border-top-right-radius: 20px !important;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 120 !important;
  }
  .detail-dialog::backdrop {
    z-index: 115 !important;
  }
  .detail-two-col {
    grid-template-columns: 1fr;
  }
  .spec-grid-card {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .spec-col-invalidation {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    padding-right: 0;
    padding-bottom: 10px;
  }
}

@media (max-width: 680px) {
  .shell { width: min(100% - 16px, 1380px); }
  .header-main { min-height: 50px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
  .brand { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; }
  .brand-word { display: inline-block !important; font-size: 15px; font-weight: 800; white-space: nowrap; }
  .brand-mark { width: 26px; height: 26px; }
  .header-context { display: flex; align-items: center; gap: 6px; flex: 1; min-width: 0; justify-content: flex-end; }
  .compact-control { width: auto; max-width: 145px; font-size: 11.5px; }
  .header-actions .icon-button:first-child { display: none; }

  /* Hide top desktop buttons and ticker/sticky chrome on mobile */
  .clv-button, .portfolio-button { display: none !important; }
  .ticker { display: none !important; }
  .sticky-context-bar { display: none !important; }

  body {
    padding-bottom: calc(64px + env(safe-area-inset-bottom, 16px));
  }

  /* Fixed Bottom Navigation Bar */
  .mobile-bottom-nav {
    display: flex;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 90;
    height: calc(56px + env(safe-area-inset-bottom, 0px));
    padding-bottom: env(safe-area-inset-bottom, 0px);
    background: rgba(37, 42, 52, 0.96) !important;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
    justify-content: space-around;
    align-items: center;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.45);
  }
  .bottom-nav-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    height: 100%;
    background: none;
    border: none;
    color: var(--muted);
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    position: relative;
    padding: 6px 0;
    transition: color 0.15s ease;
  }
  .bottom-nav-item:active,
  .bottom-nav-item.active {
    color: var(--accent);
  }
  .bottom-nav-item .prop-icon {
    width: 20px;
    height: 20px;
    stroke: currentColor;
  }
  .bottom-nav-badge {
    position: absolute;
    top: 5px;
    right: calc(50% - 20px);
    background: var(--accent);
    color: #04130d;
    font-size: 10.5px;
    font-weight: 800;
    border-radius: var(--radius-pill);
    min-width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    box-sizing: border-box;
  }

  /* Mobile Availability Strip & Single Intent Row */
  .ticker-desktop-text { display: none !important; }
  .ticker-mobile-pill { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; color: var(--amber); }
  .injury-line .eyebrow { display: none !important; }
  .prime-chips { display: none !important; }

  /* One-Line Filter and Intent Scrolling */
  .filter-panel { padding: 8px 10px; margin-bottom: 8px; }
  .intent-chips {
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 2px;
  }
  .intent-chips::-webkit-scrollbar { display: none; }
  .mobile-filter-btn { display: inline-flex; }
  .collapsible-filters { display: none; grid-template-columns: 1fr 1fr; gap: 8px; padding-top: 8px; border-top: 1px solid var(--line); }
  .collapsible-filters.is-open { display: grid; }
  .kbd-hint { display: none; }

  /* Mobile Single-Column Order-Book List */
  .table-scroll { display: none; }
  .card-grid { grid-template-columns: 1fr !important; gap: 14px !important; border: none !important; border-radius: 0 !important; overflow: visible !important; background: transparent !important; box-shadow: none !important; }
  .prop-card { padding: 10px 12px; }
  .inspect-button { min-height: 44px; min-width: 72px; padding: 10px 14px; font-size: 13px; }
  .log-bet-btn { min-height: 44px; padding: 10px 14px; font-size: 13px; }

  /* Context-Aware Mobile Bottom Research Sheet */
  .detail-dialog {
    width: 100% !important;
    max-width: 100% !important;
    max-height: 88vh !important;
    margin-bottom: 0 !important;
    border-bottom: none !important;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 120 !important;
  }
  .detail-dialog::backdrop {
    z-index: 115 !important;
  }

  .detail-hero { grid-template-columns: 1fr; }
  .detail-list { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
  .shell { width: calc(100% - 12px); }
  .header-main { gap: 6px; }
  .brand-word { font-size: 13.5px; }
  .brand-mark { width: 24px; height: 24px; }
  .compact-control { font-size: 11px; padding: 4px 6px; max-width: 105px; }
  .header-actions { gap: 4px; }
  .collapsible-filters { grid-template-columns: 1fr; }
  .search-control { grid-column: auto; }
  .slate-mode-toggle { width: 100%; display: flex; }
  .mode-pill { flex: 1; justify-content: center; padding-inline: 6px; font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* ─── LIGHT MODE ELEVATIONS & CONTRAST REFINEMENTS ─── */
[data-theme="light"] .site-header {
  background: rgba(248, 250, 252, 0.95);
  border-bottom: 1px solid var(--border-subtle);
}
[data-theme="light"] .sticky-context-bar {
  background: rgba(248, 250, 252, 0.96);
  border-bottom: 1px solid var(--border-subtle);
}
[data-theme="light"] .prop-card {
  border: 1px solid var(--border-subtle);
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.08), 0 1px 2px -1px rgba(0, 0, 0, 0.06);
  background: var(--bg-card);
}
[data-theme="light"] .card-number {
  background: var(--bg-data-cell);
  border: 1px solid var(--border-subtle);
}
[data-theme="light"] .detail-dialog {
  border: 1px solid var(--border-subtle);
  box-shadow: 0 20px 45px -10px rgba(15, 23, 42, 0.18);
  background: var(--bg-card);
}
[data-theme="light"] .dialog-header {
  background: var(--bg-card);
  border-bottom: 1px solid var(--border-subtle);
}
[data-theme="light"] .detail-stat {
  background: var(--bg-data-cell);
  border: 1px solid var(--border-subtle);
}
[data-theme="light"] .detail-insight-banner {
  background: var(--bg-data-cell);
  border: 1px solid var(--border-subtle);
}
[data-theme="light"] .filter-panel {
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.06);
}
[data-theme="light"] .edge-badge,
[data-theme="light"] .edge-badge-top,
[data-theme="light"] .stat-pill.edge-pill,
[data-theme="light"] .detail-stat.favorable {
  background: #dcfce7 !important;
  color: #166534 !important;
  border-color: #bbf7d0 !important;
}
[data-theme="light"] .edge-badge .prop-icon,
[data-theme="light"] .edge-badge-top .prop-icon,
[data-theme="light"] .stat-pill.edge-pill .prop-icon {
  color: #166534 !important;
}
[data-theme="light"] .edge-badge.unverified,
[data-theme="light"] .stat-pill.watch-pill,
[data-theme="light"] .detail-stat.caution {
  background: #fef3c7 !important;
  color: #92400e !important;
  border-color: #fde68a !important;
}
[data-theme="light"] .edge-badge.unverified .prop-icon,
[data-theme="light"] .stat-pill.watch-pill .prop-icon {
  color: #92400e !important;
}
[data-theme="light"] .status-badge-inline {
  background: #f1f5f9;
  border-color: #dce3ec;
  color: #475569;
}
[data-theme="light"] .view-switch {
  background: #f1f5f9;
  border-color: #dce3ec;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
}
[data-theme="light"] .view-switch button.active {
  background: #ffffff;
  color: #0f172a;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}
[data-theme="light"] .mode-pill.active {
  background: #ffffff;
  color: #0f172a;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}
[data-theme="light"] .slate-table thead th {
  background: #f1f5f9;
  border-bottom: 1px solid var(--border-subtle);
  color: #475569;
}
[data-theme="light"] .slate-table tbody tr:hover {
  background: #f8fafc;
}

/* ─── VENUE / ENVIRONMENTAL FLAGS ─── */
.venue-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 1.5px 5.5px;
  border-radius: var(--radius-sm);
  font: 600 9.5px/1 var(--mono);
  margin-left: 5px;
  vertical-align: 1px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-2);
  color: var(--text-muted);
}
.venue-badge.wind {
  color: #ea580c;
  border-color: rgba(234, 88, 12, 0.28);
  background: rgba(234, 88, 12, 0.08);
  font-weight: 700;
}
[data-theme="light"] .venue-badge.wind {
  color: #c2410c;
  border-color: #fed7aa;
  background: #fff7ed;
}
.venue-badge.dome {
  color: var(--text-secondary);
}

/* ─── KELLY CALCULATOR IN INSPECT MODAL ─── */
.kelly-calc-box {
  background: var(--surface-2);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius);
  padding: 12px 14px;
  margin-top: 14px;
}
.kelly-calc-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.kelly-calc-header h4 {
  margin: 0;
  font: 700 12px/1.2 var(--sans);
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 6px;
}
.kelly-calc-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.kelly-input-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
  background: var(--surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius);
  padding: 4px 8px;
}
.kelly-input-wrap span {
  font: 700 12px/1 var(--mono);
  color: var(--text-muted);
}
.kelly-input-wrap input {
  width: 90px;
  border: none;
  background: transparent;
  color: var(--text-primary);
  font: 700 13px/1 var(--mono);
  font-variant-numeric: tabular-nums;
  outline: none;
}
.kelly-result-card {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.kelly-stake-amt {
  font: 800 17px/1 var(--mono);
  color: var(--accent);
  font-variant-numeric: tabular-nums;
}
.kelly-stake-pct {
  font: 650 11.5px/1 var(--mono);
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}
.badge-gated {
  font: 750 10px/1 var(--mono);
  padding: 2.5px 7px;
  border-radius: var(--radius-sm);
  background: rgba(245, 158, 11, 0.14);
  border: 1px solid rgba(245, 158, 11, 0.35);
  color: #fbbf24;
  text-transform: uppercase;
}
.badge-overridden {
  font: 750 10px/1 var(--mono);
  padding: 2.5px 7px;
  border-radius: var(--radius-sm);
  background: rgba(128, 198, 246, 0.14);
  border: 1px solid rgba(128, 198, 246, 0.35);
  color: #80c6f6;
  text-transform: uppercase;
}
.override-gate-btn {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--radius-sm);
  color: var(--muted);
  font: 700 10px/1 var(--mono);
  padding: 3px 8px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.override-gate-btn:hover {
  color: var(--text);
  border-color: rgba(255, 255, 255, 0.35);
}
.override-gate-btn.active {
  background: rgba(128, 198, 246, 0.15);
  border-color: rgba(128, 198, 246, 0.4);
  color: #80c6f6;
}

/* ─── MODAL HEADER & HERO SIDE PILLS ─── */
.detail-side-badge {
  font: 800 10px/1 var(--mono);
  text-transform: uppercase;
  padding: 2px 6px;
  border-radius: var(--radius-sm);
  letter-spacing: 0.04em;
}
.detail-side-badge.badge-under {
  background: rgba(128, 198, 246, 0.15);
  border: 1px solid rgba(128, 198, 246, 0.35);
  color: #80c6f6;
}
.detail-side-badge.badge-over {
  background: rgba(128, 198, 246, 0.15);
  border: 1px solid rgba(128, 198, 246, 0.35);
  color: #80c6f6;
}
.hero-side-pill {
  display: inline-block;
  font: 800 10px/1 var(--mono);
  padding: 2px 5px;
  border-radius: var(--radius-sm);
  margin-right: 4px;
  vertical-align: middle;
}
.hero-side-pill.pill-under {
  background: rgba(128, 198, 246, 0.2);
  color: #80c6f6;
}
.hero-side-pill.pill-over {
  background: rgba(128, 198, 246, 0.2);
  color: #80c6f6;
}
.detail-sub-bar {
  display: flex;
  align-items: stretch;
  gap: 10px;
  margin-top: 10px;
}
.detail-sub-bar .detail-insight-banner {
  flex: 1;
  margin-top: 0;
}
.detail-action-buttons {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

/* ─── ANNOTATED HURDLE & PRICE DISCOVERY RULER ─── */
.quant-ruler-card {
  background: #0b101b;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 13px 15px;
  margin-top: 14px;
  font-family: var(--mono);
  user-select: none;
}
.quant-ruler-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}
.quant-ruler-title {
  font: 750 11px/1 var(--sans);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #cbd5e1;
}
.quant-ruler-delta {
  font: 750 11px/1 var(--mono);
  font-variant-numeric: tabular-nums;
}
.quant-ruler-track-wrap {
  position: relative;
  width: 100%;
  height: 68px;
  margin: 10px 0 8px;
}
.quant-ruler-svg {
  width: 100%;
  height: 100%;
  overflow: visible;
  display: block;
}
.ruler-marker {
  position: absolute;
  top: 6px;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  pointer-events: none;
  z-index: 2;
}

/* Stagger OFFER above bar when crowded */
.ruler-marker.marker-stagger-top {
  top: 2px;
}
.ruler-marker.marker-stagger-top .marker-lbl {
  order: 1;
  position: relative;
  top: -8px;
  background: rgba(255, 255, 255, 0.22);
}
.ruler-marker.marker-stagger-top .marker-dot {
  order: 3;
  margin-top: 2px;
}
.ruler-marker.marker-stagger-top .marker-val {
  order: 2;
  position: relative;
  top: -6px;
  margin-top: 0;
  font-size: 11px;
}

/* Stagger HURDLE below bar when crowded */
.ruler-marker.marker-stagger-bottom {
  top: 24px;
}
.ruler-marker.marker-stagger-bottom .marker-dot {
  order: 1;
  margin-top: 0;
}
.ruler-marker.marker-stagger-bottom .marker-lbl {
  order: 2;
  position: relative;
  top: 5px;
}
.ruler-marker.marker-stagger-bottom .marker-val {
  order: 3;
  position: relative;
  top: 7px;
  margin-top: 2px;
  font-size: 11px;
}
.marker-lbl {
  font: 750 9px/1 var(--mono);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.marker-lbl.lbl-offer {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.14);
  padding: 1px 4px;
  border-radius: var(--radius-sm);
  font-weight: 800;
}
.marker-lbl.lbl-hurdle {
  color: #fbbf24;
  font-weight: 750;
}
.marker-lbl.lbl-fair {
  color: #80c6f6;
  font-weight: 800;
}
.marker-tick {
  width: 1px;
  height: 10px;
  background: #6e7681;
  margin-top: 2px;
}
.marker-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin-top: 2px;
  border: 2px solid #0b101b;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12);
}
.dot-offer { background: #ffffff; }
.dot-hurdle { background: #fbbf24; }
.dot-fair { background: #80c6f6; }
.marker-val {
  font: 750 10.5px/1 var(--mono);
  font-variant-numeric: tabular-nums;
  margin-top: 4px;
  white-space: nowrap;
}
.val-open { color: #6e7681; font-size: 10px; }
.val-offer { color: #ffffff; font-weight: 800; }
.val-hurdle { color: #fbbf24; font-weight: 750; }
.val-fair { color: #80c6f6; font-weight: 800; }
.quant-ruler-copy {
  font: 400 11.5px/1.4 var(--sans);
  color: #94a3b8;
  margin: 6px 0 0;
}

/* ─── TEAMMATE TARGET RIPPLE BAR ─── */
.teammate-ripple-bar {
  margin-top: 10px;
  padding: 8px 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px dashed rgba(255, 255, 255, 0.12);
  border-radius: var(--radius);
  font: 650 11px/1.4 var(--mono);
  color: #94a3b8;
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}
.teammate-ripple-bar.ripple-active {
  background: rgba(128, 198, 246, 0.08);
  border-color: rgba(128, 198, 246, 0.35);
  border-style: solid;
  color: #f1f5f9;
}
.teammate-ripple-bar.ripple-caution {
  background: rgba(245, 158, 11, 0.08);
  border-color: rgba(245, 158, 11, 0.35);
  border-style: solid;
  color: #f1f5f9;
}
.ripple-lead {
  font-weight: 750;
  color: #f8fafc;
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.ripple-text {
  font-variant-numeric: tabular-nums;
}

/* ─── 2-COLUMN DENSE QUANT SPEC GRID ─── */
.detail-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 14px;
}
@media (max-width: 640px) {
  .detail-two-col {
    grid-template-columns: 1fr;
  }
}
.detail-col {
  display: flex;
  flex-direction: column;
}
.quant-card {
  background: #0b101b;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.quant-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  padding-bottom: 8px;
}
.quant-card-title {
  font: 750 11px/1.2 var(--sans);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #cbd5e1;
}
.quant-card-sub {
  font: 650 10px/1 var(--mono);
  color: var(--muted);
}

/* ─── OPPORTUNITY TELEMETRY MICRO-BARS ─── */
.telemetry-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.telemetry-cell {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.telemetry-cell-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 11.5px;
}
.telemetry-label {
  color: #94a3b8;
  font-size: 11px;
}
.telemetry-vals {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-family: var(--mono);
}
.telemetry-benchmark {
  font-size: 9.5px;
  color: #6e7681;
}
.telemetry-value {
  font-size: 12px;
  font-weight: 750;
  color: #f1f5f9;
  font-variant-numeric: tabular-nums;
}
.telemetry-bar-track {
  width: 100%;
  height: 3px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: var(--radius-pill);
  overflow: hidden;
}
.telemetry-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, rgba(128, 198, 246, 0.45), #80c6f6);
  border-radius: var(--radius-pill);
  transition: width 0.25s ease;
}

/* ─── PROBABILITY BRIDGE & RECEIPT COPY PILL ─── */
.receipt-copy-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-sm);
  padding: 2px 7px;
  color: #cbd5e1;
  font: 650 10.5px/1 var(--mono);
  cursor: pointer;
  transition: all 0.15s ease;
}
.receipt-copy-pill:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.25);
  color: #ffffff;
}
.receipt-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #10b981;
  flex-shrink: 0;
}
.receipt-hash {
  color: #cbd5e1;
}
.receipt-copy-icon {
  font-size: 10px;
  color: #6e7681;
}
.bridge-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bridge-legend {
  display: flex;
  justify-content: space-between;
  font: 650 10px/1.2 var(--mono);
  color: #94a3b8;
  font-variant-numeric: tabular-nums;
  align-items: baseline;
}
.legend-mkt {
  color: #94a3b8;
}
.legend-mkt .val-mkt {
  color: #cbd5e1;
  font-weight: 700;
}
.legend-vig {
  color: #d97706;
}
.legend-vig .val-vig {
  color: #f59e0b;
  font-weight: 750;
}
.legend-model {
  color: #80c6f6;
}
.legend-model .val-model {
  color: #80c6f6;
  font-weight: 800;
  font-size: 11px;
  text-shadow: 0 0 8px rgba(128, 198, 246, 0.28);
}
.bridge-track {
  position: relative;
  width: 100%;
  height: 14px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: var(--radius-sm);
  overflow: hidden;
  margin: 2px 0;
}
.bridge-seg-mkt {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  background: rgba(100, 116, 139, 0.45);
  border-right: 1px solid rgba(255, 255, 255, 0.4);
}
.bridge-seg-vig {
  position: absolute;
  top: 0;
  height: 100%;
  background: rgba(245, 158, 11, 0.35);
  border-right: 1px solid #fbbf24;
}
.bridge-seg-alpha {
  position: absolute;
  top: 0;
  height: 100%;
  background: rgba(128, 198, 246, 0.45);
  border-right: 2px solid #80c6f6;
}
.bridge-footer {
  display: flex;
  justify-content: space-between;
  font: 650 10.5px/1.2 var(--mono);
  font-variant-numeric: tabular-nums;
}
.specs-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px 10px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  font: 10.5px/1.3 var(--mono);
  color: #94a3b8;
}
.specs-grid span {
  color: #6e7681;
}
.specs-grid b {
  color: #dce3ec;
  font-weight: 700;
}

/* ─── INLINE EXECUTION TICKET (CLV LEDGER) ─── */
.execution-ticket-box {
  margin-top: 14px;
  padding: 12px 14px;
  background: #0b101b;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
}
.ticket-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}
.ticket-title {
  font: 750 11.5px/1 var(--sans);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #cbd5e1;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.ticket-status {
  font: 650 10.5px/1 var(--mono);
}
.ticket-fields-row {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.ticket-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ticket-lbl {
  font: 700 9.5px/1 var(--mono);
  text-transform: uppercase;
  color: #6e7681;
  letter-spacing: 0.04em;
}
.ticket-input {
  background: #060911;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-sm);
  color: #f1f5f9;
  font: 750 12.5px/1 var(--mono);
  padding: 6px 8px;
  width: 72px;
  font-variant-numeric: tabular-nums;
  outline: none;
}
.ticket-input:focus {
  border-color: var(--accent);
}
.ticket-side-group {
  display: inline-flex;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-sm);
  overflow: hidden;
  height: 30px;
}
.side-toggle-btn {
  background: transparent;
  border: none;
  color: #6e7681;
  font: 800 12px/1 var(--mono);
  width: 30px;
  height: 100%;
  cursor: pointer;
  transition: all 0.15s ease;
}
.side-toggle-btn.side-o.active {
  background: rgba(128, 198, 246, 0.25);
  color: #80c6f6;
}
.side-toggle-btn.side-u.active {
  background: rgba(128, 198, 246, 0.25);
  color: #80c6f6;
}
.ticket-confirm-btn {
  flex: 1;
  min-width: 110px;
  height: 30px;
  background: var(--accent);
  color: #060911;
  border: none;
  border-radius: var(--radius-sm);
  font: 750 11.5px/1 var(--mono);
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
  padding: 0 10px;
}
.ticket-confirm-btn:hover {
  filter: brightness(1.1);
}
.ticket-confirm-btn.logged {
  background: rgba(128, 198, 246, 0.18);
  border: 1px solid rgba(128, 198, 246, 0.4);
  color: #80c6f6;
}

/* ─── CLV BUTTON & PUBLIC LEDGER MODAL ─── */
.clv-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 0 10px;
  background: rgba(128, 198, 246, 0.08);
  border: 1px solid rgba(128, 198, 246, 0.3);
  border-radius: var(--radius);
  color: #80c6f6;
  font: 700 11.5px/1 var(--sans);
  cursor: pointer;
  transition: all 0.15s ease;
}
.clv-button:hover {
  background: rgba(128, 198, 246, 0.18);
  border-color: rgba(128, 198, 246, 0.55);
}
[data-theme="light"] .clv-button {
  background: #f0f9ff;
  border-color: #80c6f6;
  color: #80c6f6;
}
[data-theme="light"] .portfolio-button {
  background: #f0fdf4;
  border-color: #bbf7d0;
  color: #16a34a;
}
[data-theme="light"] .quant-ruler-card,
[data-theme="light"] .quant-card,
[data-theme="light"] .execution-ticket-box {
  background: var(--bg-data-cell);
  border-color: var(--border-subtle);
}
[data-theme="light"] .quant-ruler-title,
[data-theme="light"] .quant-card-title,
[data-theme="light"] .ticket-title {
  color: var(--text-primary);
}
[data-theme="light"] .telemetry-value,
[data-theme="light"] .specs-grid b {
  color: var(--text-primary);
}
[data-theme="light"] .ticket-input {
  background: #ffffff;
  border-color: var(--border-subtle);
  color: var(--text-primary);
}
[data-theme="light"] .ticket-lbl {
  color: var(--text-muted);
}
[data-theme="light"] .receipt-copy-pill {
  background: #f1f5f9;
  border-color: #cbd5e1;
  color: #334155;
}
[data-theme="light"] .receipt-hash {
  color: #475569;
}
.clv-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-bottom: 14px;
}
.clv-kpi-card {
  background: var(--surface-2);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius);
  padding: 10px 12px;
  text-align: right;
}
.clv-kpi-card span {
  display: block;
  font: 600 9.5px/1.2 var(--mono);
  color: var(--text-muted);
  text-transform: uppercase;
}
.clv-kpi-card strong {
  display: block;
  margin-top: 4px;
  font: 800 16px/1.1 var(--mono);
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
}
.clv-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius);
  max-height: 420px;
}
.clv-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.clv-table th {
  background: var(--surface-2);
  padding: 8px 10px;
  font: 700 10px/1.2 var(--mono);
  text-transform: uppercase;
  color: var(--text-muted);
  text-align: left;
  border-bottom: 1px solid var(--border-subtle);
  position: sticky;
  top: 0;
  z-index: 1;
}
.clv-table td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--border-subtle);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.clv-status-beat {
  color: #16a34a;
  background: rgba(22, 163, 74, 0.12);
  border: 1px solid rgba(22, 163, 74, 0.3);
  padding: 2px 6px;
  border-radius: var(--radius-sm);
  font: 750 10px/1 var(--mono);
}
.clv-status-push {
  color: var(--text-muted);
  background: var(--surface-3);
  border: 1px solid var(--border-subtle);
  padding: 2px 6px;
  border-radius: var(--radius-sm);
  font: 700 10px/1 var(--mono);
}
.clv-status-faded {
  color: var(--text-muted);
  font: 600 10px/1 var(--mono);
}

/* ─── INSTITUTIONAL CLV AUDIT REPORT MODAL ─── */
.clv-modal-shell {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.clv-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
@media (max-width: 640px) {
  .clv-kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.clv-kpi-box {
  background: #090d16;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-variant-numeric: tabular-nums;
}
.clv-kpi-lbl {
  font-size: 10px;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 600;
}
.clv-kpi-val {
  font-size: 18px;
  font-weight: 800;
  line-height: 1.1;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
.clv-kpi-yards {
  font-size: 12px;
  color: #cbd5e1;
  font-weight: 600;
}
.clv-kpi-sub {
  font-size: 10px;
  color: #6e7681;
}
.text-volt {
  color: var(--brand-accent-bright) !important;
}
.clv-table-scroll {
  overflow-y: auto;
  max-height: 380px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  background: #070a12;
}
.clv-audit-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11.5px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-variant-numeric: tabular-nums;
  text-align: left;
}
.clv-audit-table th {
  background: #0b101b;
  padding: 8px 12px;
  font-size: 10px;
  text-transform: uppercase;
  color: #94a3b8;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  position: sticky;
  top: 0;
  z-index: 2;
  font-weight: 700;
}
.clv-audit-table td {
  padding: 8px 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  vertical-align: middle;
}
.clv-player-cell {
  display: flex;
  align-items: center;
  gap: 8px;
}
.clv-player-info {
  display: flex;
  flex-direction: column;
}
.clv-player-name {
  font-weight: 700;
  color: #f8fafc;
  font-family: inherit;
}
.clv-receipt-id {
  font-size: 9.5px;
  color: #6e7681;
}
.clv-grade-cell {
  display: flex;
  align-items: center;
  gap: 6px;
}
.clv-pill {
  padding: 2px 6px;
  border-radius: var(--radius-sm);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.clv-pill-win {
  background: rgba(128, 198, 246, 0.15);
  border: 1px solid rgba(128, 198, 246, 0.4);
  color: var(--brand-accent-bright);
}
.clv-pill-loss {
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid rgba(239, 68, 68, 0.35);
  color: #f87171;
}
.clv-pill-push {
  background: rgba(148, 163, 184, 0.15);
  border: 1px solid rgba(148, 163, 184, 0.3);
  color: #cbd5e1;
}
.clv-pill-pending {
  background: rgba(255, 255, 255, 0.05);
  color: #94a3b8;
}
.clv-root-tag {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: var(--radius-sm);
  background: rgba(128, 198, 246, 0.12);
  border: 1px solid rgba(128, 198, 246, 0.35);
  color: var(--brand-accent-bright);
  font-size: 10.5px;
  font-weight: 600;
}
.clv-muted {
  color: #6e7681;
  font-size: 11px;
}

/* ─── LIGHT THEME OVERRIDES FOR NEW COMPONENTS ─── */
[data-theme="light"] .team-crest {
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12);
}
[data-theme="light"] .matchup-teams-text {
  color: #334155;
}
[data-theme="light"] .live-polling-widget {
  background: #f1f5f9;
  border-color: #cbd5e1;
  color: #475569;
}
[data-theme="light"] .live-polling-widget:hover {
  background: #dce3ec;
  border-color: #94a3b8;
  color: #0f172a;
}
[data-theme="light"] .polling-refresh-btn {
  color: #6e7681;
}
[data-theme="light"] .polling-refresh-btn:hover {
  color: #16a34a;
}
[data-theme="light"] .mobile-quant-row {
  background: #ffffff;
  border-bottom: 1px solid #dce3ec;
}
[data-theme="light"] .mobile-quant-row:hover,
[data-theme="light"] .mobile-quant-row:active {
  background: #f8fafc;
}
[data-theme="light"] .mobile-quant-row.top-edge-play {
  background: radial-gradient(circle at 90% 20%, rgba(22, 163, 74, 0.08) 0%, #ffffff 70%);
}
[data-theme="light"] .mq-player-name {
  color: #0f172a;
}
[data-theme="light"] .mq-book-val,
[data-theme="light"] .mq-model-nums b:not(.text-accent) {
  color: #0f172a;
}
[data-theme="light"] .mq-sub-row {
  color: #6e7681;
}
[data-theme="light"] .mq-sep {
  color: #cbd5e1;
}
[data-theme="light"] .mq-col-book,
[data-theme="light"] .mq-col-model {
  border-right-color: #dce3ec;
}
[data-theme="light"] .mq-pos-badge {
  background: #f1f5f9;
  color: #475569;
}

/* ─── MOBILE REDESIGN (Header Collapse, Settings Sheet, Chip Strip, Card Prominence) ─── */
/* v127 fix: .pw-filterbar was removed from this base hide list. It hid the
   ENTIRE desktop filter bar (search, MODE/MARKET/POS chips, Table/Grid
   switcher — including its own pw-desktop-only children) on every viewport;
   mobile re-enables the bar with display:flex !important at ≤768px, so mobile
   behavior is unchanged. Regression introduced in 1327711. */
.pw-mobile-status,
.pw-mobile-menu-btn,
.pw-slim-injury-banner,
.pw-mobile-only {
  display: none;
}

@media (max-width: 768px) {
  /* Collapse topbar chrome */
  .pw-desktop-only {
    display: none !important;
  }
  .pw-mobile-only {
    display: inline-flex !important;
  }
  .pw-topbar {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 8px !important;
    width: 100% !important;
    max-width: 100vw !important;
    box-sizing: border-box !important;
    background: #1c2432 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    gap: 4px !important;
  }
  .pw-topbar-left {
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
    flex-shrink: 0 !important;
  }
  .pw-brand {
    display: flex !important;
    align-items: center !important;
    text-decoration: none !important;
  }
  .pw-brand-img {
    height: 20px !important;
    width: auto !important;
  }
  .pw-live-status-dot {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 14px !important;
    height: 14px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
  }
  .pw-live-status-dot .polling-dot {
    width: 7px !important;
    height: 7px !important;
    background: #10b981 !important;
    border-radius: 50% !important;
    box-shadow: 0 0 6px rgba(128, 198, 246, 0.9) !important;
    margin: 0 !important;
  }
  .pw-live-status-dot .pw-live-label {
    display: none !important;
  }
  .pw-topbar-right {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 4px !important;
    flex-shrink: 0 !important;
  }
  .pw-select-slate {
    display: inline-flex !important;
    height: 26px !important;
    padding: 0 5px !important;
    font: 700 10.5px/1 var(--mono) !important;
    border-radius: var(--radius-sm) !important;
    border: 1px solid rgba(255, 255, 255, 0.16) !important;
    background: #0f131c !important;
    color: #f1f5f9 !important;
    cursor: pointer !important;
    min-height: 26px !important;
  }
  .pw-injury-header-pill {
    display: inline-flex !important;
    align-items: center !important;
    gap: 3.5px !important;
    height: 26px !important;
    min-height: 26px !important;
    max-height: 26px !important;
    padding: 0 6px !important;
    background: rgba(245, 158, 11, 0.12) !important;
    border: 1px solid rgba(245, 158, 11, 0.35) !important;
    border-radius: var(--radius-sm) !important;
    color: #fbbf24 !important;
    font: 700 10px/1 var(--mono) !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
    transition: all 0.12s ease !important;
    white-space: nowrap !important;
  }
  .pw-injury-header-pill:active {
    background: rgba(245, 158, 11, 0.25) !important;
  }
  .pw-injury-header-pill .slim-injury-dot {
    width: 5px !important;
    height: 5px !important;
    border-radius: var(--radius-pill) !important;
    background: #f59e0b !important;
    box-shadow: 0 0 5px #f59e0b !important;
    flex-shrink: 0 !important;
  }
  .pw-injury-header-pill .slim-injury-text {
    font-size: 10px !important;
    color: #fbbf24 !important;
    white-space: nowrap !important;
  }
  #pricingBtn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 26px !important;
    padding: 0 6px !important;
    font: 700 10.5px/1 var(--mono) !important;
    border-radius: var(--radius-sm) !important;
    border: 1px solid rgba(128, 198, 246, 0.45) !important;
    background: rgba(128, 198, 246, 0.12) !important;
    color: #80c6f6 !important;
    cursor: pointer !important;
    min-height: 26px !important;
    white-space: nowrap !important;
  }
  #pricingBtn:active {
    background: rgba(128, 198, 246, 0.22) !important;
  }
  .pw-mobile-menu-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    height: 26px !important;
    min-width: 28px !important;
    min-height: 26px !important;
    border-radius: var(--radius-sm) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    color: #dce3ec !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
  }
  .pw-mobile-menu-btn:active {
    background: rgba(255, 255, 255, 0.14) !important;
  }
  .pw-mobile-header-pills {
    display: none !important;
  }
  .pw-slim-injury-banner {
    display: none !important;
  }

  /* Horizontal Scrolling Chip Strip */
  .pw-filterbar {
    display: flex !important;
    flex-direction: column !important;
    gap: 5px !important;
    margin-bottom: 3px !important;
    width: 100% !important;
    max-width: 100vw !important;
    box-sizing: border-box !important;
    padding: 4px 10px 5px 10px !important;
    background: #0f131c !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    overflow-x: hidden !important;
  }
  .pw-filterbar .pw-search-wrap,
  .pw-search-wrap.command-search-wrap {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }
  .pw-search-icon {
    position: absolute !important;
    left: 9px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 13px !important;
    height: 13px !important;
    color: #6e7681 !important;
    pointer-events: none !important;
  }
  .pw-filterbar .pw-search-input {
    width: 100% !important;
    height: 30px !important;
    min-height: 30px !important;
    font-size: 11.5px !important;
    border-radius: var(--radius-sm) !important;
    padding: 0 10px 0 28px !important;
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    color: #f1f5f9 !important;
    box-sizing: border-box !important;
  }
  .pw-filterbar .pw-search-input:focus {
    border-color: rgba(128, 198, 246, 0.5) !important;
    background: rgba(255, 255, 255, 0.08) !important;
  }
  .pw-chip-scroll-row {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    overflow-x: auto !important;
    white-space: nowrap !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    padding: 2px 2px 2px 2px !important;
  }
  .pw-chip-scroll-row::-webkit-scrollbar {
    display: none !important;
  }
  .chip-segment-group {
    display: inline-flex !important;
    align-items: center !important;
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: var(--radius) !important;
    padding: 2px !important;
    gap: 2px !important;
    flex-shrink: 0 !important;
  }
  .chip-pill {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3.5px !important;
    height: 28px !important;
    min-width: 32px !important;
    padding: 0 8px !important;
    font: 700 11px/1 var(--mono) !important;
    border-radius: var(--radius-sm) !important;
    border: none !important;
    background: transparent !important;
    color: #94a3b8 !important;
    cursor: pointer !important;
    transition: all 0.12s ease !important;
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: transparent !important;
    user-select: none !important;
  }
  .chip-pill.active {
    background: rgba(128, 198, 246, 0.18) !important;
    border: 1px solid rgba(128, 198, 246, 0.45) !important;
    color: #80c6f6 !important;
    font-weight: 800 !important;
    box-shadow: 0 0 10px rgba(128, 198, 246, 0.22) !important;
  }
  .chip-count-pill {
    font-size: 9.5px !important;
    font-weight: 700 !important;
    padding: 1px 4px !important;
    border-radius: var(--radius-sm) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    color: inherit !important;
  }
  .chip-pill.active .chip-count-pill {
    background: rgba(128, 198, 246, 0.28) !important;
    color: #80c6f6 !important;
  }
  .chip-divider {
    display: inline-block !important;
    width: 1px !important;
    height: 16px !important;
    background: rgba(255, 255, 255, 0.1) !important;
    margin: 0 2px !important;
    flex-shrink: 0 !important;
  }
  .chip-pill-more {
    background: rgba(255, 255, 255, 0.05) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    color: #cbd5e1 !important;
  }
  .chip-chevron {
    font-size: 9px !important;
    color: #6e7681 !important;
  }

  /* Cards over Tables (Default & Locked on Mobile) */
  #tableView,
  .desktop-table-container,
  .table-scroll,
  .slate-table {
    display: none !important;
  }
  #cardView,
  .card-grid {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
    padding: 2px 0 20px 0 !important;
  }
  /* ─── REDESIGNED CARD (BLOOMBERG TERMINAL PRECISION) ─── */
  .mobile-quant-row {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 12px 14px !important;
    background: #0d111c !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: var(--radius) !important;
    min-height: 104px !important;
    touch-action: pan-y !important;
    position: relative !important;
    z-index: 1 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important;
    transition: transform 0.1s ease, background 0.12s ease, border-color 0.12s ease !important;
    box-sizing: border-box !important;
  }
  .mobile-quant-row:hover {
    background: #111726 !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
  }
  .mobile-quant-row:active {
    background: #141c2e !important;
  }
  .mobile-quant-row.top-edge-play {
    /* Subtle institutional background tint — NO loud glowing borders */
    background: linear-gradient(180deg, rgba(128, 198, 246, 0.04) 0%, #0d111c 100%) !important;
    border: 1px solid rgba(128, 198, 246, 0.22) !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.35) !important;
  }

  /* Card Row 1: Identity & Hero Edge */
  .card-header-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    width: 100% !important;
  }
  .card-id-block {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    min-width: 0 !important;
    flex: 1 !important;
  }
  .card-id-block .star-btn {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
    display: grid !important;
    place-items: center !important;
    font-size: 15px !important;
    border-radius: var(--radius) !important;
  }
  .card-name-group {
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
    overflow: hidden !important;
    gap: 1px !important;
  }
  .card-player-name {
    font-family: var(--sans) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #f8fafc !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    letter-spacing: -0.01em !important;
  }
  .card-team-matchup {
    font-size: 11px !important;
    color: #6e7681 !important;
    font-family: var(--mono) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .card-hero-edge-block {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    flex-shrink: 0 !important;
    gap: 2px !important;
  }
  .card-hero-edge {
    font-family: var(--mono) !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    font-variant-numeric: tabular-nums !important;
    letter-spacing: -0.02em !important;
  }
  .card-hero-edge.positive {
    color: #80c6f6 !important;
  }
  .card-hero-edge.negative {
    color: #f87171 !important;
  }
  .card-hero-edge.text-caution,
  .card-hero-edge.text-shift {
    color: #fbbf24 !important;
    font-size: 14px !important;
  }
  .card-hero-edge.free-locked {
    color: #80c6f6 !important;
    font-size: 12px !important;
    background: rgba(128, 198, 246, 0.12) !important;
    padding: 2px 6px !important;
    border-radius: var(--radius-sm) !important;
    border: 1px solid rgba(128, 198, 246, 0.3) !important;
  }
  .card-edge-sub {
    font-size: 9.5px !important;
    font-weight: 700 !important;
    font-family: var(--mono) !important;
    color: #6e7681 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
  }
  .card-edge-sub.text-surge {
    color: #80c6f6 !important;
  }
  .card-edge-sub.text-caution {
    color: #fbbf24 !important;
  }

  /* Hairline Divider */
  .card-hairline-sep {
    width: 100% !important;
    height: 1px !important;
    background: rgba(255, 255, 255, 0.07) !important;
    margin: 8px 0 !important;
  }

  /* Card Row 2: 4-Column Clean Tabular Grid */
  .card-grid-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1.15fr 32px !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
  }
  .card-grid-col {
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
    gap: 1px !important;
  }
  .card-grid-col:not(.col-action) {
    background: rgba(18, 23, 34, 0.75) !important;
    border: 1px solid rgba(255, 255, 255, 0.05) !important;
    border-radius: 9px !important;
    padding: 5px 8px !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04) !important;
    transition: all 0.15s ease !important;
  }
  .card-grid-col:not(.col-action):hover {
    background: rgba(26, 33, 48, 0.88) !important;
    border-color: rgba(128, 198, 246, 0.3) !important;
  }
  .card-grid-col.col-action {
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
  }
  .grid-col-lbl {
    font-family: var(--mono) !important;
    font-size: 8.5px !important;
    font-weight: 700 !important;
    color: #8b9bb4 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
  }
  .grid-col-val {
    font-family: var(--mono) !important;
    font-size: 14.5px !important;
    font-weight: 750 !important;
    color: #ffffff !important;
    font-variant-numeric: tabular-nums !important;
    line-height: 1.2 !important;
  }
  .grid-col-sub {
    font-family: var(--mono) !important;
    font-size: 10px !important;
    color: #64748b !important;
    line-height: 1.1 !important;
  }
  .grid-col-spark {
    display: flex !important;
    align-items: center !important;
    height: 24px !important;
  }
  .price-sparkline-svg polyline {
    stroke: #80c6f6 !important;
    stroke-width: 1.8px !important;
    filter: drop-shadow(0 0 4px rgba(128, 198, 246, 0.65)) !important;
  }
  .price-sparkline-svg circle {
    fill: #80c6f6 !important;
    filter: drop-shadow(0 0 5px #80c6f6) !important;
  }
  .card-btn-view {
    display: none !important;
  }
  .card-btn-log {
    background: rgba(128, 198, 246, 0.12) !important;
    border: 1px solid rgba(128, 198, 246, 0.4) !important;
    border-radius: var(--radius) !important;
    color: #80c6f6 !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    box-shadow: 0 0 10px rgba(128, 198, 246, 0.2) !important;
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: all 0.12s ease !important;
    padding: 0 !important;
  }
  .card-btn-log:hover {
    background: #80c6f6 !important;
    color: #0b0f19 !important;
    border-color: #80c6f6 !important;
  }
  .card-btn-log.logged {
    background: #80c6f6 !important;
    color: #0b0f19 !important;
    border-color: #80c6f6 !important;
  }
  .card-btn-log:not(.logged):not(.blocked) {
    width: auto !important;
    min-width: 52px !important;
    padding: 0 8px !important;
    font-size: 9px !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
  }

  /* Full-Height Mobile Detail Bottom Sheet */
  .detail-dialog {
    width: 100% !important;
    max-width: 100% !important;
    height: 94vh !important;
    max-height: 94vh !important;
    margin: 0 !important;
    border-radius: 20px 20px 0 0 !important;
    position: fixed !important;
    top: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    background: #090d16 !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-bottom: none !important;
    box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.6) !important;
    z-index: 120 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  .dialog-shell {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    max-height: 100% !important;
  }
  .dialog-sheet-handle {
    width: 38px;
    height: 4px;
    background: rgba(255, 255, 255, 0.3);
    border-radius: var(--radius-pill);
    margin: 8px auto 4px auto;
    flex-shrink: 0;
  }
  .dialog-header {
    padding: 10px 16px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    flex-shrink: 0 !important;
  }
  .dialog-body {
    flex: 1 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 14px 16px 80px 16px !important;
  }

  /* Top Verdict Strip inside Detail Sheet */
  .detail-verdict-card {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 8px !important;
    background: rgba(255, 255, 255, 0.03) !important;
    border: 1px solid rgba(255, 255, 255, 0.09) !important;
    border-radius: var(--radius-lg) !important;
    padding: 10px 12px !important;
    margin-bottom: 12px !important;
    font-variant-numeric: tabular-nums !important;
  }
  .verdict-col {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
  }
  .verdict-label {
    font: 600 9.5px/1 var(--mono) !important;
    text-transform: uppercase !important;
    color: #6e7681 !important;
    letter-spacing: 0.04em !important;
  }
  .verdict-val {
    font-size: 14px !important;
    font-weight: 800 !important;
    color: #ffffff !important;
    line-height: 1.2 !important;
  }
  .verdict-sub {
    font-size: 10px !important;
    color: #94a3b8 !important;
  }

  /* Sticky Bottom Action Bar inside Detail Sheet */
  .detail-sticky-bar {
    position: sticky !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 10px 16px !important;
    background: rgba(11, 16, 27, 0.96) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
    z-index: 20 !important;
    margin: 16px -16px -16px -16px !important;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.45) !important;
  }
  .sticky-bar-info {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
  }
  .sticky-verdict {
    font-size: 14px !important;
    font-weight: 800 !important;
    color: #f8fafc !important;
    font-family: var(--mono) !important;
  }
  .sticky-edge {
    font-size: 11px !important;
    font-weight: 600 !important;
    font-variant-numeric: tabular-nums !important;
  }
  .detail-sticky-log-btn {
    min-height: 44px !important;
    min-width: 140px !important;
    padding: 0 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #10b981 !important;
    color: #04130d !important;
    border: none !important;
    border-radius: var(--radius) !important;
    font-size: 13.5px !important;
    font-weight: 800 !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
    box-shadow: 0 2px 8px rgba(128, 198, 246, 0.3) !important;
  }
  .detail-sticky-log-btn.logged {
    background: rgba(128, 198, 246, 0.2) !important;
    border: 1px solid #10b981 !important;
    color: #10b981 !important;
    box-shadow: none !important;
  }

  /* Settings & Modal Sheet Styling (44px Steppers) */
  .settings-dialog,
  .more-filters-dialog,
  .portfolio-dialog,
  .sniper-dialog,
  .clv-dialog,
  #clvDialog,
  #clvReportDialog,
  .pricing-dialog,
  #pricingDialog {
    width: 100% !important;
    max-width: 100% !important;
    max-height: 90vh !important;
    margin: 0 !important;
    position: fixed !important;
    top: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    border-radius: 20px 20px 0 0 !important;
    background: #090d16 !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-bottom: none !important;
    box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.6) !important;
    z-index: 120 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  .settings-section {
    margin-bottom: 16px !important;
  }
  .settings-section h3 {
    font: 700 11px/1.2 var(--mono) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    color: #94a3b8 !important;
    margin: 0 0 6px 0 !important;
  }
  .settings-desc {
    font-size: 11.5px !important;
    color: #6e7681 !important;
    margin: 0 0 8px 0 !important;
    line-height: 1.4 !important;
  }
  .settings-stepper-card {
    background: rgba(255, 255, 255, 0.03) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: var(--radius-lg) !important;
    padding: 6px 12px !important;
  }
  .settings-stepper-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 52px !important;
  }
  .settings-stepper-title {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #f8fafc !important;
    display: block !important;
  }
  .settings-stepper-sub {
    font-size: 11px !important;
    color: #6e7681 !important;
    display: block !important;
  }
  .touch-stepper {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
  }
  .touch-step-btn {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.16) !important;
    border-radius: var(--radius) !important;
    color: #ffffff !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
  }
  .touch-step-btn:active {
    background: rgba(128, 198, 246, 0.25) !important;
    border-color: #10b981 !important;
  }
  .touch-step-val {
    min-width: 48px !important;
    text-align: center !important;
    font-family: var(--mono) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    color: #f8fafc !important;
    font-variant-numeric: tabular-nums !important;
  }
  .settings-divider {
    height: 1px !important;
    background: rgba(255, 255, 255, 0.06) !important;
    margin: 4px -12px !important;
  }
  .settings-input-card {
    background: rgba(255, 255, 255, 0.03) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: var(--radius-lg) !important;
    padding: 8px 12px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 48px !important;
  }
  .settings-bankroll-label {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #cbd5e1 !important;
  }
  .settings-bankroll-input {
    background: rgba(0, 0, 0, 0.4) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: var(--radius) !important;
    padding: 6px 10px !important;
    color: #ffffff !important;
    font-family: var(--mono) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    width: 110px !important;
    text-align: right !important;
    min-height: 38px !important;
  }
  .settings-select {
    width: 100% !important;
    min-height: 44px !important;
    background: rgba(0, 0, 0, 0.4) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: var(--radius) !important;
    color: #f8fafc !important;
    font-size: 13px !important;
    padding: 0 10px !important;
    font-weight: 600 !important;
  }
  .settings-info-card {
    background: rgba(255, 255, 255, 0.02) !important;
    border: 1px solid rgba(255, 255, 255, 0.06) !important;
    border-radius: var(--radius-lg) !important;
    padding: 10px 12px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    font-size: 12px !important;
  }
  .settings-info-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    color: #94a3b8 !important;
    font-variant-numeric: tabular-nums !important;
  }
  .settings-info-row b {
    color: #dce3ec !important;
    font-family: var(--mono) !important;
  }
  .settings-actions {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    margin-top: 14px !important;
  }
  .settings-action-btn {
    width: 100% !important;
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(128, 198, 246, 0.16) !important;
    border: 1px solid rgba(128, 198, 246, 0.45) !important;
    border-radius: var(--radius) !important;
    color: #80c6f6 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
  }
  .settings-action-btn.secondary {
    background: rgba(255, 255, 255, 0.05) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    color: #cbd5e1 !important;
  }

  /* More Filters Dialog */
  .filter-sheet-section {
    margin-bottom: 16px !important;
  }
  .filter-sheet-section h4 {
    font: 700 11px/1.2 var(--mono) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    color: #94a3b8 !important;
    margin: 0 0 8px 0 !important;
  }
  .signal-sheet-chips {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
  }
  .signal-chip-btn {
    display: flex !important;
    align-items: center !important;
    padding: 10px 14px !important;
    min-height: 44px !important;
    background: rgba(255, 255, 255, 0.03) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: var(--radius) !important;
    color: #cbd5e1 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    text-align: left !important;
    touch-action: manipulation !important;
  }
  .signal-chip-btn.active {
    background: rgba(128, 198, 246, 0.18) !important;
    border-color: #80c6f6 !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    box-shadow: 0 0 10px rgba(128, 198, 246, 0.28) !important;
  }
  .filter-sheet-actions {
    display: flex !important;
    gap: 10px !important;
    margin-top: 16px !important;
  }
  .filter-reset-btn {
    flex: 1 !important;
    min-height: 44px !important;
    background: rgba(255, 255, 255, 0.05) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: var(--radius) !important;
    color: #94a3b8 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
  }
  .filter-apply-btn {
    flex: 2 !important;
    min-height: 44px !important;
    background: #80c6f6 !important;
    color: #04130d !important;
    border: none !important;
    border-radius: var(--radius) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
  }

  /* Safe Area & Bottom Nav Tab Targets */
  body {
    padding-bottom: calc(58px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .mobile-bottom-nav {
    height: calc(58px + env(safe-area-inset-bottom, 0px)) !important;
    padding-bottom: env(safe-area-inset-bottom, 0px) !important;
  }
  .bottom-nav-item {
    min-height: 44px !important;
    touch-action: manipulation !important;
  }

  /* Mobile Centered Toast with Safe-Area Tab Bar Clearance */
  .toast {
    right: auto !important;
    left: 50% !important;
    bottom: calc(58px + env(safe-area-inset-bottom, 0px) + 12px) !important;
    transform: translate(-50%, 14px) scale(0.98) !important;
    max-width: calc(100% - 32px) !important;
    width: max-content !important;
    padding: 8px 12px !important;
  }
  .toast.visible {
    transform: translate(-50%, 0) scale(1) !important;
  }

  /* Mobile Swipe-Right-to-Log Visual Feedback */
  .mobile-quant-row.swipe-log-ready {
    border-left: 3px solid #80c6f6 !important;
    background: linear-gradient(90deg, rgba(128, 198, 246, 0.2) 0%, rgba(13, 19, 32, 0.95) 100%) !important;
    box-shadow: 0 0 0 1px rgba(128, 198, 246, 0.4), 0 0 20px rgba(128, 198, 246, 0.3) !important;
  }

  /* Mobile Availability & Injury Drawer Reflow */
  .pw-injury-drawer {
    border-radius: var(--radius) !important;
    margin-bottom: 10px !important;
  }
  .pw-injury-header {
    padding: 7px 10px !important;
    gap: 6px !important;
  }
  .pw-injury-title {
    font-size: 11px !important;
    max-width: 130px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .pw-injury-summary-preview,
  .pw-injury-receipt-pill {
    display: none !important;
  }
  .pw-injury-close-btn {
    padding: 3px 7px !important;
    font-size: 10px !important;
    white-space: nowrap !important;
  }
  .pw-injury-grid {
    grid-template-columns: 1fr !important;
    padding: 8px !important;
    gap: 8px !important;
    max-height: 250px !important;
  }
}

/* 375px Ultra-Compact Viewport Tuning (iPhone SE / Standard Width) */
@media (max-width: 400px) {
  .mobile-quant-row {
    padding: 10px 12px !important;
    gap: 7px !important;
  }
  .mq-player-name {
    font-size: 13.5px !important;
  }
  .mq-team-matchup {
    font-size: 10px !important;
  }
  .mq-line-val {
    font-size: 14px !important;
  }
  .mq-fair-val {
    display: none !important;
  }
  .mq-edge-prominent {
    font-size: 14px !important;
  }
  .mq-edge-and-log {
    gap: 8px !important;
  }
  .mq-log-btn {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
  }
}

/* ─── TERMINAL COMPLIANCE & RESPONSIBLE GAMING FOOTER ─── */
.terminal-compliance-footer {
  margin-top: 48px;
  padding: 28px 16px 40px 16px;
  border-top: 1px solid var(--line);
  background: rgba(9, 13, 22, 0.95);
  text-align: center;
  font-size: 11px;
  line-height: 1.6;
  color: var(--muted);
}
.compliance-pills {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.compliance-badge-21 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1.5px solid #ef4444;
  color: #ef4444;
  font-weight: 900;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: -0.05em;
}
.compliance-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--radius-pill);
  color: #cbd5e1;
  font-weight: 600;
  font-size: 11px;
  text-decoration: none;
  transition: all 0.15s ease;
}
.compliance-pill:hover {
  border-color: #80c6f6;
  color: #80c6f6;
}
.compliance-disclaimer {
  max-width: 820px;
  margin: 0 auto;
  color: #6e7681;
  font-size: 10px;
  line-height: 1.5;
}

/* ─── SETTLED AUDIT & RESULTS LOOP ─── */
.settled-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px;
  border-radius: var(--radius-sm);
  font-family: var(--mono);
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.settled-won {
  background: rgba(128, 198, 246, 0.16);
  border: 1px solid rgba(128, 198, 246, 0.4);
  color: #80c6f6;
}
.settled-lost {
  background: rgba(239, 68, 68, 0.16);
  border: 1px solid rgba(239, 68, 68, 0.4);
  color: #f87171;
}
.settled-push {
  background: rgba(148, 163, 184, 0.16);
  border: 1px solid rgba(148, 163, 184, 0.4);
  color: #94a3b8;
}
.settled-stat-box {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  color: #dce3ec;
}

/* ─── SNIPER ONE-TAP CONFIRM & SECURITY CALLOUTS ─── */
.sniper-confirm-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  background: rgba(128, 198, 246, 0.16);
  border: 1px solid rgba(128, 198, 246, 0.4);
  color: #80c6f6;
  border-radius: var(--radius-sm);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.15s ease;
}
.sniper-confirm-link:hover {
  background: #80c6f6;
  color: #090d16;
}
.sniper-notice-box {
  background: rgba(128, 198, 246, 0.08);
  border: 1px solid rgba(128, 198, 246, 0.25);
  border-radius: var(--radius);
  padding: 8px 10px;
  font-size: 11px;
  color: #80c6f6;
  line-height: 1.4;
}
.sniper-security-warning {
  background: rgba(245, 158, 11, 0.08);
  border: 1px solid rgba(245, 158, 11, 0.25);
  border-radius: var(--radius);
  padding: 8px 10px;
  font-size: 10.5px;
  color: #fde68a;
  line-height: 1.4;
}

/* Pricing & Commercial Subscription Tier Styles */
.pricing-dialog {
  max-width: 860px !important;
}
.pricing-tier-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin-bottom: 16px;
}
@media (max-width: 768px) {
  .pricing-tier-grid {
    grid-template-columns: 1fr;
  }
}
.pricing-tier-card {
  background: #090d16;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-lg);
  padding: 18px 16px;
  display: flex;
  flex-direction: column;
  position: relative;
}
.pricing-tier-card.featured {
  background: #0d1527;
  border: 1.5px solid rgba(128, 198, 246, 0.5);
  box-shadow: 0 0 20px rgba(128, 198, 246, 0.08);
}
.tier-featured-pill {
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  background: #80c6f6;
  color: #090d16;
  font: 800 9px/1 var(--mono);
  padding: 3px 8px;
  border-radius: var(--radius-pill);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
.tier-badge {
  font: 700 12px/1 var(--mono);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #94a3b8;
  margin-bottom: 8px;
}
.tier-badge.highlight {
  color: #80c6f6;
}
.tier-price {
  font-size: 30px;
  font-weight: 800;
  color: #f8fafc;
  line-height: 1;
  margin-bottom: 6px;
  font-family: var(--mono);
}
.tier-price span {
  font-size: 13px;
  font-weight: 500;
  color: #6e7681;
}
.tier-tagline {
  font-size: 11.5px;
  color: #94a3b8;
  line-height: 1.35;
  margin: 0 0 14px 0;
  min-height: 32px;
}
.tier-feature-list {
  list-style: none;
  padding: 0;
  margin: 0 0 18px 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 12px;
  color: #cbd5e1;
}
.tier-feature-list li.locked {
  color: #6e7681;
}
.tier-cta-btn {
  width: 100%;
  min-height: 42px;
  border-radius: var(--radius);
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  touch-action: manipulation;
  transition: all 0.15s ease;
}
.tier-cta-btn.primary {
  background: #80c6f6;
  color: #090d16;
  border: none;
}
.tier-cta-btn.primary:hover {
  background: #a3e655;
}
.tier-cta-btn.secondary {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #dce3ec;
}
.tier-cta-btn.secondary:hover {
  background: rgba(255, 255, 255, 0.1);
}
.pricing-guarantee-box {
  background: rgba(128, 198, 246, 0.06);
  border: 1px solid rgba(128, 198, 246, 0.2);
  border-radius: var(--radius);
  padding: 12px 14px;
  font-size: 12px;
  color: #cbd5e1;
  line-height: 1.4;
  margin-top: 10px;
}
.free-locked {
  background: rgba(255, 255, 255, 0.05) !important;
  color: #94a3b8 !important;
  border: 1px dashed rgba(255, 255, 255, 0.25) !important;
  cursor: pointer !important;
}
.free-locked:hover {
  background: rgba(128, 198, 246, 0.15) !important;
  color: #80c6f6 !important;
  border-color: rgba(128, 198, 246, 0.5) !important;
}
.tier-pill-btn {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius);
  padding: 8px 6px;
  color: #cbd5e1;
  cursor: pointer;
  text-align: center;
  transition: all 0.15s ease;
}
.tier-pill-btn.active {
  background: rgba(128, 198, 246, 0.12);
  border-color: rgba(128, 198, 246, 0.45);
}

/* ─── ANTI-TOUT TRUST ARCHITECTURE: EMPTY STATE ─── */
.anti-tout-empty-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 26px 18px;
  background: rgba(13, 17, 28, 0.65);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-lg);
  margin: 10px 0;
  box-shadow: var(--shadow-md), var(--edge-hi);
}
.anti-tout-shield {
  font-size: 26px;
  margin-bottom: 8px;
  filter: drop-shadow(0 0 16px rgba(128, 198, 246, 0.35));
}
.anti-tout-icon {
  font-size: 22px;
  color: #6e7681;
  margin-bottom: 8px;
}
.anti-tout-title {
  font-size: 17px;
  font-weight: 800;
  color: #f8fafc;
  letter-spacing: -0.01em;
  margin-bottom: 3px;
}
.anti-tout-subtitle {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  color: #80c6f6;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}
.anti-tout-desc {
  font-size: 12px;
  line-height: 1.5;
  color: #94a3b8;
  max-width: 440px;
  margin: 0 0 12px 0;
}
.anti-tout-meta {
  font-family: var(--mono);
  font-size: 11.5px;
  font-variant-numeric: tabular-nums;
  color: #8792a6;
  margin: -4px 0 12px 0;
}
.anti-tout-actions .anti-tout-btn {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--radius);
  color: #f1f5f9;
  font-size: 12px;
  font-weight: 600;
  padding: 7px 14px;
  cursor: pointer;
  transition: all 0.12s ease;
}
.anti-tout-actions .anti-tout-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.3);
}

/* Skeleton Loading Card matching new 2-row layout */
.skeleton-card {
  min-height: 104px !important;
  border-radius: var(--radius) !important;
  background: #0d111c !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  padding: 12px 14px !important;
}


/* ─── Sport Switcher (Phase 2) ─────────────────────────────────────────── */
.sport-switcher-bar {
  display: flex;
  justify-content: center;
  padding: 6px 12px;
  background: var(--bg-canvas);
  border-bottom: 1px solid var(--border-hairline);
  position: sticky;
  top: 0;
  z-index: 40;
}

.sport-switcher {
  display: inline-flex;
  gap: 4px;
  padding: 3px;
  background: var(--bg-elevated);
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius);
}

.sport-switch-btn {
  appearance: none;
  border: 1px solid transparent;
  background: transparent;
  color: var(--text-muted);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.8px;
  padding: 6px 16px;
  min-height: 32px;
  border-radius: var(--radius);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.sport-switch-btn:hover {
  color: var(--text-primary);
  background: var(--surface-3);
}

.sport-switch-btn:focus-visible {
  outline: 2px solid var(--baby-blue-ring);
  outline-offset: 2px;
}

.sport-switch-btn.active {
  color: var(--accent-ink);
  background: var(--brand-accent);
  border-color: var(--brand-accent-border);
}

@media (max-width: 768px) {
  .sport-switcher-bar {
    padding: 6px 10px;
  }
  .sport-switch-btn {
    flex: 1 1 0;
    padding: 8px 12px;
    min-height: 40px; /* WCAG 2.2 AA comfortable touch target */
  }
}

/* ─── Data Quality Banner (Phase 2 failure-mode UI) ────────────────────── */
.data-quality-banner {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: stretch;
  margin: 8px 12px 0;
  padding: 8px 10px;
  border: 1px solid var(--line-strong);
  border-left: 3px solid var(--baby-blue);
  border-radius: var(--radius);
  background: var(--bg-elevated);
  font-family: var(--mono);
  font-size: 11px;
  color: var(--text-secondary);
}

.data-quality-banner[hidden] { display: none; }

.data-quality-banner .dq-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 2px 10px 2px 0;
  min-width: 180px;
}

.data-quality-banner .dq-item strong {
  color: var(--text-primary);
  letter-spacing: 0.6px;
}

.data-quality-banner.fixture { border-left-color: var(--warn-amber); }
.data-quality-banner.fixture .dq-item strong { color: var(--warn-amber); }

.data-quality-banner.warn { border-left-color: var(--warn-amber); }
.data-quality-banner.warn .dq-item strong { color: var(--warn-amber); }

.data-quality-banner.error { border-left-color: var(--danger); }
.data-quality-banner.error .dq-item strong { color: var(--danger); }

.dq-retry-btn {
  appearance: none;
  margin-left: auto;
  align-self: center;
  border: 1px solid var(--line-strong);
  background: var(--surface-3);
  color: var(--text-primary);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  padding: 6px 14px;
  min-height: 32px;
  border-radius: var(--radius);
  cursor: pointer;
}

.dq-retry-btn:focus-visible {
  outline: 2px solid var(--baby-blue-ring);
  outline-offset: 2px;
}

/* Per-sport calibration badge (audit H9): visible on every row of an
   uncalibrated sport; calibrated sports render no element at all. */
.uncal-tag {
  display: inline-flex;
  align-items: center;
  font: 600 9px/1 var(--mono, monospace);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #c7ad85;
  border: 1px solid rgba(199, 173, 133, 0.25);
  background: rgba(199, 173, 133, 0.06);
  padding: 2px 5px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
  margin-left: 6px;
}

/* 375px fit fix (audit B3): .pw-topbar-right was flex-shrink:0 with
   all-nowrap children, so the slate select + injury pill + upgrade + menu
   cluster overflowed the viewport (documentElement.scrollWidth 463 vs 375 —
   real overflow; body{overflow-x:hidden} merely clipped it). Let the
   cluster shrink and degrade gracefully: the injury pill truncates with an
   ellipsis (the status dot stays visible); buttons keep their size. */
@media (max-width: 768px) {
  .pw-topbar-right {
    flex-shrink: 1 !important;
    min-width: 0 !important;
  }
  .pw-injury-header-pill {
    flex-shrink: 1 !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }
  .pw-injury-header-pill .slim-injury-text {
    flex-shrink: 1 !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   HEADER + SUB-CATEGORY UPGRADE — chrome v2 overlay (2026-10-25)
   Appended last so it wins the cascade. Pure CSS: no DOM ids, no text
   contract, no innerHTML changes (parity goldens capture innerHTML/
   textContent of whitelisted ids only — pseudo-elements render but are
   never captured). Rendered-only effects:
     1. Chrome shell: glass blur + volt gradient hairline
     2. Topbar: brand glow, live-dot ping ring, volt PRO CTA, focus rings
     3. Filter sub-categories: eyebrow labels (data-eyebrow attributes are
        container attributes — invisible to innerHTML captures)
     4. Sport switcher: per-sport accent identity (NFL volt / NBA orange),
        sticky-offset fix (bar previously stuck at top:0 and slid UNDER the
        sticky chrome when scrolling)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1. Chrome shell: glass + volt hairline ──────────────────────────── */
.pw-terminal-chrome {
  background: linear-gradient(180deg,
    rgba(41, 47, 59, 0.94) 0%,
    rgba(31, 36, 46, 0.96) 55%,
    rgba(25, 29, 38, 0.98) 100%) !important;
  -webkit-backdrop-filter: blur(14px) saturate(1.35);
  backdrop-filter: blur(14px) saturate(1.35);
  border-bottom: 1px solid rgba(255, 255, 255, 0.10) !important;
}
.pw-terminal-chrome::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(128, 198, 246, 0.50) 50%,
    transparent 100%);
  pointer-events: none;
  z-index: 1;
}

@media (max-width: 768px) {
  .pw-topbar {
    background: linear-gradient(180deg,
      rgba(41, 47, 59, 0.90),
      rgba(31, 36, 46, 0.93)) !important;
  }
  .pw-filterbar {
    background: rgba(24, 28, 37, 0.88) !important;
  }
}

/* ── 2. Topbar polish ────────────────────────────────────────────────── */
.pw-brand-img {
  transition: filter 0.2s ease;
}
.pw-brand:hover .pw-brand-img {
  filter: drop-shadow(0 0 9px rgba(128, 198, 246, 0.50));
}
.pw-brand:focus-visible {
  outline: 2px solid var(--baby-blue-ring);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

/* Live-dot soft ping ring (rendered-only, additive) */
.pw-live-status-dot .polling-dot,
.live-polling-widget .polling-dot {
  position: relative;
}
.pw-live-status-dot .polling-dot::after,
.live-polling-widget .polling-dot::after {
  content: '';
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  border: 1px solid rgba(128, 198, 246, 0.70);
  animation: pw-ping 2.4s cubic-bezier(0, 0, 0.2, 1) infinite;
  pointer-events: none;
}
@keyframes pw-ping {
  0%        { transform: scale(0.6); opacity: 0.9; }
  75%, 100% { transform: scale(1.9); opacity: 0; }
}

/* Unified keyboard focus rings across all chrome controls */
.pw-topbar :is(button, select):focus-visible,
.pw-filterbar :is(button, input, select):focus-visible,
.sport-switcher-bar button:focus-visible {
  outline: 2px solid var(--baby-blue-ring);
  outline-offset: 2px;
}

.pw-btn-nav {
  border-radius: var(--radius);
}
.pw-btn-nav:hover {
  border-color: rgba(128, 198, 246, 0.35);
}
.pw-btn-ledger:hover {
  box-shadow: 0 0 12px rgba(128, 198, 246, 0.18);
}

/* PRO CTA: volt gradient + shine sweep (replaces inline-styled flat text) */
#pricingBtn.pw-btn-upgrade {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #CFF98D 0%, #A8EE58 55%, #8FDE3F 100%);
  border: 1px solid rgba(128, 198, 246, 0.65);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25), 0 2px 10px rgba(128, 198, 246, 0.16);
  transition: box-shadow 0.18s ease, filter 0.18s ease, transform 0.1s ease;
}
#pricingBtn.pw-btn-upgrade .pro-text-desktop,
#pricingBtn.pw-btn-upgrade .pro-text-mobile {
  color: #0A1206;
  font-weight: 800;
  letter-spacing: 0.6px;
  position: relative;
  z-index: 1;
}
#pricingBtn.pw-btn-upgrade::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: -80%;
  width: 55%;
  background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.55), transparent);
  transform: skewX(-18deg);
  transition: left 0.45s ease;
  pointer-events: none;
}
#pricingBtn.pw-btn-upgrade:hover::after {
  left: 130%;
}
#pricingBtn.pw-btn-upgrade:hover {
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25), 0 0 18px rgba(128, 198, 246, 0.38);
  filter: saturate(1.08);
}
#pricingBtn.pw-btn-upgrade:active {
  transform: translateY(1px);
}

.polling-timer,
.pw-stepper-val,
.chip-count-pill,
.pw-receipt-badge {
  font-variant-numeric: tabular-nums;
}

/* Graceful topbar compression: JS-written status strings (poll timer,
   receipt state) have no intrinsic cap, so the right cluster overflows the
   viewport (documentElement.scrollWidth 2318 @1440 — measured) and the row
   clips mid-control. Compressible pills shrink with ellipsis; action
   buttons and the slate select never crush. */
.pw-topbar-left {
  flex-shrink: 1;
}
.pw-live-status-dot {
  flex-shrink: 0;
  white-space: nowrap;
}
.pw-topbar-left .pw-alert-pill {
  flex-shrink: 1;
  min-width: 0;
  overflow: hidden;
}
.pw-alert-preview {
  min-width: 0;
  max-width: 240px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pw-topbar-right .pw-btn-nav,
.pw-topbar-right .pw-btn-icon,
.pw-topbar-right .pw-stepper,
.pw-topbar-right .pw-select {
  flex-shrink: 0;
}
.pw-select-slate {
  max-width: 218px;
}
.pw-injury-header-pill {
  min-width: 0;
  overflow: hidden;
}
.pw-injury-header-pill .slim-injury-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.live-polling-widget {
  flex-shrink: 1;
  min-width: 0;
  overflow: hidden;
}
.live-polling-widget .polling-timer {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.live-polling-widget .polling-refresh-btn {
  flex-shrink: 0;
}
.pw-receipt-badge {
  flex-shrink: 1;
  min-width: 0;
  max-width: 230px;
  overflow: hidden;
}
.pw-receipt-badge #marketState {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Search focus glow (desktop; mobile keeps its existing !important rule) */
.pw-search-input {
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.pw-search-input:focus {
  border-color: rgba(128, 198, 246, 0.55);
  box-shadow: 0 0 0 3px rgba(128, 198, 246, 0.10), 0 0 16px rgba(128, 198, 246, 0.12);
}

/* ── 3. Filter sub-categories: eyebrow labels + chip polish ──────────── */
.pw-filterbar {
  background: rgba(28, 32, 41, 0.92);
}
.chip-segment-group[data-eyebrow]::before {
  display: none !important;
}
.chip-pill {
  transition: color 0.12s ease, background 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease;
}
.chip-pill:not(.active):hover {
  background: rgba(255, 255, 255, 0.05);
  color: #dce3ec;
}
.chip-pill.active {
  box-shadow: 0 0 12px rgba(128, 198, 246, 0.22), 0 1px 3px rgba(0, 0, 0, 0.30) !important;
}
.pw-seg-btn.active {
  box-shadow: 0 0 10px rgba(128, 198, 246, 0.18);
}

/* ── 4. Sport switcher: sub-category band upgrade ────────────────────── */
.sport-switcher-bar {
  position: sticky;
  top: 89px;   /* flush under the desktop chrome (46 topbar + 1 border + 42 filterbar) */
  z-index: 39; /* below the chrome, above page content */
  padding: 8px 12px;
  background: linear-gradient(180deg,
    rgba(24, 28, 37, 0.92) 0%,
    rgba(17, 21, 29, 0.96) 100%);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border-hairline);
}
.sport-switcher-bar::before {
  display: none !important;
}
.sport-switcher {
  padding: 4px;
  gap: 3px;
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid rgba(255, 255, 255, 0.09);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 10px 26px rgba(0, 0, 0, 0.38);
}
.sport-switch-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 11.5px;
  letter-spacing: 1px;
  padding: 7px 18px;
  min-height: 34px;
  border-radius: var(--radius);
}
/* Sport identity diamond (rendered-only; per-sport accent when active) */
.sport-switch-btn::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: var(--radius-sm);
  transform: rotate(45deg);
  background: transparent;
  border: 1.5px solid #5b6472;
  transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
  flex-shrink: 0;
}
.sport-switch-btn:hover::before {
  border-color: #9aa5b5;
}
.sport-switch-btn.active {
  background: linear-gradient(160deg, rgba(128, 198, 246, 0.24), rgba(143, 222, 63, 0.14));
  border-color: rgba(128, 198, 246, 0.55);
  color: #d9fca1;
  text-shadow: 0 0 12px rgba(128, 198, 246, 0.35);
}
.sport-switch-btn.active::before {
  background: var(--brand-accent);
  border-color: rgba(128, 198, 246, 0.80);
  box-shadow: 0 0 8px rgba(128, 198, 246, 0.55);
}
.sport-switch-btn[data-sport="nba"].active {
  background: linear-gradient(160deg, rgba(249, 115, 22, 0.26), rgba(194, 65, 12, 0.16));
  border-color: rgba(251, 146, 60, 0.55);
  color: #ffd1a6;
  text-shadow: 0 0 12px rgba(249, 115, 22, 0.35);
}
.sport-switch-btn[data-sport="nba"].active::before {
  background: #fb923c;
  border-color: rgba(251, 146, 60, 0.80);
  box-shadow: 0 0 8px rgba(249, 115, 22, 0.55);
}

@media (min-width: 769px) {
  /* Desktop eyebrow label is hidden on narrow screens to save space */
  .sport-switcher-bar::before {
    display: block;
  }
}
@media (max-width: 900px) {
  .sport-switcher-bar::before {
    display: none;
  }
}
@media (max-width: 768px) {
  /* Mobile chrome is a tall multi-row sticky block with a variable height —
     a sticky switcher at any fixed offset slides underneath it. Scroll the
     band away naturally instead (was: sticky top:0 overlapping the chrome). */
  .sport-switcher-bar {
    position: static;
    padding: 7px 10px;
  }
  /* Re-assert the WCAG touch targets my base rule would otherwise override
     (this block is later in source order than the Phase 2 media block). */
  .sport-switch-btn {
    flex: 1 1 0;
    padding: 8px 12px;
    min-height: 40px;
  }
}

/* Final cascade: the slate theme intentionally wins over legacy polish. */
body {
  background: #0b0e14;
  color: #ffffff;
  font-family: var(--sans);
}
.pw-terminal-chrome,
.pw-filterbar,
.sport-switcher-bar {
  background: rgba(20, 26, 35, 0.97) !important;
  border-color: #232c3b !important;
  box-shadow: none;
}
.sport-switcher {
  background: #141a23;
  border-color: #2d3a4d;
  border-radius: var(--radius);
  box-shadow: none;
}
.sport-switch-btn { border-radius: var(--radius-sm); color: #8b949e; text-shadow: none !important; }
.sport-switch-btn::before { display: none; }
.sport-switch-btn.active,
.sport-switch-btn[data-sport="nba"].active {
  color: #07101c;
  background: #80c6f6;
  border-color: #80c6f6;
  box-shadow: none;
}
.data-quality-banner {
  position: sticky;
  top: 133px;
  z-index: 34;
  flex-wrap: nowrap;
  align-items: center;
  min-height: 36px;
  margin: 0;
  padding: 6px 12px;
  gap: 16px;
  border: 0;
  border-bottom: 1px solid #392a22;
  border-left: 3px solid #f59e0b;
  border-radius: 0;
  background: #2a1a15;
  box-shadow: none;
  color: #c9c0ba;
}
.data-quality-banner .dq-item {
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: row;
  align-items: baseline;
  gap: 8px;
  padding: 0;
}
.data-quality-banner .dq-item strong { flex: 0 0 auto; color: #f59e0b; }
.table-scroll { border-color: #232c3b; background: #141a23; box-shadow: var(--edge-hi); }
.slate-table th {
  background: #131a24;
  color: #8b949e;
  font-family: var(--sans);
  font-weight: 500;
  letter-spacing: .05em;
}
.slate-table td { border-bottom-color: #1d2430; }
.slate-table td.td-num,
.number-main,
.model-num-row,
.bullet-container,
.edge-cell,
.price-check,
.pw-stepper-val {
  font-family: var(--mono);
  font-variant-numeric: tabular-nums lining-nums;
}
.player-name,
.card-player-name { color: #f0f3f6; font-family: var(--sans); font-weight: 600; }
.number-main.book-empty { color: #6e7681; font-weight: 500; }
.meta-pill.model-only,
.exec-tag-none { color: #7d8592; background: #1a212d; border-color: #343841; box-shadow: none; }
.bullet-bold.text-fair { color: #8b949e; font-weight: 600; }
.bullet-bold.text-accent { color: #f0f3f6; }
.bullet-dim,
.bullet-bottom-sub,
.ci-range,
.bullet-bk { color: #7d8592; }
.bullet-svg .bullet-track { fill: #232c3b; }
.bullet-svg .bullet-fill { fill: #80c6f6; }
.chip-pill.active,
.pw-seg-btn.active { box-shadow: none !important; }

@media (max-width: 768px) {
  .data-quality-banner { position: static; flex-wrap: wrap; gap: 6px 12px; }
  .data-quality-banner .dq-item { flex-basis: 100%; }
}

/* ─── Header control system ───────────────────────────────────────────
   Keep the terminal dense, but give every control a predictable box and
   collapse secondary telemetry before the viewport begins clipping. */
.pw-topbar {
  padding-inline: 12px;
  gap: 8px;
}
.pw-topbar-left,
.pw-topbar-right { gap: 6px; }
.pw-topbar :is(button, select),
.pw-filterbar :is(button, input) {
  min-height: 32px;
}
.pw-select,
.pw-alert-pill,
.pw-risk-group,
.pw-receipt-badge,
.pw-btn-nav,
.pw-btn-icon {
  height: 32px;
  border-radius: var(--radius);
}
.pw-btn-nav,
.pw-btn-icon,
.pw-select,
.pw-step-btn,
.polling-refresh-btn,
.chip-pill,
.pw-seg-btn {
  transition: color .15s ease, background-color .15s ease,
    border-color .15s ease, transform .12s ease;
}
.pw-btn-nav,
.pw-btn-icon {
  background: #1a212d;
  border-color: #343841;
  color: #cbd0d8;
  box-shadow: inset 0 1px rgba(255, 255, 255, .025);
}
.pw-btn-nav:hover,
.pw-btn-icon:hover {
  background: #292d35;
  border-color: #4a505d;
  color: #f0f3f6;
}
.pw-btn-nav:active,
.pw-btn-icon:active,
.chip-pill:active,
.pw-seg-btn:active { transform: translateY(1px); }
.pw-step-btn {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border-radius: var(--radius-sm);
}
.pw-step-btn:hover { background: #30343d; color: #f0f3f6; }
.pw-btn-sniper {
  color: #d8dee7;
  background: #23262d;
  border-color: #3a3f49;
}
#pricingBtn.pw-btn-upgrade {
  background: #80c6f6;
  border-color: #80c6f6;
  box-shadow: none;
}
#pricingBtn.pw-btn-upgrade::after { display: none; }
#pricingBtn.pw-btn-upgrade:hover {
  background: #b7ed63;
  border-color: #b7ed63;
  box-shadow: none;
  filter: none;
}
.pw-filterbar { padding-inline: 12px; }
.pw-chip-scroll-row {
  min-width: 0;
  flex: 1 1 auto;
  overflow-x: auto;
  scrollbar-width: none;
}
.pw-chip-scroll-row::-webkit-scrollbar { display: none; }
.chip-pill,
.pw-seg-btn {
  height: 30px;
  min-height: 30px;
  border-radius: var(--radius-sm);
}
.chip-pill:not(.active):hover,
.pw-seg-btn:not(.active):hover {
  background: #292d35;
  color: #f0f3f6;
}
.chip-pill.active,
.pw-seg-btn.active {
  background: rgba(128, 198, 246, .14);
  border-color: rgba(128, 198, 246, .48);
  color: #c8f77f;
}
.pw-view-toggle { flex: 0 0 auto; }

@media (min-width: 1200px) {
  /* The full availability control already carries this information. */
  .pw-injury-header-pill { display: none; }
}

@media (min-width: 769px) and (max-width: 1199px) {
  .pw-topbar { padding-inline: 8px; }
  .pw-brand-img { max-width: 104px; }
  .pw-alert-pill,
  .live-polling-widget,
  .pw-receipt-badge,
  #clvReportBtn,
  #exportBtn { display: none !important; }
  .pw-topbar-right { flex: 1 1 auto; justify-content: flex-end; min-width: 0; }
  .pw-select-slate { width: 150px; max-width: 150px; }
  .pw-injury-header-pill {
    display: inline-flex;
    flex: 0 0 72px;
    min-width: 72px;
    height: 32px;
    min-height: 32px;
    padding-inline: 8px;
    white-space: nowrap;
  }
  .pw-risk-group { padding-inline: 8px; gap: 4px; }
  .pw-stepper-label { font-size: 10px; }
  .pw-filterbar { gap: 6px; padding-inline: 8px; overflow: hidden; }
  .pw-search-wrap { width: clamp(176px, 23vw, 220px); }
  .chip-segment-group[data-eyebrow]::before { display: none; }
}

@media (max-width: 768px) {
  .pw-topbar :is(button, select),
  .pw-filterbar :is(button, input) { min-height: revert; }
  .chip-pill,
  .pw-seg-btn { height: auto; }
  .pw-filterbar { align-items: stretch !important; }
  .pw-chip-scroll-row {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
  }
}

/* Official brand lockup: give the supplied PropWire logo enough room to
   read as the header identity instead of an incidental toolbar icon. */
.pw-brand {
  min-width: 164px;
  padding-right: 4px;
}
.pw-brand-img {
  width: 160px;
  height: 40px;
  max-width: none;
  object-fit: contain;
  object-position: left center;
}

@media (min-width: 769px) and (max-width: 1199px) {
  .pw-brand { min-width: 144px; }
  .pw-brand-img { width: 140px; height: 35px; max-width: none; }
}

@media (max-width: 768px) {
  .pw-brand { min-width: 112px; padding-right: 0; }
  .pw-brand-img {
    width: 112px !important;
    height: 28px !important;
    max-width: none !important;
  }
}

/* ─── Warm Clinical terminal refinement ───────────────────────────────
   A low-fatigue obsidian canvas, restrained semantic color, and clearer
   table/telemetry grouping for long research sessions. */
:root {
  --bg-canvas: #0b0e14;
  --bg-surface: #141a23;
  --bg-elevated: #131a24;
  --surface: #141a23;
  --surface-2: #131a24;
  --surface-3: #1c2432;
  --surface-row-hover: #1a212d;
  --text-primary: #ffffff;
  --text-secondary: #b8c4d8;
  --text-muted: #94a3b8;
  --text: #ffffff;
  --text-dim: #b8c4d8;
  --muted: #94a3b8;
  --faint: #6f7d91;
  --line: #232c3b;
  --line-strong: #2d3a4d;
  --brand-accent: #80c6f6;
  --brand-accent-bright: #80c6f6;
  --brand-accent-dim: rgba(128, 198, 246, 0.14);
  --brand-accent-border: rgba(128, 198, 246, 0.35);
  --warn-amber: #d9a441;
  --amber: #d9a441;
  --danger: #b4535a;
}
html,
body { background: #0b0e14; color: #ffffff; }
.table-scroll {
  background: #070B14;
  border-color: rgba(56, 189, 248, 0.14);
  max-height: 680px;
  overflow-y: auto;
  overflow-x: auto;
  position: relative;
}
.slate-table thead {
  position: sticky;
  top: 0;
  z-index: 25;
}
.slate-table th {
  position: sticky;
  top: 0;
  z-index: 25;
  background: rgba(6, 10, 18, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #94a3b8;
  border-bottom: 1px solid rgba(56, 189, 248, 0.14);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .025);
}
.shell:has(.data-quality-banner:not([hidden])) .slate-table th { top: 0; }
.slate-table th,
.slate-table td { border-right-color: rgba(148, 163, 184, .08); }
.slate-table tbody tr[data-testid="slate-row"] { background: #141a23; }
.slate-table tbody tr[data-testid="slate-row"]:nth-child(even) { background: #121822; }
.slate-table tbody tr[data-testid="slate-row"] td {
  background: inherit;
  transition: background-color .14s ease, box-shadow .14s ease, filter .14s ease;
}
.slate-table tbody tr[data-testid="slate-row"]:hover td {
  background: #1a212d;
  filter: brightness(1.02);
}
.slate-table tbody tr[data-testid="slate-row"]:hover td:first-child {
  box-shadow: inset 2px 0 #6e7681;
}
.slate-table tbody tr[data-testid="slate-row"]:focus-visible td:first-child,
.slate-table tbody tr.keyboard-focus td:first-child {
  box-shadow: inset 2px 0 #10b981;
}
.team-logo-badge { opacity: .72; filter: saturate(.72) drop-shadow(0 1px 2px rgba(0,0,0,.35)); }
.position-box,
.team-chip { color: #8b949e; border-color: #2a3547; background: #151b25; }
.bullet-svg .bullet-track { fill: #263143; }
.bullet-svg .bullet-fill { fill: #465264; }
.bullet-svg .bullet-proj-marker { fill: #10b981; stroke: #0b0e14; }
.bullet-svg .bullet-book-marker { stroke: #d9a441; }
.bullet-svg .bullet-fair-marker { stroke: #dce3ec; }
.bullet-ci-tag { color: #aab5c6; background: #181f2a; border-color: #2a3547; }
.meta-pill.actionable,
.exec-tag.actionable { color: #69dda9; background: rgba(20, 83, 57, .42); border-color: rgba(128, 198, 246, .32); }
.meta-pill.caution { color: #e7bd68; background: rgba(111, 73, 17, .34); border-color: rgba(217, 164, 65, .34); }
.meta-pill.unverified,
.meta-pill.model-only,
.exec-tag-none { color: #94a3b8; background: #181f2a; border-color: #2a3547; }
.meta-pill.model-only::before,
.exec-tag-none::before { content: ''; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: #64748B; margin-right: 5px; vertical-align: middle; }
.injury-warning-tag,
.pw-injury-status-badge.status-out,
.pw-injury-status-badge.status-ir {
  color: #d8898f;
  background: rgba(92, 32, 39, .34);
  border-color: rgba(180, 83, 90, .38);
}
.pw-risk-group {
  gap: 4px;
  padding: 3px;
  background: #151c26;
  border-color: #2a3547;
}
.pw-risk-group .pw-stepper {
  min-height: 24px;
  padding: 0 4px 0 8px;
  border-radius: var(--radius-sm);
  background: #1c2531;
  border: 1px solid #2b3748;
}
.pw-risk-sep { display: none; }
.pw-stepper-label::before { content: '◇'; margin-right: 4px; color: #708097; }
.pw-stepper-val { color: #dce3ec; }
.data-quality-banner.warn {
  background: rgba(245, 158, 11, 0.09);
  border-left-color: var(--accent-warning);
}
.data-quality-banner.error {
  background: rgba(248, 113, 113, 0.09);
  border-left-color: #f87171;
}
.dq-retry-btn {
  position: relative;
  background: #28231d;
  border-color: rgba(217, 164, 65, .42);
  color: #e7c77f;
}
.data-quality-banner.warn .dq-retry-btn,
.data-quality-banner.error .dq-retry-btn {
  animation: retry-attention 2.8s ease-in-out infinite;
}
@keyframes retry-attention {
  0%, 72%, 100% { box-shadow: 0 0 0 0 rgba(217, 164, 65, 0); }
  84% { box-shadow: 0 0 0 4px rgba(217, 164, 65, .10); }
}
@media (prefers-reduced-motion: reduce) {
  .slate-table tbody tr[data-testid="slate-row"] td,
  .dq-retry-btn { transition: none; animation: none !important; }
}
@media (max-width: 768px) {
  .slate-table th { position: static; }
}

/* ─── Telemetry + row anatomy cleanup ─────────────────────────────── */
.pw-topbar { gap: 12px; }
.pw-telemetry-pod {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 3px 4px 3px 8px;
  border: 1px solid rgba(51, 65, 85, .60);
  border-radius: var(--radius);
  background: #161b22;
}
.pw-telemetry-pod .pw-live-status-dot { padding-inline: 2px 6px; }
.pw-telemetry-pod .pw-divider { height: 16px; }
.pw-telemetry-pod .pw-alert-pill {
  border: 0;
  background: transparent;
  padding-inline: 4px 8px;
}
.pw-search-icon {
  position: absolute;
  left: 10px;
  top: 50%;
  z-index: 1;
  transform: translateY(-50%);
  pointer-events: none;
  color: #718096;
}
.pw-search-input { padding-left: 32px; }
.command-search-wrap .pw-search-input { padding-left: 32px !important; }
.uncal-tag,
.driver-badge,
.depth-tag {
  padding: 1px 4px;
  border-color: transparent;
  border-radius: var(--radius-sm);
  background: transparent;
  color: #8b949e;
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .035em;
  text-transform: lowercase;
}
.uncal-tag::before { content: '●'; margin-right: 4px; color: #d9a441; font-size: 6px; }
.model-cell,
.bullet-container { padding-block: 2px; }
.bullet-top-readout {
  gap: 8px;
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(148, 163, 184, .08);
}
.bullet-dim { color: #718096; font-weight: 600; }
.bullet-bold { font-size: 13px; }
.bullet-bottom-sub { padding-top: 2px; }
.row-state-unverified td:last-child {
  position: relative;
  border-left: 2px solid rgba(217, 164, 65, .48);
  background-image: repeating-linear-gradient(
    -45deg,
    rgba(217, 164, 65, .028) 0,
    rgba(217, 164, 65, .028) 5px,
    transparent 5px,
    transparent 10px
  );
}
.edge-cell-unverified {
  min-width: 70px;
  padding-right: 4px;
  border: 0;
  background: transparent;
}
.exec-tag-unverified {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #a58c61;
  font-size: 8px;
  font-weight: 650;
}
.row-state-unverified .row-log-btn {
  background: transparent;
  border-color: #3a3f49;
  color: #8b949e;
}
.model-only-help-wrap { position: relative; }
.model-only-help {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: help;
  font-family: var(--mono);
}
.model-only-help::before { content: none; }
.model-only-help .prop-icon { width: 9px; height: 9px; }
.mobile-model-help { font-size: 12px; font-weight: 600; }
.card-grid-col:has(.mobile-model-help) { position: relative; }
.model-only-help:focus-visible {
  outline: 2px solid #94a3b8;
  outline-offset: 2px;
}
.model-only-popover {
  position: absolute;
  z-index: 45;
  top: calc(100% + 6px);
  right: 0;
  width: min(260px, 72vw);
  padding: 8px 10px;
  border: 1px solid #2d3a4d;
  border-radius: var(--radius);
  background: #1c2432;
  color: #cbd5e1;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .36);
  font: 500 11px/1.45 var(--sans);
  text-align: left;
  white-space: normal;
}
.model-only-popover[hidden] { display: none; }
.slate-table td { border-bottom: 1px solid rgba(148, 163, 184, .10); }

/* v136 final cascade — must follow legacy responsive layers. */
.pw-command-row { display:flex; align-items:center; gap:8px; min-width:0; width:100%; }
.pw-command-row .sport-switcher-bar { position:static; flex:0 0 auto; padding:0; border:0; background:transparent !important; }
.pw-command-row .sport-switcher { padding:2px; }
.pw-command-row .sport-switch-btn { min-height:28px; padding:5px 11px; }
.mobile-usage-ticker { display:none; }
#themeToggle.pw-theme-toggle { display:inline-grid !important; place-items:center; width:32px; height:32px; min-width:32px; padding:0; border:1px solid #343b48; border-radius:var(--radius); background:#202630; color:#a9b4c4; cursor:pointer; }
.theme-icon { width:15px; height:15px; }
.theme-icon-sun { display:none; }
[data-theme="light"] .theme-icon-sun { display:block; }
[data-theme="light"] .theme-icon-moon { display:none; }

@media (max-width:768px) {
  .pw-topbar { height:48px !important; min-height:48px !important; padding-inline:7px !important; background:#0b0e14 !important; }
  .pw-topbar-left { flex:0 0 124px !important; min-width:124px !important; }
  .pw-brand { display:flex !important; align-items:center; width:124px !important; min-width:124px !important; height:36px; padding:2px 5px !important; overflow:hidden; border:1px solid rgba(148,163,184,.16); border-radius:var(--radius); background:#101620; }
  .pw-brand-img { display:block !important; width:118px !important; height:30px !important; max-width:118px !important; object-fit:contain; object-position:left center; }
  .pw-telemetry-pod { display:none !important; }
  .pw-topbar-right { flex:1 1 auto !important; min-width:0 !important; gap:4px !important; }
  .pw-select-slate { flex:1 1 auto !important; width:102px !important; min-width:0 !important; max-width:112px !important; padding-inline:5px !important; }
  .pw-injury-header-pill { display:none !important; }
  .pw-theme-toggle { width:28px; height:27px; min-width:28px; min-height:27px; }
  .pw-filterbar { gap:6px !important; padding:6px 8px 7px !important; background:#121821 !important; }
  .pw-command-row { gap:7px; }
  .pw-command-row .sport-switcher { gap:1px; border-color:#303846; background:#0e131b; }
  .pw-command-row .sport-switch-btn { min-width:42px; min-height:30px; height:30px; padding:0 7px; font-size:10px; }
  .pw-command-row .pw-search-wrap { order:initial !important; flex:1 1 auto !important; width:auto !important; min-width:0; }
  .pw-command-row .pw-search-input { height:30px !important; min-height:30px !important; }
  .sport-switch-btn.active, .sport-switch-btn[data-sport="nba"].active, .chip-pill.active { border-color:rgba(52,211,153,.42) !important; background:rgba(16,185,129,.14) !important; color:#80c6f6 !important; }
  .pw-chip-scroll-row { gap:4px !important; padding:0 !important; }
  .chip-segment-group { padding:1px !important; gap:1px !important; }
  .chip-pill { height:27px !important; min-height:27px !important; padding:0 7px !important; font-size:10px !important; }
  .mobile-usage-ticker { display:grid; grid-template-columns:18px auto minmax(0,1fr) auto 12px; align-items:center; gap:6px; width:100%; min-height:30px; padding:5px 7px; border:1px solid rgba(245,158,11,.22); border-radius:var(--radius); background:rgba(120,73,15,.12); color:#cbd5e1; text-align:left; }
  .mobile-usage-icon { display:grid; place-items:center; width:16px; height:16px; border-radius:50%; background:rgba(245,158,11,.16); color:#fbbf24; font:800 10px/1 var(--mono); }
  .mobile-usage-label { color:#f0b94d; font:700 9px/1 var(--mono); letter-spacing:.05em; text-transform:uppercase; white-space:nowrap; }
  .mobile-usage-summary { min-width:0; overflow:hidden; color:#9da9ba; font:500 10px/1.2 var(--mono); text-overflow:ellipsis; white-space:nowrap; }
  .mobile-usage-count { padding:2px 5px; border-radius:var(--radius-pill); background:rgba(245,158,11,.13); color:#f4c467; font:700 9px/1 var(--mono); }
  .mobile-usage-chevron { color:#8692a5; transition:transform .16s ease; }
  .mobile-usage-ticker.is-open .mobile-usage-chevron { transform:rotate(180deg); }
  .data-quality-banner { min-height:30px; flex-wrap:nowrap !important; padding:5px 8px !important; gap:7px !important; border-left-width:2px; overflow:hidden; }
  .data-quality-banner .dq-item { min-width:0; flex:1 1 auto; flex-basis:auto !important; display:flex; overflow:hidden; }
  .data-quality-banner .dq-item strong { font-size:9px; white-space:nowrap; }
  .data-quality-banner .dq-item span { overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
  .data-quality-banner .dq-item:nth-child(n+2) { display:none; }
  .dq-retry-btn { flex:0 0 auto; min-height:22px !important; padding:2px 6px !important; font-size:9px !important; }
  .injury-drawer-wrap, .pw-injury-drawer, .pw-injury-grid, .pw-injury-card { width:100%; min-width:0; overflow:hidden; }
  .pw-injury-title { max-width:none !important; font-size:0 !important; overflow:visible !important; }
  .pw-injury-title::after { content:'Injury & usage impact'; font-size:10px; }
  .pw-injury-note, .pw-injury-impact-text { white-space:normal !important; overflow-wrap:anywhere; padding-right:4px; }
  .pw-injury-card-footer { display:block !important; min-width:0; }
  .pw-injury-source { display:none !important; }
  .mobile-quant-row { padding:11px 10px !important; }
  .card-id-block, .card-name-group { min-width:0; }
  .card-player-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .card-team-matchup { display:inline; white-space:normal; }
  .uncal-tag { display:inline-flex; margin-left:5px; vertical-align:1px; }
  .card-grid-row { gap:5px !important; }
  .col-model .grid-col-val { color:#80c6f6; }
  .card-btn-log.blocked { opacity:.46; cursor:not-allowed; }
  .mobile-bottom-nav { height:calc(58px + env(safe-area-inset-bottom,0px)); padding:4px 6px env(safe-area-inset-bottom,0px); background:rgba(12,17,24,.96) !important; border-top-color:#293240 !important; box-shadow:0 -8px 28px rgba(0,0,0,.34); }
  .bottom-nav-item { min-width:44px; min-height:48px; gap:2px; border-radius:var(--radius); color:#7f8b9d; }
  .bottom-nav-item.active { background:rgba(16,185,129,.09); color:#80c6f6; }
  .bottom-nav-item.active::before { content:''; position:absolute; top:1px; width:20px; height:2px; border-radius:var(--radius-sm); background:#80c6f6; }
  .bottom-nav-item .prop-icon { width:18px; height:18px; }
  .bottom-nav-item span:not(.bottom-nav-badge) { font-size:10px; }
  .execution-dialog { max-height:92dvh !important; }
  .execution-dialog-header { position:sticky; top:0; z-index:3; background:inherit; }
  .execution-actions { bottom:-22px; }
  .execution-confirm { min-height:50px; }
}

[data-theme="light"] body { background:#edf1f4 !important; color:#17202b; }
[data-theme="light"] .pw-terminal-chrome, [data-theme="light"] .pw-topbar, [data-theme="light"] .pw-filterbar, [data-theme="light"] .mobile-bottom-nav { background:rgba(247,249,250,.97) !important; border-color:#cdd5de !important; }
[data-theme="light"] .pw-search-input, [data-theme="light"] .sport-switcher, [data-theme="light"] .chip-segment-group, [data-theme="light"] .chip-pill:not(.active), [data-theme="light"] .pw-theme-toggle { background:#fff !important; border-color:#c8d1dc !important; color:#526174 !important; }
[data-theme="light"] .mobile-quant-row, [data-theme="light"] .execution-shell, [data-theme="light"] .cross-book-row { background:#f8fafb !important; border-color:#cfd7e1 !important; color:#17202b; }
[data-theme="light"] .card-player-name, [data-theme="light"] .grid-col-val, [data-theme="light"] .execution-identity h3, [data-theme="light"] .execution-summary strong { color:#17202b !important; }
[data-theme="light"] .card-team-matchup, [data-theme="light"] .grid-col-lbl, [data-theme="light"] .grid-col-sub { color:#66758a !important; }
[data-theme="light"] .mobile-usage-ticker { background:#fff8e8; border-color:#dec78e; }
[data-theme="light"] .bottom-nav-item { color:#647287; }
[data-theme="light"] .bottom-nav-item.active { color:#087a5b; background:rgba(5,150,105,.09); }

/* v137 desktop header balance */
@media (min-width:769px) {
  .pw-topbar { min-height:48px; padding-inline:12px; }
  .pw-topbar-left { flex:0 0 auto; min-width:0; overflow:visible; }
  .pw-brand { display:flex; align-items:center; flex:0 0 166px; width:166px; min-width:166px; height:38px; padding:2px 6px; overflow:hidden; border:1px solid rgba(148,163,184,.15); border-radius:var(--radius); background:#101620; }
  .pw-brand-img { display:block; width:156px; height:34px; max-width:156px; object-fit:contain; object-position:left center; }
  .pw-command-row { flex:0 1 400px; min-width:310px; }
  .pw-command-row .sport-switch-btn { min-height:30px; padding-inline:12px; }
  .pw-search-wrap { min-width:160px; }
  .data-quality-banner { top:90px; }
}

@media (min-width:769px) and (max-width:1199px) {
  .pw-brand { flex-basis:150px; width:150px; min-width:150px; }
  .pw-brand-img { width:140px; max-width:140px; height:31px; }
  .pw-injury-header-pill,
  #sniperBtn { display:none !important; }
  .pw-select-slate { width:145px; max-width:145px; }
  .pw-risk-group { padding-inline:7px; }
  .pw-command-row { flex-basis:360px; }
  .pw-filterbar { gap:8px; }
}

@media (min-width:769px) and (max-width:900px) {
  #portfolioBtn { display:none !important; }
  .pw-brand { flex-basis:142px; width:142px; min-width:142px; }
  .pw-brand-img { width:132px; max-width:132px; }
  .pw-select-slate { width:130px; }
}

/* Verified execution review */
.execution-dialog { width: min(680px, calc(100vw - 24px)); margin-right: 0; height: 100dvh; max-height: 100dvh; }
.execution-shell { min-height: 100%; background: #0b0e14; border-left: 1px solid #27303f; }
.execution-body { padding: 0 24px 28px; color: #dce3ec; }
.execution-identity { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 22px 0; border-bottom: 1px solid rgba(148,163,184,.14); }
.execution-identity h3 { margin: 5px 0 0; font: 650 24px/1.2 var(--sans); letter-spacing: -.02em; }
.execution-kicker { color: #94a3b8; font: 650 11px/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.execution-state { flex: 0 0 auto; padding: 7px 10px; border: 1px solid #3b2d19; border-radius: var(--radius-pill); background: #211b12; color: #d9a441; font: 650 11px/1 var(--sans); }
.execution-state.is-ready { border-color: #224733; background: #11281d; color: #65d49a; }
.execution-summary { display: grid; grid-template-columns: repeat(3, 1fr); margin: 18px 0; border: 1px solid #293241; border-radius: var(--radius-lg); overflow: hidden; background: #141922; }
.execution-summary > div { min-width: 0; padding: 14px; border-right: 1px solid rgba(148,163,184,.12); border-bottom: 1px solid rgba(148,163,184,.12); }
.execution-summary > div:nth-child(3n) { border-right: 0; }
.execution-summary > div:nth-last-child(-n+3) { border-bottom: 0; }
.execution-summary span { display: block; margin-bottom: 7px; color: #8290a5; font: 600 10px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.execution-summary strong { display: block; overflow: hidden; color: #edf2f7; font: 650 15px/1.3 var(--mono); text-overflow: ellipsis; white-space: nowrap; }
.execution-summary .execution-time { font-size: 11px; white-space: normal; }
.execution-checks { padding: 13px 15px; border-left: 2px solid #43936a; background: rgba(30,69,48,.22); }
.execution-checks.has-block { border-color: #b7802e; background: rgba(92,60,18,.20); }
.execution-checks h4, .execution-section-heading h4 { margin: 0; font: 650 13px/1.3 var(--sans); }
.execution-checks ul { display: flex; flex-wrap: wrap; gap: 7px 20px; margin: 9px 0 0; padding: 0; list-style: none; color: #aeb9c9; font: 500 12px/1.4 var(--sans); }
.execution-checks li::before { content: '•'; margin-right: 6px; color: #65d49a; font-size: 14px; vertical-align: middle; }
.execution-checks.has-block li::before { content: '!'; color: #d9a441; }
.cross-book-section { margin-top: 24px; }
.execution-section-heading { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.execution-section-heading > span, .execution-note { color: #8b949e; font: 500 11px/1.4 var(--sans); }
.cross-book-list { overflow: hidden; border: 1px solid #293241; border-radius: var(--radius-lg); }
.cross-book-row { display: grid; grid-template-columns: minmax(120px,1fr) 105px 68px 70px; align-items: center; gap: 10px; min-height: 58px; padding: 8px 12px; border-bottom: 1px solid rgba(148,163,184,.12); background: #121720; font-family: var(--mono); }
.cross-book-row:last-child { border-bottom: 0; }
.cross-book-row.is-selected { box-shadow: inset 2px 0 #65d49a; background: #161d26; }
.cross-book-row b { display: block; color: #dce3ec; font: 650 13px/1.3 var(--sans); }
.cross-book-row small { display: block; margin-top: 3px; color: #8b949e; font: 500 10px/1.2 var(--sans); }
.cross-book-row strong { font-size: 12px; }
.cross-book-status { color: #96a3b7; font: 600 10px/1 var(--sans); text-align: right; text-transform: uppercase; }
.execution-note { margin: 9px 2px 0; }
.execution-actions { position: sticky; bottom: -28px; margin: 24px -24px -28px; padding: 16px 24px calc(18px + env(safe-area-inset-bottom)); border-top: 1px solid #293241; background: rgba(15,19,26,.96); backdrop-filter: blur(14px); }
.execution-actions p { margin: 0 0 11px; color: #8e9aae; font: 500 11px/1.45 var(--sans); }
.execution-confirm { width: 100%; min-height: 48px; border: 1px solid #82b52f; border-radius: var(--radius); background: #80c6f6; color: #10150b; font: 700 13px/1 var(--sans); cursor: pointer; transition: filter .16s ease, transform .16s ease; }
.execution-confirm:hover { filter: brightness(1.06); }
.execution-confirm:active { transform: translateY(1px); }
.execution-confirm:disabled { border-color: #303846; background: #202630; color: #778398; cursor: not-allowed; filter: none; }

@media (max-width: 1199px) {
  .pw-telemetry-pod { padding: 0; border: 0; background: transparent; }
}
@media (max-width: 768px) {
  .execution-dialog { width: 100%; height: min(90dvh, 820px); max-height: 90dvh; margin: auto 0 0; }
  .execution-shell { border-left: 0; border-top: 1px solid #27303f; border-radius: 14px 14px 0 0; }
  .execution-body { padding: 0 16px 22px; }
  .execution-summary { grid-template-columns: repeat(2, 1fr); }
  .execution-summary > div:nth-child(3n) { border-right: 1px solid rgba(148,163,184,.12); }
  .execution-summary > div:nth-child(2n) { border-right: 0; }
  .execution-summary > div:nth-last-child(-n+3) { border-bottom: 1px solid rgba(148,163,184,.12); }
  .execution-summary > div:nth-last-child(-n+2) { border-bottom: 0; }
  .cross-book-row { grid-template-columns: minmax(100px,1fr) 86px 55px; gap: 7px; }
  .cross-book-status { grid-column: 2 / 4; text-align: right; }
  .execution-actions { margin-right: -16px; margin-left: -16px; padding-right: 16px; padding-left: 16px; }
  .pw-topbar { gap: 4px; }
  .pw-telemetry-pod { display: inline-flex; flex: 0 0 auto; }
  .pw-search-icon { left: 10px !important; }
  .pw-filterbar .pw-search-input { padding-left: 30px !important; }
  .model-only-help { min-width: 44px; min-height: 32px; justify-content: center; }
  .model-only-popover {
    position: absolute;
    left: auto;
    right: 0;
    top: calc(100% + 4px);
    bottom: auto;
    width: min(240px, 80vw);
    padding: 8px 10px;
    border-radius: var(--radius);
    font-size: 11px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
    z-index: 50;
  }
}

/* ════════════════════════════════════════════════════════════════════════
   HEADER CHROME v3 (rebase survivor) — eyebrow legibility (2026-10-25)
   The slate cascade (above) kept the legacy #6b7789 eyebrow color on
   desktop, where the labels render at ~10px on rgba(20, 26, 35,.97) —
   ~3.1:1 contrast. One stop lighter for a ~4.6:1 floor. Tablet band
   (769–1199px) hides eyebrows entirely; mobile keeps the base color.
   ════════════════════════════════════════════════════════════════════════ */
.chip-segment-group[data-eyebrow]::before {
  color: #8792a6;
}

/* Public research page links in the compliance footer (B4, 2026-10-27) */
.compliance-research-nav {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  margin: .8rem 0 0;
}

/* ─── Header brand lockup v2 — bigger mark, theme-aware variant ──────────
   One vector lockup on every page. The PNG letterboxed to ~35px inside its
   40px box (917x199 aspect 4.61 vs a 4:1 box), and the white PROP text was
   invisible on the light topbar. Fix: SVG everywhere + a dark-ink variant
   swapped by CSS on [data-theme="light"]. Lockup grows 40 -> 52px desktop
   (topbar 46 -> 56), 44px tablet, 34px mobile (topbar 48). This end-of-file
   block is the authority for brand sizing; earlier blocks are superseded. */
.pw-brand-dark-only { display: inline-block; }
.pw-brand-light-only { display: none; }
[data-theme="light"] .pw-brand-dark-only { display: none; }
[data-theme="light"] .pw-brand-light-only { display: inline-block; }
/* The brand renders in a dark tile (.pw-brand bg #101620) that otherwise
   never adapts — dark-ink lockup on it would be unreadable in light mode.
   Same light treatment the cascade gives every other chrome surface. */
[data-theme="light"] .pw-brand {
  background: #fff !important;
  border-color: #c8d1dc !important;
}
.pw-topbar { height: 56px; }
.pw-brand { min-width: 216px; }
.pw-brand-img { width: 208px; height: 52px; max-width: none; object-fit: contain; object-position: left center; }
@media (min-width: 901px) and (max-width: 1199px) {
  .pw-topbar { height: 52px; }
  .pw-brand { min-width: 184px; }
  .pw-brand-img { width: 176px; height: 44px; }
}
@media (min-width: 769px) and (max-width: 900px) {
  /* topbar keeps auto-height wrap behavior from the <900px block */
  .pw-brand { min-width: 184px; }
  .pw-brand-img { width: 176px; height: 44px; }
}
@media (max-width: 768px) {
  /* Mobile brand renders inside the compact chip (border/bg from the v3
     cascade at .pw-brand ≤768); only its size grows here. Chip 124 -> 148px,
     lockup 118x30 -> 136x34 (exact 4:1, no letterbox). */
  .pw-topbar { height: 48px !important; min-height: 48px !important; }
  .pw-topbar-left { flex: 0 0 148px !important; min-width: 148px !important; }
  .pw-brand { width: 148px !important; min-width: 148px !important; }
  .pw-brand-img { width: 136px !important; height: 34px !important; max-width: 136px !important; }
}

/* ─── Brand micro-interaction v3 — glow, light-theme aware ────────────────
   Supersedes the line-7105 hover rule (same specificity, later block wins).
   Glow-only: wordmarks shouldn't move (Linear/Vercel pattern); reduced-
   motion users get a static logo. */
.pw-brand { transition: background-color .15s ease, border-color .15s ease; }
.pw-brand-img { transition: filter .18s ease; }
.pw-brand:hover .pw-brand-img {
  filter: drop-shadow(0 0 9px rgba(128, 198, 246, .38)) drop-shadow(0 0 2px rgba(128, 198, 246, .25));
}
[data-theme="light"] .pw-brand:hover .pw-brand-img {
  filter: drop-shadow(0 0 7px rgba(128, 198, 246, .30));
}
@media (prefers-reduced-motion: reduce) {
  .pw-brand, .pw-brand-img { transition: none; }
}
/* Mobile chip: the ≤768 cascade sets .pw-brand-img { display:block !important }
   on BOTH variant imgs, which out-ranks the [data-theme] swap (no !important)
   -> light theme showed the dark-ink SVG on the white chip ("Prop" ghosted
   invisible). Re-assert the swap at equal importance; attr selector wins. */
@media (max-width: 768px) {
  .pw-brand-dark-only { display: inline-block !important; }
  .pw-brand-light-only { display: none !important; }
  [data-theme="light"] .pw-brand-dark-only { display: none !important; }
  [data-theme="light"] .pw-brand-light-only { display: inline-block !important; }
}

/* ════════════════════════════════════════════════════════════════════════
   DARK RESTYLE v4 — FanDuel-calibrated baby blue (2026-10-27)
   One hue family: obsidian navy canvas/surfaces, white primary text,
   baby-blue brand accent. The terminal is dark-locked in app.js §11 (no
   light surface; stale persisted light prefs are cleared at boot). The
   mobile bottom-nav active state kept legacy emerald literals in the
   ≤768 blocks above — later block wins here — but nav-active is brand
   chrome, not semantic green, so it joins the brand accent. Semantic
   emerald intentionally stays for model/edge meaning (projection markers,
   edge values, WIN chips); amber/red stay for injury & grade states.
   The lime→baby-blue sweep and slate-gray→navy unification live in the
   cascade above; this block only pins what out-ranked it.
   ════════════════════════════════════════════════════════════════════════ */
.bottom-nav-item.active { background: rgba(128, 198, 246, .10); color: var(--baby-blue); }
.bottom-nav-item.active::before { background: var(--baby-blue); }

/* ════════════════════════════════════════════════════════════════════════
   HEADER DENSITY PASS (2026-10-27 owner review)
   The receipt badge duplicates the polling widget's trust signal and was
   the widest chip in the topbar; demote it below 1500px so the
   logo / feed-status / slate / Gate / Kelly cluster breathes at 1280
   (also retires the pre-existing 1280 topbar overflow). Wider cluster
   separation + tighter intra-cluster gaps so controls read as groups.
   ════════════════════════════════════════════════════════════════════════ */
@media (max-width: 1499px) {
  .pw-receipt-badge { display: none; }
}
.pw-topbar { gap: 14px; }
.pw-topbar-left, .pw-topbar-right { gap: 8px; }

/* ════════════════════════════════════════════════════════════════════
   v147 SPORTSBOOK TERMINAL SYSTEM — owner spec 2026-10-27
   FanDuel dark × Bloomberg institutional: dense, quiet chrome, electric
   focus. Tokens live in :root (--bg-app / --bg-card / --accent-primary).
   This layer owns: density, command bar, status pills, badges,
   illumination, motion. Cascade-last authority.
   ════════════════════════════════════════════════════════════════════ */

/* ── 1. DATA DENSITY: scan 10+ rows without scrolling ── */
.slate-table td {
  height: 50px;
  padding: 5px 12px;
}
.slate-table th {
  height: 32px;
  padding: 0 12px;
  font-size: 9.5px;
  letter-spacing: 0.07em;
  color: var(--text-muted-2);
  background: #10151e;
}
button, select, input { min-height: 36px; }
.player-cell { gap: 8px; }
.player-meta-line .cell-sub { font-weight: 400; color: var(--text-muted-2); }

/* ── 2. POSITION BADGES: clean mono anchoring ── */
.position-box,
.team-chip {
  width: 26px;
  height: 21px;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.04);
  color: #a9b4c4;
  font: 650 9.5px/1 var(--mono);
  letter-spacing: 0.06em;
}

/* ── 3. ROWS: hover = user token, accent anchor, emerald focus ── */
.slate-table tbody tr[data-testid="slate-row"] { background: var(--bg-card); }
.slate-table tbody tr[data-testid="slate-row"]:nth-child(even) { background: #121822; }
.slate-table tbody tr[data-testid="slate-row"] td {
  transition: background-color 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}
.slate-table tbody tr[data-testid="slate-row"]:hover td {
  background: var(--bg-card-hover);
  filter: none;
}
.slate-table tbody tr[data-testid="slate-row"]:hover td:first-child {
  box-shadow: inset 2px 0 var(--accent-primary-bright);
}
.slate-table tbody tr[data-testid="slate-row"]:focus-visible td:first-child,
.slate-table tbody tr.keyboard-focus td:first-child {
  box-shadow: inset 2px 0 var(--accent-success);
}

/* ── 4. STATUS PILLS: banners → compact floating warning badges ── */
.data-quality-banner {
  position: sticky;
  top: 133px;
  z-index: 34;
  display: flex;
  flex-wrap: nowrap;
  width: fit-content;
  max-width: min(96%, 900px);
  min-height: 0;
  margin: 8px auto 0;
  align-items: center;
  gap: 10px;
  padding: 5px 8px 5px 13px;
  border: 1px solid rgba(245, 158, 11, 0.35);
  border-left: 3px solid var(--accent-warning);
  border-radius: var(--radius-pill);
  background: rgba(245, 158, 11, 0.09);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 8px 22px -10px rgba(0, 0, 0, 0.55);
  color: #d6c6a4;
}
.data-quality-banner .dq-item {
  min-width: 0;
  flex: 0 1 auto;
  font-size: 10.5px;
  gap: 6px;
  padding: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.data-quality-banner .dq-item strong {
  flex: 0 0 auto;
  font-size: 9.5px;
  letter-spacing: 0.06em;
  color: var(--accent-warning);
}
.dq-retry-btn {
  flex: 0 0 auto;
  min-height: 22px;
  padding: 2px 11px;
  border: 1px solid rgba(245, 158, 11, 0.4);
  border-radius: var(--radius-pill);
  background: transparent;
  color: #e3d5b5;
  font-size: 10.5px;
}
.dq-retry-btn:hover {
  background: rgba(245, 158, 11, 0.14);
  border-color: rgba(245, 158, 11, 0.6);
}

/* ── 5. COMMAND BAR: ultra-compact, pill actives, chevrons ── */
.pw-terminal-chrome { font-size: 11.5px; }
.pw-terminal-chrome,
.pw-filterbar,
.sport-switcher-bar {
  background: rgba(15, 19, 28, 0.97) !important;
  border-color: rgba(255, 255, 255, 0.08) !important;
}
.pw-select,
.pw-btn-nav,
.pw-btn-icon,
.pw-stepper {
  background: var(--bg-card-hover);
  border-color: rgba(255, 255, 255, 0.10);
}
.pw-select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 26px;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath d='M1 1l3 3 3-3' stroke='%238b949e' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
}
.pw-select:hover,
.pw-btn-nav:hover,
.pw-btn-icon:hover {
  border-color: rgba(128, 198, 246, 0.55);
  color: #dbe6f7;
}

/* active toggles: FanDuel-blue pill + border illumination */
.chip-pill.active,
.tier-pill-btn.active,
.pw-btn-nav.active,
.pw-seg-btn.active,
.sport-switcher-bar .active {
  background: var(--accent-primary) !important;
  border-color: rgba(128, 198, 246, 0.75) !important;
  color: #ffffff !important;
  box-shadow:
    0 0 0 1px rgba(128, 198, 246, 0.4),
    0 0 14px rgba(128, 198, 246, 0.22),
    var(--edge-hi) !important;
}
.chip-pill:hover:not(.active),
.tier-pill-btn:hover:not(.active),
.pw-seg-btn:hover:not(.active) {
  border-color: rgba(128, 198, 246, 0.5);
  color: #f8fafc;
}

/* ── 6. CARDS & MODALS: layered surfaces, frosted glassmorphism ── */
.prop-card {
  background: rgba(14, 17, 23, 0.75);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1);
}
.prop-card:hover {
  background: rgba(22, 27, 36, 0.88);
  border-color: rgba(128, 198, 246, 0.45);
  box-shadow: 0 12px 32px -10px rgba(0, 0, 0, 0.75), 0 0 20px rgba(128, 198, 246, 0.12);
  transform: translateY(-1px);
}
.pw-select:focus-visible,
input:focus-visible,
select:focus-visible {
  border-color: rgba(128, 198, 246, 0.8);
  box-shadow: 0 0 0 2px rgba(128, 198, 246, 0.35);
  outline: none;
}

/* ── 7. MOTION: buttery 0.15s everywhere interactive ── */
.chip-pill, .tier-pill-btn, .pw-btn-nav, .pw-btn-icon, .pw-select,
.pw-stepper button, .dq-retry-btn, .star-btn, .inspect-button,
.card-btn-log, .view-toggle button, .table-toggle button, .pw-seg-btn,
.chip-count-pill, .sport-switcher-bar button {
  transition: all 0.15s ease;
}
@media (prefers-reduced-motion: reduce) {
  .chip-pill, .tier-pill-btn, .pw-btn-nav, .pw-btn-icon, .pw-select,
  .pw-stepper button, .dq-retry-btn, .star-btn, .inspect-button,
  .card-btn-log, .prop-card,
  .slate-table tbody tr[data-testid="slate-row"] td {
    transition: none !important;
  }
}

/* ── 8. NUMERIC ALIGNMENT: strict tabular figures everywhere ── */
.card-hero-edge, .sparkline-current, .dq-item, .chip-count-pill,
.matchup-sub-row, .edge-cell strong {
  font-variant-numeric: tabular-nums lining-nums;
}

/* ── 9. BULLET MICRO-BARS: quiet track, emerald projection ── */
.bullet-svg .bullet-track { fill: #1d2531; }
.bullet-svg .bullet-fill { fill: #334052; }
.bullet-svg .bullet-proj-marker { fill: var(--accent-success); stroke: #0b0e14; }
.bullet-svg .bullet-book-marker { stroke: #d9a441; }
.bullet-svg .bullet-fair-marker { stroke: #dce3ec; }
.bullet-ci-tag {
  color: #aab5c6;
  background: #161d29;
  border-color: #2a3547;
}

/* ═══════════════════════════════════════════════════════════════════════
   v148 · OWNER REVISION PASS — brand clearance + mint accent layer
   (a) Brand tile clearance: the v3 lockup's desktop img (208×52) was
       clipped 7px top/bottom by the legacy 38px .pw-brand chip
       (overflow:hidden) — the P stem lost its cap. The tile now hugs
       the lockup at every breakpoint; the ≤768 chip keeps its
       !important box (probe-verified 0px cut there already).
   (b) Mint accent layer: restore the owner's pre-neon green system
       (#80c6f6 / #80c6f6 / rgba(16,185,129,·)) on active toggles,
       keyboard focus, live ping and the projection marker. FanDuel blue
       stays on primary CTAs, links, inputs and the brand lockup.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── 10. BRAND TILE: size to the lockup, never clip the P ─────────── */
.pw-brand {
  height: auto;
  width: auto;
  min-width: 0;
  max-width: none;
  flex: 0 0 auto;
  padding: 1px 8px;
}

/* ── 11. MINT ACCENT LAYER: active toggles ────────────────────────── */
.chip-pill.active,
.tier-pill-btn.active,
.pw-btn-nav.active,
.pw-seg-btn.active,
.sport-switcher-bar .active {
  background: rgba(128, 198, 246, 0.16) !important;
  border-color: rgba(128, 198, 246, 0.45) !important;
  color: #80c6f6 !important;
  box-shadow:
    0 0 0 1px rgba(128, 198, 246, 0.26),
    0 0 14px rgba(128, 198, 246, 0.16),
    var(--edge-hi) !important;
}
.sport-switch-btn.active::before {
  background: #80c6f6;
  border-color: rgba(128, 198, 246, 0.8);
  box-shadow: 0 0 8px rgba(128, 198, 246, 0.55);
}
.bottom-nav-item.active {
  background: rgba(128, 198, 246, 0.09);
  color: #80c6f6;
}
.bottom-nav-item.active::before { background: #80c6f6; }

/* Keyboard focus rail: mint (was a sky/emerald mix) */
tr.keyboard-focus,
tr.terminal-focused,
tr[data-focused="true"] {
  background: linear-gradient(90deg, rgba(128, 198, 246, 0.08) 0%, transparent 100%) !important;
}
tr.keyboard-focus td:first-child,
tr.terminal-focused td:first-child,
tr[data-focused="true"] td:first-child {
  border-left: 2px solid #80c6f6 !important;
}
.slate-table tbody tr.keyboard-focus td:first-child {
  box-shadow: inset 2px 0 #80c6f6;
}

/* Live ping ring wraps a green dot — ring goes green too */
.pw-live-status-dot .polling-dot::after,
.live-polling-widget .polling-dot::after {
  border-color: rgba(128, 198, 246, 0.7);
}

/* Bullet projection marker: mint (v146 value — pops on the quiet track,
   brighter than --accent-success which stays on profit text) */
.bullet-svg .bullet-proj-marker { fill: #80c6f6; }

/* ═══ v149 — iPhone webapp: standalone safe-area + install polish ═══ */

/* Installed (standalone) mode: the status-bar area (notch / Dynamic Island)
   must carry the chrome background, because black-translucent draws the page
   full-bleed under it. The spacer lives on the sticky chrome container so the
   56px topbar and the v148 brand-tile math stay untouched. In Safari browser
   mode env(safe-area-inset-top) resolves to 0 → visual no-op. */
@media (display-mode: standalone) {
  .pw-terminal-chrome { padding-top: env(safe-area-inset-top, 0px); }
  .pw-topbar {
    padding-left: max(12px, env(safe-area-inset-left, 0px));
    padding-right: max(12px, env(safe-area-inset-right, 0px));
  }
  .data-quality-banner { top: calc(90px + env(safe-area-inset-top, 0px)); }
}

/* App-like chrome controls: no double-tap zoom, no long-press callout.
   Content (table rows, links, dialogs) keeps native iOS text behavior. */
/* App-like chrome controls: no double-tap zoom, no long-press callout.
   Content (table rows, links, dialogs) keeps native iOS text behavior. */
.pw-topbar button,
.pw-topbar select,
.mobile-bottom-nav,
.bottom-nav-item,
.chip-pill,
.tier-pill-btn,
.pw-seg-btn,
.sport-switch-btn,
.pw-btn-nav {
  touch-action: manipulation;
  -webkit-touch-callout: none;
}

/* iOS Safari: block auto text inflation on rotation */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

/* ==========================================================================
   2027 PRODUCTION FINTECH TELEMETRY SYSTEM (STRICT COHESION & CALM)
   ========================================================================== */

/* 1. Strict Canvas & Translucent Chrome */
html, body {
  background: #070709 !important;
  color: #f8fafc !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
}

.pw-terminal-chrome {
  background: rgba(7, 7, 9, 0.88) !important;
  backdrop-filter: blur(32px) saturate(200%) !important;
  -webkit-backdrop-filter: blur(32px) saturate(200%) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.065) !important;
}

/* 2. Calm Minimal Header Strip */
.pw-topbar {
  background: transparent !important;
  height: 52px !important;
  padding: 0 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
}

.pw-topbar-left {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}

.pw-topbar-right {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

/* Hide cluttering desktop debug controls from primary topbar */
.pw-topbar .pw-risk-group,
.pw-topbar .live-polling-widget,
.pw-topbar .pw-receipt-badge,
.pw-topbar #availabilityToggle,
.pw-topbar .pw-divider,
.pw-topbar #clvReportBtn,
.pw-topbar #exportBtn {
  display: none !important;
}

/* Subtle Telemetry Indicator */
.pw-telemetry-pod {
  display: inline-flex !important;
  align-items: center !important;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}

.pw-live-status-dot {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 3px 9px !important;
  border-radius: 999px !important;
  background: rgba(14, 17, 24, 0.85) !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
  font-family: var(--mono) !important;
  font-size: 10px !important;
  color: #727D91 !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
}

.pw-live-status-dot .polling-dot {
  width: 5px !important;
  height: 5px !important;
  border-radius: 999px !important;
  background: #80c6f6 !important;
  box-shadow: 0 0 8px rgba(128, 198, 246, 0.85) !important;
}

/* Header Action Pills */
#slateSelector.pw-select {
  background: rgba(14, 17, 24, 0.85) !important;
  border: 1px solid rgba(255, 255, 255, 0.07) !important;
  border-radius: 999px !important;
  color: #f8fafc !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  height: 30px !important;
  padding: 0 12px !important;
  cursor: pointer !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
}

#slimInjuryBanner.pw-injury-header-pill {
  background: rgba(14, 17, 24, 0.85) !important;
  border: 1px solid rgba(255, 255, 255, 0.07) !important;
  border-radius: 999px !important;
  color: #727D91 !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  height: 30px !important;
  padding: 0 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
}

#slimInjuryBanner .slim-injury-dot {
  background: #fbbf24 !important;
  width: 5px !important;
  height: 5px !important;
  border-radius: 999px !important;
}

#pricingBtn.pw-btn-upgrade {
  background: rgba(128, 198, 246, 0.12) !important;
  border: 1px solid rgba(128, 198, 246, 0.32) !important;
  border-radius: 999px !important;
  color: #80c6f6 !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  height: 30px !important;
  padding: 0 14px !important;
  cursor: pointer !important;
  box-shadow: 0 0 12px rgba(128, 198, 246, 0.16), inset 0 1px 0 rgba(128, 198, 246, 0.22) !important;
  transition: all 0.15s ease !important;
}

#pricingBtn.pw-btn-upgrade:hover {
  background: rgba(128, 198, 246, 0.20) !important;
  border-color: #80c6f6 !important;
  transform: translateY(-1px) !important;
}

#portfolioBtn.pw-btn-ledger {
  background: rgba(14, 17, 24, 0.85) !important;
  border: 1px solid rgba(255, 255, 255, 0.07) !important;
  border-radius: 999px !important;
  color: #727D91 !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  height: 30px !important;
  padding: 0 12px !important;
  cursor: pointer !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
}

#portfolioBtn .portfolio-count-badge {
  background: #80c6f6 !important;
  color: #070709 !important;
  font-weight: 800 !important;
  font-size: 9.5px !important;
  border-radius: 999px !important;
  padding: 1px 5px !important;
  margin-left: 4px !important;
}

#sniperBtn.pw-btn-sniper {
  background: rgba(14, 17, 24, 0.85) !important;
  border: 1px solid rgba(255, 255, 255, 0.07) !important;
  border-radius: 999px !important;
  color: #727D91 !important;
  font-size: 11.5px !important;
  height: 30px !important;
  padding: 0 12px !important;
}

#mobileMenuBtn.pw-mobile-menu-btn {
  background: rgba(14, 17, 24, 0.85) !important;
  border: 1px solid rgba(255, 255, 255, 0.07) !important;
  border-radius: 999px !important;
  color: #727D91 !important;
  width: 30px !important;
  height: 30px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* 3. Command Bar & Quiet Recessed Trench Filters */
.pw-filterbar {
  background: transparent !important;
  padding: 6px 16px 10px 16px !important;
  border-top: none !important;
}

.pw-command-row {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin-bottom: 6px !important;
}

.sport-switcher {
  background: rgba(12, 15, 21, 0.7) !important;
  border: 1px solid rgba(255, 255, 255, 0.035) !important;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.5) !important;
  border-radius: 999px !important;
  padding: 2.5px !important;
  display: inline-flex !important;
  gap: 2.5px !important;
}

.sport-switch-btn {
  border: none !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: #727D91 !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  padding: 4px 13px !important;
  cursor: pointer !important;
  transition: all 0.15s ease !important;
}

.sport-switch-btn.active {
  background: #1A202C !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  color: #ffffff !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
}

.command-search-wrap {
  background: rgba(12, 15, 21, 0.7) !important;
  border: 1px solid rgba(255, 255, 255, 0.035) !important;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.5) !important;
  border-radius: 999px !important;
  height: 32px !important;
  padding: 0 12px !important;
}

.command-search-wrap .pw-search-input {
  background: transparent !important;
  border: none !important;
  color: #ffffff !important;
  font-size: 12px !important;
}

.chip-segment-group {
  background: rgba(12, 15, 21, 0.7) !important;
  border: 1px solid rgba(255, 255, 255, 0.035) !important;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.5) !important;
  border-radius: 999px !important;
  padding: 2.5px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 2.5px !important;
}

.chip-segment-group .chip-pill {
  border: none !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: #727D91 !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  padding: 4px 12px !important;
  cursor: pointer !important;
  transition: all 0.15s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.chip-segment-group .chip-pill:hover {
  color: #cbd5e1 !important;
}

.chip-segment-group .chip-pill.active {
  background: #1A202C !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
}

.chip-segment-group .chip-count-pill {
  background: rgba(128, 198, 246, 0.14) !important;
  color: #80c6f6 !important;
  border-radius: 999px !important;
  font-size: 9.5px !important;
  font-weight: 800 !important;
  padding: 1px 5px !important;
  margin-left: 4px !important;
}

.chip-pill.chip-sniper-btn,
.chip-pill.chip-more-btn {
  background: rgba(12, 15, 21, 0.7) !important;
  border: 1px solid rgba(255, 255, 255, 0.035) !important;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.5) !important;
  border-radius: 999px !important;
  color: #727D91 !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  padding: 4px 12px !important;
}

.mobile-usage-ticker {
  background: rgba(12, 15, 21, 0.7) !important;
  border: 1px solid rgba(255, 255, 255, 0.035) !important;
  border-radius: 999px !important;
  color: #727D91 !important;
  font-size: 10.5px !important;
  padding: 3px 10px !important;
  margin-top: 6px !important;
}

/* 4. Sovereign Luminous Slate Overview Telemetry Card */
.pw-hero-telemetry-suite {
  display: flex;
  flex-direction: column;
  width: 100%;
  margin: 10px 0 16px 0;
}

.pw-hero-quant-card {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 1px !important;
  background: rgba(56, 189, 248, 0.08) !important;
  border: 1px solid rgba(56, 189, 248, 0.14) !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  box-shadow: 0 24px 60px rgba(2, 6, 23, 0.9) !important;
  position: relative !important;
}

/* Specular Apex Rim Light */
.telemetry-top-glow,
.pw-hero-quant-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(56, 189, 248, 0.40), transparent);
  pointer-events: none;
  z-index: 2;
}

.telemetry-col {
  background: #070B14 !important;
  padding: 14px 18px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  min-height: 84px !important;
  position: relative !important;
}

.telemetry-col-label {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  color: #64748B !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
}

.telemetry-metric-row {
  display: flex !important;
  align-items: baseline !important;
  gap: 8px !important;
  margin-top: 3px !important;
}

.telemetry-metric-number {
  font-family: var(--mono), -apple-system, BlinkMacSystemFont, "SF Pro Display" !important;
  font-size: 26px !important;
  font-weight: 800 !important;
  color: #ffffff !important;
  letter-spacing: -0.03em !important;
  line-height: 1 !important;
  font-variant-numeric: tabular-nums !important;
}

.telemetry-metric-unit {
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  color: #64748B !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
}

.telemetry-live-dot {
  width: 6px !important;
  height: 6px !important;
  border-radius: 999px !important;
  background: #38bdf8 !important;
  box-shadow: 0 0 8px #38bdf8 !important;
  display: inline-block !important;
  margin-left: 2px !important;
}

.telemetry-subtext {
  font-size: 11px !important;
  color: #64748B !important;
  margin-top: 2px !important;
}

.telemetry-tier-legend {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 5px !important;
  margin-top: 6px !important;
  font-family: var(--mono) !important;
  font-size: 9.5px !important;
}

.telemetry-tier-legend .tier-chip {
  padding: 1.5px 6px !important;
  border-radius: 4px !important;
  background: rgba(255, 255, 255, 0.03) !important;
  color: #64748B !important;
}

.telemetry-tier-legend .tier-chip.active {
  background: rgba(56, 189, 248, 0.10) !important;
  border: 1px solid rgba(56, 189, 248, 0.30) !important;
  color: #38bdf8 !important;
}

.telemetry-tier-legend .tier-chip.alpha {
  background: rgba(59, 130, 246, 0.15) !important;
  color: #93c5fd !important;
}

.telemetry-progress-track {
  width: 100% !important;
  height: 5px !important;
  border-radius: 999px !important;
  background: #1e293b !important;
  overflow: hidden !important;
  margin-top: 6px !important;
}

.telemetry-progress-bar {
  /* v175: width driven by updateClvRibbon() from the graded ledger (0% until
     real data arrives) — never a hardcoded marketing figure. */
  width: var(--clv-beat-rate, 0%) !important;
  height: 100% !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, #2563eb, #38bdf8, #22d3ee) !important;
  box-shadow: 0 0 10px rgba(56, 189, 248, 0.5) !important;
}

.telemetry-gate-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 6px 10px !important;
  border-radius: 10px !important;
  background: rgba(245, 158, 11, 0.05) !important;
  border: 1px solid rgba(245, 158, 11, 0.25) !important;
  margin-top: 4px !important;
}

.gate-status-text {
  font-family: var(--mono) !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
  color: #fcd34d !important;
}

.gate-status-dot {
  width: 6px !important;
  height: 6px !important;
  border-radius: 999px !important;
  background: #fbbf24 !important;
  box-shadow: 0 0 8px #fbbf24 !important;
}

.telemetry-health-box {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 6px 10px !important;
  border-radius: 10px !important;
  background: rgba(255, 255, 255, 0.02) !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  margin-top: 4px !important;
}

.telemetry-health-status {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 11px !important;
}

.telemetry-health-status .health-dot {
  width: 6px !important;
  height: 6px !important;
  border-radius: 999px !important;
  background: #38bdf8 !important;
  box-shadow: 0 0 8px #38bdf8 !important;
}

.telemetry-health-status .health-title {
  font-family: var(--mono) !important;
  font-weight: 700 !important;
  color: #e2e8f0 !important;
}

.telemetry-health-status .health-age {
  color: #64748B !important;
}

.telemetry-refresh-btn {
  width: 24px !important;
  height: 24px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 6px !important;
  background: rgba(56, 189, 248, 0.10) !important;
  border: 1px solid rgba(56, 189, 248, 0.20) !important;
  color: #38bdf8 !important;
  cursor: pointer !important;
  transition: all 0.15s ease !important;
}

.telemetry-refresh-btn:hover {
  background: rgba(56, 189, 248, 0.20) !important;
  border-color: rgba(56, 189, 248, 0.40) !important;
  color: #ffffff !important;
}

.telemetry-root-hash {
  font-family: var(--mono) !important;
  font-size: 9.5px !important;
  color: #475569 !important;
}

@media (max-width: 900px) {
  .pw-hero-quant-card {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 600px) {
  .pw-hero-quant-card {
    grid-template-columns: 1fr !important;
  }
}

.hero-card-meta {
  display: none !important;
}

.hero-card-tag {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  color: #64748B !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
}

.hero-card-status-pill {
  display: none !important;
}
/* v175 repair: removed orphaned `letter-spacing: 0.05em !important; }` debris
   (stray closing brace knocked the stylesheet's brace balance -1 from here
   on, first surfacing as dead v174/v175 rules at EOF) */

.hero-status-dot {
  width: 4.5px !important;
  height: 4.5px !important;
  border-radius: 999px !important;
  background: #80c6f6 !important;
  box-shadow: 0 0 8px #80c6f6 !important;
}

.hero-metric-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: -2px;
}

.hero-metric-val {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 40px !important;
  font-weight: 900 !important;
  color: #ffffff !important;
  letter-spacing: -0.055em !important;
  line-height: 0.95 !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.6) !important;
}

.hero-metric-unit {
  font-size: 12.5px !important;
  font-weight: 700 !important;
  color: #64748B !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  margin-left: 5px !important;
}

.hero-metric-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  padding: 4px 12px !important;
  border-radius: 999px !important;
  background: rgba(128, 198, 246, 0.12) !important;
  border: 1px solid rgba(128, 198, 246, 0.28) !important;
  color: #80c6f6 !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  box-shadow: 0 0 12px rgba(128, 198, 246, 0.18) !important;
}

.hero-metric-sub {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 11.5px !important;
  color: #64748B !important;
  line-height: 1.35 !important;
  margin-top: -2px !important;
}

/* Precision Hurdle Calibration Meter */
.hero-hurdle-scale {
  margin: 2px 0 0 0 !important;
  padding: 6px 12px !important;
  background: rgba(7, 9, 13, 0.8) !important;
  border: 1px solid rgba(255, 255, 255, 0.04) !important;
  border-radius: 10px !important;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.6) !important;
}

.hurdle-scale-track {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.hurdle-tier {
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
  font-family: var(--mono) !important;
  font-size: 9px !important;
  letter-spacing: 0.04em !important;
  color: #64748B !important;
  font-weight: 600 !important;
}

.hurdle-tier.active {
  color: #80c6f6 !important;
  font-weight: 800 !important;
  text-shadow: 0 0 8px rgba(128, 198, 246, 0.45) !important;
}

.hurdle-tier .tier-dot {
  width: 4px !important;
  height: 4px !important;
  border-radius: 50% !important;
  background: #1E2533 !important;
}

.hurdle-tier .tier-dot.active {
  width: 6px !important;
  height: 6px !important;
  background: #80c6f6 !important;
  box-shadow: 0 0 8px #80c6f6 !important;
}

.hero-pods-row {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 8px !important;
  margin-top: 2px !important;
}

/* Recessed Data Well Pods */
.hero-pod {
  background: rgba(9, 11, 16, 0.85) !important;
  border: 1px solid rgba(255, 255, 255, 0.04) !important;
  box-shadow: 
    inset 0 1.5px 3px 0 rgba(0, 0, 0, 0.6),
    inset 0 0 0 1px rgba(0, 0, 0, 0.3) !important;
  border-radius: 14px !important;
  padding: 10px 12px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}

.hero-pod-lbl {
  font-size: 9px !important;
  font-family: var(--mono) !important;
  font-weight: 700 !important;
  color: #64748B !important;
  letter-spacing: 0.11em !important;
  text-transform: uppercase !important;
}

.hero-pod-val {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  color: #ffffff !important;
  letter-spacing: -0.03em !important;
  font-variant-numeric: tabular-nums !important;
  line-height: 1.1 !important;
}

.hero-pod-sub {
  font-size: 10px !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  color: #5D6678 !important;
  letter-spacing: -0.01em !important;
}

/* 5. Player Cards (Calibrated Squircles, Luminous Obsidian Surface) */
.card-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  padding: 6px 0 90px 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  max-width: 840px !important;
  margin: 0 auto !important;
}

@media (min-width: 900px) {
  .card-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)) !important;
  }
}

/* Cleaned legacy quant card block — deferred to section 4 below */

/* 6. Modernized Table View (Luminous Obsidian Container) */
.table-wrap {
  background: linear-gradient(180deg, rgba(20, 24, 34, 0.78) 0%, rgba(12, 15, 22, 0.88) 100%) !important;
  backdrop-filter: blur(32px) saturate(200%) !important;
  -webkit-backdrop-filter: blur(32px) saturate(200%) !important;
  border: 1px solid rgba(255, 255, 255, 0.065) !important;
  border-radius: 24px !important;
  overflow: hidden !important;
  max-width: 840px !important;
  margin: 12px auto 0 auto !important;
  box-shadow: 
    inset 0 1px 0 0 rgba(255, 255, 255, 0.12),
    0 24px 48px -12px rgba(0, 0, 0, 0.88) !important;
}

.pw-table {
  width: 100% !important;
  border-collapse: collapse !important;
  background: transparent !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
}

.pw-table thead th {
  background: rgba(7, 9, 13, 0.7) !important;
  color: #64748B !important;
  font-family: var(--mono) !important;
  font-size: 9.5px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.11em !important;
  padding: 12px 16px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04) !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
}

.pw-table tbody tr {
  background: transparent !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.035) !important;
  transition: background 0.12s ease !important;
}

.pw-table tbody tr:hover {
  background: rgba(255, 255, 255, 0.03) !important;
}

.pw-table tbody tr:last-child {
  border-bottom: none !important;
}

.pw-table td {
  padding: 14px 16px !important;
  vertical-align: middle !important;
  border: none !important;
  color: #f8fafc !important;
}

.pw-table .player-cell-name {
  font-size: 14.5px !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  letter-spacing: -0.015em !important;
}

.pw-table .edge-pill-val {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  color: #80c6f6 !important;
  text-shadow: 0 0 12px rgba(128, 198, 246, 0.35) !important;
}

/* 7. Compact Radar Standby Capsule */
.anti-tout-empty-wrap,
.anti-tout-box,
.empty-slate-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  background: linear-gradient(180deg, rgba(20, 24, 34, 0.78) 0%, rgba(12, 15, 22, 0.88) 100%) !important;
  backdrop-filter: blur(32px) saturate(200%) !important;
  -webkit-backdrop-filter: blur(32px) saturate(200%) !important;
  border: 1px solid rgba(255, 255, 255, 0.065) !important;
  border-radius: 22px !important;
  box-shadow: 
    inset 0 1px 0 0 rgba(255, 255, 255, 0.12),
    0 20px 40px -10px rgba(0, 0, 0, 0.85) !important;
  padding: 28px 22px !important;
  margin: 12px auto !important;
  max-width: 580px !important;
  position: relative !important;
  overflow: hidden !important;
}

.anti-tout-empty-wrap::before,
.anti-tout-box::before,
.empty-slate-card::before {
  content: "";
  position: absolute;
  top: -30px;
  left: 50%;
  transform: translateX(-50%);
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(128, 198, 246, 0.08) 0%, transparent 70%);
  pointer-events: none;
}

.anti-tout-shield {
  font-size: 26px !important;
  margin-bottom: 8px !important;
  filter: drop-shadow(0 0 14px rgba(128, 198, 246, 0.45)) !important;
}

.anti-tout-title {
  color: #ffffff !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
  margin-bottom: 4px !important;
}

.anti-tout-desc {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 12.5px !important;
  line-height: 1.4 !important;
  color: #7E8799 !important;
  max-width: 380px !important;
  margin: 0 0 14px 0 !important;
}

.anti-tout-meta {
  font-family: var(--mono) !important;
  font-size: 10.5px !important;
  color: #525C6E !important;
  margin-bottom: 16px !important;
}

.anti-tout-btn {
  background: #80c6f6 !important;
  color: #070709 !important;
  font-weight: 800 !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 12.5px !important;
  border-radius: 999px !important;
  border: none !important;
  height: 38px !important;
  padding: 0 20px !important;
  box-shadow: 0 2px 14px rgba(128, 198, 246, 0.28) !important;
  cursor: pointer !important;
  transition: transform 0.12s ease !important;
}

.anti-tout-btn:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 18px rgba(128, 198, 246, 0.42) !important;
}

/* 8. Luxury Weightless Frosted Bottom Navigation Dock */
.mobile-bottom-nav {
  position: fixed !important;
  bottom: 18px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: min(330px, calc(100% - 32px)) !important;
  height: 56px !important;
  background: rgba(12, 15, 22, 0.80) !important;
  backdrop-filter: blur(32px) saturate(200%) !important;
  -webkit-backdrop-filter: blur(32px) saturate(200%) !important;
  border: 1px solid rgba(255, 255, 255, 0.10) !important;
  border-radius: 999px !important;
  box-shadow: 
    inset 0 1px 0 rgba(255, 255, 255, 0.14),
    0 20px 45px -8px rgba(0, 0, 0, 0.95),
    0 0 0 1px rgba(0, 0, 0, 0.6) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-around !important;
  padding: 0 6px !important;
  z-index: 999 !important;
}

.bottom-nav-item {
  border-radius: 999px !important;
  padding: 6px 14px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  color: #727D91 !important;
  transition: all 0.15s ease !important;
}

.bottom-nav-item.active {
  background: rgba(128, 198, 246, 0.12) !important;
  border: 1px solid rgba(128, 198, 246, 0.25) !important;
  color: #80c6f6 !important;
  box-shadow: 0 0 12px rgba(128, 198, 246, 0.18) !important;
}

.bottom-nav-item.active .prop-icon {
  stroke: #80c6f6 !important;
  filter: drop-shadow(0 0 4px #80c6f6) !important;
}



/* ═══════════════════════════════════════════════════════════════════════
   v152 — Sportsbook identity layer: self-hosted book wordmark badges +
   cross-book best-price highlight. Cascade-end layer; inherits the v148
   mint map for the best-price accent (#6ee7b7 / rgba(16,185,129,.*)).
   Badges are same-origin (img-src 'self' — zero external requests).
   ═══════════════════════════════════════════════════════════════════════ */
.book-logo {
  width: 34px;
  height: 15px;
  border-radius: 3px;
  object-fit: contain;
  vertical-align: -3px;
  margin-right: 6px;
  background: rgba(255, 255, 255, 0.03);
  flex: 0 0 auto;
}
.book-logo-mini {
  width: 24px;
  height: 11px;
  margin-right: 4px;
  vertical-align: -2px;
  border-radius: 2px;
}
.cross-book-book {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  font-weight: 700;
}
.cross-book-book .book-logo { width: 30px; height: 13px; margin-right: 6px; }
.cross-book-row.is-best {
  background: rgba(16, 185, 129, 0.10);
  box-shadow: inset 2px 0 0 rgba(52, 211, 153, 0.55);
}
.cross-book-row.is-best .best-price { color: #6ee7b7; }
.cross-book-row.is-best .cross-book-status { color: #6ee7b7; font-weight: 600; }
.bullet-bk .book-logo-mini { background: transparent; }
[data-theme="light"] .book-logo { background: rgba(0, 0, 0, 0.05); }
[data-theme="light"] .cross-book-row.is-best .best-price,
[data-theme="light"] .cross-book-row.is-best .cross-book-status { color: #087a5b; }


/* 
===== v155 — player headshots =====================================
   ESPN CDN headshots (a.espncdn.com — CSP img-src allowed since v150).
   Markup pattern: initials always rendered underneath; the <img> sits on top
   and is removed by a delegated capture-phase error listener when a URL dies,
   so the initials become the fallback. No inline styles / handlers (CSP). */
.pw-avatar {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 14%;
  overflow: hidden;
  flex: 0 0 auto;
  background: #16202e;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
  vertical-align: middle;
}
.pw-avatar-initials {
  font-family: var(--pw-font-mono, monospace);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #94a3b8;
  user-select: none;
}
.pw-avatar-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 12%;
  image-rendering: -webkit-optimize-contrast;
}
/* v170 — composite avatar, frameless edition: no round holder, no ring, no
   dark backdrop — the photo IS the avatar (soft rounded rectangle + drop
   shadow for visibility). Team logo rides smaller in a '2027' glass chip:
   electric-lime ring + glow on dark glass (brand token system). Sits fully
   inside the photo edge (parents keep overflow:hidden); dead logos self-remove
   via the delegated error handler. */
.pw-avatar-team-badge {
  position: absolute;
  left: 3%;
  bottom: 3%;
  width: 38%;
  height: 38%;
  box-sizing: border-box;
  border-radius: 50%;
  object-fit: contain;
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.78) 0%, rgba(2, 6, 23, 0.88) 100%);
  border: 1px solid var(--brand-accent-border, rgba(128, 198, 246, 0.45));
  box-shadow: 0 0 12px var(--brand-accent-glow, rgba(128, 198, 246, 0.25)), 0 2px 6px rgba(0, 0, 0, 0.55), inset 0 0 8px rgba(128, 198, 246, 0.10);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
[data-theme="light"] .pw-avatar-team-badge {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(241, 245, 249, 0.88) 100%);
  border-color: rgba(132, 204, 22, 0.55);
  box-shadow: 0 0 10px rgba(128, 198, 246, 0.35), 0 1px 4px rgba(15, 23, 42, 0.25);
}
.player-name .pw-avatar { width: 50px; height: 50px; }
.player-name .pw-avatar .pw-avatar-initials { font-size: 14px; }
.card-id-block .pw-avatar {
  width: 86px;
  height: 86px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}
.card-id-block .pw-avatar .pw-avatar-initials { font-size: 20px; font-weight: 700; color: #cbd5e1; }
.pw-injury-card-top .pw-avatar { width: 64px; height: 64px; }
.pw-injury-card-top .pw-avatar .pw-avatar-initials { font-size: 16px; }
.execution-id-main { display: flex; align-items: center; gap: 12px; min-width: 0; }
.execution-id-main .pw-avatar { width: 84px; height: 84px; }
.execution-id-main .pw-avatar + div { min-width: 0; }
.detail-title-row .pw-avatar { width: 96px; height: 96px; }
.detail-title-row .pw-avatar .pw-avatar-initials { font-size: 22px; }
[data-theme="light"] .pw-avatar {
  background: #e2e8f0;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.12);
}
[data-theme="light"] .pw-avatar-initials { color: #334155; }

/* 9. Seamless Single Header Brand Lockup */
.pw-brand {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
}

.pw-brand-img {
  height: 36px !important;
  width: auto !important;
  max-width: 150px !important;
  object-fit: contain !important;
  object-position: left center !important;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4)) !important;
}

.pw-brand-img.pw-brand-dark-only {
  display: block !important;
}

.pw-brand-img.pw-brand-light-only {
  display: none !important;
}

[data-theme="light"] .pw-brand-img.pw-brand-dark-only {
  display: none !important;
}

[data-theme="light"] .pw-brand-img.pw-brand-light-only {
  display: block !important;
}

@media (min-width: 769px) {
  .pw-brand-img {
    height: 42px !important;
    max-width: 175px !important;
  }
}
/* ==========================================================================
   v161: UNIFIED COLOR CONSISTENCY & ULTRA-MODERN BUTTON SYSTEM
   ========================================================================== */

/* 10. Elevated Obsidian Glass Dialogs & Modals */
dialog,
.detail-dialog,
.settings-dialog,
.pricing-dialog,
.more-filters-dialog,
.execution-dialog,
.first-run-briefing-card,
#sniperDialog,
#portfolioDialog,
#clvReportDialog {
  background: linear-gradient(180deg, rgba(20, 24, 34, 0.96) 0%, rgba(9, 12, 18, 0.99) 100%) !important;
  backdrop-filter: blur(36px) saturate(210%) !important;
  -webkit-backdrop-filter: blur(36px) saturate(210%) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 26px !important;
  box-shadow: 
    inset 0 1px 0 0 rgba(255, 255, 255, 0.14),
    0 32px 64px -12px rgba(0, 0, 0, 0.95),
    0 8px 24px -4px rgba(0, 0, 0, 0.75) !important;
  color: #f8fafc !important;
  padding: 24px !important;
  overflow: hidden !important;
}

dialog::backdrop,
.detail-dialog::backdrop,
.settings-dialog::backdrop,
.pricing-dialog::backdrop,
.more-filters-dialog::backdrop,
.execution-dialog::backdrop {
  background: rgba(4, 5, 8, 0.78) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}

.dialog-header,
.settings-header,
.pricing-header,
.filter-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
  padding-bottom: 14px !important;
  margin-bottom: 18px !important;
}

.dialog-title,
.settings-title,
.pricing-title,
.filter-title {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em !important;
  color: #ffffff !important;
  margin: 0 !important;
}

/* Close & Dismiss Circular Glass Buttons */
.icon-button,
.first-run-dismiss,
dialog .icon-button {
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  color: #8E95A5 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 16px !important;
  cursor: pointer !important;
  transition: all 0.15s cubic-bezier(0.16, 1, 0.3, 1) !important;
  padding: 0 !important;
  line-height: 1 !important;
}

.icon-button:hover,
.first-run-dismiss:hover,
dialog .icon-button:hover {
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
  transform: scale(1.06) !important;
}

/* 11. Modern Unified Button System */

/* Primary Action Buttons (Electric Lime Capsules) */
.tier-cta-btn.primary,
.filter-apply-btn,
.settings-action-btn:not(.secondary),
.first-run-enter-btn,
.execution-confirm,
.anti-tout-btn,
#applyMoreFiltersBtn,
#executionConfirmBtn,
#enterTerminalBtn,
#settingsOpenAuditBtn {
  background: #80C6F6 !important;
  color: #070709 !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: -0.015em !important;
  border-radius: 999px !important;
  border: none !important;
  height: 42px !important;
  min-height: 42px !important;
  padding: 0 22px !important;
  box-shadow: 
    0 4px 18px rgba(128, 198, 246, 0.30),
    inset 0 1px 0 rgba(255, 255, 255, 0.35) !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
  transition: all 0.15s cubic-bezier(0.16, 1, 0.3, 1) !important;
  touch-action: manipulation !important;
}

.tier-cta-btn.primary:hover,
.filter-apply-btn:hover,
.settings-action-btn:not(.secondary):hover,
.first-run-enter-btn:hover,
.execution-confirm:hover,
.anti-tout-btn:hover,
#applyMoreFiltersBtn:hover,
#executionConfirmBtn:hover:not(:disabled),
#enterTerminalBtn:hover,
#settingsOpenAuditBtn:hover {
  background: #b7e5ff !important;
  transform: translateY(-1px) !important;
  box-shadow: 
    0 6px 22px rgba(128, 198, 246, 0.42),
    inset 0 1px 0 rgba(255, 255, 255, 0.45) !important;
}

.tier-cta-btn.primary:active,
.filter-apply-btn:active,
.execution-confirm:active,
.anti-tout-btn:active {
  transform: scale(0.98) !important;
}

/* Secondary Action Buttons (Glass Capsules) */
.tier-cta-btn.secondary,
.filter-reset-btn,
.settings-action-btn.secondary,
.inspect-button,
#resetMoreFiltersBtn,
#settingsBriefingBtn,
#settingsExportBtn {
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.09) !important;
  color: #CBD5E1 !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  border-radius: 999px !important;
  height: 40px !important;
  min-height: 40px !important;
  padding: 0 18px !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
  transition: all 0.15s cubic-bezier(0.16, 1, 0.3, 1) !important;
  touch-action: manipulation !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
}

.tier-cta-btn.secondary:hover,
.filter-reset-btn:hover,
.settings-action-btn.secondary:hover,
.inspect-button:hover,
#resetMoreFiltersBtn:hover,
#settingsBriefingBtn:hover,
#settingsExportBtn:hover {
  background: rgba(255, 255, 255, 0.10) !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
  transform: translateY(-1px) !important;
}

.tier-cta-btn.secondary:disabled {
  opacity: 0.55 !important;
  cursor: not-allowed !important;
  transform: none !important;
}

/* Numeric Steppers (Quick Increment/Decrement Glass Circles) */
.pw-step-btn,
.touch-step-btn {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  color: #f1f5f9 !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: all 0.15s ease !important;
  padding: 0 !important;
  line-height: 1 !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
}

.pw-step-btn:hover,
.touch-step-btn:hover {
  background: rgba(128, 198, 246, 0.14) !important;
  border-color: rgba(128, 198, 246, 0.40) !important;
  color: #80c6f6 !important;
  transform: scale(1.06) !important;
}

.pw-step-btn:active,
.touch-step-btn:active {
  transform: scale(0.95) !important;
}

/* Chips & Multi-Select Tags */
.signal-chip-btn,
.game-chip,
.tier-pill-btn {
  border-radius: 999px !important;
  padding: 6px 14px !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  color: #727D91 !important;
  cursor: pointer !important;
  transition: all 0.15s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.signal-chip-btn:hover,
.game-chip:hover,
.tier-pill-btn:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #cbd5e1 !important;
}

.signal-chip-btn.active,
.game-chip.active,
.tier-pill-btn.active {
  background: #1A202C !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  color: #ffffff !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
  font-weight: 700 !important;
}

/* Row Action & Review Buttons */
.row-log-btn {
  background: #80c6f6 !important;
  color: #070709 !important;
  font-weight: 800 !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 11.5px !important;
  border-radius: 999px !important;
  border: none !important;
  height: 30px !important;
  padding: 0 14px !important;
  box-shadow: 0 2px 10px rgba(128, 198, 246, 0.28) !important;
  cursor: pointer !important;
  transition: all 0.12s ease !important;
}

.row-log-btn:hover {
  background: #b7e5ff !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 14px rgba(128, 198, 246, 0.40) !important;
}

.row-log-btn.logged {
  background: rgba(128, 198, 246, 0.16) !important;
  border: 1px solid rgba(128, 198, 246, 0.35) !important;
  color: #80c6f6 !important;
  box-shadow: none !important;
}

.row-log-btn.blocked {
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  color: #525C6E !important;
  box-shadow: none !important;
  cursor: not-allowed !important;
}

/* Star/Watch Buttons */
.star-btn {
  border-radius: 999px !important;
  width: 28px !important;
  height: 28px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  border: none !important;
  color: #525C6E !important;
  font-size: 15px !important;
  cursor: pointer !important;
  transition: all 0.12s ease !important;
}

.star-btn:hover {
  color: #80c6f6 !important;
  transform: scale(1.15) !important;
}

.star-btn.starred {
  color: #80c6f6 !important;
  text-shadow: 0 0 8px rgba(128, 198, 246, 0.6) !important;
}

/* Pricing Cards & Modal Polish */
.pricing-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
  gap: 16px !important;
  margin: 16px 0 !important;
}

.pricing-tier-card {
  background: rgba(14, 17, 24, 0.85) !important;
  border: 1px solid rgba(255, 255, 255, 0.065) !important;
  border-radius: 20px !important;
  padding: 20px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 12px 24px -6px rgba(0, 0, 0, 0.6) !important;
}

.pricing-tier-card.featured {
  border-color: rgba(128, 198, 246, 0.35) !important;
  background: linear-gradient(180deg, rgba(22, 27, 38, 0.90) 0%, rgba(13, 16, 23, 0.95) 100%) !important;
  box-shadow: 
    inset 0 1px 0 rgba(128, 198, 246, 0.3),
    0 16px 32px -8px rgba(0, 0, 0, 0.8),
    0 0 24px rgba(128, 198, 246, 0.08) !important;
}

/* Sleek Slider Controls */
input[type="range"] {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 100% !important;
  height: 5px !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border-radius: 999px !important;
  outline: none !important;
  margin: 8px 0 !important;
}

input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 18px !important;
  height: 18px !important;
  border-radius: 999px !important;
  background: #80c6f6 !important;
  box-shadow: 0 0 10px rgba(128, 198, 246, 0.6) !important;
  cursor: pointer !important;
  transition: transform 0.1s ease !important;
}

input[type="range"]::-webkit-slider-thumb:hover {
  transform: scale(1.15) !important;
}
/* 12. Calm Research Mode Status Strip & Telemetry Badges */
.anti-tout-empty-wrap.anti-tout-research-strip {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  background: linear-gradient(180deg, rgba(20, 24, 34, 0.78) 0%, rgba(12, 15, 22, 0.88) 100%) !important;
  backdrop-filter: blur(28px) saturate(200%) !important;
  -webkit-backdrop-filter: blur(28px) saturate(200%) !important;
  border: 1px solid rgba(255, 255, 255, 0.065) !important;
  border-radius: 18px !important;
  padding: 14px 20px !important;
  margin: 10px auto 14px auto !important;
  max-width: 840px !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 8px 24px rgba(0, 0, 0, 0.6) !important;
}

.anti-tout-research-strip .anti-tout-shield {
  display: none !important;
}

.anti-tout-research-strip .anti-tout-title {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 13.5px !important;
  font-weight: 750 !important;
  color: #f8fafc !important;
  letter-spacing: -0.01em !important;
  margin-bottom: 2px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.anti-tout-research-strip .anti-tout-title::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #38bdf8;
  box-shadow: 0 0 6px #38bdf8;
  margin-right: 6px;
}

.anti-tout-research-strip .anti-tout-desc {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 11.5px !important;
  line-height: 1.4 !important;
  color: #8E95A5 !important;
  margin: 0 0 4px 0 !important;
  max-width: 600px !important;
}

.anti-tout-research-strip .anti-tout-meta {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  color: #64748B !important;
  margin: 0 !important;
}

.anti-tout-research-strip .research-status-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 3px 10px !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  color: #cbd5e1 !important;
  font-family: var(--mono) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  margin-top: 6px !important;
}

.hero-metric-badge.research-badge {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.10) !important;
  color: #cbd5e1 !important;
  box-shadow: none !important;
}

.hero-card-status-pill.research-pill {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  color: #94A3B8 !important;
}

.hero-card-status-pill.research-pill .hero-status-dot.paused {
  background: #94A3B8 !important;
  box-shadow: 0 0 6px rgba(148, 163, 184, 0.5) !important;
}
/* ==========================================================================
   v163: HIGH-ROI UPGRADES (CONTROLLED BRAND BLUE, QUIET BANNER, WATCHLIST)
   ========================================================================== */

:root {
  --brand-blue: #4BA3F5;
  --brand-blue-muted: rgba(75, 163, 245, 0.12);
  --brand-blue-border: rgba(75, 163, 245, 0.28);
}

/* 1. Controlled Brand Blue for Research / Standby Indicators */
.hero-metric-badge.research-badge {
  background: var(--brand-blue-muted) !important;
  border: 1px solid var(--brand-blue-border) !important;
  color: var(--brand-blue) !important;
  box-shadow: 0 0 12px rgba(75, 163, 245, 0.16) !important;
  font-family: var(--mono) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
}

.hero-card-status-pill.research-pill {
  background: var(--brand-blue-muted) !important;
  border: 1px solid var(--brand-blue-border) !important;
  color: var(--brand-blue) !important;
}

.hero-card-status-pill.research-pill .hero-status-dot.paused {
  background: var(--brand-blue) !important;
  box-shadow: 0 0 8px var(--brand-blue) !important;
}

.anti-tout-research-strip .research-status-pill {
  background: var(--brand-blue-muted) !important;
  border: 1px solid var(--brand-blue-border) !important;
  color: var(--brand-blue) !important;
}

/* 2. Watchlist Onboarding & Suggestion Cards */
.watchlist-empty-wrap {
  max-width: 460px !important;
  padding: 24px 22px !important;
}

.watchlist-suggestions-card {
  width: 100% !important;
  background: rgba(9, 11, 16, 0.88) !important;
  border: 1px solid rgba(255, 255, 255, 0.05) !important;
  border-radius: 16px !important;
  padding: 14px 16px !important;
  margin-top: 12px !important;
  box-shadow: inset 0 1.5px 3px rgba(0, 0, 0, 0.6) !important;
}

.watchlist-suggestions-header {
  font-family: var(--mono) !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  color: #64748B !important;
  letter-spacing: 0.11em !important;
  text-align: left !important;
  margin-bottom: 8px !important;
}

.watchlist-suggestions-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}

.watchlist-suggest-item {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 6px 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04) !important;
}

.watchlist-suggest-item:last-child {
  border-bottom: none !important;
}

.watchlist-suggest-info {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  text-align: left !important;
}

.watchlist-suggest-name {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  color: #ffffff !important;
}

.watchlist-suggest-sub {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", var(--sans) !important;
  font-size: 11px !important;
  color: #727D91 !important;
}

/* 3. Quieter, Ultra-Compact Stale Banner Pill */
.data-quality-banner {
  background: rgba(14, 17, 24, 0.92) !important;
  backdrop-filter: blur(24px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-left: none !important;
  border-radius: 999px !important;
  padding: 4px 6px 4px 12px !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.6) !important;
  width: fit-content !important;
  max-width: min(88%, 320px) !important;
  min-height: 28px !important;
  margin: 8px auto 4px auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  white-space: nowrap !important;
}

.data-quality-banner.warn {
  border-color: rgba(245, 158, 11, 0.28) !important;
}

.data-quality-banner .dq-item {
  font-size: 11px !important;
  color: #8E95A5 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  min-width: 0 !important;
  flex: 0 1 auto !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  text-overflow: ellipsis !important;
}

/* Hide secondary items on mobile so pill doesn't stretch */
.data-quality-banner .dq-item:nth-child(n+2) {
  display: none !important;
}

.data-quality-banner .dq-item span {
  display: inline-block !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  max-width: 140px !important;
  font-size: 10.5px !important;
  color: #94A3B8 !important;
}

.data-quality-banner .dq-item strong {
  color: #fbbf24 !important;
  font-size: 9.5px !important;
  letter-spacing: 0.08em !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  flex-shrink: 0 !important;
}

.data-quality-banner .dq-item strong::before {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: #fbbf24;
  box-shadow: 0 0 6px #fbbf24;
}

.dq-retry-btn {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.10) !important;
  border-radius: 999px !important;
  color: #cbd5e1 !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  height: 22px !important;
  padding: 0 10px !important;
  cursor: pointer !important;
  transition: all 0.15s ease !important;
  margin-left: 6px !important;
  flex-shrink: 0 !important;
}

.dq-retry-btn:hover {
  background: rgba(255, 255, 255, 0.12) !important;
  color: #ffffff !important;
}

/* 4. Mobile Horizontal Filter Momentum Scrolling */
@media (max-width: 768px) {
  .pw-filterbar {
    padding: 6px 12px 8px 12px !important;
  }
  .pw-command-row {
    overflow-x: auto !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch !important;
    flex-wrap: nowrap !important;
    gap: 6px !important;
  }
  .pw-command-row::-webkit-scrollbar {
    display: none !important;
  }
  .chip-segment-group {
    flex-shrink: 0 !important;
  }
}

/* 5. Free Open Access Mode (Paywall Suppressed) */
#pricingBtn,
#pricingBtn.pw-btn-upgrade,
.pw-btn-upgrade {
  display: none !important;
}

/* 6. Third-Party Floating Extension Containment (1688 / Caigou Assistant Isolation) */
[id*="1688"], [class*="1688"],
[id*="caigou"], [class*="caigou"],
[id*="cai-gou"], [class*="cai-gou"],
[id*="aliprice"], [class*="aliprice"],
[id*="extension-root"], [class*="extension-root"],
[id*="floating-search"], [class*="floating-search"],
div[id^="__cai"], div[class^="__cai"],
div[id^="__1688"], div[class^="__1688"],
div[class*="c-assistant"], div[id*="c-assistant"] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  position: absolute !important;
  clip: rect(0, 0, 0, 0) !important;
  z-index: -999999 !important;
}

body {
  position: relative;
  isolation: isolate;
}

/* 7. Bottom Clearance: Content Never Obscured By Floating Bottom Nav */
.shell,
.shell.page,
#slateBoard,
#cardView,
#slateTableWrap,
#portfolioView,
#clvView,
#auditView {
  padding-bottom: calc(96px + env(safe-area-inset-bottom, 24px)) !important;
}

/* 8. High Contrast Alert Banner (Stale Odds / Telemetry Warning) */
.data-quality-banner.warn {
  background: rgba(26, 18, 7, 0.96) !important;
  border: 1.5px solid #F59E0B !important;
  box-shadow: 0 0 16px rgba(245, 158, 11, 0.22), 0 4px 20px rgba(0, 0, 0, 0.75) !important;
}

.data-quality-banner.warn .dq-item strong {
  color: #F59E0B !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
}

.data-quality-banner.warn .dq-item strong::before {
  background: #F59E0B !important;
  box-shadow: 0 0 8px #F59E0B !important;
}

.data-quality-banner.warn .dq-item span {
  color: #F3F4F6 !important;
  font-weight: 500 !important;
}

.data-quality-banner.error {
  background: rgba(30, 10, 10, 0.96) !important;
  border: 1.5px solid #EF4444 !important;
  box-shadow: 0 0 16px rgba(239, 68, 68, 0.25), 0 4px 20px rgba(0, 0, 0, 0.75) !important;
}

.data-quality-banner.error .dq-item strong {
  color: #EF4444 !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
}

.data-quality-banner.error .dq-item strong::before {
  background: #EF4444 !important;
  box-shadow: 0 0 8px #EF4444 !important;
}

.data-quality-banner.error .dq-item span {
  color: #FEE2E2 !important;
  font-weight: 500 !important;
}

/* 9. Header & Filter Sub-Bar Enterprise Precision Polish */
.pw-topbar {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.pw-filterbar {
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
  background: rgba(10, 13, 19, 0.95) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
}

/* Dedicated Search Input Real Estate */
.command-search-wrap,
.pw-search-wrap {
  background: rgba(15, 20, 29, 0.9) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 999px !important;
  transition: all 0.15s ease !important;
}

.command-search-wrap:focus-within,
.pw-search-wrap:focus-within {
  border-color: #38BDF8 !important;
  box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.18), 0 2px 8px rgba(0, 0, 0, 0.6) !important;
}

.command-search-wrap .pw-search-input {
  color: #FFFFFF !important;
}

.command-search-wrap .pw-search-input::placeholder {
  color: #64748B !important;
  font-weight: 450 !important;
}

/* Standardized Segmented Control Containers */
.chip-segment-group,
.sport-switcher,
.pw-view-toggle {
  background: rgba(14, 18, 26, 0.88) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 999px !important;
  padding: 3px !important;
  gap: 2px !important;
}

/* Unselected Pills: Transparent with Clean Border */
.chip-segment-group .chip-pill,
.sport-switch-btn,
.pw-seg-btn {
  background: transparent !important;
  border: 1px solid transparent !important;
  color: #94A3B8 !important;
  font-weight: 600 !important;
  border-radius: 999px !important;
  transition: all 0.15s ease !important;
}

.chip-segment-group .chip-pill:hover:not(.active),
.sport-switch-btn:hover:not(.active),
.pw-seg-btn:hover:not(.active) {
  background: rgba(255, 255, 255, 0.05) !important;
  color: #F1F5F9 !important;
}

/* Active Segmented Controls: Solid High-Contrast Fill with Sharp Contrast */
.chip-segment-group .chip-pill.active,
.sport-switch-btn.active,
.pw-seg-btn.active {
  background: #1E293B !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  color: #FFFFFF !important;
  font-weight: 700 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.14) !important;
}

.chip-segment-group .chip-pill.active .chip-count-pill {
  background: rgba(128, 198, 246, 0.18) !important;
  color: #80c6f6 !important;
  font-weight: 800 !important;
}




/* ==========================================================================
   PROPWIRE REVOLUTION: BLOOMBERG MEETS APPLE SPORTS REDESIGN SYSTEM (V2026)
   iPhone-first architecture, tabular figures, hairline borders, zero emojis
   ========================================================================== */

:root {
  --pw-bg-canvas: #0b0e14;
  --pw-bg-card: #111620;
  --pw-bg-card-hover: #171f2c;
  --pw-bg-inset: #080b0f;
  --pw-bg-elevated: #161c28;
  --pw-border-hairline: rgba(255, 255, 255, 0.08);
  --pw-border-subtle: rgba(255, 255, 255, 0.14);
  --pw-border-active: rgba(56, 189, 248, 0.4);
  --pw-text-primary: #f8fafc;
  --pw-text-secondary: #94a3b8;
  --pw-text-muted: #64748b;
  --pw-accent-blue: #38bdf8;
  --pw-accent-blue-subtle: rgba(56, 189, 248, 0.12);
  --pw-state-active: #4ade80;
  --pw-state-active-bg: rgba(74, 222, 128, 0.12);
  --pw-state-verify: #f59e0b;
  --pw-state-verify-bg: rgba(245, 158, 11, 0.14);
  --pw-state-subgate: #94a3b8;
  --pw-state-negative: #f87171;
  --pw-font-sans: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --pw-font-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

body {
  background-color: var(--pw-bg-canvas) !important;
  color: var(--pw-text-primary) !important;
  font-family: var(--pw-font-sans) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 1. Header & Terminal Chrome */
.pw-topbar {
  background: rgba(11, 14, 20, 0.96) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border-bottom: 1px solid var(--pw-border-hairline) !important;
  height: 52px !important;
  padding: 0 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 100 !important;
}



.pw-topbar-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

.pw-mobile-context-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--pw-bg-card);
  border: 1px solid var(--pw-border-hairline);
  padding: 4px 12px;
  border-radius: 999px;
  font-family: var(--pw-font-mono);
  font-size: 11.5px;
  font-weight: 600;
  color: var(--pw-text-primary);
  cursor: pointer;
  min-height: 34px;
}
.pw-mobile-context-pill:active {
  background: var(--pw-bg-card-hover);
  border-color: var(--pw-border-active);
}

.pw-ctx-sport {
  color: var(--pw-accent-blue);
  font-weight: 700;
}
.pw-ctx-sep {
  color: var(--pw-text-muted);
}
.pw-ctx-chevron {
  color: var(--pw-text-secondary);
  font-size: 9px;
}

.pw-mobile-search-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 8px;
  background: transparent;
  border: none;
  color: var(--pw-text-secondary);
  cursor: pointer;
}
.pw-mobile-search-btn:active {
  color: var(--pw-accent-blue);
  background: var(--pw-accent-blue-subtle);
}

/* 2. Responsive Controls Filtering */
@media (max-width: 768px) {
  .pw-desktop-only {
    display: none !important;
  }
  .pw-mobile-only {
    display: flex !important;
  }
  /* Never put more than 3-4 controls on initial mobile view */
  .pw-command-row {
    display: none !important;
  }
  .pw-command-row.active {
    display: flex !important;
    padding: 8px 12px !important;
  }
  /* 2x2 Telemetry Ribbon on Mobile */
  .pw-hero-telemetry-suite {
    display: flex !important;
    margin: 8px 12px 10px !important;
  }
  .pw-hero-quant-card {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1px !important;
    border-radius: 12px !important;
  }
  .telemetry-col {
    padding: 8px 10px !important;
    min-height: 54px !important;
  }
  .telemetry-metric-number {
    font-size: 14px !important;
  }
  .telemetry-subtext {
    font-size: 9.5px !important;
  }
  .telemetry-tier-legend {
    display: none !important;
  }
  #dataQualityBanner,
  .data-quality-banner {
    position: static !important;
    max-height: none !important;
    padding: 6px 12px !important;
    margin: 4px 12px !important;
    border-radius: 8px !important;
    box-shadow: none !important;
  }
  .mobile-usage-ticker {
    margin: 6px 12px 2px !important;
    background: var(--pw-bg-card) !important;
    border: 1px solid var(--pw-border-hairline) !important;
    border-radius: 8px !important;
    min-height: 40px !important;
  }
  .pw-filterbar {
    padding: 6px 12px 8px !important;
    background: var(--pw-bg-canvas) !important;
    border-bottom: 1px solid var(--pw-border-hairline) !important;
  }
  #mobileFilterStrip {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
  }
  #mobileFilterStrip .chip-divider {
    display: none !important;
  }
  #mobileFilterStrip [data-eyebrow="MODE"],
  #mobileFilterStrip [data-eyebrow="POS"],
  #mobileFilterStrip .chip-sniper-btn {
    display: none !important;
  }
  .data-board {
    padding-bottom: 96px !important;
  }
}

@media (min-width: 769px) {
  .pw-mobile-only {
    display: none !important;
  }
  .pw-hero-telemetry-suite {
    margin: 12px 0 16px !important;
  }
  .pw-hero-quant-card {
    background: var(--pw-bg-card) !important;
    border: 1px solid var(--pw-border-hairline) !important;
    border-radius: 12px !important;
    padding: 16px 20px !important;
  }
}

/* 3. Segmented Market Tabs & Filter Button */
#marketChipGroup {
  display: inline-flex !important;
  background: var(--pw-bg-card) !important;
  border: 1px solid var(--pw-border-hairline) !important;
  border-radius: 999px !important;
  padding: 3px !important;
  gap: 2px !important;
}

#marketChipGroup .chip-pill {
  min-height: 40px !important;
  min-width: 58px !important;
  padding: 0 14px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: var(--pw-font-sans) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--pw-text-secondary) !important;
  border-radius: 999px !important;
  background: transparent !important;
  border: none !important;
  cursor: pointer !important;
  transition: all 0.15s ease !important;
}

#marketChipGroup .chip-pill.active {
  background: #27272a !important; /* Sleek Dark Quant Theme (Zinc-800) */
  border: 1px solid rgba(255, 255, 255, 0.75) !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
}

.chip-more-btn {
  min-height: 44px !important;
  min-width: 90px !important;
  padding: 0 14px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  background: var(--pw-bg-card) !important;
  border: 1px solid var(--pw-border-hairline) !important;
  border-radius: 999px !important;
  color: var(--pw-text-primary) !important;
  font-family: var(--pw-font-sans) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.4px !important;
  cursor: pointer !important;
}
.chip-more-btn:active {
  background: var(--pw-bg-card-hover) !important;
  border-color: var(--pw-border-active) !important;
}

/* 4. Streamlined Quantitative Card & Grid Architecture */
#cardView,
.card-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 8px 12px calc(96px + env(safe-area-inset-bottom, 24px)) 12px !important;
}

@media (min-width: 768px) {
  #cardView,
  .card-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)) !important;
    gap: 12px !important;
    max-width: 1240px !important;
    margin: 0 auto !important;
    padding: 16px 20px calc(96px + env(safe-area-inset-bottom, 24px)) 20px !important;
  }
}

.mobile-quant-row {
  background: var(--pw-bg-card, #0f141d) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 12px !important;
  margin: 0 !important;
  padding: 13px 14px 12px !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25) !important;
  transition: border-color 0.15s ease, background 0.15s ease, transform 0.15s ease !important;
  cursor: pointer !important;
  display: flex !important;
  flex-direction: column !important;
  position: relative !important;
  box-sizing: border-box !important;
}

@media (max-width: 768px) {
  #cardView,
  .card-grid {
    gap: 7px !important;
    padding: 6px 10px calc(80px + env(safe-area-inset-bottom, 20px)) 10px !important;
  }
  .mobile-quant-row {
    padding: 8px 10px 8px !important;
    border-radius: 10px !important;
  }
  .card-header-row {
    margin-bottom: 6px !important;
    gap: 8px !important;
  }
  .card-hairline-sep {
    margin: 0 0 6px 0 !important;
  }
  .card-id-block .pw-avatar {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
  }
  .card-player-name {
    font-size: 13px !important;
    line-height: 1.15 !important;
  }
  .card-team-matchup {
    font-size: 10px !important;
  }
  .card-grid-row {
    gap: 5px !important;
  }
  .card-grid-col {
    padding: 4px 6px !important;
    border-radius: 6px !important;
  }
  .grid-col-lbl {
    font-size: 8px !important;
    margin-bottom: 1px !important;
  }
  .grid-col-val {
    font-size: 11.5px !important;
  }
  .card-hero-edge {
    font-size: 13px !important;
    padding: 2px 6px !important;
  }
  .card-edge-sub {
    font-size: 8.5px !important;
    letter-spacing: 0.1px !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }
}

@keyframes limePulse {
  0% { transform: scale(1); filter: drop-shadow(0 0 0 rgba(128, 198, 246, 0)); }
  50% { transform: scale(1.08); filter: drop-shadow(0 0 8px rgba(128, 198, 246, 0.8)); }
  100% { transform: scale(1); filter: drop-shadow(0 0 0 rgba(128, 198, 246, 0)); }
}
.pulse-lime {
  animation: limePulse 300ms ease-out forwards;
}

.mobile-quant-row:hover {
  border-color: rgba(56, 189, 248, 0.35) !important;
  background: rgba(18, 24, 35, 0.95) !important;
  transform: translateY(-1.5px) !important;
}
.mobile-quant-row:active {
  background: #141b26 !important;
  transform: scale(0.99) !important;
}

.card-header-row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  margin-bottom: 10px !important;
  min-width: 0 !important;
}

.card-id-block {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex: 1 !important;
  min-width: 0 !important;
}

.card-id-block .star-btn {
  width: 24px !important;
  height: 24px !important;
  flex: 0 0 24px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: none !important;
  background: transparent !important;
  color: #64748b !important;
  padding: 0 !important;
  cursor: pointer !important;
  border-radius: 4px !important;
}
.card-id-block .star-btn:hover { color: #cbd5e1 !important; }
.card-id-block .star-btn.starred { color: #f59e0b !important; }
.card-id-block .star-btn .prop-icon { width: 15px !important; height: 15px !important; }

.card-id-block .team-crest {
  width: 22px !important;
  height: 22px !important;
  min-width: 22px !important;
  min-height: 22px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  flex: 0 0 22px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}
.card-id-block .team-crest .crest-img {
  width: 16px !important;
  height: 16px !important;
  object-fit: contain !important;
}

.card-id-block .pw-avatar {
  width: 86px !important;
  height: 86px !important;
  min-width: 86px !important;
  min-height: 86px !important;
  border-radius: 14% !important;
  border: none !important;
  background: #16202e !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45) !important;
  flex: 0 0 86px !important;
  position: relative !important;
  overflow: hidden !important;
}
/* v170: '2027' glass chip — electric-lime ring + glow, smaller footprint. */
.card-id-block .pw-avatar-team-badge {
  border-width: 1px !important;
  box-shadow: 0 0 14px var(--brand-accent-glow, rgba(128, 198, 246, 0.25)), 0 2px 8px rgba(0, 0, 0, 0.6), inset 0 0 8px rgba(128, 198, 246, 0.10) !important;
}
.card-id-block .pw-avatar-img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: 50% 12% !important;
  image-rendering: -webkit-optimize-contrast !important;
}
.card-id-block .pw-avatar-initials {
  font-family: var(--pw-font-mono, monospace) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #cbd5e1 !important;
  letter-spacing: 0.5px !important;
}

.card-name-group {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
  flex: 1 !important;
}

.card-player-name {
  font-family: var(--pw-font-sans) !important;
  font-size: 15.5px !important;
  font-weight: 600 !important;
  color: #f8fafc !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  line-height: 1.25 !important;
  letter-spacing: -0.015em !important;
}

.card-team-matchup {
  font-family: var(--pw-font-mono) !important;
  font-size: 11px !important;
  color: #94a3b8 !important;
  margin-top: 2px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.card-hero-edge-block {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  flex-shrink: 0 !important;
}

.card-hero-edge {
  font-family: var(--pw-font-mono) !important;
  font-variant-numeric: tabular-nums !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  padding: 4px 9px !important;
  border-radius: 6px !important;
  letter-spacing: 0.2px !important;
  line-height: 1.2 !important;
}

.card-hero-edge.positive {
  background: var(--pw-state-active-bg, rgba(74, 222, 128, 0.12)) !important;
  color: var(--pw-state-active, #4ade80) !important;
  border: 1px solid rgba(74, 222, 128, 0.3) !important;
  text-shadow: none !important;
}

.card-hero-edge.text-shift,
.card-hero-edge.text-caution {
  background: var(--pw-state-verify-bg, rgba(245, 158, 11, 0.12)) !important;
  color: var(--pw-state-verify, #f59e0b) !important;
  border: 1px solid rgba(245, 158, 11, 0.35) !important;
  text-shadow: none !important;
}

.card-hero-edge.none,
.card-hero-edge.closed {
  background: rgba(148, 163, 184, 0.08) !important;
  color: var(--pw-text-secondary, #94a3b8) !important;
  border: 1px solid var(--pw-border-hairline, rgba(255, 255, 255, 0.08)) !important;
}

.card-edge-sub {
  font-family: var(--pw-font-mono) !important;
  font-size: 9.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.6px !important;
  color: var(--pw-text-muted, #64748b) !important;
  margin-top: 3px !important;
  text-transform: uppercase !important;
}

.card-edge-sub.status-active { color: #4ade80 !important; }
.card-edge-sub.status-verify { color: #f59e0b !important; }
.card-edge-sub.status-sub-gate { color: #94a3b8 !important; }
.card-edge-sub.status-no-line { color: #64748b !important; }

.card-hairline-sep {
  height: 1px !important;
  background: rgba(255, 255, 255, 0.06) !important;
  width: 100% !important;
  margin: 0 0 10px 0 !important;
}

.card-grid-row {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto !important;
  gap: 8px !important;
  align-items: stretch !important;
  width: 100% !important;
}

.card-grid-col:not(.col-action) {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  background: rgba(15, 20, 30, 0.75) !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  border-radius: 9px !important;
  padding: 7px 9px !important;
  min-width: 0 !important;
  transition: background 0.15s ease, border-color 0.15s ease !important;
}
.card-grid-col:not(.col-action):hover {
  background: rgba(22, 30, 45, 0.95) !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
}

.grid-col-lbl {
  font-family: var(--pw-font-mono) !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: 0.6px !important;
  color: var(--pw-text-muted, #64748b) !important;
  margin-bottom: 3px !important;
  text-transform: uppercase !important;
}

.grid-col-val {
  font-family: var(--pw-font-mono) !important;
  font-variant-numeric: tabular-nums !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--pw-text-primary, #f8fafc) !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.grid-col-sub {
  font-family: var(--pw-font-mono) !important;
  font-size: 10px !important;
  color: var(--pw-text-secondary, #94a3b8) !important;
  margin-top: 2px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.card-grid-col.col-action {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  min-width: 44px !important;
}

.card-btn-view {
  min-height: 38px !important;
  height: 38px !important;
  min-width: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(56, 189, 248, 0.08) !important;
  border: 1px solid rgba(56, 189, 248, 0.22) !important;
  border-radius: 8px !important;
  color: #38bdf8 !important;
  font-family: var(--pw-font-sans) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  padding: 0 10px !important;
  transition: all 0.15s ease !important;
}
.card-btn-view:hover {
  background: rgba(56, 189, 248, 0.18) !important;
  border-color: rgba(56, 189, 248, 0.45) !important;
  color: #7dd3fc !important;
}

.card-btn-log {
  min-height: 38px !important;
  height: 38px !important;
  min-width: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(74, 222, 128, 0.1) !important;
  border: 1px solid rgba(74, 222, 128, 0.28) !important;
  border-radius: 8px !important;
  color: #4ade80 !important;
  font-family: var(--pw-font-sans) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  padding: 0 10px !important;
  transition: all 0.15s ease !important;
}
.card-btn-log.logged {
  background: rgba(74, 222, 128, 0.22) !important;
  color: #ffffff !important;
}
.card-btn-log.blocked {
  background: rgba(148, 163, 184, 0.06) !important;
  border-color: rgba(148, 163, 184, 0.12) !important;
  color: #64748b !important;
  cursor: not-allowed !important;
}

[data-theme="light"] .mobile-quant-row {
  background: #ffffff !important;
  border-color: #e2e8f0 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) !important;
}
[data-theme="light"] .mobile-quant-row:hover {
  background: #f8fafc !important;
  border-color: #cbd5e1 !important;
}
[data-theme="light"] .card-grid-col:not(.col-action) {
  background: #f1f5f9 !important;
  border-color: #cbd5e1 !important;
}
[data-theme="light"] .card-player-name { color: #0f172a !important; }
[data-theme="light"] .card-team-matchup { color: #64748b !important; }
[data-theme="light"] .grid-col-val { color: #0f172a !important; }
[data-theme="light"] .grid-col-lbl { color: #64748b !important; }
[data-theme="light"] .card-hairline-sep { background: #e2e8f0 !important; }
[data-theme="light"] .card-id-block .pw-avatar {
  background: #e2e8f0 !important;
  border: none !important;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.12) !important;
}

/* 5. Fixed 3-Tab Bottom Navigation (44px+ touch targets, iPhone Safe Area) */
.mobile-bottom-nav {
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 56px !important;
  padding-bottom: max(env(safe-area-inset-bottom, 20px), 16px) !important;
  box-sizing: content-box !important;
  background: rgba(11, 14, 20, 0.96) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border-top: 1px solid var(--pw-border-hairline) !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr !important;
  align-items: center !important;
  z-index: 9999 !important;
}

.bottom-nav-item {
  min-height: 48px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 3px !important;
  background: transparent !important;
  border: none !important;
  color: var(--pw-text-muted) !important;
  font-family: var(--pw-font-sans) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.3px !important;
  cursor: pointer !important;
  position: relative !important;
}
.bottom-nav-item.active {
  color: var(--pw-text-primary) !important;
}
.bottom-nav-item.active .prop-icon {
  stroke: var(--pw-accent-blue) !important;
}

.bottom-nav-badge {
  position: absolute !important;
  top: 4px !important;
  right: calc(50% - 18px) !important;
  background: var(--pw-accent-blue) !important;
  color: #0b0e14 !important;
  font-family: var(--pw-font-mono) !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  padding: 1px 5px !important;
  border-radius: 999px !important;
}

/* 6. Bottom Sheet Dialogs & Micro-Interactions */
dialog.detail-dialog {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100vw !important;
  max-height: 100vh !important;
  width: 100% !important;
  height: 100% !important;
  display: none !important;
  align-items: flex-end !important;
  justify-content: center !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 10000 !important;
}
dialog.detail-dialog[open] {
  display: flex !important;
}
dialog.detail-dialog::backdrop {
  background: rgba(8, 11, 15, 0.78) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
}
dialog.detail-dialog .dialog-shell {
  background: var(--pw-bg-elevated) !important;
  border-top: 1px solid var(--pw-border-subtle) !important;
  border-radius: 20px 20px 0 0 !important;
  width: 100% !important;
  max-width: 660px !important;
  max-height: 90vh !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  padding-bottom: max(env(safe-area-inset-bottom, 20px), 16px) !important;
  box-shadow: 0 -12px 48px rgba(0, 0, 0, 0.65) !important;
  animation: pwSheetSlideUp 0.28s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
}

@keyframes pwSheetSlideUp {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}

dialog.detail-dialog .dialog-sheet-handle {
  width: 38px !important;
  height: 4px !important;
  background: rgba(255, 255, 255, 0.22) !important;
  border-radius: 2px !important;
  margin: 10px auto 4px !important;
  flex-shrink: 0 !important;
}

.dialog-header {
  padding: 12px 18px 10px !important;
  border-bottom: 1px solid var(--pw-border-hairline) !important;
}

.dialog-body {
  padding: 16px 18px !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
}

/* 7. Institutional Footer */
.pw-institutional-footer {
  background: var(--pw-bg-canvas);
  border-top: 1px solid var(--pw-border-hairline);
  padding: 24px 16px 108px;
  margin-top: 32px;
}
.pw-footer-inner {
  max-width: 900px;
  margin: 0 auto;
}
.pw-legal-notice,
.pw-rg-notice {
  font-family: var(--pw-font-sans);
  font-size: 11px;
  line-height: 1.5;
  color: var(--pw-text-muted);
  margin-bottom: 8px;
}
.pw-rg-notice a {
  color: var(--pw-text-secondary);
  text-decoration: underline;
}

/* 8. Desktop Terminal Responsive View */
@media (min-width: 1024px) {
  .pw-topbar {
    height: 48px !important;
  }
  .data-board {
    padding-bottom: 32px !important;
  }
  .mobile-bottom-nav {
    display: none !important;
  }
  /* Slide-over Right Detail Panel on Desktop */
  dialog.detail-dialog {
    align-items: stretch !important;
    justify-content: flex-end !important;
  }
  dialog.detail-dialog .dialog-shell {
    width: 480px !important;
    max-width: 480px !important;
    max-height: 100vh !important;
    height: 100vh !important;
    border-radius: 0 !important;
    border-left: 1px solid var(--pw-border-subtle) !important;
    border-top: none !important;
    animation: pwDrawerSlideLeft 0.24s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
  }
}

@keyframes pwDrawerSlideLeft {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}

/* ============================================================================
   9. LIVE AGENTIC SNIPER TERMINAL (NFL + NBA + POLYMARKET CLOB)
   ============================================================================ */
@media (min-width: 1024px) {
  dialog.sniper-dialog {
    align-items: stretch !important;
    justify-content: flex-end !important;
  }
  dialog.sniper-dialog .dialog-shell {
    width: 720px !important;
    max-width: 720px !important;
    max-height: 100vh !important;
    height: 100vh !important;
    border-radius: 0 !important;
    border-left: 1px solid var(--pw-border-subtle) !important;
    border-top: none !important;
    animation: pwDrawerSlideLeft 0.24s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
  }
}

.sniper-terminal-tabs {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 10px;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--pw-border-hairline);
}

.sniper-tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  min-height: 36px;
  background: var(--pw-bg-surface);
  border: 1px solid var(--pw-border-hairline);
  border-radius: 6px;
  color: var(--pw-text-secondary);
  font-family: var(--pw-font-sans);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.14s ease;
}

.sniper-tab-btn:hover {
  color: var(--pw-text-primary);
  border-color: var(--pw-border-subtle);
}

.sniper-tab-btn.is-active {
  background: rgba(125, 211, 252, 0.12);
  border-color: var(--pw-accent-blue);
  color: var(--pw-accent-blue);
}

.sniper-tab-count {
  font-family: var(--pw-font-mono);
  font-size: 10px;
  padding: 1px 5px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.06);
  color: var(--pw-text-secondary);
}

.sniper-spine-status {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  margin-bottom: 10px;
  background: rgba(15, 20, 28, 0.85);
  border: 1px solid var(--pw-border-hairline);
  border-radius: 6px;
  font-family: var(--pw-font-mono);
  font-size: 10px;
  color: var(--pw-text-muted);
}

.sniper-spine-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--pw-accent-lime);
  box-shadow: 0 0 6px rgba(163, 230, 53, 0.55);
}

.sniper-sim-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 12px;
  margin-bottom: 12px;
  background: var(--pw-bg-elevated);
  border: 1px solid var(--pw-border-subtle);
  border-radius: 6px;
}

.sniper-sim-btn {
  padding: 7px 12px;
  min-height: 34px;
  background: rgba(125, 211, 252, 0.14);
  border: 1px solid var(--pw-accent-blue);
  border-radius: 5px;
  color: var(--pw-accent-blue);
  font-family: var(--pw-font-mono);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
}

.sniper-sim-btn:hover {
  background: rgba(125, 211, 252, 0.22);
}

.sniper-sim-meta {
  font-family: var(--pw-font-mono);
  font-size: 11px;
  color: var(--pw-text-secondary);
}

.sniper-alert-list,
.sniper-live-board {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sniper-alert-card {
  background: var(--pw-bg-surface);
  border: 1px solid var(--pw-border-hairline);
  border-radius: 8px;
  padding: 12px 14px;
  transition: border-color 0.14s ease;
}

.sniper-alert-card.is-selected {
  border-color: var(--pw-accent-blue);
  background: rgba(17, 23, 34, 0.96);
}

.sniper-alert-card.is-stale-alert {
  border-color: rgba(245, 158, 11, 0.45);
}

.sniper-alert-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.sniper-alert-ident {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.sniper-sport-tag {
  font-family: var(--pw-font-mono);
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(125, 211, 252, 0.12);
  color: var(--pw-accent-blue);
}

.sniper-player-name {
  font-family: var(--pw-font-sans);
  font-size: 14px;
  font-weight: 600;
  color: var(--pw-text-primary);
}

.sniper-team-tag {
  font-family: var(--pw-font-mono);
  font-size: 11px;
  color: var(--pw-text-muted);
}

.sniper-book-pill {
  font-family: var(--pw-font-mono);
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.06);
  color: var(--pw-text-secondary);
}

.sniper-alert-badges {
  display: flex;
  align-items: center;
  gap: 6px;
}

.sniper-edge-pill {
  font-family: var(--pw-font-mono);
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 4px;
}

.sniper-edge-pill.edge-high {
  background: rgba(163, 230, 53, 0.14);
  border: 1px solid rgba(163, 230, 53, 0.45);
  color: var(--pw-accent-lime);
}

.sniper-edge-pill.edge-mid {
  background: rgba(125, 211, 252, 0.14);
  border: 1px solid rgba(125, 211, 252, 0.4);
  color: var(--pw-accent-blue);
}

.sniper-stale-pill {
  font-family: var(--pw-font-mono);
  font-size: 10px;
  padding: 3px 6px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.05);
  color: var(--pw-text-secondary);
}

.sniper-stale-pill.stale-warn {
  background: rgba(245, 158, 11, 0.16);
  border: 1px solid rgba(245, 158, 11, 0.45);
  color: var(--pw-state-verify);
}

.sniper-metrics-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  padding: 8px 10px;
  background: var(--pw-bg-canvas);
  border: 1px solid var(--pw-border-hairline);
  border-radius: 6px;
  margin-bottom: 8px;
}

@media (max-width: 600px) {
  .sniper-metrics-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.sniper-metric-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.sniper-metric-lbl {
  font-family: var(--pw-font-sans);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--pw-text-muted);
}

.sniper-metric-val {
  font-family: var(--pw-font-mono);
  font-size: 12px;
  font-weight: 600;
  color: var(--pw-text-primary);
}

.sniper-poly-Arb-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 6px 10px;
  margin-bottom: 8px;
  background: rgba(125, 211, 252, 0.07);
  border: 1px solid rgba(125, 211, 252, 0.25);
  border-radius: 5px;
  font-family: var(--pw-font-mono);
  font-size: 11px;
  color: var(--pw-text-secondary);
}

.sniper-poly-tag {
  font-weight: 700;
  color: var(--pw-accent-blue);
}

.sniper-alert-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-family: var(--pw-font-mono);
  font-size: 10px;
  color: var(--pw-text-muted);
}

.sniper-explain-btn {
  padding: 4px 10px;
  min-height: 28px;
  background: var(--pw-bg-elevated);
  border: 1px solid var(--pw-border-subtle);
  border-radius: 4px;
  color: var(--pw-text-primary);
  font-family: var(--pw-font-mono);
  font-size: 10px;
  cursor: pointer;
}

.sniper-reasoning-drawer {
  margin-top: 8px;
  padding: 10px 12px;
  background: rgba(9, 13, 20, 0.92);
  border-left: 2px solid var(--pw-accent-blue);
  border-radius: 4px;
  font-family: var(--pw-font-sans);
  font-size: 12px;
  line-height: 1.5;
  color: var(--pw-text-secondary);
}

.sniper-reasoning-hdr {
  font-family: var(--pw-font-mono);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--pw-accent-blue);
  margin-bottom: 4px;
}

.sniper-live-hdr,
.sniper-poly-hdr {
  font-family: var(--pw-font-mono);
  font-size: 11px;
  color: var(--pw-text-secondary);
  margin-bottom: 10px;
}

.sniper-live-row {
  background: var(--pw-bg-surface);
  border: 1px solid var(--pw-border-hairline);
  border-radius: 8px;
  padding: 12px 14px;
}

.sniper-live-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.sniper-live-sub {
  font-family: var(--pw-font-mono);
  font-size: 11px;
  color: var(--pw-text-muted);
}

.sniper-live-clock {
  font-family: var(--pw-font-mono);
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 4px;
  background: rgba(125, 211, 252, 0.12);
  color: var(--pw-accent-blue);
}

.sniper-live-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  padding: 8px 10px;
  background: var(--pw-bg-canvas);
  border-radius: 6px;
  font-family: var(--pw-font-mono);
  font-size: 11px;
  color: var(--pw-text-secondary);
}

@media (max-width: 600px) {
  .sniper-live-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.sniper-foul-flag {
  margin-top: 8px;
  padding: 4px 8px;
  background: rgba(245, 158, 11, 0.14);
  border: 1px solid rgba(245, 158, 11, 0.4);
  border-radius: 4px;
  font-family: var(--pw-font-mono);
  font-size: 10px;
  color: var(--pw-state-verify);
}

.sniper-poly-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--pw-font-mono);
  font-size: 11px;
}

.sniper-poly-table th {
  text-align: left;
  padding: 8px 6px;
  border-bottom: 1px solid var(--pw-border-subtle);
  color: var(--pw-text-muted);
  font-size: 10px;
  text-transform: uppercase;
}

.sniper-poly-table td {
  padding: 9px 6px;
  border-bottom: 1px solid var(--pw-border-hairline);
  color: var(--pw-text-primary);
}

.sniper-token-cell {
  color: var(--pw-accent-blue) !important;
  font-size: 10px;
}

.sniper-clv-panel {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.sniper-clv-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

@media (max-width: 600px) {
  .sniper-clv-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.sniper-kpi-box {
  padding: 10px 12px;
  background: var(--pw-bg-surface);
  border: 1px solid var(--pw-border-hairline);
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.sniper-kpi-lbl {
  font-family: var(--pw-font-sans);
  font-size: 10px;
  text-transform: uppercase;
  color: var(--pw-text-muted);
}

.sniper-kpi-val {
  font-family: var(--pw-font-mono);
  font-size: 16px;
  font-weight: 700;
  color: var(--pw-text-primary);
}

.sniper-suppression-hdr {
  font-family: var(--pw-font-mono);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--pw-state-verify);
  margin-top: 6px;
}

.sniper-suppression-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  background: rgba(245, 158, 11, 0.08);
  border: 1px solid rgba(245, 158, 11, 0.3);
  border-radius: 6px;
  font-family: var(--pw-font-mono);
  font-size: 11px;
  color: var(--pw-text-secondary);
}

.sniper-halt-tag {
  font-weight: 700;
  color: var(--pw-state-verify);
}

/* ============================================================================
   10. NBA LIVE LINEUPS & TACTICAL COURT FORMATION VIEW
   ============================================================================ */
.sniper-tab-btn.sniper-tab-lineups.is-active,
.sniper-tab-btn.sniper-tab-lineups.active {
  background: #A3E635 !important;
  border-color: #A3E635 !important;
  color: #090D14 !important;
  font-weight: 700 !important;
  border-radius: 999px !important;
  padding: 8px 16px !important;
}

.sniper-tab-btn.sniper-tab-lineups.is-active .sniper-kbd {
  background: rgba(9, 13, 20, 0.18) !important;
  color: #090D14 !important;
}

.nba-live-lineup-shell {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 14px;
}

.nba-game-switcher {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
}

/* v169 — CSP-clean variants for the split court-to-sniper switcher (replaces
   inline style="" attributes, which prod style-src blocks). */
.nba-game-switcher-split { justify-content: space-between; }
.nba-game-pill-row { display: flex; gap: 8px; overflow-x: auto; }

.nba-game-pill {
  padding: 6px 12px;
  min-height: 34px;
  border-radius: 999px;
  background: var(--pw-bg-surface);
  border: 1px solid var(--pw-border-hairline);
  color: var(--pw-text-secondary);
  font-family: var(--pw-font-mono);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}

.nba-game-pill.active {
  background: rgba(125, 211, 252, 0.14);
  border-color: var(--pw-accent-blue);
  color: var(--pw-accent-blue);
}

.nba-match-header-card {
  background: #0B0F17;
  border: 1px solid var(--pw-border-hairline);
  border-radius: 14px;
  padding: 14px 16px;
}

.nba-match-league-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.nba-match-league-title {
  font-family: var(--pw-font-sans);
  font-size: 13px;
  font-weight: 700;
  color: var(--pw-text-primary);
}

.nba-match-date {
  font-family: var(--pw-font-mono);
  font-size: 11px;
  color: var(--pw-text-muted);
}

.nba-match-scoreboard {
  display: grid;
  grid-template-columns: 1fr auto auto auto 1fr;
  align-items: center;
  gap: 14px;
  margin-bottom: 12px;
}

.nba-match-team-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.nba-match-tricode {
  font-family: var(--pw-font-sans);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--pw-text-primary);
}

.nba-match-score-num {
  font-family: var(--pw-font-mono);
  font-size: 28px;
  font-weight: 700;
  color: var(--pw-text-primary);
  font-variant-numeric: tabular-nums;
}

.nba-match-clock-box {
  padding: 6px 14px;
  border-radius: 8px;
  background: rgba(163, 230, 53, 0.08);
  border: 1px solid rgba(163, 230, 53, 0.45);
  text-align: center;
}

.nba-match-clock-text {
  font-family: var(--pw-font-mono);
  font-size: 12px;
  font-weight: 600;
  color: #A3E635;
}

.nba-match-events-list {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 10px 0 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.nba-match-event-line {
  font-family: var(--pw-font-sans);
  font-size: 12px;
  line-height: 1.4;
  color: var(--pw-text-secondary);
}

.nba-event-player {
  color: var(--pw-text-primary);
  font-weight: 600;
  margin-right: 4px;
}

.nba-event-detail {
  font-family: var(--pw-font-mono);
  font-size: 11px;
  color: var(--pw-text-muted);
}

.nba-match-quarters {
  text-align: center;
  font-family: var(--pw-font-mono);
  font-size: 11px;
  color: var(--pw-text-muted);
  margin-top: 6px;
}

.nba-match-back-nav {
  font-size: 22px;
  line-height: 1;
  font-weight: 700;
  color: var(--pw-text-muted);
  cursor: pointer;
  padding-right: 8px;
  user-select: none;
  transition: color 0.15s ease;
}

.nba-match-back-nav:hover {
  color: #F8FAFC;
}

.nba-match-clock-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.nba-match-ball-icon {
  font-size: 13px;
  line-height: 1;
  opacity: 0.85;
}

/* Match Center Sub-Tab Bar (Lineups · Stats · Events · Commentary · Sniper Arbs) */
.nba-match-center-tabs {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 12px 0 16px;
  overflow-x: auto;
  padding-bottom: 2px;
  scrollbar-width: none;
}

.nba-match-center-tabs::-webkit-scrollbar {
  display: none;
}

.nba-mc-tab-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 18px;
  min-height: 38px;
  border-radius: 999px;
  background: #141A25;
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #94A3B8;
  font-family: var(--pw-font-sans);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.16s ease;
}

.nba-mc-tab-btn:hover {
  background: #1A2232;
  color: #F8FAFC;
  border-color: rgba(255, 255, 255, 0.18);
}

.nba-mc-tab-btn.active {
  background: #A3E635;
  color: #090D14;
  border-color: #A3E635;
  font-weight: 700;
  box-shadow: 0 2px 10px rgba(163, 230, 53, 0.35);
}

/* Soccer Pitch & Multi-Tier Formations */
.soccer-pitch-diagram {
  min-height: 460px !important;
  background: #0E161C !important;
  border-color: rgba(163, 230, 53, 0.15) !important;
}

.soccer-formation {
  min-height: 420px !important;
  gap: 16px !important;
}

.tier-gk, .tier-def, .tier-mid, .tier-fwd {
  display: flex;
  align-items: center;
  justify-content: space-around;
  width: 100%;
}

.tier-def .nba-court-player,
.tier-mid .nba-court-player {
  width: 90px !important;
}

.tier-def .nba-court-avatar-wrap,
.tier-mid .nba-court-avatar-wrap {
  width: 50px !important;
  height: 50px !important;
}

/* Head-to-Head Match Stats View */
.nba-match-stats-card {
  background: #111621;
  border: 1px solid var(--pw-border-subtle);
  border-radius: 16px;
  padding: 20px 16px;
  margin-bottom: 16px;
}

.nba-stats-header {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  text-align: center;
}

.nba-stats-team-name {
  font-family: var(--pw-font-sans);
  font-size: 14px;
  font-weight: 700;
  color: #F8FAFC;
}

.nba-stats-vs-label {
  font-family: var(--pw-font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #A3E635;
}

.nba-stats-rows {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.nba-stat-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.nba-stat-labels {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  font-size: 12.5px;
}

.nba-stat-val.away {
  text-align: left;
  font-family: var(--pw-font-mono);
  font-weight: 700;
  color: #F8FAFC;
}

.nba-stat-name {
  text-align: center;
  font-family: var(--pw-font-sans);
  color: var(--pw-text-secondary);
}

.nba-stat-val.home {
  text-align: right;
  font-family: var(--pw-font-mono);
  font-weight: 700;
  color: #F8FAFC;
}

.nba-stat-bar-track {
  height: 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  display: flex;
  overflow: hidden;
  gap: 2px;
}

.nba-stat-bar-fill.away {
  background: #A3E635;
  border-radius: 999px 0 0 999px;
}

.nba-stat-bar-fill.home {
  background: #38BDF8;
  border-radius: 0 999px 999px 0;
}

/* Chronological Match Events View */
.nba-match-events-full-card {
  background: #111621;
  border: 1px solid var(--pw-border-subtle);
  border-radius: 16px;
  padding: 20px 16px;
  margin-bottom: 16px;
}

.nba-events-full-header {
  font-family: var(--pw-font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #A3E635;
  margin-bottom: 14px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.nba-events-timeline-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.nba-timeline-event-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.nba-timeline-badge {
  padding: 3px 8px;
  border-radius: 6px;
  font-family: var(--pw-font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.nba-timeline-badge.goal {
  background: rgba(163, 230, 53, 0.16);
  color: #A3E635;
  border: 1px solid rgba(163, 230, 53, 0.4);
}

.nba-timeline-badge.sub {
  background: rgba(56, 189, 248, 0.16);
  color: #38BDF8;
  border: 1px solid rgba(56, 189, 248, 0.4);
}

.nba-timeline-badge.foul {
  background: rgba(245, 158, 11, 0.16);
  color: #F59E0B;
  border: 1px solid rgba(245, 158, 11, 0.4);
}

.nba-timeline-badge.boost {
  background: rgba(163, 230, 53, 0.16);
  color: #A3E635;
  border: 1px solid rgba(163, 230, 53, 0.4);
}

.nba-timeline-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.nba-timeline-player {
  font-family: var(--pw-font-sans);
  font-size: 13px;
  font-weight: 700;
  color: #F8FAFC;
}

.nba-timeline-detail {
  font-family: var(--pw-font-sans);
  font-size: 12px;
  color: var(--pw-text-secondary);
}

/* Tactical / Quant Commentary View */
.nba-match-commentary-card {
  background: #111621;
  border: 1px solid var(--pw-border-subtle);
  border-radius: 16px;
  padding: 20px 16px;
  margin-bottom: 16px;
}

.nba-commentary-header {
  font-family: var(--pw-font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #A3E635;
  margin-bottom: 14px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.nba-commentary-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.nba-commentary-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.02);
  border-left: 3px solid #A3E635;
}

.nba-commentary-clock {
  font-family: var(--pw-font-mono);
  font-size: 11px;
  font-weight: 700;
  color: #A3E635;
  white-space: nowrap;
  padding-top: 1px;
}

.nba-commentary-text {
  font-family: var(--pw-font-sans);
  font-size: 12.5px;
  line-height: 1.45;
  color: var(--pw-text-secondary);
}

.nba-tactical-card {
  background: #111621;
  border: 1px solid var(--pw-border-subtle);
  border-radius: 16px;
  padding: 16px;
  position: relative;
  overflow: hidden;
}

.nba-tactical-top-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}

.nba-team-selector-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
}

.nba-team-label {
  font-family: var(--pw-font-sans);
  font-size: 13px;
  color: var(--pw-text-secondary);
}

.nba-team-lime-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  min-height: 36px;
  border-radius: 999px;
  background: #A3E635;
  border: 1px solid #A3E635;
  color: #090D14;
  font-family: var(--pw-font-sans);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.nba-sub-sim-btn {
  padding: 7px 12px;
  min-height: 36px;
  border-radius: 8px;
  background: rgba(125, 211, 252, 0.14);
  border: 1px solid var(--pw-accent-blue);
  color: var(--pw-accent-blue);
  font-family: var(--pw-font-mono);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
}

.nba-tactical-telemetry {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 14px;
}

.nba-telemetry-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--pw-font-sans);
  font-size: 12.5px;
  color: var(--pw-text-secondary);
}

.nba-telemetry-row strong {
  color: var(--pw-text-primary);
  font-family: var(--pw-font-mono);
  font-size: 12px;
}

.nba-court-diagram {
  position: relative;
  width: 100%;
  min-height: 380px;
  background: #141923;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  padding: 18px 12px;
  overflow: hidden;
}

.nba-court-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.nba-court-formation {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 22px;
  min-height: 344px;
}

.nba-court-tier {
  display: flex;
  align-items: center;
  justify-content: space-around;
  gap: 10px;
}

.nba-court-player {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 112px;
}

.nba-court-avatar-wrap {
  position: relative;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: #1E2636;
  border: 2px solid rgba(255, 255, 255, 0.75);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  margin-bottom: 6px;
}

.nba-court-player.is-boosted .nba-court-avatar-wrap {
  border-color: #A3E635;
  box-shadow: 0 0 0 3px rgba(163, 230, 53, 0.2);
}

.nba-court-player.is-foul-risk .nba-court-avatar-wrap {
  border-color: #F59E0B;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.22);
}

.nba-court-avatar-img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  position: relative;
  z-index: 2;
  background: #1E2636;
}

.nba-court-avatar-fallback {
  position: absolute;
  font-family: var(--pw-font-mono);
  font-size: 13px;
  font-weight: 700;
  color: var(--pw-text-secondary);
  z-index: 1;
}

.nba-court-node-badge {
  position: absolute;
  bottom: -5px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  padding: 1px 6px;
  border-radius: 999px;
  font-family: var(--pw-font-mono);
  font-size: 9px;
  font-weight: 700;
  white-space: nowrap;
  background: #1E293B;
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #F8FAFC;
}

.nba-court-node-badge.is-boosted {
  background: #A3E635;
  border-color: #A3E635;
  color: #090D14;
}

.nba-court-node-badge.is-foul-risk {
  background: #F59E0B;
  border-color: #F59E0B;
  color: #090D14;
}

.nba-court-player-name {
  font-family: var(--pw-font-sans);
  font-size: 12px;
  font-weight: 600;
  color: #F8FAFC;
  line-height: 1.25;
  margin-top: 2px;
}

.nba-court-player-prop {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--pw-font-mono);
  font-size: 10px;
  color: var(--pw-text-secondary);
  margin-top: 2px;
}

.nba-court-edge {
  color: #A3E635;
  font-weight: 700;
}

.nba-bench-strip {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--pw-border-hairline);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.nba-bench-label {
  font-family: var(--pw-font-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--pw-text-muted);
}

.nba-bench-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.nba-bench-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: 6px;
  background: var(--pw-bg-surface);
  border: 1px solid var(--pw-border-hairline);
  font-family: var(--pw-font-sans);
  font-size: 11.5px;
  color: var(--pw-text-primary);
}

.nba-bench-pos {
  font-family: var(--pw-font-mono);
  font-size: 10px;
  color: var(--pw-accent-blue);
  font-weight: 700;
}

.nba-bench-meta {
  font-family: var(--pw-font-mono);
  font-size: 10px;
  color: var(--pw-text-muted);
}

/* 3-Pane Command Grid: Court Diagram (Left) | Sniper Feed (Center) | Cross-Venue Arb Board (Right) */
@media (min-width: 1024px) {
  dialog.sniper-dialog .dialog-shell {
    width: min(1320px, 95vw) !important;
    max-width: min(1320px, 95vw) !important;
  }
}

.nba-command-split-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  align-items: start;
}

@media (min-width: 840px) and (max-width: 1159px) {
  .nba-command-split-grid {
    grid-template-columns: 1.05fr 0.95fr;
  }
  .nba-arb-board-panel {
    grid-column: 1 / -1;
  }
}

@media (min-width: 1160px) {
  .nba-command-split-grid {
    grid-template-columns: 1.08fr 0.96fr 0.96fr;
  }
}

.nba-side-sniper-panel {
  background: #111621;
  border: 1px solid var(--pw-border-subtle);
  border-radius: 16px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.nba-side-sniper-hdr {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--pw-border-hairline);
}

.nba-side-sniper-title {
  font-family: var(--pw-font-sans);
  font-size: 13.5px;
  font-weight: 700;
  color: var(--pw-text-primary);
}

.nba-side-sniper-sub {
  font-family: var(--pw-font-mono);
  font-size: 10.5px;
  color: var(--pw-text-muted);
  margin-top: 2px;
}

.sniper-live-pulse-badge {
  font-family: var(--pw-font-mono);
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(163, 230, 53, 0.14);
  border: 1px solid rgba(163, 230, 53, 0.45);
  color: #A3E635;
  white-space: nowrap;
}

.nba-side-sniper-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sniper-sub-edge-card {
  background: #0B0F17;
  border: 1px solid var(--pw-border-hairline);
  border-radius: 10px;
  padding: 12px 14px;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.sniper-sub-edge-card.is-lime-highlight {
  border: 1.5px solid #A3E635;
  background: rgba(163, 230, 53, 0.06);
  box-shadow: 0 0 18px rgba(163, 230, 53, 0.12);
  animation: pwSniperSlideIn 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes pwSniperSlideIn {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.sniper-sub-edge-headline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  font-family: var(--pw-font-mono);
  font-size: 12px;
  margin-bottom: 6px;
}

.sniper-sub-player {
  font-family: var(--pw-font-sans);
  font-size: 13.5px;
  font-weight: 700;
  color: var(--pw-text-primary);
}

.sniper-sub-pipe {
  color: var(--pw-text-muted);
}

.sniper-sub-mkt {
  color: var(--pw-accent-blue);
  font-weight: 600;
}

.sniper-sub-edge-val {
  color: #A3E635;
  font-weight: 700;
}

.sniper-sub-trigger-line {
  font-family: var(--pw-font-sans);
  font-size: 12px;
  color: var(--pw-text-secondary);
  line-height: 1.4;
  margin-bottom: 6px;
}

.sniper-sub-trigger-line strong {
  color: var(--pw-text-primary);
}

.sniper-sub-meta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--pw-font-mono);
  font-size: 10.5px;
  color: var(--pw-text-muted);
}

.nba-stale-toggle-btn {
  padding: 5px 10px;
  min-height: 30px;
  border-radius: 6px;
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.4);
  color: #F59E0B;
  font-family: var(--pw-font-mono);
  font-size: 10.5px;
  font-weight: 600;
  cursor: pointer;
}

.nba-stale-toggle-btn.is-active {
  background: rgba(163, 230, 53, 0.14);
  border-color: #A3E635;
  color: #A3E635;
}

.nba-stale-kill-banner {
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(239, 68, 68, 0.12);
  border: 1px solid rgba(239, 68, 68, 0.45);
  color: #FCA5A5;
  font-family: var(--pw-font-mono);
  font-size: 11px;
}

.is-greyed-stale {
  opacity: 0.42 !important;
  filter: grayscale(0.85) !important;
  pointer-events: none;
}

/* 3rd Pane: Cross-Venue Arb Board (Strict Zinc-950 / Zinc-900 / Actionable Lime) */
.nba-arb-board-panel {
  background: #18181b; /* Zinc-900 panel */
  border: 1px solid #27272a;
  border-radius: 16px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.nba-arb-board-hdr {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  padding-bottom: 10px;
  border-bottom: 1px solid #27272a;
}

.arb-status-pill {
  font-family: var(--pw-font-mono);
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 999px;
  white-space: nowrap;
}

.arb-status-pill.is-live {
  background: rgba(163, 230, 53, 0.14);
  border: 1px solid rgba(163, 230, 53, 0.45);
  color: #a3e635;
}

.arb-status-pill.is-stale {
  background: rgba(113, 113, 122, 0.22);
  border: 1px solid #52525b;
  color: #a1a1aa;
}

.arb-ws-toggle-btn {
  padding: 3px 8px;
  border-radius: 6px;
  background: #09090b;
  border: 1px solid #3f3f46;
  color: #a1a1aa;
  font-family: var(--pw-font-mono);
  font-size: 9.5px;
  font-weight: 600;
  cursor: pointer;
}

.arb-ws-toggle-btn:hover {
  border-color: #71717a;
  color: #f4f4f5;
}

.arb-stale-guard-banner {
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(113, 113, 122, 0.16);
  border: 1px solid #52525b;
  color: #d4d4d8;
  font-family: var(--pw-font-mono);
  font-size: 10.5px;
  line-height: 1.35;
}

.nba-arb-cards-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.arb-venue-card {
  background: #09090b; /* Zinc-950 card canvas */
  border: 1px solid #27272a;
  border-radius: 10px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: border-color 0.18s ease;
}

.arb-venue-card.is-arb-lime {
  border-color: rgba(163, 230, 53, 0.65);
}

.arb-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  padding-bottom: 6px;
  border-bottom: 1px solid #18181b;
}

.arb-player-title {
  font-family: var(--pw-font-sans);
  font-size: 12.5px;
  font-weight: 700;
  color: #f4f4f5;
}

.arb-spread-tag {
  font-family: var(--pw-font-mono);
  font-size: 10px;
  font-weight: 700;
  color: #a1a1aa;
}

.arb-pricing-rows {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-family: var(--pw-font-mono);
  font-size: 11.5px;
  font-variant-numeric: tabular-nums;
}

.arb-price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 6px;
  border-radius: 5px;
  background: #18181b;
  color: #a1a1aa; /* Zinc default */
  position: relative;
}

.arb-price-row.is-zinc .arb-venue-val {
  color: #d4d4d8;
  font-weight: 600;
}

.arb-price-row.is-venue-lime {
  background: rgba(163, 230, 53, 0.10);
  border: 1px solid rgba(163, 230, 53, 0.35);
  color: #a3e635;
}

.arb-price-row.is-venue-lime .arb-venue-label,
.arb-price-row.is-venue-lime .arb-venue-val,
.arb-venue-label.is-venue-lime {
  color: #a3e635;
  font-weight: 700;
}

/* Orderbook Depth Hover Tooltip */
.arb-poly-tooltip-trigger {
  cursor: help;
}

.arb-depth-popover {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(100% + 6px);
  z-index: 30;
  background: #09090b;
  border: 1px solid #3f3f46;
  border-radius: 8px;
  padding: 8px 10px;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.75);
  pointer-events: none;
}

.arb-poly-tooltip-trigger:hover .arb-depth-popover,
.arb-poly-tooltip-trigger:focus .arb-depth-popover {
  display: block;
}

.arb-depth-popover-title {
  font-family: var(--pw-font-mono);
  font-size: 9.5px;
  font-weight: 700;
  color: #a1a1aa;
  text-transform: uppercase;
  margin-bottom: 3px;
}

.arb-depth-popover-body {
  font-family: var(--pw-font-mono);
  font-size: 10.5px;
  color: #f4f4f5;
  line-height: 1.35;
}

.arb-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 8px 11px;
  border-radius: 7px;
  font-family: var(--pw-font-mono);
  font-size: 11px;
  font-weight: 700;
  text-decoration: none;
  transition: transform 0.12s ease, opacity 0.12s ease;
}

.arb-action-btn.is-lime-cta {
  background: #a3e635;
  color: #09090b;
  border: 1px solid #a3e635;
}

.arb-action-btn.is-lime-cta:hover {
  background: #bef264;
}

.arb-action-btn.is-zinc-cta {
  background: #18181b;
  color: #d4d4d8;
  border: 1px solid #3f3f46;
}

.arb-action-btn.is-disabled {
  background: #18181b !important;
  color: #71717a !important;
  border-color: #27272a !important;
  pointer-events: none;
}

/* Alert Routing Tab (Discord / Telegram Webhook Settings) */
.arb-routing-card {
  background: #18181b;
  border: 1px solid #27272a;
}

.arb-routing-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

@media (min-width: 768px) {
  .arb-routing-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.arb-routing-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.arb-routing-label {
  font-family: var(--pw-font-mono);
  font-size: 11px;
  font-weight: 700;
  color: #f4f4f5;
}

.arb-routing-hint {
  font-size: 10.5px;
  color: #a1a1aa;
  line-height: 1.35;
}

.arb-routing-mode-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

/* v171 — CSP-clean equivalents for Alert Routing inline styles.
   Prod CSP is style-src 'self' (no unsafe-inline): inline style="" attributes
   are silently stripped, so the Alert Routing pane must be class-driven. */
.arb-head-tools {
  display: flex;
  align-items: center;
  gap: 6px;
}

.arb-routing-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}

.arb-routing-title {
  margin-bottom: 2px;
}

.arb-routing-subnote {
  font-size: 11px;
  color: var(--muted);
}

.arb-routing-telegram-row {
  display: flex;
  gap: 8px;
  align-items: center;
}

.arb-routing-telegram-row .sniper-deeplink-btn {
  white-space: nowrap;
}

.arb-routing-block {
  margin-top: 12px;
}

.arb-routing-label-tight {
  margin-bottom: 6px;
}

.arb-routing-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 14px;
}

.arb-routing-save {
  width: auto;
  padding: 8px 16px;
}

.arb-routing-result {
  margin-top: 10px;
}

.arb-routing-payload-pre {
  margin: 6px 0 0;
  font-size: 10.5px;
  white-space: pre-wrap;
  color: #d4d4d8;
}
/* v175 repair: the missing `}` above left EVERYTHING from here to EOF
   nested under .arb-routing-payload-pre (CSS Nesting) — silently killing
   the card-density utilities, sim-tray styles, owner v174 compact-grid /
   hover-elevation / sticky-column / chip-wrap rules, and the v175 honesty
   styles. Found by actually opening the page in a browser (Task 61). */
/* ── Quant Mobile Card Density & Visual Enhancements ── */
.card-prog-track {
  width: 100%;
  height: 3px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 2px;
  margin-top: 4px;
  overflow: hidden;
}
.card-prog-fill {
  height: 100%;
  background: #80c6f6;
  border-radius: 2px;
}
.card-proj-fair-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px;
  width: 100%;
}
.card-proj-fair-row .font-large {
  font-size: 13px;
  font-weight: 700;
  color: #ffffff;
}
.card-proj-fair-row .font-small {
  font-size: 10px;
  color: #71717a;
}
.card-edge-badge-lime {
  display: inline-flex;
  align-items: center;
  padding: 1px 5px;
  border-radius: 4px;
  background: rgba(128, 198, 246, 0.16);
  border: 1px solid rgba(128, 198, 246, 0.4);
  color: #80c6f6;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2px;
}
.card-btn-view-ghost {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  color: #94a3b8 !important;
  font-size: 16px !important;
  line-height: 1 !important;
  padding: 4px 10px !important;
  border-radius: 6px !important;
  cursor: pointer !important;
}
.card-btn-view-ghost:hover {
  border-color: rgba(255, 255, 255, 0.35) !important;
  color: #ffffff !important;
}

@media (max-width: 768px) {
  .card-id-block .pw-avatar {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    border-radius: 50% !important;
  }
  .card-id-block .pw-avatar-team-badge {
    display: none !important;
  }
}

/* ── Verified Sniper Receipt Modal Styling ── */
.receipt-dialog {
  max-width: 580px !important;
  width: 95vw !important;
  border: 1px solid rgba(128, 198, 246, 0.45) !important;
  border-radius: 16px !important;
  background: #090d16 !important;
  box-shadow: 0 0 32px rgba(128, 198, 246, 0.18), 0 24px 64px rgba(0, 0, 0, 0.95) !important;
  color: #f4f4f5 !important;
}
.receipt-card-shell {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 16px;
  background: #0d121f;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  font-family: var(--pw-font-mono, monospace);
}
.receipt-header-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 8px;
  background: rgba(128, 198, 246, 0.12);
  border: 1px solid rgba(128, 198, 246, 0.35);
  color: #80c6f6;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3px;
}
.receipt-player-hero {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.receipt-player-name {
  font-size: 18px;
  font-weight: 800;
  color: #ffffff;
}
.receipt-prop-title {
  font-size: 13px;
  color: #a1a1aa;
  margin-top: 2px;
}
.receipt-edge-pill {
  padding: 4px 10px;
  border-radius: 8px;
  background: #80c6f6;
  color: #000000;
  font-size: 13px;
  font-weight: 800;
}
.receipt-quant-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding: 10px;
  background: rgba(0, 0, 0, 0.35);
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.05);
}
.receipt-quant-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.receipt-cell-lbl {
  font-size: 9.5px;
  color: #71717a;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.receipt-cell-val {
  font-size: 13px;
  font-weight: 700;
  color: #f4f4f5;
}
.receipt-cell-val.is-lime {
  color: #80c6f6;
}
.receipt-hash-box {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px 10px;
  border-radius: 6px;
  background: #05080e;
  border: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 10px;
  color: #71717a;
}
.receipt-hash-box strong {
  color: #a1a1aa;
}
.receipt-actions-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.receipt-action-btn {
  flex: 1;
  min-width: 140px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 9px 14px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
  text-decoration: none;
}
.receipt-action-btn.is-copy {
  background: #27272a;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
}
.receipt-action-btn.is-share-x {
  background: #000000;
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: #ffffff;
}
.receipt-action-btn.is-lime {
  background: #80c6f6;
  border: 1px solid #80c6f6;
  color: #000000;
}
.receipt-action-btn:hover {
  transform: translateY(-1px);
  filter: brightness(1.1);
}

/* ── Sniper PRO Tier Gating & Paywall Overlays ── */
.is-tier-locked {
  position: relative !important;
}
.is-tier-locked .pro-blur-target {
  filter: blur(4.5px) !important;
  user-select: none !important;
  pointer-events: none !important;
  opacity: 0.7 !important;
}
.pro-lock-gate-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(9, 13, 22, 0.72);
  backdrop-filter: blur(2px);
  z-index: 10;
  padding: 16px;
  text-align: center;
  border-radius: inherit;
}
.pro-lock-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 999px;
  background: #80c6f6;
  color: #000000;
  font-family: var(--pw-font-mono, monospace);
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.3px;
  box-shadow: 0 0 16px rgba(128, 198, 246, 0.35);
  cursor: pointer;
  border: none;
  transition: all 0.15s ease;
}
.pro-lock-badge:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
}
.pro-lock-subtext {
  font-size: 11px;
  color: #a1a1aa;
  margin-top: 8px;
  max-width: 250px;
  line-height: 1.35;
}








/* v171b — CSP-clean equivalents for the owner's arb-ledger / receipt UI (7fe252f).
   Same rationale: prod style-src 'self' strips inline style="" attributes. */
.sniper-sub-tools {
  display: flex;
  align-items: center;
  gap: 6px;
}

.arb-ledger-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.arb-ledger-title {
  margin-bottom: 2px;
}

.arb-ledger-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}

.arb-ledger-kpi-cell {
  padding: 8px 10px;
  background: rgba(0, 0, 0, 0.3);
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.arb-ledger-kpi-label {
  font-size: 10px;
  color: var(--muted);
}

.arb-ledger-kpi-val {
  font-size: 16px;
  font-weight: 800;
  color: #fff;
}

.arb-ledger-kpi-val.is-lime {
  color: #80c6f6;
}

.receipt-toast-msg {
  text-align: center;
  font-size: 11px;
}

.arb-muted-note {
  font-size: 10.5px;
  color: var(--muted);
}

/* ═══ v172 — mission W3: mobile data-first + collapsible tactical map ═══ */
.tactical-map-toggle {
  display: none;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  background: #0d1320;
  border: 1px solid var(--pw-border-subtle, rgba(255, 255, 255, 0.10));
  border-radius: 12px;
  color: #80c6f6;
  font: 700 11px/1 var(--mono, ui-monospace, 'SF Mono', Menlo, Consolas, monospace);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 11px 14px;
  cursor: pointer;
}
.tactical-map-toggle .tactical-map-chevron { transition: transform 0.18s ease; }
.tactical-map-toggle[aria-expanded="true"] .tactical-map-chevron { transform: rotate(180deg); }
.tactical-map-toggle:hover { border-color: rgba(128, 198, 246, 0.45); }
.tactical-map-body { display: block; }
@media (max-width: 767px) {
  .tactical-map-toggle { display: flex; }
  /* Sniper Feed + Arb Board come before the tactical court even in the Lineups tab */
  .nba-command-split-grid .nba-side-sniper-panel { order: 1; }
  .nba-command-split-grid .nba-arb-board-panel { order: 2; }
  .nba-command-split-grid .nba-tactical-card { order: 3; }
}
/* Mission W3 card density: FAIR/PROJ single row in monospaced tabular numerals */
.card-proj-fair-row .grid-col-val,
.card-proj-fair-row .grid-col-sub {
  font-family: var(--mono, ui-monospace, 'SF Mono', Menlo, Consolas, monospace);
  font-variant-numeric: tabular-nums;
}

/* ═══ v172b — race #8 (Sapphire ribbon) inline-style conversions ═══ */
.tnum { font-variant-numeric: tabular-nums; }
.split-divider-tight { opacity: 0.25; margin: 0 5px; }
.proj-glow { color: #38bdf8; text-shadow: 0 0 8px rgba(56, 189, 248, 0.35); }
.edge-cell-muted { color: #475569; font-size: 15px; font-weight: 500; }
.th-num-w18 { width: 18%; }
.sim-plus-dim { opacity: 0.6; }

/* ═══════════════════════════════════════════════════════════════════════
   v173 HARDENING & INTERACTIVE LINE SIMULATOR SPECIFICATION
   ═══════════════════════════════════════════════════════════════════════ */

/* 1. High-Contrast Dark Mode Secondary Badges & Micro-Readouts */
.bullet-ci-wrap {
  display: inline-flex !important;
  align-items: center !important;
  gap: 3px !important;
  color: #94a3b8 !important;
  font-size: 10px !important;
  font-weight: 600 !important;
}
.bullet-ci-tag {
  color: #f1f5f9 !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  padding: 1px 5px !important;
  border-radius: var(--radius-sm) !important;
  font-weight: 700 !important;
  letter-spacing: 0.2px !important;
}
.venue-badge.dome {
  color: #38bdf8 !important;
  background: rgba(56, 189, 248, 0.14) !important;
  border: 1px solid rgba(56, 189, 248, 0.35) !important;
  font-weight: 600 !important;
}
.driver-badge.alpha {
  color: #a7f3d0 !important;
  background: rgba(16, 185, 129, 0.16) !important;
  border: 1px solid rgba(52, 211, 153, 0.45) !important;
  font-weight: 600 !important;
}
.driver-badge.volume {
  color: #7dd3fc !important;
  background: rgba(56, 189, 248, 0.16) !important;
  border: 1px solid rgba(56, 189, 248, 0.45) !important;
  font-weight: 600 !important;
}
.driver-badge.surge {
  color: #fde68a !important;
  background: rgba(245, 158, 11, 0.18) !important;
  border: 1px solid rgba(245, 158, 11, 0.45) !important;
  font-weight: 700 !important;
}
.cell-sub {
  color: #94a3b8 !important;
  font-weight: 500 !important;
}
.bullet-dim {
  color: #94a3b8 !important;
  font-weight: 600 !important;
}

/* 2. Position Filter Quick Count Badges */
.pos-count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1px 5px;
  margin-left: 4px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  font-family: var(--mono);
  background: rgba(255, 255, 255, 0.08);
  color: #94a3b8;
}
.chip-pill.active .pos-count-badge {
  background: rgba(128, 198, 246, 0.22);
  color: #80c6f6;
}

/* 3. CLV Calibration Sparkline & Heartbeat Indicator */
.clv-trend-sparkline-wrap {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 6px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-sm);
  margin-left: 6px;
}
.clv-trend-delta {
  font-size: 10px;
  font-weight: 700;
  font-family: var(--mono);
  color: #80c6f6;
}
@keyframes spin360 {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
.telemetry-refresh-btn.spinning {
  animation: spin360 0.8s linear infinite;
  pointer-events: none;
  opacity: 0.7;
}

/* 4. Bookmaker Discrepancy & Arbitrage Badge */
.discrepancy-indicator {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 1px 6px;
  border-radius: var(--radius-sm);
  font-size: 9.5px;
  font-weight: 700;
  font-family: var(--mono);
  background: rgba(168, 85, 247, 0.16);
  border: 1px solid rgba(168, 85, 247, 0.40);
  color: #c084fc;
  margin-top: 2px;
  white-space: nowrap;
}

/* 5. Unverified / Awaiting Consensus Micro-State */
.unverified-state-micro {
  display: block;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.3px;
  color: #94a3b8;
  text-transform: uppercase;
  margin-top: 2px;
}

/* 6. Interactive Line Simulator Dialog & Controls */
.simulate-dialog .dialog-shell {
  max-width: 520px !important;
  background: #0f141f !important;
  border: 1px solid rgba(56, 189, 248, 0.3) !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.8), 0 0 24px rgba(56, 189, 248, 0.15) !important;
  border-radius: 12px !important;
}
.sim-player-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  margin-bottom: 14px;
}
.sim-player-id {
  display: flex;
  align-items: center;
  gap: 10px;
}
.sim-player-name {
  font-size: 15px;
  font-weight: 700;
  color: #ffffff;
}
.sim-player-sub {
  font-size: 11.5px;
  color: #94a3b8;
}
.sim-base-metrics {
  text-align: right;
  font-family: var(--mono);
}
.sim-base-k {
  font-size: 10px;
  color: #64748b;
  text-transform: uppercase;
}
.sim-base-v {
  font-size: 14px;
  font-weight: 700;
  color: #38bdf8;
}
.sim-control-group {
  margin-bottom: 14px;
}
.sim-control-label {
  display: flex;
  justify-content: space-between;
  font-size: 11.5px;
  font-weight: 700;
  color: #cbd5e1;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.sim-control-val {
  font-family: var(--mono);
  color: #80c6f6;
}
.sim-line-stepper-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
}
.sim-step-btn {
  width: 44px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #182232;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius);
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
}
.sim-step-btn:hover {
  background: #243248;
  border-color: #38bdf8;
}
.sim-number-input {
  flex: 1;
  height: 40px;
  background: #101622;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--radius);
  color: #ffffff;
  font-size: 18px;
  font-weight: 700;
  font-family: var(--mono);
  text-align: center;
}
.sim-range-slider {
  width: 100%;
  margin-top: 8px;
  accent-color: #38bdf8;
  cursor: pointer;
}
.sim-odds-pills {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.sim-odds-chip {
  flex: 1;
  min-width: 58px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #141c2a;
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: var(--radius-sm);
  color: #cbd5e1;
  font-size: 12px;
  font-family: var(--mono);
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}
.sim-odds-chip.active {
  background: rgba(56, 189, 248, 0.20);
  border-color: #38bdf8;
  color: #38bdf8;
  font-weight: 700;
}
.sim-readout-card {
  padding: 12px 14px;
  background: linear-gradient(135deg, rgba(16, 24, 38, 0.95) 0%, rgba(20, 32, 52, 0.95) 100%);
  border: 1px solid rgba(56, 189, 248, 0.25);
  border-radius: var(--radius);
  margin-bottom: 14px;
}
.sim-readout-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.sim-readout-item {
  display: flex;
  flex-direction: column;
}
.sim-readout-k {
  font-size: 10px;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin-bottom: 2px;
}
.sim-readout-v {
  font-family: var(--mono);
  font-size: 15px;
  font-weight: 700;
  color: #ffffff;
}
.sim-readout-v.pos {
  color: #80c6f6;
  text-shadow: 0 0 10px rgba(128, 198, 246, 0.35);
}
.sim-readout-v.neg {
  color: #f87171;
}
.sim-actions-row {
  display: flex;
  gap: 10px;
}
.sim-btn-apply {
  flex: 2;
  height: 42px;
  background: #38bdf8;
  color: #060a12;
  font-size: 13px;
  font-weight: 700;
  border: none;
  border-radius: var(--radius);
  cursor: pointer;
  transition: all 0.15s ease;
}
.sim-btn-apply:hover {
  background: #7dd3fc;
  box-shadow: 0 0 14px rgba(56, 189, 248, 0.4);
}
.sim-btn-reset {
  flex: 1;
  height: 42px;
  background: transparent;
  color: #94a3b8;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
}
.sim-btn-reset:hover {
  background: rgba(255, 255, 255, 0.06);
  color: #ffffff;
}

/* v173 CSP-clean round 2: line-simulator tray inline conversions (owner 87bddd4, Task 59) */
.sim-tray-foot { display: flex; justify-content: space-between; font-size: 10px; color: #64748b; margin-top: 2px; }
.sim-edge-btn-reset { border: none; cursor: pointer; }
/* v173 CSP-clean round 1: card-density inline conversions (owner 370f810, Task 59) */
.dens-muted-dash { color: #64748b; font-size: 13px; font-weight: 500; }
.dens-row-8 { display: flex; gap: 8px; align-items: baseline; margin-top: 4px; }
.dens-row-6 { display: flex; gap: 6px; align-items: baseline; }
.dens-proj-val { font-size: 11.5px; font-weight: 700; }
.dens-fair-sub { color: #94a3b8; font-size: 10px; }
/* v174 race #12 conversions (owner 114d814, Task 60) */
.dens-span2 { grid-column: span 2; }
.dens-val-700 { font-weight: 700; }
/* v175 honesty layer (Task 61) */
.sim-approx-note { margin-top: 8px; padding: 7px 10px; border: 1px solid rgba(148, 163, 184, 0.25); border-radius: 8px; background: rgba(30, 41, 59, 0.5); color: #94a3b8; font-size: 10.5px; line-height: 1.45; }
[data-theme="light"] .sim-approx-note { background: rgba(226, 232, 240, 0.6); color: #475569; }
/* ==========================================================================
   v174: ADVANCED GRID VIEW, COMPACT DENSITY & RESPONSIVE SCALING
   ========================================================================== */

/* 1. Card Container Hover State Elevation */
.mobile-quant-row {
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease !important;
}
.mobile-quant-row:hover {
  border-color: #38bdf8 !important;
  box-shadow: 0 6px 24px rgba(56, 189, 248, 0.22), 0 0 0 1px #38bdf8 !important;
  transform: translateY(-2px) !important;
}
[data-theme="light"] .mobile-quant-row:hover {
  border-color: #0284c7 !important;
  box-shadow: 0 6px 20px rgba(2, 132, 199, 0.18), 0 0 0 1px #0284c7 !important;
}

/* 2. Compact Grid View (4-5 columns on desktop, maximized density) */
@media (min-width: 768px) {
  #cardView.compact-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important;
    gap: 9px !important;
    max-width: 100% !important;
    padding: 12px 14px calc(80px + env(safe-area-inset-bottom, 20px)) !important;
  }
  #cardView.compact-grid .mobile-quant-row {
    padding: 9px 10px 8px !important;
    border-radius: 9px !important;
  }
  #cardView.compact-grid .card-id-block .pw-avatar {
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    min-height: 26px !important;
    font-size: 10px !important;
  }
  #cardView.compact-grid .card-player-name {
    font-size: 12px !important;
    line-height: 1.15 !important;
  }
  #cardView.compact-grid .card-team-matchup {
    font-size: 10px !important;
  }
  #cardView.compact-grid .card-hero-edge {
    font-size: 13px !important;
  }
  #cardView.compact-grid .card-edge-sub {
    font-size: 8.5px !important;
  }
  #cardView.compact-grid .card-grid-row {
    gap: 4px !important;
  }
  #cardView.compact-grid .card-grid-col {
    padding: 4px 6px !important;
  }
}

/* 3. High-Contrast Spread/Price States & Micro-Indicators */
.card-quote-standby-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.card-unverified-tag {
  font-family: var(--pw-font-mono);
  font-size: 9.5px;
  font-weight: 700;
  color: #f59e0b;
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.32);
  padding: 2px 5px;
  border-radius: 4px;
  letter-spacing: 0.3px;
}
.card-sim-line-val {
  font-family: var(--pw-font-mono);
  font-size: 12px;
  font-weight: 700;
  color: #38bdf8;
}
.card-simulate-trigger-btn {
  font-family: var(--pw-font-mono);
  font-size: 10px;
  font-weight: 700;
  color: #38bdf8;
  background: rgba(56, 189, 248, 0.08);
  border: 1px dashed rgba(56, 189, 248, 0.45);
  padding: 2px 7px;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.card-simulate-trigger-btn:hover {
  background: rgba(56, 189, 248, 0.2);
  border-color: #38bdf8;
  transform: translateY(-1px);
}

.card-odds-pill {
  font-family: var(--pw-font-mono);
  font-size: 11px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  display: inline-block;
  margin-top: 2px;
}
.card-odds-pill.flat-odds {
  color: #cbd5e1;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
}
.card-odds-pill.heavy-juice {
  color: #f59e0b;
  background: rgba(245, 158, 11, 0.14);
  border: 1px solid rgba(245, 158, 11, 0.35);
}
.card-odds-pill.plus-money {
  color: #80c6f6;
  background: rgba(128, 198, 246, 0.14);
  border: 1px solid rgba(128, 198, 246, 0.35);
}

.card-btn-sim-quick {
  background: rgba(56, 189, 248, 0.08);
  border: 1px solid rgba(56, 189, 248, 0.3);
  color: #38bdf8;
  font-family: var(--pw-font-mono);
  font-size: 10px;
  font-weight: 700;
  padding: 3px 6px;
  border-radius: 5px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  transition: all 0.15s ease;
}
.card-btn-sim-quick:hover {
  background: rgba(56, 189, 248, 0.2);
  border-color: #38bdf8;
}

.card-hero-edge.model-lean {
  font-family: var(--pw-font-mono);
  font-size: 16px;
  font-weight: 800;
}
.card-hero-edge.model-lean.positive {
  color: #38bdf8 !important;
}
.card-hero-edge.model-lean.negative {
  color: #94a3b8 !important;
}
.card-edge-sub.status-lean {
  color: #64748b;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

/* 4. Desktop Fluid Table & Sticky Column Protection */
.slate-table {
  min-width: 780px !important;
}
.table-scroll {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
}
.slate-table th:first-child,
.slate-table td:first-child {
  position: sticky !important;
  left: 0 !important;
  z-index: 2 !important;
  background: #0f141d !important;
}
.slate-table tbody tr:nth-child(even) td:first-child {
  background: #121822 !important;
}
.slate-table tbody tr:hover td:first-child {
  background: #17202e !important;
}
[data-theme="light"] .slate-table th:first-child,
[data-theme="light"] .slate-table td:first-child {
  background: #ffffff !important;
}
[data-theme="light"] .slate-table tbody tr:nth-child(even) td:first-child {
  background: #f8fafc !important;
}
[data-theme="light"] .slate-table tbody tr:hover td:first-child {
  background: #f1f5f9 !important;
}

.slate-table th:nth-child(1) { width: 25% !important; min-width: 170px !important; }
.slate-table th:nth-child(2) { width: 10% !important; min-width: 70px !important; }
.slate-table th:nth-child(3) { width: 15% !important; min-width: 100px !important; }
.slate-table th:nth-child(4) { width: 24% !important; min-width: 160px !important; }
.slate-table th:nth-child(5) { width: 26% !important; min-width: 180px !important; }

/* 5. Mobile Layout Refinements (Wrapping Chips, 44px Touch Targets, 4-Tab Nav) */
@media (max-width: 768px) {
  .pw-chip-scroll-row {
    flex-wrap: wrap !important;
    overflow-x: visible !important;
    gap: 6px 5px !important;
    padding-bottom: 4px !important;
  }
  .pw-chip-scroll-row .chip-divider {
    display: none !important;
  }
  .card-id-block .star-btn {
    width: 44px !important;
    height: 44px !important;
    flex: 0 0 44px !important;
    margin: -8px -4px -8px -8px !important;
  }
  .card-id-block .star-btn .prop-icon {
    width: 20px !important;
    height: 20px !important;
  }
  .simulate-line-btn,
  .card-simulate-trigger-btn {
    min-height: 44px !important;
  }
  .mobile-bottom-nav {
    grid-template-columns: repeat(4, 1fr) !important;
  }
}

/* 6. Dismissible Data Quality Banner */
.dq-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
}
.dq-dismiss-btn {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #94a3b8;
  border-radius: var(--radius);
  padding: 3px 8px;
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
  transition: all 0.15s ease;
}
.dq-dismiss-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}

/* ==========================================================================
   v176: DECISION CARDS — research-mode money row, signal row, action bar
   Turns each player card into a self-contained decision unit: big PROJ | FAIR
   numbers, 80% CI + distribution strip, one-line signal context, and a
   thumb-zone action bar with SIM as the primary CTA. The dead "AWAITING
   QUOTE" sportsbook block is demoted to a small honest tag (fail-closed
   quotes unchanged). CSP-clean: geometry via SVG attrs, fills via classes.
   ========================================================================== */
.card-grid-row.v176-research {
  display: flex !important;
  flex-direction: column !important;
  gap: 9px !important;
}
.card-money-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  padding: 2px 2px 0;
}
.card-money-cell {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 58px;
}
.card-money-lbl {
  font-family: var(--pw-font-mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.6px;
  color: var(--pw-text-muted, #64748b);
  text-transform: uppercase;
}
.card-money-val {
  font-family: var(--pw-font-mono);
  font-variant-numeric: tabular-nums;
  font-size: 23px;
  font-weight: 800;
  color: var(--pw-text-primary, #f8fafc);
  line-height: 1.05;
}
.card-money-val.fair {
  color: #cbd5e1;
  font-size: 21px;
  font-weight: 700;
}
.card-money-div {
  width: 1px;
  height: 30px;
  background: rgba(255, 255, 255, 0.12);
  flex: 0 0 1px;
}
.card-dist-block {
  flex: 1 1 100%;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.card-ci-chip {
  font-family: var(--pw-font-mono);
  font-size: 9.5px;
  font-weight: 700;
  color: #94a3b8;
  background: rgba(148, 163, 184, 0.08);
  border: 1px solid rgba(148, 163, 184, 0.22);
  padding: 1px 6px;
  border-radius: 4px;
  letter-spacing: 0.3px;
  width: fit-content;
  white-space: nowrap;
}
.card-dist-svg {
  display: block;
  width: 100%;
  height: 12px;
}
.cdist-track { fill: rgba(255, 255, 255, 0.07); }
.cdist-band { fill: rgba(128, 198, 246, 0.20); }
.cdist-tick-fair { fill: #94a3b8; }
.cdist-tick-proj { fill: #80c6f6; }
.cdist-tick-book { fill: #38bdf8; }
.card-signal-row {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 5px;
  align-items: center;
}
.card-context-chip {
  font-family: var(--pw-font-mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.4px;
  color: #94a3b8;
  background: rgba(148, 163, 184, 0.07);
  border: 1px solid rgba(148, 163, 184, 0.18);
  border-radius: 4px;
  padding: 2px 6px;
  white-space: nowrap;
}
.card-context-chip.pos {
  color: #4ade80;
  background: rgba(74, 222, 128, 0.08);
  border-color: rgba(74, 222, 128, 0.25);
}
.card-context-chip.neg {
  color: #f87171;
  background: rgba(248, 113, 113, 0.08);
  border-color: rgba(248, 113, 113, 0.25);
}
.card-action-bar {
  display: flex;
  align-items: stretch;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 2px;
}
.card-sim-primary {
  flex: 1 1 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  font-family: var(--pw-font-mono);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.5px;
  color: #80c6f6;
  background: rgba(128, 198, 246, 0.13);
  border: 1px solid rgba(128, 198, 246, 0.45);
  border-radius: 7px;
  padding: 0 12px;
  min-height: 34px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.card-sim-primary:hover {
  background: rgba(128, 198, 246, 0.22);
  border-color: #80c6f6;
  transform: translateY(-1px);
}
.card-sim-primary.has-sim {
  color: #38bdf8;
  background: rgba(56, 189, 248, 0.12);
  border-color: rgba(56, 189, 248, 0.5);
}
.card-sim-primary.has-sim:hover {
  background: rgba(56, 189, 248, 0.22);
  border-color: #38bdf8;
}
.card-ghost-act {
  display: inline-flex;
  align-items: center;
  font-family: var(--pw-font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.4px;
  color: #94a3b8;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 7px;
  padding: 0 10px;
  min-height: 34px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.card-ghost-act:hover {
  border-color: rgba(255, 255, 255, 0.35);
  color: #ffffff;
}
.card-research-tag {
  font-family: var(--pw-font-mono);
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: 0.5px;
  color: #64748b;
  border: 1px dashed rgba(100, 116, 139, 0.4);
  border-radius: 4px;
  padding: 2px 6px;
  align-self: center;
  white-space: nowrap;
}
.card-research-tag.sim-active {
  color: #38bdf8;
  border-color: rgba(56, 189, 248, 0.4);
}
.card-kelly-chip {
  font-family: var(--pw-font-mono);
  font-variant-numeric: tabular-nums;
  font-size: 9.5px;
  font-weight: 800;
  color: #4ade80;
  background: rgba(74, 222, 128, 0.1);
  border: 1px solid rgba(74, 222, 128, 0.3);
  border-radius: 4px;
  padding: 1px 6px;
  align-self: center;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .card-sim-primary,
  .card-ghost-act {
    min-height: 44px;
  }
  .card-money-val { font-size: 21px; }
  .card-money-val.fair { font-size: 19px; }
}
[data-theme="light"] .card-money-val { color: #0f172a; }
[data-theme="light"] .card-money-val.fair { color: #334155; }
[data-theme="light"] .card-money-div { background: rgba(15, 23, 42, 0.18); }
[data-theme="light"] .card-ci-chip {
  color: #475569;
  background: rgba(148, 163, 184, 0.16);
  border-color: rgba(148, 163, 184, 0.35);
}
[data-theme="light"] .cdist-track { fill: rgba(15, 23, 42, 0.10); }
[data-theme="light"] .cdist-band { fill: rgba(132, 204, 22, 0.25); }
[data-theme="light"] .cdist-tick-fair { fill: #475569; }
[data-theme="light"] .cdist-tick-proj { fill: #65a30d; }
[data-theme="light"] .cdist-tick-book { fill: #0284c7; }
[data-theme="light"] .card-context-chip {
  color: #475569;
  background: rgba(148, 163, 184, 0.14);
  border-color: rgba(148, 163, 184, 0.3);
}
[data-theme="light"] .card-context-chip.pos {
  color: #15803d;
  background: rgba(74, 222, 128, 0.14);
  border-color: rgba(21, 128, 61, 0.3);
}
[data-theme="light"] .card-context-chip.neg {
  color: #b91c1c;
  background: rgba(248, 113, 113, 0.12);
  border-color: rgba(185, 28, 28, 0.3);
}
[data-theme="light"] .card-sim-primary {
  color: #4d7c0f;
  background: rgba(132, 204, 22, 0.16);
  border-color: rgba(101, 163, 13, 0.5);
}
[data-theme="light"] .card-sim-primary:hover {
  background: rgba(132, 204, 22, 0.26);
  border-color: #65a30d;
}
[data-theme="light"] .card-sim-primary.has-sim {
  color: #0369a1;
  background: rgba(56, 189, 248, 0.15);
  border-color: rgba(2, 132, 199, 0.5);
}
[data-theme="light"] .card-ghost-act {
  color: #475569;
  border-color: rgba(15, 23, 42, 0.18);
}
[data-theme="light"] .card-ghost-act:hover {
  border-color: rgba(15, 23, 42, 0.45);
  color: #0f172a;
}
[data-theme="light"] .card-research-tag {
  color: #64748b;
  border-color: rgba(100, 116, 139, 0.45);
}
[data-theme="light"] .card-research-tag.sim-active {
  color: #0369a1;
  border-color: rgba(2, 132, 199, 0.45);
}
[data-theme="light"] .card-kelly-chip {
  color: #15803d;
  background: rgba(74, 222, 128, 0.14);
  border-color: rgba(21, 128, 61, 0.3);
}



/* ==========================================================================
   v176 EDGE-FIRST PRODUCTIZATION — authority block (end-of-file wins).
   Owner directive batch: larger player pictures, decluttered action bar,
   NFL/NBA league badges, 3D-sketched O/U arrows, inline card simulator,
   and the mobile fixes (bottom-nav half-off-screen left, hero telemetry
   6px overflow, 86x38 distorted avatars from the flex-basis/mobile war).
   ========================================================================== */

/* 1. Mobile bottom nav: the "floating dock" block (left:50% + translateX)
   fought the full-bar block (left:0) leaving a 330px bar HALF OFF-SCREEN
   LEFT. One authoritative full-width pin — classic tab bar, safe-area aware. */
@media (max-width: 768px) {
  .mobile-bottom-nav {
    left: 0 !important;
    right: 0 !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin-left: 0 !important;
    bottom: 0 !important;
    box-sizing: border-box !important;
    border-radius: 0 !important;
  }
}

/* 2. Card avatars: desktop authority set width/height AND flex-basis 86px
   (all !important); mobile blocks only overrode width/height, so flex-basis
   won and rendered 86x38 ovals. Single source of truth here, flex included:
   bigger pictures per owner directive (92px desktop / 54px mobile, round). */
.card-id-block .pw-avatar {
  width: 92px !important;
  height: 92px !important;
  min-width: 92px !important;
  min-height: 92px !important;
  flex: 0 0 92px !important;
  border-radius: 50% !important;
  aspect-ratio: 1 / 1 !important;
}
@media (max-width: 768px) {
  .card-id-block .pw-avatar {
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    min-height: 54px !important;
    flex: 0 0 54px !important;
    border-radius: 50% !important;
  }
  #cardView.compact-grid .card-id-block .pw-avatar {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    min-height: 34px !important;
    flex: 0 0 34px !important;
  }
}

/* 3. Hero telemetry 6px horizontal overflow (pods force min-content wider
   than the 2x2 grid track): contain the section instead of leaking page
   scroll on every mobile load. */
.pw-hero-telemetry-suite,
.pw-hero-quant-card {
  max-width: 100% !important;
  box-sizing: border-box !important;
  min-width: 0 !important;
  overflow: hidden !important;
}
.pw-hero-telemetry-suite .telemetry-col,
.pw-hero-quant-card .telemetry-col {
  min-width: 0 !important;
  overflow: hidden !important;
}

/* 4. 3D-sketched O/U arrows: ink stroke + offset shadow stroke for depth.
   UP = chartreuse (OVER), DOWN = sky blue (UNDER). */
.sketch-arrow {
  display: inline-block;
  vertical-align: -2px;
  flex-shrink: 0;
}
.sketch-arrow .sketch-arrow-shadow {
  stroke: rgba(0, 0, 0, 0.55);
  stroke-width: 2.6;
}
.sketch-arrow .sketch-arrow-ink {
  stroke-width: 2.2;
}
.sketch-arrow.up .sketch-arrow-ink { stroke: #ACE4AA; }
.sketch-arrow.down .sketch-arrow-ink { stroke: #38bdf8; }
[data-theme="light"] .sketch-arrow .sketch-arrow-shadow { stroke: rgba(15, 23, 42, 0.35); }
[data-theme="light"] .sketch-arrow.up .sketch-arrow-ink { stroke: #65a30d; }
[data-theme="light"] .sketch-arrow.down .sketch-arrow-ink { stroke: #0284c7; }

/* 5. League badges (NFL shield / NBA ball) in the sport switcher. */
.sport-switch-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.league-badge {
  width: 15px;
  height: 18px;
  flex-shrink: 0;
  display: inline-block;
}
.league-badge-nfl .lb-nfl-shield { fill: #0b1a3a; stroke: #c8d2e8; stroke-width: 1; }
.league-badge-nfl .lb-nfl-band { fill: #1e2f63; }
.league-badge-nfl .lb-nfl-star { fill: #dfe7f7; }
.league-badge-nfl .lb-nfl-text { fill: #eef2fb; font-size: 6.5px; font-weight: 800; font-family: var(--pw-font-sans, sans-serif); letter-spacing: 0.2px; }
.league-badge-nba .lb-nba-ball { fill: #c8541f; stroke: #f3e6d8; stroke-width: 1; }
.league-badge-nba .lb-nba-seam { fill: none; stroke: #f3e6d8; stroke-width: 0.9; }
.league-badge-nba .lb-nba-text { fill: #f3e6d8; font-size: 7px; font-weight: 800; font-family: var(--pw-font-sans, sans-serif); letter-spacing: 0.4px; }
[data-theme="light"] .league-badge-nfl .lb-nfl-shield { fill: #ffffff; stroke: #0b1a3a; }
[data-theme="light"] .league-badge-nfl .lb-nfl-band { fill: #1e2f63; }
[data-theme="light"] .league-badge-nba .lb-nba-ball { fill: #e8632c; stroke: #ffffff; }
[data-theme="light"] .league-badge-nba .lb-nba-seam { stroke: #ffffff; }

/* 6. Inline card simulator panel (replaces the retired modal tray). */
.csim-panel {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px 11px;
  margin-top: 2px;
  background: rgba(10, 15, 24, 0.92);
  border: 1px solid rgba(56, 189, 248, 0.28);
  border-radius: 9px;
}
[data-theme="light"] .csim-panel { background: rgba(241, 245, 249, 0.96); border-color: rgba(2, 132, 199, 0.35); }
.csim-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.csim-eyebrow {
  font-family: var(--pw-font-mono);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: #38bdf8;
}
[data-theme="light"] .csim-eyebrow { color: #0369a1; }
.csim-close {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 6px;
  color: #94a3b8;
  font-size: 14px;
  line-height: 1;
  width: 30px;
  height: 30px;
  cursor: pointer;
}
.csim-close:hover { color: #ffffff; border-color: rgba(255, 255, 255, 0.4); }
.csim-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px 7px;
}
.csim-k {
  font-family: var(--pw-font-mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: #64748b;
  min-width: 62px;
}
.csim-k-sub {
  font-size: 9px;
  color: #475569;
  flex: 1 1 100%;
}
.csim-step {
  font-family: var(--pw-font-mono);
  font-size: 11px;
  font-weight: 800;
  color: #38bdf8;
  background: rgba(56, 189, 248, 0.08);
  border: 1px solid rgba(56, 189, 248, 0.35);
  border-radius: 6px;
  min-height: 34px;
  min-width: 44px;
  padding: 0 8px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.csim-step:hover { background: rgba(56, 189, 248, 0.2); border-color: #38bdf8; }
.csim-line-val, .csim-alpha-val {
  font-size: 14px;
  font-weight: 800;
  color: #f8fafc;
  min-width: 46px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
[data-theme="light"] .csim-line-val, [data-theme="light"] .csim-alpha-val { color: #0f172a; }
.csim-odds-chips {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
}
.csim-odds-chip {
  font-family: var(--pw-font-mono);
  font-size: 10px;
  font-weight: 700;
  color: #94a3b8;
  background: rgba(148, 163, 184, 0.07);
  border: 1px solid rgba(148, 163, 184, 0.22);
  border-radius: 5px;
  padding: 3px 7px;
  min-height: 28px;
  cursor: pointer;
}
.csim-odds-chip.active {
  color: #80c6f6;
  background: rgba(128, 198, 246, 0.14);
  border-color: rgba(128, 198, 246, 0.5);
}
.csim-readout {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  padding: 7px 9px;
  background: rgba(15, 20, 30, 0.75);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 7px;
}
[data-theme="light"] .csim-readout { background: rgba(226, 232, 240, 0.7); }
.csim-ro {
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.csim-ro-k {
  font-family: var(--pw-font-mono);
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: #64748b;
  cursor: help;
}
.csim-ro-v {
  font-family: var(--pw-font-mono);
  font-size: 13px;
  font-weight: 800;
  color: #f8fafc;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-variant-numeric: tabular-nums;
}
[data-theme="light"] .csim-ro-v { color: #0f172a; }
.csim-ro-v.pos { color: #4ade80; }
.csim-ro-v.neg { color: #f87171; }
[data-theme="light"] .csim-ro-v.pos { color: #15803d; }
[data-theme="light"] .csim-ro-v.neg { color: #b91c1c; }
.csim-actions {
  display: flex;
  justify-content: flex-end;
}
.csim-clear {
  font-family: var(--pw-font-mono);
  font-size: 10px;
  font-weight: 700;
  color: #f59e0b;
  background: rgba(245, 158, 11, 0.08);
  border: 1px solid rgba(245, 158, 11, 0.3);
  border-radius: 6px;
  min-height: 34px;
  padding: 0 12px;
  cursor: pointer;
}
.csim-clear:hover { background: rgba(245, 158, 11, 0.18); }
@media (max-width: 768px) {
  .csim-step, .csim-clear { min-height: 44px; }
  .csim-close { width: 44px; height: 44px; }
  .csim-odds-chip { min-height: 36px; }
}

/* v177: league schedule within the existing PropStein chrome. */
#sportSwitcher .sport-switch-btn { padding: 4px 8px !important; }
#sportSwitcher .league-badge { width: 17px; height: 20px; object-fit: contain; }
#sportSwitcher .league-badge-ufc { width: 25px; }
.desktop-league-nav { padding: 5px 16px; border-bottom: 1px solid rgba(255,255,255,.06); background: rgba(10,13,19,.95); }
.desktop-league-nav .sport-switcher-bar { position: static; width: fit-content; padding: 0; border: 0; background: transparent !important; box-shadow: none; }
.desktop-league-nav .sport-switcher { width: fit-content; }
.mobile-league-nav { display: none; }
.today-schedule { margin: 16px 0 22px; }
.today-schedule-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.today-schedule-eyebrow { margin: 0 0 5px; color: var(--pw-accent-blue); font: 700 10px/1.2 var(--pw-font-mono, monospace); letter-spacing: .14em; }
.today-schedule-heading h2 { margin: 0; color: #f8fafc; font: 700 clamp(19px, 2.4vw, 24px)/1.2 var(--pw-font-sans, sans-serif); }
.today-schedule-heading p:last-child { margin: 5px 0 0; color: #8e9aab; font: 500 11px/1.3 var(--pw-font-sans, sans-serif); }
.today-schedule-refresh, .coming-soon-page button { min-height: 32px; padding: 6px 12px; border: 1px solid rgba(56,189,248,.28); border-radius: 8px; background: var(--pw-bg-card); color: #a7dfff; font: 600 11px/1 var(--pw-font-sans, sans-serif); cursor: pointer; }
.today-schedule-refresh:hover, .coming-soon-page button:hover { border-color: var(--pw-accent-blue); color: #fff; }
.today-schedule-games { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); align-items: start; gap: 10px; }
.today-game-card { min-width: 0; max-width: 560px; overflow: hidden; border: 1px solid rgba(111, 204, 255, .18); border-radius: 26px; background: linear-gradient(155deg, #151c25 0%, #0b111b 58%, #102535 100%); box-shadow: 0 12px 30px rgba(0,0,0,.17); }
.today-game-trigger { position: relative; display: block; width: 100%; min-height: 184px; padding: 18px 15px 0; overflow: hidden; border: 0; background: radial-gradient(ellipse at 50% 108%, rgba(91, 194, 249, .16), transparent 69%); color: inherit; text-align: inherit; cursor: pointer; }
.today-game-trigger::before { position: absolute; top: 0; left: 25%; width: 50%; height: 48px; background: linear-gradient(180deg, rgba(78, 179, 236, .15), transparent); clip-path: polygon(0 0, 100% 0, 75% 100%, 25% 100%); content: ''; pointer-events: none; }
.today-game-trigger:hover { background-color: rgba(82, 177, 232, .07); }
.today-game-trigger:focus-visible { outline: 2px solid var(--pw-accent-blue); outline-offset: -3px; }
.today-game-top { position: relative; display: flex; justify-content: center; min-height: 20px; color: #eaf6ff; font: 600 12px/1.3 var(--pw-font-sans, sans-serif); text-align: center; }
.today-game-status { position: absolute; right: 0; color: #92afc2; font-size: 10px; text-align: right; }
.today-game-status.is-live { color: var(--pw-accent-blue); }
.today-game-matchup { position: relative; display: grid; grid-template-columns: minmax(0,1fr) 50px minmax(0,1fr); align-items: center; gap: 4px; margin-top: 31px; }
.today-team { display: flex; align-items: center; gap: 5px; min-width: 0; text-align: left; }
.today-team:last-child { flex-direction: row-reverse; text-align: right; }
.today-team strong { max-width: 100%; overflow: hidden; color: #f1f5f9; font: 700 11px/1.2 var(--pw-font-sans, sans-serif); text-overflow: ellipsis; white-space: nowrap; }
.today-team-logo { display: grid; flex: 0 0 44px; place-items: center; width: 44px; height: 44px; border: 1px solid rgba(156, 199, 226, .2); border-radius: 50%; background: #1c2935; color: #a7dfff; font: 700 12px/1 var(--pw-font-mono, monospace); box-shadow: inset 0 0 12px rgba(120, 198, 240, .06); }
.today-team-logo img { width: 36px; height: 36px; object-fit: contain; }
.today-game-center { min-width: 50px; color: #d8efff; text-align: center; }
.today-versus { font: 700 13px/1 var(--pw-font-mono, monospace); }
.today-score { color: #f8fafc; font: 700 18px/1 var(--pw-font-mono, monospace); white-space: nowrap; }
.today-score span { color: var(--pw-accent-blue); }
.today-game-action { position: relative; display: flex; align-items: center; justify-content: space-between; margin: 29px -15px 0; padding: 11px 17px; border-top: 1px solid rgba(117, 205, 252, .22); background: linear-gradient(90deg, rgba(74, 175, 227, .05), rgba(92, 191, 244, .2), rgba(74, 175, 227, .05)); color: #a9e0ff; font: 700 10px/1.2 var(--pw-font-mono, monospace); letter-spacing: .08em; }
.today-game-chevron { font-size: 18px; line-height: .6; transition: transform .2s; }
.today-game-trigger[aria-expanded="true"] .today-game-chevron { transform: rotate(180deg); }
.today-game-props[hidden] { display: none; }
.today-game-props { padding: 13px 15px 16px; border-top: 1px solid rgba(117, 205, 252, .2); background: linear-gradient(180deg, rgba(31, 73, 100, .33), rgba(8, 15, 24, .8)); }
.today-prop-heading { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 9px; color: #e6f7ff; font: 700 11px/1.3 var(--pw-font-sans, sans-serif); }
.today-prop-heading span { color: #88aec7; font-size: 10px; font-weight: 500; text-align: right; }
.today-prop-list { max-height: 360px; overflow-y: auto; scrollbar-color: rgba(107, 200, 251, .45) transparent; }
.today-prop-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 1px; border-top: 1px solid rgba(165, 218, 247, .1); }
.today-prop-player { display: flex; flex-direction: column; min-width: 0; gap: 3px; }
.today-prop-player strong { overflow: hidden; color: #f0f8ff; font: 700 11px/1.2 var(--pw-font-sans, sans-serif); text-overflow: ellipsis; white-space: nowrap; }
.today-prop-player span { color: #91a8ba; font: 500 10px/1.2 var(--pw-font-sans, sans-serif); }
.today-prop-stats { display: flex; flex: 0 0 auto; gap: 12px; text-align: right; }
.today-prop-stats > span { display: flex; flex-direction: column; gap: 2px; }
.today-prop-stats b { color: #b8e9ff; font: 700 12px/1 var(--pw-font-mono, monospace); }
.today-prop-stats small { color: #7897aa; font: 600 8px/1 var(--pw-font-mono, monospace); }
.today-prop-message { margin: 0; color: #a4c7da; font: 500 11px/1.5 var(--pw-font-sans, sans-serif); }
.today-schedule-message { grid-column: 1/-1; margin: 0; padding: 20px; border: 1px solid rgba(255,255,255,.08); border-radius: 10px; background: var(--pw-bg-card); color: #a8b6c8; font: 500 12px/1.5 var(--pw-font-sans, sans-serif); }
.today-schedule-source { margin: 8px 2px 0; color: #748395; font: 500 10px/1.3 var(--pw-font-sans, sans-serif); }

body.coming-soon-active #slateBoard > :not(#comingSoonPage), body.coming-soon-active .pw-filterbar > :not(.pw-command-row):not(.mobile-league-nav) { display: none !important; }
body.coming-soon-active .pw-command-row, body.coming-soon-active #mobileFilterStrip,
body.coming-soon-active #mobileUsageTicker, body.coming-soon-active .pw-view-toggle { display: none !important; }
body.coming-soon-active .pw-filterbar { padding-bottom: 0 !important; }
.coming-soon-page[hidden] { display: none !important; }
.coming-soon-page { display: flex; flex-direction: column; align-items: center; max-width: 520px; min-height: 330px; margin: 38px auto; padding: 35px 24px; border: 1px solid rgba(56,189,248,.18); border-radius: 14px; background: var(--pw-bg-card); text-align: center; }
.coming-soon-logo { width: 72px; height: 72px; margin: 0 0 18px; object-fit: contain; }
.coming-soon-logo[src$="ufc.svg"] { width: 100px; }
.coming-soon-page h1 { margin: 2px 0 8px; color: #f8fafc; font: 700 clamp(24px,4vw,32px)/1.2 var(--pw-font-sans, sans-serif); }
.coming-soon-page > p:not(.today-schedule-eyebrow) { max-width: 350px; color: #94a3b8; font: 500 13px/1.5 var(--pw-font-sans, sans-serif); }
.coming-soon-page button { margin-top: 10px; }

@media (max-width: 768px) {
  .desktop-league-nav { display: none !important; }
  .pw-filterbar { height: auto !important; min-height: 0 !important; overflow: visible !important; }
  .mobile-league-nav { display: block !important; width: 100%; padding: 4px 6px 8px; overflow-x: auto; scrollbar-width: none; }
  .mobile-league-nav::-webkit-scrollbar { display: none; }
  .mobile-league-list { display: flex; justify-content: space-around; gap: 8px; min-width: 290px; }
  .mobile-league-list .sport-switch-btn, .mobile-league-list .sport-switch-btn.active { display: flex !important; flex-direction: column; align-items: center; gap: 4px !important; min-width: 58px; min-height: 68px; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; color: #94a3b8 !important; font: 700 10px/1.2 var(--pw-font-sans, sans-serif) !important; }
  .mobile-league-list .sport-switch-btn::before { display: none !important; }
  .mobile-league-list .sport-switch-btn.active { color: #d8efff !important; }
  .mobile-league-list .league-badge { width: 43px; height: 43px; padding: 9px; border: 1px solid rgba(148,163,184,.18); border-radius: 50%; background: #161d29; object-fit: contain; }
  .mobile-league-list .league-badge-ufc { padding: 12px 5px; }
  .mobile-league-list .sport-switch-btn.active .league-badge { border-color: rgba(56,189,248,.8); box-shadow: 0 0 0 2px rgba(56,189,248,.13); }
  .today-schedule { margin: 10px 0 18px; }
  .today-schedule-games { grid-template-columns: 1fr; }
  .coming-soon-page { margin-top: 10px; }
}

/* v180: schedule-first front page; advanced controls remain in the menu. */
.pw-topbar .pw-telemetry-pod, .pw-topbar-center,
.pw-topbar-right > :not(#frontMenuBtn):not(#mobileMenuBtn):not(#frontSearchBtn) { display: none !important; }
#mobileMenuBtn.pw-mobile-menu-btn { display: none !important; }
.pw-topbar { overflow: visible !important; }
.pw-topbar-right { margin-left: auto; }
.front-menu-btn { display: inline-flex !important; align-items: center; gap: 11px; min-height: 35px; padding: 7px 12px; border: 1px solid rgba(143, 205, 239, .28); border-radius: 10px; background: #151f2b; color: #d7efff; font: 700 12px/1 var(--pw-font-sans, sans-serif); cursor: pointer; }
.front-menu-btn span { color: #8bcff6; font-size: 15px; }
.front-menu-btn:hover, .front-menu-btn:focus-visible { border-color: #7bd1ff; }
.front-menu-dialog { position: fixed; inset: 0; width: min(360px, calc(100vw - 28px)); max-width: none; max-height: min(80vh, 540px); margin: auto; padding: 0; border: 1px solid rgba(137, 208, 246, .28); border-radius: 19px; background: linear-gradient(160deg, #182432, #0b111a); color: #f0f8ff; box-shadow: 0 25px 80px rgba(0,0,0,.7); }
.front-menu-dialog::backdrop { background: rgba(2, 7, 12, .72); backdrop-filter: blur(5px); }
.front-menu-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid rgba(145, 205, 238, .14); font: 700 15px/1.2 var(--pw-font-sans, sans-serif); }
.front-menu-head button { border: 0; background: transparent; color: #a8cce0; font-size: 25px; cursor: pointer; }
.front-menu-actions { display: grid; gap: 4px; padding: 10px; }
.front-menu-actions button { display: flex; align-items: center; justify-content: space-between; min-height: 46px; padding: 10px 13px; border: 0; border-radius: 9px; background: transparent; color: #d9e8f2; font: 600 13px/1.2 var(--pw-font-sans, sans-serif); text-align: left; cursor: pointer; }
.front-menu-actions button:hover, .front-menu-actions button:focus-visible { background: rgba(101, 191, 242, .13); color: #fff; }
.front-menu-actions button span { color: #8bcff6; }
.front-menu-actions a { display: flex; align-items: center; justify-content: space-between; min-height: 46px; padding: 10px 13px; border-radius: 9px; color: #a9ddfa; font: 600 13px/1.2 var(--pw-font-sans, sans-serif); text-decoration: none; }
.front-menu-actions a:hover, .front-menu-actions a:focus-visible { background: rgba(101, 191, 242, .13); color: #fff; }
.front-menu-actions a span { color: #8bcff6; }
.pricing-community-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 14px 0; padding: 14px; border: 1px solid rgba(128, 198, 246, .22); border-radius: 12px; background: linear-gradient(110deg, rgba(48, 83, 111, .22), rgba(12, 19, 28, .65)); }
.pricing-community-row strong { color: #e5f4ff; font-size: 13px; }
.pricing-community-row p { margin: 4px 0 0; color: #a8bac9; font-size: 12px; line-height: 1.4; }
.pricing-community-row a { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 8px; min-height: 44px; padding: 10px 13px; border: 1px solid rgba(128, 198, 246, .5); border-radius: 9px; color: #b8e5ff; font: 700 12px/1.2 var(--pw-font-sans, sans-serif); text-decoration: none; }
.pricing-community-row a:hover, .pricing-community-row a:focus-visible { border-color: #80c6f6; background: rgba(128, 198, 246, .12); color: #fff; }
@media (max-width: 600px) { .pricing-community-row { align-items: stretch; flex-direction: column; } .pricing-community-row a { justify-content: center; } }
.front-explore-btn { display: flex; align-items: center; justify-content: space-between; width: min(100%, 560px); margin: 2px 0 24px; padding: 15px 18px; border: 1px solid rgba(134, 206, 246, .23); border-radius: 13px; background: linear-gradient(110deg, #172636, #0d1723); color: #d7efff; font: 700 12px/1 var(--pw-font-sans, sans-serif); cursor: pointer; }
.front-explore-btn:hover { border-color: #7bd1ff; }
.front-explore-btn span { color: #8bcff6; font-size: 16px; }
.front-pro-bar { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; padding: 8px 10px; border: 1px solid rgba(143,205,239,.18); border-radius: 11px; background: #111a25; }
.front-pro-bar > span { color: #8daec2; font: 700 9px/1 var(--pw-font-mono,monospace); letter-spacing: .12em; white-space: nowrap; }
.front-pro-segments { display: flex; flex-wrap: wrap; gap: 3px; }
.front-pro-segments button { min-height: 30px; padding: 7px 10px; border: 0; border-radius: 6px; background: transparent; color: #9fb6c8; font: 600 11px/1.1 var(--pw-font-sans,sans-serif); cursor: pointer; }
.front-pro-segments button[aria-pressed="true"] { background: #263a4c; color: #e5f6ff; }
.front-pro-segments button:hover { color: #fff; }
.book-implied { display: block; margin-top: 3px; color: #a6cde3; font: 600 10px/1.2 var(--pw-font-mono,monospace); font-variant-numeric: tabular-nums; }
@media (min-width: 769px) {
  .today-schedule:has(.today-game-card:only-child) { max-width: 680px; margin-inline: auto; }
  .today-schedule:has(.today-game-card:only-child) .today-game-card { max-width: none; }
  body:not(.front-board-open) .front-explore-btn { margin-inline: auto; }
  .front-board-open .pw-filterbar { gap: 8px !important; margin: 4px 12px 0; padding: 7px 9px !important; border: 1px solid rgba(139,207,246,.18) !important; border-radius: 12px; background: #111b26 !important; box-shadow: none !important; }
  .front-board-open .pw-command-row, .front-board-open .pw-chip-scroll-row { border: 0 !important; background: transparent !important; box-shadow: none !important; }
  .front-board-open .chip-segment-group { border: 0 !important; background: transparent !important; box-shadow: none !important; }
  .front-board-open .chip-segment-group .chip-pill { border: 0 !important; border-radius: 6px !important; background: transparent !important; box-shadow: none !important; color: #a8bac9 !important; }
  .front-board-open .chip-segment-group .chip-pill.active { background: #24384a !important; color: #e0f4ff !important; }
  .front-board-open .chip-segment-group .chip-count-pill { border: 0 !important; background: transparent !important; color: #8fd2f5 !important; }
  .front-board-open .pw-chip-scroll-row .chip-divider { opacity: .3; }
}
.terminal-compliance-footer { margin-top: 24px; padding-top: 20px; background: transparent; }
.front-legal { max-width: 760px; margin: 0 auto; color: #7894a7; }
.front-legal summary { width: fit-content; margin: 0 auto; padding: 5px 8px; color: #8fb8d0; font: 600 10px/1.4 var(--pw-font-sans, sans-serif); cursor: pointer; }
.front-legal .compliance-research-nav { margin-top: 12px; }
.front-legal .compliance-disclaimer { margin: 12px auto 0; }
.pw-institutional-footer { display: none !important; }
body:not(.front-board-open) .data-board, body:not(.front-board-open) .data-quality-banner,
body:not(.front-board-open) .injury-drawer-wrap, body:not(.front-board-open) .trust-line { display: none !important; }
.pw-hero-telemetry-suite { display: none !important; }
@media (min-width: 769px) {
  body:not(.front-board-open) .pw-filterbar { display: none !important; }
}
@media (max-width: 768px) {
  body:not(.front-board-open) .pw-filterbar > :not(.mobile-league-nav) { display: none !important; }
  body:not(.front-board-open) #mobileFilterStrip,
  body:not(.front-board-open) .mobile-bottom-nav { display: none !important; }
  .front-menu-btn { min-height: 31px; padding: 6px 9px; font-size: 11px; }
  .front-explore-btn { margin-top: 0; }
  .front-pro-bar { align-items: start; flex-direction: column; gap: 6px; }
}

/* Game-specific player cards: photos, projection, and clearly separated line sides. */
.today-prop-list { max-height: 520px; }
.today-prop-row { display: block; padding: 13px 1px 14px; }
.today-prop-summary { display: flex; align-items: center; gap: 10px; min-width: 0; }
.today-prop-photo { position: relative; display: grid; flex: 0 0 42px; place-items: center; width: 42px; height: 42px; overflow: hidden; border: 1px solid rgba(139, 207, 246, .25); border-radius: 50%; background: #263a4b; color: #b8e9ff; font: 700 12px/1 var(--pw-font-sans, sans-serif); }
.today-prop-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.today-prop-player { flex: 1 1 auto; }
.today-prop-player strong { font-size: 12px; }
.today-prop-player span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.today-prop-projection { display: flex; flex: 0 0 auto; flex-direction: column; align-items: end; gap: 3px; color: #e6f7ff; }
.today-prop-projection b { font: 700 17px/1 var(--pw-font-mono, monospace); }
.today-prop-projection small { color: #8fb3c8; font: 700 8px/1 var(--pw-font-mono, monospace); }
.today-line-boxes { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 7px; margin: 11px 0 5px 52px; }
.today-line-box { display: flex; align-items: center; justify-content: space-between; gap: 3px; min-width: 0; padding: 8px 9px; border: 1px solid rgba(154, 197, 221, .16); border-radius: 9px; background: rgba(5, 13, 21, .6); }
.today-line-box b { overflow: hidden; font: 700 10px/1.1 var(--pw-font-sans, sans-serif); text-overflow: ellipsis; white-space: nowrap; }
.today-line-box small { color: #b8cad7; font: 600 10px/1 var(--pw-font-mono, monospace); }
.today-line-box.over b { color: #ACE4AA; }
.today-line-box.under b { color: #FF8383; }
.today-line-box.over.model-lean { border-color: rgba(172,228,170,.5); background: rgba(172,228,170,.08); }
.today-line-box.under.model-lean { border-color: rgba(255,131,131,.5); background: rgba(255,131,131,.08); }
.today-line-source, .today-no-line { margin: 0 1px 0 52px; color: #7d9bad; font: 500 9px/1.35 var(--pw-font-sans, sans-serif); }
.today-no-line { padding-top: 6px; }
.dir-over .dir-arrow { color: #ACE4AA !important; }
.dir-under .dir-arrow { color: #FF8383 !important; }
.today-line-arrow { display: inline-block; margin-right: 3px; font-size: 14px; line-height: .8; }
.today-line-box.over .today-line-arrow { color: #ACE4AA; }
.today-line-box.under .today-line-arrow { color: #FF8383; }
.ou-mini-pair { display: flex; gap: 5px; margin-top: 5px; }
.ou-mini-box { display: inline-flex; align-items: center; gap: 3px; min-width: 0; padding: 5px 6px; border: 1px solid rgba(139,207,246,.22); border-radius: 7px; background: linear-gradient(135deg, rgba(30,57,78,.55), rgba(5,13,21,.9)); color: #d9effa; font: 700 9px/1.1 var(--pw-font-sans, sans-serif); white-space: nowrap; }
.ou-mini-box small { color: #a9c8d9; font: 600 9px/1 var(--pw-font-mono, monospace); }
.ou-mini-arrow { font: 900 15px/1 var(--pw-font-sans, sans-serif); }
.ou-over .ou-mini-arrow { color: #ACE4AA; }
.ou-under .ou-mini-arrow { color: #FF8383; }
.mobile-quant-row .ou-mini-pair { flex-direction: column; align-items: flex-start; }
.mobile-quant-row .ou-mini-box { width: fit-content; }

/* Graphite canvas: soft charcoal depth with ice-blue accents. */
.home-edge-preview { margin: 16px 0 22px; padding: 16px; border: 1px solid rgba(128,198,246,.22); border-radius: 18px; background: linear-gradient(145deg, #29292d, #171719 55%, #101012); box-shadow: 0 16px 36px rgba(0,0,0,.22); }
.home-edge-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.home-edge-heading h2 { margin: 0; color: #F3F4F6; font: 700 clamp(18px,2vw,23px)/1.2 var(--pw-font-sans,sans-serif); }
.home-edge-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.home-edge-heading button { min-height: 36px; padding: 6px 12px; border: 1px solid #222733; border-radius: 3px; background: #11141B; color: #38BDF8; font: 700 11px/1.2 var(--pw-font-sans,sans-serif); cursor: pointer; transition: all 0.15s ease; }
.home-edge-heading button:hover { border-color: #38BDF8; background: #0C2538; }
.home-edge-status { margin: 10px 0 12px; color: #9CA3AF; font: 600 11px/1.35 var(--pw-font-mono,monospace); }
.home-edge-list { display: grid; gap: 8px; }
.home-edge-empty { margin: 0; padding: 13px 14px; border: 1px solid #222733; border-radius: 4px; background: #11141B; color: #9CA3AF; font: 500 12px/1.45 var(--pw-font-sans,sans-serif); }
.home-edge-card { display: grid; grid-template-columns: minmax(140px,1.2fr) minmax(125px,1fr) minmax(180px,1fr); align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid #222733; border-radius: 4px; background: #11141B; transition: background 0.15s ease; }
.home-edge-card:hover { background: #171B24; }
.home-edge-player, .home-edge-line { display: grid; gap: 4px; }
.home-edge-player strong { color: #F3F4F6; font: 700 14px/1.2 var(--pw-font-sans,sans-serif); }
.home-edge-player span, .home-edge-line > span:last-child { color: #9CA3AF; font: 600 10px/1.3 var(--pw-font-sans,sans-serif); }
.home-edge-line strong { color: #F3F4F6; font: 700 17px/1.1 var(--pw-font-mono,monospace); }
.home-edge-line small { color: #9CA3AF; font-size: 11px; }
.home-edge-direction { font: 800 10px/1.2 var(--pw-font-mono,monospace); letter-spacing: .05em; }
.home-edge-direction.over { color: #10B981; }
.home-edge-direction.under { color: #F87171; }
.home-edge-metrics { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; text-align: right; }
.home-edge-metrics span { display: grid; gap: 4px; }
.home-edge-metrics small { color: #64748B; font: 700 9px/1.2 var(--pw-font-mono,monospace); }
.home-edge-metrics strong { color: #38BDF8; font: 700 13px/1.2 var(--pw-font-mono,monospace); font-variant-numeric: tabular-nums; }
.home-research-card { grid-template-columns: minmax(140px,1.2fr) minmax(125px,1fr) minmax(180px,1fr); }
.home-research-label { color: #38BDF8 !important; font: 700 10px/1.2 var(--pw-font-mono,monospace) !important; }
.home-research-note { margin: 0; color: #9CA3AF; font: 500 11px/1.4 var(--pw-font-sans,sans-serif); }
@media (max-width: 650px) { .home-edge-preview { padding: 13px; } .home-edge-heading button { max-width: 116px; } .home-edge-card { grid-template-columns: 1fr 1fr; gap: 10px; } .home-edge-metrics { grid-column: 1/-1; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.09); text-align: left; } }
@media (max-width: 650px) { .home-research-note { grid-column: 1/-1; } }
:root {
  --bg-app: #0B0D11;
  --bg-app-raised: #11141B;
  --bg-card: #11141B;
  --bg-card-hover: #171B24;
  --bg-canvas: #0B0D11;
  --bg-surface: #11141B;
  --bg-elevated: #11141B;
  --bg: #0B0D11;
  --surface: #11141B;
  --surface-2: #11141B;
  --surface-3: #171B24;
  --surface-row-hover: #171B24;
  --line: #222733;
  --line-strong: #222733;
  --border-subtle: #222733;
  --border-hairline: #222733;
  --pw-bg-canvas: #0B0D11;
  --pw-bg-card: #11141B;
  --pw-bg-card-hover: #171B24;
  --pw-bg-inset: #0B0D11;
  --pw-bg-elevated: #11141B;
  --pw-bg-surface: #11141B;
  --pw-bg-deep: #0B0D11;
  --pw-bg-bar: #0B0D11;
  --pw-bg-control: #171B24;
  --pw-accent: #38BDF8;
  --pw-accent-blue: #38BDF8;
  --pw-accent-lime: #38BDF8;
  --accent: #38BDF8;
  --accent-primary: #38BDF8;
  --accent-primary-bright: #38BDF8;
  --accent-cyan: #38BDF8;
  --baby-blue: #38BDF8;
  --brand-accent: #38BDF8;
  --brand-accent-glow: transparent;
  --baby-blue-glow: transparent;
  --radius: 4px;
  --radius-sm: 2px;
  --radius-lg: 4px;
}

html { background: #0B0D11; }
body {
  background: #0B0D11 !important;
}

.pw-topbar,
.pw-terminal-chrome {
  background: #0B0D11 !important;
  border-bottom: 1px solid #222733 !important;
}
.desktop-league-nav,
.pw-filterbar,
.sport-switcher-bar {
  background: #11141B !important;
  border-color: #222733 !important;
}
.mobile-league-list .league-badge { background: #171B24; }

.today-game-card {
  background: #11141B;
  border: 1px solid #222733;
  border-radius: 4px;
  box-shadow: none;
}
.today-game-trigger {
  background: #11141B;
}
.today-game-trigger::before {
  display: none;
}
.today-game-trigger:hover { background-color: #171B24; }
.today-team-logo { background: #171B24; border-color: #222733; }
.today-game-action {
  background: #11141B;
  border-top-color: #222733;
}
.today-game-props { background: #11141B; }
.today-line-box { background: #0B0D11; border: 1px solid #222733; border-radius: 3px; }
.ou-mini-box { background: #0B0D11; border: 1px solid #222733; border-radius: 3px; }

.mobile-quant-row { background: #11141B !important; border-bottom: 1px solid #222733 !important; }
.slate-table thead,
.table-scroll { background: #11141B !important; }
.slate-table tbody tr[data-testid="slate-row"],
.slate-table tbody tr[data-testid="slate-row"]:nth-child(even) { background: #11141B; border-bottom: 1px solid #222733; }
.slate-table th:first-child,
.slate-table td:first-child { background: #11141B !important; }
.slate-table tbody tr:nth-child(even) td:first-child { background: #11141B !important; }
.slate-table tbody tr:hover,
.slate-table tbody tr:hover td:first-child { background: #171B24 !important; }

.front-menu-btn { background: linear-gradient(135deg, #303034, #1c1c1f); }
.front-menu-dialog { background: linear-gradient(150deg, #303034, #19191b 48%, #101012); }
.front-explore-btn { background: linear-gradient(110deg, #2b2b2f, #141416); }
.front-pro-bar { background: #1a1a1d; }
.front-pro-segments button[aria-pressed="true"] { background: #34343a; color: #d9f1ff; }
.front-board-open .pw-filterbar { background: linear-gradient(120deg, #262629, #161618) !important; }
.front-board-open .chip-segment-group .chip-pill.active { background: #34343a !important; color: #d9f1ff !important; }
.coming-soon-page { background: linear-gradient(145deg, #29292d, #141416); }
.book-cell .ou-mini-pair { justify-content: flex-end; }
@media (max-width: 365px) {
  .today-line-boxes { margin-left: 0; }
  .today-line-source, .today-no-line { margin-left: 0; }
  .today-line-box b { font-size: 9px; }
}

/* Player board: graphite surfaces, ice-blue focus, and a quiet secondary filter. */
.pw-filterbar { height: auto !important; min-height: 42px; align-items: flex-start !important; overflow: visible !important; }
.pw-chip-scroll-row { align-items: center; flex-wrap: wrap; overflow: visible !important; gap: 8px; }
.pw-chip-scroll-row .chip-divider { opacity: .25; }
.pw-chip-scroll-row .view-switch { margin-left: auto; }
.position-filter-menu { position: relative; flex: 0 0 auto; }
.position-filter-menu > summary {
  display: flex; align-items: center; gap: 8px; min-height: 34px;
  padding: 0 12px; border: 1px solid rgba(205,205,215,.15); border-radius: 8px;
  background: #222225; color: #b8c8d3; font: 650 11px/1 var(--pw-font-sans,sans-serif);
  cursor: pointer; list-style: none;
}
.position-filter-menu > summary::-webkit-details-marker { display: none; }
.position-filter-menu > summary::after { content: '⌄'; color: #80c6f6; font-size: 15px; }
.position-filter-menu[open] > summary { border-color: rgba(128,198,246,.5); color: #e4f5ff; }
.position-filter-menu #positionChipGroup {
  position: absolute; z-index: 50; top: calc(100% + 6px); left: 0;
  display: flex; flex-wrap: wrap; width: max-content; max-width: min(330px, 90vw);
  padding: 7px !important; border: 1px solid rgba(128,198,246,.3) !important;
  border-radius: 10px; background: #1d1d20 !important;
  box-shadow: 0 16px 32px rgba(0,0,0,.45);
}
.position-filter-menu #positionChipGroup::before { display: none !important; }
.position-filter-menu .chip-pill { min-height: 34px; }
.pw-chip-scroll-row .view-switch .pw-seg-btn.active,
.pw-chip-scroll-row .chip-segment-group .chip-pill.active {
  background: #34343a !important; color: #d9f1ff !important;
  border-color: rgba(128,198,246,.32) !important;
}

@media (min-width: 769px) {
  #cardView.card-grid { grid-template-columns: 1fr !important; max-width: 1220px !important; gap: 10px !important; }
  #cardView:not(.compact-grid) .mobile-quant-row.quoted-card {
    display: grid !important; grid-template-columns: minmax(215px,.85fr) minmax(205px,1fr) minmax(250px,1.15fr);
    gap: 10px 14px; align-items: stretch; padding: 15px !important;
  }
  #cardView:not(.compact-grid) .quoted-card .card-header-row { grid-column: 1; grid-row: 1 / span 2; margin: 0 !important; flex-direction: column !important; align-items: stretch !important; justify-content: flex-start !important; gap: 10px !important; }
  #cardView:not(.compact-grid) .quoted-card .card-id-block { align-items: flex-start !important; width: 100%; flex: 0 0 auto !important; }
  #cardView:not(.compact-grid) .quoted-card .card-name-group { min-width: 0; }
  #cardView:not(.compact-grid) .quoted-card .card-id-block .pw-avatar { width: 52px !important; height: 52px !important; min-width: 52px !important; min-height: 52px !important; border-radius: 10px !important; }
  #cardView:not(.compact-grid) .quoted-card .card-hero-edge-block { align-self: flex-start; align-items: flex-start !important; margin-left: 34px; }
  #cardView:not(.compact-grid) .quoted-card .card-hairline-sep { display: none !important; }
  #cardView:not(.compact-grid) .quoted-card .card-grid-row { display: contents !important; }
  #cardView:not(.compact-grid) .quoted-card .col-book { grid-column: 2; grid-row: 1; }
  #cardView:not(.compact-grid) .quoted-card .col-model { grid-column: 3; grid-row: 1; }
  #cardView:not(.compact-grid) .quoted-card .col-steam { grid-column: 2; grid-row: 2; }
  #cardView:not(.compact-grid) .quoted-card .col-action { grid-column: 3; grid-row: 2; flex-direction: row !important; justify-content: flex-end !important; }
  #cardView:not(.compact-grid) .quoted-card .inline-sim-panel { grid-column: 1 / -1; }
}
#cardView:not(.compact-grid) .mobile-quant-row {
  border-color: rgba(210,220,230,.12) !important;
  box-shadow: inset 0 1px rgba(255,255,255,.05), 0 8px 22px rgba(0,0,0,.23) !important;
}
#cardView:not(.compact-grid) .mobile-quant-row:hover,
#cardView:not(.compact-grid) .mobile-quant-row:focus-visible {
  background: linear-gradient(145deg,#2d2d31,#1b1b1e 58%,#121214) !important;
  border-color: rgba(128,198,246,.55) !important;
  outline: none;
}
.mobile-quant-row .card-player-name { font-size: 15px !important; font-weight: 700 !important; color: #f6f8fa !important; }
.mobile-quant-row .card-team-matchup { color: #96a7b3 !important; font-size: 10px !important; }
.mobile-quant-row .card-grid-col:not(.col-action) {
  background: rgba(7,7,9,.45) !important; border-color: rgba(215,225,235,.09) !important;
  padding: 9px 11px !important;
}
.mobile-quant-row .card-grid-col:not(.col-action):hover { background: rgba(29,34,38,.85) !important; border-color: rgba(128,198,246,.22) !important; }
.mobile-quant-row .grid-col-lbl { color: #8b9aa5 !important; }
.mobile-quant-row :is(.grid-col-val,.card-proj-fair-row,.card-odds-pill,.card-ci-chip,.ou-mini-box) { font-variant-numeric: tabular-nums; }
.mobile-quant-row .col-model .dens-proj-val { color: #b9e7ff !important; font-weight: 800 !important; }
.mobile-quant-row .col-model .dens-fair-sub { color: #b9c4cd !important; }
.mobile-quant-row .card-hero-edge.closed,
.mobile-quant-row .card-hero-edge.none { background: rgba(255,255,255,.035) !important; border: 1px dashed rgba(210,220,230,.2) !important; color: #9aa6af !important; }
.mobile-quant-row .card-hero-edge.text-caution,
.mobile-quant-row .card-hero-edge.text-shift { background: rgba(255,255,255,.035) !important; border: 1px dashed rgba(210,220,230,.2) !important; color: #a9b8c2 !important; }
.mobile-quant-row .card-edge-sub.status-verify { color: #a9b8c2 !important; }
.mobile-quant-row .card-edge-sub.status-no-line { color: #8e9ba4 !important; }
.mobile-quant-row .ou-mini-pair { flex-direction: row; flex-wrap: wrap; }
.mobile-quant-row .ou-mini-box { background: #202125; border-color: rgba(128,198,246,.18); }
.mobile-quant-row .ou-over .ou-mini-arrow { color: #ACE4AA !important; }
.mobile-quant-row .ou-under .ou-mini-arrow { color: #FF8383 !important; }
@media (max-width: 768px) {
  .pw-chip-scroll-row { overflow: visible !important; }
  .position-filter-menu #positionChipGroup { max-width: min(300px, 82vw); }
  .mobile-quant-row .card-grid-row:not(.v176-research) { grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; }
  .mobile-quant-row .card-grid-row:not(.v176-research) .col-steam { grid-column: 1; }
  .mobile-quant-row .card-grid-row:not(.v176-research) .col-action { grid-column: 2; flex-direction: row !important; justify-content: flex-end !important; }
  .mobile-quant-row .card-grid-row:not(.v176-research) .inline-sim-panel { grid-column: 1 / -1; }
  .mobile-quant-row .col-book .ou-mini-pair { flex-direction: column; }
}

/* Player drawer: one primary bento row, compact status, and separated ruler lanes. */
.detail-header-copy { min-width: 0; flex: 1; }
.front-inline-search { position: sticky; top: 0; z-index: 20; display: grid; gap: 5px; margin: 12px 0 0; padding: 10px 12px; border: 1px solid rgba(128,198,246,.22); border-radius: 12px; background: rgba(18,20,24,.96); box-shadow: 0 8px 22px rgba(0,0,0,.22); }
.snapshot-age-pill { display: inline-flex; align-items: center; min-height: 30px; margin: 12px 0 0; padding: 6px 10px; border: 1px solid rgba(243,188,100,.38); border-radius: 999px; background: rgba(65,43,19,.6); color: #f6d7a3; font: 700 10px/1.25 var(--pw-font-mono,monospace); }
.snapshot-age-pill[hidden] { display: none; }
.front-board-open .pw-command-row { display: none !important; }
.front-inline-search label { color: #9cbbcd; font: 700 9px/1.1 var(--pw-font-mono,monospace); letter-spacing: .12em; }
.front-inline-search input { width: 100%; min-height: 40px; padding: 8px 12px; border: 1px solid rgba(128,198,246,.25); border-radius: 8px; outline: none; background: #22252a; color: #f4f8fb; font: 500 14px/1.2 var(--pw-font-sans,sans-serif); }
.front-inline-search input:focus { border-color: #80c6f6; box-shadow: 0 0 0 2px rgba(128,198,246,.15); }
.home-edge-show-all { display: block; width: 100%; min-height: 44px; margin-top: 10px; border: 1px solid rgba(128,198,246,.25); border-radius: 10px; background: #22262d; color: #b7e5ff; font: 700 12px/1.2 var(--pw-font-sans,sans-serif); cursor: pointer; }
.home-edge-show-all[hidden], .home-edge-fallback[hidden] { display: none; }
.home-edge-fallback { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; padding: 12px; border: 1px solid rgba(128,198,246,.2); border-radius: 10px; background: #1c222a; color: #b8c7d3; font: 500 12px/1.4 var(--pw-font-sans,sans-serif); }
.home-edge-fallback button { min-height: 38px; padding: 7px 10px; border: 1px solid rgba(128,198,246,.38); border-radius: 8px; background: #273543; color: #d2efff; font: 700 11px/1.2 var(--pw-font-sans,sans-serif); cursor: pointer; }
.home-book-pill { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; padding: 3px 6px; border: 1px solid var(--book-accent); border-radius: 5px; color: var(--book-accent); background: rgba(0,0,0,.28); font: 800 10px/1 var(--pw-font-mono,monospace); vertical-align: middle; }
.detail-header-summary { margin: 6px 0 0; color: #9fb2c0; font: 500 11px/1.35 var(--pw-font-mono, monospace); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.detail-header-watch { flex: 0 0 40px; width: 40px; min-height: 40px; padding: 0; justify-content: center; font-size: 25px; line-height: 1; }
.detail-title-row .pw-avatar { width: 56px; height: 56px; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; background: radial-gradient(circle at 50% 80%, var(--team-glow, rgba(128,198,246,.35)), #16181d 72%); }
.detail-title-row[data-team="LAL"] { --team-glow: rgba(85,37,131,.65); }
.detail-title-row .pw-avatar-img { object-fit: contain; object-position: center bottom; }
.detail-fair-plot { margin-top: 8px; max-width: 220px; }
.detail-fair-plot .bullet-container { margin: 0; }
.detail-fair-plot .bullet-top-readout { display: none; }
.today-team-name { display: grid; gap: 3px; min-width: 0; }
.today-team-name b { color: #b7e5ff; font: 800 11px/1 var(--pw-font-mono, monospace); }
.today-team .today-team-name strong { max-width: none; overflow: visible; white-space: normal; text-overflow: clip; overflow-wrap: anywhere; }
.today-game-context { display: flex; justify-content: center; gap: 14px; margin-top: 12px; color: #a7bed0; font: 700 10px/1.2 var(--pw-font-mono, monospace); }
.today-schedule-controls { display: flex; align-items: center; gap: 8px; }
.today-schedule-controls select { min-height: 36px; max-width: 120px; padding: 0 8px; border: 1px solid rgba(128,198,246,.24); border-radius: 8px; background: #18191c; color: #d5e5ef; font: 600 11px/1 var(--pw-font-sans, sans-serif); }
.quant-ruler-track-wrap { display: flex; flex-direction: column; gap: 0; height: 82px; margin: 8px 0; }
.quant-ruler-svg { flex: 0 0 26px; height: 26px; }
.quant-ruler-lane { position: relative; height: 27px; flex: 0 0 27px; }
.ruler-value-label { position: absolute; transform: translateX(-50%); color: #d7e5ed; font: 700 10px/1.2 var(--pw-font-mono, monospace); white-space: nowrap; }
.ruler-value-label.top { bottom: 2px; }
.ruler-value-label.bottom { top: 2px; color: #b7e5ff; }
.spec-grid-card { grid-template-columns: 1fr; }
.spec-col-invalidation { border-right: 0; padding-right: 0; }
@media (max-width: 650px) {
  .detail-header-summary { max-width: 45vw; }
  .quant-ruler-header { align-items: flex-start; gap: 8px; flex-direction: column; }
  .ruler-value-label { font-size: 9px; }
}

/* --- viewer/style.css: Market State & DFS Slip Builder --- */
.ps-telemetry-banner {
  background: rgba(13, 18, 28, 0.85);
  border: 1px solid rgba(56, 189, 248, 0.2);
  border-radius: 12px;
  padding: 10px 12px;
  margin-bottom: 10px;
}

.ps-telemetry-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.ps-telemetry-banner {
  background: #11141B;
  border: 1px solid #222733;
  border-radius: 4px;
  padding: 10px 12px;
  margin-bottom: 10px;
}

.ps-telemetry-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.ps-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 3px 8px;
  border-radius: 3px;
  background: #0C2538;
  color: #38BDF8;
  border: 1px solid rgba(56, 189, 248, 0.35);
  box-shadow: none;
}

.ps-tone-live .ps-status-pill {
  background: rgba(16, 185, 129, 0.12);
  color: #10B981;
  border-color: rgba(16, 185, 129, 0.3);
}

.ps-tone-neutral .ps-status-pill {
  background: #171B24;
  color: #9CA3AF;
  border-color: #222733;
}

.ps-tone-info .ps-status-pill {
  background: #0C2538;
  color: #38BDF8;
  border-color: rgba(56, 189, 248, 0.35);
}

.ps-status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}

.ps-telemetry-summary {
  font-size: 12px;
  font-weight: 600;
  color: #F3F4F6;
}

.ps-telemetry-detail {
  margin: 6px 0 0;
  font-size: 11px;
  line-height: 1.4;
  color: #9CA3AF;
}

.ps-mode-bar {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 6px;
  margin-bottom: 10px;
  scrollbar-width: none;
}

.ps-mode-btn {
  background: #11141B;
  color: #9CA3AF;
  border: 1px solid #222733;
  border-radius: 3px;
  padding: 6px 10px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ps-mode-btn:hover {
  background: #171B24;
  color: #F3F4F6;
}

.ps-mode-btn.is-active {
  background: #0C2538;
  color: #38BDF8;
  border-color: #38BDF8;
  box-shadow: none;
}

.ps-dfs-slip-card {
  background: #11141B;
  border: 1px solid #222733;
  border-radius: 4px;
  padding: 12px;
  margin-bottom: 12px;
  box-shadow: none;
}

.ps-dfs-slip-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.ps-dfs-kicker {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.08em;
  color: #38BDF8;
  font-weight: 700;
}

.ps-dfs-title {
  font-size: 13px;
  font-weight: 700;
  color: #F3F4F6;
  margin-top: 2px;
}

.ps-copy-slip-btn {
  background: #38BDF8;
  color: #0B0D11;
  border: none;
  border-radius: 3px;
  padding: 6px 10px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.15s ease;
}

.ps-copy-slip-btn:hover {
  background: #7dd3fc;
}

.ps-dfs-leg-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ps-dfs-leg-chip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #171B24;
  border: 1px solid #222733;
  border-radius: 3px;
  padding: 6px 10px;
  font-size: 12px;
}

.ps-leg-player {
  font-weight: 700;
  color: #F3F4F6;
}

.ps-leg-pick {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  color: #9CA3AF;
  font-size: 11px;
}

.ps-leg-edge {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 700;
  color: #10B981;
  font-size: 11px;
}

.ps-dfs-empty {
  margin: 0;
  font-size: 11px;
  color: #64748B;
}

/* --- viewer/style.css: Row Mode Sync & Stateless Whop Gate --- */
.ps-row-dfs-qualified {
  border-color: #38BDF8 !important;
  box-shadow: none !important;
}

.ps-row-sub-breakeven {
  opacity: 0.45;
  filter: saturate(0.4);
  transition: opacity 0.15s ease, filter 0.15s ease;
}

.ps-whop-gate {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 4px;
  background: #11141B;
  border: 1px solid #222733;
}

.ps-whop-gate-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.ps-whop-gate-copy {
  font-size: 11px;
  color: #9CA3AF;
  margin-top: 2px;
}

.ps-pass-input-row {
  display: flex;
  gap: 6px;
}

.ps-pass-input {
  flex: 1;
  background: #0B0D11;
  border: 1px solid #222733;
  border-radius: 3px;
  padding: 5px 8px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  color: #F3F4F6;
}

.ps-pass-input:focus {
  outline: none;
  border-color: #38BDF8;
}

.ps-pass-submit-btn {
  background: #171B24;
  color: #F3F4F6;
  border: 1px solid #222733;
  border-radius: 3px;
  padding: 5px 10px;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}

.ps-pass-submit-btn:hover {
  background: #0C2538;
  border-color: #38BDF8;
  color: #38BDF8;
}

.ps-pass-error {
  margin-top: 4px;
  font-size: 10px;
  color: #F87171;
}

.ps-pass-active-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid #222733;
}

.ps-pass-badge {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  font-weight: 700;
  color: #10B981;
}

.ps-pass-clear-btn {
  background: transparent;
  border: none;
  color: #64748B;
  font-size: 10px;
  cursor: pointer;
  text-decoration: underline;
}

/* Pro Gate Teaser Card */
.pro-gate-card {
  padding: 16px;
  border-radius: 4px;
  background: #11141B;
  border: 1px solid #222733;
  text-align: center;
  display: grid;
  gap: 10px;
  margin-top: 10px;
}
.pro-gate-badge {
  display: inline-block;
  margin: 0 auto;
  padding: 3px 8px;
  border-radius: 3px;
  background: #0C2538;
  color: #38BDF8;
  font: 800 10px/1.2 var(--pw-font-mono, monospace);
  letter-spacing: 0.05em;
  border: 1px solid rgba(56, 189, 248, 0.35);
}
.pro-gate-card h4 {
  margin: 0;
  color: #F3F4F6;
  font: 800 15px/1.2 var(--pw-font-sans, sans-serif);
}
.pro-gate-card p {
  margin: 0;
  color: #9CA3AF;
  font: 500 12px/1.4 var(--pw-font-sans, sans-serif);
}
.pro-gate-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 4px auto 0;
  padding: 8px 18px;
  border-radius: 3px;
  background: #38BDF8;
  color: #0B0D11;
  font: 700 12px/1.2 var(--pw-font-sans, sans-serif);
  text-decoration: none;
  transition: background 0.15s ease;
}
.pro-gate-cta:hover {
  background: #7dd3fc;
}
.pro-gate-cta:hover {
  background: #a9d9f9;
}
.home-edge-card.locked-teaser {
  filter: blur(4px);
  user-select: none;
  pointer-events: none;
  opacity: 0.55;
}


