:root{--bg:#0a0a0f;--surf:#111118;--surf2:#18181f;--surf3:#1f1f28;--bdr:rgba(255,255,255,0.07);--bdr2:rgba(255,255,255,0.13);--txt:#f0f0f8;--mut:#6b6b80;--acc:#ff5c35;--acc2:#ffd166;--acc3:#06d6a0;--acc4:#4abfd4;--acc5:#a78bfa;--mono:'DM Mono',monospace;--sans:'Syne',sans-serif}
[data-theme="light"]{--bg:#f4f4f8;--surf:#ffffff;--surf2:#eeeef4;--surf3:#e4e4ec;--bdr:rgba(0,0,0,0.09);--bdr2:rgba(0,0,0,0.16);--txt:#0d0d1a;--mut:#767690}
[data-theme="light"] .site-header{background:rgba(244,244,248,0.97)}
[data-theme="light"] nav{background:var(--surf)}
[data-theme="light"] select{background:var(--surf2);color:var(--txt);border-color:var(--bdr2)}
[data-theme="light"] input[type="text"]{background:var(--surf2);color:var(--txt);border-color:var(--bdr2)}
.theme-btn{font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1;background:none;border:1px solid var(--bdr2);border-radius:3px;padding:0 9px;height:28px;cursor:pointer;color:var(--mut);transition:color .15s,border-color .15s;flex-shrink:0;display:flex;align-items:center;justify-content:center;white-space:nowrap}
.theme-btn:hover{color:var(--txt)}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--txt);font-family:var(--sans);min-height:100vh}
.site-header{position:sticky;top:0;z-index:200;background:rgba(10,10,15,0.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--bdr)}
/* top row: logo + right controls, always one line */
.hdr-top{display:flex;align-items:center;justify-content:space-between;padding:0 1rem;height:48px;gap:0}
.logo{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--acc);white-space:nowrap;flex-shrink:0;min-width:0;text-decoration:none}
.logo span{color:var(--txt)}
.logo .yr{opacity:.35;font-size:11px}
.hdr-right{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto;padding-left:12px}
.live-badge{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--acc3);border:1px solid var(--acc3);padding:3px 7px;border-radius:2px;display:flex;align-items:center;gap:4px;white-space:nowrap}
.dot{width:5px;height:5px;border-radius:50%;background:var(--acc3);animation:pulse 1.5s infinite;flex-shrink:0}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
/* sub-bar: update time + poll countdown — desktop only row, hidden on mobile */
.hdr-sub{display:flex;align-items:center;gap:12px;padding:4px 1rem;border-top:1px solid var(--bdr);font-family:var(--mono);font-size:10px;color:var(--mut)}
@media(max-width:639px){.hdr-sub{display:none}}
.hdr-meta{font-family:var(--mono);font-size:10px;color:var(--mut)}
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;padding:6px;background:none;border:1px solid var(--bdr2);border-radius:3px;cursor:pointer;flex-shrink:0}
.hamburger span{display:block;width:100%;height:2px;background:var(--txt);border-radius:1px;transition:all .2s}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
/* desktop nav: horizontal tab bar */
nav{display:flex;padding:0 1rem;border-bottom:1px solid var(--bdr);background:var(--surf);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;position:relative;z-index:150}
nav::-webkit-scrollbar{display:none}
.nb{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--mut);background:none;border:none;border-bottom:2px solid transparent;padding:12px 11px;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap;flex-shrink:0}
.nb:hover{color:var(--txt)}
.nb.active{color:var(--acc);border-bottom-color:var(--acc)}
.nav-home-link{display:flex;align-items:center;text-decoration:none}
.nav-div{width:1px;background:var(--bdr);margin:8px 4px;flex-shrink:0;align-self:stretch}
/* mobile: hamburger + fullwidth dropdown drawer */
@media(max-width:639px){
  .hamburger{display:flex}
  nav{display:none;flex-direction:column;padding:0;border-bottom:none;overflow:visible;
      position:fixed;top:48px;left:0;right:0;width:100%;z-index:190;
      background:var(--surf);border-bottom:1px solid var(--bdr2);
      box-shadow:0 8px 24px rgba(0,0,0,.6)}
  nav.open{display:flex}
  .nb{border-bottom:none;border-left:3px solid transparent;padding:15px 1.25rem;
      font-size:13px;letter-spacing:.04em;text-align:left;width:100%;border-radius:0}
  .nb:hover{background:var(--surf2)}
  .nb.active{color:var(--acc);border-left-color:var(--acc);border-bottom:none;background:rgba(255,92,53,.06)}
  .nav-div{width:100%;height:1px;margin:4px 0;align-self:auto}
}
/* ── TIP-OFF BANNER ──────────────────────────────────── */
.tipoff-banner{display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:6px;margin-bottom:.9rem;font-size:13px;flex-wrap:wrap;transition:background .2s}
.tipoff-live{background:rgba(6,214,160,.08);border:1px solid rgba(6,214,160,.3);color:var(--acc3)}
.tipoff-upcoming{background:rgba(255,209,102,.06);border:1px solid rgba(255,209,102,.25);color:var(--txt)}
.tipoff-lbl{font-size:9px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--mut);font-family:var(--mono);flex-shrink:0}
.tipoff-match{font-weight:700}
.tipoff-round{font-size:10px;color:var(--mut);font-family:var(--mono)}
.tipoff-time{font-family:var(--mono);font-size:15px;font-weight:700;color:var(--acc2);margin-left:auto}
.tipoff-scroll{font-size:10px;color:var(--acc3);margin-left:8px;font-family:var(--mono)}
.tipoff-more{font-size:10px;font-family:var(--mono);font-weight:700;color:var(--acc2);background:rgba(255,209,102,.12);border:1px solid rgba(255,209,102,.25);border-radius:3px;padding:1px 6px;flex-shrink:0}
/* ── TOURNAMENT STEPPER ──────────────────────────────── */
.tourney-stepper{display:flex;align-items:flex-start;overflow-x:auto;scrollbar-width:none;padding:8px 0 16px;margin-bottom:.9rem;-webkit-overflow-scrolling:touch}
.tourney-stepper::-webkit-scrollbar{display:none}
/* spacer divs injected by JS so edge stops can scroll to center */
.ts-spacer{flex:0 0 auto;flex-shrink:0;pointer-events:none}
.ts-stop{display:flex;flex-direction:column;align-items:center;flex-shrink:0;min-width:80px;cursor:pointer;padding:0 4px;user-select:none;transition:opacity .15s}
/* base dot — future/upcoming */
.ts-dot{width:12px;height:12px;border-radius:50%;border:2px solid rgba(255,255,255,.15);background:transparent;transition:all .2s;flex-shrink:0;position:relative}
/* past: done — dim, neutral */
.ts-stop.past .ts-dot{background:var(--mut);border-color:var(--mut);opacity:.45}
.ts-stop.past .ts-label{color:var(--mut);opacity:.45}
.ts-stop.past .ts-date,.ts-stop.past .ts-count{opacity:.3}
/* current: label always bold orange; dot filled but no glow by default */
.ts-stop.current .ts-dot{background:var(--acc);border-color:var(--acc);opacity:1}
.ts-stop.current .ts-label{color:var(--acc);font-size:10px;font-weight:800;opacity:1}
.ts-stop.current .ts-date{color:var(--acc);opacity:.6}
.ts-stop.current .ts-count{opacity:1}
/* glow on current dot only when no round is explicitly selected */
.tourney-stepper:not(.has-filter) .ts-stop.current .ts-dot{box-shadow:0 0 0 5px rgba(255,92,53,.2),0 0 14px rgba(255,92,53,.12)}
/* when another round is selected, current dot dims back — label stays orange */
.tourney-stepper.has-filter .ts-stop.current:not(.selected) .ts-dot{background:var(--mut);border-color:var(--mut);opacity:.45;box-shadow:none}
/* future: not yet — very dim */
.ts-stop:not(.past):not(.current) .ts-dot{opacity:.25}
.ts-stop:not(.past):not(.current) .ts-label{opacity:.25}
.ts-stop:not(.past):not(.current) .ts-date,.ts-stop:not(.past):not(.current) .ts-count{opacity:.2}
/* hover: pointer devices only (prevents sticky-hover on touch/scroll) */
@media(hover:hover){
  .ts-stop:hover .ts-dot{opacity:1;border-color:var(--acc)}
  .ts-stop:hover .ts-label{opacity:.9;color:var(--txt)}
}
/* selected: only the clicked dot gets the highlight glow */
.ts-stop.selected .ts-dot{border-color:var(--acc)!important;box-shadow:0 0 0 5px rgba(255,92,53,.3)!important;opacity:1!important}
.ts-stop.selected .ts-label{color:var(--acc)!important;opacity:1!important}
/* live pulse ring */
.ts-pulse{position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--acc);animation:pulse 1.5s infinite;opacity:.5}
/* track segments */
.ts-seg{flex:1;min-width:16px;height:2px;margin-top:5px;flex-shrink:0;background:rgba(255,255,255,.08);align-self:flex-start;transition:background .2s}
.ts-seg.past{background:var(--mut);opacity:.35}
/* labels */
.ts-label{font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);margin-top:8px;text-align:center;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ts-date{font-size:9px;color:var(--mut);font-family:var(--mono);margin-top:2px;text-align:center;opacity:.45}
.ts-count{font-size:9px;font-family:var(--mono);color:var(--mut);margin-top:3px;text-align:center}
.ts-count.ts-done{color:var(--acc3);opacity:.8}
.ts-count.ts-live{color:var(--acc3);font-weight:700;opacity:1}
main{max-width:1140px;margin:0 auto;padding:1rem}
@media(min-width:640px){main{padding:1.5rem}}
.panel{display:none}
.panel.active{display:block}
/* METRICS — 4-col single row on mobile, 4-col on desktop */
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-bottom:1rem}
@media(min-width:640px){.metrics{gap:6px}}
.mc{background:var(--surf);border:1px solid var(--bdr);border-radius:8px;aspect-ratio:1/1;min-width:0;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.25rem;text-align:center}
@media(min-width:640px){.mc{aspect-ratio:auto;align-items:flex-start;justify-content:flex-start;padding:.5rem .75rem;text-align:left;overflow:visible}}
.mc-label{font-size:8px;letter-spacing:.07em;text-transform:uppercase;color:var(--txt);font-weight:700;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
@media(min-width:640px){.mc-label{font-size:9px;color:var(--mut)}}
.mc-value{font-size:clamp(11px,3.5vw,15px);font-weight:800;color:var(--acc);line-height:1}
@media(min-width:640px){.mc-value{font-size:18px}}
.mc-sub{font-size:clamp(7px,2vw,9px);color:var(--txt);margin-top:2px;font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
@media(min-width:640px){.mc-sub{font-size:10px;color:var(--mut)}}
/* GAME CARDS — mobile layout */
.gcards{display:flex;flex-direction:column;gap:6px}
.gcard{background:var(--surf);border:1px solid var(--bdr);border-radius:4px;cursor:pointer;transition:border-color .12s;overflow:hidden}
.gcard:hover{border-color:var(--bdr2)}
.gcard:active{opacity:.85}
/* top bar: status pill + round label */
.gc-top{display:flex;align-items:center;justify-content:space-between;padding:6px 10px 0;gap:6px}
.pill{font-family:var(--mono);font-size:10px;letter-spacing:.04em;padding:2px 7px;border-radius:2px;background:rgba(255,255,255,.04);color:var(--mut);border:1px solid var(--bdr)}
.pill.p-live{background:rgba(6,214,160,.12);color:var(--acc3);border-color:rgba(6,214,160,.3)}
.gc-meta{font-family:var(--mono);font-size:10px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gc-round{font-size:10px;color:var(--mut);font-family:var(--mono);letter-spacing:.03em}
/* main row: teams + score */
.gc-main{display:flex;align-items:stretch;padding:6px 10px 8px;gap:0}
.gc-teams{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.gc-team{display:flex;align-items:center;gap:6px;min-width:0}
.gc-seed{font-family:var(--mono);font-size:10px;color:var(--mut);min-width:22px;flex-shrink:0}
.gc-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.gc-name.dim{color:var(--mut);font-weight:400}
.gc-scores{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:4px;flex-shrink:0;padding-left:10px}
.gc-score{font-family:var(--mono);font-size:18px;font-weight:500;line-height:1}
.gc-score.win{color:var(--txt)}
.gc-score.lose{color:var(--mut)}
.gc-score.live-lead{color:var(--acc3);font-weight:700}
/* bottom bar: margin pill + total */
.gc-bot{display:flex;align-items:center;gap:8px;padding:0 10px 7px;border-top:1px solid var(--bdr);padding-top:5px;margin-top:2px}
.gc-sub{font-family:var(--mono);font-size:10px;color:var(--mut);padding:0 10px 8px;line-height:1.45;word-break:break-word}
.gc-upset{font-size:10px;font-weight:700;letter-spacing:.07em;color:var(--acc);text-transform:uppercase}
.gc-total{font-family:var(--mono);font-size:11px;color:var(--mut);margin-left:auto}
/* sort controls — scrollable on mobile */
.sctrls-wrap{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;margin-bottom:.75rem}
.sctrls-wrap::-webkit-scrollbar{display:none}
.crow{display:flex;align-items:center;gap:6px;margin-bottom:.9rem;flex-wrap:wrap}
.clabel{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);font-weight:700;flex-shrink:0}
.cb{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.03em;padding:8px 13px;border:1px solid var(--bdr2);background:var(--surf2);color:var(--mut);border-radius:2px;cursor:pointer;transition:all .12s;white-space:nowrap;flex-shrink:0}
.cb:hover{color:var(--txt);border-color:rgba(255,255,255,.2)}
.cb.active{color:var(--acc);border-color:var(--acc);background:rgba(255,92,53,.08)}
.cb.g.active{color:var(--acc3);border-color:var(--acc3);background:rgba(6,214,160,.08)}
input[type=text],select{font-family:var(--mono);font-size:16px;padding:5px 10px;background:var(--surf2);border:1px solid var(--bdr2);border-radius:2px;color:var(--txt);outline:none}
input[type=text]{width:180px}
input[type=text]::placeholder{color:var(--mut)}
input[type=text]:focus,select:focus{border-color:var(--acc)}
select{min-width:160px;cursor:pointer}
.gt{width:100%;border-collapse:collapse;font-size:13px}
.gt thead tr{border-bottom:1px solid var(--bdr2)}
.gt th{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--mut);font-weight:700;padding:7px 10px;text-align:left;cursor:pointer;white-space:nowrap;user-select:none}
.gt th:hover{color:var(--txt)}
.gt th.sa{color:var(--acc)}
.gt tbody tr{border-bottom:1px solid var(--bdr);transition:background .1s}
.gt tbody tr.cr{cursor:pointer}
.gt tbody tr:hover{background:var(--surf)}
.gt td{padding:10px 10px;color:var(--txt);vertical-align:middle}
.tnm{font-weight:700}
.sbx{font-family:var(--mono);font-size:14px;font-weight:500}
.sw{color:var(--txt)}.sl{color:var(--mut)}
.mpill{font-family:var(--mono);font-size:11px;padding:2px 7px;border-radius:2px;font-weight:500;display:inline-block}
.sbadge{font-family:var(--mono);font-size:10px;color:var(--mut);border:1px solid var(--bdr2);padding:1px 5px;border-radius:2px;margin-right:4px}
.spill{font-family:var(--mono);font-size:10px;letter-spacing:.04em;padding:2px 7px;border-radius:2px}
.s-live{background:rgba(6,214,160,.12);color:var(--acc3);border:1px solid rgba(6,214,160,.3)}
.s-fin{background:rgba(255,255,255,.04);color:var(--mut);border:1px solid var(--bdr)}
.s-sch{background:rgba(255,209,102,.08);color:var(--acc2);border:1px solid rgba(255,209,102,.25)}
.uflag{font-size:10px;font-weight:700;letter-spacing:.07em;color:var(--acc);margin-left:4px;text-transform:uppercase}
#modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:500;overflow-y:auto;padding:2rem 1rem}
#modal.open{display:flex;align-items:flex-start;justify-content:center}
.mbox{background:var(--surf);border:1px solid var(--bdr2);border-radius:4px;width:100%;max-width:780px;padding:1.5rem;position:relative;margin:auto}
.mclose{position:absolute;top:12px;right:14px;font-size:22px;color:var(--mut);background:none;border:none;cursor:pointer;line-height:1}
.mclose:hover{color:var(--txt)}
.mtitle{font-size:18px;font-weight:800;margin-bottom:3px}
.msub{font-size:12px;color:var(--mut);margin-bottom:1.25rem;font-family:var(--mono)}
.msect{margin-bottom:1.25rem}
.msh{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);font-weight:700;margin-bottom:.6rem;padding-bottom:5px;border-bottom:1px solid var(--bdr)}
/* Modal scoreline — side-by-side split card */
.scoreline{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;margin-bottom:1.25rem;border:1px solid var(--bdr2);border-radius:10px;overflow:hidden;background:var(--surf2)}
.tsb{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:1.25rem 1rem;text-align:center;gap:5px;min-width:0}
/* Team logo */
.tsb-logo-wrap{width:64px;height:64px;flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:4px}
.tsb-logo{width:62px;height:62px;object-fit:contain;display:block}
.tsb-logo-fb{font-size:9px;font-weight:800;color:var(--mut);background:var(--surf3);border:1px solid var(--bdr2);border-radius:6px;width:54px;height:54px;display:none;align-items:center;justify-content:center;text-align:center;position:absolute;inset:5px;line-height:1.2;padding:3px}
.tsb-logo-wrap.tsb-logo-none .tsb-logo{display:none}
.tsb-logo-wrap.tsb-logo-none .tsb-logo-fb{display:flex}
.tsb-seed{font-family:var(--mono);font-size:11px;color:var(--mut)}
.tsb-name{font-size:15px;font-weight:800}
.tsb-name{transition:color .12s}
/* Whole tsb side is clickable */
.tsb.tsb-click{cursor:pointer;transition:background .14s}
.tsb.tsb-click:hover{background:rgba(255,255,255,.04)}
.tsb.tsb-click:hover .tsb-name{color:var(--acc)!important}
.tsb.tsb-click:active{opacity:.85}
/* Winner side highlight */
.tsb.tsb-win{background:rgba(255,92,53,.07)}
.tsb.tsb-win:hover{background:rgba(255,92,53,.12)}
/* Live leader side — green highlight */
.tsb.tsb-lead{background:rgba(6,214,160,.08)}
.tsb.tsb-lead:hover{background:rgba(6,214,160,.14)}
/* Score under each team's name */
.tsb-score{font-family:var(--mono);font-size:44px;font-weight:800;line-height:1;color:var(--mut);margin-top:4px}
.tsb-score.win{color:var(--txt)}
.tsb-score.lose{color:var(--mut);opacity:.4}
.tsb-score.lead{color:var(--acc3)}
/* Center status column */
.vs{border-left:1px solid var(--bdr2);border-right:1px solid var(--bdr2);padding:1rem .75rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:96px;text-align:center;flex-shrink:0}
.vs-meta{font-family:var(--mono);font-size:10px;color:var(--mut);margin-top:2px}
.htbl{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:13px}
.htbl th{padding:5px 10px;text-align:center;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);border-bottom:1px solid var(--bdr)}
.htbl th:first-child{text-align:left}
.htbl td{padding:6px 10px;text-align:center;border-bottom:1px solid var(--bdr)}
.htbl td:first-child{text-align:left;font-weight:600;font-family:var(--sans);font-size:13px}
.htbl tr:last-child td{border-bottom:none}
.cs{background:var(--surf);border:1px solid var(--bdr);border-radius:3px;padding:1.25rem;margin-bottom:1rem}
.ct{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);font-weight:700;margin-bottom:.85rem}
.cw{position:relative;width:100%}
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.tcard{background:var(--surf);border:1px solid var(--bdr);border-radius:3px;padding:.9rem;transition:all .15s}
.tcard:hover{border-color:var(--bdr2);transform:translateY(-1px)}
.tc-name{font-size:13px;font-weight:800;margin-bottom:3px}
.tc-rec{font-family:var(--mono);font-size:11px;color:var(--mut);margin-bottom:.65rem}
.tc-row{display:flex;justify-content:space-between;font-size:11px;padding:3px 0;border-top:1px solid var(--bdr)}
.tc-lbl{color:var(--mut)}.tc-val{font-family:var(--mono);font-weight:500}
.uc{background:var(--surf);border:1px solid rgba(255,92,53,.2);border-radius:3px;padding:.9rem;margin-bottom:7px}
.uc-hdr{display:flex;align-items:center;gap:10px;margin-bottom:.4rem;flex-wrap:wrap}
.uc-seeds{font-family:var(--mono);font-size:11px;color:var(--acc);font-weight:500}
.uc-mu{font-size:14px;font-weight:700}
.uc-dt{font-family:var(--mono);font-size:11px;color:var(--mut);margin-left:auto}
.br-rounds{display:flex;gap:1px;overflow-x:auto;padding-bottom:8px}
.br-round{min-width:155px;flex-shrink:0}
.br-lbl{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--mut);font-weight:700;padding:6px 8px;border-bottom:1px solid var(--bdr);margin-bottom:5px}
.br-game{background:var(--surf);border:1px solid var(--bdr);border-radius:3px;margin-bottom:5px;overflow:hidden}
.br-team{display:flex;align-items:center;gap:5px;padding:5px 8px;font-size:11px;font-weight:600;border-bottom:1px solid var(--bdr)}
.br-team:last-child{border-bottom:none}
.br-seed{font-family:var(--mono);font-size:10px;color:var(--mut);min-width:16px}
.br-score{font-family:var(--mono);font-size:11px;margin-left:auto;color:var(--mut)}
.br-team.win{background:rgba(255,92,53,.07)}
.br-team.win .br-score{color:var(--txt)}
/* ── NEW BRACKET LAYOUT ──────────────────────────────── */
.brk-region{margin-bottom:1.25rem}
.brk-region-hdr{display:flex;align-items:center;gap:10px;padding:.65rem 1rem;border-radius:4px 4px 0 0;margin-bottom:0}
.brk-region-name{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;flex:1}
.brk-region-rec{font-family:var(--mono);font-size:11px;opacity:.75}
.brk-rounds{display:flex;flex-direction:column;gap:0}
.brk-round-row{border:1px solid var(--bdr);border-top:none;background:var(--surf)}
.brk-round-row:last-child{border-radius:0 0 4px 4px}
.brk-round-hdr{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;border-bottom:1px solid var(--bdr);cursor:pointer;user-select:none}
.brk-round-hdr:hover{background:var(--surf2)}
.brk-round-title{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--mut)}
.brk-round-pills{display:flex;align-items:center;gap:6px}
.brk-prog{font-family:var(--mono);font-size:10px;color:var(--mut)}
.brk-games{display:flex;flex-direction:column;gap:5px;padding:8px 10px}
.brk-rounds-toggle.collapsed .brk-games{display:none}
.brk-game{background:var(--surf2);border:1px solid var(--bdr);border-radius:4px;overflow:hidden;cursor:pointer;transition:border-color .12s}
.brk-game:hover{border-color:var(--bdr2)}
.brk-team{display:flex;align-items:center;gap:7px;padding:7px 10px;font-size:12px;font-weight:600;border-bottom:1px solid var(--bdr)}
.brk-team:last-child{border-bottom:none}
.brk-team.win{background:rgba(255,92,53,.08);color:var(--txt)}
.brk-team.lose{opacity:.55}
.brk-team-seed{font-family:var(--mono);font-size:10px;color:var(--mut);min-width:18px;flex-shrink:0}
.brk-team-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brk-team-score{font-family:var(--mono);font-size:12px;font-weight:700;flex-shrink:0}
.brk-team.win .brk-team-score{color:var(--acc3)}
.brk-team.win .brk-team-seed{color:var(--acc)}
.brk-game-status{padding:3px 10px;font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:var(--mut);border-top:1px solid var(--bdr);display:flex;justify-content:space-between}
/* final four / champ: full width, centered */
.brk-final{margin-bottom:1.25rem}
.brk-final-hdr{display:flex;align-items:center;gap:10px;padding:.65rem 1rem;border-radius:4px 4px 0 0;background:linear-gradient(135deg,rgba(255,92,53,.15),rgba(255,209,102,.1))}
.brk-final-name{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--acc2)}
.brk-final-body{border:1px solid var(--bdr2);border-top:none;border-radius:0 0 4px 4px;padding:10px;background:var(--surf);display:flex;flex-direction:column;gap:8px}
.sdiv{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--acc2);font-weight:700;padding:14px 10px 5px;border-top:1px solid var(--bdr);margin-top:6px}
.sdiv:first-child{border-top:none;margin-top:0;padding-top:0}
.loading{display:flex;align-items:center;justify-content:center;padding:3rem;flex-direction:column;gap:.75rem;color:var(--mut);font-size:12px;letter-spacing:.04em}
.spin{width:26px;height:26px;border:2px solid var(--bdr2);border-top-color:var(--acc);border-radius:50%;animation:sp .8s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.eb{background:rgba(255,92,53,.07);border:1px solid rgba(255,92,53,.25);border-radius:3px;padding:1.25rem;color:var(--acc);font-size:12px;margin:1.5rem 0;font-family:var(--mono);line-height:1.6}
.empty{padding:3rem;text-align:center;color:var(--mut);font-size:12px;letter-spacing:.04em}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--bdr2);border-radius:3px}
/* ── MOBILE-FIRST GLOBAL ─────────────────────────────── */
@media(max-width:639px){
  .hub-back-link{display:none}
  input[type=text]{width:100%;font-size:16px}
  select{width:100%;font-size:16px}
  .crow{gap:5px}
  #modal{padding:0}
  .mbox{padding:.9rem;border-radius:0;min-height:100%}
  .mclose{top:10px;right:12px;font-size:28px;padding:4px}
  .two-col{grid-template-columns:1fr!important}
  .tgrid{grid-template-columns:1fr}
  .cmp-row{flex-direction:column;align-items:stretch}
  .cmp-row select{min-width:0}
  .uc-dt{margin-left:0!important;width:100%}
  .cs{padding:.85rem .75rem}
  .gt td{padding:8px 7px;font-size:12px}
  .gt th{padding:6px 7px;font-size:9px}
  .sbx{font-size:13px}
  .tcard{padding:.7rem .8rem}
  .tc-name{font-size:12px}
}
/* ── SCHEDULE TABLE: scrollable on mobile ─────────────── */
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* ── UPSETS: filter strip ────────────────────────────── */
.filter-strip{display:flex;gap:5px;overflow-x:auto;scrollbar-width:none;padding-bottom:3px;margin-bottom:.85rem}
.filter-strip::-webkit-scrollbar{display:none}
/* ── TEAMS: sort strip + status badges ───────────────── */
.teams-sort-strip{display:flex;gap:5px;overflow-x:auto;scrollbar-width:none;padding-bottom:3px}
.teams-sort-strip::-webkit-scrollbar{display:none}
.t-badge{font-size:9px;font-family:var(--mono);letter-spacing:.04em;border-radius:2px;padding:1px 5px;border:1px solid;white-space:nowrap}
.t-badge-live{color:var(--acc3);background:rgba(6,214,160,.12);border-color:rgba(6,214,160,.4);animation:pulse 1.5s infinite}
.t-badge-active{color:var(--acc2);background:rgba(255,209,102,.08);border-color:rgba(255,209,102,.3)}
.t-badge-out{color:var(--mut);background:var(--surf3);border-color:var(--bdr)}
/* sortable th used on teams + players tables */
.pl-th{cursor:pointer;white-space:nowrap}
.pl-th:hover{color:var(--txt)}
/* ── COMPARE: vertical stack on mobile ───────────────── */
.cmp-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:1rem}
/* ── PLAYERS: view tabs + sort/search row ────────────── */
.pl-view-tabs{display:flex;border-bottom:2px solid var(--bdr);gap:0}
.pl-tab{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:9px 18px;color:var(--mut);cursor:pointer;transition:color .15s,border-color .15s}
.pl-tab:hover{color:var(--txt)}
.pl-tab.active{color:var(--acc);border-bottom-color:var(--acc)}
.pl-ctrl-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:.75rem;align-items:center}
.pl-ctrl-row select{flex-shrink:0}
.pl-ctrl-row input{min-width:140px}
/* ── ANALYSIS: two-col grid responsive ───────────────── */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
@media(max-width:599px){.two-col{grid-template-columns:1fr}}
/* ── TOUCH TARGETS ───────────────────────────────────── */
/* .cb and .dbtn padding already set in base styles above */
/* ── TEAMS: auto-fill on wider screens ───────────────── */
@media(min-width:480px){.tgrid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}
/* ── BOX SCORE: data table (always visible) ──────────── */
/* ── RADAR: smaller labels on mobile ─────────────────── */
@media(max-width:499px){
  .radar-wrap canvas{font-size:9px!important}
}
/* ── CHART Y-AXIS: truncate long names ───────────────── */
/* handled in JS via Chart.js ticks callback */
/* ── MODAL SCORELINE: tighter logo on mobile, stack on very narrow ── */
@media(max-width:499px){
  .tsb{padding:.9rem .6rem;gap:4px}
  .tsb-logo-wrap{width:48px;height:48px}
  .tsb-logo{width:46px;height:46px}
  .tsb-logo-fb{width:40px;height:40px;inset:4px}
  .tsb-name{font-size:13px}
  .tsb-score{font-size:32px}
  .vs{min-width:76px;padding:.75rem .5rem}
}
@media(max-width:360px){
  .scoreline{grid-template-columns:1fr}
  .tsb{flex-direction:row;justify-content:center;gap:12px;border-bottom:1px solid var(--bdr);padding:.75rem}
  .tsb-logo-wrap{margin-bottom:0;flex-shrink:0}
  .vs{border-left:none;border-right:none;border-top:1px solid var(--bdr);border-bottom:1px solid var(--bdr);flex-direction:row;flex-wrap:wrap;min-width:0;padding:.6rem}
}
/* ── UPSET CARDS: tighter on mobile ─────────────────── */
@media(max-width:479px){
  .uc{padding:.7rem}
  .uc-mu{font-size:13px}
}
/* ── EXPORT CARDS ────────────────────────────────────── */
.export-card{background:var(--surf);border:1px solid var(--bdr);border-radius:4px;padding:1rem 1.1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.export-card-info{flex:1;min-width:0}
.export-card-title{font-size:14px;font-weight:700;margin-bottom:3px}
.export-card-desc{font-size:12px;color:var(--mut);line-height:1.5}
.export-dl-btn{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.04em;padding:8px 16px;border:1px solid var(--acc3);background:rgba(6,214,160,.07);color:var(--acc3);border-radius:3px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .12s}
.export-dl-btn:hover{background:rgba(6,214,160,.14)}
.export-dl-btn:active{transform:scale(.97)}
.br-scroll-hint{display:none;font-size:11px;color:var(--mut);font-family:var(--mono);margin-bottom:.5rem}
@media(max-width:599px){.br-scroll-hint{display:block}}
/* ── GAME GROUPS ─────────────────────────────────────── */
.gg{margin-bottom:.75rem}
.gg-hdr{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--surf2);border:1px solid var(--bdr2);border-radius:4px;cursor:pointer;user-select:none;transition:background .12s}
.gg-hdr:hover{background:var(--surf3)}
.gg-title{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;flex:1}
.gg-count{font-family:var(--mono);font-size:11px;color:var(--mut)}
.gg-arrow{font-size:11px;color:var(--mut);transition:transform .2s;flex-shrink:0}
.gg.collapsed .gg-arrow{transform:rotate(-90deg)}
.gg-body{display:flex;flex-direction:column;gap:5px;margin-top:5px}
.gg.collapsed .gg-body{display:none}
/* ── SCORES GAME CARDS (split matchup layout) ─────────── */
.sg{background:var(--surf);border:1px solid var(--bdr);border-radius:10px;display:grid;grid-template-columns:1fr auto 1fr;overflow:hidden;cursor:pointer;transition:border-color .14s,background .14s,box-shadow .14s}
.sg:hover{border-color:var(--bdr2);background:var(--surf2);box-shadow:0 2px 10px rgba(0,0,0,.22)}
.sg:active{opacity:.88}
.sg.sg-live{border-color:rgba(6,214,160,.35);border-width:2px}
.sg.sg-live:hover{border-color:rgba(6,214,160,.6)}
.sg.sg-upcoming{border-color:rgba(255,209,102,.18)}
.sg.sg-upcoming:hover{border-color:rgba(255,209,102,.38);background:rgba(255,209,102,.025)}
.sg.sg-tbd{opacity:.72}
.sg.sg-tbd:hover{opacity:1}
/* Team halves */
.sg-half{display:flex;align-items:center;gap:10px;padding:.65rem .9rem;min-width:0;transition:background .14s}
.sg-half-away{flex-direction:row}
.sg-half-home{flex-direction:row-reverse}
/* Winner/loser half highlight for completed games */
.sg-half.sg-half-win{background:rgba(255,92,53,.07)}
.sg-half.sg-half-lose{opacity:.55}
/* Live leader half — green highlight */
.sg-half.sg-half-lead{background:rgba(6,214,160,.09)}
/* Logo */
.sg-logo-wrap{width:38px;height:38px;flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:center}
.sg-logo{width:38px;height:38px;object-fit:contain;display:block}
.sg-logo-fb{font-size:8px;font-weight:800;letter-spacing:.02em;color:var(--mut);background:var(--surf3);border:1px solid var(--bdr2);border-radius:5px;width:34px;height:34px;display:none;align-items:center;justify-content:center;text-align:center;line-height:1.2;padding:2px;position:absolute;inset:2px}
.sg-logo-wrap.sg-logo-none .sg-logo{display:none}
.sg-logo-wrap.sg-logo-none .sg-logo-fb{display:flex}
/* Team info */
.sg-teaminfo{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.sg-teaminfo-home{align-items:flex-end;text-align:right}
.sg-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}
.sg-name.dim{color:var(--mut);font-weight:400}
.sg-seed{font-size:10px;color:var(--mut);font-family:var(--mono)}
/* Center divider */
.sg-mid{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem .8rem;border-left:1px solid var(--bdr);border-right:1px solid var(--bdr);min-width:90px;gap:4px;text-align:center;flex-shrink:0}
/* Score pair */
.sg-sc-row{display:flex;align-items:baseline;gap:4px;line-height:1}
.sg-sc{font-family:var(--mono);font-size:22px;font-weight:800;color:var(--mut);min-width:26px;text-align:center;line-height:1}
.sg-sc.win{color:var(--txt)}
.sg-sc.lead{color:var(--acc3)}
.sg-sc-sep{font-family:var(--mono);font-size:15px;color:var(--bdr2);flex-shrink:0;padding:0 1px}
/* Center info area */
.sg-mid-info{display:flex;flex-direction:column;align-items:center;gap:3px}
.sg-vs-lbl{font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--mut)}
.sg-clk{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--acc3)}
.sg-per{font-size:9px;color:var(--mut);font-family:var(--mono)}
.sg-time{font-family:var(--mono);font-size:11px;color:var(--txt)}
.sg-meta{font-size:9px;color:var(--mut);font-family:var(--mono);white-space:nowrap}
.sg-upset{font-size:9px;color:var(--acc);background:rgba(255,92,53,.1);border:1px solid rgba(255,92,53,.3);border-radius:3px;padding:1px 5px}
/* Group section headers */
.sg-hdr{font-size:9px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--mut);padding:.65rem .1rem .4rem;display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none}
.sg-hdr.sg-live-hdr{color:var(--acc3)}
.sg-hdr-count{font-family:var(--mono);font-size:10px;color:var(--mut);margin-left:2px}
.sg-hdr-arrow{margin-left:auto;font-size:10px;color:var(--mut);transition:transform .2s}
.gg.collapsed .sg-hdr-arrow{transform:rotate(-90deg)}
/* Responsive: tighter on small screens */
@media(max-width:479px){
  .sg-half{padding:.5rem .6rem;gap:7px}
  .sg-logo-wrap{width:32px;height:32px}
  .sg-logo{width:32px;height:32px}
  .sg-logo-fb{width:28px;height:28px;font-size:7px;inset:2px}
  .sg-mid{min-width:80px;padding:.5rem .55rem}
  .sg-sc{font-size:18px;min-width:22px}
  .sg-name{font-size:12px}
}
@media(max-width:359px){
  .sg-logo-wrap{display:none}
  .sg-half{gap:5px;padding:.45rem .5rem}
}
/* ── SORT ROW ────────────────────────────────────────── */
.sort-row{display:flex;align-items:center;gap:8px;margin-bottom:.75rem}
.sort-row input[type=text]{flex:1;min-width:0}
.mc{transition:border-color .12s,transform .1s}
.mc:hover{border-color:var(--acc);transform:translateY(-1px)}
.mc.mc-active{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}
#metaDrawer{overflow:hidden;max-height:0;transition:max-height .35s ease;margin-bottom:0}
#metaDrawer.open{max-height:2000px;margin-bottom:1rem}
.drw{background:var(--surf);border:1px solid var(--acc);border-radius:4px;padding:1rem}
.drw-head{font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--acc);margin-bottom:.75rem;display:flex;align-items:center;justify-content:space-between}
.drw-close{background:none;border:none;color:var(--acc);cursor:pointer;font-size:18px;line-height:1;padding:2px 4px}
.drw-close:hover{color:var(--txt)}
.dg{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--bdr);cursor:pointer}
.dg:last-child{border-bottom:none}
.dg:hover .dg-tn{opacity:.75}
.dg-teams{flex:1;min-width:0}
.dg-tn{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dg-tn.dim{color:var(--mut);font-weight:400}
.dg-sc{font-family:var(--mono);font-size:14px;font-weight:500;text-align:right;flex-shrink:0;min-width:40px}
.dg-aux{font-family:var(--mono);font-size:11px;color:var(--mut);flex-shrink:0}
.stat-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--bdr);font-size:13px}
.stat-row:last-child{border-bottom:none}
.stat-lbl{color:var(--txt);font-size:12px}
.stat-val{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--acc)}
/* ── BRACKET REDESIGN ────────────────────────────────── */
/* Progress bar */
.brk-progress-wrap{background:var(--surf);border:1px solid var(--bdr);border-radius:4px;padding:.75rem 1rem;margin-bottom:1rem}
.brk-progress-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}
.brk-progress-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.brk-progress-count{font-family:var(--mono);font-size:11px;color:var(--mut)}
.brk-progress-track{height:3px;background:var(--surf3);border-radius:2px;overflow:hidden;margin-bottom:.35rem}
.brk-progress-fill{height:100%;background:var(--bdr2);border-radius:2px;transition:width .5s}
.brk-progress-pct{font-family:var(--mono);font-size:10px;color:var(--mut);text-align:right}
.brk-hint{font-size:11px;color:var(--mut);font-family:var(--mono);margin-bottom:1rem}
/* Round sections */
.brk-round-section{margin-bottom:.75rem;border-radius:8px;overflow:hidden;border:1px solid var(--bdr)}
.brk-round-section.brk-champ{border-color:rgba(255,209,102,.35)}
.brk-round-hdr{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--surf);cursor:pointer;user-select:none;gap:8px;transition:background .12s}
.brk-round-hdr:hover{background:var(--surf2)}
.brk-round-section.brk-champ .brk-round-hdr{background:linear-gradient(135deg,rgba(255,92,53,.12),rgba(255,209,102,.08))}
.brk-round-hdr-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
.brk-round-hdr-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.brk-round-name{font-size:13px;font-weight:800;letter-spacing:.04em;white-space:nowrap}
.brk-round-live{font-family:var(--mono);font-size:10px;color:var(--acc3);letter-spacing:.06em;animation:pulse 1.5s infinite}
.brk-round-done{font-size:11px;color:var(--acc3)}
.brk-round-prog{font-family:var(--mono);font-size:11px;color:var(--mut)}
.brk-arr{font-size:11px;color:var(--mut);transition:transform .2s;flex-shrink:0}
/* Collapsible body */
.brk-round-body{border-top:1px solid var(--bdr);padding:.6rem .75rem;display:flex;flex-direction:column;gap:.5rem}
.brk-round-body.brk-collapsed{display:none}
/* Region grouping within a round */
.brk-region-grp{display:flex;flex-direction:column;gap:.35rem}
.brk-region-label{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 0 3px 6px;border-left:2px solid;margin-top:.15rem}
.brk-region-prog{font-family:var(--mono);font-size:10px;color:var(--mut);font-weight:400;text-transform:none;letter-spacing:0;margin-left:auto}
.brk-live-dot{color:var(--acc3);font-size:8px;animation:pulse 1.5s infinite}
.brk-region-games{display:flex;flex-direction:column;gap:4px;padding-left:6px;border-left:2px solid var(--bdr);margin-bottom:.35rem}
/* Final four / championship: no region grouping, just cards */
.brk-round-section.brk-champ .brk-round-body{gap:5px}

