/* =========================================================================
   CuratedBets — shared PUBLIC design system.
   Premium "Intelligence Surface" (light) theme. The homepage (templates/
   landing.html + static/home.css) is the visual source of truth; this file
   ports the same design tokens and component language so every other public
   page can share one premium look.

   Loaded ONLY by templates/public_base.html (the premium public layout). The
   legacy dark theme (static/style.css via templates/base.html) is untouched, so
   pages not yet migrated keep working exactly as before and the two stylesheets
   never collide (a page loads one base or the other, never both).

   No framework, no build step. Tokens live on :root so utilities can be used
   anywhere inside a `.cb-public` page.
   ========================================================================= */

/* ---- Design tokens (canonical values from the homepage handoff) --------- */
:root {
  /* brand / accent */
  --cb-navy-900:#061522; --cb-navy-800:#0A1F33; --cb-navy-700:#0E2942;
  --cb-navy-600:#143654; --cb-navy-500:#1D496E; --cb-navy-400:#2E6395;
  --cb-blue-600:#1F6FD6; --cb-blue-500:#2E8BFF; --cb-blue-400:#4DA3FF;
  --cb-blue-300:#7CBEFF; --cb-blue-100:#DCEBFF; --cb-blue-50:#EEF5FF;
  --cb-gold-600:#A9863F;
  /* cool neutrals */
  --cb-white:#FFFFFF; --cb-gray-25:#F7F9FC; --cb-gray-50:#EFF3F8;
  --cb-gray-100:#E4EAF1; --cb-gray-200:#D2DCE7; --cb-gray-300:#B6C3D2;
  --cb-gray-400:#93A3B6; --cb-gray-500:#6E7F94; --cb-gray-600:#4E6178;
  --cb-gray-700:#344960; --cb-gray-800:#1E3149; --cb-gray-900:#0F2238;
  /* signal semantics */
  --cb-positive:#1FA968; --cb-positive-soft:#E3F6EC;
  --cb-info:#2E8BFF;     --cb-info-soft:#E6F0FF;
  --cb-weather:#1AA7C4;  --cb-weather-soft:#E0F5FA;
  --cb-caution:#D98A1A;  --cb-caution-soft:#FBEFDB;
  --cb-attention:#7B61D9;--cb-attention-soft:#EFEAFB;
  --cb-negative:#D85A37; --cb-negative-soft:#FBE8E1;
  /* surfaces / text */
  --surface-raised:#FFFFFF; --surface-sunken:var(--cb-gray-50);
  --surface-glass:rgba(255,255,255,0.62); --surface-frost:rgba(247,250,254,0.78);
  --border-hairline:var(--cb-gray-100); --border-soft:var(--cb-gray-200);
  --border-strong:var(--cb-gray-300);
  --text-strong:var(--cb-gray-900); --text-body:var(--cb-gray-700);
  --text-muted:var(--cb-gray-500); --text-faint:var(--cb-gray-400);
  --accent:var(--cb-blue-500); --accent-strong:var(--cb-blue-600);
  --accent-wash:var(--cb-blue-50);
  /* type */
  --font-display:'Archivo','Segoe UI',system-ui,sans-serif;
  --font-text:'Manrope','Segoe UI',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',monospace;
  --font-serif:'Spectral',Georgia,'Times New Roman',serif;
  /* radii / shadows / motion */
  --radius-sm:10px; --radius-md:14px; --radius-lg:18px; --radius-xl:24px; --radius-pill:999px;
  --shadow-xs:0 1px 2px rgba(15,34,56,.06);
  --shadow-sm:0 2px 6px rgba(15,34,56,.07);
  --shadow-md:0 6px 18px rgba(15,34,56,.08), 0 1px 3px rgba(15,34,56,.05);
  --shadow-lg:0 16px 40px rgba(15,34,56,.12), 0 2px 8px rgba(15,34,56,.06);
  --shadow-xl:0 28px 64px rgba(15,34,56,.16);
  --ease-out:cubic-bezier(.22,.61,.36,1); --dur:200ms;
  --shell:1180px;
}

/* ---- Base ------------------------------------------------------------- */
.cb-public *,.cb-public *::before,.cb-public *::after{box-sizing:border-box;}
.cb-public{
  margin:0; min-height:100%;
  font-family:var(--font-text);
  font-size:15px; line-height:1.5; color:var(--text-body);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  background:
    radial-gradient(58% 48% at 16% 9%,  rgba(176,208,255,0.34), transparent 60%),
    radial-gradient(52% 44% at 86% 15%, rgba(208,223,245,0.40), transparent 62%),
    radial-gradient(82% 60% at 50% 102%, rgba(220,236,255,0.50), transparent 72%),
    linear-gradient(180deg,#EFF3F9 0%,#E7EEF6 48%,#E0E9F3 100%);
  background-attachment:fixed;
  display:flex; flex-direction:column;
}
.cb-public a{color:inherit; text-decoration:none;}
.cb-public main{flex:1 0 auto;}
.cb-i{width:1em; height:1em; display:inline-block; vertical-align:-0.125em; flex:none;}

.cb-shell{width:100%; max-width:var(--shell); margin:0 auto; padding:0 24px;}
.cb-eyebrow{
  font-family:var(--font-display); font-size:12px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--accent-strong); margin:0 0 9px;
}
.cb-muted{color:var(--text-muted);}
.cb-micro{font-size:12px; color:var(--text-faint); margin:8px 0 0;}

