@import url("https://fonts.googleapis.com/css2?family=Archivo+Black&display=swap");

:root{--black:#000;--line:#292929;--white:#f4f4ef;--amber:#ffb000;--green:#26d07c;--red:#ff3b3b;--display-font:"Archivo Black","Arial Black","Arial Narrow",Arial,sans-serif}
*{box-sizing:border-box}
html,body{min-height:100%;background:#000}
body{margin:0;color:var(--white);font-family:var(--display-font)}
button,select{font:inherit}
main{width:100%;height:100%;min-height:0;overflow:hidden;background:linear-gradient(180deg,#070707 0,#000 24%)}
.scoreboard-header{height:54px;border-bottom:1px solid var(--line);background:#030303}
.topbar{display:flex;align-items:stretch;width:100%;height:100%;padding:0 10px}
.page-tabs{display:flex;align-items:stretch;height:100%}
.page-tabs button{position:relative;display:flex;align-items:center;padding:0 25px;color:#484848;border:0;border-left:1px solid #141414;background:transparent;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.page-tabs button.active{color:var(--white);background:#0b0b0b}
.page-tabs button.active:after{content:"";position:absolute;right:0;bottom:-1px;left:0;height:3px;background:var(--amber)}
.live-state{display:flex;align-items:center;gap:9px;margin-left:auto;color:#8b8b8b;font-size:10px;font-weight:900;letter-spacing:.15em}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 10px rgba(38,208,124,.7);animation:pulse 1.8s infinite}
.pulse.offline{background:var(--red);box-shadow:0 0 10px rgba(255,59,59,.7)}
.scoreboard-shell{width:100%;height:calc(100% - 54px);padding:4px 6px}
.notice{position:absolute;z-index:20;top:58px;right:6px;padding:8px 12px;color:#ddd;border-left:3px solid var(--red);background:#160707;font:12px Arial,sans-serif}
.board-section{display:flex;flex-direction:column;height:100%}
.board-toolbar{display:flex;align-items:center;justify-content:space-between;min-height:50px;padding:0 4px 4px}
.week-title{display:flex;align-items:baseline;gap:10px}
.week-title>span{color:#6b6b6b;font-size:11px;font-weight:900;letter-spacing:.28em}
.week-title h1{margin:0;color:var(--amber);text-shadow:0 0 18px rgba(255,176,0,.25);font-size:46px;line-height:1;letter-spacing:.08em}
.board-controls{display:flex;align-items:center;gap:14px}
.board-controls select{height:32px;min-width:146px;padding:0 28px 0 10px;color:#777;border:1px solid #242424;border-radius:0;outline:none;background:#070707;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.timestamp{display:flex;align-items:flex-end;flex-direction:column;gap:2px;color:#777;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}
.timestamp small{color:#3f3f3f;font-size:7px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.timestamp b{color:#777;font-size:12px;font-weight:700}
.scoreboard-halves{--players:6;display:grid;grid-template-rows:1fr 1fr;flex:1;min-height:0;gap:4px}
.scoreboard-halves.single{grid-template-rows:1fr}
.game-block{display:flex;flex-direction:column;min-height:0}
.table-frame{overflow:auto;flex:1;min-height:0;border:1px solid #242424;background:#030303}
.score-table{width:100%;min-width:1180px;height:100%;color:#ddd;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px}
.score-table th,.score-table td{height:auto;min-height:54px;padding:4px;text-align:center;border-right:1px solid #242424;border-bottom:1px solid #242424;background-color:#060606;background-image:radial-gradient(circle,rgba(255,255,255,.027) 1px,transparent 1px);background-size:5px 5px}
.score-table thead th{height:94px;color:#eee;border-bottom:2px solid #3a3a3a;background-color:#0d0d0d;background-image:linear-gradient(180deg,rgba(255,255,255,.03),transparent),radial-gradient(circle,rgba(255,176,0,.04) 1px,transparent 1px);background-size:auto,5px 5px}
.player-col{position:sticky;left:0;z-index:2;width:245px;min-width:245px;padding-left:13px!important;text-align:left!important;background-color:#090909!important;box-shadow:10px 0 18px -18px #fff}
.score-table thead .player-col{z-index:5;color:#595959;background-color:#0d0d0d!important;font-size:9px;letter-spacing:.2em;text-transform:uppercase}
.placeholder-row{opacity:.24}
.placeholder-row .pick-value{color:#4b4b4b}
.player-rank{display:inline-block;width:34px;margin-right:12px;color:#555;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:900}
.player-name{font-size:22px;font-weight:900;letter-spacing:.03em;text-transform:uppercase}
.player-total{margin-left:9px;opacity:.5;font-size:13px;font-weight:900;letter-spacing:.04em;white-space:nowrap}
.game-head,.pick-cell{width:auto;min-width:112px}
.game-head{position:relative;transition:opacity .2s,filter .2s}
.game-head.live{box-shadow:inset 0 3px var(--red)}
.live-tag,.change-tag{position:absolute;z-index:5;top:4px;padding:2px 5px;font-size:7px;font-weight:900;letter-spacing:.1em}
.live-tag{left:50%;color:#fff;background:var(--red);transform:translateX(-50%)}
.change-tag{right:4px;color:#050505;background:var(--amber)}
.team-score{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:82px;margin:0;padding:0 7px 0 5px;gap:8px;overflow:hidden;color:var(--team-ink);background:var(--team-color);box-shadow:inset 0 1px rgba(255,255,255,.12),inset 0 -1px rgba(0,0,0,.32)}
.team-score+.team-score{border-top:1px solid rgba(0,0,0,.35)}
.team-score>span{position:relative;z-index:1;display:flex;align-items:center;gap:8px;font-size:38px}
.team-score i{color:inherit;text-shadow:0 1px 2px rgba(0,0,0,.4);font-style:normal;font-size:inherit;font-weight:900;letter-spacing:.04em}
.team-score b{position:relative;z-index:1;min-width:34px;padding:10px 0;color:inherit;text-shadow:0 1px 2px rgba(0,0,0,.38);font-size:50px;line-height:1;text-align:right}
.team-logo-wrap{position:relative;display:grid!important;place-items:center;width:80px;height:80px;overflow:visible;color:#fff;background:transparent;font-size:7px}
.team-logo-wrap>span{display:none}
.team-logo{position:absolute;inset:3px;width:74px;height:74px;object-fit:contain;z-index:1;filter:drop-shadow(0 0 1px rgba(255,255,255,.95)) drop-shadow(0 2px 3px rgba(0,0,0,.95))}
.team-logo.negative{filter:brightness(0) invert(1) drop-shadow(0 2px 3px rgba(0,0,0,.85))}
.pick-cell{position:relative;font-variant-numeric:tabular-nums}
.pick-value{color:#efefe8;font-size:31px;font-weight:900;letter-spacing:.05em}
.game-head.upcoming,.pick-cell.upcoming{opacity:.5}
.game-head.score-changed{z-index:3;animation:score-border-fade 90s linear forwards,score-pulse 1.15s ease-in-out infinite alternate}
.game-head.score-changed .change-tag{animation:score-tag-fade 90s linear forwards}
.pick-cell.exact{box-shadow:inset 0 0 0 3px var(--amber);background-color:#241a03!important}
.pick-cell.exact .pick-value{color:var(--amber)}
.pick-cell.correct{box-shadow:inset 0 0 0 3px var(--green);background-color:#07351f!important}
.pick-cell.correct .pick-value{color:#7dffb9}
.pick-cell.wrong{box-shadow:inset 0 0 0 3px var(--red);background-color:#3a0707!important}
.pick-cell.wrong .pick-value{color:#ff7d7d}
.pick-cell.correct:after,.pick-cell.exact:after,.pick-cell.wrong:after{position:absolute;z-index:3;top:5px;right:7px;font-family:Arial,sans-serif;font-size:15px;font-weight:900;line-height:1}
.pick-cell.correct:after,.pick-cell.exact:after{content:"✓";color:var(--green)}
.pick-cell.wrong:after{content:"×";color:var(--red)}
.points-col{width:92px;min-width:92px;font-weight:900}
.points-col.total{color:var(--amber);text-shadow:0 0 13px rgba(255,176,0,.25);background-color:#0c0a04!important;font-size:26px}
.loading-board{display:grid;flex:1;gap:1px;padding:1px;overflow:hidden;border:1px solid var(--line);background:#111}
.loading-board div{background:linear-gradient(90deg,#080808 25%,#111 50%,#080808 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}
.live-empty{display:grid;place-content:center;flex:1;min-height:0;text-align:center;border:1px solid #252525;background:#040404}
.live-empty strong{color:#555;font-size:54px;letter-spacing:.08em}
.live-empty span{margin-top:12px;color:#444;font-size:15px;letter-spacing:.04em}
.division-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);flex:1;min-height:0;gap:5px}
.division-card{min-width:0;overflow:hidden;border:1px solid #292929;background:#050505}
.division-card h2{margin:0;padding:10px 14px;color:var(--amber);border-bottom:2px solid #444;background:#101010;font-size:28px;letter-spacing:.08em}
.division-head,.division-team{display:grid;grid-template-columns:minmax(200px,1fr) repeat(3,70px) 100px;align-items:center;min-height:68px;border-bottom:1px solid #202020;text-align:center}
.division-head{min-height:38px;color:#777;background:#090909;font-size:14px;letter-spacing:.1em}
.division-head span{padding-left:14px;text-align:left}
.division-team{font-size:24px}
.division-team:first-of-type{background:#0d0d08}
.division-name{display:flex;align-items:center;min-width:0;gap:10px;padding-left:10px;text-align:left}
.division-name i{width:20px;color:#666;font-style:normal;font-size:16px}
.division-name strong{font-size:29px;letter-spacing:.05em}
.division-name .team-logo-wrap{flex:0 0 auto;width:64px;height:64px}
.division-name .team-logo{inset:3px;width:58px;height:58px}
.season-frame{flex:1;min-height:0;overflow:auto;border:1px solid #292929;background:#050505}
.season-table{width:100%;height:100%;border-collapse:collapse;table-layout:fixed}
.season-table th,.season-table td{padding:8px 5px;border-right:1px solid #242424;border-bottom:1px solid #242424;text-align:center;font-size:18px}
.season-table thead th{height:54px;color:#777;background:#101010;font-size:12px;letter-spacing:.08em}
.season-table thead th:nth-child(2),.season-table tbody th{width:230px;text-align:left}
.season-table thead th:first-child,.season-table tbody td:first-child{width:64px;color:#555}
.season-table tbody th{padding-left:14px;color:#f4f4ef;background:#0a0a0a;font-size:23px;text-transform:uppercase}
.season-table td.has-points{color:var(--green);background:#07150d}
.season-table .season-total{width:86px;color:var(--amber);background:#171204;font-size:25px;font-weight:900}
.tv-simulator{position:fixed;inset:0;display:grid;place-items:center;overflow:hidden;background:#151515}
.tv-viewport{position:absolute;width:2560px;height:1080px;overflow:hidden;background:#000;box-shadow:0 0 0 2px #333,0 20px 70px rgba(0,0,0,.7);transform:scale(var(--tv-scale,1));transform-origin:center}
@keyframes pulse{50%{opacity:.4}}
@keyframes shimmer{to{background-position:-200% 0}}
@keyframes score-border-fade{0%{filter:brightness(1.3);box-shadow:inset 0 0 0 6px rgba(255,176,0,1),0 0 28px rgba(255,176,0,.75)}50%{filter:brightness(1.15);box-shadow:inset 0 0 0 4px rgba(255,176,0,.5),0 0 16px rgba(255,176,0,.375)}100%{filter:brightness(1);box-shadow:inset 0 0 0 2px rgba(255,176,0,0),0 0 0 rgba(255,176,0,0)}}
@keyframes score-pulse{from{opacity:.78}to{opacity:1}}
@keyframes score-tag-fade{0%{opacity:1}50%{opacity:.5}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important}}
