/* Default density matches the original dashboard at 75% browser zoom. */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#0c111b;--panel:#141c29;--line:#263142;--muted:#8d9bb0;--mint:#a3f3c5}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#edf2f9;font:10.5px 'DM Sans',system-ui,sans-serif}header{height:60px;border-bottom:0.75px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5%}.brand{color:var(--mint);text-decoration:none;font:700 15px 'Space Grotesk',sans-serif;letter-spacing:1.5px}.brand span{color:#edf2f9;margin-left:9px}.tag,.eyebrow{font-size:8.25px;letter-spacing:1.5px;color:var(--muted)}main{max-width:1350px;margin:auto;padding:33.75px 5%}.intro{display:flex;align-items:center;justify-content:space-between;gap:22.5px;margin-bottom:26.25px}.eyebrow{color:var(--mint)}h1{font:600 clamp(27px,4vw,43.5px)/1.08 'Space Grotesk',sans-serif;letter-spacing:-1.5px;margin:12px 0}h1 span{color:var(--mint)}p,small{color:var(--muted)}.connection{width:270px}label{display:block;color:var(--muted);font-size:9px;margin-bottom:6px}input,select,button{font:inherit;border:0.75px solid var(--line);border-radius:6px;padding:9px;background:#0d1521;color:#edf2f9;min-width:0}input:focus,select:focus,button:focus-visible{outline:1.5px solid var(--mint);outline-offset:1.5px}button{cursor:pointer;background:var(--mint);color:#10251b;font-weight:700;white-space:nowrap}button:disabled{opacity:.6;cursor:wait}.input-group{display:flex;gap:6px;margin-bottom:7.5px}.input-group input{width:100%}.toolbar{display:flex;gap:12px;align-items:end;border:0.75px solid var(--line);background:var(--panel);padding:15px;border-radius:9px;flex-wrap:wrap}.toolbar select{max-width:240px}.search-wrap{flex:1;min-width:135px}.search-wrap input{width:100%}.toggle{display:flex;align-items:center;gap:6px;height:32.25px;margin:0;white-space:nowrap}.toggle input{accent-color:var(--mint)}.secondary{background:#202c3c;color:#edf2f9}.summary{display:flex;justify-content:space-between;align-items:center;margin:22.5px 0 15px;gap:15px}h2{font:600 18px 'Space Grotesk',sans-serif;margin:0 0 6px}#league-meta,#updated{color:var(--muted);font-size:9px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(206.25px,1fr));gap:13.5px}.card{background:var(--panel);border:0.75px solid var(--line);border-radius:9px;overflow:hidden}.card.mine{border-color:#64b58a}.card-head{padding:15px;border-bottom:0.75px solid var(--line)}.team-top{display:flex;align-items:center;gap:7.5px}.avatar{width:25.5px;height:25.5px;display:grid;place-items:center;border-radius:50%;background:#263749;color:var(--mint);font-weight:700}.team-name{font-weight:700;overflow-wrap:anywhere}.owner{color:var(--muted);font-size:8.25px;margin-top:2.25px}.scoreline{display:flex;align-items:end;justify-content:space-between;margin-top:13.5px}.total{font:600 27px 'Space Grotesk',sans-serif;letter-spacing:-0.75px}.points-label{color:var(--muted);font-size:8.25px}.opponent{font-size:8.25px;color:var(--muted);text-align:right;max-width:48%}.rank{font-size:7.5px;color:var(--mint);margin-left:auto}.row{display:flex;align-items:center;gap:7.5px;padding:8.25px 12px;border-bottom:0.75px solid #202b3b}.slot{width:28.5px;flex-shrink:0;font-size:7.5px;color:var(--mint);font-weight:700}.player{flex:1;min-width:0}.player-name{font-size:9px;font-weight:500;overflow-wrap:anywhere}.player-meta{font-size:7.5px;color:var(--muted);margin-top:2.25px}.player-score{font:500 11.25px 'Space Grotesk',sans-serif}.zero{color:var(--muted)}.bench-title{padding:9px 12px;background:#101824;font-size:7.5px;letter-spacing:1.5px;color:var(--muted)}.empty{padding:26.25px;color:var(--muted);grid-column:1/-1;border:0.75px dashed var(--line);border-radius:9px}#error{padding:12px;background:#382328;color:#ffbdc5;border-radius:6px;margin-bottom:15px}footer{margin-top:22.5px;color:var(--muted);font-size:8.25px;line-height:1.8}footer a{color:var(--mint);float:right}@media(min-width:1087.5px){.grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:525px){header{height:48px}.tag{display:none}main{padding-top:21px}.intro{display:block}.connection{width:100%;margin-top:18.75px}.toolbar{gap:9px;padding:10.5px}.toolbar>div:first-child{width:100%}.toolbar select{max-width:100%;width:100%}.summary{align-items:start;flex-direction:column;gap:6px}.grid{grid-template-columns:1fr}footer a{float:none;display:block}}

