/* ============================================================
   FDVS — Football Data Vision System
   Design language: football intelligence terminal.
   Dark (default) + Light theme via [data-theme] on <html>.
   ============================================================ */

:root{
  /* surfaces — dark (default), chocolate truffle palette */
  --ink:        #150E08;
  --pitch:      #211609;
  --pitch-2:    #2B1D0F;
  --pitch-line: #493018;
  --card:       #231708;
  --card-hi:    #2D1E0D;
  --grid-dot:   rgba(150,100,50,0.10);
  --glow-1: rgba(150,100,50,0.13);
  --glow-2: rgba(90,60,30,0.10);
  --glow-3: rgba(253,251,212,0.05);

  /* signal colors — Chocolate truffle: cocoa / burnt orange / cream */
  --signal:     #C05800;
  --signal-dim: #713600;
  --data-cyan:  #FDFBD4;
  --data-rose:  #5C2E0E;

  /* text */
  --text-hi:  #FBF3E4;
  --text-mid: #C7AF93;
  --text-low: #8C6F52;

  /* type */
  --f-display: 'Space Grotesk', sans-serif;
  --f-body:    'Inter', sans-serif;
  --f-mono:    'IBM Plex Mono', monospace;

  --radius: 3px;
  --maxw: 1180px;
  --shadow-card: 0 18px 40px rgba(20,10,4,0.5);
}

html[data-theme="light"]{
  --ink:        #FAF8EF;
  --pitch:      #F3EFE0;
  --pitch-2:    #ECE6D1;
  --pitch-line: #DED4B4;
  --card:       #FDFCF6;
  --card-hi:    #F3EFE0;
  --grid-dot:   rgba(113,54,0,0.10);
  --glow-1: rgba(192,88,0,0.10);
  --glow-2: rgba(56,36,13,0.05);
  --glow-3: rgba(56,36,13,0.04);

  --signal:     #B14E00;
  --signal-dim: #713600;
  --data-cyan:  #38240D;
  --data-rose:  #6E3410;

  --text-hi:  #2A1A0A;
  --text-mid: #5C4A32;
  --text-low: #8A7856;
  --shadow-card: 0 18px 40px rgba(56,36,13,0.16);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
html, body{ max-width:100%; overflow-x:hidden; }

body{
  background-color:var(--ink);
  background-image:
    radial-gradient(ellipse 900px 520px at 8% -8%, var(--glow-1), transparent 60%),
    radial-gradient(ellipse 820px 520px at 94% 4%, var(--glow-2), transparent 60%),
    radial-gradient(ellipse 1100px 760px at 50% 118%, var(--glow-3), transparent 60%),
    radial-gradient(circle, var(--grid-dot) 1px, transparent 1.4px);
  background-repeat:no-repeat,no-repeat,no-repeat,repeat;
  background-size:auto,auto,auto,26px 26px;
  background-attachment:fixed,fixed,fixed,scroll;
  color:var(--text-hi);
  font-family:var(--f-body);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  transition:background-color .25s ease, color .25s ease;
}

a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
ul{ list-style:none; }
button{ font-family:inherit; }
table{ max-width:100%; }
p, h1, h2, h3, h4, span, li, td, th{ overflow-wrap:break-word; word-break:break-word; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 32px; position:relative; z-index:1; width:100%; }

::selection{ background:var(--signal); color:var(--ink); }
:focus-visible{ outline:2px solid var(--signal); outline-offset:3px; }

/* ---------- eyebrow / mono labels ---------- */
.feed-tag{
  font-family:var(--f-mono); font-size:12px; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--signal); display:inline-flex; align-items:center; gap:8px;
}
.feed-tag::before{ content:""; width:6px; height:6px; background:var(--signal); border-radius:50%; box-shadow:0 0 8px var(--signal); }

/* ---------- header ---------- */
header{
  position:sticky; top:0; z-index:60;
  background:color-mix(in srgb, var(--ink) 88%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--pitch-line);
}
.nav{ display:flex; align-items:center; justify-content:space-between; padding:16px 0; gap:16px; min-height:32px; }
.nav-clock{
  display:flex; align-items:baseline; gap:8px;
  font-family:var(--f-mono); font-size:12.5px; color:var(--text-mid);
  white-space:nowrap; overflow:hidden; flex-shrink:1;
}
.nav-clock-time{ color:var(--text-hi); font-weight:600; }

.logo{ display:flex; align-items:center; gap:10px; font-family:var(--f-display); font-weight:700; font-size:20px; letter-spacing:0.02em; flex-shrink:0; }
.logo-mark{ width:26px; height:26px; border:1.5px solid var(--signal); border-radius:50%; position:relative; flex-shrink:0; }
.logo-mark::before{ content:""; position:absolute; inset:6px; border:1px solid var(--data-cyan); border-radius:50%; }
.logo-mark::after{ content:""; position:absolute; top:50%; left:50%; width:50%; height:1.5px; background:var(--signal); transform-origin:left center; animation:sweep 4s linear infinite; }
@keyframes sweep{ to{ transform:rotate(360deg); } }
.logo small{ display:block; font-family:var(--f-mono); font-weight:400; font-size:9.5px; letter-spacing:0.14em; color:var(--text-low); text-transform:uppercase; margin-top:2px; }

.nav-actions{ display:flex; align-items:center; gap:14px; }
.nav-actions .login-link{ font-size:14px; color:var(--text-mid); }
.nav-actions .login-link:hover{ color:var(--text-hi); }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--f-mono); font-size:13px; letter-spacing:0.04em;
  padding:10px 20px; border-radius:var(--radius); border:1px solid transparent;
  cursor:pointer; transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease, color .15s ease;
}
.btn-primary{ background:var(--signal); color:var(--ink); font-weight:600; }
.btn-primary:hover{ box-shadow:0 0 0 3px rgba(192,88,0,0.28); }
.btn-ghost{ border-color:var(--pitch-line); color:var(--text-hi); }
.btn-ghost:hover{ border-color:var(--data-cyan); color:var(--data-cyan); }
.btn-sm{ padding:7px 14px; font-size:11.5px; }
.btn-block{ width:100%; }