/* ---- Surfaces --------------------------------------------------------- */
.cb-glass{
  position:relative;
  background:linear-gradient(155deg, rgba(255,255,255,0.62) 0%, rgba(228,240,255,0.22) 50%, rgba(255,255,255,0.40) 100%);
  -webkit-backdrop-filter:blur(30px) saturate(1.7) brightness(1.06);
          backdrop-filter:blur(30px) saturate(1.7) brightness(1.06);
  border:1px solid rgba(255,255,255,0.88);
  border-radius:var(--radius-lg);
  box-shadow:
    0 26px 56px -22px rgba(60,100,165,0.40),
    inset 0 1.5px 0 rgba(255,255,255,0.98),
    inset 1.5px 0 0 rgba(255,255,255,0.5),
    inset 0 -2px 2px rgba(150,190,250,0.45),
    inset 0 -22px 36px rgba(150,190,250,0.16),
    0 0 0 1px rgba(150,190,255,0.16);
}
.cb-glass::before{
  content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none; opacity:.82;
  background:
    radial-gradient(58% 42% at 16% 10%, rgba(255,255,255,0.78), transparent 60%),
    linear-gradient(122deg, transparent 33%, rgba(255,255,255,0.42) 46%, transparent 55%);
}
.cb-glass > *{position:relative; z-index:1;}
.cb-raised{
  background:var(--surface-raised); border:1px solid var(--border-hairline);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-md);
}

/* ---- Buttons ---------------------------------------------------------- */
.cb-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  height:42px; padding:0 18px; border-radius:var(--radius-md);
  font-family:var(--font-text); font-weight:700; font-size:14px; line-height:1;
  letter-spacing:-0.005em; cursor:pointer; border:1px solid transparent;
  transition:transform var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out), background var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);
}
.cb-btn-lg{height:54px; padding:0 28px; font-size:15.5px;}
.cb-btn-primary{
  color:#fff; border-color:rgba(31,111,214,0.5);
  background:linear-gradient(180deg,#4FA6FF 0%,#2E8BFF 48%,#1F6FD6 100%);
  box-shadow:0 14px 28px -8px rgba(46,139,255,0.6), 0 2px 6px rgba(31,111,214,0.35), inset 0 1px 0 rgba(255,255,255,0.55);
}
.cb-btn-primary:hover{transform:translateY(-1px); box-shadow:0 18px 34px -8px rgba(46,139,255,0.7), 0 2px 6px rgba(31,111,214,0.4), inset 0 1px 0 rgba(255,255,255,0.6);}
.cb-btn-ghost{
  color:var(--text-strong); background:rgba(255,255,255,0.72);
  -webkit-backdrop-filter:blur(16px) saturate(1.4); backdrop-filter:blur(16px) saturate(1.4);
  border-color:rgba(255,255,255,0.95);
  box-shadow:0 12px 26px -12px rgba(70,110,170,0.4), inset 0 1px 0 rgba(255,255,255,0.95);
}
.cb-btn-ghost:hover{transform:translateY(-1px); border-color:var(--border-soft);}

/* ---- Top nav (mirrors the homepage) ----------------------------------- */
.cb-nav{
  position:sticky; top:0; z-index:40;
  background:var(--surface-frost);
  -webkit-backdrop-filter:blur(16px) saturate(1.5); backdrop-filter:blur(16px) saturate(1.5);
  border-bottom:1px solid var(--border-hairline);
}
.cb-nav-inner{display:flex; align-items:center; gap:24px; height:68px;}
.cb-nav-brand{display:inline-flex; align-items:center;}
.cb-nav-brand img{height:40px; width:auto; display:block;}
.cb-nav-links{display:flex; align-items:center; gap:26px; margin-left:14px;}
.cb-nav-links a{font-size:14px; font-weight:600; color:var(--text-body); transition:color var(--dur) var(--ease-out);}
.cb-nav-links a:hover{color:var(--accent-strong);}
.cb-nav-links a.active{color:var(--accent-strong);}
/* Results Dashboard — inert coming-soon nav item + tooltip. Looks like a nav
   link but is unavailable; NOT natively disabled, so it stays keyboard-focusable
   and the "Coming Soon" tooltip is discoverable. type=button + no handler makes
   it behaviorally inert (no navigation, no reload). */
.cb-nav-coming-soon{
  position:relative; -webkit-appearance:none; appearance:none; background:none; border:0;
  margin:0; padding:0; font-family:inherit; font-size:14px; font-weight:600;
  color:var(--text-body); opacity:.55; cursor:default;
  transition:color var(--dur) var(--ease-out), opacity var(--dur) var(--ease-out);
}
.cb-nav-coming-soon:hover,.cb-nav-coming-soon:focus-visible{opacity:.82; outline:none;}
.cb-nav-coming-soon::after{
  content:attr(data-tooltip); position:absolute; top:calc(100% + 9px); left:50%;
  transform:translateX(-50%); padding:5px 10px; border-radius:8px; white-space:nowrap;
  background:var(--cb-navy-800); color:#fff; font-family:var(--font-display);
  font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  box-shadow:0 10px 24px -8px rgba(10,31,51,0.5);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity var(--dur) var(--ease-out); z-index:60;
}
.cb-nav-coming-soon:hover::after,.cb-nav-coming-soon:focus-visible::after{opacity:1; visibility:visible;}
.cb-nav-actions{display:flex; align-items:center; gap:10px; margin-left:auto;}
.cb-nav-search{display:inline-flex; align-items:center; gap:6px;}
.cb-nav-search-input{
  width:170px; max-width:40vw; padding:0 14px; height:38px; line-height:38px;
  border:1px solid var(--border-soft); border-radius:var(--radius-md);
  background:rgba(255,255,255,0.72); color:var(--text-strong);
  font-family:var(--font-text); font-size:14px;
  -webkit-backdrop-filter:blur(16px) saturate(1.4); backdrop-filter:blur(16px) saturate(1.4);
}
.cb-nav-search-input::placeholder{color:var(--text-faint);}
.cb-nav-search-input:focus{outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--cb-blue-50);}
.cb-icon-btn{
  width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center; flex:none;
  border-radius:var(--radius-md); border:1px solid var(--border-hairline);
  background:rgba(255,255,255,0.6); color:var(--text-muted); font-size:18px;
  padding:0; cursor:pointer; font-family:inherit;
  transition:background var(--dur) var(--ease-out), color var(--dur) var(--ease-out);
}
.cb-icon-btn:hover{background:var(--accent-wash); color:var(--accent-strong);}
.cb-avatar{
  width:38px; height:38px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; flex:none;
  background:var(--accent-wash); color:var(--accent-strong);
  font-family:var(--font-display); font-weight:800; font-size:13px;
  border:1px solid var(--border-soft); padding:0; cursor:pointer;
  transition:background var(--dur) var(--ease-out), color var(--dur) var(--ease-out);
}
.cb-avatar:hover{background:var(--cb-blue-100);}