/* ── AUTH NAV BUTTON ─────────────────────────────────────────────────── */
#authNavBtn{position:relative;display:flex;align-items:center}
.auth-sign-in-btn{font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:none;border:1px solid var(--bdr2);border-radius:3px;padding:0 10px;height:28px;cursor:pointer;color:var(--mut);transition:color .15s,border-color .15s;white-space:nowrap;display:flex;align-items:center}
.auth-sign-in-btn:hover{color:var(--acc);border-color:var(--acc)}
.auth-user-pill{display:flex;align-items:center;gap:6px;background:none;border:1px solid var(--bdr2);border-radius:20px;padding:2px 8px 2px 4px;cursor:pointer;height:32px;transition:border-color .15s}
.auth-user-pill:hover{border-color:var(--bdr2)}
.auth-user-name{font-family:var(--sans);font-size:11px;font-weight:700;color:var(--txt);max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:639px){.auth-user-name{display:none}}
.auth-caret{font-size:9px;color:var(--mut);flex-shrink:0}
.auth-avatar-initials{display:flex;align-items:center;justify-content:center;background:var(--acc);color:#fff;font-family:var(--sans);font-weight:800;letter-spacing:.03em;border-radius:50%;flex-shrink:0}
/* User dropdown menu */
.auth-user-menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--surf2);border:1px solid var(--bdr2);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.5);min-width:180px;z-index:300;padding:8px 0}
.auth-menu-name{font-size:13px;font-weight:700;color:var(--txt);padding:6px 14px 2px}
.auth-menu-email{font-size:11px;color:var(--mut);font-family:var(--mono);padding:0 14px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.auth-menu-sep{height:1px;background:var(--bdr);margin:4px 0}
.auth-menu-item{display:block;width:100%;text-align:left;background:none;border:none;padding:9px 14px;font-family:var(--sans);font-size:12px;font-weight:600;cursor:pointer;color:var(--txt);transition:background .1s}
.auth-menu-item:hover{background:var(--surf3)}
.auth-menu-logout{color:var(--acc)}
.auth-menu-theme{color:var(--mut)}

/* ── AUTH MODAL ──────────────────────────────────────────────────────── */
.auth-modal-overlay{position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;padding:1rem;backdrop-filter:blur(4px)}
.auth-modal-box{background:var(--surf);border:1px solid var(--bdr2);border-radius:12px;width:100%;max-width:380px;padding:1.5rem;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.7)}
.auth-modal-close{position:absolute;top:.75rem;right:.75rem;background:none;border:none;font-size:20px;color:var(--mut);cursor:pointer;line-height:1;padding:2px 6px;border-radius:4px;transition:color .12s}
.auth-modal-close:hover{color:var(--txt)}
.auth-tabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);margin-bottom:1.25rem}
.auth-tab{background:none;border:none;border-bottom:2px solid transparent;padding:.6rem .9rem;font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);cursor:pointer;margin-bottom:-1px;transition:color .15s,border-color .15s}
.auth-tab:hover{color:var(--txt)}
.auth-tab.active{color:var(--acc);border-bottom-color:var(--acc)}
.auth-label{display:flex;flex-direction:column;gap:4px;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);margin-bottom:.75rem}
.auth-input{background:var(--surf2);border:1px solid var(--bdr2);border-radius:5px;padding:.55rem .75rem;font-family:var(--mono);font-size:16px;color:var(--txt);outline:none;transition:border-color .15s;width:100%}
.auth-input:focus{border-color:var(--acc)}
.auth-form-error{background:rgba(255,92,53,.12);border:1px solid rgba(255,92,53,.3);border-radius:5px;padding:.5rem .75rem;font-size:12px;color:#ff8a72;font-family:var(--mono);margin-bottom:.75rem}
.auth-submit-btn{width:100%;background:var(--acc);color:#fff;border:none;border-radius:5px;padding:.7rem 1rem;font-family:var(--sans);font-size:13px;font-weight:800;letter-spacing:.04em;cursor:pointer;transition:opacity .15s;margin-top:.25rem}
.auth-submit-btn:hover{opacity:.88}
.auth-submit-btn:disabled{opacity:.5;cursor:not-allowed}
.auth-divider{display:flex;align-items:center;gap:.75rem;margin:.9rem 0;color:var(--mut);font-size:11px}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--bdr)}
.auth-google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.6rem;background:var(--surf2);border:1px solid var(--bdr2);border-radius:5px;padding:.6rem 1rem;font-family:var(--sans);font-size:13px;font-weight:700;color:var(--txt);cursor:pointer;transition:border-color .15s,background .15s}
.auth-google-btn:hover{border-color:var(--bdr2);background:var(--surf3)}
.auth-success-msg{text-align:center;font-size:13px;color:var(--acc3);padding:.5rem 0;font-family:var(--mono)}