/* theme toggle — sliding switch, left = dark, right = light */
.theme-switch{
  --sw-w: 56px; --sw-h: 28px; --sw-pad: 3px;
  width:var(--sw-w); height:var(--sw-h);
  border-radius:99px; border:1px solid var(--pitch-line); background:var(--pitch-2);
  position:relative; cursor:pointer; flex-shrink:0; padding:0;
  transition:background .2s ease, border-color .2s ease;
}
.theme-switch:hover{ border-color:var(--signal-dim); }
.theme-switch .switch-track{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:space-between;
  padding:0 6px; font-size:11px; pointer-events:none; opacity:0.75;
}
.theme-switch .switch-knob{
  position:absolute; top:var(--sw-pad); left:var(--sw-pad);
  width:calc(var(--sw-h) - (var(--sw-pad) * 2)); height:calc(var(--sw-h) - (var(--sw-pad) * 2));
  border-radius:50%; background:var(--signal); color:var(--ink);
  display:flex; align-items:center; justify-content:center; font-size:12px;
  transition:transform .22s ease, background .2s ease;
  box-shadow:0 2px 6px rgba(0,0,0,0.35);
}
html[data-theme="light"] .theme-switch .switch-knob{
  transform:translateX(calc(var(--sw-w) - var(--sw-h)));
}
.theme-switch .knob-moon{ display:block; }
.theme-switch .knob-sun{ display:none; }
html[data-theme="light"] .theme-switch .knob-moon{ display:none; }
html[data-theme="light"] .theme-switch .knob-sun{ display:block; }

.menu-toggle{
  display:none; width:44px; height:44px; align-items:center; justify-content:center;
  background:none; border:1px solid var(--pitch-line); border-radius:var(--radius);
  color:var(--text-hi); font-size:18px; cursor:pointer; flex-shrink:0;
}

/* ---------- mega nav (secondary bar, desktop) ---------- */
.mega-nav{
  background:var(--pitch);
  border-bottom:1px solid var(--pitch-line);
  position:relative; z-index:40;
}
.mega-inner{ display:flex; flex-wrap:wrap; align-items:center; gap:2px; padding-top:4px; padding-bottom:4px; }
.mega-item{ position:relative; flex-shrink:0; }
.mega-trigger{
  background:none; border:0; cursor:pointer;
  font-family:var(--f-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--text-mid); padding:13px 14px; white-space:nowrap;
  display:flex; align-items:center; gap:5px; transition:color .15s ease;
}
.mega-trigger::after{ content:"▾"; font-size:8px; opacity:.7; }
.mega-item.plain .mega-trigger::after{ content:none; }
.mega-item.plain a.mega-trigger{
  font-family:var(--f-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--text-mid); padding:13px 14px; display:block;
}
.mega-item.plain a.mega-trigger:hover{ color:var(--text-hi); }
.mega-item:hover .mega-trigger, .mega-item.open .mega-trigger{ color:var(--text-hi); }
.mega-item.premium .mega-trigger, .mega-item.premium a.mega-trigger{ color:var(--signal); }
.mega-item.premium .mega-trigger:hover{ color:var(--signal); }
.mega-panel{
  display:none; position:absolute; top:100%; left:0; z-index:100;
  background:var(--card); border:1px solid var(--pitch-line);
  min-width:210px; padding:8px 0; box-shadow:var(--shadow-card);
}
.mega-item.open .mega-panel{ display:block; }
.mega-panel a{ display:block; padding:10px 18px; font-size:13.5px; color:var(--text-mid); }
.mega-panel a:hover{ color:var(--text-hi); background:var(--card-hi); }
.mega-panel-wide{ min-width:380px; columns:2; column-gap:0; }
.mega-panel-wide a{ break-inside:avoid; }
/* keep the last couple of dropdowns from spilling past the right edge */
.mega-item:nth-last-child(-n+2) .mega-panel{ left:auto; right:0; }

/* ---------- mobile drawer ---------- */
.drawer-backdrop{
  display:none; position:fixed; inset:0; background:rgba(0,0,0,0.55);
  z-index:80; backdrop-filter:blur(2px);
}
.drawer-backdrop.open{ display:block; }
.mobile-drawer{
  position:fixed; top:0; right:0; bottom:0; width:min(360px, 88vw);
  background:var(--ink); border-left:1px solid var(--pitch-line);
  z-index:90; transform:translateX(100%); transition:transform .28s ease;
  display:flex; flex-direction:column; overflow-y:auto;
}
.mobile-drawer.open{ transform:translateX(0); }
.drawer-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 20px; border-bottom:1px solid var(--pitch-line);
}
.drawer-head-actions{ display:flex; align-items:center; gap:12px; }
.drawer-close{
  width:34px; height:34px; border-radius:50%; border:1px solid var(--pitch-line);
  background:var(--card); color:var(--text-hi); font-size:16px; cursor:pointer;
}
.drawer-actions{ display:flex; gap:10px; padding:18px 20px; border-bottom:1px solid var(--pitch-line); }
.drawer-actions .btn{ flex:1; }
.drawer-quick{ padding:6px 20px; border-bottom:1px solid var(--pitch-line); }
.drawer-quick a{
  display:flex; justify-content:space-between; align-items:center;
  padding:14px 0; font-family:var(--f-display); font-size:15px; color:var(--text-hi);
  border-top:1px solid var(--pitch-line);
}
.drawer-quick a:first-child{ border-top:0; }
.drawer-quick a.gold{ color:var(--signal); }

.drawer-groups{ padding:8px 20px 24px; }
.drawer-group{ border-top:1px solid var(--pitch-line); }
.drawer-group:first-child{ border-top:0; }
.drawer-group-trigger{
  width:100%; display:flex; justify-content:space-between; align-items:center;
  background:none; border:0; padding:15px 0; cursor:pointer;
  font-family:var(--f-mono); font-size:12px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--text-mid);
}
.drawer-group.open .drawer-group-trigger{ color:var(--text-hi); }
.drawer-group-trigger::after{ content:"+"; font-size:16px; color:var(--text-low); }
.drawer-group.open .drawer-group-trigger::after{ content:"–"; }
.drawer-group-panel{ display:none; padding-bottom:14px; }
.drawer-group.open .drawer-group-panel{ display:block; }
.drawer-group-panel a{ display:block; padding:9px 0 9px 4px; font-size:13.5px; color:var(--text-mid); }
.drawer-group-panel a:hover{ color:var(--text-hi); }
.drawer-foot{ margin-top:auto; padding:20px; font-family:var(--f-mono); font-size:11.5px; color:var(--text-low); border-top:1px solid var(--pitch-line); }