/* ---- Nav popovers (notifications / profile coming-soon) ---------------- */
.cb-nav-pop-wrap{position:relative; display:inline-flex;}
.cb-nav-pop{
  position:absolute; top:calc(100% + 12px); right:0; z-index:60;
  width:264px; padding:16px; border-radius:var(--radius-lg);
  background:linear-gradient(155deg, rgba(255,255,255,0.96) 0%, rgba(238,245,255,0.92) 100%);
  -webkit-backdrop-filter:blur(24px) saturate(1.6); backdrop-filter:blur(24px) saturate(1.6);
  border:1px solid rgba(255,255,255,0.9);
  box-shadow:var(--shadow-lg), 0 0 0 1px rgba(150,190,255,0.16);
}
.cb-nav-pop::before{
  content:""; position:absolute; top:-6px; right:13px; width:12px; height:12px;
  background:inherit; border-left:1px solid rgba(255,255,255,0.9); border-top:1px solid rgba(255,255,255,0.9);
  transform:rotate(45deg);
}
.cb-nav-pop[hidden]{display:none;}
.cb-nav-pop:not([hidden]){animation:cb-pop-in 160ms var(--ease-out);}
@keyframes cb-pop-in{from{opacity:0; transform:translateY(-6px) scale(0.98);} to{opacity:1; transform:none;}}
.cb-nav-pop-title{font-family:var(--font-display); font-weight:700; font-size:14px; color:var(--text-strong); margin:0 0 6px;}
.cb-nav-pop-body{font-size:12.5px; line-height:1.5; color:var(--text-muted); margin:0;}
.cb-nav-pop-links{display:flex; gap:8px; margin-top:14px; padding-top:12px; border-top:1px solid var(--border-hairline);}
.cb-nav-pop-links a{
  flex:1; text-align:center; padding:8px 10px; border-radius:var(--radius-md);
  background:rgba(255,255,255,0.7); border:1px solid var(--border-hairline);
  font-size:12.5px; font-weight:700; color:var(--accent-strong);
  transition:background var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);
}
.cb-nav-pop-links a:hover{background:var(--accent-wash); border-color:var(--cb-blue-100);}

/* ---- Page layout ------------------------------------------------------ */
.cb-page{padding:40px 0 24px;}
.cb-section{margin-top:48px;}
.cb-section:first-child{margin-top:0;}

/* page header / hero */
.cb-page-hero{margin-top:8px; margin-bottom:8px;}
.cb-back-link{
  display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600;
  color:var(--text-muted); margin-bottom:14px;
}
.cb-back-link:hover{color:var(--accent-strong);}
.cb-page-hero h1{
  font-family:var(--font-serif); font-weight:500;
  font-size:clamp(30px,3.6vw,46px); line-height:1.08; letter-spacing:-0.015em;
  color:var(--text-strong); margin:0 0 14px; text-wrap:balance;
}
.cb-lede{font-size:17px; line-height:1.6; color:var(--text-muted); max-width:620px; margin:0 0 14px;}
.cb-compliance-note{font-size:12.5px; color:var(--text-faint); margin:0; max-width:620px;}
.cb-hero-row{display:flex; align-items:flex-end; justify-content:space-between; gap:28px; flex-wrap:wrap;}
.cb-hero-pills{display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 14px;}

/* section heading */
.cb-section-head{display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:18px;}
.cb-section-head h2{font-family:var(--font-display); font-weight:800; font-size:clamp(22px,2.4vw,28px); letter-spacing:-0.02em; color:var(--text-strong); margin:0;}
.cb-section-head p{font-size:14px; color:var(--text-muted); margin:8px 0 0; max-width:620px;}
.cb-section-meta{font-family:var(--font-display); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-faint); flex:none;}

/* ---- Stat strips ------------------------------------------------------ */
.cb-stats{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.cb-stat{padding:18px 20px; transition:transform var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);}
.cb-stat:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg);}
.cb-stat-top{display:flex; align-items:center; gap:9px; color:var(--text-muted); margin-bottom:12px;}
.cb-stat-top .cb-i{font-size:16px; color:var(--accent);}
.cb-stat-label{font-family:var(--font-display); font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--text-muted);}
.cb-stat-num{font-family:var(--font-display); font-weight:800; font-variant-numeric:tabular-nums; letter-spacing:-0.02em; font-size:32px; line-height:1; color:var(--text-strong);}

/* compact labeled stat cards (game/player header) */
.cb-statline{display:flex; flex-wrap:wrap; gap:12px;}
.cb-statline > div{
  background:var(--surface-raised); border:1px solid var(--border-hairline);
  border-radius:var(--radius-md); box-shadow:var(--shadow-sm);
  padding:12px 16px; min-width:120px;
}
.cb-statline span{display:block; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--text-faint); margin-bottom:5px;}
.cb-statline strong{font-family:var(--font-display); font-weight:800; font-size:18px; color:var(--text-strong);}

.cb-status-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px;}
.cb-status-card{
  background:var(--surface-raised); border:1px solid var(--border-hairline);
  border-radius:var(--radius-md); box-shadow:var(--shadow-sm);
  padding:16px 18px; text-align:center;
}
.cb-status-card span{display:block; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--text-faint); margin-bottom:8px;}
.cb-status-card strong{font-family:var(--font-display); font-weight:800; font-size:26px; color:var(--text-strong);}