/* ── GAME INTERACTIONS (VOTES + COMMENTS) ────────────────────────────── */
.gi-wrapper{margin-top:.25rem}
.gi-section{margin-top:.5rem}
.gi-loading{font-size:12px;color:var(--mut);font-family:var(--mono);padding:.5rem 0}
.gi-empty{font-size:12px;color:var(--mut);font-family:var(--mono);padding:.35rem 0}
/* Vote bar — two-segment (away left / home right) */
.gi-votes-area{padding:.25rem 0}
.gi-vote-bar-wrap{margin-bottom:.65rem}
.gi-vote-bar{height:10px;border-radius:5px;overflow:hidden;display:flex}
.gi-vote-bar-empty .gi-vote-seg{background:var(--surf3)!important;opacity:1!important}
.gi-vote-seg{height:100%;transition:flex .45s ease}
.gi-vote-seg-away{background:var(--acc4);opacity:.45}
.gi-vote-seg-home{background:var(--acc);opacity:.45}
.gi-vote-seg-mine{opacity:1!important}
.gi-vote-pcts{display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--mut);margin-top:5px}
.gi-vote-pct-team{display:flex;align-items:center;gap:4px}
.gi-vote-pct-mine{color:var(--txt);font-weight:700}
.gi-vote-pct-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}
.gi-dot-away{background:var(--acc4)}
.gi-dot-home{background:var(--acc)}
.gi-vote-count{font-family:var(--mono);font-size:10px;color:var(--mut)}
/* Vote buttons */
.gi-vote-btns{display:flex;gap:.5rem;margin-bottom:.4rem}
.gi-vote-btn{flex:1;background:var(--surf2);border:1px solid var(--bdr2);border-radius:5px;padding:.5rem .5rem;font-family:var(--sans);font-size:11px;font-weight:700;color:var(--mut);cursor:pointer;transition:all .15s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gi-vote-btn-away:hover{border-color:var(--acc4);color:var(--acc4)}
.gi-vote-btn-home:hover{border-color:var(--acc);color:var(--acc)}
.gi-vote-btn.gi-vote-mine{border-width:2px;font-weight:800}
.gi-vote-btn-away.gi-vote-mine{border-color:var(--acc4);color:var(--acc4);background:rgba(74,191,212,.1)}
.gi-vote-btn-home.gi-vote-mine{border-color:var(--acc);color:var(--acc);background:rgba(255,92,53,.1)}
/* My pick status + undo */
.gi-vote-status{font-size:11px;color:var(--mut);font-family:var(--mono);display:flex;align-items:center;gap:.5rem;margin-top:.25rem}
.gi-vote-status strong{color:var(--txt)}
.gi-vote-undo{background:none;border:none;font-family:var(--mono);font-size:10px;color:var(--mut);cursor:pointer;text-decoration:underline;padding:0;transition:color .12s}
.gi-vote-undo:hover{color:var(--acc)}
.gi-vote-prompt{font-size:10px;color:var(--mut);font-family:var(--mono);margin-top:.2rem;text-align:center}
/* Inline confirm row */
.gi-vote-confirm{display:none;align-items:center;gap:.5rem;background:var(--surf3);border:1px solid var(--bdr2);border-radius:6px;padding:.5rem .75rem;margin-top:.5rem;flex-wrap:wrap}
.gi-confirm-msg{font-size:12px;color:var(--txt);flex:1;min-width:0}
.gi-confirm-yes{background:var(--acc3);color:#fff;border:none;border-radius:4px;padding:.35rem .75rem;font-family:var(--sans);font-size:11px;font-weight:800;cursor:pointer;transition:opacity .12s;flex-shrink:0}
.gi-confirm-yes:hover{opacity:.85}
.gi-confirm-remove{background:var(--acc)!important}
.gi-confirm-no{background:none;border:1px solid var(--bdr2);border-radius:4px;padding:.35rem .65rem;font-family:var(--sans);font-size:11px;font-weight:700;color:var(--mut);cursor:pointer;transition:border-color .12s,color .12s;flex-shrink:0}
.gi-confirm-no:hover{border-color:var(--mut);color:var(--txt)}
/* Comments */
.gi-count{font-size:10px;color:var(--mut);font-family:var(--mono);font-weight:400;margin-left:4px}
.gi-comments-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem;max-height:320px;overflow-y:auto}
.gi-comment{background:var(--surf2);border-radius:6px;padding:.6rem .75rem}
.gi-comment-meta{display:flex;align-items:center;gap:.4rem;margin-bottom:.3rem}
.gi-comment-name{font-size:11px;font-weight:800;color:var(--txt)}
.gi-comment-time{font-size:10px;color:var(--mut);font-family:var(--mono);margin-left:2px}
.gi-comment-del{background:none;border:none;color:var(--mut);font-size:14px;cursor:pointer;margin-left:auto;padding:0 2px;line-height:1;transition:color .1s}
.gi-comment-del:hover{color:var(--acc)}
.gi-comment-body{font-size:13px;color:var(--txt);line-height:1.5;word-break:break-word}
/* Comment form */
.gi-comment-input-row{display:flex;gap:.5rem;align-items:flex-end}
.gi-comment-input{flex:1;background:var(--surf2);border:1px solid var(--bdr2);border-radius:5px;padding:.5rem .65rem;font-family:var(--sans);font-size:16px;color:var(--txt);resize:none;outline:none;transition:border-color .15s}
.gi-comment-input:focus{border-color:var(--acc)}
.gi-comment-submit{background:var(--acc);color:#fff;border:none;border-radius:5px;padding:.5rem .85rem;font-family:var(--sans);font-size:12px;font-weight:800;cursor:pointer;transition:opacity .15s;flex-shrink:0;align-self:flex-end}
.gi-comment-submit:hover{opacity:.85}
.gi-comment-submit:disabled{opacity:.4;cursor:not-allowed}
.gi-comment-hint{font-size:10px;color:var(--mut);font-family:var(--mono);margin-top:.35rem}
/* Login prompt */
.gi-login-prompt{display:flex;justify-content:center;padding:.5rem 0}
.gi-login-prompt-btn{background:none;border:1px solid var(--bdr2);border-radius:5px;padding:.55rem 1.1rem;font-family:var(--sans);font-size:12px;font-weight:700;color:var(--mut);cursor:pointer;transition:border-color .15s,color .15s;letter-spacing:.04em}
.gi-login-prompt-btn:hover{border-color:var(--acc);color:var(--acc)}
/* Light theme overrides */
[data-theme="light"] .auth-modal-box{box-shadow:0 8px 32px rgba(0,0,0,.15)}
[data-theme="light"] .auth-user-menu{box-shadow:0 4px 16px rgba(0,0,0,.12)}
[data-theme="light"] .auth-input{background:var(--surf2)}
[data-theme="light"] .gi-comment{background:var(--surf2)}
[data-theme="light"] .gi-comment-input{background:var(--surf2)}

/* ── FORGOT PASSWORD UI ──────────────────────────────── */
.auth-forgot-link-wrap{text-align:right;margin-top:-.25rem;margin-bottom:.5rem}
.auth-forgot-link{background:none;border:none;font-family:var(--mono);font-size:11px;color:var(--mut);cursor:pointer;padding:0;transition:color .12s}
.auth-forgot-link:hover{color:var(--acc)}
.auth-back-wrap{margin-bottom:1rem}
.auth-back-btn{background:none;border:none;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--mut);cursor:pointer;padding:0;transition:color .12s}
.auth-back-btn:hover{color:var(--txt)}
.auth-forgot-desc{font-size:12px;color:var(--mut);line-height:1.6;margin-bottom:1rem;font-family:var(--mono)}
.auth-forgot-success{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:.5rem 0;text-align:center;font-size:13px;color:var(--txt);line-height:1.6}
.auth-forgot-success-icon{width:40px;height:40px;border-radius:50%;background:rgba(6,214,160,.15);border:1px solid rgba(6,214,160,.4);color:var(--acc3);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700}
.auth-reset-link{font-family:var(--mono);font-size:11px;color:var(--acc4);word-break:break-all;text-decoration:underline;cursor:pointer}

/* ── PROFILE & SETTINGS PAGE ─────────────────────────── */
.prof-layout{max-width:560px;display:flex;flex-direction:column;gap:1rem}
/* Unauthenticated state */
.prof-unauthenticated{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem;gap:1rem;text-align:center}
.prof-unauth-icon{font-size:40px;opacity:.4}
.prof-unauth-msg{font-size:14px;color:var(--mut)}
/* Profile card */
.prof-card{background:var(--surf);border:1px solid var(--bdr);border-radius:10px;padding:1.25rem}
.prof-card-header{display:flex;align-items:flex-start;gap:1rem}
.prof-avatar-wrap{flex-shrink:0;position:relative}
.prof-avatar-img{border-radius:50%;object-fit:cover}
.prof-avatar-initials{display:flex;align-items:center;justify-content:center;background:var(--acc);color:#fff;font-family:var(--sans);font-weight:800;letter-spacing:.03em;border-radius:50%;flex-shrink:0}
.prof-card-info{flex:1;min-width:0;padding-top:2px}
.prof-display-name{font-size:20px;font-weight:800;color:var(--txt);margin-bottom:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prof-email{font-family:var(--mono);font-size:12px;color:var(--mut);margin-bottom:.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prof-meta-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.prof-provider-badge{font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--mut);background:var(--surf2);border:1px solid var(--bdr);border-radius:3px;padding:2px 7px}
.prof-fav-badge{font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--acc2);background:rgba(255,209,102,.1);border:1px solid rgba(255,209,102,.3);border-radius:3px;padding:2px 7px}
/* Sections */
.prof-section{background:var(--surf);border:1px solid var(--bdr);border-radius:10px;padding:1.25rem}
.prof-section-title{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-bottom:.9rem}
.prof-section-desc{font-size:12px;color:var(--mut);line-height:1.6;margin-bottom:.9rem;font-family:var(--mono)}
.prof-section-desc-muted{opacity:.7}
.prof-section-danger{border-color:rgba(255,92,53,.2)}
/* Form elements */
.prof-label{display:flex;flex-direction:column;gap:4px;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);margin-bottom:.75rem}
.prof-label-opt{font-size:9px;text-transform:none;letter-spacing:0;font-weight:400;color:var(--mut);opacity:.7}
.prof-input{background:var(--surf2);border:1px solid var(--bdr2);border-radius:5px;padding:.55rem .75rem;font-family:var(--mono);font-size:16px;color:var(--txt);outline:none;transition:border-color .15s;width:100%}
.prof-input:focus{border-color:var(--acc)}
.prof-select{background:var(--surf2);border:1px solid var(--bdr2);border-radius:5px;padding:.55rem .75rem;font-family:var(--mono);font-size:16px;color:var(--txt);outline:none;cursor:pointer;flex:1;min-width:0}
.prof-select:focus{border-color:var(--acc)}
/* Buttons */
.prof-btn{font-family:var(--sans);font-size:12px;font-weight:800;letter-spacing:.04em;padding:.6rem 1.25rem;border-radius:5px;border:none;cursor:pointer;transition:opacity .15s;white-space:nowrap;flex-shrink:0}
.prof-btn:disabled{opacity:.5;cursor:not-allowed}
.prof-btn-primary{background:var(--acc);color:#fff}
.prof-btn-primary:hover{opacity:.85}
.prof-btn-danger{background:none;border:1px solid rgba(255,92,53,.35);color:var(--acc)}
.prof-btn-danger:hover{background:rgba(255,92,53,.08)}
/* Favorite team row */
.prof-fav-row{display:flex;gap:.6rem;align-items:center;margin-bottom:.4rem}
.prof-fav-current{font-family:var(--mono);font-size:11px;color:var(--mut);margin-top:.25rem}
/* Messages */
.prof-msg{border-radius:5px;padding:.5rem .75rem;font-size:12px;font-family:var(--mono);margin-bottom:.75rem}
.prof-msg-error{background:rgba(255,92,53,.1);border:1px solid rgba(255,92,53,.3);color:#ff8a72}
.prof-msg-success{background:rgba(6,214,160,.1);border:1px solid rgba(6,214,160,.3);color:var(--acc3)}
/* Teams view: favorite star */
.team-fav-star{color:var(--acc2);font-size:11px;flex-shrink:0;margin-left:3px}
.tcard.is-fav{border-color:rgba(255,209,102,.35);background:linear-gradient(135deg,var(--surf),rgba(255,209,102,.04))}
/* Light theme */
[data-theme="light"] .prof-card{box-shadow:none}
[data-theme="light"] .prof-section{box-shadow:none}
[data-theme="light"] .prof-input{background:var(--surf2)}
[data-theme="light"] .prof-select{background:var(--surf2)}

/* ── MULTI-SPORT HUB HOMEPAGE ───────────────────────────────────────────── */
.app-home-header{position:static}
.app-home-top{height:64px}
.sport-hub-intro{max-width:760px;margin-bottom:1.2rem}
.sport-hub-kicker{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--acc4);margin-bottom:.45rem}
.sport-hub-intro h1{font-size:clamp(28px,5vw,42px);line-height:1.05;margin-bottom:.65rem}
.sport-hub-intro p{font-size:14px;color:var(--mut);line-height:1.6;max-width:62ch}
.sport-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.85rem}
.sport-card{display:block;text-align:left;width:100%;padding:1rem;border-radius:8px;background:var(--surf);border:1px solid var(--bdr2);color:var(--txt);text-decoration:none;transition:transform .14s,border-color .14s,box-shadow .14s}
.sport-card h2{font-size:16px;margin:.5rem 0 .4rem}
.sport-card p{font-size:12px;line-height:1.6;color:var(--mut)}
.sport-card:not(:disabled):hover{transform:translateY(-2px);border-color:var(--acc);box-shadow:0 10px 24px rgba(0,0,0,.25)}
.sport-card:disabled{opacity:.65;cursor:not-allowed;filter:grayscale(.55);background:var(--surf2);border-color:var(--bdr)}
.sport-card-active{border-color:rgba(255,92,53,.45);background:linear-gradient(180deg,rgba(255,92,53,.12),rgba(255,92,53,.05))}
.sport-card-tag{display:inline-flex;padding:3px 7px;border-radius:20px;font-size:10px;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;background:rgba(6,214,160,.12);color:var(--acc3);border:1px solid rgba(6,214,160,.32)}
.sport-card-tag-soon{background:rgba(255,209,102,.1);color:var(--acc2);border-color:rgba(255,209,102,.3)}
.hub-back-link{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);text-decoration:none;border:1px solid var(--bdr2);padding:4px 7px;border-radius:3px}
.hub-back-link:hover{color:var(--txt);border-color:var(--acc)}