/* ---------- categories strip (kept for small standalone use elsewhere on the site) ---------- */
.cat-pill{
  font-family:var(--f-mono); font-size:11.5px; color:var(--text-mid);
  border:1px solid var(--pitch-line); padding:7px 14px; border-radius:99px;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.cat-pill:hover{ border-color:var(--signal); color:var(--signal); }
.cat-pill.gold{ border-color:var(--signal-dim); color:var(--signal); }

/* ---------- fixtures + results pages: day tabs (pure CSS, no JS — radio+label technique) ---------- */
.tabs-css input[type="radio"]{
  position:absolute; opacity:0; pointer-events:none;
}
.tabs-css .tab-panel{ display:none; }
#tab-today:checked ~ #panel-today,
#tab-tomorrow:checked ~ #panel-tomorrow,
#tab-weekend:checked ~ #panel-weekend,
#rtab-today:checked ~ #rpanel-today,
#rtab-yesterday:checked ~ #rpanel-yesterday,
#rtab-week:checked ~ #rpanel-week{ display:block; }

.fixtures-tabs{
  display:flex; gap:4px; border-bottom:1px solid var(--pitch-line);
  margin-bottom:32px; overflow-x:auto;
}
.fixtures-tabs label{
  font-family:var(--f-mono); font-size:12.5px; letter-spacing:.04em; text-transform:uppercase;
  color:var(--text-mid); padding:13px 20px; border-bottom:2px solid transparent;
  white-space:nowrap; flex-shrink:0; cursor:pointer; transition:color .15s ease, border-color .15s ease;
}
.fixtures-tabs label:hover{ color:var(--text-hi); }
#tab-today:checked ~ .fixtures-tabs label[for="tab-today"],
#tab-tomorrow:checked ~ .fixtures-tabs label[for="tab-tomorrow"],
#tab-weekend:checked ~ .fixtures-tabs label[for="tab-weekend"],
#rtab-today:checked ~ .fixtures-tabs label[for="rtab-today"],
#rtab-yesterday:checked ~ .fixtures-tabs label[for="rtab-yesterday"],
#rtab-week:checked ~ .fixtures-tabs label[for="rtab-week"]{
  color:var(--signal); border-bottom-color:var(--signal); font-weight:600;
}

.fixtures-empty{
  padding:48px 24px; text-align:center; color:var(--text-low);
  font-family:var(--f-mono); font-size:13px; border:1px dashed var(--pitch-line); border-radius:6px;
}
.fixtures-count{ font-family:var(--f-mono); font-size:12px; color:var(--text-low); margin-top:18px; }

/* ---------- fixtures page: pagination — pure CSS (radio + label), one URL.
   All pages' content lives in this single document (good for SEO — one
   strong /fixtures page instead of several thin ones), CSS just controls
   which page is visible. Add page 3+ by adding another radio + .pg-page
   block + one more numbered <label> in the nav below. "..." truncation
   (.pg-ellipsis) is ready for whenever there are enough pages to need it. */
.pg-toggle{ position:absolute; opacity:0; pointer-events:none; }
.pg-page{ display:none; }
#today-pg-1:checked ~ #today-pg-1-content,
#today-pg-2:checked ~ #today-pg-2-content{ display:block; }

.pagination{ display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin-top:36px; }
.pagination a, .pagination span, .pagination label{
  font-family:var(--f-mono); font-size:12.5px; padding:9px 15px; cursor:pointer;
  border:1px solid var(--pitch-line); border-radius:var(--radius); color:var(--text-mid);
}
.pagination a:hover, .pagination label:hover{ border-color:var(--signal); color:var(--signal); }
.pagination .is-active{ border-color:var(--signal); color:var(--signal); background:rgba(192,88,0,0.10); }
.pagination .is-disabled{ opacity:0.4; pointer-events:none; }
.pg-ellipsis{ border:none; padding:9px 4px; color:var(--text-low); cursor:default; }

/* current page's own number + Prev/Next enable state */
#today-pg-1:checked ~ .pagination label[for="today-pg-1"].pg-num,
#today-pg-2:checked ~ .pagination label[for="today-pg-2"].pg-num{
  border-color:var(--signal); color:var(--signal); background:rgba(192,88,0,0.10); cursor:default; pointer-events:none;
}
#today-pg-1:checked ~ .pagination .pg-prev{ opacity:0.4; pointer-events:none; }
#today-pg-2:checked ~ .pagination .pg-next{ opacity:0.4; pointer-events:none; }

/* ---------- back to top ---------- */
.back-to-top{
  position:fixed; right:24px; bottom:24px; z-index:70;
  width:46px; height:46px; border-radius:50%;
  background:var(--signal); color:var(--ink); border:none;
  font-size:18px; font-weight:700; cursor:pointer;
  box-shadow:0 10px 24px rgba(0,0,0,0.35);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.back-to-top.show{ opacity:1; visibility:visible; transform:translateY(0); }
.back-to-top:hover{ box-shadow:0 0 0 4px rgba(192,88,0,0.22); }

/* ---------- hero ---------- */
.hero{ padding-top:76px; padding-bottom:60px; display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center; }
.hero h1{
  font-family:var(--f-display); font-weight:700; font-size:clamp(34px, 4.6vw, 58px);
  line-height:1.06; letter-spacing:-0.01em; margin:18px 0 20px;
}
.hero h1 em{ font-style:normal; color:var(--signal); }
.hero p.lede{ font-size:17px; color:var(--text-mid); max-width:52ch; margin-bottom:30px; }
.hero-cta{ display:flex; gap:14px; align-items:center; flex-wrap:wrap; margin-bottom:34px; }
.hero-stats{ display:flex; gap:34px; padding-top:26px; border-top:1px solid var(--pitch-line); flex-wrap:wrap; }
.hstat b{ display:block; font-family:var(--f-mono); font-size:22px; color:var(--text-hi); }
.hstat span{ font-size:12px; color:var(--text-low); }

/* ---------- radar visual ---------- */
.radar-box{ position:relative; aspect-ratio:1/1; max-width:460px; margin:0 auto; }
.radar-box svg{ width:100%; height:100%; overflow:visible; }
.radar-legend{ display:flex; justify-content:center; gap:22px; margin-top:14px; font-family:var(--f-mono); font-size:11.5px; color:var(--text-mid); }
.radar-legend span{ display:inline-flex; align-items:center; gap:6px; }
.dot{ width:8px; height:8px; border-radius:50%; display:inline-block; }
.dot.amber{ background:var(--signal); }
.dot.cyan{ background:var(--data-cyan); }
.sweep-line{ transform-origin: 200px 200px; animation:sweep 5s linear infinite; }
.radar-poly{ animation:fadein 1.4s ease both; }
@keyframes fadein{ from{ opacity:0; transform:scale(.85); transform-origin:center; } to{ opacity:1; transform:scale(1);} }

/* ---------- section shell ---------- */
section{ padding:78px 0; position:relative; z-index:1; }
.section-head{ max-width:640px; margin-bottom:44px; }
.section-head h2{ font-family:var(--f-display); font-size:clamp(26px,3vw,36px); margin-top:14px; line-height:1.15; }
.section-head p{ color:var(--text-mid); margin-top:12px; font-size:15.5px; }
.divider{ height:1px; background:var(--pitch-line); border:0; }

/* ---------- feed modules ---------- */
.modules{ display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:1px; background:var(--pitch-line); border:1px solid var(--pitch-line); }
.module{ background:var(--card); padding:28px 24px 30px; transition:background .2s ease; }
.module:hover{ background:var(--card-hi); }
.module .feed-tag{ margin-bottom:16px; }
.module h3{ font-family:var(--f-display); font-size:18px; margin-bottom:10px; }
.module p{ font-size:13.8px; color:var(--text-mid); }

/* ---------- match board ---------- */
.board{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--pitch-line); border:1px solid var(--pitch-line); }
.match-card{ background:var(--card); padding:22px 24px 24px; transition:background .2s ease; }
.match-card:hover{ background:var(--card-hi); }
.match-card .mc-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
.match-card .mc-comp{ font-family:var(--f-mono); font-size:11px; letter-spacing:.06em; color:var(--text-low); text-transform:uppercase; }
.match-card .mc-time{ font-family:var(--f-mono); font-size:11px; color:var(--text-low); }

