/* Three equally spaced controls; existing footer height and card space retained. */
.phone .nav-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding-left:0;padding-right:0;padding-top:5px;align-items:start;justify-items:center}
.phone .nav-links #halls,.phone .nav-links #chat{height:24px;min-height:24px;line-height:24px;padding:0;align-self:start;transform:none}
.phone .nav-links #halls{grid-column:1}
.phone .nav-links #chat{grid-column:2}
.phone #game>.corner-help{right:calc(16.666667% - 12px);bottom:calc(18px + env(safe-area-inset-bottom,0px));width:24px;height:24px;min-height:0;padding:0;display:flex;align-items:center;justify-content:center;font-size:16px;line-height:1;border-radius:6px}
.screenshot-button{display:block}

.phone .nav-links #slotsLink{grid-column:3;height:24px;min-height:24px;padding:0;line-height:24px;align-self:start}
.phone .purchase-bar #help{grid-column:3;min-width:0}
.phone.show-details .display dl+dl{display:grid!important}
#players{cursor:pointer}#players::after{content:none}
.gala-roster>div{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:12px;border-bottom:1px solid #b69345}.gala-roster small{display:block;margin-top:4px;color:#b8a98a}
.slot-panel.slots-popup{display:flex!important;position:fixed!important;inset:12px 12px calc(55px + env(safe-area-inset-bottom));z-index:80;width:min(440px,calc(100vw - 24px));height:auto;max-height:none;margin:auto;border:2px solid #d7b66b;border-radius:12px;box-shadow:0 0 0 100vmax #000a}
.slot-popup-close{display:none}.slots-popup>.slot-popup-close{display:block;align-self:flex-end;flex:none;padding:6px 12px;min-height:32px}

/* Size the popup from its width, not the full screen height. */
.slot-panel.slots-popup{inset:auto!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%);margin:0!important;width:min(440px,calc(100vw - 24px),calc((100dvh - 100px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)) * .75));height:auto!important;aspect-ratio:3/4;max-height:calc(100dvh - 100px);box-sizing:border-box}
.slot-panel.slots-popup .module-content{flex:1;min-height:0;overflow:hidden}
.slot-panel.slots-popup .module-content iframe{height:100%;min-height:0}
.slot-panel.slots-popup>.slot-popup-close{font-size:12px;min-height:28px;padding:4px 10px;margin:0}

.slot-panel.slots-popup{max-width:none}

/* Preserve the original desktop/tablet corner help and navigation. */
html:not(.phone) .purchase-bar #help,html:not(.phone) #slotsLink{display:none!important}
.phone #desktopHelp{display:none!important}
html:not(.phone) #game>#desktopHelp{display:block;position:absolute;top:8px;left:8px;right:auto;bottom:auto;width:24px;height:24px;padding:0;border-radius:50%;font:700 17px/22px Arial}
.gala-planner,.gala-player-explanation{line-height:1.55;min-width:0;overflow-wrap:anywhere}.planner-prices{display:flex;flex-wrap:wrap;gap:12px;border:1px solid #b39549;border-radius:10px;padding:12px}.planner-prices label{display:flex;align-items:center;gap:6px}.planner-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.planner-grid label{display:flex;flex-direction:column;gap:6px;min-width:0}.planner-grid input,.planner-grid select{width:100%;min-width:0;padding:10px;font-size:16px;background:#17131d;color:#ffe9ac;border:1px solid #a58a4b;border-radius:8px}.planner-games{display:grid;gap:12px}.planner-games article{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px;border:1px solid #b39549;border-radius:12px}.planner-games h4,.planner-games p{margin:4px 0}.planner-games button{flex-shrink:0}.planner-reference{font-size:.85em;overflow-wrap:anywhere}.gala-player-explanation ul{padding-left:24px}.gala-player-explanation li{margin:8px 0}#modal{max-height:calc(100dvh - 24px);overflow:auto}#plannerError{color:#ffb4a2}@media(max-width:600px){.planner-grid{grid-template-columns:1fr}.planner-games article{display:block}.planner-games button{width:100%;margin-top:10px}}

#cardNextTimer{display:none}
@media(orientation:portrait){
 .phone #cardNextTimer{display:block;flex:1;min-width:0;text-align:center;align-self:center;white-space:nowrap;color:#ffdf78;font:bold 11px Arial;font-variant-numeric:tabular-nums;padding:0 2px}
 .phone .game-info .round-tabs{align-items:center;flex-wrap:nowrap}
 .phone .round-tabs #roundId{display:none}
 .phone .round-tabs .zoom{margin-left:0}
 .phone #countdown{display:none!important}
}
/* Mobile portrait: inset text without increasing either existing row height. */
@media(orientation:portrait){
 .phone .legend{padding-left:8px}
 .phone .legend>.tg1,.phone .legend>.tg2,.phone .legend>.tg3{font-size:10px;line-height:12px;white-space:nowrap}
}

/* R32: compact mobile portrait controls, retaining existing row heights. */
@media(orientation:portrait){
 .phone #cardNextTimer{color:#fff;font-size:10px}
 .phone #cardNextTimer::before{content:"Next game in: ";font-weight:400}
 .phone .legend .status-line{position:relative}
 .phone .legend .status-line #statusText{font-size:10px;line-height:12px;flex:1}
}
