/* R34: desktop/tablet only. Phone rules and controls are unchanged. */
html:not(.phone) .play-area{grid-template-rows:minmax(0,1fr)}
html:not(.phone) .game-info{grid-row:1;gap:clamp(2px,.45cqh,5px)}
html:not(.phone) .game-info>.legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;flex:none;min-height:0;height:auto;margin:4px 0;padding:7px 0 0;border-top:1px solid #ad8a38;font-size:clamp(9px,.75vw,12px)}
html:not(.phone) .game-info>.legend .status-line{grid-column:1/-1;display:flex;flex-direction:column;align-items:flex-start;flex:none;gap:3px;margin:0;padding:0;border:0;font-size:clamp(10px,.8vw,13px);line-height:1.2}
html:not(.phone) .game-info>.legend #countdown{font-size:clamp(12px,1vw,16px);color:#ffdf83}
html:not(.phone) .game-info>.legend>span{display:block;text-align:center;white-space:nowrap;padding:6px 1px;border:1px solid #635431;border-radius:6px;background:linear-gradient(#14151b,#060708);font-weight:600}
html:not(.phone) .game-info>.legend>label{grid-column:1/-1;display:flex;align-items:center;gap:5px;margin:0;font-size:clamp(10px,.75vw,12px);line-height:1.2}
html:not(.phone) .game-info>.legend input{margin:0;width:14px;height:14px}
html:not(.phone) .game-info .purchase-bar{margin-top:0;flex:none}
html:not(.phone) .game-info .details-actions{margin-top:auto;flex:none}
html:not(.phone) .cards:has(>.ticket-selection){display:block!important;padding:5px 6px!important}
html:not(.phone) .ticket-selection{display:block;min-height:0;height:auto;align-self:start;padding:4px 4px 8px}
html:not(.phone) .ticket-selection-heading h2{margin:5px 0;font-size:clamp(20px,1.8vw,28px)}
html:not(.phone) .ticket-selection-heading p{margin:4px 0 12px;font-size:12px;line-height:1.3}
html:not(.phone) .network-quick-cards{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;max-width:none}
html:not(.phone) .network-quick-cards .ticket-pack{width:100%;max-width:none;min-height:96px;padding:8px 3px;gap:2px}
html:not(.phone) .ticket-pack strong{font-size:25px;line-height:27px}
html:not(.phone) .ticket-pack-price{padding-top:5px;margin-top:3px;font-size:12px}
html:not(.phone) .ticket-selection-summary{margin-top:10px;font-size:11px}
html.tablet:not(.phone) .network-quick-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
html.tablet:not(.phone) .network-quick-cards .ticket-pack{min-height:62px;padding:5px;grid-template-columns:auto 1fr;grid-template-rows:22px 12px 17px;column-gap:4px}
html.tablet:not(.phone) .ticket-pack-icon{grid-column:1;grid-row:1/3;align-self:center;font-size:17px}
html.tablet:not(.phone) .ticket-pack strong{grid-column:2;grid-row:1;font-size:22px;line-height:22px}
html.tablet:not(.phone) .ticket-pack-label{grid-column:2;grid-row:2;font-size:8px;letter-spacing:1px}
html.tablet:not(.phone) .ticket-pack-price{grid-column:1/-1;grid-row:3;border:0;padding:0;margin:0;font-size:12px}
html.tablet:not(.phone) .ticket-selection-heading h2{font-size:22px;margin:3px 0}
html.tablet:not(.phone) .ticket-selection-heading p{margin:3px 0 8px;font-size:11px}
html.tablet:not(.phone) .ticket-selection-summary{margin-top:6px}
/* Keep the right column compact on shorter landscape screens. */
@media(max-height:850px){
 html:not(.phone) .game-info{padding:6px;gap:3px}
 html:not(.phone) .game-info .display dt{font-size:12px}
 html:not(.phone) .game-info .display dd,html:not(.phone) .game-info .display dd button{font-size:13px}
 html:not(.phone) .game-info .display dl{row-gap:3px}
 html:not(.phone) .game-info .round-tabs{padding-bottom:2px}
 html:not(.phone) .game-info .info-heading{margin:0;font-size:12px}
 html:not(.phone) .game-info>.legend{margin:2px 0;padding-top:4px;gap:4px}
 html:not(.phone) .game-info>.legend>span{padding:4px 1px}
 html:not(.phone) .game-info .footline{font-size:8px}
}

/* R35: use the available card panel, with balanced purchase rows. */
html:not(.phone) .game-info>.legend .status-line{order:-1;align-items:center;text-align:center;width:100%;margin:0}
html:not(.phone) .game-info>.legend #statusText,html:not(.phone) .game-info>.legend #countdown{width:100%;text-align:center}
html:not(.phone) .cards:has(>.ticket-selection){overflow:auto;box-sizing:border-box}
html:not(.phone) .cards>.ticket-selection{height:100%;width:100%;box-sizing:border-box;display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;gap:clamp(8px,1.5vh,18px);padding:clamp(6px,1vh,12px);min-height:0}
html:not(.phone) .ticket-selection-heading{align-self:start;text-align:center}
html:not(.phone) .ticket-selection-heading p{margin-bottom:0}
html:not(.phone) .ticket-selection .network-quick-cards{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);align-content:stretch;align-items:stretch;gap:clamp(7px,1vw,14px);width:100%;height:100%;min-height:0;margin:0}
html:not(.phone) .ticket-selection .network-quick-cards .ticket-pack{grid-column:span 2;grid-template-columns:1fr;grid-template-rows:auto auto auto auto;align-content:center;justify-items:center;row-gap:3px;min-height:0;height:100%;padding:clamp(5px,1vh,12px);max-width:none}
html:not(.phone) .ticket-selection .ticket-pack-icon,html:not(.phone) .ticket-selection .ticket-pack strong,html:not(.phone) .ticket-selection .ticket-pack-label,html:not(.phone) .ticket-selection .ticket-pack-price{grid-column:1;grid-row:auto;align-self:center}
html:not(.phone) .ticket-selection .ticket-pack-icon{font-size:18px;line-height:18px}
html:not(.phone) .ticket-selection .ticket-pack strong{font-size:clamp(25px,2.4vw,42px);line-height:1.05}
html:not(.phone) .ticket-selection .ticket-pack-label{font-size:10px;line-height:12px;letter-spacing:1.5px}
html:not(.phone) .ticket-selection .ticket-pack-price{font-size:clamp(13px,1.2vw,18px);line-height:1.2;width:auto;border:0;margin:3px 0 0;padding:0}
html:not(.phone) .network-quick-cards:has(>.ticket-pack:nth-child(7):last-child)>.ticket-pack:nth-child(5){grid-column:2/span 2}
html:not(.phone) .network-quick-cards:has(>.ticket-pack:nth-child(7):last-child)>.ticket-pack:nth-child(6){grid-column:4/span 2}
html:not(.phone) .network-quick-cards:has(>.ticket-pack:nth-child(7):last-child)>.ticket-pack:nth-child(7){grid-column:6/span 2}
html:not(.phone) .ticket-selection .ticket-selection-summary{margin:0;align-self:end;padding:3px 0;font-size:clamp(11px,1vw,15px)}
html:not(.phone) .cards>.ticket-selection:not(:has(.network-quick-cards)){display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;background:radial-gradient(ellipse at center,#39213166,transparent 75%)}
html:not(.phone) .ticket-selection #chooseNextCards{width:min(90%,440px);padding:14px 18px;font-size:clamp(15px,1.4vw,22px)}
/* Compact the contents, not the panel, on short landscape viewports. */
@media(max-height:750px){
 html:not(.phone) .cards>.ticket-selection{gap:7px;padding:5px}
 html:not(.phone) .ticket-selection-heading h2{font-size:20px;margin:3px 0}
 html:not(.phone) .ticket-selection-heading>span{font-size:9px}
 html:not(.phone) .ticket-selection-heading p{font-size:10px;line-height:12px}
 html:not(.phone) .ticket-selection .network-quick-cards .ticket-pack{grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;row-gap:1px;padding:4px}
 html:not(.phone) .ticket-selection .ticket-pack-icon{grid-column:1;grid-row:1/3;font-size:14px}
 html:not(.phone) .ticket-selection .ticket-pack strong{grid-column:2;grid-row:1;font-size:23px}
 html:not(.phone) .ticket-selection .ticket-pack-label{grid-column:2;grid-row:2;font-size:8px;line-height:9px}
 html:not(.phone) .ticket-selection .ticket-pack-price{grid-column:1/-1;grid-row:3;font-size:12px;margin:1px 0 0}
}
/* Reserve sufficient lower-panel space on short tablets, including browser chrome. */
/* Upper stage retains its original aspect ratio and artwork sizing. */
html.tablet:not(.phone) .game-info{padding:5px;gap:3px;overflow-y:auto;scrollbar-width:thin}
html.tablet:not(.phone) .game-info .display dt{font-size:clamp(10px,3.1cqh,15px)}
html.tablet:not(.phone) .game-info .display dd,html.tablet:not(.phone) .game-info .display dd button{font-size:clamp(11px,3.5cqh,17px)}
html.tablet:not(.phone) .game-info .display dl{row-gap:3px}
html.tablet:not(.phone) .game-info .round-tabs{padding-bottom:2px}
html.tablet:not(.phone) .game-info .info-heading{margin:0;font-size:12px}
html.tablet:not(.phone) .game-info .purchase-bar{flex-shrink:0;gap:4px;padding-top:3px;padding-bottom:3px}
html.tablet:not(.phone) .game-info .purchase-bar button{min-height:26px;padding:4px 3px;font-size:10px}
html.tablet:not(.phone) .game-info .purchase-bar .gold-button{font-size:12px}
html.tablet:not(.phone) .game-info .details-actions{flex-shrink:0}
html.tablet:not(.phone) .game-info .details-actions button{min-height:25px;padding:4px 2px;font-size:9px}
html.tablet:not(.phone) .game-info .footline{flex-shrink:0;font-size:8px;line-height:1.2;margin:0}
html.tablet:not(.phone) .game-info .info-heading{display:block;flex:none;text-align:center;font-size:13px;line-height:16px;margin:1px 0 3px;padding:0;letter-spacing:1px}
/* Centre the complete waiting-state text block, not only its button. */
html:not(.phone) .cards>.ticket-selection:not(:has(.network-quick-cards))>.ticket-selection-heading{align-self:center;justify-self:center;width:100%;text-align:center;margin:0}
html:not(.phone) .cards>.ticket-selection:not(:has(.network-quick-cards))>#chooseNextCards{align-self:center;margin-inline:auto}

/* R37: scale tile contents to the actual allocated tile height. */
html:not(.phone) .ticket-selection .network-quick-cards .ticket-pack{container-type:size;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;overflow:hidden;padding:3px}
html:not(.phone) .ticket-selection .network-quick-cards .ticket-pack-icon{font-size:min(15cqh,18px);line-height:1;margin:0;padding:0}
html:not(.phone) .ticket-selection .network-quick-cards .ticket-pack strong{font-size:min(28cqh,26cqw,42px);line-height:1;margin:0;padding:0}
html:not(.phone) .ticket-selection .network-quick-cards .ticket-pack-label{font-size:min(10cqh,10px);line-height:1.1;margin:0;padding:0}
html:not(.phone) .ticket-selection .network-quick-cards .ticket-pack-price{font-size:min(16cqh,18px);line-height:1.1;margin:0;padding:0;border:0}
/* Fit existing sidebar children without changing the stage artwork. */
html:not(.phone) .game-info{overflow:hidden!important;scrollbar-width:none!important}
html:not(.phone) .game-info::-webkit-scrollbar{display:none;width:0}
html:not(.phone) .game-info>*{flex-shrink:0;zoom:var(--details-fit,1)}
html:not(.phone) .game-info .display dl{row-gap:clamp(5px,1.8cqh,12px)}
html:not(.phone) .game-info .details-actions{padding-top:4px;margin-top:auto;margin-bottom:3px}
@media(hover:hover) and (pointer:fine){html:not(.phone) .game-info .display dl{row-gap:clamp(7px,2cqh,14px)!important}}