/* League board: dedicate the viewport to the rosters. */
header{height:36px;padding:0 12px}.brand{font-size:11.25px}header button{padding:5.25px 9px;font-size:9px}main{max-width:none;padding:9px 12px}.intro{margin:0 0 7.5px;justify-content:flex-end}.intro>div:first-child{display:none}.connection{width:auto;display:flex;align-items:center;gap:7.5px}.connection>label{margin:0}.connection small{display:none}.input-group{margin:0}.input-group input{width:120px}.input-group input,.input-group button{padding:4.5px 7.5px;font-size:9px}.toolbar{gap:7.5px;padding:7.5px;border-radius:6px}.toolbar label{font-size:7.5px;margin-bottom:3px}.toolbar input,.toolbar select,.toolbar button{padding:5.25px 6.75px;font-size:9px}.toolbar .toggle{height:23.25px;margin:0}.summary{margin:9px 0 7.5px}h2{font-size:13.5px;margin-bottom:2.25px}#league-meta,#updated{font-size:7.5px}.grid{grid-template-columns:repeat(var(--team-count,12),minmax(0,1fr));gap:3.75px;align-items:stretch}.card{min-width:0;border-radius:4.5px;display:flex;flex-direction:column}.card-head{padding:6px 4.5px;min-height:81px}.team-top{display:block;position:relative}.avatar{display:none}.team-name{font-size:9px;line-height:1.2;min-height:21.75px}.owner{font-size:6.75px;overflow-wrap:anywhere}.rank{font-size:6px;display:block;margin-top:2.25px}.scoreline{margin-top:4.5px;display:block}.total{font-size:18.75px}.points-label{font-size:6px}.opponent{display:none}.row{display:grid;grid-template-columns:1fr auto;gap:1.5px 2.25px;padding:3.75px 4.5px;flex:1;min-height:34.5px;align-content:center}.player{grid-column:1/-1;grid-row:1}.player-name{font-size:12px;font-weight:600;line-height:1.12;overflow-wrap:normal;word-break:normal}.player-meta{display:none}.slot{width:auto;font-size:6.75px;grid-row:2}.player-score{grid-row:2;font-size:9.75px}.bench-title{padding:5.25px 4.5px;font-size:6px}footer{margin-top:6.75px;font-size:6.75px}.screen-hint{display:none}
@media(min-width:825px) and (min-height:487.5px){.grid{min-height:calc(100dvh - 176.25px)}body:has(#bench:checked) .grid{min-height:0}.row{padding-top:2.25px;padding-bottom:2.25px}}
@media(max-width:824.25px){.grid{grid-template-columns:repeat(6,minmax(0,1fr))}.screen-hint{display:block;font-size:8.25px;margin:6px 0}.card-head{min-height:67.5px}.player-name{font-size:12px}.row{min-height:31.5px}}
@media(max-width:525px){main{padding:7.5px}.intro{display:block;margin-bottom:7.5px}.connection{margin:0;width:100%;flex-wrap:wrap}.toolbar{gap:6px}.toolbar>div:first-child{width:auto;flex:1;min-width:90px}.search-wrap{min-width:90px}.summary{flex-direction:row}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5.25px}.team-name{font-size:10.5px;min-height:0}.card-head{min-height:63.75px}.row{min-height:37.5px}.player-name{font-size:12.75px}footer a{display:block;float:none}}
@media(min-width:825px) and (min-height:600px){
 body:not(:has(#bench:checked)){height:100dvh}
 body:not(:has(#bench:checked)) main{height:calc(100dvh - 36px);display:flex;flex-direction:column}
 body:not(:has(#bench:checked)) .grid{flex:1;min-height:0}
 body:not(:has(#bench:checked)) .card-head{height:91.5px;flex-shrink:0}
 body:not(:has(#bench:checked)) .row{min-height:34.5px}
}

/* A shared accent links each pair; text labels also identify the matchup. */
.card{border-color:color-mix(in srgb,var(--matchup-color) 42%,var(--line));border-top:3px solid var(--matchup-color)}
.card.mine{border-color:var(--matchup-color);box-shadow:inset 0 0 0 0.75px var(--matchup-color)}
.card-head{background:color-mix(in srgb,var(--matchup-color) 15%,#141c29);border-bottom-color:color-mix(in srgb,var(--matchup-color) 40%,var(--line));padding-top:4.5px}
.matchup-label{color:var(--matchup-color);font-size:6.75px;font-weight:700;letter-spacing:0.525px;margin-bottom:4.5px}
.team-name{color:#fff}.owner{color:#b5c2d4}.rank{color:#fff;min-height:6.75px;line-height:6.75px}.total{color:var(--matchup-color);font-weight:700}.points-label{color:#bdc7d7}
.row{background:color-mix(in srgb,var(--matchup-color) 4%,#101724);border-bottom-color:#354154}
.row:nth-child(odd){background:color-mix(in srgb,var(--matchup-color) 9%,#1a2434)}
.player-name{color:#fff}.player-score{color:var(--matchup-color);font-weight:700;font-variant-numeric:tabular-nums;background:#0b121dcc;padding:0.75px 3px;border-radius:3px}.player-score.zero{color:#a3afc2;background:transparent}
.slot{justify-self:start;border-radius:2.25px;padding:1.5px 3px;color:#c8d2e2;background:#354257;font-size:6.75px;line-height:1}
.slot[data-slot="QB"]{color:#ffc4d4;background:#51293c}.slot[data-slot="RB"]{color:#9af1dc;background:#164c42}.slot[data-slot="WR"]{color:#b8d9ff;background:#213f62}.slot[data-slot="TE"]{color:#ffe1a6;background:#544325}.slot[data-slot="FLEX"]{color:#d9c0ff;background:#44315d}.slot[data-slot="K"]{color:#f4c99b;background:#563822}.slot[data-slot="DEF"]{color:#c3d4e8;background:#354257}
.bench-title{color:var(--matchup-color)}
@media(min-width:825px) and (min-height:600px){body:not(:has(#bench:checked)) .card-head{height:105px}}


.card-head{min-height:120px}
@media(min-width:825px) and (min-height:600px){body:not(:has(#bench:checked)) .card-head{height:120px}}

/* Larger player names and a single clear current score. */
.row{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:3.75px;min-height:45px;padding:3.75px 5.25px}
.player{flex:0}.player-name{font-size:13.5px;font-weight:700;line-height:1.12;letter-spacing:-0.225px}
.player-bottom{display:flex;align-items:center;justify-content:space-between;gap:4.5px}
.slot{flex-shrink:0;margin:0;font-size:6.75px;padding:2.25px 3px}
.player-score{color:#fff;background:#0b121da6;padding:1.5px 3.75px;font-size:13.5px;line-height:1;font-weight:700;font-variant-numeric:tabular-nums}
.player-score.zero{color:#c3cedd;background:transparent}
.card-head{min-height:127.5px}.team-name{font-size:9.75px;min-height:23.25px}.total{font-size:21px}.owner{font-size:7.5px}.matchup-label{font-size:7.5px}
@media(min-width:825px) and (min-height:600px){body:not(:has(#bench:checked)) .card-head{height:127.5px}body:not(:has(#bench:checked)) .row{min-height:45px}.intro{margin-bottom:4.5px}.toolbar{padding:6px}.summary{margin-top:6.75px;margin-bottom:6px}}
@media(max-width:525px){.row{min-height:55.5px}.player-name{font-size:14.25px}.player-score{font-size:14.25px}}

/* Controls are available on demand; the rosters get the freed space. */
[hidden]{display:none!important}.header-actions{display:flex;gap:6px;align-items:center}
#controls{flex-shrink:0;margin-bottom:4.5px}.summary{flex-shrink:0}.card-head{flex-shrink:0}
body:has(#controls[hidden]) .row{gap:7.5px}
@media(max-width:525px){header{padding:0 7.5px}.brand{font-size:9px;letter-spacing:0.75px}.brand span{margin-left:3px}.header-actions{gap:3px}.header-actions button{padding:4.5px;font-size:7.5px}}

.card-head{min-height:105px}
@media(min-width:825px) and (min-height:600px){body:not(:has(#bench:checked)) .card-head{height:105px}}

.refresh-timer{display:flex;align-items:center;gap:9px;margin-bottom:3.75px}#refresh-countdown{min-width:69px;color:#d1dceb;font-size:8.25px;font-variant-numeric:tabular-nums}#refresh-track{flex:1;height:3.75px;border-radius:6.75px;background:#2a374a;overflow:hidden}#refresh-progress{height:100%;width:100%;background:var(--mint);border-radius:6.75px;transition:width .25s linear}footer{flex-shrink:0}.footer-note{font-size:6.75px}
.score-change{display:flex;align-items:center;gap:3.75px;min-width:0}.score-change.increased .player-score{color:#80f2a6;background:#113524}.score-gain{color:#80f2a6;font-size:8.25px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.row{container-type:inline-size}
@container(max-width:86.25px){.score-gain{display:none}}

#refresh-countdown{font-size:15px;font-weight:700;min-width:31.5px;color:#edf2f9;line-height:1.1}

.player{display:flex;align-items:flex-start;gap:3.75px;min-width:0}.player-name{flex:1;min-width:0}.game-status{display:inline-block;flex-shrink:0;width:6px;height:6px;border-radius:50%;margin-top:4.5px}.game-status.live{background:#80f2a6;box-shadow:0 0 0 1.5px #80f2a61a}.game-status.final{background:#ff727c}.game-status.upcoming{border:1.125px solid #a6b3c7;background:transparent}.game-status.bye,.game-status.unknown{width:auto;height:auto;border-radius:0;font-size:6px;font-weight:700;line-height:1;color:#a6b3c7;margin-top:3.75px}

button.player-name{display:block;text-align:left;background:transparent;border:0;border-radius:2.25px;padding:0;color:#fff;white-space:normal;font-family:inherit;cursor:pointer}button.player-name:hover{color:var(--matchup-color);text-decoration:underline;text-underline-offset:2.25px}button.player-name:disabled{opacity:1;cursor:default}button.player-name:focus-visible{outline:1.5px solid var(--matchup-color)}
#player-dialog{width:min(420px,calc(100vw - 24px));max-height:85dvh;padding:18.75px;border:0.75px solid #455570;border-radius:12px;background:#131d2d;color:#edf2f9;box-shadow:0 15px 75px #0009}#player-dialog::backdrop{background:#030914ba;backdrop-filter:blur(3px)}.detail-heading{display:flex;justify-content:space-between;align-items:start;gap:11.25px}.detail-heading h2{font-size:21px;margin:6px 0}.detail-heading p{font-size:9px;line-height:1.6;margin:0 0 15px}.detail-heading button{padding:6px 9px}.detail-score{background:#20352e;border:0.75px solid #426756;padding:12px;border-radius:7.5px;display:flex;justify-content:space-between;align-items:center;gap:15px}.detail-score span{font-size:9px;color:#c3dfd0}.detail-score strong{font:700 22.5px 'Space Grotesk',sans-serif;color:var(--mint)}.stat-section h3{font-size:9.75px;letter-spacing:0.375px;margin:16.5px 0 7.5px}.detail-message{color:#afbdd0;line-height:1.6}@media(max-width:375px){#player-dialog{padding:13.5px}}

#player-dialog{width:min(352.5px,calc(100vw - 24px))}.stat-section h3{margin:15px 0 3px;color:var(--mint);font-size:9px;text-transform:uppercase;letter-spacing:0.75px}.stat-list{margin:0}.stat-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:15px;padding:9px 0;border-bottom:0.75px solid #344359;align-items:center}.stat-line dt{font-size:12.75px;font-weight:700;color:#edf2f9}.stat-line dd{margin:0;min-width:33.75px;text-align:right;font:700 16.5px 'Space Grotesk',sans-serif;color:#fff;font-variant-numeric:tabular-nums}.detail-score{border:0;border-bottom:0.75px solid #426756;border-radius:0;background:transparent;padding:7.5px 0 12px}.detail-score span{font-size:11.25px;font-weight:700;color:#edf2f9}

.game-status.upcoming{background:#80f2a6;border:0;box-shadow:0 0 0 1.5px #80f2a61a}.game-status.live{background:#f2d46c;box-shadow:0 0 0 1.5px #f2d46c1a}

#keyboard-search{padding:5.25px 9px;border:0.75px solid #eed26f;border-radius:5.25px;background:#39321c;color:#ffeba0;font-size:11.25px;font-weight:700;max-width:45%;overflow-wrap:anywhere}.row.keyboard-match,.row.keyboard-match:nth-child(odd){background:#494125;box-shadow:inset 2.25px 0 #ffe08b}.keyboard-match .player-name{color:#ffe8a0!important}.keyboard-match .player-score{background:#211d10}.summary{gap:7.5px}@media(max-width:525px){#keyboard-search{font-size:9px;padding:3.75px 6px;max-width:36%}}

.team-name{font-size:12.75px;font-weight:700;line-height:1.15;min-height:30px}.owner{font-size:10.5px;font-weight:600;line-height:1.2;margin-top:3.75px;color:#d7e1ef}.card-head{padding-top:7.5px}

:root[data-theme="light"]{color-scheme:light;--bg:#f4f6fa;--panel:#fff;--line:#c9d2df;--muted:#526176;--mint:#197344}
[data-theme="light"] body{color:#192536}
[data-theme="light"] .brand span{color:#192536}
[data-theme="light"] input,[data-theme="light"] select{background:#fff;color:#192536}
[data-theme="light"] .secondary{background:#e4eaf2;color:#192536}
[data-theme="light"] .card{--light-accent:color-mix(in srgb,var(--matchup-color) 45%,#1e293b);background:#fff;border-color:var(--light-accent);border-top-color:var(--light-accent)}
[data-theme="light"] .card-head{background:color-mix(in srgb,var(--matchup-color) 28%,#fff);border-bottom-color:#b9c6d8}
[data-theme="light"] .team-name,[data-theme="light"] button.player-name{color:#172234}
[data-theme="light"] .owner{color:#42516a}
[data-theme="light"] .rank{color:#23364b}
[data-theme="light"] .total{color:#172234}
[data-theme="light"] .points-label{color:#526176}
[data-theme="light"] .row{background:#fff;border-bottom-color:#d2dbe7}
[data-theme="light"] .row:nth-child(odd){background:color-mix(in srgb,var(--matchup-color) 15%,#f4f6fa)}
[data-theme="light"] .player-score{color:#172234;background:#e3e9f2}
[data-theme="light"] .player-score.zero{color:#627086;background:transparent}
[data-theme="light"] .score-change.increased .player-score{color:#146936;background:#d2f1de}
[data-theme="light"] .score-gain{color:#146936}
[data-theme="light"] #refresh-countdown{color:#192536}
[data-theme="light"] #refresh-track{background:#d3dce8}
[data-theme="light"] footer a{color:#197344}
[data-theme="light"] .bench-title{background:#e5ebf3;color:#526176}
[data-theme="light"] .game-status.upcoming{background:#238c4f;box-shadow:none}
[data-theme="light"] .game-status.live{background:#bd8a00;box-shadow:none}
[data-theme="light"] .game-status.final{background:#d33e4b}
[data-theme="light"] .game-status.bye,[data-theme="light"] .game-status.unknown{color:#526176}
[data-theme="light"] .row.keyboard-match,[data-theme="light"] .row.keyboard-match:nth-child(odd){background:#fff0b8;box-shadow:inset 2.25px 0 #aa7500}
[data-theme="light"] .keyboard-match .player-name{color:#563c00!important}
[data-theme="light"] .keyboard-match .player-score{background:#f0d986}
[data-theme="light"] #keyboard-search{background:#fff0b8;border-color:#aa7500;color:#563c00}
[data-theme="light"] #player-dialog{background:#fff;color:#192536;border-color:#bcc8d8}
[data-theme="light"] #player-dialog::backdrop{background:#24324866}
[data-theme="light"] .detail-score{border-bottom-color:#c9d2df}
[data-theme="light"] .detail-score span,[data-theme="light"] .stat-line dt,[data-theme="light"] .stat-line dd{color:#192536}
[data-theme="light"] .detail-score strong{color:#197344}
[data-theme="light"] .stat-line{border-bottom-color:#d3dce8}
[data-theme="light"] .detail-message{color:#526176}
[data-theme="light"] #error{background:#ffe3e5;color:#9d2532}

.position-status{display:inline-flex;align-items:center;gap:4.5px;flex-shrink:0}.position-status .game-status{margin-top:0}

.no-live-players{padding:15px 7.5px;color:var(--muted);font-size:9px;text-align:center}

.row.filtered-player{pointer-events:none}.row.filtered-player>*{visibility:hidden}

.row.filtered-player.keyboard-match{pointer-events:auto}.row.filtered-player.keyboard-match>*{visibility:visible}

.team-record{display:inline-block;font-size:9.75px;font-weight:700;white-space:nowrap;color:#c7d4e6;letter-spacing:0}.card-head{min-height:120px}@media(min-width:825px) and (min-height:600px){body:not(:has(#bench:checked)) .card-head{height:120px}}[data-theme="light"] .team-record{color:#42516a}

/* Let all starter rows share the available height instead of clipping K/DEF. */
@media(min-width:825px) and (min-height:600px){
 body:not(:has(#bench:checked)) .row{flex:1 1 0;min-height:0;gap:2.25px;padding:2.25px 4.5px}
 body:not(:has(#bench:checked)):has(#controls:not([hidden])) .card-head{height:105px;min-height:105px}
 body:not(:has(#bench:checked)):has(#controls[hidden]) .row{gap:3.75px}
}
@media(min-width:825px) and (min-height:600px) and (max-height:712.5px){
 body:not(:has(#bench:checked)):has(#controls:not([hidden])) .player-name{font-size:12px}
 body:not(:has(#bench:checked)):has(#controls:not([hidden])) .player-score{font-size:12px}
 body:not(:has(#bench:checked)):has(#controls:not([hidden])) .row{gap:1.5px;padding-block:1.5px}
}

/* Approved football-eye mark. */
.brand{display:inline-flex;align-items:center;gap:7.5px}.brand .brand-logo{display:block;width:42px;height:21px;object-fit:contain;flex-shrink:0}.brand span{margin-left:0}
@media(max-width:525px){.brand{gap:4.5px}.brand .brand-logo{width:33px;height:18px}.brand span{margin-left:0}}

/* Daily controls stay in reach; account and display settings stay tucked away. */
.quick-controls{display:flex;align-items:flex-end;gap:9px;flex-shrink:0;margin-bottom:4.5px}
.quick-controls label{font-size:7.5px;margin-bottom:3px}
.quick-controls select{font-size:9px;padding:5.25px 7.5px;max-width:225px}
.quick-controls #updated{margin-left:auto;padding-bottom:6.75px;white-space:nowrap}
#controls .connection{display:block;width:auto;margin:0}
#controls .connection>label{margin-bottom:3px;font-size:7.5px}
#controls .input-group{margin:0}
#controls .input-group input{width:127.5px}
#controls .toolbar{gap:9px}
@media(max-width:525px){.quick-controls{flex-wrap:wrap;gap:6px}.quick-controls #updated{flex-basis:100%;padding:0}.quick-controls select{max-width:150px}}

.card-head{position:relative}
.players-remaining{font-size:7.5px;font-weight:700;color:var(--muted);white-space:nowrap;margin-top:2.25px}
@media(min-width:825px) and (min-height:600px){body:not(:has(#bench:checked)):has(#controls:not([hidden])) .card-head{height:112.5px;min-height:112.5px}}
.icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:25.5px;height:24px;padding:4.5px 6px}
.sr-only{position:absolute;width:0.75px;height:0.75px;padding:0;margin:-0.75px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#share-dialog{width:min(405px,calc(100vw - 24px));border:0.75px solid var(--line);border-radius:9px;background:var(--panel);color:inherit;padding:15px}
#share-url{width:100%;margin-top:12px;font-size:9.75px}
#share-dialog::backdrop{background:#0009}
#exit-focus{position:fixed;top:6px;right:12px;z-index:10;font-size:8.25px;padding:4.5px 7.5px}
body.focus-mode>header,body.focus-mode .quick-controls,body.focus-mode #controls,body.focus-mode .summary,body.focus-mode .screen-hint,body.focus-mode .footer-note{display:none!important}
body.focus-mode main{height:100dvh;display:flex;flex-direction:column;padding-top:31.5px}
body.focus-mode .grid{flex:1;min-height:0}
body.focus-mode:not(:has(#bench:checked)) .card-head{height:112.5px;min-height:112.5px}
body.focus-mode:has(#bench:checked) main{height:auto;min-height:100dvh}
body.focus-mode:has(#bench:checked) .grid{flex:none}

.github-link{border:0.75px solid var(--line);border-radius:6px;text-decoration:none;flex-shrink:0}
.github-link:hover{filter:brightness(1.2)}
.github-link:focus-visible{outline:1.5px solid var(--mint);outline-offset:1.5px}

/* First visit starts with the viewer's account, never a predefined league. */
.awaiting-user .quick-controls,.awaiting-user .summary,.awaiting-user footer,.awaiting-user .screen-hint,.awaiting-user #teams,.awaiting-user #controls-toggle,.awaiting-user #focus-toggle,.awaiting-user #share-league{display:none}
.awaiting-user #controls{margin:auto;width:min(420px,100%)}
.awaiting-user .toolbar{display:block;padding:24px}
.awaiting-user .toolbar>:not(.connection){display:none}
.awaiting-user #controls .connection>label{font-size:15px;font-weight:700;margin-bottom:12px;color:inherit}
.awaiting-user #controls .input-group{display:flex;gap:8px}
.awaiting-user #controls .input-group input{flex:1;min-width:0;width:0;font-size:14px;padding:10px}
.awaiting-user #controls .input-group button{flex-shrink:0;font-size:12px;padding:10px}
.awaiting-user main{display:flex;flex-direction:column;min-height:calc(100dvh - 36px)}
