:root{--navy:#0d284e;--blue:#1e5b9d;--ice:#edf4fb;--red:#c93345;--gold:#d99a2b;--ink:#13253d;--soft:#60738b;--stroke:#c7d4e2;--paper:#fff;--canvas:#eaf0f6}
body{background:linear-gradient(180deg,#eaf1f8 0,#f8fafc 22rem,#edf2f7 100%);color:var(--ink);font-size:16px}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;box-shadow:inset 0 0 0 2px rgba(18,60,106,.2),inset 0 0 38px rgba(20,57,98,.05)}body:after{content:"";position:fixed;left:0;right:0;top:0;height:4px;z-index:10000;background:linear-gradient(90deg,#143f73 0 38%,#d19831 38% 62%,#c83345 62%)}
main{max-width:1900px;width:100%;margin:0 auto;padding:1.4rem 2rem 4rem}.shell{grid-template-columns:250px minmax(0,1fr)}
.brand strong{font-size:1.05rem}.brand small,.ready small{font-size:.75rem}.ready strong{font-size:.82rem}.disclaimer{font-size:.75rem}
header{margin-bottom:1rem}.eyebrow{font-size:.75rem}h1{font-size:1.45rem}#badge,.import{font-size:.78rem}
.hero{min-height:290px;padding:2.25rem}.hero h2{font-size:clamp(2.7rem,4.4vw,5rem)}.hero>div>p:last-child{font-size:1rem}.week{min-width:230px}.week span{font-size:.8rem}
.kpis{gap:.8rem;margin:.8rem 0 1rem}.kpis article{padding:1.05rem 1.15rem}.kpis span,.kpis small{font-size:.78rem}.kpis b{font-size:2rem}
.workspace-tabs{display:flex;gap:.45rem;padding:.4rem;margin:0 0 .8rem;background:#dce6f0;border:1px solid #c1cfdd;border-radius:14px;position:sticky;top:.5rem;z-index:20;box-shadow:0 8px 25px #26476c18}
.workspace-tabs button{flex:1;min-height:46px;border:0;border-radius:10px;background:transparent;color:#536981;font-weight:850;font-size:.9rem;cursor:pointer}.workspace-tabs button.active{background:#fff;color:var(--navy);box-shadow:0 5px 16px #23466e1c}.workspace-tabs button:focus-visible,.position-tabs button:focus-visible,.category-tabs button:focus-visible{outline:3px solid #5fa1e6;outline-offset:2px}
.view-panel{padding:1.5rem;border-radius:20px}.panelhead h2{font-size:1.75rem}.subcopy{font-size:.93rem;line-height:1.55;color:var(--soft);max-width:760px}.viewkey{font-size:.8rem}
.filters input,.filters select,.filters button{height:46px;font-size:.82rem;background:#fff;color:var(--ink);border-color:#b9c9da}
.matchup-chart{border-radius:24px}.matchup-head{padding:2rem}.game-meta{font-size:.78rem}.team-title h3{font-size:2.3rem}.team-title small{font-size:.78rem}.win-labels{font-size:.9rem}.research-label,.qb-line{font-size:.78rem}.win-status{font-size:.72rem}.weather-note,.weather-location small,.weather-stat small{font-size:.72rem}.weather-alert,.weather-missing{font-size:.8rem}
.team-side-title small{font-size:.72rem}.team-side-title h4{font-size:1.55rem}.team-side-title>span{font-size:.75rem}.room-head b,.room-head strong{font-size:.75rem}.market-labels{font-size:.68rem}.player-cell strong{font-size:.86rem}.player-cell small,.market-cell,.trend-cell small,.projection-cell small{font-size:.7rem}.projection-cell b,.trend-cell b{font-size:1rem}.row-gate{font-size:.67rem}
.market-labels,.market-row{grid-template-columns:52px minmax(150px,1.35fr) minmax(135px,1fr) minmax(125px,.8fr) minmax(105px,.65fr) minmax(115px,.7fr) 88px;gap:0}.market-labels{padding:0;border:1px solid #c9d5e1;border-radius:8px 8px 0 0;background:#eaf1f8;color:#52677f}.market-labels span{padding:.65rem .7rem;border-left:1px solid #c9d5e1;display:flex;align-items:center}.market-labels span:first-child{border-left:0}.market-row{padding:0;min-height:78px;border:1px solid #d5dfe9;border-top:0;background:#fff}.market-row>*{min-width:0;padding:.7rem;border-left:1px solid #d5dfe9}.market-row>.athlete-photo{padding:0;margin:auto;border:1px solid #b6c6d6}.market-row>*:first-child{border-left:0}.market-row:hover{border-color:#8eb0d2;border-radius:0;background:#f4f8fc}.market-cell small,.market-cell b{display:block}.market-cell small{display:none}.market-cell b{font-size:.78rem;color:#354f6d;line-height:1.25}.metric-cell{position:relative}.metric-cell b{font:900 1.14rem Georgia,serif;color:#173f72}.actual-cell b{font-size:1rem;color:#9a6817}.confidence-cell b{color:#245d91}.metric-bars{display:grid;gap:3px;margin-top:.55rem;width:100%}.metric-bars i{display:block;height:4px;border-radius:99px}.model-bar{background:linear-gradient(90deg,#174c83,#5b9bd5)}.actual-bar{background:linear-gradient(90deg,#bd7a14,#efb952)}
.position-panel{background:linear-gradient(150deg,#fff 0,#f5f8fc 100%)}.research-chip{padding:.55rem .75rem;border-radius:999px;background:#e8f0f9;color:#31587f;font-size:.75rem;font-weight:800}
.position-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem;margin:1.4rem 0 .75rem}.position-tabs button{min-height:68px;border:1px solid #b9c9da;border-radius:14px;background:#f4f7fa;color:#53677e;font-size:1.05rem;font-weight:900;cursor:pointer}.position-tabs button.active{background:linear-gradient(145deg,#173f72,#2365a8);color:#fff;border-color:#173f72;box-shadow:0 12px 25px #174c8428}
.category-tabs{display:flex;gap:.55rem;overflow:auto;padding:.25rem 0 .9rem;scrollbar-width:thin}.category-tabs button{white-space:nowrap;min-height:42px;padding:0 1rem;border:1px solid #bdcad8;border-radius:999px;background:#fff;color:#52677e;font-size:.82rem;font-weight:800;cursor:pointer}.category-tabs button.active{background:#c93345;color:#fff;border-color:#a82434;box-shadow:0 7px 16px #a8243425}
.leaderboard-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;margin:.2rem 0 1rem}.leaderboard-summary div{padding:1rem;border:1px solid #cad6e2;border-radius:13px;background:#fff}.leaderboard-summary span,.leaderboard-summary b{display:block}.leaderboard-summary span{font-size:.72rem;color:#718399;text-transform:uppercase;letter-spacing:.06em}.leaderboard-summary b{margin-top:.35rem;font-size:1.05rem;color:#173b72}
.leaderboards{border:1px solid #bdccdb;border-radius:16px;overflow:hidden;background:#fff}.leaderboard-head,.leaderboard-row{display:grid;grid-template-columns:50px 52px minmax(190px,1.5fr) minmax(130px,1fr) 95px 80px 90px 80px;align-items:center;gap:.75rem}.leaderboard-head{padding:.8rem 1rem;background:#163d70;color:#dfeafa;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.leaderboard-head span:nth-child(2){grid-column:2/4}.leaderboard-row{width:100%;padding:.8rem 1rem;border:0;border-bottom:1px solid #dce4ed;background:#fff;color:var(--ink);text-align:left;font:inherit;cursor:pointer}.leaderboard-row:last-child{border-bottom:0}.leaderboard-row:hover{background:#f2f7fc}.leaderboard-row .athlete-photo{width:46px;height:46px;border-radius:12px}.rank{font:900 1.25rem Georgia,serif;color:#6c7e92}.leader-player b,.leader-player small{display:block}.leader-player b{font-size:.92rem}.leader-player small{font-size:.72rem;color:#718399;margin-top:.2rem}.leader-matchup{font-size:.8rem;color:#536980}.leader-projection{font:900 1.2rem Georgia,serif;color:#173b72}.leaderboard-row>span{font-size:.8rem}
.position-panel[hidden],.matchup-panel[hidden]{display:none}dialog{font-size:1rem}.detailgrid small{font-size:.72rem}.detailreason{font-size:.85rem}
@media(max-width:1100px){.shell{grid-template-columns:1fr}aside{position:relative;height:auto;flex-direction:row;padding:1rem 1.2rem;background:linear-gradient(90deg,#123a6b,#245c99)}aside nav,.ready,.disclaimer{display:none}main{padding:1.1rem 1rem 3rem}.leaderboard-head,.leaderboard-row{grid-template-columns:42px 48px minmax(170px,1.4fr) minmax(110px,1fr) 82px 72px 80px 72px}.leaderboard-head span:nth-child(2){grid-column:2/4}}
@media(max-width:780px){body{font-size:16px}.hero{min-height:330px;padding:1.5rem}.hero h2{font-size:2.6rem}.week{min-width:0}.kpis{grid-template-columns:1fr 1fr}.view-panel{padding:1rem}.panelhead{align-items:flex-start;gap:1rem}.panelhead h2{font-size:1.4rem}.position-tabs{grid-template-columns:1fr 1fr}.position-tabs button{min-height:56px}.leaderboard-summary{grid-template-columns:1fr 1fr}.leaderboard-head{display:none}.leaderboards{border:0;background:transparent;display:grid;gap:.65rem}.leaderboard-row{position:relative;grid-template-columns:38px 48px 1fr 72px;padding:.9rem;border:1px solid #c4d2df;border-radius:14px;box-shadow:0 8px 20px #173b7210}.leader-matchup{grid-column:2/4}.leader-projection{grid-column:4;grid-row:1/3;text-align:right;font-size:1.35rem}.leaderboard-row>span:nth-of-type(3),.leaderboard-row>span:nth-of-type(4){display:none}.leaderboard-row .row-gate{grid-column:4;text-align:center}.workspace-tabs{top:.3rem}.matchup-head{padding:1.25rem}.team-title h3{font-size:1.55rem}.qb-line{align-items:flex-start;flex-direction:column}.qb-line span:last-child{text-align:left}.market-labels{display:none}.market-row{display:grid;grid-template-columns:54px minmax(0,1fr) 100px;grid-template-areas:"photo player gate" "market market market" "projection actual confidence";min-height:0;margin:.7rem 0;border:1px solid #c4d2df;border-radius:12px;overflow:hidden}.market-row>*{border-left:0;border-top:1px solid #d5dfe9;padding:.75rem}.market-row>.athlete-photo{grid-area:photo;align-self:center;border-top:0;padding:0}.player-cell{grid-area:player;border-top:0}.market-cell{grid-area:market;background:#eef4fa;border-top:1px solid #cdd9e5}.market-cell small{display:block;font-size:.65rem;color:#708299;text-transform:uppercase}.market-cell b{font-size:.85rem}.projection-cell{grid-area:projection}.actual-cell{grid-area:actual;display:block!important;border-left:1px solid #d5dfe9}.confidence-cell{grid-area:confidence;display:block!important;border-left:1px solid #d5dfe9}.market-row .row-gate{grid-area:gate;align-self:center;justify-self:center;border-top:0;font-size:.62rem;padding:.45rem}.projection-cell small,.trend-cell small{font-size:.62rem;line-height:1.25}.metric-bars{margin-top:.4rem}}
@media(max-width:520px){main{padding:.75rem .65rem 2.5rem}header{align-items:flex-start}.actions{flex-direction:column;align-items:flex-end}.hero{min-height:370px;padding:1.2rem}.hero h2{font-size:2.25rem}.kpis article{padding:.85rem}.kpis b{font-size:1.65rem}.workspace-tabs button{font-size:.78rem}.position-tabs{gap:.45rem}.position-tabs button{font-size:.9rem}.leaderboard-summary div{padding:.8rem}.leaderboard-row{grid-template-columns:30px 44px 1fr 64px;gap:.55rem}.leaderboard-row .athlete-photo{width:42px;height:42px}.leader-player b{font-size:.82rem}.leader-player small{font-size:.65rem}.rank{font-size:1rem}.view-panel{border-radius:15px}.category-tabs button{font-size:.75rem;padding:0 .8rem}}
