/* Shared UI refinements. Reference: docs/app-style-guide.md. */
.app-confirmation{width:min(390px,calc(100vw - 32px));box-sizing:border-box;max-height:calc(100dvh - 32px);overflow:auto;padding:20px;border:1px solid #705333;border-radius:16px;background:radial-gradient(ellipse at 0 0,#ffbf381b,transparent 65%),#131117;color:#fff9f2;box-shadow:0 20px 80px #000b}
.app-confirmation::backdrop{background:#050409bd;backdrop-filter:blur(3px)}
.app-confirmation-heading{display:flex;align-items:center;gap:10px;justify-content:space-between}.app-confirmation h2{font:900 20px/1.2 "Arial Black",system-ui,sans-serif;margin:0}.app-confirmation p{font:600 14px/1.5 "Segoe UI",system-ui,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;margin:16px 0 20px;color:#d3cbdc}
.app-confirmation button{min-height:44px;min-width:44px;border:1px solid #393441;border-radius:10px;color:#fff;background:#100e15;font:700 13px/1.3 "Segoe UI",system-ui,sans-serif;padding:10px;cursor:pointer}.app-confirmation-heading button{font-size:24px;flex-shrink:0;padding:4px}.app-confirmation-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.app-confirmation-actions button[value=confirm]{background:#292018;border-color:#705333;color:#ffd065}.app-confirmation button:focus-visible{outline:2px solid #ffd065;outline-offset:3px}
.preview-room{--pr-border:#393441;--pr-panel:#131117;--pr-muted:#aca4bb}
.preview-room button,.preview-room input,.preview-room select{font:700 12px 'Segoe UI',sans-serif;color:#fff;background:#100e15;border:1px solid var(--pr-border);border-radius:12px;min-height:40px;padding:8px 12px;box-sizing:border-box}
.preview-room button{cursor:pointer}.preview-room button:disabled{opacity:.4;cursor:default}
.preview-room .pr-nav,.preview-room .pr-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.preview-room .pr-heading>b{font-size:14px;font-weight:900}.preview-room .pr-heading button{font-size:11px;white-space:nowrap}
.preview-room .pr-hero{padding:12px;border:1px solid var(--pr-border);border-radius:16px;background:var(--pr-panel);margin-bottom:16px}
.preview-room .pr-hero h2{font-size:20px;margin:4px 0;font-weight:900}
.preview-room .pr-columns,.preview-room .pr-row{display:grid;grid-template-columns:24px minmax(0,1fr) 56px 44px;gap:8px;align-items:center;padding:8px 12px;border:1px solid transparent}
.preview-room .pr-columns{color:var(--pr-muted);font-size:11px}.preview-room .pr-columns>:nth-child(n+3){text-align:center}
.preview-room .pr-board{display:grid;gap:6px}.preview-room .pr-row{min-height:58px;box-sizing:border-box;background:var(--pr-panel);border-color:var(--pr-border);border-radius:12px;font-size:13px}
.preview-room .pr-row>strong{text-align:center;color:#ffd065;font-size:20px;font-variant-numeric:tabular-nums}
.preview-room .pr-row input{width:100%;text-align:center;padding:8px 4px;appearance:textfield;-moz-appearance:textfield}
.preview-room input::-webkit-inner-spin-button,.preview-room input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.preview-room .pr-row select{width:100%;min-width:0;padding:6px}.preview-room .pr-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.preview-room .pr-primary{width:100%;margin-top:12px;min-height:52px;text-align:left;font-weight:900;background:#292018;border-color:#705333}
.preview-room [data-room-error]{font-size:12px;color:#ffaaa2;margin:12px 0 0}.preview-room [data-room-error]:empty{display:none}
.preview-room .pr-setup{margin-bottom:12px}.preview-room .pr-setup label{display:grid;gap:8px;font-size:12px;color:var(--pr-muted)}
.preview-room .pr-wait{font-size:13px;padding:20px 0;color:var(--pr-muted)}.preview-room details{margin-top:16px;font-size:12px;color:var(--pr-muted)}
.preview-room .pr-confirmation{padding:12px;margin-bottom:12px;border:1px solid #705333;border-radius:12px;background:#292018;font-size:13px}.preview-room .pr-confirmation p{margin:0 0 12px}
@media(max-width:350px){.preview-room .pr-columns,.preview-room .pr-row{grid-template-columns:20px minmax(0,1fr) 48px 38px;gap:6px;padding:8px}.preview-room .pr-heading>b{font-size:12px}}
.preview-manage [hidden]{display:none!important}
.preview-manage .admin-manage-hero{margin:12px 0;padding:12px;gap:12px;border-radius:16px}
.preview-manage .pm-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;margin:12px 0 16px;background:#131117;border:1px solid #393441;border-radius:12px}
.preview-manage .pm-tabs button{border:1px solid transparent;border-radius:8px;background:transparent;color:#aca4bb;min-height:40px;font-size:12px;font-weight:800;padding:6px}
.preview-manage .pm-tabs button[aria-selected=true]{color:#ffd065;background:#292018;border-color:#705333}
.preview-manage .admin-manage-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid #393441;border-radius:12px;overflow:hidden;background:#131117;margin:0}
.preview-manage .admin-manage-stats article{border:0;border-radius:0;background:transparent;padding:12px;box-shadow:none}
.preview-manage .admin-manage-stats article+article{border-left:1px solid #393441}
.preview-manage .admin-manage-stats span{font-size:11px}.preview-manage .admin-manage-stats b{font-size:18px}
.preview-manage .pm-progress{font-size:12px;line-height:1.5;color:#aca4bb;margin:12px 0}
.preview-manage .pm-actions{display:grid;gap:8px}
.preview-manage .pm-actions>button,.preview-manage #pm-settings button{display:flex;align-items:center;gap:12px;width:100%;padding:12px;min-height:58px;text-align:left;background:#131117;border:1px solid #393441;border-radius:12px;color:#fff;margin:0 0 8px}
.preview-manage .pm-actions>button:not(#adminToggleRegistration){background:#292018;border-color:#705333}
.preview-manage .pm-actions button svg,.preview-manage #pm-settings button svg{width:24px;height:24px;flex:none}
.preview-manage .pm-actions button span,.preview-manage #pm-settings button span{display:grid;gap:4px}
.preview-manage .pm-actions button b,.preview-manage #pm-settings button b{font-size:13px}
.preview-manage .pm-actions button small,.preview-manage #pm-settings button small{font-size:11px;color:#aca4bb}
.preview-manage .section-title{margin:16px 0 10px}.preview-manage .section-title>span{font-size:13px}
.preview-manage .generated-round{margin:0 0 16px}.preview-manage .generated-round h3{font-size:14px;display:flex;justify-content:space-between;align-items:center}
.preview-manage .generated-lobby{border:1px solid #393441;border-radius:12px;background:#131117;padding:12px;margin:6px 0;min-height:58px}
.preview-manage .generated-lobby b{font-size:13px}.preview-manage .generated-lobby small{font-size:11px;color:#aca4bb}
.preview-manage .pm-test{font-size:12px;color:#aca4bb;margin-top:16px}.preview-manage .pm-test button{margin-top:12px!important}
.preview-manage .leaderboard-row{border-radius:12px;border:1px solid #393441;background:#131117;padding:12px;margin:6px 0}
:root{--ui-surface:#131117;--ui-field:#100e15;--ui-border:#393441;--ui-copy:#aca4bb;--ui-gold:#ffd065;--ui-radius:12px;--ui-copy-font:"Segoe UI",system-ui,sans-serif}
.screen [hidden]{display:none!important}
.screen .form-error{color:#ffaaa2;font:600 13px/1.5 var(--ui-copy-font);margin:6px 0;overflow-wrap:anywhere}.screen .form-error:empty{display:none}
.screen #registrationFlow{position:relative}.screen .registration-exit{position:absolute;left:12px;top:12px;z-index:4;width:44px;height:44px;display:grid;place-items:center;border:1px solid #393441;border-radius:12px;background:#100e15;color:#aca4bb;font-size:28px;line-height:1}
.preview-manage .pm-tabs button[aria-pressed=true]{color:#ffd065;background:#292018;border-color:#705333}
.screen.preview-manage .pm-progress{font:600 12px/1.5 var(--ui-copy-font);background:none;border:0;box-shadow:none;padding:0;color:var(--ui-copy)}
.screen.preview-manage .admin-manage-hero h1{font-size:20px}.screen.preview-manage .admin-manage-hero p{font:600 11px/1.4 var(--ui-copy-font)}
.screen.preview-manage .generated-round h3 small{font:600 11px var(--ui-copy-font)}
.preview-manage .pm-tabs #adminEditTournament{display:block;width:auto;margin:0;background:transparent;border:1px solid transparent}
.preview-manage .pm-tabs #adminEditTournament b{font-size:12px}
.preview-manage .pm-actions>button#adminUndoTournamentStart{background:#131117;border-color:#393441}
.preview-manage .pm-tools{font:600 12px/1.5 var(--ui-copy-font);color:var(--ui-copy);margin-top:16px}
.preview-manage .pm-tools summary,.preview-room summary{min-height:44px;align-content:center;cursor:pointer}
.preview-manage .pm-tools button{display:flex;gap:12px;align-items:center;width:100%;min-height:52px;padding:12px;background:var(--ui-field);border:1px solid var(--ui-border);border-radius:12px;text-align:left;margin:8px 0}
.preview-manage .pm-tools button svg{width:24px;height:24px;flex:none}.preview-manage .pm-tools button span{display:grid;gap:4px}.preview-manage .pm-tools button b{font-size:13px}.preview-manage .pm-tools button small{font:600 11px/1.4 var(--ui-copy-font);color:var(--ui-copy)}
.preview-room .pr-heading h1{font-size:14px;line-height:1.25;margin:0;font-weight:900}
.preview-room .pr-setup{font:600 12px/1.5 var(--ui-copy-font)}.preview-room .pr-setup label{display:block;margin:10px 0 8px}
.preview-room .pr-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.preview-room .pr-code-row input{width:100%}
.preview-room #adminLobbyHint:empty,.preview-room #adminLobbyError:empty{display:none}
.preview-room #adminLobbyError{color:#ffaaa2;font:600 12px/1.5 var(--ui-copy-font);margin:12px 0 0}
.preview-room .pr-roster-player{display:grid;grid-template-columns:minmax(0,1fr) 105px;gap:8px;padding:12px 0;border-top:1px solid var(--ui-border);align-items:center}
.preview-room .pr-roster-player>div{min-width:0}.preview-room .pr-roster-player b{display:block;color:#fff;font-size:13px;overflow-wrap:anywhere}.preview-room .pr-roster-player small{display:block;font:600 11px/1.4 var(--ui-copy-font);margin-top:5px}
.preview-room .pr-roster-player select{min-width:0;width:100%;padding:6px;font-size:11px}.preview-room .pr-roster-player button{grid-column:2;font-size:11px;min-height:44px}
.preview-room .pr-row input[aria-invalid=true]{border-color:#ff665f;background:#381c22}
.insight-metric .insight-icon{color:var(--insight-accent)}
.screen :where(button,input,textarea,select){font-size:12px}
.screen :where(button){touch-action:manipulation}
.screen :where(h1,h2,h3,b,strong){overflow-wrap:break-word}
.screen .page-heading h1{font-size:24px;line-height:1.12}
.screen .page-lead{font:600 13px/1.5 var(--ui-copy-font);color:var(--ui-copy)}
.screen .eyebrow{font-size:10px;letter-spacing:.7px}
.screen .section-title{margin:20px 0 10px;align-items:center;gap:8px}
.screen .section-title>span{font-size:14px}.screen .section-title small{font:700 11px/1.3 var(--ui-copy-font);text-align:right}
.screen .back-link{min-width:44px;min-height:44px;flex-shrink:0}
.screen .primary-action{min-height:52px;font-size:16px;border-radius:12px}
.screen .secondary-action{min-height:44px;font-size:13px;border-radius:12px}
.screen .count-pill{font-size:11px;min-height:28px}
.screen .admin-form{padding:14px;gap:14px 10px;border:1px solid var(--ui-border);border-radius:16px;background:var(--ui-surface);box-shadow:none}
.screen .admin-form label>span,.screen .admin-form legend{font:700 12px/1.4 var(--ui-copy-font);color:var(--ui-copy)}
.screen .admin-form input,.screen .admin-form textarea,.screen .admin-form select{min-height:44px;font:600 14px/1.4 var(--ui-copy-font);padding:10px 12px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-field)}
.screen .admin-form label>small,.screen .admin-form-error{font:600 12px/1.4 var(--ui-copy-font)}
.screen .admin-form textarea{min-height:128px;resize:vertical}
.screen .admin-form input[type=checkbox]{width:20px;min-height:20px;height:20px;padding:0;accent-color:#ffb53d}
.screen .admin-checkbox{min-height:44px}
.screen :where(input,select,textarea,button,summary):focus-visible{outline:2px solid var(--ui-gold);outline-offset:3px}
.screen :where(button:disabled){cursor:default}
.screen .game-card{isolation:isolate}
.screen .tournament-guide{font:600 13px/1.5 var(--ui-copy-font)}
.screen .graph-head{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);min-height:42px;align-items:start;gap:6px}.screen .graph-period{position:static;transform:none;max-width:70px;margin-top:1px;text-align:center;white-space:normal;font:700 10px/1.2 var(--ui-copy-font)}
.screen .graph-head-controls{display:flex;justify-self:end;align-items:flex-start}.screen .graph-head [data-chart-title]{font-size:clamp(9px,2.5cqi,10px)}
.screen .chart-switch{position:static;transform:none;width:clamp(100px,28cqi,112px);padding:2px}.screen .chart-switch button{min-height:26px;padding:0 6px;font:800 10px var(--ui-copy-font)}.screen .chart-axis{font:600 10px var(--ui-copy-font);margin-top:2px}
.graph-card .chart-wrap .chart-grid{display:none}
.elo-guide{fill:none;stroke:var(--rank-color);stroke-opacity:.32;stroke-width:1;stroke-dasharray:3 4}
.graph-card .chart-wrap{position:relative}.elo-target{position:absolute;top:0;right:5px;z-index:2;color:var(--rank-color);font:700 12px/1.4 var(--ui-copy-font)}
.elo-target>summary{display:flex;align-items:center;gap:8px;min-height:32px;padding:0;border:0;background:none;list-style:none;cursor:pointer}.elo-target>summary::-webkit-details-marker{display:none}.elo-target-copy{color:var(--muted);font-weight:500}.elo-target-copy b{color:var(--rank-color);font-weight:800;font-variant-numeric:tabular-nums}
.elo-target-icon{position:relative;display:block;width:25px;height:28px;flex:none}.elo-target-icon img,.elo-target-icon .brawl-icon{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.elo-rank-labels{position:absolute;inset:0 0 auto;aspect-ratio:360/150;pointer-events:none}.elo-rank-marker{position:absolute;right:5px;transform:translateY(-50%);pointer-events:auto;display:flex;align-items:center;gap:8px;color:var(--rank-color);font:700 12px/1.4 var(--ui-copy-font)}.elo-rank-marker b{font-weight:800;font-variant-numeric:tabular-nums;text-shadow:0 1px 3px #14131a}
.elo-target-detail{position:absolute;right:0;top:calc(100% + 4px);display:grid;gap:3px;min-width:142px;padding:12px 14px;border:1px solid #594754;border-radius:10px;background:#211b25;box-shadow:0 6px 20px #0008;white-space:nowrap}.elo-target-detail span{color:var(--muted);font-size:11px}.elo-target-detail strong{font-size:15px;font-variant-numeric:tabular-nums}
.screen .chart-empty{font:600 13px/1.5 var(--ui-copy-font)}
.screen .rank-pair{--rank-icon-size:clamp(36px,calc(20cqi - 28px),58px);grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(6px,2cqi,8px)}
#screen-player-detail{position:relative}
#playerDetailBack{position:absolute;top:22px;left:5px;z-index:2}
#playerDetailBack,#clubBack{width:44px;height:44px;margin:0;padding:0;border:0;border-radius:10px;background:transparent;box-shadow:none;color:var(--muted)}
#playerDetailBack:hover,#clubBack:hover{background:#ffffff0a;color:var(--text)}
#playerDetailBack:active,#clubBack:active{background:#ffffff12;box-shadow:none}
.screen .player-detail-hero{--player-avatar-size:clamp(48px,14cqi,58px);grid-template-columns:var(--player-avatar-size) minmax(0,1fr);gap:10px;min-height:88px;padding:12px 12px 12px 54px}
.player-detail-hero .profile-avatar{width:var(--player-avatar-size);height:var(--player-avatar-size);border-radius:14px}
.player-detail-hero .profile-copy{grid-column:2 / -1}
.player-detail-hero .profile-copy h1{font-size:clamp(18px,5.2cqi,22px);overflow-wrap:anywhere}
#playerDetailStatus{padding-left:54px}
.screen .rank-card{display:grid;grid-template-columns:var(--rank-icon-size) minmax(0,1fr);min-width:0;min-height:92px;gap:6px;padding:clamp(8px,2cqi,10px);align-items:center;justify-content:normal}
.screen .rank-card .rank-emblem-image,.screen .rank-card .trophy-emblem{width:var(--rank-icon-size);height:var(--rank-icon-size);min-width:0;flex:initial}
.screen .rank-card .trophy-emblem .brawl-icon{width:var(--rank-icon-size);height:var(--rank-icon-size)}
.screen .rank-card>div:last-child{min-width:0;flex:initial;align-self:center}
.screen .rank-card span{font:800 9px/1.3 var(--ui-copy-font)}
.screen .rank-card b{font-size:clamp(16px,4.5cqi,19px);white-space:nowrap;font-variant-numeric:tabular-nums}
.screen .rank-card small{min-height:2.6em;font:800 9px/1.3 var(--ui-copy-font);white-space:normal;overflow-wrap:anywhere}
.screen .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.screen .metric-grid article{min-width:0}.screen .metric-copy>b{white-space:nowrap}
.graph-card .chart-wrap>svg,.graph-card .chart-wrap>.chart-empty{aspect-ratio:360/150;height:auto}
.graph-card .chart-axis[hidden]{display:flex!important;visibility:hidden}

/* Club profile: the same hero/metric hierarchy as the player profile. */
#screen-club-detail .selected-club{display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:12px;border:1px solid #61502e;border-radius:16px;background:radial-gradient(ellipse at 0 0,#ffbf3820,transparent 65%),var(--ui-surface);box-shadow:none;margin-top:0}
#screen-club-detail .selected-club-header{--club-icon-size:clamp(44px,14cqi,58px);display:grid;grid-template-columns:44px var(--club-icon-size) minmax(0,1fr) 44px;align-items:center;gap:6px;margin-left:-8px;min-height:62px}
#screen-club-detail .selected-icon{width:var(--club-icon-size);height:var(--club-icon-size);filter:drop-shadow(0 4px 2px #0008)}
#screen-club-detail .selected-icon img{width:100%;height:100%;object-fit:contain}
#screen-club-detail .selected-club-copy{min-width:0}
#screen-club-detail .selected-club h1{font-size:clamp(17px,5.2cqi,22px);line-height:1.15;overflow-wrap:anywhere}
#screen-club-detail .selected-club p{font:600 11px/1.5 var(--ui-copy-font);color:var(--ui-copy);margin-top:6px;white-space:normal;overflow-wrap:anywhere}
#screen-club-detail .star-button{box-sizing:border-box;width:44px;height:44px;margin:0;padding:0;display:grid;place-items:center;align-self:center}
#screen-club-detail .selected-club-stats{display:flex;justify-content:space-between;align-items:start;gap:12px;padding-top:12px;border-top:1px solid #ffffff12}
#screen-club-detail .selected-total,#screen-club-detail .selected-delta{grid-column:auto;min-width:0;padding:0;border-top:0}
body.is-unregistered #screen-club-detail .selected-club-stats{display:none}
body.is-unregistered #screen-club-detail .selected-club-header{grid-template-columns:44px var(--club-icon-size) minmax(0,1fr)}
#screen-club-detail .selected-total>span,#screen-club-detail .selected-delta>span{font:700 11px/1.4 var(--ui-copy-font)}
#screen-club-detail .selected-total>b{font-size:26px;color:var(--ui-gold)}
#screen-club-detail .selected-delta>b{font-size:20px}
#screen-club-detail #guestClubJoin{margin:12px 0 20px;font-size:16px;box-shadow:0 3px #4c2008}
#screen-club-detail .member-list{display:grid;gap:8px}
#screen-club-detail .member-row{grid-template-columns:22px 44px minmax(0,1fr) auto 10px;gap:10px;padding:12px 10px;min-height:76px;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-surface);box-shadow:none}
#screen-club-detail .member-rank{font-size:13px;color:var(--ui-copy)}
#screen-club-detail .member-avatar{width:44px;height:44px;border:1px solid #665137;border-radius:12px;background:linear-gradient(145deg,#695037,#221a20);box-shadow:0 3px 0 #07060a}
#screen-club-detail .member-avatar>span{display:grid;place-items:center;width:100%;height:100%}
#screen-club-detail .member-avatar .brawl-icon{width:32px;height:32px}
#screen-club-detail .member-copy b{font-size:13px;line-height:1.3}
#screen-club-detail .member-copy small{font:600 10px/1.4 var(--ui-copy-font);color:var(--ui-copy);margin-top:4px}
#screen-club-detail .member-score b{font-size:14px;font-variant-numeric:tabular-nums;gap:4px}
#screen-club-detail .member-score small{font:700 10px/1.4 var(--ui-copy-font);margin-top:5px}
#screen-club-detail .member-arrow{font-size:22px;color:#8b8294}
body.is-unregistered #screen-club-detail .member-row{grid-template-columns:22px 44px minmax(0,1fr)}
.screen .club-card .club-info small{font-size:10px}.screen .club-card .club-info i{font:600 11px/1.4 var(--ui-copy-font)}
.screen .club-score small,.screen .network-card small{font:700 11px/1.4 var(--ui-copy-font)}
.screen .club-score b{font-size:18px;color:var(--ui-gold)}
.screen .club-card{border-width:1px;border-radius:16px}
.screen .admin-heading-back,.screen .admin-visitor-back{min-height:44px;min-width:44px}
.screen .admin-brawler-option{min-height:64px}.screen .admin-brawler-option span{font:700 11px/1.3 var(--ui-copy-font)}
.screen .admin-brawler-pool-head small{font:600 12px/1.4 var(--ui-copy-font)}

/* Analytics: expressive metrics, one visitor list and optional history. */
.insight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 20px}
.insight-metric{--insight-accent:#ffd065;--insight-tint:#ffca4320;--insight-edge:#66542e;position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;overflow:hidden;min-height:100px;padding:14px 12px;border:1px solid var(--insight-edge);border-radius:14px;background:radial-gradient(ellipse at 100% 50%,var(--insight-tint),transparent 75%),var(--ui-surface)}
.insight-metric.green{--insight-accent:#82f455;--insight-tint:#77ed4930;--insight-edge:#3e6037}.insight-metric.blue{--insight-accent:#55defb;--insight-tint:#43d5f42b;--insight-edge:#315b65}.insight-metric.purple{--insight-accent:#b598ff;--insight-tint:#9c78ff24;--insight-edge:#544267}
.insight-metric>div{display:flex;flex-direction:column;gap:5px;min-width:0;z-index:1}.insight-metric span{font:700 11px/1.3 var(--ui-copy-font);color:#d3cbdc}.insight-metric b{font-size:27px;line-height:1;color:var(--insight-accent);font-variant-numeric:tabular-nums}.insight-metric small{font:600 10px/1.3 var(--ui-copy-font);color:var(--ui-copy)}
.insight-metric .insight-icon{width:42px;height:42px;flex-shrink:0;filter:drop-shadow(0 3px 2px #0008)}
#screen-admin-tool .admin-stats-tabs{padding:4px;gap:4px;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-field);margin-bottom:16px}
#screen-admin-tool .admin-stats-tabs button{min-height:44px;font-size:12px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ui-copy)}
#screen-admin-tool .admin-stats-tabs button.active{border-color:#85632b;background:linear-gradient(145deg,#4d351a,#251d17);color:#ffd065;box-shadow:inset 0 1px #ffe29218}
#screen-admin-tool .admin-visit-toolbar{margin:12px 0;gap:12px}
#screen-admin-tool .admin-visit-toolbar span{font:600 12px/1.4 var(--ui-copy-font)}
#screen-admin-tool .admin-visit-toolbar button{display:flex;align-items:center;gap:6px;min-height:44px;font:700 12px var(--ui-copy-font);padding:8px 12px;border:1px solid #705333;border-radius:10px}
#screen-admin-tool .admin-visitor-row{min-height:72px;padding:12px;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-surface);gap:12px;grid-template-columns:40px minmax(0,1fr) auto}
#screen-admin-tool .admin-visitor-row>span{width:40px;height:40px;background:linear-gradient(145deg,#5a4c71,#241d32);border:1px solid #6c5684;border-radius:11px}
#screen-admin-tool .admin-visitor-row>span .brawl-icon{width:30px;height:30px;filter:drop-shadow(0 2px #0008)}
#screen-admin-tool .admin-visitor-row b{font-size:14px}#screen-admin-tool .admin-visitor-row div small{font:600 11px/1.5 var(--ui-copy-font)}
#screen-admin-tool .admin-visitor-row>strong{font-size:21px}#screen-admin-tool .admin-visitor-row>strong small{font:600 10px var(--ui-copy-font)}
.insight-history{margin:16px 0;color:var(--ui-copy);font:700 12px var(--ui-copy-font)}.insight-history summary{min-height:44px;align-content:center;cursor:pointer}
#screen-admin-tool .admin-visit-feed{background:transparent;border:0;padding:0}
#screen-admin-tool .admin-visit-feed>div{min-height:52px}.admin-visit-feed span{flex-wrap:wrap}
#screen-admin-tool .admin-visit-feed b{font-size:12px}#screen-admin-tool .admin-visit-feed small{font:600 11px var(--ui-copy-font)}
#screen-admin-tool .admin-visit-event{padding:14px 12px;background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:12px}
#screen-admin-tool .admin-visit-event>div b{font-size:12px}#screen-admin-tool .admin-visit-event>div strong{font-size:16px;color:var(--ui-gold)}
#screen-admin-tool .admin-visit-event>i{height:5px;margin-top:10px}#screen-admin-tool .admin-visit-event>i span{background:linear-gradient(90deg,#ce7227,#ffd065)}
#screen-admin-tool .admin-visit-event>small span{font:600 11px var(--ui-copy-font);padding:6px}
#screen-admin-tool .admin-visitor-detail{padding:14px;border:1px solid var(--ui-border);border-radius:16px}
#screen-admin-tool .admin-visitor-detail header b{font-size:16px}#screen-admin-tool .admin-visitor-detail header>strong{font-size:24px}
#screen-admin-tool .admin-visitor-detail header small,#screen-admin-tool .admin-visitor-detail>p{font:600 12px/1.5 var(--ui-copy-font)}
#screen-admin-tool .admin-visit-section{font:800 11px/1.4 var(--ui-copy-font);margin:20px 0 10px}
#screen-admin-tool .admin-visit-error p,#screen-admin-tool .admin-visit-error-inline{font:600 13px/1.5 var(--ui-copy-font);color:#ffaaa2}
#screen-admin-tool .admin-tournament-registration{padding:12px;border-width:1px;border-radius:12px;gap:10px}
#screen-admin-tool .admin-tournament-registration b{font-size:13px}#screen-admin-tool .admin-tournament-registration small{font:600 11px/1.4 var(--ui-copy-font)}
#screen-admin-tool .admin-tournament-registration time b{font:700 11px/1.4 var(--ui-copy-font)}

/* Message composer: input first, optional preview, one primary action. */
.message-composer{padding:0;margin-top:20px}
.message-composer-head{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding:14px;border:1px solid #705333;border-radius:14px;background:radial-gradient(ellipse at 0 0,#ffbd3820,transparent 70%),var(--ui-surface)}
.message-composer-head>.brawl-icon{width:38px;height:38px;filter:drop-shadow(0 3px 2px #0008)}
.message-composer-head h2{font-size:20px;margin:5px 0 0}.message-composer-head .eyebrow{color:#c8b491}
.message-input-label{display:block;font:700 12px var(--ui-copy-font);color:var(--ui-copy);margin-bottom:8px}
.message-composer .admin-tool-textarea{width:100%;min-height:180px;padding:14px;font:600 15px/1.5 var(--ui-copy-font);background:var(--ui-field);border:1px solid var(--ui-border);border-radius:12px;color:#fff;resize:vertical}
.message-input-meta{display:flex;justify-content:flex-end;margin:6px 0 14px}.message-input-meta small{font:600 11px var(--ui-copy-font);color:var(--ui-copy)}
.message-composer .admin-message-option{display:flex;align-items:center;gap:12px;min-height:54px;border:0;background:none;padding:0;margin:12px 0}
.message-composer .admin-message-option input{width:22px;height:22px;flex-shrink:0;accent-color:#ffbe46}
.message-composer .admin-message-option b{font:700 13px/1.4 var(--ui-copy-font)}.message-composer .admin-message-option small{font:600 11px/1.4 var(--ui-copy-font);color:var(--ui-copy);margin-top:3px}
.message-preview-details{margin:12px 0;color:var(--ui-copy);font:700 12px var(--ui-copy-font)}.message-preview-details summary{min-height:44px;align-content:center;cursor:pointer}
.message-preview-bubble{padding:14px;border-radius:14px;background:#211b2c;border:1px solid #4d3d62}
.message-preview-bubble .admin-preview-message{border:0;background:none;padding:0;min-height:0;margin:0;font:500 14px/1.5 var(--ui-copy-font);white-space:pre-wrap;overflow-wrap:anywhere;color:#fff}
#adminMessagePreviewLink{display:block;text-align:center;padding:12px;margin-top:12px;background:#34273f;color:#dbc3fd;border-radius:8px;font-size:12px}
.message-local-note{font:600 11px/1.4 var(--ui-copy-font);color:var(--ui-copy);margin:16px 0 8px}
.message-composer .primary-action{width:100%;margin-top:12px;min-height:54px}
.screen .message-history{align-items:start}.screen .message-history small{white-space:pre-wrap;overflow-wrap:anywhere}

/* Shared secondary screens and accessible typography. */
.screen .admin-tool-summary{gap:8px}.screen .admin-tool-summary article{padding:12px;background:radial-gradient(ellipse at 100% 0,#ffbc3f13,transparent 75%),var(--ui-surface);border:1px solid var(--ui-border);border-radius:12px}
.screen .admin-tool-summary span{font:700 11px/1.4 var(--ui-copy-font)}.screen .admin-tool-summary b{font-size:22px;color:var(--ui-gold)}
.screen .admin-tool-card{border:1px solid var(--ui-border);border-radius:14px;padding:14px;background:var(--ui-surface);box-shadow:none}
.screen .admin-tool-card h2{font-size:17px}.screen .admin-tool-card p{font:600 13px/1.5 var(--ui-copy-font)}
.screen .admin-tool-row{padding:12px;border:1px solid var(--ui-border);border-radius:12px;gap:12px;background:var(--ui-surface)}
.screen .admin-tool-row b{font-size:13px}.screen .admin-tool-row small{font:600 12px/1.4 var(--ui-copy-font);margin-top:5px}
.screen .admin-tool-row button,.screen .admin-tool-button{min-height:44px;font:700 12px var(--ui-copy-font);padding:8px 12px;border-radius:10px}
.screen .admin-toggle-row{gap:12px;padding:12px 0}.screen .admin-toggle-row b{font-size:13px}.screen .admin-toggle-row small{font:600 12px/1.4 var(--ui-copy-font)}
.screen .admin-switch{height:44px;min-width:52px;border-radius:12px}.screen .admin-switch i{width:22px;height:22px}.screen .admin-switch.on i{transform:translateX(23px)}
.screen .admin-api-state{font:700 12px/1.4 var(--ui-copy-font)}
.screen .player-detail-status b,.screen .player-brawler-empty b{font-size:14px}.screen .player-detail-status small{font:600 12px/1.4 var(--ui-copy-font)}
.screen .player-brawler-list article:not(.player-brawler-empty){grid-template-columns:18px 44px minmax(0,1fr) auto;gap:9px;min-height:68px;padding:10px;border:1px solid var(--ui-border);border-radius:13px;background:var(--ui-surface)}
.screen .player-brawler-list .player-brawler-rank{width:auto;height:auto;display:block;border:0;border-radius:0;background:none;color:var(--muted);font:800 12px var(--ui-copy-font);text-align:center}
.screen .player-brawler-list .player-brawler-portrait{position:relative;display:block;width:44px;height:44px;border:0;border-radius:10px;background:#211b2c;overflow:hidden}.player-brawler-portrait img,.player-brawler-portrait .brawl-icon{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.player-brawler-portrait .brawl-icon{padding:8px;color:#9b83bf}
.screen .player-brawler-list article b{font-size:13px}.screen .player-brawler-list article small{font:600 11px/1.4 var(--ui-copy-font)}.screen .player-brawler-list article>strong{font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}.player-brawler-copy{min-width:0}.player-brawler-copy b,.player-brawler-copy small{overflow-wrap:anywhere}
.metric-grid .growth-arrow-card.growth-no-data .metric-icon{opacity:.35}.metric-grid .growth-arrow-card.negative{--growth-accent:#ff6d77;--growth-glow:#ff6d7724;border-color:#63343d}.metric-grid .growth-arrow-card.negative .metric-icon .brawl-icon{transform:scaleY(-1)}
.screen .tournament-rules-copy p{font:600 13px/1.6 var(--ui-copy-font)}
.screen .tournament-rules-copy h2{font-size:17px}
.screen .admin-live-leaderboard{padding:0;border:0;background:none;box-shadow:none}
.screen .leaderboard-row{min-height:68px}
.screen .leaderboard-row:not(.public-leaderboard-row){gap:10px;padding:10px;grid-template-columns:34px minmax(0,1fr) auto}
.screen .leaderboard-rank{width:32px;height:34px;font-size:12px}
.screen .leaderboard-player b{font-size:13px;line-height:1.3}.screen .leaderboard-player small{font:600 11px/1.4 var(--ui-copy-font);margin-top:4px}
.screen .leaderboard-points{font-style:normal}.screen .leaderboard-points b{font-size:20px;font-variant-numeric:tabular-nums}.screen .leaderboard-points small{font:600 10px var(--ui-copy-font)}
.screen .review-card{padding:14px;border-width:1px;border-radius:12px}.screen .review-card h3{font-size:16px}.screen .review-card p{font:600 12px/1.5 var(--ui-copy-font)}
.screen .duel-group{border:0;border-top:1px solid var(--ui-border);padding:14px 0;background:none}.screen .duel-group>b{font-size:14px}.screen .duel-group>small{font:600 12px/1.5 var(--ui-copy-font)}
.screen .duel-group label{gap:12px;font-size:13px}.screen .duel-group select{min-height:44px;font:600 12px var(--ui-copy-font)}
.screen .leaderboard-stage-strip small,.screen .leaderboard-table-head{font:800 10px/1.3 var(--ui-copy-font)}.screen .leaderboard-stage-strip b{font-size:13px}
.screen .bank-subtitle,.screen .bank-subscreen .bank-wheel-copy p{font:600 13px/1.5 var(--ui-copy-font)}
.screen .bank-quest b{font-size:14px}.screen .bank-quest small{font:600 12px/1.5 var(--ui-copy-font)}
.screen .bank-quest-progress-label{font:600 11px/1.4 var(--ui-copy-font);display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 8px;margin-top:6px}
.screen .bank-claim{min-height:44px;font:800 12px var(--ui-copy-font);padding:8px 10px}.screen .bank-quest-reward>span{font-size:16px}
.screen .bank-history-row b{font-size:12px}.screen .bank-history-row small{font:600 11px/1.4 var(--ui-copy-font)}
body .preview-room button,body .preview-room input,body .preview-room select,body .preview-manage .pm-tabs button{min-height:44px}
body .preview-room .pr-primary{min-height:52px}
body .tm-card>b{font-size:12px;min-height:34px}body .tm-form-row select{font:600 13px var(--ui-copy-font);min-height:44px}
body .tm-dialog-heading button{min-width:44px;min-height:44px}body .tm-room-map b{font-size:13px}
@media(max-width:365px){
  .screen .club-card{grid-template-columns:48px minmax(0,1fr);grid-template-rows:auto auto auto;gap:8px 10px;padding:14px 12px;min-height:132px}
  .screen .club-mark{grid-column:1;grid-row:1/3;align-self:center;width:48px;height:48px}.screen .club-mark .club-badge-image{width:48px;height:48px;object-fit:contain}
  .screen .club-info{grid-column:2;grid-row:1}.screen .club-info b{font-size:17px;margin:3px 0}.screen .club-score{grid-column:2;grid-row:2;display:flex;align-items:baseline;gap:8px;text-align:left;margin:0}.screen .club-progress{grid-column:1/-1;grid-row:3;margin:2px 0 0}
  body.is-unregistered .screen .club-card{min-height:94px;grid-template-rows:auto}.is-unregistered .screen .club-mark{grid-row:1}
  #screen-club-detail .member-row{gap:6px;grid-template-columns:18px 38px minmax(0,1fr) auto 8px;padding:10px 8px}
  #screen-club-detail .member-avatar{width:38px;height:38px}#screen-club-detail .member-score b{font-size:12px}
  .insight-metric{padding:12px 10px;gap:4px}.insight-metric b{font-size:24px}.insight-metric .insight-icon{width:32px;height:32px}
  .screen .admin-tool-row{flex-wrap:wrap}.screen .admin-tool-row>div{flex:1 1 150px}
}
@media(prefers-reduced-motion:reduce){.admin-visit-loading i{animation:none}}
/* Tournament attendance: one participant action and a compact organiser roster. */
.screen .admin-checkin-setting{display:flex;align-items:flex-start;gap:12px;padding:12px;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-field)}
.screen .admin-checkin-setting input{flex:none;width:20px;height:20px;min-height:20px;margin:2px 0;accent-color:#ffb53d}.screen .admin-checkin-setting>span{display:grid;gap:5px}.screen .admin-checkin-setting b{font:800 13px/1.3 var(--ui-copy-font)}.screen .admin-checkin-setting small{font:600 12px/1.5 var(--ui-copy-font);color:var(--ui-copy)}
.tournament-checkin{padding:10px 0 0}.checkin-copy{display:flex;align-items:flex-start;gap:9px}.checkin-copy>.brawl-icon{margin-top:2px;color:var(--ui-gold);width:22px;height:22px;flex:none}.checkin-copy>div{min-width:0;display:grid;gap:5px}.checkin-copy b{font:800 14px/1.3 var(--ui-copy-font)}.checkin-copy small{font:600 12px/1.5 var(--ui-copy-font);color:var(--ui-copy)}.checkin-copy.is-confirmed>.brawl-icon,.checkin-copy.is-confirmed b{color:#63e59a}
.screen .tournament-checkin .join-button{min-height:48px;margin-top:12px;font-size:14px}.screen .checkin-secondary{min-height:44px;padding:8px 0;border:0;background:transparent;color:var(--ui-copy);font:700 12px var(--ui-copy-font)}
.tournament-checkin-admin{margin:14px 0;padding:12px;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-surface)}.checkin-admin-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.checkin-admin-head>div{min-width:0;display:grid;gap:4px}.checkin-admin-head>div>b{font-size:26px;color:var(--ui-gold);line-height:1.2}.checkin-admin-head b>small{font:700 14px var(--ui-copy-font);color:var(--ui-copy)}.checkin-admin-head .eyebrow{font-size:10px;line-height:1.3}.checkin-state{max-width:45%;font:700 11px/1.4 var(--ui-copy-font);color:var(--ui-copy);text-align:right}.checkin-state.is-open{color:#63e59a}.checkin-schedule{margin:8px 0 0;font:600 12px/1.5 var(--ui-copy-font);color:var(--ui-copy)}
.checkin-window-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.screen .checkin-window-actions button{flex:1;min-height:44px;padding:8px 10px;border:1px solid #705333;border-radius:10px;background:#292018;color:#ffd065;font:700 12px/1.3 var(--ui-copy-font)}.screen .checkin-window-actions button+button{flex:0 1 auto;border-color:var(--ui-border);background:var(--ui-field);color:var(--ui-copy)}
.checkin-roster{margin-top:12px;border-top:1px solid #ffffff12;padding-top:4px}.checkin-roster summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;font:800 12px/1.4 var(--ui-copy-font)}.checkin-roster summary::before{content:'›';color:var(--ui-gold);font-size:20px}.checkin-roster[open] summary::before{transform:rotate(90deg)}.checkin-roster summary>span{margin-left:auto;max-width:65%;font:600 11px/1.4 var(--ui-copy-font);color:var(--ui-copy);text-align:right}.checkin-roster-list{display:grid}.checkin-player{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #ffffff0c}.checkin-player>div{min-width:0;display:grid;gap:4px}.checkin-player b{font:800 13px/1.4 var(--ui-copy-font);overflow-wrap:anywhere}.checkin-player small{font:600 10px/1.5 var(--ui-copy-font);color:var(--ui-copy);overflow-wrap:anywhere}.screen .checkin-player button{display:flex;align-items:center;justify-content:center;gap:5px;min-height:44px;max-width:125px;padding:7px 9px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-field);color:#ffd065;font:700 11px/1.3 var(--ui-copy-font)}.screen .checkin-player button.is-confirmed,.checkin-player-state.is-confirmed{color:#63e59a}.checkin-player .action-icon{width:16px;height:16px}.checkin-player-state{font:700 11px var(--ui-copy-font);color:var(--ui-copy)}
@media(max-width:350px){.screen .checkin-player button{max-width:112px;padding:7px;font-size:10px}.checkin-admin-head{gap:8px}.checkin-roster summary>span{max-width:60%}}

/* Room links remain usable above tournament settings after the draw. */
.tournament-invites{display:grid;gap:10px;margin:18px 0 24px;min-width:0}.tournament-invites>.section-title{margin:0 0 2px}.room-invite-card{min-width:0;padding:12px;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-surface)}
.room-invite-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.room-invite-heading h2{margin:0;font-size:14px;line-height:1.4}.room-invite-heading>span{flex:none;color:var(--ui-copy);font:600 11px/1.4 var(--ui-copy-font)}
.room-invite-field{display:grid;gap:7px;min-width:0}.room-invite-field>span{color:var(--ui-copy);font:700 11px var(--ui-copy-font)}.room-invite-field input{width:100%;min-width:0;min-height:44px;padding:10px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-field);color:#fff;font:600 12px/1.4 var(--ui-copy-font)}.room-invite-field input:focus{outline:2px solid var(--ui-gold);outline-offset:2px}.room-invite-field input[aria-invalid=true]{border-color:#d26f76}.room-invite-field input:disabled{opacity:.65}
.room-invite-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:8px;margin-top:10px}.screen .room-invite-actions button{min-width:0;min-height:44px;padding:9px 7px;border:1px solid var(--ui-border);border-radius:9px;background:var(--ui-field);color:var(--ui-copy);font:700 12px/1.35 var(--ui-copy-font)}.screen .room-invite-actions .room-invite-send{border-color:#705333;background:#292018;color:var(--ui-gold)}.screen .room-invite-actions button:disabled{opacity:.45;cursor:default}
.room-invite-status,.room-invite-empty,.room-invite-unknown,.room-invite-save-note{margin:10px 0 0;color:var(--ui-copy);font:600 12px/1.5 var(--ui-copy-font)}.room-invite-empty{margin:0}.room-invite-save-note{display:block;font-size:11px}.room-invite-save-note[hidden]{display:none}.room-invite-status.is-sent{color:#63e59a}.room-invite-unknown{color:#ffd065}.room-invite-card .form-error{font:600 12px/1.5 var(--ui-copy-font);margin:8px 0 0}.room-invite-card .form-error:empty{display:none}
.room-invite-recipients{margin-top:8px;font:700 12px/1.4 var(--ui-copy-font);color:var(--ui-copy)}.room-invite-recipients summary{min-height:44px;align-content:center;cursor:pointer}.room-invite-recipients p{display:grid;gap:4px;margin:0;padding:8px 0;border-top:1px solid #ffffff12;overflow-wrap:anywhere}.room-invite-recipients b{color:#fff}.room-invite-recipients small{font-weight:500;line-height:1.5}.screen .room-invite-refresh{min-height:44px;margin-top:6px;padding:8px 0;border:0;background:none;color:var(--ui-gold);font:700 12px var(--ui-copy-font)}
.screen .tournament-room-link{display:flex;align-items:center;justify-content:center;min-height:48px;margin-top:12px;text-decoration:none;font-size:14px}.screen .tournament-room-link[hidden]{display:none}
@media(max-width:350px){.room-invite-heading{align-items:flex-start}.room-invite-heading h2{font-size:13px}.screen .room-invite-actions button{font-size:11px;padding:8px 5px}}