/* ── MLB PAGE ───────────────────────────────────────────────────────────── */
.mlb-nav{margin-bottom:1rem}
.mlb-hero-card{background:linear-gradient(135deg,rgba(255,92,53,.16),rgba(74,191,212,.12));border:1px solid var(--bdr2);border-radius:10px;padding:1rem 1.1rem;margin-bottom:1rem}
.mlb-hero-card h1,.mlb-hero-card h2{margin:.25rem 0 .5rem}
.mlb-hero-card p{margin:0;color:var(--mut);line-height:1.55}
.mlb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.mlb-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.mlb-head{margin:.3rem 0 1rem;font-size:1.1rem;letter-spacing:.01em}
.stat-card{background:var(--surf2);border:1px solid var(--bdr);border-radius:8px;padding:.85rem}
.stat-card h3{margin:0 0 .45rem;font-size:.9rem;color:var(--txt)}
.stat-card p{margin:0;color:var(--mut);font-size:.88rem;line-height:1.5}
.stat-card ol{margin:0;padding-left:1.1rem;display:grid;gap:.3rem;color:var(--txt);font-size:.85rem}
.stat-card li{display:flex;justify-content:space-between;gap:.75rem}
.stat-card li span{color:var(--mut);font-family:var(--mono);font-size:.78rem}
@media(max-width:980px){.mlb-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.mlb-grid,.mlb-grid-2{grid-template-columns:1fr}}
