@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');

:root{--bg:#05080d;--panel:#0c121a;--panel2:#111a24;--panel3:#151f2a;--line:#202c38;--line2:#2b3a48;--text:#f5f8fa;--muted:#8e9ba8;--green:#44f09a;--green2:#24c97d;--red:#ff6b7d;--amber:#f2c45c;--shadow:0 18px 60px rgba(0,0,0,.28)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:radial-gradient(circle at 76% -15%,rgba(44,188,115,.16),transparent 34%),linear-gradient(180deg,#080d13 0,var(--bg) 42%);color:var(--text);font-family:Manrope,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}
button,select,input{font:inherit}
.topbar{height:76px;padding:0 max(4vw,24px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.07);background:rgba(5,9,14,.84);position:sticky;top:0;z-index:10;backdrop-filter:blur(18px)}
.brand{display:flex;gap:13px;align-items:center;color:inherit;text-decoration:none}
.brand>span:last-child{display:grid;gap:2px}
.brand strong{font-size:17px;letter-spacing:-.3px}
.brand small{color:var(--muted);font-size:10px;letter-spacing:.45px;text-transform:uppercase}
.logo{width:43px;height:43px;border:1px solid rgba(68,240,154,.35);background:linear-gradient(145deg,#163525,#0c2117);color:var(--green);border-radius:12px;display:grid;place-items:center;font-weight:800;box-shadow:inset 0 0 18px rgba(68,240,154,.08)}
.status{display:flex;align-items:center;gap:9px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:rgba(13,20,28,.75);color:var(--muted);font-size:11px;font-weight:600}
.dot{width:7px;height:7px;background:var(--amber);border-radius:50%;box-shadow:0 0 12px currentColor}.status.live .dot{background:var(--green)}.status.error .dot{background:var(--red)}
main{width:min(1320px,calc(100% - 40px));margin:0 auto 80px}
.hero{min-height:310px;display:flex;align-items:center;justify-content:space-between;gap:48px;padding:42px 2px 30px}
.eyebrow{margin:0 0 12px;color:var(--green);font-size:10px;letter-spacing:2.1px;font-weight:800}
.hero h1{max-width:820px;font-size:clamp(40px,5.8vw,72px);line-height:.99;letter-spacing:-4px;margin:0;font-weight:800}
.hero h1 span{background:linear-gradient(90deg,var(--green),#9dffc9);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-copy{max-width:620px;margin:20px 0 0;color:var(--muted);font-size:14px;line-height:1.75}
.refresh-card{min-width:190px;padding:22px;border:1px solid var(--line2);border-radius:18px;background:linear-gradient(145deg,rgba(22,41,31,.95),rgba(12,18,26,.95));display:grid;gap:6px;box-shadow:var(--shadow)}
.refresh-card span{color:var(--muted);font-size:9px;letter-spacing:1.2px;text-transform:uppercase}
.refresh-card strong{font-size:36px;line-height:1.2;color:var(--green)}
.refresh-card button{margin-top:10px;border:1px solid rgba(68,240,154,.3);border-radius:9px;background:rgba(68,240,154,.07);color:var(--green);padding:10px;cursor:pointer;font-size:11px;font-weight:700;transition:.2s}
.refresh-card button:hover{background:rgba(68,240,154,.14);transform:translateY(-1px)}
.controls{display:grid;grid-template-columns:140px 150px minmax(260px,1fr) 210px;gap:14px;padding:18px;border:1px solid var(--line);border-radius:16px;background:rgba(12,18,26,.94);box-shadow:0 12px 40px rgba(0,0,0,.18)}
label{font-size:9px;text-transform:uppercase;letter-spacing:1.15px;color:var(--muted);font-weight:700}
select,input{display:block;width:100%;height:44px;margin-top:7px;padding:0 13px;border:1px solid var(--line);border-radius:9px;background:#070c12;color:var(--text);outline:none;transition:.2s}
select:focus,input:focus{border-color:rgba(68,240,154,.58);box-shadow:0 0 0 3px rgba(68,240,154,.08)}
.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:14px 0 22px}
.summary article{padding:18px 20px;background:linear-gradient(145deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:13px}
.summary span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:1.15px;font-weight:700}
.summary strong{display:block;margin-top:7px;font-size:20px;letter-spacing:-.5px}
.board{border:1px solid var(--line);border-radius:19px;background:rgba(11,17,24,.95);overflow:hidden;box-shadow:var(--shadow)}
.board-head{padding:23px 26px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(20,30,40,.7),transparent)}
.board h2{margin:0;font-size:21px;letter-spacing:-.5px}
.legend{display:flex;gap:18px;color:var(--muted);font-size:10px}
.legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}.up{background:var(--green)}.down{background:var(--red)}
.games{display:grid;gap:12px;padding:14px;background:#070b10}
.game{display:grid;grid-template-columns:minmax(260px,1.75fr) repeat(3,minmax(155px,1fr)) 125px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,#101923,#0c131b);overflow:hidden;transition:border-color .2s,transform .2s,box-shadow .2s}
.game:hover{border-color:#344656;transform:translateY(-1px);box-shadow:0 12px 30px rgba(0,0,0,.22)}
.matchup,.market,.movement{min-width:0;padding:21px 19px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}
.matchup{background:rgba(255,255,255,.014)}.movement{border-right:0}
.kickoff{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.85px;font-weight:700}
.teams{margin-top:13px;display:grid;gap:9px}
.team{display:flex;justify-content:space-between;gap:12px;font-size:14px;font-weight:750}
.team small{color:var(--muted);font-weight:600}
.market span,.movement span{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:1px;font-weight:700}
.market strong,.movement strong{margin-top:8px;font-size:13px;line-height:1.45;letter-spacing:-.15px}
.market small{margin-top:7px;color:#71808e;font-size:9px;line-height:1.55}
.change{color:var(--green)!important}.change.negative{color:var(--red)!important}
.pill{align-self:flex-start;margin-top:8px;padding:4px 8px;border:1px solid var(--line);border-radius:999px;background:#151f29;color:var(--muted);font-size:9px}
.notice,.empty,.loading{padding:48px;text-align:center;color:var(--muted)}
.notice{margin:14px;padding:13px 18px;text-align:left;border:1px solid #58451d;border-radius:10px;background:#2a210f;color:#f3cd72}
.spinner{width:27px;height:27px;margin:auto;border:3px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}
.hidden{display:none}@keyframes spin{to{transform:rotate(360deg)}}
footer{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;border-top:1px solid var(--line);padding:30px 20px;color:var(--muted);font-size:10px}footer strong{color:var(--green)}
@media(max-width:1050px){.game{grid-template-columns:minmax(240px,1.5fr) repeat(2,1fr)}.matchup{grid-row:span 2}.movement{border-top:1px solid var(--line)}}
@media(max-width:800px){main{width:min(100% - 28px,1320px)}.hero{min-height:260px}.hero h1{letter-spacing:-2.5px}.refresh-card{display:none}.controls{grid-template-columns:1fr 1fr}.search{grid-column:1/-1}.summary{grid-template-columns:1fr 1fr}.game{grid-template-columns:1fr 1fr}.matchup{grid-column:1/-1;grid-row:auto}.market,.movement{border-top:1px solid var(--line)}}
@media(max-width:520px){main{width:min(100% - 18px,1320px)}.topbar{height:68px;padding:0 14px}.brand small{display:none}.status{padding:7px 9px}.status span:last-child{max-width:105px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero{min-height:230px;padding-top:32px}.hero h1{font-size:39px;letter-spacing:-2px}.hero-copy{font-size:12px}.controls{grid-template-columns:1fr;padding:14px}.search{grid-column:auto}.summary{gap:9px}.summary article{padding:14px}.summary strong{font-size:17px}.board-head{padding:19px}.legend{display:none}.games{padding:9px;gap:9px}.game{grid-template-columns:1fr}.matchup,.market,.movement{padding:17px;border-right:0}.market,.movement{border-top:1px solid var(--line)}}

.side-nav,.side-label{display:none}.game{cursor:pointer}.game:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
@media(min-width:901px){body{padding-left:230px}.topbar{position:fixed;inset:0 auto 0 0;width:230px;height:100vh;padding:16px 12px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;border-right:1px solid var(--line);border-bottom:0;background:#0b1118}.brand{padding:0 4px 17px}.side-nav{display:grid;gap:7px;margin-top:12px}.side-nav a{display:flex;gap:11px;align-items:center;padding:12px;border:1px solid transparent;border-radius:9px;color:var(--muted);text-decoration:none;font-size:12px}.side-nav a:hover,.side-nav a.active{color:var(--green);border-color:#2c6849;background:#11291c}.side-label{display:block;margin-top:auto;padding:18px 8px 10px;border-top:1px solid var(--line);color:#657281;font-size:8px;font-weight:800;letter-spacing:1px}.status{background:#101821}.hero{min-height:300px}.controls,.summary,.board{width:min(1320px,calc(100% - 42px));margin-left:auto;margin-right:auto}}
@media(max-width:900px){.side-nav,.side-label{display:none}}
.games{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:12px;padding:14px}.game{display:grid;grid-template-columns:repeat(3,1fr);min-height:0;border:1px solid var(--line);border-radius:14px;margin:0;overflow:hidden}.matchup{grid-column:1/-1;min-height:160px;padding:19px 18px;border:0;border-top:3px solid var(--green);text-align:center}.kickoff{align-self:stretch;text-align:left}.teams{grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin-top:22px}.teams:after{content:"@";grid-column:2;grid-row:1;color:var(--muted)}.team{display:grid;justify-content:center;text-align:center;font-size:18px}.team:first-child{grid-column:1;grid-row:1}.team:last-child{grid-column:3;grid-row:1}.team-logo{width:44px;height:44px;margin:0 auto 10px;object-fit:contain}.team-logo.fallback{display:grid;place-items:center;border-radius:50%;background:#14251c;color:var(--green);font-size:11px}.team small{margin-top:8px}.market{min-height:116px;padding:16px 12px;border-top:1px solid var(--line);text-align:center;justify-content:flex-start}.market strong{font-size:14px}.market small{font-size:8px;line-height:12}.movement{grid-column:1/-1;min-height:auto;padding:11px 16px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;border-top:1px solid var(--line);background:#0b1219}.movement strong,.movement .pill{margin:0}.probability{grid-column:1/-1!important;display:grid!important;grid-template-columns:auto 1fr auto!important;align-items:center;gap:9px!important;padding:3px 0!important;border:0!important;background:transparent!important}.probability i{height:4px;overflow:hidden;border-radius:99px;background:#25313d}.probability b{display:block;height:100%;margin-left:auto;border-radius:99px;background:var(--green)}
.game-dialog{width:min(1120px,calc(100% - 28px));max-height:92vh;padding:0;border:1px solid var(--line);border-radius:18px;background:#091018;color:var(--text);box-shadow:0 30px 90px rgba(0,0,0,.65)}.game-dialog::backdrop{background:rgba(2,6,10,.82);backdrop-filter:blur(5px)}.dialog-shell{position:relative}.dialog-close{position:sticky;float:right;top:14px;margin:14px 14px 0 0;z-index:2;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#131d27;color:var(--text);font-size:22px;cursor:pointer}.detail-body{padding:32px}.detail-head{text-align:center;padding:8px 40px 24px}.detail-head h2{margin:0;font-size:clamp(30px,5vw,50px)}.detail-head p{color:var(--muted)}.score-projection{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:30px;border:1px solid var(--line);border-top:3px solid var(--green);border-radius:14px;background:linear-gradient(145deg,#111b25,#0c141c);text-align:center}.score-projection>div{display:grid;justify-items:center}.score-projection h3{margin:8px 0}.score-projection strong{font-size:54px}.score-projection small{color:var(--muted)}.score-projection>span{color:var(--muted)}.detail-probability{grid-column:1/-1!important;display:flex!important;width:100%;height:7px;overflow:hidden;border-radius:99px;background:#26313d}.detail-probability i:first-child{background:#66788a}.detail-probability i:last-child{background:var(--green)}.detail-section{margin-top:18px;padding:22px;border:1px solid var(--line);border-radius:14px;background:#0e161f}.section-title h3{margin:0 0 16px;font-size:20px}.comparison{border:1px solid var(--line);border-radius:10px;overflow:hidden}.comparison>div{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line);text-align:center}.comparison>div:last-child{border-bottom:0}.comparison-head{background:#131e28}.comparison span,.method-note{color:var(--muted);font-size:10px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:10px}th{color:var(--green);font-size:9px;text-transform:uppercase}.player-team{margin-top:18px}.player-group{margin-top:12px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.player-group h4{margin:0;padding:12px;background:#131e28}.detail-empty,.detail-loading{padding:50px;text-align:center;color:var(--muted)}
@media(max-width:700px){.detail-body{padding:16px}.score-projection{padding:20px 12px;gap:10px}.score-projection strong{font-size:40px}.score-projection h3{font-size:14px}.detail-section{padding:14px}.comparison>div{padding:9px 7px}.games{grid-template-columns:1fr}}

.game-dialog{width:100vw;max-width:none;height:100vh;max-height:none;border:0;border-radius:0}.dialog-shell{min-height:100%;background:radial-gradient(circle at 78% -10%,#143224 0,transparent 28%),var(--bg)}.detail-body{width:min(1220px,calc(100% - 40px));margin:auto;padding:30px 0 70px}.dialog-close{position:fixed;right:18px;top:10px}.detail-head{position:relative}.back-link{position:absolute;left:0;top:10px;color:var(--green);font-size:11px;text-decoration:none}.score-projection .team-logo{width:64px;height:64px}.projection-summary{grid-column:1/-1!important;width:100%;display:grid!important;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.projection-summary div{padding:15px}.projection-summary span{display:block;color:var(--muted);font-size:8px;text-transform:uppercase}.projection-summary b{display:block;margin-top:5px;color:var(--green)}.detail-prob-labels{grid-column:1/-1!important;width:100%;display:grid!important;grid-template-columns:1fr auto 1fr!important;text-align:left}.detail-prob-labels b:last-child{text-align:right}.detail-prob-labels span{color:var(--muted);font-size:8px}.keys-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.keys-grid>div{display:grid;grid-template-columns:1fr auto;gap:6px;padding:15px;border:1px solid var(--line);border-left:3px solid var(--green);border-radius:9px;background:#111a23}.keys-grid span{grid-column:1/-1;color:var(--muted);font-size:9px}.keys-grid b{font-size:11px}.keys-grid strong{color:var(--green)}.ratings{display:grid;gap:16px;margin-top:22px}.rating-label{display:grid;grid-template-columns:1fr auto 1fr;font-size:9px}.rating-label span{text-align:center;color:var(--muted)}.rating-label b:last-child{text-align:right}.dual-bars{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:7px}.dual-bars i{height:6px;border-radius:99px;background:#24303b;overflow:hidden}.dual-bars i:first-child b{margin-left:auto;background:#7c8d9e}.dual-bars b{display:block;height:100%;border-radius:99px;background:var(--green)}.odds-table th:first-child{position:sticky;left:0;background:#131e28}.odds-table td:first-child{position:sticky;left:0;background:#0e161f;color:var(--green);font-weight:700}
@media(max-width:700px){.detail-body{width:calc(100% - 18px);padding-top:55px}.detail-head{padding-left:0;padding-right:0}.back-link{top:-34px}.projection-summary{grid-template-columns:1fr}.keys-grid{grid-template-columns:1fr}.score-projection .team-logo{width:48px;height:48px}}

/* Full-page Matchup Room */
.game-dialog[open]{inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;padding:0;border:0;border-radius:0;background:#f3f5f7;color:#15202c;overflow-y:auto}
.game-dialog::backdrop{background:#f3f5f7}
.game-dialog .dialog-shell{min-height:100dvh;background:#f3f5f7;color:#15202c}
.game-dialog .detail-body{width:min(1320px,calc(100% - 48px));margin:0 auto;padding:58px 0 90px}
.game-dialog .dialog-close{position:fixed;z-index:20;right:22px;top:16px;float:none;margin:0;width:40px;height:40px;border:1px solid #d7dde4;border-radius:9px;background:#fff;color:#26384c;box-shadow:0 4px 14px rgba(20,40,60,.08)}
.game-dialog .detail-head{padding:0 60px 24px;text-align:left}
.game-dialog .detail-head .eyebrow,.game-dialog .section-title .eyebrow{color:#0879e6}
.game-dialog .detail-head h2{font-family:'Barlow Condensed',Inter,sans-serif;font-size:48px;letter-spacing:-.6px;color:#111820}
.game-dialog .detail-head p,.game-dialog .method-note{color:#677789}
.game-dialog .back-link{left:0;top:-35px;color:#0879e6;font-weight:700}
.game-dialog .score-projection{padding:34px;border:1px solid #d8dde3;border-top:4px solid #0879e6;border-radius:14px;background:#fff;color:#121923;box-shadow:0 6px 22px rgba(20,40,60,.05)}
.game-dialog .score-projection h3{font-family:'Barlow Condensed',Inter,sans-serif;font-size:28px}
.game-dialog .score-projection strong{font-family:'Barlow Condensed',Inter,sans-serif;font-size:64px;color:#111820}
.game-dialog .score-projection small,.game-dialog .projection-summary span,.game-dialog .detail-prob-labels span{color:#68798a}
.game-dialog .projection-summary{border-color:#e0e4e8}
.game-dialog .projection-summary b{color:#0768c6}
.game-dialog .detail-probability{background:#e2e7ec}
.game-dialog .detail-probability i:first-child{background:#8798aa}
.game-dialog .detail-probability i:last-child{background:#0879e6}
.game-dialog .detail-section{margin-top:20px;padding:24px;border:1px solid #d9dee4;border-radius:13px;background:#fff;color:#17212c;box-shadow:0 5px 18px rgba(20,40,60,.035)}
.game-dialog .section-title h3{font-family:'Barlow Condensed',Inter,sans-serif;font-size:27px;color:#111820}
.game-dialog .keys-grid>div{border-color:#dce1e6;border-left-color:#0879e6;background:#fff}
.game-dialog .keys-grid span,.game-dialog .comparison span,.game-dialog .rating-label span{color:#6b7c8d}
.game-dialog .keys-grid strong,.game-dialog table th{color:#0872da}
.game-dialog .comparison,.game-dialog .player-group{border-color:#dce1e6}
.game-dialog .comparison>div,.game-dialog th,.game-dialog td{border-color:#e1e5e9}
.game-dialog .comparison-head,.game-dialog .player-group h4{background:#f0f3f6;color:#17212c}
.game-dialog .dual-bars i{background:#e1e6eb}
.game-dialog .dual-bars i:first-child b{background:#8d9cac}
.game-dialog .dual-bars b{background:#0879e6}
.game-dialog .odds-table th:first-child{background:#f0f3f6}
.game-dialog .odds-table td:first-child{background:#fff;color:#0872da}
.game-dialog .detail-empty,.game-dialog .detail-loading{color:#677789}
@media(max-width:700px){.game-dialog .detail-body{width:calc(100% - 18px);padding-top:62px}.game-dialog .detail-head{padding:0 8px 20px}.game-dialog .detail-head h2{font-size:36px}.game-dialog .score-projection{padding:22px 12px}.game-dialog .score-projection strong{font-size:46px}.game-dialog .detail-section{padding:14px}.game-dialog .dialog-close{right:10px;top:10px}}

/* Team accents, graded picks, and light/dark modes */
.theme-toggle{margin:12px 0;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#111a23;color:var(--text);cursor:pointer;font-size:10px;font-weight:700}.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.game{border-top:3px solid var(--team-color,#3cff8f)}.game .matchup{border-top:0}.result-badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:6px;font-size:8px;font-weight:800;letter-spacing:.3px}.result-badge.covered{background:#143f32;color:#43dfa4}.result-badge.missed{background:#482d32;color:#ff7a86}.result-badge.push,.result-badge.pending{background:#293541;color:#aebbc7}.pick-results{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pick-result{position:relative;padding:17px;border:1px solid var(--line);border-left:4px solid var(--team-color,#3cff8f);border-radius:9px;background:#111a23}.pick-result h4{margin:0 90px 6px 0;font-size:17px}.pick-result p{margin:0;color:var(--muted);font-size:9px}.pick-result .result-badge{position:absolute;right:13px;top:13px}.section-subtitle{margin:20px 0 10px;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:1px;text-transform:uppercase}
.game-dialog .score-projection,.game-dialog .model-pick-card{border-top-color:var(--team-color,#0879e6)}.game-dialog .detail-probability i:last-child,.game-dialog .dual-bars b{background:var(--team-color,#0879e6)}.game-dialog .keys-grid>div,.game-dialog .pick-result{border-left-color:var(--team-color,#0879e6)}.game-dialog .keys-grid strong,.game-dialog .projection-summary b,.game-dialog table th,.game-dialog .odds-table td:first-child,.game-dialog .detail-head .eyebrow,.game-dialog .section-title .eyebrow{color:var(--team-color,#0879e6)}
.detail-tabs{position:sticky;top:0;z-index:8;display:flex;gap:8px;margin:0 0 22px;padding:10px 0;background:inherit;overflow-x:auto}.detail-tabs a{flex:none;padding:10px 13px;border:1px solid #d8dee5;border-radius:8px;background:#fff;color:#314255;text-decoration:none;font-size:10px;font-weight:700}.scoring-list{display:grid}.scoring-list>div{display:grid;grid-template-columns:100px 180px 1fr auto;gap:12px;align-items:center;padding:12px 4px;border-bottom:1px solid #e1e5e9}.scoring-list span{color:#718195;font-size:9px}.scoring-list b{font-size:10px}.scoring-list p{margin:0;font-size:10px}.scoring-list strong{font-size:13px}
body.theme-light{--bg:#f3f5f7;--panel:#fff;--panel2:#f8fafb;--line:#d9dfe5;--text:#151c24;--muted:#68788a;--green:#0879e6;background:#f3f5f7;color:#151c24}
body.theme-light .topbar{background:#eef1f5;border-color:#d7dde3}body.theme-light .logo{background:#e6f2ff;border-color:#9dcbf6;color:#0872da}body.theme-light .side-nav a{color:#526174}body.theme-light .side-nav a:hover,body.theme-light .side-nav a.active{background:#dcecff;border-color:#8fc4f7;color:#0768c6}body.theme-light .theme-toggle,body.theme-light .status{background:#fff;border-color:#d8dee4;color:#44576a}body.theme-light .hero{background-color:#fff;background-image:repeating-linear-gradient(116deg,transparent 0,transparent 23px,rgba(85,108,132,.12) 24px,transparent 25px);border-color:#d9dfe5}body.theme-light .hero h1{color:#121820}body.theme-light .hero h1 span,body.theme-light .eyebrow,body.theme-light footer strong{color:#0879e6}body.theme-light .refresh-card,body.theme-light .controls,body.theme-light .summary article,body.theme-light .board{background:#fff;border-color:#d9dfe5;box-shadow:0 7px 24px rgba(25,45,65,.05)}body.theme-light select,body.theme-light input{background:#f8fafb;border-color:#d9dfe5;color:#17212c}body.theme-light .summary strong{color:#0768c6}body.theme-light .board-head{background:#fff}body.theme-light .games{background:#edf1f4}body.theme-light .game{background:#fff;border-color:#d9dfe5;color:#17212c}body.theme-light .matchup,body.theme-light .market,body.theme-light .movement{border-color:#e2e6ea}body.theme-light .movement{background:#f8fafb}body.theme-light .market strong,body.theme-light .movement strong,body.theme-light .team{color:#17212c}body.theme-light .pill{background:#e7f2fe;color:#0768c6}body.theme-light .model-strip{background:#f3f8fd;border-color:#d8e5f2}body.theme-light .model-strip div{background:#fff;border-color:#dbe5ee}body.theme-light .model-strip strong{color:#0768c6}body.theme-light .final-strip{background:#f8fafb}body.theme-light .final-strip div{background:#fff;border-color:#dce2e7}body.theme-light footer{background:#fff;border-color:#d9dfe5}
body.theme-dark .game-dialog[open]{background:#171b20;color:#f4f7f9}body.theme-dark .game-dialog .dialog-shell{background:#171b20;color:#f4f7f9}body.theme-dark .game-dialog .detail-section,body.theme-dark .game-dialog .score-projection{background:#242a31;border-color:#3a424b;color:#f4f7f9}body.theme-dark .game-dialog .detail-head h2,body.theme-dark .game-dialog .section-title h3,body.theme-dark .game-dialog .score-projection h3,body.theme-dark .game-dialog .score-projection strong{color:#f4f7f9}body.theme-dark .game-dialog .comparison,body.theme-dark .game-dialog .comparison>div,body.theme-dark .game-dialog th,body.theme-dark .game-dialog td{border-color:#3a424b}body.theme-dark .game-dialog .comparison-head,body.theme-dark .game-dialog .player-group h4,body.theme-dark .game-dialog .keys-grid>div,body.theme-dark .game-dialog .pick-result{background:#20262d;border-color:#3a424b}body.theme-dark .game-dialog .detail-tabs a{background:#242a31;border-color:#3a424b;color:#e5edf4}body.theme-dark .game-dialog .odds-table th:first-child,body.theme-dark .game-dialog .odds-table td:first-child{background:#242a31}body.theme-dark .game-dialog .scoring-list>div{border-color:#3a424b}
@media(max-width:700px){.pick-results{grid-template-columns:1fr}.scoring-list>div{grid-template-columns:70px 1fr auto}.scoring-list p{grid-column:1/-1}}

/* Compact browse cards: detailed analysis stays inside Matchup Room */
.games{grid-template-columns:repeat(auto-fill,minmax(275px,1fr))}
.games .model-strip,.games .final-strip,.games .movement{display:none}
.games .game{grid-template-columns:repeat(3,1fr)}
.games .matchup{min-height:122px;padding:14px 15px}
.games .teams{margin-top:12px;gap:8px}
.games .team-logo{width:32px;height:32px;margin-bottom:7px}
.games .team{font-size:14px}
.games .team small{font-size:9px}
.games .market{min-height:82px;padding:12px 8px}
.games .market strong{font-size:11px}
.games .market small{font-size:7px;line-height:1.35;max-height:29px;overflow:hidden}
.games .kickoff{font-size:8px}
@media(max-width:620px){.games{grid-template-columns:1fr}.games .market{display:flex}}

/* Readable home-team colors inside Our Picks vs. Market */
.game-dialog .model-pick-card h3,
.game-dialog .model-pick-card .pick-result h4,
.game-dialog .model-pick-card .pick-result strong,
.game-dialog .model-pick-card .section-subtitle,
.game-dialog .model-pick-card .keys-grid b,
.game-dialog .model-pick-card .keys-grid strong{color:var(--team-ink,var(--team-color,#3cff8f))!important}
.game-dialog .model-pick-card .pick-result p,
.game-dialog .model-pick-card .keys-grid span{color:#718195!important}
body.theme-dark .game-dialog .model-pick-card .pick-result p,
body.theme-dark .game-dialog .model-pick-card .keys-grid span{color:#b4c0cb!important}
body.theme-dark .game-dialog .model-pick-card .pick-result{background:#20262d!important}

/* Extra-high contrast for model numbers */
body.theme-dark .game-dialog .model-pick-card{background:#2a313a!important;border-color:#4d5864!important}
body.theme-dark .game-dialog .model-pick-card .pick-result,
body.theme-dark .game-dialog .model-pick-card .keys-grid>div{background:#343d47!important;border-color:#596572!important}
body.theme-dark .game-dialog .model-pick-card h3,
body.theme-dark .game-dialog .model-pick-card .pick-result h4,
body.theme-dark .game-dialog .model-pick-card .pick-result strong,
body.theme-dark .game-dialog .model-pick-card .keys-grid b,
body.theme-dark .game-dialog .model-pick-card .keys-grid strong{color:#fff!important;color:color-mix(in srgb,var(--team-color,#3cff8f) 38%,white 62%)!important;text-shadow:0 1px 1px rgba(0,0,0,.35)}
body.theme-dark .game-dialog .model-pick-card .pick-result p,
body.theme-dark .game-dialog .model-pick-card .keys-grid span,
body.theme-dark .game-dialog .model-pick-card .section-subtitle{color:#d7e0e8!important}

/* Black-and-blue dark mode */
body.theme-dark{--bg:#05080d;--panel:#0b1119;--panel2:#101923;--line:#223043;--text:#f2f7fc;--muted:#8291a3;--green:#168cff;--blue:#168cff;background:radial-gradient(circle at 78% -12%,rgba(22,140,255,.18),transparent 34%),#05080d;color:#f2f7fc}
body.theme-dark .topbar{background:#070b11;border-color:#1d2a3a}
body.theme-dark .logo{border-color:#245f94;background:linear-gradient(145deg,#102c47,#081a2b);color:#39a4ff}
body.theme-dark .side-nav a:hover,body.theme-dark .side-nav a.active{color:#5ab5ff;border-color:#235f92;background:#0d2740}
body.theme-dark .theme-toggle,body.theme-dark .status{background:#0c141e;border-color:#26364a;color:#b3c0ce}
body.theme-dark .hero{background-color:#070c12;background-image:repeating-linear-gradient(116deg,transparent 0,transparent 23px,rgba(62,137,204,.11) 24px,transparent 25px)}
body.theme-dark .hero h1 span,body.theme-dark .eyebrow,body.theme-dark footer strong{color:#299cff}
body.theme-dark .refresh-card{background:linear-gradient(145deg,#0d2841,#0a121b);border-color:#25496b}
body.theme-dark .refresh-card strong,body.theme-dark .refresh-card button{color:#4fb2ff}
body.theme-dark .refresh-card button{background:#0c2740;border-color:#285e89}
body.theme-dark .controls,body.theme-dark .summary article,body.theme-dark .board,body.theme-dark .game{background:#0b1119;border-color:#223043}
body.theme-dark select,body.theme-dark input{background:#060b11;border-color:#223043}
body.theme-dark .summary strong{color:#299cff}
body.theme-dark .games{background:#060a0f}
body.theme-dark .movement{background:#080f17}
body.theme-dark .pill{background:#0d2942;color:#55b5ff}
body.theme-dark .model-strip{background:linear-gradient(90deg,#0c2942,#09131d);border-color:#204869}
body.theme-dark .model-strip div{border-color:#1e4261;background:#0b1824}
body.theme-dark .model-strip strong{color:#4db1ff}
body.theme-dark footer{background:#070b11;border-color:#1d2a3a}

/* League switcher */
.league-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;border:1px solid var(--line);border-radius:11px;background:var(--panel);margin:4px 0 8px}
.league-tab{border:1px solid transparent;border-radius:8px;padding:10px 8px;background:transparent;color:var(--muted);font-size:10px;font-weight:800;cursor:pointer;transition:.2s}
.league-tab:hover{color:var(--text);background:rgba(8,121,230,.08)}
.league-tab.active{color:#fff;border-color:#0879e6;background:#0879e6;box-shadow:0 6px 18px rgba(8,121,230,.24)}
body.theme-light .league-tabs{background:#f1f5f9;border-color:#d8e1ea}
body.theme-light .league-tab{color:#536273}
body.theme-light .league-tab.active{color:#fff}
@media(max-width:900px){.league-tabs{display:flex;margin-left:auto}.league-tab{padding:8px 10px}.league-tab:first-child{font-size:0}.league-tab:first-child:after{content:"CFB";font-size:10px}}
@media(max-width:520px){.league-tabs{margin-left:6px}.league-tab{padding:7px 8px}}

/* Sharper model output */
.sharp-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0 20px}
.sharp-metrics>div{padding:14px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--team-color,#0879e6) 7%,var(--panel2))}
.sharp-metrics span,.sharp-metrics small{display:block;color:var(--muted);font-size:9px}
.sharp-metrics span{text-transform:uppercase;letter-spacing:.8px;font-weight:800}
.sharp-metrics b{display:block;margin:7px 0 4px;color:var(--team-ink,var(--team-color,#58a6ff));font-size:15px}
@media(max-width:760px){.sharp-metrics{grid-template-columns:1fr 1fr}}

/* Gridiron Edge brand mark and unobtrusive background refresh */
.logo{padding:3px;background:transparent;border-color:rgba(8,121,230,.38);overflow:hidden}
.logo img{display:block;width:100%;height:100%;object-fit:contain}
.refresh-card{display:none!important}
.hero{justify-content:flex-start}

/* Verified model record */
.performance{width:min(1320px,calc(100% - 42px));margin:0 auto 22px;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:var(--shadow)}
.performance-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:16px}
.performance-head h2{margin:0;font-size:22px}
.performance-head>p{max-width:520px;margin:0;color:var(--muted);font-size:10px;text-align:right;line-height:1.6}
.record-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.record-grid article{padding:18px;border:1px solid var(--line);border-radius:13px;background:var(--panel2)}
.record-grid span,.record-grid small{display:block;color:var(--muted);font-size:9px}
.record-grid span{text-transform:uppercase;letter-spacing:1px;font-weight:800}
.record-grid strong{display:block;margin-top:10px;font-size:25px;letter-spacing:-1px}
.record-grid b{display:block;margin:4px 0;color:#0879e6;font-size:13px}
body.theme-dark .record-grid b{color:#58a6ff}
@media(max-width:700px){.performance{width:100%;padding:15px}.performance-head{display:block}.performance-head>p{margin-top:8px;text-align:left}.record-grid{grid-template-columns:1fr}.record-grid article{padding:14px}}


/* Matchup Room live/final score hierarchy */
.score-projection{position:relative}
.score-state-label{
  grid-column:1 / -1;
  justify-self:center;
  margin:0 0 .35rem;
  padding:.42rem .8rem;
  border:1px solid color-mix(in srgb,var(--team-color) 48%,transparent);
  border-radius:999px;
  color:var(--team-ink);
  background:color-mix(in srgb,var(--team-color) 10%,var(--panel));
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.12em;
}
.score-state-label.live::before{
  content:"";
  display:inline-block;
  width:.48rem;
  height:.48rem;
  margin-right:.42rem;
  border-radius:50%;
  background:#ef4444;
  box-shadow:0 0 0 .25rem rgb(239 68 68 / 16%);
  animation:live-score-pulse 1.4s ease-in-out infinite;
}
.prediction-comparison{
  grid-column:1 / -1;
  display:grid;
  gap:.25rem;
  margin:.25rem 0 .65rem;
  padding:.9rem 1rem;
  border:1px solid color-mix(in srgb,var(--team-color) 32%,var(--line));
  border-left:4px solid var(--team-color);
  border-radius:12px;
  background:color-mix(in srgb,var(--team-color) 7%,var(--panel));
  text-align:left;
}
.prediction-comparison span{color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.1em}
.prediction-comparison strong{color:var(--team-ink);font-size:1rem}
.prediction-comparison small{color:var(--muted)}
@keyframes live-score-pulse{50%{opacity:.45;transform:scale(.84)}}
@media (max-width:640px){
  .score-state-label,.prediction-comparison{grid-column:1 / -1}
  .prediction-comparison{margin-top:.5rem}
}


/* Compact live game feed inside matchup cards */
.live-game-tracker{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:minmax(180px,.8fr) minmax(240px,1.2fr) minmax(220px,1fr);
  align-items:center;
  gap:.85rem;
  margin:.15rem 0;
  padding:.72rem .85rem;
  border:1px solid color-mix(in srgb,var(--team-color) 38%,var(--line));
  border-radius:12px;
  background:color-mix(in srgb,var(--team-color) 6%,var(--panel));
}
.live-tracker-head{display:grid;gap:.25rem;min-width:0}
.live-tracker-head span{color:#ef4444;font-size:.68rem;font-weight:900;letter-spacing:.08em}
.live-tracker-head span i{
  display:inline-block;width:.45rem;height:.45rem;margin-right:.35rem;border-radius:50%;
  background:#ef4444;box-shadow:0 0 0 .22rem rgb(239 68 68 / 14%);
  animation:live-score-pulse 1.4s ease-in-out infinite;
}
.live-tracker-head strong{overflow:hidden;color:var(--text);font-size:.85rem;text-overflow:ellipsis;white-space:nowrap}
.mini-field{
  position:relative;height:38px;overflow:hidden;border:2px solid rgb(255 255 255 / 80%);border-radius:7px;
  background:repeating-linear-gradient(90deg,#16803a 0,#16803a calc(10% - 1px),rgb(255 255 255 / 24%) calc(10% - 1px),rgb(255 255 255 / 24%) 10%);
  box-shadow:inset 0 0 0 2px rgb(0 0 0 / 8%);
}
.mini-field::after{content:"50";position:absolute;left:50%;top:50%;color:rgb(255 255 255 / 72%);font-size:.58rem;font-weight:900;transform:translate(-50%,-50%) rotate(-90deg)}
.mini-field .football{
  position:absolute;top:50%;z-index:2;color:#6b3518;font-size:1rem;line-height:1;
  filter:drop-shadow(0 1px 1px rgb(0 0 0 / 45%));transform:translate(-50%,-50%) rotate(45deg);
  transition:left .35s ease;
}
.live-situation{display:grid;gap:.2rem;min-width:0}
.live-situation b{color:var(--team-ink);font-size:.8rem}
.live-situation small{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:.72rem;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}
@media(max-width:900px){.live-game-tracker{grid-template-columns:1fr 1fr}.live-situation{grid-column:1/-1}}
@media(max-width:620px){.live-game-tracker{grid-template-columns:1fr}.live-situation{grid-column:auto}}


/* Model v4 context chips */
.model-factors{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.75rem}
.model-factors span{padding:.38rem .58rem;border:1px solid color-mix(in srgb,var(--team-color) 26%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--team-color) 7%,var(--panel));color:var(--text);font-size:.7rem;font-weight:700}
