/* Stable TV zones. QR dimensions never depend on the number of matches. */
body.role-screen #screen .screen-content47{display:grid;grid-template-columns:minmax(0,1fr) clamp(264px,21vw,420px);gap:14px;flex:1;min-height:0}
body.role-screen #screen .screen-main47{display:flex;min-width:0;min-height:0}
body.role-screen #screen .screen-grid{width:100%;grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);gap:14px}
body.role-screen #screen .screen-side{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(150px,1.7fr) repeat(3,minmax(80px,1fr));gap:10px;min-height:0}
body.role-screen #screen .screen-panel{min-width:0;min-height:0;padding:12px;overflow:hidden}
body.role-screen #screen .screen-panel-title{flex:none;margin-bottom:8px;gap:6px}
body.role-screen #screen .screen-panel-title h2{font-size:clamp(17px,1.4vw,25px)}
body.role-screen #screen .screen-panel-title span{font-size:12px}
body.role-screen #screen .screen-qr-panel47{border:1px solid #44534c;border-radius:12px;background:#fff;color:#183e30;padding:12px;display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:0;overflow:hidden}
body.role-screen #screen .screen-client-join{flex:0 0 auto;display:flex;flex-direction:column;gap:18px;min-height:0;width:100%;text-align:center}
body.role-screen #screen .screen-client-join img{display:block;width:100%;height:auto;aspect-ratio:1;max-width:400px;max-height:none;min-height:0;flex:none;object-fit:contain;background:#fff;border:0;filter:none;opacity:1;padding:0;mix-blend-mode:normal}
body.role-screen #screen .screen-client-join strong{display:block;font-size:clamp(19px,1.6vw,30px);color:#174d3b;line-height:1.5}
body.role-screen #screen .screen-client-join span{color:#365e4f;font-size:clamp(14px,1.1vw,21px);line-height:1.5}
body.role-screen #screen .screen-qr-tip47{text-align:center;border-top:1px solid #d9e4db;margin-top:24px;padding-top:20px;font-size:clamp(16px,1.35vw,24px);line-height:1.8}
body.role-screen #screen .screen-qr-tip47 small{display:block;font-size:12px;margin-top:20px;color:#537463}
body.role-screen #screen .screen-ranking{flex:1;gap:7px;min-height:0}
body.role-screen #screen .screen-ranking .screen-rank-row{grid-template-columns:24px 44px minmax(0,1fr) 70px 60px;column-gap:8px;padding:7px;min-height:0;overflow:hidden}
body.role-screen #screen .screen-ranking .rank-avatar{width:44px;height:44px;--avatar-size:44px}
body.role-screen #screen .screen-player{display:flex;flex-direction:column;align-items:flex-start;min-width:0;gap:2px;overflow:hidden}
body.role-screen #screen .screen-player>strong{font-size:clamp(16px,1.3vw,25px);line-height:1.3;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.role-screen #screen .screen-player-achievements{margin:0;gap:4px}
body.role-screen #screen .screen-growth{font-size:11px;padding:1px 3px}
body.role-screen #screen .screen-player .historical-honor{display:none}
body.role-screen #screen .screen-score strong{min-width:0;font-size:clamp(20px,1.8vw,32px)}
body.role-screen #screen .screen-player>span{display:none}
body.role-screen #screen .screen-rank-name{font-size:13px}
body.role-screen #screen .screen-rank-stars{font-size:12px}
body.role-screen #screen .screen-rank-page{font-size:12px;min-height:20px;margin-bottom:4px}
body.role-screen #screen .screen-match-panel #screenMatches{display:grid;grid-auto-rows:minmax(0,1fr);gap:8px}
body.role-screen #screen .screen-match-card{display:flex;flex-direction:column;justify-content:center;min-height:0;padding:8px;overflow:hidden}
body.role-screen #screen .screen-duel{margin:8px 0;gap:6px}
body.role-screen #screen .screen-contender{min-width:0}
body.role-screen #screen .screen-contender strong{font-size:clamp(15px,1.2vw,23px);line-height:1.3}
body.role-screen #screen .screen-match-note{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:11px;margin:0}
body.role-screen #screen .screen-reward-card,body.role-screen #screen .screen-winner-card,body.role-screen #screen .screen-challenge-card{padding:6px;line-height:1.35;min-height:0}
body.role-screen #screen .screen-side strong{font-size:clamp(13px,1.05vw,20px);line-height:1.3}
body.role-screen #screen .screen-side span{font-size:clamp(12px,.9vw,16px);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.role-screen #screen .screen-challenge-person .rank-avatar{width:30px;height:30px;--avatar-size:30px}
body.role-screen #screen .screen-challenge-card>span:last-child{font-size:11px;white-space:nowrap;text-overflow:ellipsis}
body.role-screen #screen .ladder-podium{flex:0 0 auto;gap:6px;max-height:155px;margin:0 0 6px}
body.role-screen #screen .podium-player{padding:5px;min-width:0}
body.role-screen #screen .podium-player>.rank-avatar{width:40px;height:40px;--avatar-size:40px}
body.role-screen #screen .podium-player strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
body.role-screen #screen .podium-player .historical-honor,body.role-screen #screen .podium-player .screen-growth{display:none}
body.role-screen #screen .screen-rank-legend{flex:none;min-height:34px;margin:0}
@media(max-height:800px){body.role-screen #screen .screen-panel{padding:8px}body.role-screen #screen .screen-side{gap:8px;grid-template-rows:minmax(150px,1.6fr) repeat(3,minmax(72px,1fr))}body.role-screen #screen .screen-panel-title{margin-bottom:5px}body.role-screen #screen .screen-ranking .screen-rank-row{padding:4px}body.role-screen #screen .screen-challenge-card>span:last-child{display:none}}
@media(max-width:1100px){body.role-screen #screen .screen-content47{grid-template-columns:minmax(0,1fr) 248px;gap:8px}body.role-screen #screen .screen-grid{grid-template-columns:minmax(0,1.15fr) minmax(220px,1fr);gap:8px}body.role-screen #screen .screen-ranking .screen-rank-row{grid-template-columns:18px 32px minmax(0,1fr) 54px 42px;gap:5px}body.role-screen #screen .screen-ranking .rank-avatar{width:32px;height:32px;--avatar-size:32px}body.role-screen #screen .screen-player>strong{font-size:14px}body.role-screen #screen .screen-score strong{font-size:19px}body.role-screen #screen .screen-player-achievements{display:none}}

/* Player page proportions match the native four-destination layout. */
body.role-client .identity-choices47{display:flex;gap:12px;margin:18px 0}body.role-client .identity-choices47 button{flex:1}body.role-client #playerWechatRecover47{margin:12px 0}body.role-client.identity-entry47 #client>[data-client-pane],body.role-client.identity-entry47 .client-page-nav{display:none!important}body.role-client.identity-entry47 #clientScanEntry{display:block!important}body.role-client.identity-entry47 #clientScanEntry .panel{display:block!important}body.role-client.identity-entry47 #clientScanEntry .client-signup-form[hidden]{display:none!important}body.role-client #clientAccountSummary .personal-card{padding:18px;min-height:0;border-radius:18px;gap:14px}body.role-client #clientAccountSummary .player-avatar.large{width:58px;height:58px;font-size:25px}body.role-client .personal-name strong{font-size:21px}body.role-client .personal-identity>small{display:none}body.role-client .avatar-edit>span:not(.player-avatar){display:none}body.role-client #rankingPodium,body.role-client #rankingPodium+br{display:none!important}body.role-client .ranking-row{grid-template-columns:25px 38px minmax(0,1fr) 52px;gap:10px;min-height:64px;padding:10px 6px}body.role-client .ranking-row .player-avatar{width:36px;height:36px}body.role-client .rank-person>strong{font-size:15px}body.role-client .rank-person>small{margin-top:4px}body.role-client .client-cups47{padding:18px;background:#fff;border:1px solid #e2e8df;border-radius:18px;margin-top:16px}body.role-client .client-cups47 h3{margin:0 0 14px;font-size:17px;display:flex;justify-content:space-between}body.role-client .cup-row47{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #edf0e8}body.role-client .cup-row47>span{font-size:28px}body.role-client .cup-row47 small{display:block;margin-top:4px;color:#798575;font-size:12px}body.role-client .profile-details47{margin:16px 0}body.role-client .profile-details47>summary{padding:16px;background:#f3f6ee;border-radius:12px}
body.role-screen #screen .screen-ranking .screen-rank-badge{gap:3px}body.role-screen #screen .screen-ranking .screen-rank-badge .rank-emblem{width:26px;height:26px}body.role-screen #screen .screen-rank-label{min-width:0}body.role-screen #screen .screen-contender{flex-direction:column;gap:3px;text-align:center}body.role-screen #screen .screen-contender .rank-avatar{--avatar-size:46px}body.role-screen #screen .screen-contender-info>strong{font-size:clamp(13px,1.1vw,21px)}body.role-screen #screen .screen-contender-info .rank-emblem{display:none}body.role-screen #screen .screen-contender-info .screen-rank-badge{justify-content:center}body.role-screen #screen .screen-contender-info .screen-rank-name{font-size:12px}body.role-screen #screen .screen-contender-info .screen-rank-stars{display:none}
@media(max-height:600px){body.role-screen #screen .screen-side{grid-template-rows:minmax(130px,1.6fr) repeat(3,minmax(63px,1fr));gap:5px}body.role-screen #screen .screen-side .screen-panel{padding:5px}body.role-screen #screen .screen-side .screen-panel-title h2{font-size:12px}body.role-screen #screen .screen-side .screen-panel-title span{font-size:10px}body.role-screen #screen .screen-side span{font-size:10px;-webkit-line-clamp:1}body.role-screen #screen .screen-side strong{font-size:12px}body.role-screen #screen .screen-qr-tip47{display:none}body.role-screen #screen .screen-client-join{gap:8px}body.role-screen #screen .screen-client-join strong{font-size:17px}body.role-screen #screen .screen-client-join span{font-size:12px}body.role-screen #screen .screen-contender .rank-avatar{--avatar-size:32px}body.role-screen #screen .screen-contender-info>strong{font-size:12px}body.role-screen #screen .screen-ranking .screen-rank-badge .rank-emblem{display:none}body.role-screen #screen .screen-ranking .rank-avatar{--avatar-size:30px}}
body.role-screen #screen .screen-contender{flex-direction:row;text-align:left;gap:5px}body.role-screen #screen .screen-contender .rank-avatar{--avatar-size:42px}body.role-screen #screen .screen-contender-info{min-width:0;width:auto;flex:1}body.role-screen #screen .screen-contender-info>strong{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2}body.role-screen #screen .screen-contender-info .rank-emblem{display:none!important}body.role-screen #screen .screen-contender-info .screen-rank-badge{display:flex;justify-content:flex-start;margin-top:2px}body.role-screen #screen .screen-contender-info .screen-rank-label{display:block;line-height:1.1}body.role-screen #screen .screen-duel{margin:3px 0;flex:none}body.role-screen #screen .screen-match-note{flex:none;line-height:1.2}body.role-screen #screen .screen-match-card{gap:2px;padding:6px}body.role-screen #screen .screen-match-heading{padding-bottom:3px}
@media(max-height:600px){body.role-screen #screen .screen-contender .rank-avatar{--avatar-size:28px}body.role-screen #screen .screen-contender-info>strong{font-size:11px}body.role-screen #screen .screen-contender-info .screen-rank-badge{display:none}body.role-screen #screen .screen-match-note{font-size:9px}body.role-screen #screen .screen-match-card{padding:4px}}
@media(max-height:600px){body.role-screen #screen[data-theme] .screen-side .screen-panel-title h2{font-size:12px}body.role-screen #screen[data-theme] .screen-side strong{font-size:12px}body.role-screen #screen[data-theme] .screen-side span{font-size:10px;line-height:1.3}body.role-screen #screen[data-theme] .screen-side .screen-panel-title{min-height:16px}}
body.role-screen #screen .screen-ranking .screen-rank-name{font-size:12px;line-height:1.15}body.role-screen #screen .screen-ranking .screen-rank-badge .rank-emblem{width:22px;height:22px}body.role-screen #screen .screen-ranking .screen-rank-row{grid-template-columns:24px 44px minmax(0,1fr) 88px 60px}
@media(max-width:1100px){body.role-screen #screen .screen-ranking .screen-rank-row{grid-template-columns:18px 32px minmax(0,1fr) 54px 42px;gap:5px}}
body.role-client.identity-entry47 #client #clientScanEntry{display:block!important}body.role-client.identity-entry47 #client .client-tabs{display:none!important}body.role-client.identity-entry47 #client #clientIdentityPanel{display:block!important}


/* Empty ranking hints use the whole row, including honor podium-only stores. */
body.role-screen #screen .screen-ranking .screen-rank-row>.screen-player:only-child{grid-column:1/-1;align-items:center;text-align:center}body.role-screen #screen .screen-ranking .screen-rank-row>.screen-player:only-child>strong{white-space:normal;overflow:visible;text-overflow:clip}body.role-screen #screen .screen-ranking .screen-rank-row>.screen-player:only-child>span{display:block;margin-top:8px}

/* Compact scan card, sharing the lower information area instead of a full-height rail. */
body.role-screen #screen .screen-ranking .screen-rank-row{grid-template-columns:24px 44px minmax(0,1fr) 100px clamp(64px,4.6vw,88px)}
body.role-screen #screen[data-theme="large"] .screen-score strong{font-size:clamp(22px,1.8vw,34px)}
@media(max-width:1100px){body.role-screen #screen .screen-ranking .screen-rank-row{grid-template-columns:18px 32px minmax(0,1fr) 64px 54px}}
body.role-screen #screen .screen-content47{display:flex;gap:12px}
body.role-screen #screen .screen-main47{flex:1;min-width:0}
body.role-screen #screen .screen-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:12px}
body.role-screen #screen .screen-side{grid-template-rows:minmax(0,1fr) auto;gap:10px}
body.role-screen #screen .screen-bottom48{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;min-width:0;min-height:0}
body.role-screen #screen .screen-info48{display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:8px;min-width:0;min-height:0}
body.role-screen #screen #screenLadderCode48,body.role-screen #screen #screenTournamentCode48{align-self:end;min-width:0}
body.role-screen #screen #screenTournamentCode48:empty{display:none}
body.role-screen #screen #screenTournamentCode48{flex:none}
body.role-screen #screen #screenCodeCard48{width:auto;padding:10px;border-radius:10px}
body.role-screen #screen #screenClientJoin{width:auto;gap:8px}
body.role-screen #screen #screenClientQr{width:clamp(176px,10.8vw,208px);height:auto;max-width:none;aspect-ratio:1}
body.role-screen #screen #screenClientQr[hidden]{display:none}
body.role-screen #screen #screenClientJoin strong{font-size:16px;line-height:1.4}
body.role-screen #screen #screenClientCodeLabel{font-size:11px;line-height:1.4;display:block;max-width:208px}
body.role-screen #screen .screen-info48 .screen-panel{padding:8px}
body.role-screen #screen .screen-info48 .screen-panel-title{margin-bottom:4px}
body.role-screen #screen .screen-info48 .screen-panel-title h2{font-size:14px}
body.role-screen #screen .screen-info48 .screen-panel-title>span{font-size:10px}
body.role-screen #screen .screen-info48 strong{font-size:13px}
body.role-screen #screen .screen-info48 span{font-size:11px;line-height:1.35}
@media(max-height:800px){body.role-screen #screen #screenClientQr{width:176px}body.role-screen #screen .screen-info48 .screen-panel-title>span{display:none}body.role-screen #screen .screen-info48 .screen-panel{padding:6px}body.role-screen #screen .screen-info48 .screen-panel-title h2{font-size:12px}}
@media(max-height:600px){body.role-screen #screen #screenClientQr{width:148px}body.role-screen #screen #screenCodeCard48{padding:8px}body.role-screen #screen #screenClientJoin strong{font-size:13px}body.role-screen #screen #screenClientCodeLabel{font-size:10px;max-width:148px}body.role-screen #screen .screen-bottom48{gap:7px}body.role-screen #screen .screen-info48{gap:5px}body.role-screen #screen .screen-info48 .screen-panel{padding:4px}body.role-screen #screen .screen-info48 .screen-panel-title{margin-bottom:2px}body.role-screen #screen .screen-info48 span{-webkit-line-clamp:1;font-size:10px}}
body.role-screen #screenTournamentLayout{min-width:0;overflow:hidden}
body.role-screen #screenTournamentLayout .screen-tournament-header h2{font-size:clamp(20px,2vw,34px);overflow-wrap:anywhere}
body.role-screen #screenTournamentLayout .screen-tournament-header span{font-size:15px}
body.role-screen #screenTournamentLayout .screen-bracket-nav{min-width:0;gap:6px}
body.role-screen #screenTournamentLayout .screen-bracket-nav select{min-width:0}
body.role-screen #screenTournamentLayout .screen-flow-note49{flex:none;text-align:center;font-size:14px;color:#bacdbc;padding:0 4px 4px}
body.role-screen #screenChampions{display:flex;gap:8px;flex-wrap:nowrap}
body.role-screen #screenChampions:empty{display:none}
body.role-screen #screenChampions .screen-champion49{display:flex;align-items:center;gap:6px;min-width:0;flex:1;padding:5px 8px;background:#344133;border:1px solid #aa8d4d;border-radius:8px}
body.role-screen #screenChampions .screen-champion49.monthly{border-color:#d3b8ec;background:#3c3348}
body.role-screen #screenChampions .rank-avatar{flex:none;width:38px;height:38px;--avatar-size:38px}
body.role-screen #screenChampions .screen-champion49>div{min-width:0}
body.role-screen #screenChampions .screen-champion49 span{display:block;font-size:12px;margin:0;color:#f8dea3}
body.role-screen #screenChampions .screen-champion49 strong{font-size:17px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-height:600px){body.role-screen #screenChampions .screen-champion49{padding:2px 5px}body.role-screen #screenChampions .rank-avatar{width:28px;height:28px;--avatar-size:28px}body.role-screen #screenChampions .screen-champion49 strong{font-size:14px}body.role-screen #screenTournamentLayout .screen-bracket-nav button,body.role-screen #screenTournamentLayout .screen-bracket-nav select{font-size:13px;padding:5px 7px}body.role-screen #screenTournamentLayout .screen-tournament-header{padding:4px 10px}body.role-screen #screenTournamentLayout .screen-flow-note49{font-size:12px}}
.share-card49{max-width:420px;margin:0 auto;padding:18px 20px 15px;background:linear-gradient(145deg,#163b32,#09281f);border:1px solid #baa16c;color:#fff6dd;border-radius:18px;text-align:center;overflow:hidden;box-sizing:border-box}.share-card49.frame-ocean{background:linear-gradient(145deg,#163e51,#092829)}.share-card49.frame-gold{background:linear-gradient(145deg,#463b23,#1a2017)}.share-store49{display:flex;align-items:center;gap:10px;text-align:left;padding-bottom:10px;border-bottom:1px solid #547063}.share-store49 img{width:42px;height:42px;object-fit:contain;background:#fff;border-radius:8px;flex:none}.share-store49>div{min-width:0}.share-store49 strong{display:block;font-size:16px;overflow-wrap:anywhere;color:#fff2d0}.share-store49 span{display:block;font-size:11px;color:#c3d0bd}.share-portrait49{margin:10px auto 0}.share-portrait49 .rank-avatar{width:90px;height:90px;--avatar-size:90px;margin:auto}.share-card49 h3{font-size:26px;margin:4px 0 8px;color:#fff6dd;overflow-wrap:anywhere}.share-rank49{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}.share-history49{margin:5px 0}.share-titles49{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;color:#ffe4a1;font-weight:600;font-size:15px;margin:10px 0}.share-cups49{display:flex;justify-content:space-around;padding:10px 4px;background:#284637;border:1px solid #7d7955;border-radius:10px}.share-cups49 b{display:block;font-size:21px;color:#ffe1a0}.share-cups49 span{font-size:12px;color:#d0d9c7}.share-recent49{font-size:12px;line-height:1.5;margin:10px 0;color:#dfd8ba;overflow-wrap:anywhere}.share-stats49{display:flex;gap:6px;justify-content:space-around;font-size:12px;padding:10px 0;border-block:1px solid #486352}.share-card49 .share-signature49{font-size:12px;color:#d4ddca;margin:10px 0 8px;line-height:1.5;overflow-wrap:anywhere}.share-card49 footer{font-size:10px;color:#baa981}.share-hint49{text-align:center;font-size:12px;color:#768677;margin:10px}.share-records49{margin-top:14px}.share-records49 small{display:block;color:#728076}


body.role-screen #screenTournamentLayout .screen-winners49{display:flex;gap:8px}body.role-screen #screenTournamentLayout .screen-winners49>div{flex:1;min-width:0;padding:6px;gap:6px}body.role-screen #screenTournamentLayout .screen-winners49>div>div{min-width:0}body.role-screen #screenTournamentLayout .screen-winners49 .rank-avatar{width:46px;height:46px;--avatar-size:46px;flex:none}body.role-screen #screenTournamentLayout .screen-winners49 span{display:block;font-size:13px}body.role-screen #screenTournamentLayout .screen-winners49 strong{font-size:19px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* One shared event banner for official-account and Mini Program players. */
body.role-client .event-promo50{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 0 12px;padding:2px;max-width:100%;}body.role-client .event-promo50[hidden]{display:none;} .event-promo50 button{flex:0 0 100%;box-sizing:border-box;scroll-snap-align:start;background:#174f41;color:#fff;text-align:left;border:1px solid #b89b58;border-radius:16px;padding:16px 18px;display:grid;gap:5px;min-width:0;white-space:normal;} .event-promo50 strong{font-size:20px;overflow-wrap:anywhere;} .event-promo50 span,.event-promo50 small{font-size:13px;color:#e1ede6;} .event-promo50 b{font-size:14px;color:#f8dc91;}
