/* Intrinsic-height slot panels. Loaded last, after legacy viewport-fit styles. */
.slot-screen #app .cash-machine{display:flex!important;flex-direction:column!important;flex:0 0 auto!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;gap:10px!important;padding:10px!important;margin:0 auto!important;grid-template-areas:none!important;grid-template-rows:none!important}
.slot-screen #app .cash-machine>*{flex:0 0 auto!important;min-width:0;box-sizing:border-box;grid-area:auto!important}
.slot-screen #app .cash-nav{height:auto!important;min-height:44px!important;flex-wrap:wrap;gap:6px}
.slot-screen #app .cash-nav>div{flex-wrap:wrap;gap:5px}
.slot-screen #app .cash-machine .cash-nav button{min-height:44px!important;font-size:12px!important;padding:7px 9px!important}
.slot-screen #app .cash-logo{height:auto!important;min-height:80px!important;grid-template-columns:minmax(0,1fr) minmax(100px,.8fr)!important;padding:8px!important}
.slot-screen #app .cash-logo>img{height:70px!important;width:100%;object-fit:contain}
.slot-screen #app .cash-top-prize strong{font-size:clamp(16px,4.6vw,26px)!important;overflow-wrap:anywhere;max-width:100%;text-align:center}
.slot-screen #app .cash-mode-picker{min-height:44px!important;grid-template-columns:repeat(4,minmax(0,1fr))!important}
.slot-screen #app .cash-machine .cash-mode-picker button{min-height:44px!important;white-space:normal!important;font-size:10px!important;line-height:1.3!important;padding:5px 2px!important}
/* A definite stage height prevents size containment and an auto-height grid from collapsing every reel. */
.slot-screen #app .cash-stage{display:block!important;position:relative!important;height:clamp(240px,65vw,420px)!important;min-height:240px!important;max-height:none!important;flex:0 0 auto!important;container-type:normal!important;contain:none!important;overflow:hidden!important}
.slot-screen #app .cash-columns{position:absolute!important;inset:35px 8px 25px!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px}
.slot-screen #app .cash-column{min-height:0!important}
.slot-screen #app .cash-drum-window{position:absolute!important;top:50%!important;left:1px!important;right:1px!important;height:auto!important;max-height:none!important;aspect-ratio:1!important;transform:translateY(-50%)!important}
.slot-screen #app .cash-drum-top{font-size:10px!important;line-height:1.4!important;padding:6px 2px!important;white-space:normal}
.slot-screen #app .cash-reel-label{display:block!important;font-size:10px!important}
.slot-screen #app .cash-held{bottom:0!important;font-size:10px!important}
.slot-screen #app .cash-chance{top:0!important;font-size:9px!important}
/* Award text and respin counts are siblings of the stage, leaving numbers visible. */
.slot-screen #app .cash-machine>.cash-win-burst,.slot-screen #app .cash-machine>.cash-feature-counter{position:relative!important;inset:auto!important;transform:none!important;width:100%!important;height:auto!important;margin:0!important;padding:10px!important;background:#0b2114!important;border:1px solid #9ebd74;border-radius:9px;text-align:center;pointer-events:none}
.slot-screen #app .cash-ribbon{min-height:42px!important;height:auto!important;padding:8px!important;font-size:clamp(17px,4.6vw,26px)!important}
.slot-screen #app .cash-equation{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere;font-size:12px!important;line-height:1.5!important;padding:9px!important;height:auto!important}
.slot-screen #app .cash-console{height:auto!important;min-height:160px!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:auto auto!important;padding:10px!important;gap:14px 10px!important}
.slot-screen #app .cash-stat{grid-row:1!important;min-width:0!important}.slot-screen #app .cash-stat:first-child{grid-column:1!important}.slot-screen #app .cash-stat:nth-child(3){grid-column:2!important}
.slot-screen #app .cash-stat strong{font-size:clamp(17px,4.7vw,28px)!important;white-space:normal!important;overflow-wrap:anywhere;line-height:1.3!important;font-variant-numeric:tabular-nums}
.slot-screen #app .cash-bet{grid-row:2!important;grid-column:1!important}.slot-screen #app .cash-bet>div{grid-template-columns:36px minmax(0,1fr) 36px!important}.slot-screen #app .cash-bet b{font-size:15px!important}
.slot-screen #app .cash-machine .cash-bet button{min-height:44px!important;height:44px!important}.slot-screen #app .cash-machine .cash-spin{grid-row:2!important;grid-column:2!important;min-height:66px!important;height:auto!important}.slot-screen #app .cash-spin strong{font-size:24px!important}
.slot-screen #app .cash-machine .cash-tools button{min-height:44px!important;white-space:normal!important;font-size:12px!important;line-height:1.35!important}
.slot-screen #app .cash-payout-version{font-size:10px!important;line-height:1.5;overflow-wrap:anywhere}
/* Gallery cards retain a complete artwork row regardless of device height. */
.slot-screen #app .slot-gallery{display:flex!important;flex-direction:column!important;flex:0 0 auto!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;gap:18px;padding:12px!important}
.slot-screen #app .machine-carousel{flex:0 0 auto!important;height:auto!important;min-height:0!important;overflow-x:auto!important;overflow-y:hidden!important;align-items:stretch!important;padding:5px 4px 16px!important;gap:16px}
.slot-screen #app .machine-card{display:flex!important;flex-direction:column!important;flex:0 0 min(82vw,380px)!important;height:auto!important;min-height:0!important;max-width:380px!important}
.slot-screen #app .machine-cover{position:relative!important;flex:0 0 auto!important;min-height:210px!important;height:clamp(210px,56vw,250px)!important;max-height:none!important;overflow:hidden!important}
.slot-screen #app .lounge-cover-art{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;background:#100e18}
.slot-screen #app .machine-card-copy{flex:1 0 auto!important;padding:16px!important;gap:12px!important}
.slot-screen #app .machine-card-copy h2{font-size:26px!important;line-height:1.15!important;min-height:0!important}
.slot-screen #app .machine-feature-tags{margin:3px 0 12px!important}.slot-screen #app .machine-feature-tags span{font-size:12px!important}
.slot-screen #app .slot-gallery-head{height:auto!important;flex-wrap:wrap!important;gap:12px!important;padding:10px!important}.slot-screen #app .gallery-balance{max-width:100%;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.slot-screen #app .slot-gallery-footer{height:auto!important;display:flex!important;flex-wrap:wrap!important;gap:12px!important;padding:10px!important}.slot-screen #app .slot-gallery-footer button{min-height:44px!important;max-width:100%;white-space:normal}
/* Match nested celebrations too: they are inside vault-play-area, not direct children of the cabinet. */
.slot-screen #app .prestige-slot .slot-celebration{position:relative!important;inset:auto!important;transform:none!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;grid-template-rows:auto auto!important;gap:0!important;padding:8px!important;margin:0!important;flex:0 0 auto!important;order:10!important;overflow:hidden!important;box-shadow:none!important;pointer-events:auto!important;opacity:1!important;animation:none!important}
.slot-screen #app .prestige-slot .slot-celebration .celebration-close{position:relative!important;inset:auto!important;grid-row:1!important;grid-column:1/-1!important;justify-self:end;min-height:44px!important;min-width:44px!important;width:44px!important;height:44px!important;margin:0 0 6px!important}
.slot-screen #app .prestige-slot .slot-celebration .celebration-scene{position:relative!important;inset:auto!important;grid-column:1!important;grid-row:2!important;flex:0 0 auto!important;width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:1/1!important;overflow:hidden!important}
.slot-screen #app .prestige-slot .slot-celebration .celebration-art{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;transform:none!important;animation:none!important}
.slot-screen #app .prestige-slot .slot-celebration .celebration-caption{position:relative!important;inset:auto!important;transform:none!important;grid-column:2!important;grid-row:2!important;width:auto!important;min-width:0!important;height:auto!important;align-self:center!important;padding:10px!important;text-align:center;background:none!important;box-shadow:none!important}
.slot-screen #app .prestige-slot .slot-celebration .celebration-caption strong{font-size:clamp(16px,4.5vw,25px)!important;line-height:1.3!important;overflow-wrap:anywhere}
/* Two console rows reserve full cells for balances and keep all bet/spin controls reachable. */
.slot-screen #app .prestige-slot .vault-console{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:auto auto!important;height:auto!important;min-height:152px!important;gap:12px 8px!important;padding:10px!important;align-items:center!important}
.slot-screen #app .prestige-slot .vault-console .console-stat{grid-row:1!important;min-width:0!important;width:100%!important;text-align:center!important}.slot-screen #app .prestige-slot .vault-console .console-stat:first-child{grid-column:1!important}.slot-screen #app .prestige-slot .vault-console .console-stat:nth-child(3){grid-column:2!important}
.slot-screen #app .prestige-slot .vault-console .console-stat strong{font-size:clamp(17px,4.5vw,29px)!important;line-height:1.3!important;white-space:normal!important;overflow-wrap:anywhere!important;font-variant-numeric:tabular-nums}
.slot-screen #app .prestige-slot .vault-console .bet-switch{grid-row:2!important;grid-column:1!important;grid-template-columns:32px minmax(0,1fr) 32px!important;grid-template-rows:14px 44px!important;min-width:0!important;height:auto!important;gap:3px!important;order:0!important}
.slot-screen #app .prestige-slot .vault-console .bet-switch button{min-height:44px!important;width:32px!important;padding:0!important}.slot-screen #app .prestige-slot .vault-console .bet-switch strong{font-size:18px!important;min-width:0!important}
.slot-screen #app .prestige-slot .vault-console .slot-spin{grid-row:2!important;grid-column:2!important;min-width:0!important;min-height:66px!important;height:auto!important;width:100%!important;order:0!important}.slot-screen #app .prestige-slot .vault-console .slot-spin strong{font-size:25px!important}
/* A crest has its own cell; it cannot cover the first jackpot digit. */
.slot-screen #app .prestige-slot .progressive-meter{display:grid!important;grid-template-columns:24px minmax(0,1fr)!important;grid-template-rows:auto auto!important;align-items:center;gap:3px!important;min-width:0!important;padding:6px!important}
.slot-screen #app .prestige-slot .progressive-meter .progressive-tier-icon{position:relative!important;inset:auto!important;grid-column:1!important;grid-row:1/3!important;width:24px!important;height:30px!important}
.slot-screen #app .prestige-slot .progressive-meter>small{grid-column:2!important;padding:0!important;font-size:8px!important;letter-spacing:.02em!important;white-space:normal!important}
.slot-screen #app .prestige-slot .progressive-meter>strong{grid-column:2!important;font-size:clamp(14px,3.8vw,25px)!important;line-height:1.3!important;white-space:normal!important;overflow-wrap:anywhere!important;min-width:0!important}