/* ---- Panels ----------------------------------------------------------- */
.cb-panel{padding:22px;}
.cb-panel-head{display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:16px;}
.cb-panel-title{font-family:var(--font-display); font-weight:800; font-size:19px; letter-spacing:-0.01em; color:var(--text-strong); margin:0;}
.cb-panel-dek{font-size:13.5px; color:var(--text-muted); margin:6px 0 0; max-width:640px;}

/* generic cards */
.cb-card-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px;}
.cb-card{
  background:var(--surface-raised); border:1px solid var(--border-hairline);
  border-radius:var(--radius-md); box-shadow:var(--shadow-sm);
  padding:18px 20px; display:flex; flex-direction:column; gap:6px;
}
.cb-card > strong{font-family:var(--font-display); font-weight:800; font-size:15px; color:var(--text-strong);}
.cb-card span{font-size:13.5px; color:var(--text-body);}
.cb-card span.cb-muted{color:var(--text-muted);}

/* ---- Badges / pills --------------------------------------------------- */
.cb-badge{
  display:inline-flex; align-items:center; gap:6px; padding:4px 11px; border-radius:var(--radius-pill);
  background:var(--cb-blue-50); color:var(--accent-strong); border:1px solid var(--cb-blue-100);
  font-family:var(--font-display); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
}
.cb-badge-muted{background:var(--cb-gray-50); color:var(--text-muted); border-color:var(--border-hairline);}
.cb-badge.live::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--accent);}
.cb-tag{
  font-family:var(--font-display); font-size:9.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--text-faint); background:var(--cb-gray-50); border:1px solid var(--border-hairline);
  padding:2px 8px; border-radius:var(--radius-pill);
}

/* attention pills (neutral, volume-derived labels) */
.cb-pill{
  display:inline-flex; align-items:center; gap:6px; padding:4px 11px; border-radius:var(--radius-pill);
  font-family:var(--font-display); font-size:11.5px; font-weight:700; letter-spacing:.02em;
  background:var(--cb-gray-50); color:var(--text-muted); border:1px solid var(--border-hairline); white-space:nowrap;
}
.cb-pill.is-high{background:var(--cb-info-soft); color:var(--cb-blue-600); border-color:var(--cb-blue-100);}
.cb-pill.is-moderate{background:var(--cb-attention-soft); color:#5b46a8; border-color:#ddd2f5;}
.cb-pill.is-low{background:var(--cb-gray-50); color:var(--text-muted); border-color:var(--border-soft);}
.cb-pill.is-monitor{background:var(--cb-gray-50); color:var(--text-faint); border-color:var(--border-hairline);}
.cb-pill.is-crowded{background:var(--cb-caution-soft); color:#9a6512; border-color:#f0dcb6;}
.cb-pill.is-warn{background:var(--cb-negative-soft); color:#a33d1f; border-color:#f3cbbc;}
.cb-pill.large{font-size:13px; padding:6px 14px;}

/* binary market outcome (Yes/No) — a filled, neutral value token so a
   line-less market ("Anytime Home Run") reads as a deliberate outcome, not a
   truncated numeric line. Yes and No share ONE class (equal visual weight);
   neither is colored as a positive/negative/success/error state. */
.cb-outcome{
  display:inline-flex; align-items:center; padding:2px 9px; border-radius:var(--radius-pill);
  font-family:var(--font-display); font-size:11px; font-weight:700; letter-spacing:.03em;
  background:var(--cb-gray-100); color:var(--cb-gray-800); border:1px solid var(--border-soft);
  white-space:nowrap; vertical-align:middle;
}

/* chips */
.cb-chip-list{display:flex; flex-wrap:wrap; gap:8px;}
.cb-chip{
  display:inline-flex; align-items:center; gap:6px; padding:5px 11px; border-radius:var(--radius-pill);
  background:var(--accent-wash); color:var(--accent-strong); border:1px solid var(--cb-blue-100);
  font-size:12.5px; font-weight:600;
}
.cb-chip b{font-family:var(--font-display); font-weight:800; color:var(--cb-blue-600);}
.cb-chip.subtle{background:var(--cb-gray-50); color:var(--text-muted); border-color:var(--border-hairline);}

/* ---- Empty states ----------------------------------------------------- */
.cb-empty{margin:0; padding:18px 4px; color:var(--text-muted); font-size:14px;}
.cb-empty-card{
  background:var(--surface-sunken); border:1px dashed var(--border-strong);
  border-radius:var(--radius-md); padding:26px 24px; text-align:center;
}
.cb-empty-card strong{display:block; font-family:var(--font-display); font-weight:800; font-size:16px; color:var(--text-strong); margin-bottom:8px;}
.cb-empty-card p{margin:0 auto; max-width:520px; font-size:13.5px; color:var(--text-muted); line-height:1.6;}

/* ---- Tables (premium) ------------------------------------------------- */
.cb-table-wrap{overflow-x:auto; border-radius:var(--radius-lg);}
.cb-table{width:100%; border-collapse:collapse; font-size:13.5px;}
.cb-table th,.cb-table td{text-align:left; padding:12px 14px; border-bottom:1px solid var(--border-hairline); vertical-align:top;}
.cb-table thead th{
  font-family:var(--font-display); font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  color:var(--text-faint); border-bottom:1px solid var(--border-soft); background:var(--cb-gray-25);
}
.cb-table tbody tr{transition:background var(--dur) var(--ease-out);}
.cb-table tbody tr:hover{background:var(--cb-gray-25);}
.cb-table td.num{text-align:center; font-variant-numeric:tabular-nums; font-family:var(--font-display); font-weight:700;}
.cb-table .cb-cell-strong{font-weight:700; color:var(--text-strong);}
.cb-link{font-weight:700; color:var(--accent-strong); white-space:nowrap;}
.cb-link:hover{color:var(--cb-blue-600); text-decoration:underline;}

/* ---- Mention rows (player & prop volume) ------------------------------ */
.cb-mention-table{display:flex; flex-direction:column;}
.cb-mention-head{
  display:grid; grid-template-columns:1fr auto auto; gap:16px; align-items:center;
  padding:10px 16px; border-bottom:1px solid var(--border-soft);
  font-family:var(--font-display); font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--text-faint);
}
.cb-mention-head.cols-2{grid-template-columns:1fr auto;}
.cb-mention-row{
  display:grid; grid-template-columns:1fr auto auto; gap:16px; align-items:center;
  padding:13px 16px; border-bottom:1px solid var(--border-hairline);
  color:var(--text-body); transition:background var(--dur) var(--ease-out);
}
.cb-mention-row.cols-2{grid-template-columns:1fr auto;}
.cb-mention-row:last-child{border-bottom:none;}
a.cb-mention-row:hover{background:var(--cb-gray-25);}
.cb-mr-prop{display:flex; flex-direction:column; gap:3px; min-width:0;}
.cb-mr-prop strong{font-weight:700; color:var(--text-strong);}
.cb-mr-prop small{font-size:12px; color:var(--text-muted);}
.cb-mr-num{font-family:var(--font-display); font-weight:800; font-variant-numeric:tabular-nums; font-size:16px; color:var(--cb-info); text-align:right; white-space:nowrap;}
.cb-mr-num.heavy{color:var(--text-strong);}
.cb-mr-time{font-family:var(--font-mono); font-size:11.5px; color:var(--text-faint); text-align:right; white-space:nowrap;}

/* ---- Slate board (today's matchups) ----------------------------------- */
.cb-slate-board{display:flex; flex-direction:column; gap:12px;}
.cb-slate-row{
  display:grid; grid-template-columns:1.4fr auto 1.6fr auto; gap:16px; align-items:center;
  background:var(--surface-raised); border:1px solid var(--border-hairline);
  border-radius:var(--radius-md); box-shadow:var(--shadow-sm); padding:16px 18px;
  transition:transform var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);
}
.cb-slate-row:hover{transform:translateY(-2px); box-shadow:var(--shadow-md);}
.cb-slate-matchup{display:flex; flex-direction:column; gap:2px; min-width:0;}
.cb-slate-away{font-family:var(--font-display); font-weight:800; font-size:15px; color:var(--text-strong);}
.cb-slate-home{font-size:13px; color:var(--text-body);}
.cb-slate-status{font-size:11px; color:var(--text-faint); text-transform:uppercase; letter-spacing:.04em;}
.cb-slate-time{font-family:var(--font-mono); font-size:13px; color:var(--text-muted); white-space:nowrap;}
.cb-slate-mid{display:flex; flex-direction:column; gap:6px; min-width:0;}
.cb-slate-label{font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-faint);}
.cb-slate-starters{font-size:13px; color:var(--text-body);}
.cb-slate-chips{display:flex; flex-wrap:wrap; gap:6px;}
.cb-slate-chip{font-size:11.5px; font-weight:600; color:var(--text-muted); background:var(--cb-gray-50); border:1px solid var(--border-hairline); padding:3px 9px; border-radius:var(--radius-pill);}
.cb-slate-chip.is-monitoring{color:var(--text-faint); font-style:italic;}
.cb-slate-signal-players{display:flex; flex-wrap:wrap; gap:6px; margin-top:4px;}
.cb-slate-signal-player{display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:600; color:var(--accent-strong); background:var(--accent-wash); border:1px solid var(--cb-blue-100); padding:3px 9px; border-radius:var(--radius-pill);}
.cb-slate-signal-player b{font-family:var(--font-display); font-weight:800;}
.cb-slate-cta{text-align:right; white-space:nowrap;}

