:root{
  --bg:#07111f;
  --panel:#0b1727;
  --panel-2:#0f1d30;
  --panel-3:#13243a;
  --line:#21354f;
  --line-soft:#172a41;
  --text:#edf5ff;
  --muted:#8ea2bb;
  --muted-2:#637991;
  --cyan:#16b8ff;
  --cyan-soft:#0e6b9a;
  --green:#32d59b;
  --amber:#f4c761;
  --red:#ff6b7a;
  --purple:#a68bff;
  --white:#fff;
  --shadow:0 22px 50px rgba(0,0,0,.28);
  --radius:18px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{min-height:100vh}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
.is-hidden{display:none!important}
.mobile-only{display:none!important}

/* AUTH */
.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(420px,560px) 1fr;background:radial-gradient(circle at 18% 10%,rgba(22,184,255,.1),transparent 32%),var(--bg)}
.auth-panel{padding:56px 62px;display:flex;flex-direction:column;justify-content:center;max-width:560px;width:100%;margin:0 auto}
.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:46px;color:var(--text)}
.auth-brand img,.brand-lockup img{width:40px;height:40px;object-fit:contain}
.auth-brand div,.brand-lockup div{display:flex;flex-direction:column;line-height:1.15}
.auth-brand span,.brand-lockup span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.14em}
.auth-brand strong,.brand-lockup strong{font-size:18px;margin-top:4px}
.auth-badge,.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:800;color:var(--cyan);text-transform:uppercase}
.auth-panel h1{font-size:46px;line-height:1.03;margin:14px 0 18px;letter-spacing:-.035em}
.auth-copy{font-size:16px;line-height:1.65;color:var(--muted);margin:0 0 32px;max-width:470px}
.auth-form{display:grid;gap:18px}
.auth-form label,.field label{display:grid;gap:8px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.02em}
input,select,textarea{width:100%;border:1px solid var(--line);background:#081523;color:var(--text);border-radius:11px;padding:12px 13px;outline:none;transition:.15s border,.15s box-shadow}
input:focus,select:focus,textarea:focus{border-color:var(--cyan-soft);box-shadow:0 0 0 3px rgba(22,184,255,.08)}
input[readonly]{color:#b9c9dc;background:#0a1624}
.form-message{min-height:18px;color:var(--red);font-size:12px}
.auth-foot{margin-top:24px;color:var(--muted-2);font-size:11px}
.auth-visual{position:relative;overflow:hidden;border-left:1px solid var(--line-soft);background:linear-gradient(135deg,#07111f,#0b1a2e 60%,#07111f)}
.auth-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(71,108,145,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(71,108,145,.13) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,transparent,black 16%,black 80%,transparent)}
.auth-visual:after{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(22,184,255,.25);border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 100px rgba(22,184,255,.08),inset 0 0 100px rgba(22,184,255,.04)}
.auth-stat{position:absolute;z-index:2;background:rgba(10,23,39,.9);border:1px solid var(--line);border-radius:14px;padding:16px 18px;min-width:220px;box-shadow:var(--shadow);backdrop-filter:blur(8px)}
.auth-stat span{display:block;color:var(--cyan);font-size:9px;font-weight:900;letter-spacing:.2em;margin-bottom:7px}
.auth-stat strong{font-size:14px}
.auth-stat-a{top:25%;left:18%}.auth-stat-b{top:47%;right:12%}.auth-stat-c{bottom:20%;left:28%}

/* GLOBAL APP */
.app-shell{min-height:100vh;background:var(--bg)}
.topbar{height:72px;position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 22px;border-bottom:1px solid var(--line-soft);background:rgba(7,17,31,.93);backdrop-filter:blur(14px)}
.topbar-left,.topbar-actions,.week-controls{display:flex;align-items:center;gap:12px}
.brand-lockup{display:flex;align-items:center;gap:10px;min-width:220px}
.brand-lockup img{width:34px;height:34px}
.brand-lockup strong{font-size:14px}.brand-lockup span{font-size:9px}
.week-controls{background:#091624;border:1px solid var(--line-soft);padding:6px;border-radius:12px}
.week-controls label{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.week-controls select{min-width:82px;padding:7px 9px;border-radius:8px;background:var(--panel);font-size:12px}
.btn{border:1px solid transparent;border-radius:10px;padding:10px 14px;font-size:12px;font-weight:800;transition:.15s transform,.15s opacity,.15s background}
.btn:hover{transform:translateY(-1px)}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn-primary{background:linear-gradient(135deg,#00a9f4,#1b8ee2);color:white;box-shadow:0 8px 24px rgba(16,156,225,.2)}
.btn-secondary{background:var(--panel-2);color:var(--text);border-color:var(--line)}
.btn-accent{background:rgba(50,213,155,.12);color:#7af3c7;border-color:rgba(50,213,155,.28)}
.btn-danger{background:rgba(255,107,122,.1);color:#ff9da7;border-color:rgba(255,107,122,.28)}
.btn-sm{padding:7px 10px;font-size:11px}
.icon-btn{width:36px;height:36px;display:inline-grid;place-items:center;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:10px;font-size:17px}
.pill-count{background:rgba(50,213,155,.22);padding:2px 7px;border-radius:20px;margin-left:5px;color:#9dffda}
.workspace{display:grid;grid-template-columns:214px minmax(0,1fr);min-height:calc(100vh - 72px)}
.sidebar{position:sticky;top:72px;height:calc(100vh - 72px);border-right:1px solid var(--line-soft);padding:18px 12px 14px;background:#081321;display:flex;flex-direction:column;justify-content:space-between;z-index:40}
.side-nav{display:grid;gap:4px}
.nav-item{width:100%;display:flex;align-items:center;gap:11px;border:0;background:transparent;color:var(--muted);padding:10px 11px;border-radius:10px;text-align:left;font-size:12px;font-weight:700}
.nav-item span{width:18px;color:#66819d;text-align:center}.nav-item:hover{background:#0d1c2e;color:var(--text)}.nav-item.active{background:rgba(22,184,255,.1);color:#cceeff}.nav-item.active span{color:var(--cyan)}
.nav-separator{height:1px;background:var(--line-soft);margin:10px 6px}
.sidebar-foot{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line-soft);padding:14px 5px 0;color:var(--muted)}
.sidebar-foot div:nth-child(2){display:flex;flex-direction:column;min-width:0}.sidebar-foot strong{font-size:10px;color:#c1d0df}.sidebar-foot span{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.status-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(50,213,155,.09)}
.main{min-width:0;padding:26px 28px 80px;max-width:1600px;width:100%;margin:0 auto}
.loading-state{height:60vh;display:grid;place-content:center;text-align:center;color:var(--muted)}
.loader{width:34px;height:34px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--cyan);animation:spin .8s linear infinite;margin:0 auto 12px}@keyframes spin{to{transform:rotate(360deg)}}

/* LAYOUT */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:22px}
.page-title .eyebrow{margin-bottom:7px}.page-title h1{font-size:29px;line-height:1.15;letter-spacing:-.025em;margin:0}.page-title p{margin:7px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
.head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.grid{display:grid;gap:14px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{background:linear-gradient(180deg,var(--panel),#0a1625);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:0 12px 36px rgba(0,0,0,.12)}
.card-pad{padding:17px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border-bottom:1px solid var(--line-soft)}
.card-head h2,.card-head h3{margin:0;font-size:14px}.card-head p{margin:3px 0 0;color:var(--muted);font-size:10px}.card-body{padding:16px 17px}
.kpi{padding:16px 17px}.kpi span{font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.09em}.kpi strong{display:block;font-size:26px;margin-top:8px;letter-spacing:-.03em}.kpi small{display:block;color:var(--muted-2);font-size:10px;margin-top:5px}
.kpi.good strong{color:#8df5d0}.kpi.cyan strong{color:#8edcff}.kpi.amber strong{color:#ffe199}.kpi.purple strong{color:#cabaff}
.section-block{margin-top:18px}.section-label{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}.section-label h2{font-size:15px;margin:0}.section-label span{font-size:10px;color:var(--muted)}

/* GAME CARDS */
.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.game-card{position:relative;overflow:hidden;padding:15px;border:1px solid var(--line-soft);border-radius:16px;background:linear-gradient(150deg,#0c1a2b,#091522);transition:.15s border,.15s transform}
.game-card:hover{border-color:#2f5275;transform:translateY(-1px)}
.game-card.selected{border-color:rgba(22,184,255,.55);box-shadow:0 0 0 2px rgba(22,184,255,.07)}
.game-top{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.09em;margin-bottom:13px}.game-time{color:#b8c9da}
.team-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0}.team-id{display:flex;align-items:center;gap:9px}.team-badge{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:#11253c;border:1px solid #294461;color:#bce9ff;font-weight:900;font-size:10px}.team-id strong{font-size:13px}.team-id span{display:block;font-size:9px;color:var(--muted);margin-top:2px}.team-score{font-size:18px;font-weight:900}
.market-strip{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px;padding-top:11px;border-top:1px solid var(--line-soft)}.market-chip{font-size:9px;color:#a8bad0;background:#0b1c2e;border:1px solid #1d3855;padding:5px 7px;border-radius:7px}.market-chip b{color:#edf6ff;margin-left:4px}
.game-insight{margin-top:11px;padding:9px 10px;border-radius:9px;background:rgba(22,184,255,.06);border:1px solid rgba(22,184,255,.12);font-size:10px;color:#a9c7db;line-height:1.45}.game-insight strong{color:#d9f3ff}

/* TABLES */
.table-wrap{overflow:auto;border:1px solid var(--line-soft);border-radius:14px;background:#091522}
table{width:100%;border-collapse:collapse;min-width:760px}th{position:sticky;top:0;background:#0c1b2d;color:#7890aa;font-size:9px;text-transform:uppercase;letter-spacing:.08em;text-align:left;padding:10px 11px;border-bottom:1px solid var(--line)}td{font-size:11px;color:#c9d7e5;padding:10px 11px;border-bottom:1px solid #13253b}tr:last-child td{border-bottom:0}tbody tr:hover{background:#0c1a2a}.num{text-align:right;font-variant-numeric:tabular-nums}.strong{color:#eef7ff;font-weight:800}.positive{color:#6ce8ba}.negative{color:#ff909c}.warning{color:#ffdc84}
.score-cell{display:flex;align-items:center;gap:8px}.score-bar{height:5px;min-width:72px;flex:1;border-radius:10px;background:#15283e;overflow:hidden}.score-fill{height:100%;border-radius:10px;background:linear-gradient(90deg,#1378b7,#31d3a0)}
.tag{display:inline-flex;align-items:center;border-radius:20px;padding:4px 7px;font-size:8px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line)}.tag-green{color:#71eec1;background:rgba(50,213,155,.08);border-color:rgba(50,213,155,.24)}.tag-cyan{color:#83dbff;background:rgba(22,184,255,.08);border-color:rgba(22,184,255,.24)}.tag-amber{color:#ffe09a;background:rgba(244,199,97,.08);border-color:rgba(244,199,97,.25)}.tag-red{color:#ff9aa5;background:rgba(255,107,122,.08);border-color:rgba(255,107,122,.25)}.tag-gray{color:#9eb1c5;background:#0e1c2d}

/* GAME LAB */
.matchup-hero{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:21px}.matchup-team{text-align:center}.matchup-team .team-badge{width:54px;height:54px;margin:0 auto 9px;border-radius:15px;font-size:14px}.matchup-team h2{margin:0;font-size:20px}.matchup-team p{margin:4px 0 0;color:var(--muted);font-size:10px}.versus{text-align:center;color:var(--muted)}.versus strong{display:block;color:var(--text);font-size:12px;margin-bottom:6px}.versus span{font-size:10px}
.drive-panel{display:grid;grid-template-columns:1fr 1fr;gap:12px}.drive-card{padding:15px}.drive-card h3{font-size:12px;margin:0 0 11px}.outcome-row{display:grid;grid-template-columns:1fr 48px 48px 58px;align-items:center;gap:7px;padding:7px 0;border-bottom:1px solid #13253b;font-size:10px}.outcome-row:last-child{border-bottom:0}.outcome-row .best{color:#8df5d0;font-weight:900}.mini-label{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.player-group{margin-bottom:15px}.player-header{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;background:#0e1d30;border:1px solid var(--line-soft);border-radius:12px 12px 0 0}.player-header h3{margin:0;font-size:12px}.player-header span{font-size:9px;color:var(--muted)}
.ladder{border:1px solid var(--line-soft);border-top:0;border-radius:0 0 12px 12px;overflow:hidden}.ladder-row{display:grid;grid-template-columns:minmax(150px,1.3fr) repeat(5,minmax(70px,.7fr)) 86px;gap:6px;align-items:center;padding:8px 11px;border-bottom:1px solid #13253b;font-size:10px}.ladder-row:last-child{border-bottom:0}.ladder-head{background:#0a1726;color:#69829b;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.ladder-row.recommended{background:rgba(50,213,155,.055)}

/* FORMS/FILTERS */
.filter-bar{display:flex;align-items:end;gap:9px;flex-wrap:wrap;background:#091624;border:1px solid var(--line-soft);border-radius:13px;padding:10px 12px;margin-bottom:13px}.field{min-width:130px}.field label{font-size:9px;text-transform:uppercase;letter-spacing:.08em}.field input,.field select{padding:8px 9px;font-size:11px}.field-grow{flex:1;min-width:180px}.inline-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.inline-form .wide{grid-column:span 2}.form-actions{display:flex;align-items:center;gap:8px;margin-top:13px}

/* TEAM/PLAYER PROFILE */
.profile-head{display:flex;align-items:center;gap:14px}.profile-head .team-badge{width:52px;height:52px;border-radius:14px;font-size:14px}.profile-head h1{font-size:24px;margin:0}.profile-head p{margin:4px 0 0;color:var(--muted);font-size:11px}.metric-list{display:grid;gap:8px}.metric-row{display:grid;grid-template-columns:150px 1fr 60px;align-items:center;gap:8px;font-size:10px}.metric-row span:first-child{color:var(--muted)}.metric-track{height:6px;border-radius:8px;background:#14273d;overflow:hidden}.metric-track i{display:block;height:100%;background:linear-gradient(90deg,#1385c7,#27cda0);border-radius:8px}.game-log{display:flex;gap:6px;align-items:end;height:88px;padding-top:8px}.game-log .bar{flex:1;min-width:10px;background:#1b6f9d;border-radius:4px 4px 2px 2px;position:relative}.game-log .bar:hover:after{content:attr(data-label);position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);background:#02070d;color:white;padding:4px 6px;border-radius:5px;white-space:nowrap;font-size:8px;z-index:2}

/* EDGES */
.edge-card{display:grid;grid-template-columns:1fr auto;gap:12px;padding:13px 15px}.edge-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.edge-title strong{font-size:12px}.edge-sub{color:var(--muted);font-size:9px;margin-top:5px}.edge-stats{display:flex;align-items:center;gap:15px}.edge-stat{text-align:right}.edge-stat span{display:block;font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.edge-stat strong{font-size:13px;margin-top:3px;display:block}.edge-actions{display:flex;gap:6px;margin-top:9px}

/* BETSLIP */
.betslip{position:fixed;right:0;top:72px;height:calc(100vh - 72px);width:390px;background:#091522;border-left:1px solid var(--line);box-shadow:-24px 0 50px rgba(0,0,0,.25);z-index:55;transform:translateX(100%);transition:.22s transform;display:flex;flex-direction:column}.betslip.open{transform:translateX(0)}.betslip-head{display:flex;align-items:center;justify-content:space-between;padding:18px;border-bottom:1px solid var(--line-soft)}.betslip-head h2{margin:3px 0 0;font-size:18px}.betslip-body{padding:14px 16px 30px;overflow:auto;flex:1}.bet-leg{padding:11px;border:1px solid var(--line-soft);border-radius:11px;background:#0c1a2a;margin-bottom:8px}.bet-leg-top{display:flex;justify-content:space-between;gap:8px}.bet-leg strong{font-size:11px}.bet-leg p{font-size:9px;color:var(--muted);margin:5px 0 0;line-height:1.45}.remove-leg{border:0;background:transparent;color:#ff8592}.slip-summary{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.slip-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.slip-metric{padding:10px;background:#0d1b2c;border-radius:9px}.slip-metric span{display:block;font-size:8px;color:var(--muted);text-transform:uppercase}.slip-metric strong{display:block;font-size:14px;margin-top:4px}.slip-warning{font-size:9px;line-height:1.5;color:#8ea2bb;background:rgba(244,199,97,.06);border:1px solid rgba(244,199,97,.15);padding:9px;border-radius:9px;margin-top:10px}

/* EMPTY / TOAST */
.empty{padding:36px;text-align:center;color:var(--muted)}.empty strong{display:block;color:#c5d6e7;font-size:13px;margin-bottom:5px}.empty p{font-size:10px;margin:0;line-height:1.5}.toast-host{position:fixed;right:18px;bottom:18px;display:grid;gap:8px;z-index:100}.toast{min-width:260px;max-width:380px;background:#0e1c2d;border:1px solid var(--line);border-radius:11px;padding:11px 13px;box-shadow:var(--shadow);font-size:10px;color:#c9d8e7}.toast strong{display:block;font-size:11px;color:#fff;margin-bottom:3px}.toast.good{border-color:rgba(50,213,155,.35)}.toast.bad{border-color:rgba(255,107,122,.35)}

/* ADMIN */
.health-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:10px}.health-row:last-child{border-bottom:0}.health-row span{color:var(--muted)}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:#b8d8ef;background:#07121f;padding:9px;border-radius:8px;border:1px solid var(--line-soft);overflow:auto}

@media(max-width:1180px){.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.ladder-row{grid-template-columns:minmax(130px,1.2fr) repeat(3,70px) 80px}.ladder-row>*:nth-child(5),.ladder-row>*:nth-child(6){display:none}}
@media(max-width:860px){.mobile-only{display:grid!important}.workspace{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:72px;width:220px;transform:translateX(-100%);transition:.2s transform;box-shadow:20px 0 40px rgba(0,0,0,.3)}.sidebar.open{transform:translateX(0)}.week-controls label{display:none}.brand-lockup{min-width:0}.topbar{padding:0 12px}.main{padding:18px 14px 70px}.game-grid,.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.drive-panel{grid-template-columns:1fr}.matchup-hero{grid-template-columns:1fr}.versus{padding:5px}.inline-form{grid-template-columns:1fr 1fr}.betslip{width:min(92vw,390px)}.page-head{align-items:flex-start;flex-direction:column}.auth-shell{grid-template-columns:1fr}.auth-visual{display:none}.auth-panel{padding:38px 24px}.auth-panel h1{font-size:38px}}
@media(max-width:560px){.brand-lockup span{display:none}.brand-lockup strong{font-size:12px}.topbar-actions .btn-accent{padding:8px}.game-grid{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr}.inline-form .wide{grid-column:auto}.grid-4{grid-template-columns:1fr 1fr}.ladder-row{grid-template-columns:1.5fr 70px 70px}.ladder-row>*:nth-child(4),.ladder-row>*:nth-child(5),.ladder-row>*:nth-child(6),.ladder-row>*:nth-child(7){display:none}}


/* V0.2 VISUAL DIFFERENTIATION */
.game-card{background:
  radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--away) 15%,transparent),transparent 34%),
  radial-gradient(circle at 88% 100%,color-mix(in srgb,var(--home) 13%,transparent),transparent 38%),
  linear-gradient(150deg,#0c1a2b,#091522)}
.game-accent{height:4px;margin:-15px -15px 12px;background:linear-gradient(90deg,var(--away) 0 49.5%,rgba(255,255,255,.16) 49.5% 50.5%,var(--home) 50.5% 100%);opacity:.95}
.team-logo-wrap{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,color-mix(in srgb,var(--team) 22%,#102034),#102034);border:1px solid color-mix(in srgb,var(--team) 55%,#294461);overflow:hidden;flex:0 0 auto}
.team-logo{width:29px;height:29px;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.45))}
.team-logo-wrap .team-badge{width:100%;height:100%;border:0;border-radius:0;background:transparent}
.team-badge-fallback{display:none!important}
.team-logo[style*="display: none"] + .team-badge-fallback{display:grid!important}
.matchup-hero{background:
  radial-gradient(circle at 10% 50%,color-mix(in srgb,var(--away) 15%,transparent),transparent 35%),
  radial-gradient(circle at 90% 50%,color-mix(in srgb,var(--home) 15%,transparent),transparent 35%),
  linear-gradient(180deg,var(--panel),#0a1625)}
.matchup-logo{width:72px;height:72px;object-fit:contain;margin:0 auto 10px;filter:drop-shadow(0 8px 16px rgba(0,0,0,.35))}
.kpi.cyan{background:linear-gradient(145deg,rgba(22,184,255,.11),#0a1625 55%)}
.kpi.good{background:linear-gradient(145deg,rgba(50,213,155,.11),#0a1625 55%)}
.kpi.amber{background:linear-gradient(145deg,rgba(244,199,97,.11),#0a1625 55%)}
.kpi.purple{background:linear-gradient(145deg,rgba(166,139,255,.12),#0a1625 55%)}
.edge-card:nth-child(odd){background:rgba(19,36,58,.24)}
.edge-card{border-radius:10px}
.admin-copy{margin:0 0 12px;color:var(--muted);font-size:10px;line-height:1.6}
.refresh-stack{border:1px solid var(--line-soft);border-radius:11px;padding:0 12px;background:#081523}
.refresh-stack .health-row strong{font-size:9px;text-align:right;color:#cbdced;max-width:62%}
.sync-note{font-size:9px;color:var(--muted);line-height:1.5}
@media(max-width:860px){.week-controls{gap:6px}.week-controls .btn{padding:8px 9px}.matchup-logo{width:58px;height:58px}}


/* V0.3 BETTING BOARD + PLAYER CONTEXT */
.best-bets-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.best-bets-actions select{min-width:190px}
.board-note{margin:16px 0 18px;padding:12px 14px;border:1px solid rgba(22,184,255,.2);border-radius:12px;background:linear-gradient(135deg,rgba(22,184,255,.07),rgba(50,213,155,.04));font-size:10px;line-height:1.6;color:#abc1d7}
.best-games-stack{display:grid;gap:16px}
.best-game-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:
  radial-gradient(circle at 8% 0%,color-mix(in srgb,var(--away) 12%,transparent),transparent 34%),
  radial-gradient(circle at 92% 100%,color-mix(in srgb,var(--home) 12%,transparent),transparent 38%),
  linear-gradient(150deg,#0d1b2d,#091522);box-shadow:0 14px 34px rgba(0,0,0,.14)}
.best-game-accent{height:4px;background:linear-gradient(90deg,var(--away) 0 49.5%,rgba(255,255,255,.16) 49.5% 50.5%,var(--home) 50.5% 100%)}
.best-game-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px 10px}
.best-game-matchup{display:flex;align-items:center;gap:10px;min-width:0}
.best-game-matchup img{width:34px;height:34px;object-fit:contain}
.best-game-matchup strong{font-size:14px}
.best-game-matchup>span:last-child{font-size:10px;color:var(--muted)}
.board-rank{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:#10233a;border:1px solid #29435f;color:#9fdfff;font-weight:900;font-size:10px}
.betability{text-align:right;min-width:92px}
.betability span,.betability small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.08em}
.betability strong{font-size:28px;line-height:1;color:#7af3c7;display:block;margin:3px 0}
.best-game-context{display:flex;gap:8px;flex-wrap:wrap;padding:0 16px 12px;border-bottom:1px solid var(--line-soft)}
.best-game-context span{font-size:9px;padding:6px 8px;border:1px solid #1e3854;border-radius:8px;background:#081522;color:#8fa8c1}
.best-game-context b{color:#e6f3ff}
.best-game-body{padding:12px 16px}
.section-label.compact{margin:0 0 8px}
.section-label.compact h3{font-size:11px;margin:0}
.best-pick-row{display:grid;grid-template-columns:minmax(250px,1fr) repeat(4,82px) 42px;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid #14263b}
.best-pick-row:last-child{border-bottom:0}
.best-pick-main strong{display:block;font-size:11px}
.best-pick-main span{display:block;margin-top:4px;font-size:8px;color:var(--muted)}
.best-pick-metric{text-align:right}
.best-pick-metric span{display:block;font-size:7px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.best-pick-metric strong{display:block;font-size:11px;margin-top:2px}
.parlay-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;background:#081421;border-top:1px solid var(--line-soft)}
.parlay-actions>div:first-child strong{display:block;font-size:10px}
.parlay-actions>div:first-child span{display:block;font-size:8px;color:var(--muted);margin-top:3px;max-width:560px}
.parlay-buttons{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.player-stat-chips{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:5px}
.player-stat-chips span{font-size:8px!important;color:#9eb4ca!important;padding:4px 7px;border:1px solid #203950;border-radius:7px;background:#091624}
.player-stat-chips span:last-child{color:#d8e7f4!important;border-color:#28506e;background:#0a1a2a}
.player-context-strip{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 0}
.player-context-strip span{font-size:9px;padding:7px 9px;border:1px solid var(--line-soft);border-radius:8px;background:#091624;color:var(--muted)}
.player-context-strip b{color:#e8f4ff}
@media(max-width:1050px){.best-pick-row{grid-template-columns:minmax(220px,1fr) repeat(2,78px) 42px}.best-pick-row .best-pick-metric:nth-of-type(3),.best-pick-row .best-pick-metric:nth-of-type(4){display:none}.parlay-actions{align-items:flex-start;flex-direction:column}.parlay-buttons{justify-content:flex-start}}
@media(max-width:650px){.best-game-head{align-items:flex-start}.best-game-matchup{flex-wrap:wrap}.best-pick-row{grid-template-columns:1fr 70px 42px}.best-pick-row .best-pick-metric{display:none}.best-pick-row .best-pick-metric:first-of-type{display:block}.best-bets-actions{width:100%}.best-bets-actions select,.best-bets-actions .btn{width:100%}}


/* V0.4 MODEL LAB / WALK-FORWARD BACKTEST */
.model-table td,.model-table th{white-space:nowrap}
.model-factor{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:7px 9px;border-radius:8px;font-weight:900;font-size:11px;border:1px solid var(--line)}
.model-factor.help{color:#78efc1;background:rgba(50,213,155,.08);border-color:rgba(50,213,155,.25)}
.model-factor.hurt{color:#ff909c;background:rgba(255,107,122,.08);border-color:rgba(255,107,122,.25)}
.model-factor.neutral{color:#a7bbcf;background:#0a1726}
.factor-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.factor-grid>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line-soft);border-radius:10px;background:#091624}
.factor-grid span:first-child{font-size:9px;color:var(--muted)}
.model-explain{margin-top:12px;padding:11px 12px;border:1px solid #203950;border-radius:10px;background:#071421;color:#9eb4ca;font-size:9px;line-height:1.6}
.calibration-list{display:grid;gap:8px}
.cal-row{display:grid;grid-template-columns:58px minmax(150px,1fr) 150px 48px;gap:9px;align-items:center;font-size:9px}
.cal-row>span,.cal-row>small{color:var(--muted)}
.cal-track{position:relative;height:8px;border-radius:99px;background:#102238;overflow:visible}
.cal-track i{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:linear-gradient(90deg,#16b8ff,#32d59b)}
.cal-track b{position:absolute;top:-4px;width:2px;height:16px;background:#fff;border-radius:2px;box-shadow:0 0 7px rgba(255,255,255,.5)}
.cal-row>strong{text-align:right;font-size:9px}
.opening-weight{display:grid;grid-template-columns:120px 1fr 120px;gap:12px;align-items:center}
.opening-weight>div:first-child,.opening-weight>div:last-child{display:flex;justify-content:space-between;gap:8px;align-items:center}
.opening-weight span{font-size:9px;color:var(--muted)}
.opening-weight strong{font-size:16px}
.opening-balance{height:11px;background:#422033;border-radius:99px;overflow:hidden}
.opening-balance i{display:block;height:100%;background:linear-gradient(90deg,#16b8ff,#32d59b);border-radius:99px}
.model-steps{margin:0;padding-left:20px;color:#a8bdd1;font-size:9px;line-height:1.8}
.model-steps li+li{margin-top:5px}
.positive{color:#78efc1!important}.negative{color:#ff909c!important}
@media(max-width:900px){.factor-grid{grid-template-columns:1fr}.cal-row{grid-template-columns:52px 1fr 110px}.cal-row small{display:none}.opening-weight{grid-template-columns:1fr}.opening-balance{order:3}}


/* V0.5 MODEL GOVERNANCE / CHAMPION-CHALLENGER */
.model-status{min-width:68px}
.guardrail-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:15px 0 18px}
.guardrail-strip>div{padding:11px 12px;border:1px solid var(--line-soft);border-radius:11px;background:linear-gradient(145deg,#0a1726,#08131f)}
.guardrail-strip span{display:block;font-size:7px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.guardrail-strip strong{display:block;font-size:10px;color:#ddecf8;line-height:1.45}
.calibration-mae{text-align:right;padding-left:12px}
.calibration-mae span{display:block;font-size:7px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.calibration-mae strong{display:block;color:#7af3c7;font-size:15px;margin-top:4px}
@media(max-width:1000px){.guardrail-strip{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.guardrail-strip{grid-template-columns:1fr}.calibration-mae{text-align:left;padding-left:0;margin-top:8px}}
