:root{color-scheme:dark;font-family:Arial,"Microsoft YaHei",sans-serif;background:#0a1222;color:#edf3ff}*{box-sizing:border-box}body{margin:0;padding:3vh 3vw;min-height:100vh;background:radial-gradient(at top right,#163254,#0a1222 65%)}header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.brand{font-size:14px;letter-spacing:3px;color:#8badd6}h1{font-size:clamp(24px,3vw,54px);margin:12px 0;overflow-wrap:anywhere}header p{color:#98aecb;margin:0}.tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.tools span{font-size:24px;font-variant-numeric:tabular-nums}button{cursor:pointer;color:#c8d8f0;background:#172942;border:1px solid #304a6c;border-radius:8px;padding:10px 14px;font-size:14px}main{padding-top:4vh;padding-bottom:6vh}#matches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2vh 2vw}#matches.single{grid-template-columns:1fr;max-width:1400px;margin:auto}.match{border:1px solid #2a4262;border-radius:18px;background:#122139;padding:2vh 2vw;box-shadow:0 14px 30px #0002}.match-meta{display:flex;justify-content:space-between;gap:16px;color:#a2b7d2;font-size:clamp(13px,1.2vw,23px);margin-bottom:2vh;flex-wrap:wrap}.status.ongoing{color:#74e8b4}.status.ended{color:#8d9eb8}.scoreboard{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1vw}.name{font-size:clamp(20px,2.2vw,42px);font-weight:600;overflow-wrap:anywhere;line-height:1.4}.name.right{text-align:right}.score{white-space:nowrap;font-variant-numeric:tabular-nums;color:#fff;font-size:clamp(30px,4vw,78px);font-weight:700}.winner{color:#8ee6c0}.details{text-align:center;font-size:clamp(14px,1.1vw,23px);color:#95accb;margin-top:2vh;line-height:1.6;overflow-wrap:anywhere}.single .match{padding:5vh 4vw}.single .name{font-size:clamp(28px,4vw,72px)}.single .score{font-size:clamp(56px,8vw,150px)}.single .details{font-size:clamp(20px,2vw,38px)}.pair-card{margin:6vh auto;max-width:1000px;display:flex;align-items:center;justify-content:center;gap:5vw;background:#14243d;border:1px solid #2c466a;padding:5vh 4vw;border-radius:24px}.pair-card img{width:min(28vw,280px);height:min(28vw,280px);background:#fff;padding:12px;border-radius:14px}.pair-card h2{font-size:clamp(24px,2.6vw,42px);margin-top:0}.pair-card p{color:#a2b7d2;line-height:1.8}#code{display:block;font-size:clamp(32px,4vw,64px);letter-spacing:8px;color:#9cc8ff}#empty{text-align:center;padding:15vh 0;font-size:30px;color:#9eb2cd}footer{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:12px;padding:14px 3vw;background:#0a1222e8;color:#8fa7c8;font-size:14px}#connection.offline{color:#ffba7a}[hidden]{display:none!important}@media(max-width:800px){#matches{grid-template-columns:1fr}.pair-card{flex-direction:column}.pair-card img{width:220px;height:220px}header{flex-direction:column}footer{position:static;flex-wrap:wrap}.score{font-size:42px}.name{font-size:24px}}
/* Keep the playing surface fixed; pagination, not document scrolling, changes content. */
html,body{height:100%;overflow:hidden}body{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:1.5vh;padding:2vh 2.5vw;min-height:0}header{min-width:0}header>div:first-child{min-width:0}h1{font-size:clamp(22px,2.5vw,46px);margin:6px 0;line-height:1.2}header p{font-size:clamp(13px,1vw,19px)}main{padding:0;min-height:0;position:relative}#dashboard{height:100%;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);gap:2vw}#dashboard.split{grid-template-columns:minmax(0,1.9fr) minmax(280px,1fr)}#matches,#matches.single{height:100%;min-height:0;max-width:none;margin:0;grid-template-columns:repeat(var(--columns,2),minmax(0,1fr));grid-template-rows:repeat(var(--rows,2),minmax(0,1fr));gap:1.5vh 1.5vw}.match,.single .match{min-height:0;min-width:0;padding:clamp(10px,1.5vh,28px) clamp(12px,1.5vw,30px);display:flex;flex-direction:column;justify-content:center;box-shadow:none}.match-meta{margin-bottom:1vh;font-size:clamp(13px,1.1vw,22px)}.scoreboard{flex:1;min-height:0}.name,.single .name{font-size:var(--name-size,28px);line-height:1.3;min-width:0}.score,.single .score{font-size:var(--score-size,54px);line-height:1.15}.details,.single .details{font-size:clamp(12px,1vw,21px);margin-top:1vh;line-height:1.4}.match.ongoing{border-color:#5388cf;background:#152c49}.status.ongoing{color:#8fc8ff}.winner{color:#ffb69d}#rankings{min-width:0;min-height:0;border:1px solid #2a4262;border-radius:18px;padding:1.5vh 1.3vw;background:#101f35;overflow:hidden}#rankings h2{font-size:clamp(20px,1.7vw,32px);margin:0 0 8px}#rank-note,#rank-page{font-size:13px;color:#98aecb;margin:6px 0}#rank-rows{display:flex;flex-direction:column;gap:8px}.rank-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid #263b58}.rank-number{font-size:24px;color:#93bbf2;font-variant-numeric:tabular-nums}.rank-name{font-size:clamp(17px,1.35vw,28px);overflow-wrap:anywhere;line-height:1.3}.rank-group{display:block;font-size:13px;color:#98aecb}.rank-stats{font-size:clamp(14px,1vw,21px);color:#b8c9df;white-space:nowrap}#display-tools{display:flex;align-items:center;justify-content:center;gap:12px}footer{position:static;padding:0;background:none;font-size:12px;align-items:center}#empty{position:absolute;inset:30% 0 auto;padding:0;font-size:24px;pointer-events:none}.pair-card{margin:2vh auto;padding:3vh 3vw}.rank-only #matches{display:none}.rank-only #dashboard{grid-template-columns:minmax(0,1fr)}.rank-only #rankings{display:block!important}@media(max-width:800px){header{flex-direction:row;gap:12px}.tools{gap:6px}.tools span{display:none}button{padding:7px 10px;font-size:12px}#dashboard.split{grid-template-columns:1fr}.pair-card{margin:0;gap:2vh}.pair-card img{width:min(30vh,180px);height:min(30vh,180px)}footer{flex-wrap:wrap}.brand{font-size:11px;letter-spacing:1px}.rank-row{gap:8px}}@media(max-height:500px){.brand,header p{display:none}.details{font-size:12px}.match-meta{font-size:12px}body{gap:6px}.tools span{font-size:16px}}

.name > span{display:block}#rank-page{overflow-wrap:anywhere}#display-tools button[aria-pressed=true]{background:#315d99;border-color:#6394d5;color:#fff}

.court-panel{min-width:0;min-height:0;display:flex;flex-direction:column;border:1px solid #355477;border-radius:18px;padding:18px;background:#0f2036;overflow:auto;scrollbar-width:thin}.court-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 4px 14px;border-bottom:1px solid #2a4262;margin-bottom:12px}.court-heading h2{font-size:clamp(24px,2vw,38px);margin:0;color:#d9eaff}.court-state{font-size:16px;color:#9dc7fc;white-space:nowrap}.court-panel>.match{flex:1;border:0;background:transparent;padding:8px}.court-caption{font-size:14px;color:#a8c7ee;margin-bottom:6px}.court-next{padding:12px 8px 0;margin-top:12px;border-top:1px solid #2a4262}.court-next .match{padding:4px 0;border:0;background:transparent}.court-next .match-meta{font-size:12px;margin-bottom:4px}.court-next .scoreboard{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-rows:auto;gap:12px}.court-next .stacked .screen-player{justify-content:flex-start}.court-next .stacked .name.right .screen-player{flex-direction:row-reverse}.court-next .name{font-size:18px;gap:5px}.court-next .score,.court-next .stacked .score{font-size:24px}.court-next .screen-player-photo{width:28px;height:28px;flex-basis:28px}.court-next .screen-player{gap:7px}.court-next .details{font-size:12px;margin-top:5px}.court-idle{color:#9db7d8;text-align:center;margin:auto}.bracket-panel{position:relative;min-height:0;min-width:0;display:flex;flex-direction:column;height:100%}.bracket-heading{font-size:18px;color:#a8c7ee;margin-bottom:12px}.bracket-grid{position:relative;display:grid;grid-template-columns:repeat(var(--rounds),minmax(0,1fr));gap:34px;min-height:0;flex:1}.bracket-column{display:flex;flex-direction:column;min-height:0;min-width:0}.bracket-round{font-size:20px;margin:0 0 12px;color:#b9d7ff;text-align:center}.bracket-games{display:flex;flex-direction:column;justify-content:space-around;gap:14px;flex:1;min-height:0}.bracket-match{flex:0 1 auto;min-height:0;padding:12px;position:relative;z-index:1}.bracket-match .scoreboard,.bracket-match .scoreboard.stacked{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;gap:8px;align-content:center}.bracket-match .name,.bracket-match .name.right{font-size:20px;text-align:left;grid-column:1}.bracket-match .name.right{grid-row:2}.bracket-match .screen-player,.bracket-match .name.right .screen-player{flex-direction:row;justify-content:flex-start;gap:8px}.bracket-match .score,.bracket-match .stacked .score{font-size:26px;grid-column:2;grid-row:1 / 3}.bracket-match .screen-player-photo{width:28px;height:28px;flex-basis:28px}.bracket-match .name{gap:4px}.bracket-match .match-meta{font-size:12px;margin-bottom:8px}.bracket-match .details{font-size:12px;margin:6px 0 0}.bracket-route{font-size:11px;color:#a1bad9;margin-top:6px;overflow-wrap:anywhere}.bracket-links{position:absolute;inset:0;pointer-events:none;overflow:visible}.bracket-links path{stroke:#638dbd;stroke-width:2;fill:none}.bracket-view{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important}@media(max-width:800px){.court-panel{padding:12px}.court-heading{gap:8px}.court-state{font-size:13px}.court-next .scoreboard{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto}.court-next .stacked .screen-player,.court-next .stacked .name.right .screen-player{justify-content:center;flex-direction:row}.bracket-grid{gap:20px}.bracket-match .name{font-size:18px}}@media(max-height:650px){.court-panel{padding:10px}.court-heading{padding-bottom:8px;margin-bottom:6px}.court-heading h2{font-size:24px}.court-panel .screen-player-photo{width:30px;height:30px;flex-basis:30px}.court-panel>.match .name{gap:6px}.court-panel>.match .stacked{gap:5px}.court-panel>.match .stacked .score{font-size:32px}.court-next{margin-top:7px;padding-top:7px}.court-caption{margin-bottom:3px}.bracket-match{padding:8px}.bracket-games{gap:10px}}

.scoreboard.stacked{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;justify-items:center;gap:8px;align-content:center}.stacked .name,.stacked .name.right{width:100%;text-align:left}.stacked .screen-player{justify-content:center}.stacked .score{font-size:clamp(32px,3vw,60px);padding:2px 0}.name{display:flex;flex-direction:column;gap:10px;width:100%}.screen-player{display:flex;align-items:center;gap:12px;min-width:0;max-width:100%}.screen-player-photo{position:relative;flex:0 0 42px;width:42px;height:42px;border-radius:50%;overflow:hidden;background:#294467}.screen-player-avatar,.screen-player-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.screen-player-fallback{display:flex;align-items:center;justify-content:center;font-size:21px;color:#dceaff}.screen-player-name{display:block;min-width:0;white-space:nowrap;overflow-wrap:normal;line-height:1.25}.name.right .screen-player{flex-direction:row-reverse}.stacked .name.right .screen-player{flex-direction:row}.rank-name{min-width:0;font-size:clamp(17px,1.2vw,25px)}.rank-name .screen-player{gap:10px}.rank-name .screen-player-photo{flex-basis:32px;width:32px;height:32px}.rank-name .screen-player-fallback{font-size:16px}.rank-row{min-width:0}.scoreboard{gap:14px}.single .screen-player-photo{flex-basis:64px;width:64px;height:64px}@media(max-width:800px){.screen-player-photo{flex-basis:34px;width:34px;height:34px}.screen-player{gap:8px}.single .screen-player-photo{flex-basis:42px;width:42px;height:42px}}

.bracket-match .scoreboard,.bracket-match .scoreboard.stacked{display:flex;flex-direction:column;align-items:stretch;gap:10px}.bracket-side{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;width:100%}.bracket-side-score{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}.bracket-match .bracket-side .name{grid-column:auto;grid-row:auto}.bracket-match .screen-player-name{max-width:100%}
.bracket-match .bracket-side .screen-player{justify-content:flex-start}
.match-info{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;min-width:0}
.match-meta{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px 12px}.match-info{display:flex;grid-column:2;grid-row:1;justify-content:center;text-align:center}.match-round{min-width:0;overflow-wrap:anywhere}.match-venue{grid-column:1;grid-row:1;min-width:0;overflow-wrap:anywhere}.match-meta>.status{grid-column:3;grid-row:1;justify-self:end;text-align:right}@media(max-width:800px){.match-meta{grid-template-columns:minmax(0,1fr) auto}.match-info{grid-column:1 / -1;grid-row:1}.match-venue,.match-meta>.status{grid-row:2}.match-meta>.status{grid-column:2}}
.court-next .scoreboard.stacked{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-rows:auto;justify-items:stretch}@media(max-width:800px){.court-next .scoreboard.stacked{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto}}

#court-count-wrap{display:flex;align-items:center;gap:8px;font-size:14px;color:#c8d8f0}#court-count{background:#172942;color:#dbeaff;border:1px solid #304a6c;border-radius:8px;padding:8px;font-size:14px}#display-tools{flex-wrap:wrap}.dense .court-panel{padding:10px}.dense .court-heading{margin-bottom:6px;padding-bottom:8px}.dense .court-heading h2{font-size:23px}.dense .court-state{font-size:12px}.dense .court-panel>.match .name{font-size:18px;gap:5px}.dense .court-panel>.match .score,.dense .court-panel>.match .stacked .score{font-size:30px}.dense .court-panel .screen-player-photo{width:26px;height:26px;flex-basis:26px}.dense .court-panel .screen-player{gap:6px}.dense .court-panel .scoreboard.stacked{gap:4px}.dense .court-next{padding-top:7px;margin-top:7px}.dense .court-next .name{font-size:16px;gap:4px}.dense .court-next .score,.dense .court-next .stacked .score{font-size:21px}.dense .match-meta{font-size:12px;gap:5px}.dense .details{font-size:11px}.dense .court-caption{font-size:12px}
