@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#0b1120;--surface:#121d30;--raised:#18263b;--border:#28364c;--text:#f1f5ff;--muted:#9baac0;--blue:#80b4ff;--blue-strong:#458cf2;font-family:'DM Sans',Arial,sans-serif;background:var(--bg);color:var(--text);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:4px}a{color:var(--blue)}[hidden]{display:none!important}.header{max-width:1152px;margin:auto;padding:21px 36px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.brand{font:800 italic 36px 'Barlow Condensed',Impact,sans-serif;color:var(--text);text-decoration:none;letter-spacing:-1px}.brand span{color:var(--blue)}nav{display:flex;gap:26px}.text-button{background:none;border:0;color:var(--muted);font-size:14px;padding:8px 0}.text-button:hover{color:var(--text)}main{max-width:1080px;margin:auto;padding:30px 28px 20px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}h1{font:700 38px 'Barlow Condensed',Impact,sans-serif;margin:0}.toolbar p{font-size:16px;color:var(--muted);margin:7px 0 0}.mode-picker{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:7px;min-width:170px}select{border:1px solid var(--border);border-radius:8px;padding:11px 14px;background:var(--surface);color:var(--text);font-size:14px;cursor:pointer}.scoreboard{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;align-items:center;border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:23px 27px 18px;gap:18px 22px}.main-stat>span,.mini-stat>span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.main-stat strong{font:700 56px/1.1 'Barlow Condensed',Impact,sans-serif;font-variant-numeric:tabular-nums}.main-stat>div>span{font-size:16px;color:var(--muted)}.mini-stat{border-left:1px solid var(--border);padding-left:24px;display:flex;flex-direction:column;gap:7px}.mini-stat strong{font:600 32px/1 'Barlow Condensed',Impact,sans-serif}.mini-stat strong span{font-size:20px;color:var(--muted)}.progress-section{grid-column:1/-1}.progress-track{height:6px;border-radius:5px;background:#26354e;overflow:hidden}#progress{height:100%;width:0;background:var(--blue);border-radius:5px;transition:width .35s ease}.pace-row{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);margin-top:10px}#goat-targets{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;margin-top:12px;color:var(--muted)}.met{color:var(--blue)}.missed{color:#ffafaf}.round-bar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:25px 0 14px}.round-bar h2{font-size:16px;margin:0;font-weight:600}.round-bar>span{font-size:14px;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.qb-card{--team-primary:#183453;--team-secondary:#80b4ff;position:relative;border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden;min-width:0;display:flex;flex-direction:column;isolation:isolate}.portrait-area{position:relative;height:224px;background:linear-gradient(135deg,color-mix(in srgb,var(--team-primary) 35%,#172238),#131e32);border-bottom:1px solid var(--border);overflow:hidden}.portrait-area:after{content:'';position:absolute;bottom:0;left:0;right:0;height:28px;background:linear-gradient(transparent,#121d30)}.qb-portrait{width:100%;height:100%;object-fit:contain;object-position:center bottom;display:block;filter:drop-shadow(0 4px 10px #0003)}.team-badge{position:absolute;left:16px;top:14px;border:1px solid #ffffff20;border-left:4px solid var(--team-secondary);border-radius:5px;background:#091322df;padding:7px 9px;font-size:12px;color:#eef4ff;z-index:1;max-width:calc(100% - 32px);line-height:1.4}.team-badge small{color:#a9b9cd;font-size:12px;margin-left:4px}.qb-copy{padding:19px 22px 21px;flex:1;display:flex;flex-direction:column}.qb-copy h3{font:700 34px/1.05 'Barlow Condensed',Impact,sans-serif;margin:0;overflow-wrap:anywhere}.archive-label{font-size:12px;color:var(--muted);margin:8px 0 17px;line-height:1.5}.pick-button,.primary-button{border:1px solid #92beff;background:var(--blue);color:#081426;border-radius:7px;min-height:46px;padding:12px 18px;font-size:14px;font-weight:700;transition:background .15s,transform .15s}.pick-button{width:100%;display:flex;align-items:center;justify-content:space-between;margin-top:auto}.pick-button:hover,.primary-button:hover{background:#a5caff}.pick-button:active,.primary-button:active{transform:translateY(1px)}.pick-button span{font-size:20px;line-height:1}.actions{display:flex;justify-content:center;margin-top:16px}.refresh-button{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;min-height:48px;padding:12px 23px;font-size:14px;display:flex;align-items:center;gap:12px}.refresh-button>span:first-child{font-size:23px;color:var(--blue);line-height:1}.refresh-button #passes{border-left:1px solid var(--border);padding-left:13px;color:var(--muted);font-size:13px}.refresh-button:hover:not(:disabled){background:var(--raised)}.primary-button{min-width:230px;display:flex;justify-content:space-between;gap:30px;align-items:center}.cards.single{grid-template-columns:1fr}.cards.single .qb-card{display:grid;grid-template-columns:1fr 1.25fr}.cards.single .portrait-area{height:290px;border-right:1px solid var(--border);border-bottom:0}.cards.single .qb-copy{padding:26px 30px;justify-content:center}.reveal-value{font:700 76px/1 'Barlow Condensed',Impact,sans-serif;letter-spacing:-1px;color:var(--blue);margin:12px 0}.reveal-value small{font:600 14px 'DM Sans',Arial,sans-serif;letter-spacing:.5px;margin-left:7px}.reveal-stats{display:flex;gap:22px;font-size:14px;color:var(--muted)}.game-meta{font-size:14px;line-height:1.6;color:var(--muted);margin:11px 0 0}.result-card{padding:30px;text-align:center;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.result-card h3{font:700 36px 'Barlow Condensed',Impact,sans-serif;margin:0}.result-card p{color:var(--muted);font-size:14px}.result-value{font:700 68px/1.1 'Barlow Condensed',Impact,sans-serif;color:var(--blue);margin:15px 0}.result-value small{font:600 14px 'DM Sans',Arial,sans-serif;color:var(--muted)}.result-stats{display:flex;justify-content:center;gap:30px;margin:15px 0 20px}.result-stats>div{font-size:13px;color:var(--muted)}.result-stats strong{display:block;font-size:26px;color:var(--text);margin-bottom:4px}.game-log{margin-top:28px}.log-heading{display:flex;justify-content:space-between;align-items:center}.log-heading h2{font-size:16px;font-weight:600;margin:0}.log-heading span{font-size:12px;color:var(--muted)}.slots{display:grid;grid-template-columns:repeat(17,minmax(0,1fr));gap:6px;margin-top:13px}.slot{min-height:61px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px dashed var(--border);background:transparent;border-radius:6px;font-size:12px;color:#8797af;padding:4px 1px}.slot.current{border:1px solid var(--blue);color:var(--blue);background:#1b2c45}.slot.filled{border:1px solid #344d71;background:#1a2a43;color:var(--text)}.slot.filled.big{border-color:#6295d4;background:#223d5d}.slot small{font-size:12px}.slot strong{font:600 20px 'Barlow Condensed',Impact,sans-serif}footer{display:flex;justify-content:space-between;gap:15px;align-items:center;border-top:1px solid var(--border);margin-top:27px;padding-top:15px;font-size:12px;color:var(--muted)}footer .text-button{font-size:12px;white-space:nowrap}.loading{grid-column:1/-1;min-height:320px;display:grid;place-content:center;border:1px solid var(--border);border-radius:12px;color:var(--muted);text-align:center;padding:30px;font-size:16px}.loading p{line-height:1.7}.loading button{margin-top:15px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);width:min(580px,calc(100% - 32px));padding:32px;max-height:85dvh;overflow:auto}dialog::backdrop{background:#030817bd;backdrop-filter:blur(5px)}.close-modal{position:absolute;right:14px;top:9px;font-size:28px;border:0;background:none;color:var(--muted)}dialog h2{font:700 34px 'Barlow Condensed',Impact,sans-serif;margin:0 0 17px}dialog h3{font-size:16px;margin-top:24px}dialog p,dialog li{font-size:15px;line-height:1.7;color:var(--muted)}dialog li{margin-bottom:10px}dialog strong{color:var(--text)}dialog .primary-button,dialog .secondary{width:100%;display:block;margin-top:12px}dialog .secondary{border:1px solid var(--border);background:transparent;color:var(--text);border-radius:7px;padding:12px;font-size:14px}dialog .result-value,dialog .result-stats{text-align:center}.share-fallback{width:100%;height:160px;padding:14px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:7px;font:14px 'DM Sans',sans-serif}.roster-list{width:100%;border-collapse:collapse;font-size:13px}.roster-list th,.roster-list td{text-align:left;padding:9px 5px;border-bottom:1px solid var(--border)}.roster-list td{color:var(--muted)}#toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:var(--raised);color:var(--text);border:1px solid #4b6990;border-radius:8px;padding:13px 20px;transition:.2s;z-index:5;font-size:14px;max-width:calc(100% - 30px)}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:760px){.header{padding:17px 22px}.brand{font-size:32px}nav{gap:19px}main{padding:24px 20px 17px}.toolbar{gap:15px;align-items:flex-start}.toolbar p{font-size:14px;line-height:1.6}.toolbar h1{font-size:34px}.mode-picker{min-width:135px;max-width:150px}select{padding:10px;font-size:13px}.scoreboard{padding:18px;gap:17px 15px}.main-stat strong{font-size:46px}.main-stat>div>span{font-size:13px}.mini-stat{padding-left:15px}.mini-stat strong{font-size:29px}.mini-stat>span,.main-stat>span{letter-spacing:.4px}.cards{gap:12px}.portrait-area{height:190px}.qb-copy{padding:16px}.qb-copy h3{font-size:29px}.team-badge{left:10px;top:10px;max-width:calc(100% - 20px);padding:5px 7px}.team-badge small{display:block;margin-left:0}.pick-button{padding:11px;font-size:13px}.archive-label{margin-bottom:14px}.slots{grid-template-columns:repeat(9,minmax(0,1fr))}.cards.single .portrait-area{height:280px}.cards.single .qb-copy{padding:22px}.cards.single .qb-copy h3{font-size:31px}.reveal-value{font-size:65px}.pace-row{flex-wrap:wrap}.round-bar>span{font-size:13px}}
@media(max-width:480px){main{padding:20px 14px}.header{padding:15px 17px}nav{gap:14px}.text-button{font-size:13px}.toolbar{gap:10px}.mode-picker{min-width:122px}.scoreboard{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:16px}.main-stat{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px}.main-stat strong{font-size:45px}.mini-stat{padding:0;border:0}.mini-stat strong{font-size:29px}.main-stat>span{font-size:12px}.cards{gap:10px}.portrait-area{height:154px}.qb-copy{padding:13px 11px}.qb-copy h3{font-size:27px}.pick-button span{display:none}.team-badge{font-size:12px;left:8px;top:8px;padding:4px 6px;max-width:calc(100% - 16px)}.team-badge small{font-size:12px}.archive-label{font-size:12px}.round-bar{gap:9px}.round-bar>span{font-size:12px}.refresh-button{width:100%;justify-content:center}.cards.single .qb-card{grid-template-columns:1fr}.cards.single .portrait-area{height:190px;border-right:0;border-bottom:1px solid var(--border)}.cards.single .qb-copy{padding:22px}.cards.single .qb-portrait{max-width:270px;margin:auto}.reveal-value{font-size:68px}.primary-button{width:100%}.result-card{padding:25px 15px}.result-stats{gap:22px}.pace-row{font-size:12px}.slots{gap:5px}footer{align-items:flex-start;line-height:1.6}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.header{gap:16px;flex-wrap:wrap}.header nav{flex-wrap:wrap;row-gap:6px}.sound-button[aria-pressed="true"]{color:var(--blue)}
.network-status{font-size:.75rem;color:var(--muted,#94a3b8);text-align:center;margin:16px 0 0;min-height:1.2em}
.score-upload{border-top:1px solid #2c3b51;margin-top:26px;padding-top:24px;text-align:left;width:100%}.score-upload h4{font-size:1.1rem;margin:0 0 16px}.score-upload label{display:block;font-size:.85rem;font-weight:600;margin-bottom:8px}.upload-row{display:flex;gap:10px;align-items:stretch}.upload-row input{width:100%;min-width:0;flex:1;border:1px solid #445875;background:#0b1120;color:#f1f5f9;font:inherit;border-radius:10px;padding:12px 14px}.upload-row .primary-button{white-space:nowrap;margin:0;font-size:.85rem}.score-upload .upload-note,.score-upload p{font-size:.82rem;line-height:1.6;color:#acbcd0}.score-upload #submit-status{color:#c6dcff;min-height:1.6em}.score-upload .secondary{margin-top:8px}input:focus-visible,select:focus-visible{outline:3px solid #80b4ff;outline-offset:3px}
.board-picker{display:flex;align-items:center;gap:14px;color:#aabbd1;font-size:.85rem}.board-picker select{flex:1;min-width:0;border:1px solid #445875;border-radius:8px;background:#0b1120;color:#f1f5f9;padding:10px;font:inherit}.board-rule{font-size:.78rem!important;line-height:1.6;color:#9aaec8}.board-scroll{overflow-x:auto}.leaderboard-table{width:100%;border-collapse:collapse;font-size:.86rem;font-variant-numeric:tabular-nums}.leaderboard-table thead th{text-align:right;color:#98acc7;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;padding:12px 6px;border-bottom:1px solid #3a4a61}.leaderboard-table thead th:first-child{text-align:left}.board-player{display:flex;align-items:center;gap:10px}.board-player>span:last-child{overflow-wrap:anywhere}.leaderboard-table tbody th{text-align:left;font-weight:500;padding:13px 6px}.leaderboard-table td{padding:13px 6px;text-align:right}.leaderboard-table tbody tr{border-bottom:1px solid #27364b}.leaderboard-table small{display:block;color:#8d9fb8;font-size:.65rem;margin-top:5px}.rank-number{color:#8ba1bf;min-width:20px}.score-primary{color:#a6caff;font-weight:700}.challenge-check{color:#8cd2b1}.your-score{background:#172c47}.board-empty{text-align:center;background:#111e30;padding:32px 18px;border-radius:12px;margin-top:20px}.board-empty p{font-size:.9rem!important}.board-empty strong{font-size:1.15rem}
@media(max-width:520px){.header nav{gap:12px}.header .text-button{font-size:.72rem}.upload-row{flex-direction:column}.upload-row .primary-button{width:100%}.leaderboard-table{font-size:.76rem}.board-player{gap:6px}.score-upload{padding-top:20px}}
/* Both season resources stay together, with independent counters. */
.actions{gap:12px;flex-wrap:wrap}.random-button{border-color:#5279ac}.refresh-button #randoms{border-left:1px solid var(--border);padding-left:13px;color:var(--muted);font-size:13px}.result-stats{flex-wrap:wrap}
@media(max-width:480px){.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.actions .refresh-button{font-size:12px;flex-wrap:wrap;padding:12px 7px;gap:5px}.actions .refresh-button>span:last-child{flex-basis:100%}#actions #passes,#actions #randoms{border-left:0;padding-left:0}.actions #next{grid-column:1/-1}}
/* In-game scouting and the final stretch use the existing stadium-blue palette. */
.scouting-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 18px;padding:13px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.scouting-stats dt{color:var(--muted);font-size:.875rem;line-height:1.4}.scouting-stats dd{margin:5px 0 0;color:var(--text);font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums}
.situation{margin:24px 0 0;border:1px solid #689fe9;border-left:4px solid var(--blue);border-radius:8px;background:#182d49;padding:18px 20px;font-size:1.25rem;font-weight:700;line-height:1.5;color:#d8e9ff}
.milestone-celebration{border:1px solid #e0bf66;border-radius:8px;background:#302b1b;color:#ffe7a5;padding:16px 20px;margin:24px 0 0;font-size:1rem;font-weight:700;line-height:1.6;animation:award-in .3s ease-out}@keyframes award-in{from{transform:translateY(5px);opacity:.2}to{transform:translateY(0);opacity:1}}
.personal-milestones{margin-top:26px}.milestone-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.milestone-chip{border:1px solid var(--border);border-radius:7px;padding:10px 12px;color:var(--muted);font-size:.875rem;line-height:1.5}.milestone-chip.earned{color:#ffe7a5;border-color:#796535;background:#252519}.personal-milestones .log-heading{gap:12px;flex-wrap:wrap}
.season-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0;text-align:left}.season-highlight{background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:18px;min-width:0}.season-highlight h4{font-size:.875rem;color:var(--blue);margin:0 0 12px}.season-highlight img{display:block;object-fit:contain;margin-bottom:8px}.season-highlight strong{font-size:1.1rem;display:block;overflow-wrap:anywhere}.season-highlight p{font-size:.875rem;line-height:1.6;margin:8px 0}.season-highlight small{display:block;font-size:.875rem;line-height:1.6;color:var(--muted)}
@media(max-width:640px){.season-highlights{grid-template-columns:1fr}.season-highlight img{float:right;margin:0 0 8px 12px}.situation{font-size:1.1rem;padding:15px}.scouting-stats{gap:6px}.scouting-stats dd{font-size:1.25rem}.scouting-stats dt{font-size:.875rem}.personal-milestones .log-heading span{font-size:.75rem}}
.scouting-stats dt{min-height:2.8em}@media(max-width:480px){.scouting-stats dt{min-height:4.2em}}
