:root{--blue:#003ba8;--blue2:#062b69;--orange:#e87722;--ink:#142033;--muted:#667085;--line:#dbe3ef;--bg:#f4f7fb;--danger:#b42318}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button,.file-button,.button-link{background:var(--blue);color:#fff;cursor:pointer;border:0;border-radius:11px;justify-content:center;align-items:center;gap:.4rem;min-height:44px;padding:.72rem 1rem;font-weight:750;display:inline-flex}button:hover{filter:brightness(.94)}button:disabled{opacity:.45;cursor:not-allowed}.secondary{color:var(--blue);background:#e8f0ff}.ghost{color:var(--ink);border:1px solid var(--line);background:#fff}.danger-button{color:var(--danger);background:#fff2f0;border:1px solid #f7c4bf}.icon{min-width:42px;color:var(--ink);border:1px solid var(--line);background:#fff;padding:.5rem}header{border-bottom:1px solid var(--line);z-index:40;background:#fff;justify-content:space-between;align-items:center;height:74px;padding:0 clamp(1rem,4vw,3.5rem);display:flex;position:sticky;top:0}.brand{align-items:center;gap:.72rem;display:flex}.brand img{width:42px;height:42px}.brand b,.brand span{display:block}.brand b{letter-spacing:.03em;color:var(--blue2);font-size:1.03rem}.brand span{color:var(--muted);font-size:.76rem}nav{gap:1.2rem;display:flex}nav a,.quick-links a{color:var(--blue);font-weight:700;text-decoration:none}.shell{width:min(1280px,100% - 2rem);margin:1.5rem auto 4rem}.hero{background:linear-gradient(120deg,var(--blue2),var(--blue));color:#fff;border-radius:22px;justify-content:space-between;align-items:end;gap:2rem;padding:clamp(1.4rem,4vw,2.7rem);display:flex;box-shadow:0 18px 45px #003ba824}.hero h1{margin:.3rem 0;font-size:clamp(1.8rem,5vw,3.2rem);line-height:1}.hero p{color:#d9e7ff;margin:0}.hero select{background:#fff;min-width:230px}.eyebrow{color:#6686b5;letter-spacing:.13em;font-size:.72rem;font-weight:850;display:block}.hero .eyebrow{color:#b9d0fa}.tabs{gap:.5rem;margin:1.2rem 0;padding:.25rem;display:flex;overflow:auto}.tabs button{color:#596579;background:0 0;border:1px solid #0000;min-width:105px}.tabs button.active{color:var(--blue);border-color:var(--line);background:#fff;box-shadow:0 5px 18px #1728490e}.card{border:1px solid var(--line);background:#fff;border-radius:18px;min-width:0;padding:clamp(1rem,2.3vw,1.5rem);box-shadow:0 8px 24px #1c33510a}.card h2{margin:.25rem 0 1rem}.card p{color:var(--muted)}.card-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.grid{gap:1rem;display:grid}.grid.two{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)}.stack{gap:1rem;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.wide{grid-column:1/-1}label{color:#445166;gap:.4rem;font-size:.83rem;font-weight:750;display:grid}input,select,textarea{width:100%;min-height:44px;color:var(--ink);background:#fff;border:1px solid #cbd5e1;border-radius:10px;outline:none;padding:.7rem .78rem}input:focus,select:focus,textarea:focus{border-color:#5b8fe6;box-shadow:0 0 0 3px #a9c7ff55}fieldset{border:1px solid var(--line);border-radius:12px}.checks,.button-row{flex-wrap:wrap;gap:.55rem;display:flex}.checks label{align-items:center;display:flex}.checks input,.check input{width:18px;min-height:18px}.status-row,.switch,.backup{border-top:1px solid #edf1f6;justify-content:space-between;align-items:center;gap:1rem;padding:.95rem 0;display:flex}.switch{grid-template-columns:1fr auto}.switch input{width:46px;height:25px;accent-color:var(--blue)}.modal-inline{border-top:1px solid var(--line);padding-top:1rem}.team-names{grid-template-columns:1fr 1fr;gap:.65rem;margin:1rem 0;display:grid}.assignment-list{gap:.5rem;margin-top:1rem;display:grid}.assignment{border:1px solid #e7ecf3;border-radius:12px;grid-template-columns:minmax(180px,1fr) minmax(150px,240px) auto;align-items:center;gap:.75rem;padding:.7rem;display:grid}.assignment b,.assignment span{display:block}.assignment span{color:var(--muted);font-size:.8rem}.search{margin-top:.5rem}.file-button{color:var(--blue);background:#e8f0ff}.slideshow{z-index:100;color:#fff;text-align:center;cursor:pointer;background:radial-gradient(circle at top,#0d4cb6,#061e48);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.slideshow>button{background:#ffffff20;font-size:2rem;position:absolute;top:1.5rem;right:1.5rem}.slideshow img{width:100px}.slideshow h2{margin:.8rem;font-size:clamp(1.7rem,5vw,3.5rem)}.slideshow h1{margin:.5rem;font-size:clamp(3rem,10vw,7rem)}.schedule-list{gap:.7rem;display:grid}.game-row{border:1px solid #e3e9f2;border-radius:14px;grid-template-columns:180px 1fr auto auto;align-items:center;gap:1rem;padding:.85rem;display:grid}.date b,.date span{display:block}.date span{color:var(--muted);font-size:.82rem}.matchup{align-items:center;gap:.55rem;font-weight:750;display:flex}.matchup>b{color:var(--muted);font-size:.75rem}.color{border:1px solid #667085;border-radius:50%;flex:none;width:14px;height:14px}.pill{background:#eef2f6;border-radius:100px;padding:.35rem .65rem;font-size:.72rem}.pill.final{color:#067647;background:#dcfae6}.pill.in_progress{color:#8c4a00;background:#fff0d6}.danger{background:#fff3f1;border:1px solid #f1a6a0;border-radius:14px;margin-top:1rem;padding:1rem}.danger p{color:#7a271a}.overlay{z-index:100;background:#0b172880;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:18px;width:min(720px,100%);max-height:calc(100vh - 2rem);padding:1.2rem;overflow-y:auto;box-shadow:0 25px 80px #0005}.sticky-bottom{border-top:1px solid var(--line);background:#fff;margin-top:1rem;padding:1rem 0;position:sticky;bottom:-1.2rem}.toast{z-index:90;color:#fff;background:#0d6b3b;border-radius:10px;padding:.8rem 1rem;position:fixed;top:85px;right:1rem;box-shadow:0 10px 30px #0002}.toast.warn,.error{color:#9f2016;background:#fff0ee;border:1px solid #f3b4ae;border-radius:10px;padding:.8rem}.login{background:radial-gradient(circle at 30% 15%,#1b60c4,var(--blue2) 54%,#06152f);place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{background:#fff;border-radius:23px;width:min(440px,100%);padding:clamp(1.5rem,5vw,2.5rem);box-shadow:0 35px 90px #0006}.login-card h1{margin:2rem 0 .4rem;font-size:2rem}.login-card p{color:var(--muted)}.login-card form{gap:1rem;display:grid}.quick-links{justify-content:center;gap:1rem;margin-top:1.4rem;font-size:.85rem;display:flex}.loading,.empty{text-align:center;min-height:55vh;color:var(--muted);place-content:center;display:grid}footer{text-align:center;color:#8490a2;padding:2rem;font-size:.8rem}.console{background:#eaf0f8;min-height:100vh}.console.fullscreen{z-index:150;position:fixed;inset:0;overflow:auto}.console-top{border-bottom:1px solid var(--line);z-index:30;background:#fff;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 1rem;display:flex;position:sticky;top:0}.console-actions{gap:.5rem;display:flex}.console-actions select{min-width:360px}.sticky-score{z-index:25;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#eaf0f8ef;grid-template-columns:1fr auto 1fr;gap:.7rem;padding:.7rem 1rem;display:grid;position:sticky;top:67px}.sticky-score>div:not(.game-state){background:#fff;border:3px solid;border-radius:16px;grid-template-columns:1fr auto;align-items:center;padding:.6rem 1rem;display:grid}.sticky-score span{text-transform:uppercase;font-size:.72rem}.sticky-score b{font-size:clamp(.95rem,2.5vw,1.3rem)}.sticky-score strong{grid-area:1/2/3;font-size:clamp(2.3rem,7vw,4.5rem)}.game-state{text-align:center;place-content:center;gap:.4rem;display:grid}.void{color:var(--danger);background:#fff;border:1px solid #f1a6a0}.team-columns{grid-template-columns:1fr 1fr;gap:1rem;padding:0 1rem 1rem;display:grid}.team-card{border:1px solid var(--line);background:#fff;border-radius:17px;overflow:hidden}.team-head{justify-content:space-between;align-items:center;padding:.8rem 1rem;display:flex}.team-head h2{margin:0}.team-head button{color:inherit;background:#ffffff26;border:1px solid}.player{border-bottom:1px solid #edf1f5;padding:.8rem}.player-id{align-items:center;gap:.6rem;margin-bottom:.6rem;display:flex}.player-id input{width:50px}.player-id b,.player-id span{display:block}.player-id span{color:var(--muted);font-size:.77rem}.stat-buttons{grid-template-columns:repeat(5,1fr);gap:.4rem;display:grid}.stat-buttons button{min-height:46px;color:var(--blue);background:#eef4ff;border:1px solid #cbdcff;padding:.4rem}.stat-buttons button:nth-child(-n+3){background:var(--blue);color:#fff}.stats-row{background:#f5f8fc;grid-template-columns:minmax(120px,1fr) repeat(8,45px);gap:.3rem;padding:1rem;display:grid;overflow:auto}.stats-row span{text-align:center;font-weight:800}.stats-row small{color:var(--muted);font-size:.6rem;display:block}.console-lower{padding:0 1rem 2rem}.play{border-top:1px solid #edf1f5;grid-template-columns:80px 1fr 100px auto;align-items:center;gap:.5rem;padding:.65rem;display:grid}.play.voided{opacity:.45;text-decoration:line-through}.play button{min-height:34px;color:var(--danger);background:#fff;border:1px solid #f0aaa3;padding:.25rem .6rem}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid #e8edf4;padding:.9rem}.leader-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.leader{border-top:1px solid #edf1f5;grid-template-columns:30px 1fr auto;gap:.5rem;padding:.7rem 0;display:grid}.leader>span{color:#8792a2}.leader strong{color:var(--blue);font-size:1.2rem}.roster{border-top:1px solid #edf1f5;grid-template-columns:1fr repeat(5,auto);gap:.6rem;padding:.65rem 0;font-size:.84rem;display:grid}.public-score{grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;display:grid}.public-score span:last-child{text-align:right}.scoreboard{color:#fff;text-align:center;background:#061a3d;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.scoreboard .brand span,.scoreboard .brand b{color:#fff}.scoreboard-card{grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;width:min(1100px,100%);display:grid}.scoreboard-card>div{background:#0c2d65;border-radius:20px;padding:2rem}.scoreboard-card span,.scoreboard-card strong{display:block}.scoreboard-card strong{font-size:clamp(6rem,18vw,14rem)}.scoreboard-card .clock{color:#07182f;background:#fff}.clock b{font-size:clamp(4rem,12vw,9rem)}.button-link{text-decoration:none}@media (max-width:800px){header nav{display:none}.shell{width:min(100% - 1rem,1280px);margin:.5rem auto 3rem}.hero{border-radius:17px;flex-direction:column;align-items:stretch}.hero select{min-width:0}.grid.two,.team-columns,.leader-grid,.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.game-row{grid-template-columns:1fr auto}.matchup,.public-score,.game-row>.button-row{grid-column:1/-1}.console-top{flex-direction:column;align-items:stretch}.console-actions{grid-template-columns:1fr auto;display:grid}.console-actions select{min-width:0}.sticky-score{grid-template-columns:1fr 1fr;top:119px}.game-state{grid-area:2/1/auto/-1}.stat-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-buttons button{min-height:48px}.assignment{grid-template-columns:1fr auto}.assignment select{grid-column:1/2}.assignment .icon{grid-area:1/2/3}.roster{grid-template-columns:1fr repeat(2,auto)}.roster span:nth-last-child(-n+3){display:none}.scoreboard-card{grid-template-columns:1fr 1fr}.scoreboard-card .clock{grid-area:1/1/auto/-1}.scoreboard-card>div{padding:1rem}.scoreboard-card strong{font-size:5rem}.clock b{font-size:4rem}}@media (max-width:430px){.team-names{grid-template-columns:1fr}.sticky-score{gap:.4rem;padding:.5rem}.sticky-score>div:not(.game-state){padding:.45rem}.team-columns,.console-lower{padding-left:.5rem;padding-right:.5rem}.brand span{display:none}.play{grid-template-columns:60px 1fr auto}.play>span:nth-child(3){grid-column:2}.stats-row{grid-template-columns:minmax(110px,1fr) repeat(8,42px)}}.last-play{z-index:24;border:1px solid #cbd9ed;border-left:5px solid var(--orange);background:#fff;border-radius:13px;grid-template-columns:auto minmax(120px,1fr) minmax(180px,2fr) auto auto;align-items:center;gap:.8rem;min-height:58px;margin:0 1rem .8rem;padding:.65rem 1rem;display:grid;position:sticky;top:166px;box-shadow:0 5px 16px #14335d0d}.last-play b{font-size:1rem}.last-play>span:not(.eyebrow){color:var(--muted)}.last-play time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.82rem}.last-play em{color:var(--danger);font-size:.72rem;font-weight:900}.last-play.voided{border-left-color:var(--danger);background:#fff7f6}@media (max-width:800px){.last-play{grid-template-columns:auto 1fr auto;gap:.25rem .65rem;min-height:52px;margin:0 .5rem .6rem;padding:.55rem .75rem;top:296px}.last-play>span:not(.eyebrow){white-space:nowrap;text-overflow:ellipsis;grid-column:2/4;overflow:hidden}.last-play time{grid-area:1/3}.last-play em{grid-column:3}}@media (max-width:430px){.last-play{grid-template-columns:1fr auto;top:285px}.last-play .eyebrow,.last-play b{grid-column:1}.last-play>span:not(.eyebrow){grid-column:1/3}.last-play time{grid-area:1/2}.last-play em{grid-area:2/2}}.score-stack{z-index:25;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#eaf0f8ef;padding-bottom:.05rem;position:sticky;top:67px}.score-stack .sticky-score{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;position:static;top:auto}.score-stack .last-play{position:static;top:auto}@media (max-width:800px){.score-stack{top:119px}}.team-identity{gap:.42rem;min-width:0;display:grid}.team-identity h2{overflow-wrap:anywhere}.team-counters{flex-wrap:wrap;gap:.42rem;display:flex}.team-counters span{white-space:nowrap;background:#00000018;border:1px solid;border-radius:999px;align-items:center;gap:.3rem;min-height:29px;padding:.28rem .55rem;font-size:.73rem;font-weight:750;display:inline-flex}.team-counters span b{font-size:1rem;line-height:1}@media (max-width:430px){.team-head{align-items:flex-start;gap:.5rem;padding:.7rem}.team-head>button{padding:.55rem .65rem;font-size:.78rem}.team-counters{gap:.3rem}.team-counters span{padding:.24rem .42rem;font-size:.67rem}}.brand{color:inherit;align-items:center;gap:.72rem;text-decoration:none;display:flex}.brand img{object-fit:contain;width:112px;height:44px}.slideshow img{object-fit:contain;width:min(300px,70vw);height:auto}@media (max-width:430px){.brand img{width:94px;height:38px}}.player-edit-modal{width:min(680px,100%)}.player-edit-modal label small{color:var(--muted);font-weight:500}.player-edit-modal input:disabled{color:#667085;cursor:not-allowed;background:#eef2f6}.edit-actions{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.remove-confirm{color:#7a271a;background:#fff5f3;border:1px solid #f1a6a0;border-radius:12px;gap:.55rem;max-width:340px;padding:.75rem;font-size:.84rem;display:grid}@media (max-width:600px){.player-edit-modal{padding:1rem}.player-edit-modal .form-grid{gap:.75rem}.edit-actions{flex-direction:column}.edit-actions>.button-row,.edit-actions>.danger-button,.remove-confirm{width:100%}.edit-actions>.button-row button,.remove-confirm .button-row button{flex:1}.remove-confirm{max-width:none}}
