/* Approved cyan/magenta phone concept. Keep recovery and native safe areas visible. */
body.qball-home-design { --home-ink:#090d11; --home-panel:#12171c; --home-cyan:#24e8ed; --home-pink:#f54cce; --home-text:#f5f4f0; --home-muted:#b5bdc8; background:var(--home-ink); }
.qball-home-design #lobby[data-stage="menu"] { background:var(--home-ink); }
.qball-home-design .cabinet-entrance { display:none!important; }
.qball-home-design #lobby #cabinetMenu { max-width:520px; min-height:100svh; padding:max(16px,env(safe-area-inset-top)) 22px calc(88px + env(safe-area-inset-bottom)); gap:18px; background:var(--home-ink); color:var(--home-text); }
.qball-home-design .home-wordmark { display:block; width:76%; height:76px; object-fit:contain; margin:0 auto; }
.qball-home-design #lobby #cabinetMenu .cabinet-menu-topbar { position:fixed; top:auto; bottom:0; left:50%; transform:translateX(-50%); width:min(100%,520px); padding:8px 18px max(8px,env(safe-area-inset-bottom)); border-top:1px solid #303840; background:var(--home-ink); z-index:20; }
.qball-home-design #lobby #cabinetMenu .cabinet-tabs { gap:8px; }
.qball-home-design #lobby #cabinetMenu .cabinet-tabs button { display:flex; flex-direction:column; align-items:center; gap:4px; padding:5px; min-height:52px; border:0; background:transparent; color:var(--home-muted); font-size:13px; }
.qball-home-design #lobby #cabinetMenu .cabinet-tabs button.active { color:var(--home-cyan); background:transparent; }
.qball-home-design .cabinet-tabs svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.qball-home-design #lobby #cabinetMenu .cabinet-menu-page { gap:16px; }
.qball-home-design #lobby #cabinetMenu .shooting-hand-settings { min-width:0; margin:0; padding:0; border:0; }
.qball-home-design #lobby #cabinetMenu .shooting-hand-settings legend { padding:0; margin-bottom:12px; font-size:18px; font-weight:800; line-height:1.35; }
.qball-home-design #lobby #cabinetMenu .shooting-hand-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.qball-home-design #lobby #cabinetMenu .shooting-hand-options label { display:flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:12px; border:1px solid #3b454f; border-radius:12px; background:var(--home-panel); color:var(--home-text); font-size:16px; font-weight:700; letter-spacing:0; cursor:pointer; }
.qball-home-design #lobby #cabinetMenu .shooting-hand-options label:has(input:checked) { border-color:var(--home-cyan); background:#10292e; }
.qball-home-design #lobby #cabinetMenu .shooting-hand-options label:has(input:focus-visible) { outline:3px solid var(--home-pink); outline-offset:3px; }
.qball-home-design #lobby #cabinetMenu .shooting-hand-options input { width:18px; height:18px; min-width:18px; min-height:0; margin:0; padding:0; accent-color:var(--home-cyan); }
.qball-home-design #lobby #cabinetMenu #shootingHandHelp { margin:8px 0 0; color:var(--home-muted); font-size:14px; line-height:1.5; }
.qball-home-design #lobby #cabinetMenu .home-table-art { width:calc(100% + 44px); max-width:none; margin:-10px -22px 0; height:clamp(100px,22svh,190px); object-fit:cover; border:0; }
.qball-home-design #lobby #cabinetMenu .cabinet-game-step { gap:12px; }
.qball-home-design #lobby #cabinetMenu .cabinet-page-heading h2 { font-size:clamp(26px,7vw,34px); font-weight:800; color:var(--home-text); }
.qball-home-design #lobby #cabinetMenu .cabinet-step-heading { display:none; }
.qball-home-design #lobby #cabinetMenu button { border-radius:12px; color:var(--home-text); background:var(--home-panel); border-color:#3b454f; min-height:48px; }
.qball-home-design #lobby #cabinetMenu button:hover:not(:disabled) { border-color:var(--home-cyan); background:#19252c; }
.qball-home-design #lobby #cabinetMenu :is(.play-actions,.mode-picker) { gap:10px; }
.qball-home-design #lobby #cabinetMenu .play-actions { display:flex; flex-direction:column-reverse; }
.qball-home-design #lobby #cabinetMenu .mode-option { min-height:44px; padding:6px 12px; border-radius:8px; }
.qball-home-design #lobby #cabinetMenu .mode-option strong { display:none; }
.qball-home-design #lobby #cabinetMenu .mode-option span { font-size:14px; }
.qball-home-design #lobby #cabinetMenu .mode-option.active { background:#10292e; border-color:var(--home-cyan); color:var(--home-cyan); }
.qball-home-design #lobby #cabinetMenu :is(#createButton,#friendsLobbyCreateButton,#friendsLobbyPlayButton,.return-to-game) { background:var(--home-cyan); border-color:var(--home-cyan); color:#051114; }
.qball-home-design #lobby #cabinetMenu #soloButton { background:transparent; color:var(--home-text); border-color:var(--home-pink); }
.qball-home-design #lobby #cabinetMenu .play-actions button { min-height:54px; font-size:18px; }
.qball-home-design #lobby #cabinetMenu :is(small,.lobby-message,.friends-lobby-status) { color:var(--home-muted); }
.qball-home-design #lobby #cabinetMenu :is(h2,h3) { color:var(--home-text); }
.qball-home-design #lobby #cabinetMenu :is(button,input,select,textarea,summary,a):focus-visible { outline-color:var(--home-pink); }
.qball-home-design #lobby #cabinetMenu .lobby-message:empty { display:none; }
.qball-home-design #lobby #cabinetMenu .rejoin-card { padding:12px; border-color:var(--home-cyan); border-radius:12px; gap:8px; }
.qball-home-design #lobby #cabinetMenu .rejoin-actions button { flex:1; }
.qball-home-design #lobby #cabinetMenu .home-lobby-shortcut { display:flex; align-items:center; justify-content:space-between; width:100%; text-align:left; border-color:#19545b; padding:12px; }
.qball-home-design .home-lobby-shortcut small { display:block; }
.qball-home-design .home-lobby-shortcut > span:last-child { color:var(--home-cyan); }
.qball-home-design #lobby #cabinetMenu .account-summary { flex-wrap:nowrap; gap:14px; min-height:70px; }
.qball-home-design #lobby #cabinetMenu .account-avatar { width:64px; height:64px; flex:0 0 64px; border:2px solid var(--home-pink); background:#141c23; color:var(--home-text); font-size:22px; }
.qball-home-design #lobby #cabinetMenu #accountName { font-size:22px; text-transform:none; }
.qball-home-design #lobby #cabinetMenu #accountStatus { font-size:12px; }
.qball-home-design #lobby #cabinetMenu #accountButton { position:absolute; width:1px; height:1px; min-height:0; padding:0; clip-path:inset(50%); overflow:hidden; }
.qball-home-design #lobby #cabinetMenu .player-subnav,.qball-home-design #lobby #cabinetMenu .room-task-tabs { display:flex; gap:4px; padding:3px; border:1px solid #303840; border-radius:12px; }
.qball-home-design #lobby #cabinetMenu :is(.player-subnav,.room-task-tabs) button { flex:1; padding:8px 6px; border:0; background:transparent; }
.qball-home-design #lobby #cabinetMenu :is(.player-subnav,.room-task-tabs) button[aria-pressed="true"] { color:#051114; background:var(--home-cyan); }
.qball-home-design .player-profile-overview { padding:14px; border:1px solid #303840; border-radius:12px; background:var(--home-panel); }
.qball-home-design .player-profile-overview dl { margin:0 0 12px; }
.qball-home-design .player-profile-overview dl > div { display:flex; justify-content:space-between; gap:16px; padding:9px 0; }
.qball-home-design .player-profile-overview dd { margin:0; color:var(--home-muted); }
.qball-home-design #lobby #cabinetMenu #homeEditProfile { width:100%; color:var(--home-cyan); border-color:var(--home-cyan); background:transparent; }
.qball-home-design #lobby #cabinetMenu .home-recovery { display:grid; gap:12px; }
.qball-home-design .home-recovery-body { padding:14px; border:1px solid #303840; border-radius:12px; background:var(--home-panel); }
.qball-home-design #lobby #cabinetMenu .home-recovery p { font-size:14px; margin:4px 0 14px; color:var(--home-muted); }
.qball-home-design .home-recovery-body > div { display:flex; gap:8px; }
.qball-home-design #lobby #cabinetMenu .home-recovery button { flex:1; padding:10px 8px; font-size:14px; }
.qball-home-design #lobby #cabinetMenu #homeRejoinLobby { background:var(--home-cyan); color:#051114; border-color:var(--home-cyan); }
.qball-home-design #lobby #cabinetMenu #homeRecoverVoice { border-color:var(--home-pink); }
.qball-home-design #cabinetPlayerPage[data-player-view="profile"] #friendsLobby,
.qball-home-design #cabinetPlayerPage[data-player-view="friends"] :is(.player-profile-overview,.home-recovery),
.qball-home-design #cabinetPlayerPage[data-editing="true"] :is(.player-subnav,.player-profile-overview,.home-recovery,#friendsLobby),
.qball-home-design #cabinetPlayerPage[data-player-view="friends"] #accountPanel,
.qball-home-design #friendsLobbyButton { display:none!important; }
.qball-home-design #lobby #cabinetMenu .friends-lobby-panel { padding:0; }
.qball-home-design #lobby #cabinetMenu :is(.friends-lobby-active,.friends-lobby-setup) { gap:12px; }
.qball-home-design #lobby #cabinetMenu .friends-lobby-active .room-task-pane { display:flex; flex-direction:column; gap:12px; }
.qball-home-design #lobby #cabinetMenu [hidden] { display:none!important; }
.qball-home-design #lobby #cabinetMenu .room-task-pane > section,.qball-home-design #lobby #cabinetMenu .room-task-pane > header { padding:8px 0; }
.qball-home-design #lobby #cabinetMenu .friends-lobby-invite-actions { display:flex; flex-wrap:wrap; gap:8px; }
.qball-home-design #lobby #cabinetMenu .friends-lobby-invite-actions button { flex:1 1 85px; padding:8px; font-size:14px; }
.qball-home-design #lobby #cabinetMenu .friends-lobby-voice-actions button { flex:1 1 90px; padding:8px; font-size:14px; }
.qball-home-design #friendsLobbySetup .friends-lobby-or { display:none; }
.qball-home-design #friendsLobbySetup[data-setup-view="create"] .friends-lobby-join-row,
.qball-home-design #friendsLobbySetup[data-setup-view="join"] #friendsLobbyCreateForm { display:none; }
.qball-home-design #lobby #cabinetMenu .friends-lobby-create-form { padding:0; }
.qball-home-design #lobby #cabinetMenu .friends-lobby-create-form > p { display:none; }
.qball-home-design .home-dock-suppressed { display:none!important; }
.qball-home-design #lobby #cabinetMenu .return-to-game { position:static; }
.qball-home-design #lobby #cabinetMenu:has(.return-to-game:not(.hidden)) .home-table-art { height:80px; }
/* Give tall phones a calmer rhythm without stretching the controls. */
@media (min-height:780px) and (max-width:699px) and (orientation:portrait) {
 .qball-home-design #lobby #cabinetMenu #cabinetGamesPage { gap:24px; }
 .qball-home-design #lobby #cabinetMenu #cabinetGamesPage .cabinet-game-step { gap:20px; }
 .qball-home-design #lobby #cabinetMenu #cabinetGamesPage .play-actions { gap:16px; }
 .qball-home-design #lobby #cabinetMenu .home-table-art { height:clamp(190px,24svh,232px); }
 .qball-home-design #lobby #cabinetMenu:has(.return-to-game:not(.hidden)) .home-table-art { height:80px; }
}
@media (max-height:700px) {
 .qball-home-design #lobby #cabinetMenu { gap:12px; padding-top:max(10px,env(safe-area-inset-top)); }
 .qball-home-design .home-wordmark { height:54px; }
 .qball-home-design #lobby #cabinetMenu .home-table-art { height:95px; }
 .qball-home-design #lobby #cabinetMenu .cabinet-menu-page { gap:12px; }
 .qball-home-design #lobby #cabinetMenu .account-avatar { width:48px; height:48px; flex-basis:48px; }
 .qball-home-design #lobby #cabinetMenu .account-summary { min-height:48px; }
 .qball-home-design .player-profile-overview,.qball-home-design .home-recovery-body { padding:10px; }
 .qball-home-design .player-profile-overview dl > div { padding:4px 0; }
}
@media (prefers-reduced-motion:no-preference) {
 .qball-home-design .home-table-art { animation:home-arrive .45s cubic-bezier(.16,1,.3,1) both; }
 @keyframes home-arrive { from { filter:brightness(.65); } to { filter:brightness(1); } }
}

.qball-home-design #lobby #cabinetMenu .account-summary { display:flex; }
.qball-home-design #lobby #cabinetMenu .account-copy { flex:1; min-width:0; }
.qball-home-design #lobby #cabinetMenu .cabinet-tabs .cabinet-tab.active:hover:not(:disabled),
.qball-home-design #lobby #cabinetMenu .cabinet-tabs .cabinet-tab.active:focus { background:transparent; color:var(--home-cyan); }
.qball-home-design #lobby #cabinetMenu button:focus:not(:focus-visible) { box-shadow:none; }

.qball-home-design #cabinetPlayerPage[data-player-view="profile"] .friends-unavailable,
.qball-home-design #cabinetPlayerPage[data-editing="true"] .friends-unavailable,
.qball-home-design #cabinetMenu:has(.return-to-game:not(.hidden)) #rejoinCard { display:none!important; }
.qball-home-design #lobby #cabinetMenu:has(.return-to-game:not(.hidden)) .cabinet-menu-topbar { position:fixed; top:auto; bottom:0; left:50%; transform:translateX(-50%); }

@font-face { font-family:"QBall Sans"; src:url('/assets/fonts/dm-sans-variable.ttf') format('truetype'); font-style:normal; font-weight:100 1000; font-display:swap; }
.qball-home-design #lobby #cabinetMenu { font-family:"QBall Sans",sans-serif; }
.qball-home-design #lobby #cabinetMenu :is(h2,h3,p,small,label,summary,span,strong,button,input,select,textarea) { font-family:"QBall Sans",sans-serif; }
.qball-home-design #lobby #cabinetMenu :is(.cabinet-page-heading h2,.player-heading) { font-size:32px; font-weight:850; }
.qball-home-design #lobby #cabinetMenu .play-actions button { font-weight:800; }
@media(max-width:350px) { .qball-home-design #lobby #cabinetMenu :is(.cabinet-page-heading h2,.player-heading) { font-size:28px; } }
/* Old cabinet glass created a containing block for fixed navigation. */
.qball-home-design #lobby #cabinetMenu { backdrop-filter:none; -webkit-backdrop-filter:none; }

.qball-home-design #lobby #cabinetMenu #lobbyMessage:empty { display:none; }
.qball-home-design #lobby #cabinetMenu #lobbyMessage { margin:0; font-size:14px; line-height:1.5; color:var(--home-cyan); }
.qball-home-design #lobby #cabinetMenu { padding-bottom:calc(112px + env(safe-area-inset-bottom)); }
.qball-home-design #cabinetOptionsPage > h2 { margin:0; }
.qball-home-design #cabinetOptionsPage .menu-shortcuts { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.qball-home-design #lobby #cabinetMenu .menu-audio-settings { padding:20px 0; border-block:1px solid var(--panel-border); }
.qball-home-design #lobby #cabinetMenu .menu-audio-settings h3 { grid-column:1/-1; margin:0; font-size:18px; }

/* Owner-requested stronger cyan and magenta for the refreshed menus. */
.qball-home-design #lobby #cabinetMenu #cabinetOptionsPage > h2 { color:#22f3ff; text-shadow:0 0 18px #22f3ff55; }
.qball-home-design #lobby #cabinetMenu #gameSkinsButton { background:#ff38d5; border-color:#ff38d5; color:#190718; box-shadow:0 0 18px #ff38d544; }
.qball-home-design #lobby #cabinetMenu #menuJukeboxButton { background:#22f3ff; border-color:#22f3ff; color:#051114; box-shadow:0 0 18px #22f3ff44; }
.qball-home-design #lobby #cabinetMenu .menu-audio-settings { border-block-color:#22f3ff66; }
.qball-home-design #lobby #cabinetMenu #cabinetOptionsPage :is(h3,legend) { color:#ff76e4; }
.qball-home-design #lobby #cabinetMenu #soundButton[aria-pressed="true"] { border-color:#22f3ff; color:#22f3ff; background:#102d33; }
.qball-home-design #lobby #cabinetMenu #neonAudioButton[aria-pressed="true"] { border-color:#ff38d5; color:#ff76e4; background:#32112c; }