/* metric guide / legend row */
.cb-guide{display:flex; flex-wrap:wrap; gap:18px; padding:14px 16px; margin-bottom:16px; background:var(--cb-gray-25); border:1px solid var(--border-hairline); border-radius:var(--radius-md);}
.cb-guide > div{display:flex; flex-direction:column; gap:2px;}
.cb-guide strong{font-family:var(--font-display); font-size:12px; font-weight:800; color:var(--text-strong);}
.cb-guide span{font-size:11.5px; color:var(--text-muted);}

/* avatar */
.cb-avatar-sm{
  width:34px; height:34px; border-radius:50%; flex:none; display:inline-flex; align-items:center; justify-content:center;
  background:var(--accent-wash); color:var(--accent-strong); font-family:var(--font-display); font-weight:800; font-size:12px;
  border:1px solid var(--border-soft);
}
.cb-player-cell{display:flex; align-items:center; gap:11px; min-width:0;}

/* ---- Signal cards ----------------------------------------------------- */
.cb-signal-list{display:flex; flex-direction:column; gap:12px;}
.cb-signal-card{
  background:var(--surface-raised); border:1px solid var(--border-hairline);
  border-left:3px solid var(--cb-info); border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm); padding:16px 18px; display:flex; flex-direction:column; gap:7px;
}
.cb-signal-card.warn{border-left-color:var(--cb-negative);}
.cb-signal-card strong{font-family:var(--font-display); font-weight:700; font-size:15px; color:var(--text-strong);}
.cb-signal-card p{margin:0; font-size:13.5px; line-height:1.55; color:var(--text-body);}
.cb-signal-card small{font-size:12px; color:var(--text-muted);}
.cb-signal-card-head{display:flex; align-items:center; flex-wrap:wrap; gap:8px;}
.cb-signal-tag{
  display:inline-flex; align-items:center; font-family:var(--font-display); font-size:10px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; color:var(--cb-blue-600);
  background:var(--cb-info-soft); border:1px solid var(--cb-blue-100); padding:3px 9px; border-radius:var(--radius-pill);
}
.cb-signal-tag.warn{color:#a33d1f; background:var(--cb-negative-soft); border-color:#f3cbbc;}
.cb-signal-id{font-family:var(--font-mono); font-size:10.5px; color:var(--text-faint); background:var(--cb-gray-50); border:1px solid var(--border-hairline); padding:2px 7px; border-radius:var(--radius-pill);}
.cb-signal-flag{font-size:11px; font-weight:700; color:#9a6512; background:var(--cb-caution-soft); border:1px solid #f0dcb6; padding:2px 8px; border-radius:var(--radius-pill);}

.cb-signal-group{margin-top:18px;}
.cb-signal-group:first-child{margin-top:0;}
.cb-signal-group-title{display:flex; align-items:center; gap:9px; font-family:var(--font-display); font-weight:800; font-size:15px; color:var(--text-strong); margin:0 0 12px;}
.cb-signal-group-count{font-size:11px; font-weight:700; color:var(--text-muted); background:var(--cb-gray-50); border:1px solid var(--border-hairline); padding:2px 9px; border-radius:var(--radius-pill);}
.cb-signal-group-cards{display:flex; flex-direction:column; gap:12px;}

/* signal availability matrix */
.cb-signal-cat-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px;}
.cb-signal-cat{background:var(--surface-raised); border:1px solid var(--border-hairline); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); padding:14px 16px;}
.cb-signal-cat-head{display:flex; align-items:center; gap:8px; margin-bottom:6px;}
.cb-signal-cat-head strong{flex:1; font-family:var(--font-display); font-weight:700; font-size:13.5px; color:var(--text-strong);}
.cb-signal-cat-dot{width:8px; height:8px; border-radius:50%; background:var(--border-strong); flex:none;}
.cb-signal-cat.is-available .cb-signal-cat-dot{background:var(--cb-positive);}
.cb-signal-cat-state{font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--text-faint);}
.cb-signal-cat.is-available .cb-signal-cat-state{color:var(--cb-positive);}
.cb-signal-cat-note{font-size:12px; color:var(--text-muted); line-height:1.5;}

