/* One viewport per menu. Only the collection/catalog owns a scrolling surface. */
html,body{height:100%;overflow:hidden;overscroll-behavior:none}
#metaGame{height:100dvh;overflow:hidden;touch-action:manipulation}
#metaGame [hidden],.modal [hidden]{display:none!important}
.meta-shell{height:100%;max-width:1120px;padding:max(6px,env(safe-area-inset-top)) 22px max(8px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px}
.meta-header{flex:0 0 64px;min-height:0;padding:0;gap:12px;justify-content:space-between}
.meta-brand{height:64px;width:170px}.meta-brand img{object-fit:cover}
.meta-settings{position:static;width:44px;height:44px}.meta-settings .meta-game-icon{width:36px;height:36px}
.meta-player{flex:0 0 auto;min-height:58px;gap:10px;padding:8px 14px;margin:0;flex-wrap:nowrap}
.meta-avatar{height:38px;width:38px}.meta-player-name strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}
.meta-player-name>span{font-size:.75rem}.meta-wallet{gap:18px;padding:0 0 0 14px;border-right:0}
.meta-wallet strong{font-size:1.05rem}.meta-wallet small{font-size:.65rem}
.meta-save-guest{display:block;min-height:26px;padding:0;background:none;border:0;color:#ffdc8e;text-align:left;font-size:.73rem!important}
.meta-content{flex:1;min-height:0;overflow:hidden;padding:2px}
.meta-content.meta-catalog{overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;padding:2px 8px 16px 2px}
.meta-home-grid{height:100%;grid-template-columns:minmax(0,1fr) 250px;gap:14px;align-items:stretch}
.meta-match-card{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto}
.meta-match-title{padding:10px 14px;gap:8px;text-align:left;min-height:54px}
.meta-match-title>div{padding:0 65px 0 0;min-width:0}
.meta-match-title .meta-kicker{font-size:.65rem;line-height:1.2;margin:0 0 3px;letter-spacing:.06em}
#metaGame .meta-match-title h1{font-size:clamp(1.15rem,2.5vw,1.8rem);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.meta-level-tag{top:12px;right:12px;padding:4px 6px;font-size:.65rem}
.meta-match-scene{height:100%;min-height:0;aspect-ratio:auto}
.meta-match-scene>.meta-table-portrait{height:100%;aspect-ratio:auto}
.meta-match-scene img{object-fit:contain;padding:0 25px 12px}
.meta-scene-caption{bottom:0;left:8px;right:8px;flex-direction:row;font-size:.65rem}
.meta-scene-caption>span{display:block;max-width:55%;line-height:1.2}
.meta-venue-dots button{height:30px;width:25px}
.meta-scene-arrow{top:calc(50% - 22px);width:38px;height:44px}.meta-scene-arrow.previous{left:8px}.meta-scene-arrow.next{right:8px}
.meta-match-entry{flex-direction:row;flex-wrap:nowrap;gap:10px;padding:8px 12px 4px;min-height:60px}
.meta-stakes{width:auto;min-width:0;flex:1;gap:8px}.meta-stakes>span{font-size:.6rem;letter-spacing:0;text-align:center;min-width:0}
.meta-stakes strong{font-size:1.22rem;line-height:1.15;margin-top:2px}
.meta-match-entry>.meta-button{min-width:0;flex:0 0 48%;width:auto;min-height:44px;padding:9px 8px;font-size:1rem!important;gap:4px}
.meta-match-links{align-items:center;min-height:32px;padding:0 12px 4px;gap:5px}
.meta-match-links>span{font-size:.6rem;color:#a8baad}.meta-match-links .meta-text{min-height:30px;font-size:.73rem!important;padding:4px}
.meta-home-side{height:100%;min-height:0;grid-template-rows:auto 1fr;gap:10px}
.meta-quick-play{gap:10px}.meta-mode{min-height:60px;padding:8px 10px;gap:8px}
.meta-mode>.meta-game-icon{width:44px;height:44px}.meta-mode strong{font-size:.85rem}.meta-mode small{font-size:.7rem;margin-top:0}
.meta-shortcuts{gap:8px;min-height:0;grid-auto-rows:1fr}
.meta-shortcut{min-height:0;padding:5px 10px;gap:8px;flex-direction:row;text-align:left}
.meta-shortcut strong{font-size:.78rem}.meta-shortcut .meta-game-icon{width:42px;height:42px}
.meta-nav{position:static;transform:none;width:100%;flex:0 0 62px;grid-template-columns:repeat(2,1fr);border-radius:12px;padding:1px;backdrop-filter:none;z-index:auto}
.meta-nav button{min-height:0;font-size:.68rem!important;gap:0}.meta-nav .meta-game-icon{width:36px;height:36px}
.meta-resume{flex:0 0 auto;margin:0;padding:2px 10px;min-height:42px;font-size:.75rem}
.meta-resume .meta-outline{padding:6px 12px;min-height:34px;font-size:.75rem!important}
.meta-toast{position:absolute;z-index:4;left:50%;bottom:calc(82px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(480px,calc(100% - 24px));margin:0;padding:10px 14px;box-shadow:0 8px 24px #0008;font-size:.8rem!important}
.meta-section-title{margin:4px 0 12px}.meta-section-title p{margin-top:4px!important;font-size:.85rem!important}
#metaGame .meta-section-title h1{font-size:1.45rem}.meta-section-title .meta-kicker{margin-bottom:4px}
.meta-categories{gap:6px;margin-bottom:12px}.meta-chip{min-height:40px;padding:7px 12px;font-size:.8rem!important}
.meta-profile-view{height:100%;display:flex;flex-direction:column;gap:8px;max-width:700px;margin:auto}
.meta-profile-view .meta-section-title{margin:0}.meta-profile-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;flex:0 0 auto}
.meta-panel{min-height:0;padding:16px;flex:1;overflow:hidden}
.meta-profile-summary{display:flex;flex-direction:column;justify-content:center;gap:14px}
.meta-stats{margin:0}.meta-stats strong{font-size:1.5rem}.meta-stats span{font-size:.72rem}
.meta-profile-summary .meta-xp{width:100%;display:block}.meta-xp label{text-align:left;margin:0 0 5px}
#metaGame .meta-next-unlock{font-size:.8rem;line-height:1.3}
.meta-profile-access{display:grid;gap:7px}.meta-profile-access p{font-size:.75rem!important}
.meta-profile-access .meta-button{min-height:44px;padding:9px;font-size:.85rem!important}
.meta-profile-access .meta-text{min-height:28px;padding:0;text-align:center;font-size:.75rem!important}
.meta-profile-edit{display:flex;flex-direction:column;justify-content:center;gap:12px}
.meta-profile-edit input:not([type=radio]){margin:5px 0 0;min-height:44px;padding:9px}
.meta-profile-edit fieldset{margin:0}.meta-avatar-options{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:6px}
.meta-avatar-options label{padding:7px 3px;text-align:center;font-size:.7rem}.meta-avatar-options input{margin:0 2px 0 0}
.meta-profile-edit .meta-button{min-height:44px;padding:8px;font-size:.875rem!important}
.meta-profile-history{display:flex;flex-direction:column;justify-content:center}
.meta-history{margin:0;flex:1;display:flex;flex-direction:column;justify-content:center}
.meta-history li{padding:9px 0;min-height:56px;font-size:.8rem}.meta-history li>span:first-child{min-width:0}
.meta-history small{font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meta-history li>span:last-child{flex-shrink:0}
.menu-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;font-size:.8rem;color:#ccb97f}
.menu-pagination button{min-height:40px;min-width:44px;padding:5px 14px;font-size:1.2rem!important}
.meta-access{height:100%;max-width:900px;margin:auto;display:grid;align-content:center;justify-items:center;gap:18px;padding:max(18px,env(safe-area-inset-top)) 24px max(20px,env(safe-area-inset-bottom))}
.meta-access-brand{text-align:center}.meta-access-brand img{display:block;width:260px;height:154px;object-fit:cover;mix-blend-mode:lighten}
.meta-access-brand .meta-kicker{margin:0;font-size:.65rem}.meta-access-actions{display:grid;gap:12px;width:100%;max-width:370px;text-align:center}
#metaGame .meta-access h1{font-size:1.7rem}#metaGame .meta-access p{font-size:.85rem;line-height:1.5}
.meta-access-actions>button{width:100%;min-height:48px}.meta-access-actions>small{font-size:.73rem;color:#b1c6b9;line-height:1.45}
.meta-access .meta-alert{display:block;margin:0;font-size:.75rem;padding:8px}.meta-access .meta-alert button{display:block;width:100%;text-align:center}

/* The access gate is the game's initial screen. The artwork has no baked-in
   copy, so the logo and action stay crisp at every viewport ratio. */
.meta-access{position:relative;isolation:isolate;width:100%;max-width:none;height:100%;min-height:0;overflow:hidden;display:grid;place-items:center;align-content:center;padding:max(20px,env(safe-area-inset-top)) 20px max(22px,env(safe-area-inset-bottom))}
.meta-access::before{content:'';position:absolute;inset:0;z-index:-2;background:url('/assets/brand/access-desktop.webp') center/cover no-repeat;filter:saturate(1.03) contrast(1.02) brightness(.94)}
.meta-access::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#041a18b8 0%,#041a1848 30%,#041a1838 60%,#041a18d4 100%)}
.meta-access-backdrop{display:none}
.meta-access-inner{position:relative;z-index:1;display:grid;justify-items:center;gap:clamp(18px,3.5vh,36px);width:min(100%,560px);margin-inline:auto;text-align:center;transform:translateY(clamp(-64px,-8vh,-18px))}
.meta-access-brand{display:grid;justify-items:center;gap:clamp(8px,1.3vh,16px);text-align:center;transform:translateY(clamp(-34px,-4vh,-14px))}
.meta-access-brand img{width:min(76vw,440px);height:auto;object-fit:contain;mix-blend-mode:normal;filter:drop-shadow(0 8px 12px #001713cc)}
.meta-start-tagline{color:#fff8e7!important;font-size:clamp(.95rem,1.8vw,1.3rem)!important;font-weight:800;line-height:1.1!important;text-shadow:0 2px 5px #001713,0 0 18px #001713aa}
.meta-access-actions{display:grid;justify-items:center;gap:12px;width:min(100%,340px);max-width:none;text-align:center;transform:translateY(clamp(14px,2.5vh,26px))}
.meta-start-button{position:relative;overflow:hidden;width:100%;min-height:62px!important;padding:12px 28px!important;border:2px solid #fff1a8!important;border-radius:13px!important;background:linear-gradient(180deg,#ffe99d 0%,#f3c95d 50%,#dca631 100%)!important;box-shadow:0 4px 0 #64461e,0 0 0 2px #9c7229,inset 0 2px #fff8,0 0 30px #f4bf3b55;color:#073a2e!important;font-size:clamp(1.15rem,2.2vw,1.55rem)!important;font-weight:900!important;letter-spacing:.05em;text-transform:uppercase;text-shadow:0 1px #fff8;transition:transform .16s,filter .16s}
.meta-start-button:not(:disabled):hover{filter:brightness(1.08);transform:translateY(-2px)}
.meta-start-button:not(:disabled):active{transform:translateY(2px);box-shadow:0 2px 0 #64461e,0 0 0 2px #9c7229,inset 0 2px #fff8}
.meta-start-guest{min-height:38px!important;padding:6px 14px!important;border:1px solid #ffe4a477!important;border-radius:9px!important;background:#082d29aa!important;color:#fff0c9!important;font-size:.8rem!important}
.meta-start-guest:not(:disabled):hover{background:#0b493e!important;color:#fff8e7!important}
.meta-start-helper{color:#fff4d5!important;font-size:.82rem!important;text-shadow:0 2px 5px #001713}
.meta-access .meta-alert{width:100%;background:#321f1dcc;border-color:#e5bb6b88;color:#fff2d0}

/* Contextual dialogs replace the second, duplicate navigation bar. */
.modal{overflow:hidden;max-height:calc(100dvh - 20px);padding:20px;width:min(560px,calc(100vw - 20px))}
.modal h2{font-size:1.45rem;margin:6px 0 12px}.modal p{font-size:.85rem;line-height:1.4;margin:8px 0 12px}
.club-modal{height:auto;max-height:calc(100dvh - 20px);padding:0;width:min(560px,calc(100vw - 20px));grid-template-rows:auto minmax(0,1fr)}
.club-heading{padding:12px 16px;min-height:60px}.club-heading h2{font-size:1.35rem}.club-heading::after{display:none}
.club-content{overflow:hidden;padding:16px;min-height:0}.club-content p{font-size:.85rem;line-height:1.45}.club-content h3{font-size:1.2rem}
.club-welcome{margin:0 auto;max-width:400px}.club-welcome .text-button{display:block;margin:12px auto 0}
.club-waiting{margin:0 auto}.club-waiting .setup-note{font-size:.75rem}.room-code{font-size:2rem;margin:14px 0}
.queue-progress{margin:12px 0;padding:12px;font-size:.8rem}.club-alert{font-size:.8rem;padding:8px 12px;margin-bottom:8px}
.club-notice{font-size:.8rem!important;padding:8px!important;margin:0 0 8px!important}
.login-options{margin:10px 0;gap:10px}.login-options .field{margin:8px 0}.login-options .field label{font-size:.8rem}
.login-options .text-button{margin:0;min-height:36px;padding:6px}.club-signin{font-size:.85rem;min-height:44px;padding:10px 16px;margin:0 0 6px}
.club-content .club-muted{font-size:.75rem!important;margin-bottom:0}.account-access{margin:10px 0;padding:10px}
.friends-panel>.club-button{width:100%}.join-room{margin-top:18px}.ranking-intro{margin:0 0 8px}
.ranking-table{table-layout:fixed;font-size:.85rem}.ranking-table th,.ranking-table td{padding:8px 6px}
.ranking-table th:first-child{width:44px}.ranking-table th:last-child{width:78px}
.ranking-table th:nth-child(2),.ranking-table td:nth-child(2){text-align:left}
.ranking-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-table small{display:block;font-size:.67rem;line-height:1.2}
.console-menu,.setup-modal{padding:0}.console-menu-header{padding:14px 58px 12px 16px}.console-menu-header p,.match-readout{display:none}
.console-menu-header h2{font-size:1.4rem;margin:4px 0}.console-primary-actions{grid-template-columns:1fr;padding:12px 14px 0}
.console-action{min-height:64px!important;padding:10px!important}.console-action-copy strong{font-size:.78rem}.console-action-copy small{display:none}
.console-action-icon{width:30px;height:30px;font-size:20px}.console-section{margin:12px 14px}
.console-setting-grid{grid-template-columns:1fr 1fr}.quality-setting{grid-column:1/-1;flex-direction:row;align-items:center;min-height:54px}
.console-setting{min-height:58px}.console-setting-copy small{display:none}.quality-setting select{width:auto}
.console-utility-actions button{min-height:48px!important}.setup-modal .setup-deck{margin:12px 14px 0;padding:0 10px 6px}
.setup-modal .match-setup,.setup-modal .player-setup{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.setup-modal .field{margin:8px 0}.setup-modal .field input,.setup-modal .field select{padding:8px;min-height:44px}
.setup-modal .player-setup{margin:10px 14px}.setup-modal #restartButton{margin:12px 14px 16px;width:calc(100% - 28px);min-height:46px}
.setup-modal .setup-note{font-size:.73rem;margin:6px 0}.setup-modal .ball-set-preview{margin:0}
.result-modal{padding:22px 18px 14px}.result-modal .win-emblem{width:50px;height:50px;font-size:30px;margin:0 auto 12px}
.result-modal .shoot-button{margin-top:10px}.result-modal .text-button{margin:4px auto}
.spin-modal h2{margin:2px 0 6px}.spin-selector{margin:10px 0;gap:4px}.spin-pad{width:140px;height:140px}
.spin-modal #spinName{margin:0 0 10px;font-size:.875rem}.spin-modal .accessible-spin{margin:0 0 12px}
.vr-instructions{gap:8px;margin:12px 0;font-size:.8rem;line-height:1.4}.vr-seated{margin:10px 0;font-size:.8rem}
.vr-modal>.quality-hint:last-child{display:none}
.rules-pages{min-height:160px;display:flex;flex-direction:column;justify-content:center}
.rules-page h3{margin:0 0 10px;font-size:1.15rem;color:#e7c77a}.rules-page p{font-size:.9rem;line-height:1.55}
#rulesDialog .menu-pagination{margin:12px 0}#rulesDialog #closeRules{min-height:42px;padding:8px;font-size:.85rem}
@media(max-width:700px){
 .meta-shell{padding-left:10px;padding-right:10px;gap:8px}.meta-header{flex-basis:50px}.meta-brand{height:50px;width:135px}
 .meta-player{padding:5px 10px;min-height:54px;gap:8px}.meta-avatar{width:34px;height:34px}.meta-wallet{gap:12px;padding-left:8px}
 .meta-home-grid{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:8px}
 .meta-home-side{height:auto;gap:8px;grid-template-rows:auto auto}.meta-quick-play{grid-template-columns:1fr 1fr;gap:8px}
 .meta-mode{min-height:50px;padding:4px 8px;gap:5px}.meta-mode>.meta-game-icon{width:38px;height:38px}
 .meta-mode strong{font-size:.75rem}.meta-mode small{font-size:.65rem}.meta-shortcuts{grid-template-columns:repeat(3,1fr);gap:8px}
 .meta-shortcut{min-height:56px;flex-direction:column;justify-content:center;gap:0;padding:2px 4px;text-align:center}
 .meta-shortcut .meta-game-icon{height:32px;width:32px}.meta-shortcut strong{font-size:.63rem}
 .meta-match-title{min-height:44px;padding:7px 10px}.meta-match-title .meta-kicker{font-size:.57rem}
 #metaGame .meta-match-title h1{font-size:1.2rem}.meta-level-tag{top:10px;right:10px;font-size:.6rem}
 .meta-match-entry{min-height:56px;padding:5px 10px 4px;gap:8px}.meta-stakes strong{font-size:1.12rem}
 .meta-match-entry>.meta-button{font-size:.85rem!important;min-height:42px}.meta-match-links{padding:0 8px 3px}
 .meta-nav{flex-basis:60px}.meta-nav .meta-game-icon{width:34px;height:34px}
 .meta-profile-summary{gap:12px}.meta-panel{padding:12px}.meta-profile-view{gap:8px}
 .meta-item-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.meta-item{padding:12px}
 .meta-item-art{height:85px}.meta-item-footer{flex-direction:column;align-items:stretch;margin-top:12px}
 .meta-item-footer button{min-height:42px}.meta-section-title p{font-size:.8rem!important}
}

@media(max-height:680px) and (orientation:portrait){
 .meta-shell{gap:6px;padding-top:4px;padding-bottom:max(4px,env(safe-area-inset-bottom))}.meta-header{flex-basis:42px}.meta-brand{height:42px;width:120px}
 .meta-player{min-height:50px}.meta-nav{flex-basis:54px}.meta-nav .meta-game-icon{width:30px;height:30px}
 .meta-home-grid,.meta-home-side{gap:6px}.meta-shortcut{min-height:48px}.meta-shortcut .meta-game-icon{width:28px;height:28px}
 .meta-mode{min-height:46px}.meta-match-title{min-height:40px}.meta-match-entry{min-height:52px}
 .meta-match-links{min-height:28px}.meta-match-links .meta-text{min-height:26px}.meta-scene-caption>span{display:none}
 .meta-scene-caption{justify-content:center}.meta-match-scene img{padding-bottom:8px}.meta-venue-dots button{height:24px}
 .meta-profile-summary{gap:8px}.meta-stats strong{font-size:1.2rem}.meta-panel{padding:10px}
 .meta-profile-view{gap:6px}.meta-profile-view .meta-section-title p{display:none}.meta-profile-view .meta-section-title h1{font-size:1.2rem!important}
 .meta-profile-tabs .meta-chip{min-height:36px}.meta-history li{min-height:50px;padding:6px 0}.meta-profile-edit{gap:8px}
 .meta-access{gap:12px}.meta-access-brand img{width:210px;height:115px}.meta-access-actions{gap:10px}
 .spin-pad{width:116px;height:116px}.spin-modal .accessible-spin{gap:4px}.spin-selector{font-size:.75rem}
}
@media(max-height:500px) and (orientation:landscape){
 .meta-shell{gap:6px;padding:6px 12px}.meta-header{display:none}.meta-player{min-height:44px;padding:3px 10px}
 .meta-home-grid{grid-template-columns:minmax(0,1fr) 220px;grid-template-rows:1fr;gap:10px}
 .meta-home-side{height:100%;grid-template-rows:auto 1fr;gap:5px}.meta-quick-play{grid-template-columns:1fr 1fr;gap:5px}
 .meta-mode{min-height:44px;padding:3px;gap:2px}.meta-mode small{display:none}.meta-mode strong{font-size:.63rem}.meta-mode>.meta-game-icon{width:30px;height:30px}
 .meta-shortcuts{grid-template-columns:1fr;gap:5px}.meta-shortcut{flex-direction:row;justify-content:flex-start;min-height:30px;padding:2px 8px;gap:8px}
 .meta-shortcut .meta-game-icon{width:30px;height:30px}.meta-shortcut strong{font-size:.68rem}
 .meta-match-title{min-height:32px;padding:4px 10px}.meta-match-title .meta-kicker{display:none}.meta-level-tag{top:5px}
 #metaGame .meta-match-title h1{font-size:1.1rem}.meta-match-entry{min-height:46px;padding:3px 10px}.meta-match-entry>.meta-button{min-height:36px;font-size:.85rem!important}
 .meta-match-links{min-height:24px;padding-bottom:0}.meta-match-links .meta-text{min-height:24px;padding:0}.meta-nav{flex-basis:44px}
 .meta-nav button{flex-direction:row;gap:8px}.meta-nav .meta-game-icon{width:32px;height:32px}
 .meta-profile-view{display:grid;grid-template-columns:140px minmax(0,1fr);grid-template-rows:auto 1fr;gap:8px;max-width:none}
 .meta-profile-tabs{grid-column:1;grid-template-columns:1fr;align-content:start;gap:5px}.meta-profile-tabs .meta-chip{min-height:34px}
 .meta-profile-view>.meta-panel{grid-column:2;grid-row:1/3}.meta-profile-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px}
 .meta-profile-summary .meta-stats{grid-column:1}.meta-profile-access{grid-column:2;grid-row:1/4;align-content:center}
 .meta-profile-summary .meta-xp{grid-column:1}.meta-profile-summary .meta-next-unlock{grid-column:1;font-size:.7rem!important}
 .meta-profile-edit{display:grid;grid-template-columns:1fr 1fr;gap:8px}.meta-profile-edit .meta-button{grid-column:1/-1}
 .meta-avatar-options{grid-template-columns:1fr 1fr;gap:3px}.meta-avatar-options label{min-height:32px;padding:3px}
 .meta-profile-history{padding:4px 10px}.meta-history li{min-height:40px;padding:3px 0}.menu-pagination{margin-top:4px}.menu-pagination button{min-height:32px}
 .meta-access{grid-template-columns:1fr 1fr;gap:24px;padding:12px 24px}.meta-access-brand img{width:220px;height:140px}.meta-access-actions{gap:8px}
 .meta-access-actions>button{min-height:42px}.meta-access-actions>small{font-size:.67rem}.meta-access-actions>p{font-size:.75rem!important}
 .modal{padding:14px;max-height:calc(100dvh - 12px)}.modal h2{font-size:1.2rem}.modal p{font-size:.8rem;line-height:1.3;margin:6px 0}
 .club-modal{padding:0;width:min(660px,calc(100vw - 16px))}.club-heading{min-height:48px;padding:6px 14px}.club-heading h2{font-size:1.1rem}.club-heading .eyebrow{display:none}
 .club-content{padding:10px 16px}.club-welcome{max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:5px 18px;align-items:center}
 .club-welcome>.login-options{grid-column:2;grid-row:1/4;margin:0}.club-welcome>.club-signin{grid-column:1;font-size:.75rem}
 .club-welcome .text-button{margin:0}.club-content .field{margin:4px 0}.club-content input{min-height:38px;padding:7px}
 .club-button{min-height:38px;padding:8px 12px}.ranking-intro{margin:0}.ranking-table td,.ranking-table th{padding:4px 6px}.ranking-table small{display:inline;margin-left:8px}
 .club-waiting .room-code{display:inline-block;margin:6px 15px;font-size:1.5rem}.club-waiting .queue-progress{padding:6px;margin:6px 0}
 .club-waiting .centered{display:inline-block;margin:0 8px}.club-waiting .club-alert{padding:5px;margin:4px 0}.club-waiting .club-alert p{display:inline}
 .console-menu,.setup-modal{padding:0}.console-menu-header{padding:8px 52px 8px 14px}.console-menu-header .eyebrow{display:none}
 .console-primary-actions{padding:8px 14px 0}.console-action{min-height:48px!important}.console-section{margin:8px 14px}
 .console-setting-grid{grid-template-columns:repeat(3,1fr)}.quality-setting{grid-column:auto}.console-setting{min-height:50px!important;padding:6px!important}
 .console-section-title{margin-bottom:4px}.console-utility-actions button{min-height:38px!important}
 .setup-modal .setup-deck{margin:8px 14px 0}.setup-modal .field{margin:4px 0}.setup-modal .ball-set-preview{display:none}
 .setup-modal .player-setup{margin:5px 14px}.setup-modal .field input,.setup-modal .field select{min-height:36px;padding:6px}
 .setup-modal .field label{margin-bottom:3px}.setup-modal #restartButton{margin:6px 14px 10px;min-height:38px}
 .spin-modal[open]{max-width:620px;display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;text-align:left}
 .spin-modal>form,.spin-modal>.eyebrow,.spin-modal>h2,.spin-modal>p{grid-column:1}.spin-modal .spin-selector{grid-column:2;grid-row:1/6;margin:0;align-self:center}
 .spin-modal .spin-pad{width:100px;height:100px}.spin-modal .accessible-spin{grid-column:1;margin:0;gap:3px}.spin-modal .spin-actions{grid-column:1/-1}
 .spin-modal #spinName{margin:0}.vr-modal{width:min(690px,calc(100vw - 20px));max-width:none}.vr-instructions{grid-template-columns:repeat(3,1fr);gap:20px;margin:8px 0;font-size:.7rem}
 .vr-modal>p{font-size:.73rem}.vr-seated{margin:6px 0}.vr-modal .shoot-button{min-height:36px;padding:8px}
 .rules-pages{min-height:90px}.rules-page h3{font-size:1rem;margin-bottom:6px}.rules-page p{font-size:.8rem;line-height:1.4}
 #rulesDialog .menu-pagination{margin:6px 0}#rulesDialog #closeRules{min-height:34px;padding:5px}
 .result-modal .win-emblem{display:none}.result-modal .shoot-button{min-height:38px;margin-top:6px;padding:8px}
}

/* Player level is the profile shortcut between the brand and wallet. */
.meta-header{grid-template-columns:minmax(0,1fr) auto auto auto;gap:12px}
.meta-brand{grid-column:1;width:min(100%,250px)}
.meta-level-link{grid-column:2;display:flex;align-items:center;gap:9px;width:148px;min-width:0;min-height:54px;padding:6px 9px;border:1px solid #d9b96466;border-radius:11px;background:linear-gradient(145deg,#174536,#082b27);box-shadow:inset 0 1px #fff2,0 3px 0 #031f1a;color:#f5e5bc;text-align:left;transition:filter .15s,transform .15s}
.meta-level-link:hover{filter:brightness(1.12);transform:translateY(-1px)}
.meta-level-badge{display:flex;flex:0 0 38px;height:40px;flex-direction:column;align-items:center;justify-content:center;border:1px solid #f5d78d;border-radius:9px;background:linear-gradient(#f3d48b,#c9913f);color:#1a3125;line-height:1}
.meta-level-badge small{font-size:.48rem;font-weight:900;letter-spacing:.08em}
.meta-level-badge strong{font-size:1rem;font-weight:900}
.meta-level-details{display:grid;flex:1;min-width:0;gap:2px}
.meta-level-details>strong{overflow:hidden;color:#f7e9c4;font-size:.73rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}
.meta-level-details>small{color:#b7c8b9;font-size:.59rem;line-height:1.1;white-space:nowrap}
.meta-level-progress{display:block;height:4px;overflow:hidden;border-radius:5px;background:#031d19}
.meta-level-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#65bd91,#ebce76);box-shadow:0 0 7px #9dd49c88}
.meta-top-wallet{grid-column:3;margin:0}
.meta-settings{grid-column:4;margin-left:0}
.meta-nav{grid-template-columns:repeat(2,1fr);width:320px}
@media(max-width:700px){
 .meta-header{grid-template-columns:minmax(0,1fr) auto auto;gap:5px;padding:3px 48px 3px 0}
 .meta-brand{width:100%;max-width:clamp(115px,33vw,180px);height:clamp(50px,18vw,72px)}
 .meta-level-link{grid-column:2;width:clamp(66px,19vw,92px);min-height:46px;padding:5px 6px;gap:5px}
 .meta-level-badge{flex-basis:32px;height:34px;border-radius:8px}
 .meta-level-details>strong{font-size:.62rem}.meta-level-details>small{font-size:.52rem}
 .meta-level-progress{height:3px}
 .meta-top-wallet{grid-column:3;gap:4px;margin:0}
 .meta-currency-icon,.meta-currency-icon .meta-game-icon{width:22px;height:22px}
 .meta-top-currency{gap:1px}
 .meta-top-currency small{display:none}
 .meta-top-currency strong{font-size:.78rem}
 .meta-settings{grid-column:auto;right:2px;top:50%;transform:translateY(-50%)}
 .meta-nav{width:100%;grid-template-columns:repeat(2,1fr)}
}
@media(max-width:380px){
 .meta-header{grid-template-columns:minmax(90px,1fr) 56px auto;gap:4px}
 .meta-brand{max-width:clamp(94px,30vw,114px);height:clamp(48px,17vw,65px)}
 .meta-level-link{width:56px;min-height:40px;padding:4px 5px;gap:4px;border-radius:9px}
 .meta-level-badge{flex-basis:28px;height:32px}
 .meta-level-details>strong,.meta-level-details>small{display:none}
 .meta-level-progress{height:4px}
 .meta-top-wallet{gap:3px}
 .meta-currency-icon,.meta-currency-icon .meta-game-icon{width:19px;height:19px}
 .meta-top-currency{gap:1px}
 .meta-top-currency strong{font-size:.68rem}
}

/* Keep the initial gate responsive after the compact viewport rules above. */
@media (max-width:700px){
 .meta-access{grid-template-columns:none!important;gap:0;padding:0!important}
 .meta-access-inner{gap:clamp(16px,4vh,28px);width:min(100%,390px);transform:none}
 .meta-access-brand img{width:min(86vw,430px);height:auto}
 .meta-access-actions{width:min(100%,320px);gap:10px}
 .meta-start-button{min-height:56px!important}
}
@media (orientation:portrait) and (max-width:700px){
 .meta-access::before{background-image:url('/assets/brand/access-mobile.webp')}
 .meta-access-brand{transform:translateY(clamp(-74px,-8vh,-26px))}
 .meta-access-actions{transform:translateY(clamp(22px,4.5vh,42px))}
}
@media (max-height:500px) and (orientation:landscape){
 .meta-access{grid-template-columns:none!important;padding:8px 20px!important}
 .meta-access-inner{grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:28px;align-items:center;max-width:760px;transform:translateY(-10px)}
 .meta-access-brand,.meta-access-actions{transform:none}
 .meta-access-brand img{width:min(36vw,330px);height:auto}
 .meta-start-tagline{font-size:.95rem!important}
 .meta-access-actions{width:100%}
 .meta-start-button{min-height:48px!important}
}
@media(prefers-reduced-motion:reduce){
 .meta-start-button{transition:none}
}

/* The account form must keep the layout viewport when the mobile keyboard
   opens. Dynamic viewport units shrink on iOS and make the dialog jump upward;
   the keyboard should remain an overlay while the user types. */
.club-modal[data-view=access]{
  height:auto;
  max-height:calc(100lvh - 20px);
  min-height:0;
}
.club-modal[data-view=access] .club-content{
  min-height:0;
  overflow:visible;
}
@media(max-width:700px){
  .club-modal[data-view=access]{
    max-height:calc(100lvh - 12px);
  }
  .club-modal[data-view=access] .club-content{
    padding-bottom:max(18px,env(safe-area-inset-bottom));
  }
}

/* Mesa livre: montagem compacta sobre a arena, sem transformar o modo de
   treino em outro menu. A edição some quando a tacada começa. */
.free-practice-panel{position:absolute;z-index:12;left:50%;top:12px;transform:translateX(-50%);width:min(760px,calc(100% - 24px));padding:12px 14px;border:1px solid #d4b96f99;border-radius:12px;background:linear-gradient(180deg,#102c26f5,#081e1bf2);box-shadow:0 12px 34px #0008;color:#f4ead0;backdrop-filter:blur(8px)}
.free-practice-panel[hidden]{display:none}
.free-practice-panel[data-collapsed=true]{left:auto;right:12px;transform:none;width:auto;min-width:0;padding:6px 9px}.free-practice-panel[data-collapsed=true] .free-practice-setup{display:none}.free-practice-collapse{width:36px;min-width:36px;padding:0!important;font-size:1.25rem!important;line-height:1}
.free-practice-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.free-practice-heading strong{display:block;margin-top:2px;font-size:1rem}.free-practice-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.free-practice-actions button{min-height:34px;padding:5px 10px}.free-practice-setup p{margin:8px 0;color:#c6d5c8;font-size:.76rem;line-height:1.35}.free-ball-picker{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;margin:8px 0}.free-ball-choice{position:relative;display:grid;place-items:center;width:34px;height:34px;padding:2px;border:1px solid #668675;border-radius:7px;background:#102d27;color:#f8edcf;cursor:pointer}.free-ball-choice:hover,.free-ball-choice.selected{border-color:#f1cf72;background:#315844;box-shadow:0 0 0 1px #f1cf7244}.free-ball-choice.on-table::after{content:'';position:absolute;right:2px;bottom:2px;width:5px;height:5px;border-radius:50%;background:#f1cf72;box-shadow:0 0 7px #f1cf72}.free-ball-choice .mini-ball{width:24px;height:24px;font-size:.55rem}.free-practice-tools{display:flex;align-items:center;justify-content:flex-end;gap:7px}.free-practice-tools button{min-height:36px;padding:7px 11px;font-size:.75rem!important}.free-practice-tools .shoot-button{margin:0;min-width:132px}.free-practice-panel[data-phase=play]{width:min(440px,calc(100% - 24px));padding:9px 12px}.free-practice-panel[data-phase=play] .free-practice-heading strong{font-size:.9rem}.free-practice-panel[data-phase=play] .free-practice-actions{margin-left:auto}
.free-practice-cue-select{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px;padding-top:8px;border-top:1px solid #ffffff20;color:#c6d5c8;font-size:.74rem}.free-practice-cue-options{display:flex;gap:5px}.free-practice-cue-options button{min-height:32px;padding:6px 11px;border:1px solid #668675;border-radius:7px;background:#102d27;color:#f4ead0;font:inherit;font-weight:700;cursor:pointer}.free-practice-cue-options button.selected{border-color:#f1cf72;background:#315844;color:#fff4d3;box-shadow:0 0 0 1px #f1cf7244}.free-practice-cue-options button:disabled{opacity:.55;cursor:default}.free-practice-cue-select small{color:#a8c0b2;font-size:.68rem;white-space:nowrap}.free-practice-panel[data-collapsed=true] .free-practice-cue-select{display:none}
.free-practice-ball-set{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#c6d5c8;font-size:.74rem}.free-practice-ball-options{display:flex;gap:5px}.free-practice-ball-options button{min-height:30px;padding:5px 10px;border:1px solid #668675;border-radius:7px;background:#102d27;color:#f4ead0;font:inherit;font-weight:700;cursor:pointer}.free-practice-ball-options button.selected{border-color:#f1cf72;background:#315844;color:#fff4d3;box-shadow:0 0 0 1px #f1cf7244}.free-practice-ball-options button:disabled{opacity:.55;cursor:default}.free-practice-panel[data-collapsed=true] .free-practice-ball-set{display:none}
body[data-free-practice=setup] .scoreboard{opacity:.35;pointer-events:none}body[data-free-practice=setup] .view-controls .camera-controls{display:none}
body[data-free-practice=play] .scoreboard{display:none}
@media(max-width:600px){.free-practice-panel{top:8px;width:calc(100% - 16px);padding:9px 10px}.free-practice-heading strong{font-size:.85rem}.free-practice-setup p{font-size:.7rem;margin:6px 0}.free-ball-picker{gap:3px;margin:6px 0}.free-ball-choice{width:29px;height:29px}.free-ball-choice .mini-ball{width:21px;height:21px;font-size:.48rem}.free-practice-tools{display:grid;grid-template-columns:1fr 1fr;gap:5px}.free-practice-tools .shoot-button{grid-column:1/-1;min-height:40px}.free-practice-tools button{min-height:32px;padding:5px 6px;font-size:.68rem!important}.free-practice-panel[data-phase=play]{top:8px;width:calc(100% - 16px)}}
@media(max-width:600px){.free-practice-panel[data-collapsed=true]{right:8px;width:auto;padding:6px 8px}.free-practice-panel[data-collapsed=true] .eyebrow{display:none}.free-practice-panel[data-collapsed=true] .free-practice-heading strong{font-size:.8rem}}
@media(max-width:600px){.free-practice-cue-select{font-size:.68rem}.free-practice-cue-options button{min-height:30px;padding:5px 9px;font-size:.68rem}}
@media(max-width:600px){.free-practice-ball-set{font-size:.68rem}.free-practice-ball-options button{padding:5px 8px;font-size:.68rem}}
.free-practice-library{margin-top:9px;border-top:1px solid #ffffff20;padding-top:7px;color:#e9e5d4;font-size:.72rem}
.free-practice-library>summary{cursor:pointer;font-weight:750;color:#f1cf72}
.free-practice-library-content>p{margin:6px 0;color:#a8c0b2;font-size:.68rem}
.free-practice-layouts{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:6px;max-height:180px;overflow:auto}
.free-practice-layout{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;border:1px solid #66867566;border-radius:8px;background:#091d1b}
.free-practice-layout-copy{min-width:0;display:grid;gap:2px}.free-practice-layout-copy strong{font-size:.72rem;overflow-wrap:anywhere}.free-practice-layout-copy small{color:#a8c0b2;font-size:.62rem}
.free-practice-layout-actions{display:flex;gap:4px;flex-shrink:0}.free-practice-layout-actions button{min-height:29px;padding:4px 7px;font-size:.63rem!important}
.free-practice-library-empty{grid-column:1/-1;margin:4px 0;color:#a8c0b2;font-size:.68rem}
.free-practice-save-actions{display:flex;justify-content:flex-end;gap:8px;padding:16px 22px 20px}.free-practice-save-actions button{min-height:42px;padding:8px 14px}.free-practice-save-actions .shoot-button{margin:0}
.free-practice-save-actions .shoot-button span{margin-left:8px}
/* O catálogo mantém os objetos à mão durante a montagem no celular. */
/* Keep the complete brand mark visible even when compact header rules apply. */
img[src*="/assets/brand/sinuca-logo"]{object-fit:contain!important;object-position:center!important}
.free-practice-panel{max-height:calc(100% - 24px);overflow:auto;overscroll-behavior:contain}
.free-practice-items{margin-top:8px}
.free-practice-item{display:grid;grid-template-columns:42px minmax(120px,1fr) auto;align-items:center;gap:10px;padding:9px;border:1px solid #66867566;border-radius:9px;background:#091d1b}
.free-practice-item>div:nth-child(2){min-width:0;display:grid;gap:3px}.free-practice-item strong{font-size:.76rem}.free-practice-item small{color:#f1cf72;font-size:.66rem}.free-practice-item p{margin:0;color:#a8c0b2;font-size:.65rem;line-height:1.3}
.free-practice-item-actions{display:flex;gap:5px}.free-practice-item-actions button{min-height:32px;padding:5px 9px;font-size:.66rem!important;white-space:nowrap}.free-practice-item-actions button:disabled{opacity:.48;cursor:default}.free-practice-item-actions .selected{border-color:#f1cf72;background:#315844}
.free-practice-cup-icon{position:relative;display:block;width:25px;height:31px;margin:auto;border:2px solid #c9e7e0;border-top:0;border-radius:2px 2px 8px 8px;background:linear-gradient(90deg,#c9e7e033,#fff8 48%,#a8d7cd33);box-shadow:inset 2px 0 #fff7,0 0 7px #a5d8ce55;clip-path:polygon(0 0,100% 0,87% 100%,13% 100%)}
.free-practice-bottle-icon{position:relative;display:block;width:17px;height:29px;margin:auto;border:1px solid #75bf79;border-radius:5px 5px 4px 4px;background:linear-gradient(90deg,#15572cdd,#4b9a55aa 42%,#b5e69b99 52%,#15572cdd);box-shadow:inset 2px 0 #d9ffd566,0 0 8px #48a95855}
.free-practice-bottle-icon::before{position:absolute;content:'';left:4px;top:-8px;width:7px;height:9px;border:1px solid #75bf79;border-bottom:0;border-radius:3px 3px 0 0;background:linear-gradient(90deg,#15572c,#72b36f 55%,#16492a)}
.free-practice-bottle-icon::after{position:absolute;content:'';left:1px;right:1px;top:14px;height:7px;border-radius:1px;background:linear-gradient(90deg,#ead7a8,#fff3cf 45%,#d7ba7b);box-shadow:0 1px 1px #0008}
@media(max-width:600px){.free-practice-panel{max-height:calc(100% - 16px)}.free-practice-item{grid-template-columns:30px minmax(0,1fr);gap:7px;padding:7px}.free-practice-cup-icon,.free-practice-bottle-icon{transform:scale(.82)}.free-practice-item p{font-size:.6rem}.free-practice-item-actions{grid-column:1/-1;justify-content:flex-end}.free-practice-item-actions button{flex:1;min-height:30px;padding:4px 5px;font-size:.61rem!important;white-space:normal}}
@media(max-width:600px){.free-practice-layouts{grid-template-columns:1fr;max-height:135px}.free-practice-layout{padding:6px}.free-practice-layout-actions button{min-height:28px;padding:4px 6px}.free-practice-save-actions{padding:12px 14px 14px}}
.free-practice-actions{gap:5px}.free-practice-actions button{white-space:nowrap}.free-practice-replay-controls{margin-top:9px;padding-top:8px;border-top:1px solid #ffffff20}.free-practice-replay-time{display:flex;align-items:center;justify-content:space-between;color:#c6d5c8;font-size:.68rem;font-weight:800;letter-spacing:.08em}.free-practice-replay-time output{font-variant-numeric:tabular-nums;letter-spacing:0}.free-practice-replay-controls input[type=range]{display:block;width:100%;height:24px;margin:4px 0;accent-color:#f1cf72;cursor:pointer}.free-practice-replay-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.free-practice-replay-actions button{min-height:34px;padding:5px 6px;font-size:.68rem!important;white-space:nowrap}.free-practice-replay-controls p{min-height:1em;margin:5px 0 0;color:#c6d5c8;font-size:.67rem;line-height:1.25}.free-practice-replay-controls[hidden]{display:none}.free-practice-panel[data-phase=replay]{width:min(560px,calc(100% - 24px))}.free-practice-panel[data-phase=replay][data-collapsed=true] .free-practice-replay-controls{display:none}
@media(max-width:600px){.free-practice-actions{gap:4px}.free-practice-actions button{padding:4px 6px;font-size:.62rem!important}.free-practice-replay-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.free-practice-replay-actions button{font-size:.65rem!important}.free-practice-panel[data-phase=replay]{width:calc(100% - 16px)}}
/* The play panel is intentionally narrow even on desktop. Give its title its
   own row and let controls wrap within the panel, regardless of viewport
   breakpoints. */
.free-practice-panel[data-phase=play] .free-practice-heading{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:8px}
.free-practice-panel[data-phase=play] .free-practice-heading>div:first-child{min-width:0}
.free-practice-panel[data-phase=play] .free-practice-heading>div:first-child .eyebrow{white-space:normal;font-size:.7rem;letter-spacing:.12em}
.free-practice-panel[data-phase=play] .free-practice-heading strong{font-size:.92rem;white-space:normal}
.free-practice-panel[data-phase=play] .free-practice-actions{display:flex;width:100%;margin-left:0;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.free-practice-panel[data-phase=play] .free-practice-actions button{flex:1 1 84px;min-width:84px;max-width:100%;min-height:36px;padding:6px 8px;font-size:.76rem!important;line-height:1.15;white-space:normal}
.free-practice-panel[data-phase=play] .free-practice-actions .free-practice-collapse{flex:0 0 36px;width:36px;min-width:36px;padding:0!important}
.free-practice-panel[data-phase=play] .free-practice-cue-select{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;row-gap:6px;align-items:center}
.free-practice-panel[data-phase=play] .free-practice-cue-options{min-width:0;flex-wrap:wrap;justify-content:flex-end}
.free-practice-panel[data-phase=play] .free-practice-cue-select small{grid-column:2;justify-self:end;max-width:100%;white-space:normal;text-align:right}
/* Collapsing must remove every play-state control, not only setup content. */
.free-practice-panel[data-collapsed=true]{left:auto;right:12px;top:12px;transform:none;width:max-content;min-width:0;max-width:none;padding:5px;overflow:visible}
.free-practice-panel[data-collapsed=true] .free-practice-heading{display:flex;width:auto;min-height:36px;justify-content:flex-end;gap:0}
.free-practice-panel[data-collapsed=true] .free-practice-actions button:not(.free-practice-collapse),
.free-practice-panel[data-collapsed=true] .free-practice-cue-select,
.free-practice-panel[data-collapsed=true] .free-practice-setup,
.free-practice-panel[data-collapsed=true] .free-practice-replay-controls{display:none}
.free-practice-panel[data-collapsed=true] .free-practice-heading>div:first-child{display:block;min-width:0}
.free-practice-panel[data-collapsed=true] .free-practice-heading>div:first-child .eyebrow{display:none}
.free-practice-panel[data-collapsed=true] .free-practice-heading strong{margin:0;font-size:.78rem;line-height:1.15;white-space:nowrap}
.free-practice-panel[data-collapsed=true] .free-practice-actions{display:flex;width:auto;margin:0;gap:0}
.free-practice-panel[data-collapsed=true] .free-practice-collapse{display:grid;place-items:center;flex:0 0 36px;width:36px;min-width:36px;height:36px;min-height:36px;padding:0!important;border-radius:7px;font-size:1.15rem!important;line-height:1}
/* O recolher fica ancorado ao canto do painel em qualquer fase. A troca de
   taco acompanha as ações para manter os controles em uma única faixa. */
.free-practice-heading{padding-right:44px}
.free-practice-collapse{position:absolute;z-index:3;top:9px;right:10px;display:grid;place-items:center;flex:0 0 36px;width:36px;min-width:36px;height:36px;min-height:36px;padding:0!important;border-radius:7px;font-size:1.15rem!important;line-height:1}
.free-practice-actions .free-practice-cue-select{display:flex;align-items:center;gap:7px;flex:0 0 auto;margin:0;padding:0;border:0;font-size:.72rem}
.free-practice-actions .free-practice-cue-options{display:flex;flex-wrap:nowrap;gap:5px}
.free-practice-actions .free-practice-cue-options button{flex:0 0 auto;min-width:0;min-height:32px;padding:5px 9px;font-size:.72rem}
.free-practice-panel[data-phase=play] .free-practice-heading{padding-right:44px}
.free-practice-panel[data-phase=play] .free-practice-actions{display:flex;width:100%;margin:0;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:6px}
.free-practice-panel[data-phase=play] .free-practice-actions>button{flex:0 1 auto;min-width:84px;max-width:100%;min-height:36px;padding:6px 8px;font-size:.76rem!important;white-space:nowrap}
.free-practice-panel[data-phase=play] .free-practice-cue-select{display:flex;grid-template-columns:none;column-gap:0;row-gap:0;justify-self:auto;max-width:none;margin:0;padding:0;border:0;white-space:nowrap;text-align:left}
.free-practice-panel[data-phase=play] .free-practice-cue-select small{display:none}
.free-practice-panel[data-phase=play] .free-practice-cue-options{min-width:0;flex-wrap:nowrap;justify-content:flex-start}
.free-practice-panel[data-phase=play] .free-practice-actions .free-practice-cue-options button{flex:0 0 auto;min-width:0;max-width:none;min-height:32px;padding:5px 9px;font-size:.72rem!important;white-space:nowrap}
.free-practice-panel[data-collapsed=true] .free-practice-heading{display:flex;width:auto;min-height:36px;padding-right:44px;align-items:center;justify-content:flex-start;gap:0}
.free-practice-panel[data-collapsed=true] .free-practice-heading>div:first-child .eyebrow{display:none}
.free-practice-panel[data-collapsed=true] .free-practice-heading strong{margin:0;font-size:.78rem;line-height:1.15;white-space:nowrap}
.free-practice-panel[data-collapsed=true] .free-practice-actions{display:none}
.free-practice-panel[data-collapsed=true] .free-practice-collapse{top:5px;right:5px}
@media(max-width:600px){
  .free-practice-collapse{top:8px;right:8px}
  .free-practice-panel[data-phase=play] .free-practice-heading{padding-right:44px}
  .free-practice-panel[data-phase=play] .free-practice-actions{justify-content:flex-start}
  .free-practice-panel[data-phase=play] .free-practice-cue-select{font-size:.66rem}
  .free-practice-panel[data-phase=play] .free-practice-actions .free-practice-cue-options button{min-height:30px;padding:4px 7px;font-size:.66rem!important}
  .free-practice-panel[data-collapsed=true] .free-practice-collapse{top:5px;right:5px}
}
.free-practice-cue-select select{appearance:none;min-width:132px;min-height:32px;padding:5px 28px 5px 9px;border:1px solid #668675;border-radius:7px;background-color:#102d27;background-image:linear-gradient(45deg,transparent 50%,#c6d5c8 50%),linear-gradient(135deg,#c6d5c8 50%,transparent 50%);background-position:calc(100% - 12px) 50%,calc(100% - 7px) 50%;background-size:5px 5px;background-repeat:no-repeat;color:#f4ead0;font-family:inherit;font-size:.72rem;font-weight:700;line-height:1.2;cursor:pointer}
.free-practice-cue-select select option{background:#102d27;color:#f4ead0}
.free-practice-cue-select select:disabled{opacity:.55;cursor:default}
@media(max-width:600px){.free-practice-cue-select select{min-width:0;min-height:30px;padding:4px 25px 4px 7px;font-size:.66rem}}

/* Montagem da mesa: bolas à esquerda, itens especiais à direita e ações
   essenciais sempre visíveis. */
.free-practice-panel[data-phase=setup]{width:min(820px,calc(100% - 24px));padding:12px 14px}
.free-practice-panel[data-phase=setup] .free-practice-heading{align-items:center;min-height:38px}
.free-practice-panel[data-phase=setup] .free-practice-heading>div:first-child{min-width:0}
.free-practice-panel[data-phase=setup] .free-practice-heading strong{font-size:.95rem}
.free-practice-panel[data-phase=setup] .free-practice-setup{display:grid;gap:8px}
.free-practice-panel[data-phase=setup] #freePracticeHint{margin:1px 0;color:#a8c0b2;font-size:.68rem;line-height:1.3}
.free-practice-builder{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:stretch}
.free-practice-balls,.free-practice-catalog{min-width:0;padding:8px 9px;border:1px solid #66867566;border-radius:9px;background:#091d1b}
.free-practice-ball-set{justify-content:flex-start;gap:8px;font-size:.69rem}
.free-practice-ball-set>span{color:#a8c0b2;font-weight:700}
.free-practice-ball-options{gap:4px}
.free-practice-ball-options button{min-height:27px;padding:4px 8px;font-size:.66rem}
.free-practice-panel[data-phase=setup] .free-ball-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));justify-items:center;gap:4px;margin:8px auto 0;max-width:210px}
.free-practice-panel[data-phase=setup] .free-ball-choice{width:34px;height:34px}
.free-practice-catalog h3{margin:0 0 7px;color:#f1cf72;font-size:.72rem;letter-spacing:.07em;text-transform:uppercase}
.free-practice-items{display:grid;gap:6px;margin:0}
.free-practice-item{grid-template-columns:25px minmax(0,1fr);gap:3px 7px;padding:6px 7px}
.free-practice-item-copy{min-width:0;display:grid;align-content:center;gap:2px}
.free-practice-item-copy strong{font-size:.7rem;line-height:1.2}
.free-practice-item-copy small{font-size:.61rem;line-height:1.2}
.free-practice-item-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.free-practice-item-actions button{min-width:0;min-height:29px;padding:4px 5px;font-size:.62rem!important}
.free-practice-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(110px,.8fr);gap:6px}
.free-practice-tools button{min-width:0;min-height:34px;padding:6px 8px;font-size:.68rem!important;white-space:nowrap}
.free-practice-tools .shoot-button{min-width:0}
.free-practice-panel[data-phase=setup] .free-practice-library{margin:0;padding-top:6px}
.free-practice-panel[data-phase=setup] .free-practice-library-content>p{margin:5px 0;font-size:.65rem}
.free-practice-panel[data-phase=setup] #freePracticeSave{min-height:29px;padding:4px 8px;font-size:.65rem!important}
.free-practice-panel[data-phase=setup] .free-practice-layouts{margin-top:6px}
.free-practice-buy-dialog{width:min(390px,calc(100vw - 20px));max-width:none}
.free-practice-buy-dialog .console-menu-header h2{font-size:1.2rem}
.free-practice-buy-dialog .console-menu-header .setup-note{display:block;margin:4px 0 0;font-size:.75rem}
.free-practice-buy-dialog .setup-deck{margin-top:8px}
.free-practice-buy-dialog .field{margin:8px 0}
.free-practice-buy-dialog .field select{min-height:42px;padding:8px 10px}
.free-practice-buy-total{margin:5px 0!important;color:#f1cf72!important;font-size:.78rem!important;line-height:1.4!important}
.free-practice-buy-dialog .free-practice-save-actions{padding:8px 14px 14px}
.free-practice-buy-dialog .free-practice-save-actions button{min-height:40px;font-size:.78rem}
@media(max-width:600px){
 .free-practice-panel[data-phase=setup]{top:8px;width:calc(100% - 16px);padding:9px 10px;max-height:calc(100dvh - 16px)}
 .free-practice-panel[data-phase=setup] .free-practice-heading{gap:5px}
 .free-practice-panel[data-phase=setup] .free-practice-heading strong{font-size:.83rem}
 .free-practice-panel[data-phase=setup] .free-practice-heading>div:first-child .eyebrow{font-size:.58rem;letter-spacing:.1em}
 .free-practice-panel[data-phase=setup] .free-practice-actions{min-width:0}
 .free-practice-panel[data-phase=setup] .free-practice-cue-select{gap:4px;font-size:.63rem}
 .free-practice-panel[data-phase=setup] .free-practice-cue-select select{width:126px;max-width:34vw;font-size:.63rem}
 .free-practice-builder{gap:6px}
 .free-practice-balls,.free-practice-catalog{padding:6px}
 .free-practice-ball-set{justify-content:center;gap:4px}
 .free-practice-ball-set>span{display:none}
 .free-practice-ball-options{width:100%;gap:3px}
 .free-practice-ball-options button{flex:1;min-width:0;padding:4px 2px;font-size:.59rem}
 .free-practice-panel[data-phase=setup] .free-ball-picker{gap:3px;margin-top:6px}
 .free-practice-panel[data-phase=setup] .free-ball-choice{width:30px;height:30px}
 .free-practice-panel[data-phase=setup] .free-ball-choice .mini-ball{width:22px;height:22px;font-size:.47rem}
 .free-practice-catalog h3{margin-bottom:5px;font-size:.63rem}
 .free-practice-item{grid-template-columns:19px minmax(0,1fr);gap:3px 4px;padding:5px}
 .free-practice-item-copy strong{font-size:.61rem}
 .free-practice-item-copy small{font-size:.54rem;white-space:normal}
 .free-practice-cup-icon,.free-practice-bottle-icon{transform:scale(.72)}
 .free-practice-item-actions{gap:3px}
 .free-practice-item-actions button{min-height:26px;padding:3px 2px;font-size:.55rem!important;white-space:normal}
 .free-practice-panel[data-phase=setup] #freePracticeHint{font-size:.61rem}
 .free-practice-tools{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(80px,.78fr);gap:4px}
 .free-practice-tools button{min-height:31px;padding:4px 3px;font-size:.59rem!important}
 .free-practice-panel[data-phase=setup] .free-practice-library{font-size:.64rem}
}
@media(max-width:370px){
 .free-practice-panel[data-phase=setup] .free-practice-heading>div:first-child .eyebrow{display:none}
 .free-practice-panel[data-phase=setup] .free-practice-cue-select>span{display:none}
 .free-practice-panel[data-phase=setup] .free-practice-cue-select select{max-width:38vw}
 .free-practice-panel[data-phase=setup] .free-practice-tools{grid-template-columns:1fr 1fr}
 .free-practice-panel[data-phase=setup] .free-practice-tools .shoot-button{grid-column:1/-1}
}

/* Compacto e estável: o quadro de itens mantém a altura e rola por dentro. */
.free-practice-panel[data-phase=setup]{width:min(720px,calc(100% - 24px))}
.free-practice-builder{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);height:210px;align-items:stretch}
.free-practice-balls,.free-practice-catalog{height:100%;min-height:0}
.free-practice-ball-set{justify-content:center}
.free-practice-catalog{display:flex;flex-direction:column}
.free-practice-items{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;align-content:start;scrollbar-width:thin;scrollbar-color:#668675 #091d1b}
.free-practice-item{grid-template-columns:25px minmax(0,1fr) 92px;align-items:center;gap:6px;padding:7px}
.free-practice-item-copy{gap:3px}
.free-practice-item-copy strong{font-size:.7rem}
.free-practice-item-copy .free-practice-item-description{color:#a8c0b2;font-size:.61rem;line-height:1.25}
.free-practice-item-actions{grid-column:3;grid-row:1;display:grid;grid-template-columns:minmax(0,1fr);align-content:center;gap:4px}
.free-practice-item-actions button{min-height:28px;padding:4px 3px;font-size:.61rem!important;white-space:normal}
@media(max-width:600px){
 .free-practice-panel[data-phase=setup]{width:calc(100% - 16px)}
 .free-practice-builder{grid-template-columns:minmax(0,1fr);height:auto}
 .free-practice-balls{height:auto}
 .free-practice-catalog{height:160px}
 .free-practice-item{grid-template-columns:18px minmax(0,1fr) 72px;gap:4px;padding:5px}
 .free-practice-item-copy strong{font-size:.6rem}
 .free-practice-item-copy .free-practice-item-description{font-size:.54rem}
 .free-practice-item-copy small:not(.free-practice-item-description){font-size:.53rem}
 .free-practice-item-actions{gap:3px}
 .free-practice-item-actions button{min-height:26px;padding:3px 2px;font-size:.54rem!important}
}

/* Depois de montar a mesa, mantenha só as ações para organizar, salvar ou jogar. */
.free-practice-panel[data-phase=setup][data-organizing=true]{width:min(520px,calc(100% - 24px))}
.free-practice-panel[data-phase=setup][data-organizing=true] .free-practice-heading .free-practice-actions{display:none}
.free-practice-organize-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr);gap:8px}
.free-practice-organize-actions[hidden]{display:none}
.free-practice-organize-actions:not(.can-save){grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
.free-practice-organize-actions button{min-width:0;min-height:40px;padding:7px 8px;font-size:.76rem!important;white-space:nowrap}
@media(max-width:600px){
 .free-practice-panel[data-phase=setup][data-organizing=true]{width:calc(100% - 16px)}
 .free-practice-organize-actions{gap:5px}
 .free-practice-organize-actions button{min-height:38px;padding:5px 4px;font-size:.68rem!important}
}

/* Give the daily login reward a focused, responsive confirmation. */
.modal.daily-reward-dialog{width:min(440px,calc(100vw - 28px));max-width:none;max-height:calc(100dvh - 24px);padding:30px 28px 24px;border:1px solid #d9b858a8;border-radius:18px;background:radial-gradient(ellipse at 50% 0,#f0c45a20,transparent 48%),linear-gradient(155deg,#153a32,#071d1b 78%);color:#f4eedf;text-align:center;box-shadow:0 24px 90px #000b,inset 0 1px #fff2}
.modal.daily-reward-dialog[open]{display:grid;justify-items:center;gap:11px}
.modal.daily-reward-dialog::backdrop{background:#020a09d9;backdrop-filter:blur(7px)}
.modal.daily-reward-dialog .modal-close{top:10px;right:10px;color:#e8d9b1}
.daily-reward-coins{position:relative;display:block;width:100px;height:82px;margin:0 auto;isolation:isolate}
.daily-reward-coins svg{position:absolute;inset:0;z-index:1;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 7px 6px #0006)}
.daily-reward-orbit{position:absolute;inset:1px;z-index:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 248deg,#fff7c2 264deg,#f4cb6e 277deg,transparent 292deg 360deg);-webkit-mask:radial-gradient(ellipse,transparent 62%,#000 66% 69%,transparent 73%);mask:radial-gradient(ellipse,transparent 62%,#000 66% 69%,transparent 73%);animation:daily-reward-spin 2.6s linear infinite}
.daily-reward-orbit::after{content:"";position:absolute;top:2px;left:50%;width:5px;height:5px;border-radius:50%;background:#fff9d8;box-shadow:0 0 9px 3px #ffe58c;transform:translateX(-50%)}
@keyframes daily-reward-spin{to{transform:rotate(360deg)}}
.modal.daily-reward-dialog>.eyebrow{margin-top:3px;color:#f2cf78}
.modal.daily-reward-dialog h2{margin:0!important;font-size:1.55rem;line-height:1.2}
.modal.daily-reward-dialog p{max-width:320px;margin:0!important;color:#bdcfc2;font-size:.9rem;line-height:1.5}
.daily-reward-amount{display:block;margin:2px 0 0;color:#f5d37e;font-size:clamp(2.4rem,10vw,3.25rem);font-weight:900;line-height:1.05;letter-spacing:-.04em;text-shadow:0 3px 20px #f4cb6033}
.daily-reward-balance{color:#a9c5b2;font-size:.8rem;font-variant-numeric:tabular-nums}
.modal.daily-reward-dialog .daily-reward-next{font-size:.77rem;color:#91aa9b}
.modal.daily-reward-dialog #dailyRewardContinue{width:100%;max-width:300px;min-height:48px;margin-top:5px}
@media(max-width:600px){.modal.daily-reward-dialog{padding:26px 20px 20px;border-radius:16px}.daily-reward-coins{width:92px;height:76px}.modal.daily-reward-dialog h2{font-size:1.35rem}}
@media(prefers-reduced-motion:reduce){.modal.daily-reward-dialog *{scroll-behavior:auto!important;transition:none!important}.daily-reward-orbit{animation:none}}

/* Mobile lobby header: reserve the logo's full aspect ratio and all four
   controls so the home card cannot overlap the brand or wallet. */
@media(max-width:700px){
 #metaGame .meta-header{flex:0 0 clamp(58px,18vw,72px);height:clamp(58px,18vw,72px);min-height:0;grid-template-columns:minmax(0,1fr) auto auto 36px;align-items:center;gap:clamp(4px,1vw,6px);padding:0}
 #metaGame .meta-brand{grid-column:1;justify-self:start;width:min(100%,clamp(80px,25vw,104px));height:auto;aspect-ratio:2/1;overflow:hidden}
 #metaGame .meta-brand img{width:100%;height:100%;object-fit:contain;object-position:center}
 #metaGame .meta-level-link{grid-column:2;width:clamp(140px,38vw,158px);min-height:44px;padding:5px 6px;gap:5px}
 #metaGame .meta-top-wallet{grid-column:3;min-width:0;max-width:100%;justify-content:flex-end;gap:clamp(2px,1vw,5px)}
 #metaGame .meta-settings{grid-column:4;justify-self:end;position:static;width:36px;height:36px;transform:none}
 #metaGame .meta-settings>.meta-game-icon{width:28px;height:28px}
}
@media(max-width:380px){
 #metaGame .meta-header{flex-basis:58px;height:58px;grid-template-columns:minmax(0,1fr) minmax(128px,auto) auto 32px;gap:3px}
 #metaGame .meta-brand{width:min(100%,clamp(72px,25vw,92px))}
 #metaGame .meta-level-link{width:clamp(128px,40vw,150px);min-height:40px;padding:3px 4px;gap:3px}
 #metaGame .meta-level-badge{flex-basis:26px;height:30px}
 #metaGame .meta-level-details>strong,#metaGame .meta-level-details>small{display:block}
 #metaGame .meta-top-wallet{gap:2px}
 #metaGame .meta-currency-icon,#metaGame .meta-currency-icon .meta-game-icon{width:18px;height:18px}
 #metaGame .meta-settings{width:32px;height:32px}
 #metaGame .meta-settings>.meta-game-icon{width:24px;height:24px}
}