/* ---------- live match tracker: pulsing LIVE badge ---------- */
.live-badge{
  display:inline-flex; align-items:center; gap:6px; font-family:var(--f-mono);
  font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:#D6524A;
  background:rgba(198,49,49,0.10); border:1px solid rgba(198,49,49,0.35);
  padding:3px 9px; border-radius:99px; margin-right:8px; vertical-align:middle;
}
.live-badge::before{
  content:""; width:6px; height:6px; border-radius:50%; background:#D6524A;
  box-shadow:0 0 6px rgba(198,49,49,0.7); animation:livePulse 1.4s ease-in-out infinite;
}
@keyframes livePulse{ 0%,100%{ opacity:1; } 50%{ opacity:0.3; } }
.mc-teams{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:16px; }
.mc-team{ flex:1; }
.mc-team .mc-name{ font-family:var(--f-display); font-size:16px; margin-bottom:8px; }
.mc-team.away{ text-align:right; }
.mc-team.away .mc-form{ justify-content:flex-end; }
.mc-form{ display:flex; gap:4px; }
.mc-form span{ width:19px; height:19px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--f-mono); font-size:9px; font-weight:600; }
.mc-form .w{ background:rgba(46,158,79,0.18); color:#3FAE68; }
.mc-form .d{ background:rgba(214,166,25,0.18); color:#D6A619; }
.mc-form .l{ background:rgba(198,49,49,0.20); color:#D6524A; }
.mc-vs{ font-family:var(--f-mono); font-size:12px; color:var(--text-low); flex-shrink:0; width:30px; text-align:center; }

/* ---------- results page: final score + verdict (reuses match-card, form W/D/L colors) ---------- */
.mc-score{ font-family:var(--f-display); font-size:22px; font-weight:700; color:var(--text-hi); flex-shrink:0; width:60px; text-align:center; }
.mc-verdict{
  font-family:var(--f-mono); font-size:12px; padding:9px 12px; border-radius:var(--radius);
  margin-bottom:12px; border:1px solid var(--pitch-line);
}
.mc-verdict.correct{ color:#3FAE68; border-color:rgba(46,158,79,0.4); background:rgba(46,158,79,0.08); }
.mc-verdict.incorrect{ color:#D6524A; border-color:rgba(198,49,49,0.4); background:rgba(198,49,49,0.08); }
.mc-chip.hit{ border-color:rgba(46,158,79,0.4); color:#3FAE68; }
.mc-chip.hit b{ color:#3FAE68; }
.mc-chip.miss{ border-color:rgba(198,49,49,0.4); color:#D6524A; opacity:0.85; }
.mc-chip.miss b{ color:#D6524A; }
.mc-stats{ display:flex; justify-content:space-between; font-family:var(--f-mono); font-size:11.5px; color:var(--text-low); border-top:1px solid var(--pitch-line); padding-top:14px; margin-bottom:12px; }
.mc-stats b{ color:var(--text-hi); font-weight:500; }
.mc-consensus{ display:flex; align-items:center; gap:10px; }
.mc-consensus .vote-bar{ flex:1; margin:0; }
.mc-consensus .pct{ font-family:var(--f-mono); font-size:12px; color:var(--signal); flex-shrink:0; width:74px; text-align:right; }
.mc-chips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:14px; }
.mc-chip{
  font-family:var(--f-mono); font-size:10.5px; color:var(--text-mid);
  background:var(--pitch-2); border:1px solid var(--pitch-line);
  padding:4px 8px; border-radius:99px; transition:border-color .15s ease, color .15s ease;
}
a.mc-chip:hover{ border-color:var(--signal); color:var(--signal); }
.mc-chip b{ color:var(--signal); font-weight:600; }

/* ---------- dashboard preview ---------- */
.dash-preview{ display:grid; grid-template-columns:1.3fr 1fr; gap:1px; background:var(--pitch-line); border:1px solid var(--pitch-line); }
.dash-panel{ background:var(--card); padding:26px; }
.dash-panel h4{ font-family:var(--f-mono); font-size:12px; letter-spacing:.08em; color:var(--text-low); text-transform:uppercase; margin-bottom:18px; }
.bar-row{ display:flex; align-items:center; gap:12px; margin-bottom:12px; font-size:13px; }
.bar-row .label{ width:118px; flex-shrink:0; color:var(--text-mid); }
.bar-track{ flex:1; height:8px; background:var(--pitch-2); border-radius:99px; overflow:hidden; }
.bar-fill{ height:100%; background:linear-gradient(90deg,var(--signal-dim),var(--signal)); border-radius:99px; }
.bar-fill.cyan{ background:linear-gradient(90deg,#2c6a64,var(--data-cyan)); }
.bar-val{ width:36px; text-align:right; font-family:var(--f-mono); color:var(--text-hi); }
.form-strip{ display:flex; gap:6px; margin-top:6px; }
.form-strip span{ width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--f-mono); font-size:11px; font-weight:600; }
.form-strip .w{ background:rgba(46,158,79,0.18); color:#3FAE68; border:1px solid rgba(46,158,79,0.5); }
.form-strip .d{ background:rgba(214,166,25,0.16); color:#D6A619; border:1px solid rgba(214,166,25,0.5); }
.form-strip .l{ background:rgba(198,49,49,0.20); color:#D6524A; border:1px solid rgba(198,49,49,0.5); }
.dash-cta{ margin-top:22px; font-size:13px; }
.dash-cta a{ color:var(--data-cyan); border-bottom:1px dotted var(--data-cyan); }

/* ---------- community ---------- */
.community{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.consensus-card{ background:var(--card); border:1px solid var(--pitch-line); padding:26px; }
.consensus-row{ display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px solid var(--pitch-line); font-size:14px; }
.consensus-row:last-child{ border-bottom:0; }
.consensus-row .pct{ font-family:var(--f-mono); color:var(--signal); }
.vote-bar{ height:6px; background:var(--pitch-2); border-radius:99px; margin-top:8px; overflow:hidden; }
.vote-bar i{ display:block; height:100%; background:var(--signal); }
.community ul.points li{ display:flex; gap:14px; padding:14px 0; border-top:1px solid var(--pitch-line); font-size:14.5px; color:var(--text-mid); }
.community ul.points li:first-child{ border-top:0; }
.community ul.points b{ color:var(--text-hi); }
.community ul.points .num{ font-family:var(--f-mono); color:var(--signal); flex-shrink:0; }

/* ---------- pricing ---------- */
.pricing-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(230px,1fr)); gap:20px; }
.plan{ background:var(--card); border:1px solid var(--pitch-line); padding:32px 26px; display:flex; flex-direction:column; }
.plan.featured{ border-color:var(--signal); background:var(--card-hi); position:relative; }
.plan.featured::before{ content:"MOST COMMON"; position:absolute; top:-1px; right:-1px; background:var(--signal); color:var(--ink); font-family:var(--f-mono); font-size:10px; letter-spacing:.08em; padding:5px 10px; }
.plan.prime-plan{ border-color:var(--signal-dim); background:linear-gradient(165deg, var(--card-hi), var(--card) 70%); }
.plan h3{ font-family:var(--f-display); font-size:20px; margin-bottom:6px; }
.plan .plan-sub{ font-size:13px; color:var(--text-low); margin-bottom:20px; }
.plan .price{ font-family:var(--f-mono); font-size:34px; color:var(--text-hi); margin-bottom:4px; }
.plan .price span{ font-size:13px; color:var(--text-low); }
.plan ul{ margin:22px 0 26px; flex:1; }
.plan ul li{ font-size:13.8px; color:var(--text-mid); padding:9px 0; border-top:1px solid var(--pitch-line); display:flex; gap:10px; }
.plan ul li:first-child{ border-top:0; }
.plan ul li::before{ content:"›"; color:var(--data-cyan); }

/* ---------- CTA band ---------- */
.cta-band{ background:var(--pitch); border-top:1px solid var(--pitch-line); border-bottom:1px solid var(--pitch-line); text-align:center; padding:76px 0; }
.cta-band h2{ font-family:var(--f-display); font-size:clamp(26px,3.4vw,38px); margin-bottom:16px; }
.cta-band p{ color:var(--text-mid); margin-bottom:28px; }

/* ---------- footer ---------- */
footer{ padding:56px 0 40px; }
.foot-grid{ display:grid; grid-template-columns:1.5fr repeat(6,1fr); gap:28px; padding-bottom:36px; border-bottom:1px solid var(--pitch-line); margin-bottom:22px; }
.foot-grid h5{ font-family:var(--f-mono); font-size:11.5px; letter-spacing:.08em; color:var(--text-low); text-transform:uppercase; margin-bottom:16px; }
.foot-grid li{ margin-bottom:9px; }
.foot-grid a{ font-size:13px; color:var(--text-mid); }
.foot-grid a:hover{ color:var(--text-hi); }
.foot-grid a.premium-link{ color:var(--signal); }
.foot-about p{ font-size:13.5px; color:var(--text-mid); max-width:30ch; margin-top:14px; }
.foot-contact{ margin-top:18px; font-family:var(--f-mono); font-size:12.5px; color:var(--text-mid); }
.foot-contact div{ margin-bottom:5px; }
.foot-bottom{ display:flex; justify-content:space-between; align-items:center; font-size:12px; color:var(--text-low); flex-wrap:wrap; gap:10px; }
.foot-sponsor{ font-size:12px; color:var(--text-low); margin-top:14px; padding-top:14px; border-top:1px solid var(--pitch-line); }
.foot-disclaimer{ font-size:11.5px; color:var(--text-low); margin-top:18px; max-width:80ch; line-height:1.6; }

/* ---------- prime picks ---------- */
.prime-section{
  background-color:var(--pitch);
  background-image:radial-gradient(ellipse at top left, var(--glow-1), transparent 60%);
  border-top:1px solid var(--signal-dim); border-bottom:1px solid var(--pitch-line); padding:76px 0;
}
.prime-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:40px; }
.prime-eyebrow{ font-family:var(--f-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--signal); display:flex; align-items:center; gap:8px; }
.prime-eyebrow::before{ content:"★"; font-size:11px; }
.prime-head h2{ font-family:var(--f-display); font-size:clamp(26px,3vw,36px); margin-top:12px; }
.prime-head p{ color:var(--text-mid); margin-top:10px; max-width:52ch; font-size:15px; }
.prime-range{ font-family:var(--f-mono); font-size:12px; color:var(--signal); border:1px solid var(--signal-dim); padding:8px 14px; border-radius:99px; white-space:nowrap; }

.prime-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.prime-card{ background:linear-gradient(165deg, var(--card-hi), var(--card) 60%); border:1px solid var(--signal-dim); padding:28px; position:relative; }
.prime-card::before{ content:""; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg, var(--signal), transparent); }
.prime-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.prime-badge{ font-family:var(--f-mono); font-size:10px; letter-spacing:.08em; background:var(--signal); color:var(--ink); padding:4px 9px; border-radius:99px; font-weight:600; }
.prime-odds{ font-family:var(--f-mono); font-size:12.5px; color:var(--text-low); }
.prime-odds b{ color:var(--signal); }
.prime-matchup{ font-family:var(--f-display); font-size:19px; margin-bottom:6px; }
.prime-comp{ font-family:var(--f-mono); font-size:11px; color:var(--text-low); text-transform:uppercase; letter-spacing:.05em; margin-bottom:16px; }
.prime-pick-row{ display:flex; justify-content:space-between; align-items:center; background:var(--pitch); border:1px solid var(--pitch-line); padding:12px 16px; margin-bottom:18px; }
.prime-pick-row .pick{ font-size:14px; color:var(--text-hi); }
.prime-pick-row .conf{ font-family:var(--f-mono); font-size:15px; color:var(--signal); }
.prime-write{ font-size:13.8px; color:var(--text-mid); line-height:1.7; margin-bottom:0; }
.prime-write b{ color:var(--text-hi); font-weight:600; }
.prime-form-block{ border-top:1px solid var(--pitch-line); padding-top:18px; margin-top:20px; }
.prime-form-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.prime-form-head span{ font-family:var(--f-mono); font-size:10.5px; color:var(--text-low); text-transform:uppercase; letter-spacing:.06em; }
.prime-form-row{ display:flex; align-items:center; gap:14px; margin-bottom:10px; }
.prime-form-row:last-child{ margin-bottom:0; }
.prime-form-row .pf-team{ width:100px; flex-shrink:0; font-size:12.5px; color:var(--text-mid); }
.prime-form-row .form-strip span{ width:22px; height:22px; font-size:10px; }
.prime-form-row svg{ flex-shrink:0; }

.prime-locked{ position:relative; border:1px solid var(--signal-dim); background:linear-gradient(165deg, var(--card-hi), var(--card) 60%); padding:40px; overflow:hidden; }
.prime-locked::before{ content:""; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg, var(--signal), transparent); }
.prime-locked-blur{ filter:blur(6px); opacity:0.5; pointer-events:none; user-select:none; }
.prime-locked-overlay{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:32px; background:linear-gradient(180deg, color-mix(in srgb, var(--pitch) 35%, transparent), color-mix(in srgb, var(--pitch) 90%, transparent) 45%); }
.lock-icon{ width:44px; height:44px; border:1.5px solid var(--signal); border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-size:18px; color:var(--signal); }
.prime-locked-overlay h3{ font-family:var(--f-display); font-size:22px; margin-bottom:10px; }
.prime-locked-overlay p{ color:var(--text-mid); font-size:14px; max-width:44ch; margin-bottom:22px; }
.prime-locked-meta{ display:flex; gap:20px; margin-bottom:22px; flex-wrap:wrap; justify-content:center; }
.prime-locked-meta span{ font-family:var(--f-mono); font-size:11.5px; color:var(--text-low); border:1px solid var(--pitch-line); padding:6px 12px; border-radius:99px; }

/* ---------- category access by plan ---------- */
.plan-cat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.plan-cat-card{
  background:var(--card); border:1px solid var(--pitch-line); border-radius:6px;
  padding:28px 24px; display:flex; flex-direction:column;
  box-shadow:var(--shadow-card); transition:transform .18s ease, border-color .18s ease;
}
.plan-cat-card:hover{ transform:translateY(-3px); border-color:var(--signal-dim); }
.plan-cat-card .pc-icon{
  width:34px; height:34px; border-radius:50%; border:1px solid var(--pitch-line);
  display:flex; align-items:center; justify-content:center; margin-bottom:16px;
  font-family:var(--f-mono); font-size:13px; color:var(--text-mid);
}
.plan-cat-card h3{ font-family:var(--f-display); font-size:18px; margin-bottom:18px; }
.plan-cat-card ul{ margin-bottom:24px; flex:1; }
.plan-cat-card li{ padding:0; border-top:1px solid var(--pitch-line); }
.plan-cat-card li:first-child{ border-top:0; }
.plan-cat-card li a{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  font-size:13.5px; color:var(--text-mid); padding:10px 0; transition:color .15s ease;
}
.plan-cat-card li a::after{ content:"→"; opacity:0; font-size:12px; transition:opacity .15s ease, transform .15s ease; transform:translateX(-4px); }
.plan-cat-card li a:hover{ color:var(--text-hi); }
.plan-cat-card li a:hover::after{ opacity:1; transform:translateX(0); }
.plan-cat-card.prime li a:hover{ color:var(--signal); }
.plan-cat-card .pc-link{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--f-mono); font-size:11.5px; letter-spacing:.03em;
  color:var(--text-hi); border:1px solid var(--pitch-line); border-radius:99px;
  padding:9px 16px; align-self:flex-start; transition:border-color .15s ease, background .15s ease;
}
.plan-cat-card .pc-link:hover{ border-color:var(--signal); background:var(--card-hi); }
.plan-cat-card.prime{
  background:linear-gradient(165deg, var(--card-hi), var(--card) 70%);
  border-color:var(--signal-dim); position:relative; overflow:hidden;
}
.plan-cat-card.prime::before{
  content:""; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, var(--signal), transparent);
}
.plan-cat-card.prime .pc-icon{ border-color:var(--signal-dim); color:var(--signal); }
.plan-cat-card.prime h3{ color:var(--signal); }
.plan-cat-card.prime li a{ color:var(--text-hi); }
.plan-cat-card.prime .pc-link{ border-color:var(--signal-dim); color:var(--signal); }
.plan-cat-card.prime .pc-link:hover{ background:rgba(192,88,0,0.10); }

/* ---------- score chips / goalscorers / bet slip / odds tables ---------- */
.score-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.score-chip{ font-family:var(--f-mono); border:1px solid var(--pitch-line); padding:8px 12px; border-radius:var(--radius); text-align:center; min-width:64px; }
.score-chip b{ display:block; font-size:14px; color:var(--text-hi); margin-bottom:3px; }
.score-chip span{ font-size:10.5px; color:var(--signal); }
.score-chip.dim{ opacity:0.55; }

.scorer-list{ margin-top:4px; }
.scorer-row{ display:flex; align-items:center; gap:12px; padding:10px 0; border-top:1px solid var(--pitch-line); }
.scorer-row:first-child{ border-top:0; }
.scorer-row .sc-name{ width:150px; flex-shrink:0; font-size:13px; color:var(--text-hi); }
.scorer-row .sc-team{ font-family:var(--f-mono); font-size:10px; color:var(--text-low); display:block; margin-top:2px; }
.scorer-row .bar-track{ flex:1; }
.scorer-row .bar-val{ width:38px; }

.betslip{ background:var(--card); border:1px solid var(--pitch-line); max-width:420px; }
.betslip-head{ padding:18px 22px; border-bottom:1px solid var(--pitch-line); display:flex; align-items:center; justify-content:space-between; }
.betslip-head b{ font-family:var(--f-display); font-size:15px; }
.betslip-head span{ font-family:var(--f-mono); font-size:11px; color:var(--text-low); }
.slip-leg{ padding:14px 22px; border-bottom:1px solid var(--pitch-line); }
.slip-leg .leg-match{ font-size:12.5px; color:var(--text-low); font-family:var(--f-mono); margin-bottom:4px; }
.slip-leg .leg-row{ display:flex; justify-content:space-between; align-items:center; }
.slip-leg .leg-pick{ font-size:14px; color:var(--text-hi); }
.slip-leg .leg-odds{ font-family:var(--f-mono); font-size:14px; color:var(--signal); }
.betslip-total{ padding:18px 22px; background:var(--pitch); }
.betslip-total .tot-row{ display:flex; justify-content:space-between; font-size:13px; color:var(--text-mid); padding:5px 0; }
.betslip-total .tot-row.main{ font-size:16px; color:var(--text-hi); font-family:var(--f-mono); padding-top:10px; margin-top:6px; border-top:1px solid var(--pitch-line); }
.betslip-total .tot-row.main b{ color:var(--signal); }

.acca-compare{ background:var(--card); border:1px solid var(--pitch-line); padding:26px; }
.acca-compare h4{ font-family:var(--f-mono); font-size:12px; letter-spacing:.08em; color:var(--text-low); text-transform:uppercase; margin-bottom:18px; }
.acca-row{ display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-top:1px solid var(--pitch-line); font-size:13.5px; }
.acca-row:first-child{ border-top:0; }
.acca-row .book{ color:var(--text-mid); }
.acca-row .combined{ font-family:var(--f-mono); color:var(--text-hi); }
.acca-row .payout{ font-family:var(--f-mono); font-size:12px; color:var(--signal); width:80px; text-align:right; }
.acca-row.best .book{ color:var(--text-hi); }
.acca-row.best .combined, .acca-row.best .payout{ color:var(--signal); }
.acca-best-badge{ font-family:var(--f-mono); font-size:9.5px; background:var(--signal); color:var(--ink); padding:2px 6px; border-radius:99px; margin-left:8px; }

.deep-panel{ background:var(--card); padding:26px; }
.deep-panel h4{ font-family:var(--f-mono); font-size:12px; letter-spacing:.08em; color:var(--text-low); text-transform:uppercase; margin-bottom:18px; display:flex; align-items:center; justify-content:space-between; }
.deep-panel h4 small{ color:var(--text-low); font-size:10.5px; text-transform:none; letter-spacing:0; }
.odds-table{ width:100%; table-layout:fixed; border-collapse:collapse; font-size:12.5px; margin-bottom:6px; }
.odds-table th{ font-family:var(--f-mono); font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--text-low); text-align:left; padding:0 8px 10px 0; font-weight:400; }
.odds-table th:not(:first-child), .odds-table td:not(:first-child){ text-align:center; }
.odds-table td{ font-family:var(--f-mono); padding:9px 8px 9px 0; border-top:1px solid var(--pitch-line); color:var(--text-mid); }
.odds-table td:first-child{ color:var(--text-hi); text-align:left; }
.odds-table td.best{ color:var(--signal); font-weight:600; }
.odds-table tr:first-child td{ border-top:0; }
.tip-compare{ margin-top:22px; }
.tip-row{ display:flex; align-items:center; gap:12px; padding:10px 0; border-top:1px solid var(--pitch-line); font-size:12.5px; }
.tip-row:first-child{ border-top:0; }
.tip-row .tip-source{ width:108px; flex-shrink:0; color:var(--text-mid); font-family:var(--f-mono); font-size:11.5px; }
.tip-row .tip-pick{ flex:1; color:var(--text-hi); }
.tip-row .tip-conf{ font-family:var(--f-mono); font-size:12px; color:var(--signal); width:40px; text-align:right; }
.market-list{ margin-top:4px; }
.market-row{ display:flex; align-items:center; gap:12px; padding:9px 0; border-top:1px solid var(--pitch-line); }
.market-row:first-child{ border-top:0; }
.market-row .m-label{ width:128px; flex-shrink:0; font-size:12.5px; color:var(--text-mid); }
.market-row .bar-track{ flex:1; }
.market-row .bar-val{ width:38px; }

/* ---------- forms (register/login) ---------- */
.auth-shell{ min-height:calc(100vh - 200px); display:flex; align-items:center; justify-content:center; padding:64px 20px; }
.auth-card{ width:100%; max-width:420px; background:var(--card); border:1px solid var(--pitch-line); padding:38px 34px; }
.auth-card h1{ font-family:var(--f-display); font-size:24px; margin:14px 0 8px; }
.auth-card p.sub{ color:var(--text-mid); font-size:14px; margin-bottom:26px; }
.field{ margin-bottom:18px; }
.field label{ display:block; font-family:var(--f-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-low); margin-bottom:8px; }
.field input, .field select{ width:100%; background:var(--pitch); border:1px solid var(--pitch-line); color:var(--text-hi); padding:11px 13px; border-radius:var(--radius); font-size:14px; font-family:var(--f-body); }
.field input:focus, .field select:focus{ border-color:var(--data-cyan); outline:none; }
.auth-card .btn{ width:100%; margin-top:6px; padding:13px; }
.auth-switch{ margin-top:22px; text-align:center; font-size:13.5px; color:var(--text-mid); }
.auth-switch a{ color:var(--data-cyan); }
.plan-pick{ display:flex; gap:10px; margin-bottom:20px; }
.plan-pick label{ flex:1; border:1px solid var(--pitch-line); padding:10px 8px; text-align:center; border-radius:var(--radius); font-family:var(--f-mono); font-size:12px; cursor:pointer; color:var(--text-mid); }
.plan-pick input{ display:none; }
.plan-pick input:checked + span{ color:var(--signal); }
.plan-pick label:has(input:checked){ border-color:var(--signal); background:rgba(192,88,0,0.10); }

/* ---------- analysis sample page ---------- */
.match-head{ display:flex; align-items:center; justify-content:center; gap:40px; padding:56px 0 40px; text-align:center; flex-wrap:wrap; }
.team-block{ width:180px; max-width:38vw; }
.team-block .crest{ width:64px; height:64px; margin:0 auto 12px; border:1.5px solid var(--pitch-line); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--f-display); font-weight:700; font-size:20px; color:var(--signal); }
.team-block.cyan .crest{ color:var(--data-cyan); }
.match-vs{ font-family:var(--f-mono); color:var(--text-low); font-size:13px; }
.match-vs b{ display:block; font-size:26px; color:var(--text-hi); font-family:var(--f-display); margin-bottom:6px; }
.metric-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--pitch-line); border:1px solid var(--pitch-line); margin-bottom:1px; }
.metric{ background:var(--card); padding:22px; text-align:center; }
.metric b{ display:block; font-family:var(--f-mono); font-size:26px; color:var(--signal); margin-bottom:6px; }
.metric span{ font-size:12px; color:var(--text-low); text-transform:uppercase; letter-spacing:.05em; }
.consensus-strip{ display:flex; align-items:center; gap:16px; padding:18px 22px; background:var(--pitch); border:1px solid var(--pitch-line); margin:40px 0; font-size:13.5px; color:var(--text-mid); }
.consensus-strip b{ color:var(--signal); font-family:var(--f-mono); }
.lock-note{ border:1px dashed var(--pitch-line); padding:22px; text-align:center; color:var(--text-low); font-size:13.5px; margin-top:8px; }
.lock-note a{ color:var(--data-cyan); }

/* ---------- utility classes (replace one-off inline styles) ---------- */
.text-hi{ color:var(--text-hi); }
.text-mid{ color:var(--text-mid); }
.text-low{ color:var(--text-low); }
.mono{ font-family:var(--f-mono); }
.d-block{ display:block; }
.m-0{ margin:0; }
.mb-16{ margin-bottom:16px; }
.mt-8{ margin-top:8px; }
.mt-14{ margin-top:14px; }
.mt-16{ margin-top:16px; }
.mt-18{ margin-top:18px; }
.mt-20{ margin-top:20px; }
.mt-22{ margin-top:22px; }
.mt-24{ margin-top:24px; }
.mt-26{ margin-top:26px; }
.mt-36{ margin-top:36px; }
.pt-0{ padding-top:0; }
.pt-56{ padding-top:56px; }
.pt-60{ padding-top:60px; }
.pt-64{ padding-top:64px; }
.pb-40{ padding-bottom:40px; }

/* progress / vote-bar fill widths — exact values used across the site */
.w-13{ width:13%; } .w-17{ width:17%; } .w-20{ width:20%; } .w-22{ width:22%; }
.w-29{ width:29%; } .w-38{ width:38%; } .w-42{ width:42%; } .w-44{ width:44%; }
.w-48{ width:48%; } .w-50{ width:50%; } .w-55{ width:55%; } .w-58{ width:58%; } .w-61{ width:61%; }
.w-65{ width:65%; } .w-67{ width:67%; } .w-68{ width:68%; } .w-70{ width:70%; }
.w-71{ width:71%; } .w-74{ width:74%; } .w-75{ width:75%; } .w-79{ width:79%; }
.w-80{ width:80%; } .w-91{ width:91%; } .w-95{ width:95%; }

/* bar-fill / vote-bar colour modifiers */
.vote-bar i.cyan{ background:var(--data-cyan); }
.vote-bar i.rose{ background:var(--data-rose); }

/* one-off component classes, named for what they present */
.meta-note{ font-size:11px; color:var(--text-low); font-family:var(--f-mono); margin-top:8px; }
.note-block{ font-size:12px; color:var(--text-low); margin-top:18px; line-height:1.6; }
.community-heading{ font-family:var(--f-display); font-size:clamp(24px,3vw,32px); margin:14px 0 18px; }
.betslip-wrap{ background:var(--card); padding:26px; display:flex; justify-content:center; }
.dash-preview-betslip{ grid-template-columns:0.85fr 1.15fr; }
.foot-grid-4{ grid-template-columns:1.4fr repeat(3,1fr); }
.foot-grid-secondary{ grid-template-columns:1fr 1fr 1fr 1fr; border-top:0; padding-top:0; }
.modules-2col{ grid-template-columns:1fr 1fr; }
.section-head-wide{ max-width:680px; }
.form-caption{ font-size:13px; color:var(--text-mid); margin-bottom:8px; }
.form-caption-2{ font-size:13px; color:var(--text-mid); margin:18px 0 8px; }
.team-label{ font-family:var(--f-mono); font-size:14px; color:var(--text-hi); }
.page-eyebrow{ margin-top:36px; display:inline-flex; }
.foot-bottom-bordered{ border-top:1px solid var(--pitch-line); padding-top:22px; }
.prime-intro{ color:var(--text-mid); max-width:56ch; font-size:15.5px; margin-bottom:36px; }
.prime-hero-title{ font-family:var(--f-display); font-size:clamp(30px,4vw,44px); margin:16px 0 14px; max-width:18ch; }
.consensus-note{ margin-top:18px; font-size:12.5px; color:var(--text-low); font-family:var(--f-mono); }
.page-title{ font-family:var(--f-display); font-size:clamp(28px,4vw,44px); line-height:1.1; }
.page-lede{ color:var(--text-mid); font-size:15.5px; }

/* ---------- SEO content block ---------- */
.seo-content{ background:var(--pitch); border-top:1px solid var(--pitch-line); border-bottom:1px solid var(--pitch-line); }
.seo-content h2{ font-family:var(--f-display); font-size:clamp(24px,2.6vw,30px); margin-bottom:18px; }
.seo-content h3{ font-family:var(--f-display); font-size:18px; margin:26px 0 10px; color:var(--text-hi); }
.seo-content p{ color:var(--text-mid); font-size:14.5px; line-height:1.8; margin-bottom:14px; max-width:78ch; }
.seo-content .seo-cols{ display:grid; grid-template-columns:1fr 1fr; gap:40px; }

/* ---------- responsive ---------- */
@media (max-width: 900px){
  .mega-nav{ display:none; }
  .menu-toggle{ display:flex; }
  .hero{ grid-template-columns:1fr; padding-top:44px; }
  .modules{ grid-template-columns:1fr 1fr; }
  .board{ grid-template-columns:1fr; }
  .dash-preview{ grid-template-columns:1fr; }
  .community{ grid-template-columns:1fr; }
  .pricing-grid{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr 1fr; }
  .metric-grid{ grid-template-columns:1fr 1fr; }
  .match-head{ gap:16px; }
  .team-block{ width:120px; max-width:40vw; }
  .team-block .crest{ width:52px; height:52px; }
  .prime-grid{ grid-template-columns:1fr; }
  .plan-cat-grid{ grid-template-columns:1fr 1fr; }
  .seo-content .seo-cols{ grid-template-columns:1fr; }
  .prime-locked{ padding:24px; }
  .prime-head{ flex-direction:column; align-items:flex-start; }
  section{ padding:56px 0; }
  .nav-actions .login-link{ display:none; }
}
@media (max-width: 560px){
  .plan-cat-grid{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr; }
  .hero-stats{ gap:22px; }
}
@media (max-width: 900px){
  .nav{ padding:20px 0; min-height:40px; }
}
@media (max-width: 600px){
  .nav-clock-date{ display:none; }
}
@media (max-width: 480px){
  .nav-actions .btn-primary{ display:none; }
  .nav-actions .theme-switch{ display:none; }
  .wrap{ padding:0 20px; }
  .nav{ padding:22px 0; min-height:44px; }
}
@media (max-width: 340px){
  .nav-clock{ display:none; }
}
@media (prefers-reduced-motion: reduce){
  .sweep-line, .logo-mark::after, .radar-poly{ animation:none !important; }
}

/* ---------- radar chart (moved from inline SVG attributes) ---------- */
.radar-grid{ fill:none; stroke:rgba(150,150,150,0.35); stroke-width:1; }
.radar-label{ fill:rgba(150,150,150,0.8); font-family:'IBM Plex Mono', monospace; font-size:9.5px; }
.radar-away{ fill:#9A9A9A; stroke:#9A9A9A; }
.radar-home{ fill:#E4293A; stroke:#E4293A; }
.radar-poly.radar-away{ fill-opacity:0.16; stroke-width:2; }
.radar-poly.radar-home{ fill-opacity:0.20; stroke-width:2; }
.radar-dot.radar-away{ fill:#9A9A9A; }
.radar-dot.radar-home{ fill:#E4293A; }