/* ---- Context grid (what we know) -------------------------------------- */
.cb-context-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px;}
.cb-context-card{
  background:var(--surface-raised); border:1px solid var(--border-hairline);
  border-radius:var(--radius-md); box-shadow:var(--shadow-sm); padding:18px 20px;
}
.cb-context-card .cb-eyebrow{margin-bottom:10px;}
.cb-context-card p{margin:0 0 6px; font-size:13.5px; line-height:1.55; color:var(--text-body);}
.cb-context-card p:last-child{margin-bottom:0;}
.cb-context-card .side-line strong{font-family:var(--font-display); font-weight:800; font-size:15px; color:var(--text-strong);}
.cb-form-windows{display:flex; flex-direction:column; gap:4px;}
.cb-form-line{display:flex; justify-content:space-between; gap:10px;}
.cb-form-line b{font-family:var(--font-display); color:var(--accent-strong);}

/* ---- Caution box ------------------------------------------------------ */
.cb-caution-box{
  background:var(--cb-caution-soft); border:1px solid #f0dcb6; border-radius:var(--radius-lg);
  padding:20px 22px;
}
.cb-caution-head{display:flex; align-items:flex-start; gap:12px; margin-bottom:14px;}
.cb-caution-mark{width:28px; height:28px; flex:none; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:var(--cb-caution); color:#fff; font-weight:800; font-family:var(--font-display);}
.cb-caution-head .cb-eyebrow{color:#9a6512; margin:0;}
.cb-caution-head p{margin:4px 0 0; font-size:12.5px; color:#80590f;}
.cb-caution-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px;}
.cb-caution-item{background:rgba(255,255,255,0.6); border:1px solid #f0dcb6; border-radius:var(--radius-md); padding:12px 14px;}
.cb-caution-item strong{display:block; font-family:var(--font-display); font-weight:700; font-size:13px; color:#80590f; margin-bottom:4px;}
.cb-caution-item span{font-size:12.5px; color:#9a6512; line-height:1.5;}
.cb-caution-tags{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:7px;}
.cb-caution-tag{font-size:11.5px; font-weight:600; color:#9a6512; background:var(--cb-caution-soft); border:1px solid #f0dcb6; padding:3px 9px; border-radius:var(--radius-pill);}
.cb-caution-flags{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:14px;}
.cb-caution-flags-label{font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--text-faint);}
.cb-caution-flag{font-size:12px; font-weight:600; color:#9a6512; background:var(--cb-caution-soft); border:1px solid #f0dcb6; padding:3px 10px; border-radius:var(--radius-pill);}

/* ---- Player two-column layout ----------------------------------------- */
.cb-player-layout{display:grid; grid-template-columns:1fr 320px; gap:24px; align-items:start;}
.cb-player-main{min-width:0;}
.cb-player-side{display:flex; flex-direction:column; gap:16px; position:sticky; top:88px;}
.cb-side-card{background:var(--surface-raised); border:1px solid var(--border-hairline); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:18px 20px;}
.cb-side-card .cb-eyebrow{margin-bottom:12px;}
.cb-side-attention{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px;}

/* market context grid */
.cb-market-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px;}
.cb-market-stat{background:var(--surface-raised); border:1px solid var(--border-hairline); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); padding:14px 16px;}
.cb-market-stat span{display:block; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--text-faint); margin-bottom:6px;}
.cb-market-stat strong{font-family:var(--font-display); font-weight:800; font-size:16px; color:var(--text-strong);}
.cb-line-move.is-up{color:var(--cb-positive);}
.cb-line-move.is-down{color:var(--cb-negative);}

/* tier cards */
.cb-tier-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.cb-tier-card{background:var(--surface-raised); border:1px solid var(--border-hairline); border-top:3px solid var(--border-strong); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); padding:18px 20px;}
.cb-tier-card.heavy{border-top-color:var(--cb-negative);}
.cb-tier-card.building{border-top-color:var(--cb-caution);}
.cb-tier-card.emerging{border-top-color:var(--cb-info);}
.cb-tier-count{font-family:var(--font-display); font-weight:800; font-size:34px; line-height:1; color:var(--text-strong);}
.cb-tier-card strong{display:block; font-family:var(--font-display); font-weight:700; font-size:14px; color:var(--text-strong); margin:8px 0 4px;}
.cb-tier-card small{font-size:12px; color:var(--text-muted);}

/* roster list */
.cb-roster-list{list-style:none; margin:8px 0 0; padding:0; display:flex; flex-direction:column; gap:6px;}
.cb-roster-list li{font-size:13.5px; color:var(--text-body);}
.cb-roster-list a{color:var(--accent-strong); font-weight:600;}
.cb-roster-list a:hover{text-decoration:underline;}

/* Starting Pitchers pitcher-name link (game page) — same blue-link treatment
   as .cb-roster-list a above. .cb-public a resets anchor color to `inherit`
   with (class+element) specificity, so a plain .cb-link class alone (class
   only) loses that tie; the `a.` prefix here matches .cb-public a's
   specificity and is declared after it, so it wins on source order — same
   mechanism that already makes .cb-roster-list a blue. */
a.cb-pitcher-link{color:var(--accent-strong); font-weight:600;}
a.cb-pitcher-link:hover{text-decoration:underline;}

/* report status mini cards */
.cb-report-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px;}
.cb-report-card{background:var(--surface-raised); border:1px solid var(--border-hairline); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); padding:18px 20px;}
.cb-report-card.is-published{border-left:3px solid var(--cb-positive);}
.cb-report-card.is-pending{border-left:3px solid var(--border-strong);}
.cb-report-card.is-schedule{border-left:3px solid var(--cb-info);}
.cb-report-label{font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--text-faint);}
.cb-report-status{display:block; font-family:var(--font-display); font-weight:800; font-size:18px; color:var(--text-strong); margin:6px 0 8px;}
.cb-report-note{font-size:12.5px; color:var(--text-muted);}
.cb-report-link{font-weight:700; color:var(--accent-strong); font-size:13px;}
.cb-report-link:hover{text-decoration:underline;}
.cb-report-schedule{list-style:none; margin:6px 0 8px; padding:0; display:flex; flex-direction:column; gap:5px; font-size:12.5px; color:var(--text-body);}
.cb-report-schedule b{font-family:var(--font-mono); color:var(--accent-strong); margin-right:6px;}

/* tab strip */
.cb-tabs{display:flex; flex-wrap:wrap; gap:8px; margin-top:18px;}
.cb-tabs a{
  font-size:13px; font-weight:600; color:var(--text-muted);
  background:rgba(255,255,255,0.6); border:1px solid var(--border-hairline);
  padding:7px 14px; border-radius:var(--radius-pill); transition:all var(--dur) var(--ease-out);
}
.cb-tabs a:hover{color:var(--accent-strong); border-color:var(--cb-blue-100); background:var(--accent-wash);}

/* ---- Founder strip (dark navy) ---------------------------------------- */
.cb-founder{
  position:relative; overflow:hidden; border-radius:var(--radius-xl);
  padding:clamp(34px,5vw,56px); box-shadow:var(--shadow-xl);
  background:radial-gradient(120% 140% at 12% 0%, #103253 0%, #0A1F33 55%, #061522 100%);
}
.cb-founder-grid{position:relative; z-index:2; display:grid; grid-template-columns:1.1fr 0.9fr; gap:40px; align-items:center;}
.cb-founder-pill{
  display:inline-flex; align-items:center; gap:7px; padding:5px 12px; border-radius:var(--radius-pill);
  background:rgba(46,139,255,0.16); color:#9CC6FF; font-size:11.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; margin-bottom:18px;
}
.cb-founder h2{font-family:var(--font-serif); font-weight:500; font-size:clamp(28px,3.4vw,40px); line-height:1.1; letter-spacing:-0.015em; color:#F2F8FF; margin:0 0 14px;}
.cb-founder-copy{font-size:15.5px; line-height:1.6; color:#C6D8EC; margin:0 0 16px; max-width:460px;}
.cb-founder-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px;}
.cb-founder-list li{position:relative; padding-left:24px; font-size:14.5px; color:#C6D8EC;}
.cb-founder-list li::before{content:""; position:absolute; left:0; top:7px; width:8px; height:8px; border-radius:50%; background:var(--cb-blue-400); box-shadow:0 0 0 4px rgba(77,163,255,0.18);}
.cb-founder-card{display:flex; flex-direction:column; gap:12px; padding:24px; border-radius:var(--radius-lg); background:rgba(255,255,255,0.06); border:1px solid rgba(125,168,214,0.28);}
.cb-founder-card .cb-price{font-family:var(--font-display); font-weight:800; font-size:34px; color:#F2F8FF;}
.cb-founder-card .cb-price span{font-size:15px; font-weight:600; color:#8AA2BD;}
.cb-founder-card .cb-btn-primary{width:100%;}
.cb-founder-help{font-size:12px; color:#8AA2BD; text-align:center; margin:0;}

/* Single centered featured offer (Founder Access page). Reuses the dark
   .cb-founder strip + .cb-founder-card styling; only the layout differs from
   the two-column .cb-founder-grid. */
.cb-founder-solo{position:relative; z-index:2; max-width:560px; margin:0 auto;}
/* Two offer boxes side-by-side (Founder annual + limited-time monthly). Equal
   columns so neither reads as the "real" one; collapses to a single column at
   the same breakpoint as .cb-founder-grid. */
.cb-founder-duo{
  position:relative; z-index:2; display:grid; grid-template-columns:repeat(2,1fr);
  gap:20px; align-items:start; max-width:900px; margin:0 auto;
}
.cb-founder-duo > .cb-founder-card{height:100%;}
.cb-price-was{color:#8AA2BD; text-decoration-color:rgba(138,162,189,0.85);}
.cb-founder-soldout{
  font-family:var(--font-display); font-weight:800; font-size:16px;
  color:#F2F8FF; margin:0;
}
.cb-founder-solo-foot{position:relative; z-index:2; text-align:center; margin-top:20px;}
.cb-founder .cb-founder-offer-head{
  font-family:var(--font-display); font-weight:800;
  font-size:22px; line-height:1.2; letter-spacing:-0.01em;
  color:#F2F8FF; margin:0;
}

/* Available now / coming next columns */
.cb-founder-cols{display:grid; grid-template-columns:repeat(2,1fr); gap:16px;}
.cb-card .cb-founder-col-label{
  font-family:var(--font-display); font-size:11px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:var(--text-faint);
  margin-bottom:4px;
}
.cb-founder-plain-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px;}
.cb-founder-plain-list li{position:relative; padding-left:20px; font-size:14px; color:var(--text-body);}
.cb-founder-plain-list li::before{
  content:""; position:absolute; left:0; top:7px; width:7px; height:7px;
  border-radius:50%; background:var(--accent-strong);
}
.cb-founder-plain-list-soon li{color:var(--text-muted);}
.cb-founder-plain-list-soon li::before{background:transparent; border:1.5px solid var(--text-faint);}

/* Founder Access FAQ (inside .cb-doc) */
.cb-faq-q{font-family:var(--font-display); font-weight:800; font-size:15.5px; color:var(--text-strong); margin:22px 0 6px;}

/* ---- CTA band --------------------------------------------------------- */
.cb-cta-band{
  margin-top:48px; padding:34px 32px; border-radius:var(--radius-xl);
  background:linear-gradient(150deg, var(--accent-wash) 0%, rgba(255,255,255,0.6) 100%);
  border:1px solid var(--cb-blue-100); box-shadow:var(--shadow-md);
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.cb-cta-band-text h2{font-family:var(--font-display); font-weight:800; font-size:clamp(20px,2.2vw,26px); color:var(--text-strong); margin:0 0 6px; letter-spacing:-0.01em;}
.cb-cta-band-text p{margin:0; font-size:14px; color:var(--text-muted); max-width:520px;}
.cb-cta-actions{display:flex; gap:12px; flex-wrap:wrap;}

/* ---- Legal / document layout ------------------------------------------ */
.cb-doc{max-width:780px; margin:0 auto;}
.cb-doc-card{padding:clamp(28px,4vw,48px);}
.cb-doc h2{font-family:var(--font-display); font-weight:800; font-size:20px; color:var(--text-strong); letter-spacing:-0.01em; margin:32px 0 10px;}
.cb-doc h2:first-of-type{margin-top:0;}
.cb-doc p{font-size:15px; line-height:1.7; color:var(--text-body); margin:0 0 12px;}
.cb-doc a{color:var(--accent-strong); font-weight:600;}
.cb-doc a:hover{text-decoration:underline;}
.cb-doc ul{margin:0 0 14px; padding-left:22px;}
.cb-doc li{font-size:15px; line-height:1.7; color:var(--text-body); margin-bottom:6px;}

/* ---- Footer (mirrors the homepage) ------------------------------------ */
.cb-footer{flex-shrink:0; margin-top:80px; border-top:1px solid var(--border-hairline); background:var(--surface-frost); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);}
.cb-footer-inner{max-width:var(--shell); margin:0 auto; padding:48px 24px 28px;}
.cb-footer-grid{display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:32px;}
.cb-footer-logo{display:block; width:min(220px,100%); height:auto; border-radius:16px; object-fit:contain; opacity:0.9;}
.cb-footer-tag{font-size:13.5px; color:var(--text-muted); max-width:280px; margin:14px 0 0; line-height:1.6;}
.cb-footer-soon{font-family:var(--font-mono); font-size:11px; color:var(--text-faint); letter-spacing:.04em; margin:16px 0 0;}
.cb-footer-col h4{font-family:var(--font-display); font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--text-faint); margin:0 0 14px;}
.cb-footer-col a{display:block; font-size:13.5px; color:var(--text-muted); margin-bottom:10px;}
.cb-footer-col a:hover{color:var(--accent-strong);}
.cb-footer-bar{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:36px; padding-top:20px; border-top:1px solid var(--border-hairline); flex-wrap:wrap;}
.cb-footer-legal{display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--text-faint); margin:0; max-width:820px; line-height:1.6;}
.cb-footer-legal .cb-i{color:var(--cb-positive); font-size:14px; flex:none;}
.cb-footer-copy{font-size:12.5px; color:var(--text-faint);}

/* ---- Error banner ----------------------------------------------------- */
.cb-form-error{margin:0 0 18px; padding:12px 16px; border-radius:var(--radius-md); background:rgba(220,38,38,0.08); border:1px solid rgba(220,38,38,0.28); color:#b91c1c; font-size:13.5px;}

/* ---- Responsive ------------------------------------------------------- */
@media (max-width:1000px){
  .cb-player-layout{grid-template-columns:1fr;}
  .cb-player-side{position:static;}
}
@media (max-width:920px){
  .cb-nav-links{display:none;}
  .cb-stats{grid-template-columns:repeat(2,1fr);}
  .cb-tier-grid{grid-template-columns:1fr;}
  .cb-founder-grid{grid-template-columns:1fr;}
  .cb-founder-duo{grid-template-columns:1fr; max-width:560px;}
  .cb-founder-cols{grid-template-columns:1fr;}
  .cb-footer-grid{grid-template-columns:1fr 1fr; row-gap:28px;}
  .cb-section-head{flex-direction:column; align-items:flex-start;}
  .cb-slate-row{grid-template-columns:1fr auto; row-gap:12px;}
  .cb-slate-mid{grid-column:1 / -1;}
  .cb-slate-cta{grid-column:1 / -1; text-align:left;}
}
@media (max-width:560px){
  .cb-stats{grid-template-columns:1fr;}
  .cb-nav-search-input{width:130px;}
  .cb-mention-head,.cb-mention-row{grid-template-columns:1fr auto;}
  .cb-mr-time{display:none;}
  .cb-cta-band{flex-direction:column; align-items:flex-start;}
}
@media (prefers-reduced-motion:reduce){
  .cb-public *,.cb-public *::before,.cb-public *::after{transition:none !important; animation:none !important;}
}
