/* Short landscape layouts budget actual viewport height, including visible browser bars. */
@media (max-height:600px) and (max-width:1400px) and (orientation:landscape){
 html body #hub-dialog[open]{height:100dvh!important;max-height:100dvh!important;max-width:100vw!important;box-sizing:border-box!important}
 html body #hub-dialog[data-tab=rewards][open]{grid-template-rows:48px minmax(0,1fr)!important}
 html body #hub-dialog[data-tab=rewards] #hub-dialog#hub-dialog #hub-content{min-height:0!important;padding:6px 10px!important}
 html body #hub-dialog#hub-dialog #hub-content>.reward-bazaar{height:100%!important;min-height:0!important;display:grid!important;grid-template-rows:48px minmax(0,1fr) 44px!important;gap:6px!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .chest-select{height:48px!important;min-height:0!important;gap:6px!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .chest-select button{min-height:44px!important;height:48px!important;padding:3px 8px!important;gap:5px!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .chest-select img{width:28px!important;height:28px!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .chest-select span{font-size:11px!important;line-height:1.15!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .bazaar-feature{display:grid!important;grid-template-columns:minmax(100px,.42fr) minmax(0,1fr)!important;min-height:0!important;gap:12px!important;padding:8px 12px!important;overflow:auto!important;align-items:start!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .bazaar-display{position:sticky;top:0;height:130px!important;min-height:0!important;max-height:100%!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .bazaar-display>img{max-height:130px!important;width:100%!important;object-fit:contain}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .bazaar-offer{display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto auto auto auto auto!important;align-content:start!important;gap:5px!important;min-height:0!important;overflow:visible!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .bazaar-offer h3{font-size:18px!important;line-height:1.2!important;margin:0!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .bazaar-offer>p{display:none!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .bazaar-quantity{margin:0!important;gap:8px!important;font-size:12px!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .bazaar-quantity select{min-height:44px!important;padding:5px 10px!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .bazaar-prices{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin:0!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .bazaar-prices button{height:44px!important;min-height:44px!important;padding:6px!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .bazaar-prices b{font-size:18px!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .bazaar-offer>small{display:block!important;font-size:10px!important;margin:0!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .chest-odds{margin:0!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar>footer{height:44px!important;min-height:44px!important;gap:8px!important;margin:0!important;justify-content:flex-end!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar>footer button{min-height:44px!important;font-size:12px!important;padding:6px 10px!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar #bazaar-status{font-size:11px!important;white-space:normal!important;flex:1}
 /* Treasure scrolls within its columns rather than cropping open/shop actions. */
 html body #hub-dialog#hub-dialog #hub-content .treasure-vault{gap:8px!important;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)!important}
 html body #hub-dialog#hub-dialog #hub-content .treasure-vault .vault-stage{overflow-y:auto!important;justify-content:flex-start!important;padding:8px!important;min-height:0!important;overscroll-behavior:contain}
 html body #hub-dialog#hub-dialog #hub-content .treasure-vault .vault-title{font-size:18px!important;margin:0!important}
 html body #hub-dialog#hub-dialog #hub-content .treasure-vault .vault-scene{flex:0 0 70px!important;height:70px!important;min-height:70px!important}
 html body #hub-dialog#hub-dialog #hub-content .treasure-vault .vault-scene .treasure-icon{width:85px!important;height:70px!important}
 html body #hub-dialog#hub-dialog #hub-content .treasure-vault .vault-ready{font-size:11px!important;margin:3px 0!important}
 html body #hub-dialog#hub-dialog #hub-content .treasure-vault .vault-side{min-height:0!important;overflow-y:auto!important;padding-bottom:0!important;gap:8px!important;overscroll-behavior:contain}
 html body #hub-dialog#hub-dialog #hub-content .treasure-vault .vault-progress{padding:8px!important;flex:none!important}
 html body #hub-dialog#hub-dialog #hub-content .treasure-vault .vault-progress h3{font-size:18px!important;margin:3px 0!important}
 html body #hub-dialog#hub-dialog #hub-content .treasure-vault .vault-progress :is(p,small){white-space:normal!important;overflow-wrap:anywhere;font-size:11px!important;line-height:1.35!important}
 html body #hub-dialog#hub-dialog #hub-content .treasure-vault .vault-shop{flex:none!important;min-height:70px!important}
 /* Match choices form two readable rows; controls retain real touch targets. */
 html body .pr-picker.pr-setup-picker[open]{inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;margin:0!important;padding:8px max(10px,env(safe-area-inset-right))!important;box-sizing:border-box;display:grid!important;grid-template-rows:44px minmax(0,1fr)!important;gap:8px!important}
 html body .pr-setup-picker>header{position:static!important;display:flex!important;align-items:center!important;justify-content:space-between!important;height:44px!important;margin:0!important}
 html body .pr-setup-picker>header h2{margin:0!important;font-size:21px!important}
 html body .pr-setup-picker>header button{min-height:44px!important;padding:6px 16px!important}
 html body .pr-setup-picker[data-setup-kind=match] .pr-setup-options{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(68px,1fr))!important;gap:8px!important;min-height:0!important;overflow:auto!important}
 html body .pr-setup-picker .pr-setup-options button{min-height:68px!important;height:auto!important;padding:6px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;gap:3px!important}
 html body .pr-setup-picker .pr-option-icon{font-size:19px!important;line-height:1!important}
 html body .pr-setup-picker .pr-setup-options strong{font-size:15px!important;line-height:1.2!important}
 html body .pr-setup-picker .pr-setup-options small{font-size:11px!important;line-height:1.2!important}
 /* Badge pages have one header region, then a scrollable collection. */
 html body .profile-stats-dialog:not(.stats-overview):not(.show-leaderboard):has(.wizard-badge-collection)[open]{inset:0!important;margin:0!important;width:100vw!important;height:100dvh!important;max-height:none!important;padding:8px 12px!important;display:block!important;overflow-y:auto!important;box-sizing:border-box}
 html body .profile-stats-dialog:has(.wizard-badge-collection) .chronicle-heading{position:sticky!important;top:-8px!important;z-index:3;display:grid!important;grid-template-columns:1fr auto!important;grid-template-rows:44px 44px!important;gap:6px!important;height:auto!important;min-height:94px!important;padding:0 0 6px!important;background:#2a203b!important;margin:0 0 10px!important}
 html body .profile-stats-dialog:where(:has(.wizard-badge-collection)) .chronicle-heading>div.chronicle-title{grid-area:1/1!important}
 html body .profile-stats-dialog:where(:has(.wizard-badge-collection)) .chronicle-heading>button.chronicle-back{grid-area:1/2!important;min-height:44px!important}
 html body .profile-stats-dialog:has(.wizard-badge-collection) .wizard-page-tabs{position:static!important;grid-area:2/1/3/3!important;display:flex!important;height:44px!important;margin:0!important;transform:none!important}
 html body .profile-stats-dialog:where(:has(.wizard-badge-collection)) .wizard-page-tabs button.wizard-page-tab{height:44px!important;min-height:44px!important;font-size:13px!important;padding:5px!important}
 html body .profile-stats-dialog .wizard-badge-collection{position:static!important;margin:8px 0!important}
 html body .profile-stats-dialog .wizard-badge-collection>h3{font-size:20px!important;margin:6px 0!important}
 html body .profile-stats-dialog .wizard-badge-note{font-size:12px!important;margin:6px 0 10px!important}
 html body .profile-stats-dialog .wizard-badge-card{padding:10px!important;gap:10px!important}
 html body .profile-stats-dialog .wizard-badge-card h4{font-size:17px!important;margin:3px 0!important}
 html body .profile-stats-dialog .wizard-badge-card p{font-size:12px!important;line-height:1.35!important}
 /* Keep leaderboard entirely above the movement thumb area, including eight-player games. */
 html body #ffa-leaderboard{display:block!important;top:6px!important;left:max(6px,env(safe-area-inset-left))!important;width:154px!important;padding:5px!important;max-height:calc(100dvh - 160px)!important;overflow-y:auto!important;pointer-events:auto;touch-action:pan-y;overscroll-behavior:contain}
 html body #ffa-leaderboard .ffa-row{min-height:19px!important;margin-top:1px!important;padding:1px 4px!important;grid-template-columns:16px minmax(0,1fr) 22px!important}
 html body #ffa-leaderboard .ffa-row strong{font-size:10px!important}
 html body #ffa-leaderboard .ffa-row b{font-size:12px!important}
 html body #ffa-leaderboard header{font-size:8px!important;padding:0 2px 3px!important}
 html body #ffa-leaderboard footer{display:none!important}
 html body #ffa-leaderboard .ffa-your-health{margin:4px 2px 0!important;font-size:9px!important}
 html body.practice-ffa #match .bottom{display:none!important}
 html body.arena-intro #ffa-leaderboard{visibility:hidden!important;pointer-events:none!important}
 html body #arena-intro{box-sizing:border-box!important;left:15%!important;right:10%!important;top:50%!important;bottom:auto!important;transform:translateY(-50%)!important;width:auto!important;padding:15px 20px!important;max-height:calc(100dvh - 90px)!important;overflow:auto!important}
 html body #arena-intro h2{font-size:clamp(24px,4vw,38px)!important;margin:7px 0!important;line-height:1.1!important}
 html body #arena-intro small{font-size:9px!important;letter-spacing:1.5px!important}
 html body #arena-intro p{font-size:13px!important;margin:8px 0!important}
 html body #arena-intro strong{font-size:12px!important;padding:6px 12px!important}
 /* Season tracks use the remaining height, not a fixed card height. */
 html body #season-pass-dialog[open]{inset:0!important;margin:0!important;width:100vw!important;height:100dvh!important;max-height:none!important;padding:8px 12px!important;box-sizing:border-box;display:flex!important;gap:6px!important}
 html body #season-pass-dialog .pass-header{height:40px!important;flex:0 0 40px!important;min-height:40px!important;padding-right:48px!important;align-items:center!important}
 html body #season-pass-dialog h2{font-size:22px!important;margin:0!important}
 html body #season-pass-dialog .season-pass-close{width:44px!important;height:44px!important;z-index:5}
 html body #season-pass-dialog :is(.pass-intro,.pass-eyebrow,.pass-footer){display:none!important}
 html body #season-pass-dialog .pass-toolbar{min-height:44px!important;flex-wrap:nowrap!important;font-size:11px!important;gap:8px!important}
 html body #season-pass-dialog .pass-toolbar :is(button,select){min-height:44px!important;min-width:44px!important}
 html body #season-pass-dialog .pass-roads{--tier-head:20px;--track-height:clamp(48px,calc((100dvh - 208px)/2),125px);padding:4px!important;flex:1!important;min-height:0!important}
 html body #season-pass-dialog .pass-labels{flex-basis:72px!important}
 html body #season-pass-dialog .pass-track-label{gap:2px!important;margin-bottom:4px!important;font-size:10px!important}
 html body #season-pass-dialog .pass-track-label small{display:none!important}
 html body #season-pass-dialog .pass-slot{gap:2px!important;padding:4px!important;margin-bottom:4px!important;min-height:44px!important}
 html body #season-pass-dialog .pass-slot strong{font-size:10px!important;line-height:1.15!important}
 html body #season-pass-dialog .pass-reward-seal{font-size:20px!important}
 html body #season-pass-dialog .pass-scroll{padding-bottom:3px!important}
 html body #season-pass-dialog .pass-progress{flex:0 0 42px!important;min-height:42px!important;padding:4px 8px!important;margin:0!important}
 html body #season-pass-dialog .pass-xp>small{display:none!important}
}

/* The old bottom vitals duplicate in-world bars and obstruct touch controls. */
body.touch-playing #match .hud>.fighter,body.touch-playing .academy-player-health{display:none!important}
@media (max-height:600px) and (max-width:1400px) and (orientation:landscape){
 html body #match .hud>.fighter,html body .academy-player-health{display:none!important}
}

@media (max-height:600px) and (max-width:1400px) and (orientation:landscape){
 html body #ffa-leaderboard[hidden]{display:none!important}
 html body #ffa-leaderboard .ffa-row.is-you{position:sticky;bottom:18px;background:#394a37;z-index:1}
 html body #ffa-leaderboard .ffa-your-health{position:sticky;bottom:0;background:#272334;padding:3px 0;z-index:2}
}

@media (max-height:380px) and (orientation:landscape){
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .bazaar-offer>h3,html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .bazaar-offer>small{display:none!important}
 html body #hub-dialog#hub-dialog #hub-content .reward-bazaar .bazaar-feature{padding:6px 10px!important}
 html body #season-pass-dialog .pass-slot :is(canvas,img){height:22px!important;width:28px!important;min-height:0!important;object-fit:contain}
 html body #season-pass-dialog .pass-slot strong{font-size:9px!important;max-width:100%;overflow-wrap:anywhere}
}
/* Treasure: a visual chest shelf, one opening area, and direct access to the selected shop chest. */
html body #hub-dialog#hub-dialog #hub-content .mt-vault{display:grid!important;grid-template-columns:minmax(0,1.65fr) minmax(240px,1fr)!important;gap:16px!important;height:100%!important;min-height:0!important}
html body #hub-dialog#hub-dialog #hub-content .vault-stage.chest-inventory{grid-template-rows:auto 78px minmax(0,1fr) auto auto!important;padding:18px!important;gap:10px!important;background:radial-gradient(ellipse at 50% 55%,#73549666,transparent 65%),linear-gradient(135deg,#342544,#1c182e)!important;border-radius:24px!important;overflow:auto!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-title{text-align:left!important;font-size:23px!important;letter-spacing:.01em}
html body #hub-dialog#hub-dialog #hub-content .inventory-dots{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px!important;height:auto!important;min-height:0!important;overflow:visible!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-dots button{position:relative;display:flex!important;flex-direction:column;align-items:center;justify-content:center;min-width:0!important;min-height:44px!important;height:100%!important;padding:4px!important;border:1px solid #aa8bc955!important;border-radius:12px!important;background:linear-gradient(#503b64,#30213f)!important;box-shadow:none!important;color:#dfcceb!important;font:12px/1.2 Georgia!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-dots button.active{border-color:#e9d28e!important;background:linear-gradient(#765782,#453152)!important;box-shadow:inset 0 0 0 2px #f5dba52b,0 0 16px #d4aeef22!important;color:#fff0bf!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-dots img{width:42px!important;height:36px!important;object-fit:contain}
html body #hub-dialog#hub-dialog #hub-content .inventory-dots b{position:absolute;right:4px;top:3px;min-width:18px;border-radius:8px;background:#20172c;color:#fde6aa;font:700 11px/18px system-ui}
html body #hub-dialog#hub-dialog #hub-content .inventory-wheel{display:block!important;overflow:visible!important;min-height:0!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-arrow{display:none!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-center{display:flex!important;gap:5px!important;height:100%!important;min-height:0!important;overflow:visible!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-scene{flex:1;min-height:75px!important;max-height:240px!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-chest{max-height:100%!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-rewards{margin:0!important;font-size:12px!important;line-height:1.3!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-actions{display:flex!important;gap:8px!important;flex-wrap:wrap}
html body #hub-dialog#hub-dialog #hub-content .inventory-actions button{flex:1;min-height:44px!important;font-size:14px!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-actions [hidden]{display:none!important}
html body #hub-dialog#hub-dialog #hub-content .vault-side{display:flex!important;flex-direction:column;gap:12px!important;overflow:auto!important;min-height:0!important}
html body #hub-dialog#hub-dialog #hub-content .vault-progress{flex:1;padding:18px!important;border-radius:22px!important;background:radial-gradient(ellipse at top,#765d4b44,transparent),#282036!important}
html body #hub-dialog#hub-dialog #hub-content .vault-shop{flex:none;min-height:62px!important;height:70px!important;border-radius:16px!important;padding:8px 14px!important}
html body #hub-dialog#hub-dialog #hub-content .vault-shop img{max-height:60px!important}
html body #hub-dialog#hub-dialog #hub-content .vault-side>.chest-guide-button{display:none!important}
.vault-odds-details{font-size:12px;color:#d6c4e5}.vault-odds-details summary{cursor:pointer;padding:10px 0;min-height:24px}.vault-odds-details .vault-drop-odds{font-size:12px!important}
/* Podium: stepped medal plinths and a lit champion stage, without empty vertical cards. */
body.practice-ffa #overlay#overlay:has(.ffa-podium){background:radial-gradient(ellipse at 50% 26%,#7f57704a,transparent 56%),linear-gradient(140deg,#211932,#151b31)!important;padding:20px!important}
body.practice-ffa #overlay#overlay:has(.ffa-podium) .modal{width:min(1080px,100%)!important;max-width:1080px!important;min-height:0!important;height:auto!important;grid-template-rows:36px auto 48px!important;gap:14px!important;padding:0!important}
body.practice-ffa #overlay#overlay .ffa-podium{min-height:0!important;grid-template-rows:auto auto auto!important;gap:12px!important;margin:6px 0!important;width:100%!important}
body.practice-ffa #overlay#overlay .ffa-podium-stages{display:flex!important;min-height:0!important;height:300px!important;width:100%!important;gap:18px!important;align-items:end!important}
body.practice-ffa #overlay#overlay .ffa-podium-card{--medal:#cca0e6;flex:1;max-width:none!important;height:88%!important;grid-template-rows:28px minmax(0,1fr) 30px 28px!important;padding:12px 12px 16px!important;border:1px solid color-mix(in srgb,var(--medal) 60%,transparent)!important;border-bottom:7px solid var(--medal)!important;border-radius:60px 60px 18px 18px!important;background:radial-gradient(ellipse at 50% 30%,#c6a9ef18,transparent 65%),linear-gradient(0deg,#493152 0 26%,#231e3899 26%)!important;box-shadow:inset 0 0 0 5px #eee1ff06,0 10px 25px #09091766!important}
body.practice-ffa #overlay#overlay .ffa-podium-card.place-1{--medal:#e9c56f;height:100%!important;background:radial-gradient(ellipse at 50% 15%,#f4d38f30,transparent 65%),linear-gradient(0deg,#66503c 0 24%,#372b3caa 24%)!important}
body.practice-ffa #overlay#overlay .ffa-podium-card.place-2{--medal:#a9cadc}
body.practice-ffa #overlay#overlay .ffa-podium-place{justify-self:center;background:#19172bcc;border:1px solid var(--medal);border-radius:30px;padding:5px 14px;font-size:12px;color:var(--medal);line-height:16px}
body.practice-ffa #overlay#overlay .ffa-podium-name{font:700 clamp(14px,1.7vw,21px)/28px Georgia!important;white-space:normal;overflow:hidden;max-height:28px}
body.practice-ffa #overlay#overlay .ffa-podium-score{align-self:center;justify-self:center;background:#17162777;border-radius:20px;padding:4px 16px!important;line-height:20px!important;font:700 14px/20px system-ui!important;color:#fff0c9}
body.practice-ffa #overlay#overlay .ffa-podium-help{min-height:44px!important;flex-wrap:wrap}
body.practice-ffa #overlay#overlay .ffa-celebrate{min-height:44px!important}
body.practice-ffa #overlay#overlay .ffa-podium-rest{gap:8px!important;max-width:none!important}
body.practice-ffa #overlay#overlay .ffa-compact-player{min-height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(#48355599,#292238);border-color:#af8ccb55;border-radius:12px;text-align:center}
/* Home rail has three actual rows; chat cannot collapse underneath the pass. */
html body #lobby.home-phone-fit .home-rank-rail:has(>#season-pass-open){display:flex!important;flex-direction:column!important;gap:12px!important;justify-content:flex-start!important}
html body #lobby.home-phone-fit .home-rank-rail:has(>#season-pass-open)>.home-social{flex:0 0 auto!important;min-height:68px!important;height:auto!important;margin:0!important;position:relative!important}
html body #lobby.home-phone-fit .home-rank-rail:has(>#season-pass-open)>#rank-road-open{flex:1 1 auto!important;min-height:180px!important;max-height:270px!important}
html body #lobby.home-phone-fit .home-rank-rail>#season-pass-open{flex:0 0 68px!important;min-height:68px!important;position:relative!important;margin:0!important}
@media(max-height:600px) and (orientation:landscape){
 html body #hub-dialog#hub-dialog #hub-content .mt-vault{grid-template-columns:minmax(0,1.7fr) minmax(210px,1fr)!important;gap:10px!important}
 html body #hub-dialog#hub-dialog #hub-content .vault-stage.chest-inventory{grid-template-rows:auto 54px minmax(0,1fr) auto auto!important;padding:9px!important;gap:5px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-title{font-size:18px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-dots img{height:25px!important;width:32px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-dots span{font-size:10px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-scene{min-height:48px!important;max-height:125px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-kind{font-size:15px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-rewards{display:none!important}
 html body #hub-dialog#hub-dialog #hub-content .vault-progress{padding:10px!important}
 html body #hub-dialog#hub-dialog #hub-content .vault-shop{height:54px!important;min-height:54px!important}
 html body #hub-dialog#hub-dialog #hub-content .vault-shop img{max-height:42px!important}
 body.practice-ffa #overlay#overlay:has(.ffa-podium){padding:12px 20px!important}
 body.practice-ffa #overlay#overlay:has(.ffa-podium) .modal{gap:8px!important;grid-template-rows:30px auto 44px!important}
 body.practice-ffa #overlay#overlay .ffa-podium-stages{height:210px!important;gap:12px!important}
 body.practice-ffa #overlay#overlay .ffa-podium-card{padding:6px 8px 10px!important;grid-template-rows:23px minmax(0,1fr) 25px 25px!important;border-radius:36px 36px 14px 14px!important}
 body.practice-ffa #overlay#overlay .ffa-podium-place{font-size:10px!important;padding:2px 10px!important}
 body.practice-ffa #overlay#overlay .ffa-podium{gap:7px!important}
 body.practice-ffa #overlay#overlay .ffa-podium-name{font-size:15px!important}
 body.practice-ffa #overlay#overlay .ffa-podium-rest{grid-template-columns:repeat(5,minmax(0,1fr))!important}
}


html body #hub-dialog#hub-dialog #hub-content .vault-stage.chest-inventory:has(>.inventory-summary){grid-template-rows:minmax(0,1fr)!important;overflow:hidden!important}

html body #hub-dialog#hub-dialog #hub-content .inventory-center>.chest-odds{position:static!important;inset:auto!important;margin:0!important;padding:0!important;max-width:100%!important;width:auto!important;background:none!important;box-shadow:none!important;border:0!important;flex:none!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-center>.chest-odds summary{min-height:22px!important;height:auto!important;padding:2px 12px!important;font:11px/18px system-ui!important;background:none!important;border:0!important;box-shadow:none!important;cursor:pointer}
html body #hub-dialog#hub-dialog #hub-content .inventory-center>.chest-odds[open]{position:absolute!important;inset:10px!important;width:auto!important;z-index:10!important;overflow:auto!important;padding:15px!important;border:1px solid #c9b188!important;border-radius:16px!important;background:#282035!important}
html body #hub-dialog#hub-dialog #hub-content .vault-progress{flex:0 0 auto!important}
html body #hub-dialog#hub-dialog #hub-content .vault-odds-details summary{background:none!important;box-shadow:none!important;border:0!important;font-size:12px!important;padding:5px!important;min-height:24px!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-scene .inventory-chest{max-width:none!important;width:100%!important;height:100%!important;object-fit:contain!important}

html body #hub-dialog#hub-dialog #hub-content .vault-stage.chest-inventory{overflow-x:hidden!important;box-sizing:border-box!important;min-width:0!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-scene .inventory-chest{inset:0!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-center>.chest-odds[open] p{position:static!important;inset:auto!important;max-height:none!important;background:none!important;box-shadow:none!important}
@media(max-height:600px) and (orientation:landscape){
 html body #hub-dialog#hub-dialog #hub-content .inventory-center{display:grid!important;grid-template-columns:42% minmax(0,1fr)!important;grid-template-rows:1fr auto 1fr!important;column-gap:12px!important;align-content:center!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-scene{grid-row:1/4!important;grid-column:1!important;min-height:70px!important;max-height:160px!important;height:100%!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-kind{grid-row:1!important;align-self:end!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-count{grid-row:2!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-center>.chest-odds{grid-row:3!important;align-self:start!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-actions button{font-size:12px!important}
 body.practice-ffa #overlay#overlay .ffa-podium-stages{height:190px!important}
}
html body #hub-dialog#hub-dialog #hub-content .chest-inventory [hidden]{display:none!important}

@media(max-height:360px) and (orientation:landscape){html body #hub-dialog#hub-dialog #hub-content .vault-stage.chest-inventory{grid-template-rows:auto 44px minmax(70px,1fr) auto auto!important;padding:6px!important;gap:3px!important}html body #hub-dialog#hub-dialog #hub-content .inventory-title{font-size:16px!important}html body #hub-dialog#hub-dialog #hub-content .inventory-dots img{height:22px!important}}

/* Verified FFA rewards share the existing podium without pushing exit controls offscreen. */
body.practice-ffa #overlay#overlay:has(.ffa-podium){display:block!important;overflow:hidden!important;padding:14px!important}
body.practice-ffa #overlay#overlay:has(.ffa-podium) .modal{height:calc(100dvh - 28px)!important;min-height:0!important;grid-template-rows:32px minmax(0,1fr) 44px!important;padding:14px!important;gap:10px!important}
body.practice-ffa #overlay#overlay #description:has(.ffa-podium){min-height:0!important;overflow:visible!important;gap:4px}
body.practice-ffa #overlay#overlay .ffa-podium{grid-template-rows:minmax(0,1fr) 32px 38px!important;gap:6px!important;min-height:0!important}
body.practice-ffa #overlay#overlay .ffa-podium-stages{height:100%!important;min-height:0!important}
body.practice-ffa #overlay#overlay .ffa-podium-help,body.practice-ffa #overlay#overlay .ffa-celebrate{min-height:32px!important}
body.practice-ffa #overlay#overlay .ffa-compact-player{min-height:28px!important}
body.practice-ffa #overlay#overlay #ffa-verified-rewards{max-height:110px;min-height:28px;flex-shrink:0}
@media(max-height:500px){
body.practice-ffa #overlay#overlay:has(.ffa-podium) .modal{grid-template-rows:24px minmax(0,1fr) 40px!important;padding:10px!important;gap:6px!important}
body.practice-ffa #overlay#overlay .ffa-podium{grid-template-rows:minmax(0,1fr) 24px 28px!important;gap:3px!important}
body.practice-ffa #overlay#overlay .ffa-podium-card{grid-template-rows:18px minmax(0,1fr) 20px 16px!important;padding:3px 6px 6px!important;border-radius:26px 26px 10px 10px!important}
body.practice-ffa #overlay#overlay .ffa-podium-name{font-size:12px!important;line-height:18px!important}
body.practice-ffa #overlay#overlay .ffa-podium-score{font-size:10px!important;line-height:14px!important;padding:0 4px!important}
body.practice-ffa #overlay#overlay .ffa-podium-place{font-size:9px!important;line-height:14px!important;padding:1px 6px!important}
body.practice-ffa #overlay#overlay .ffa-podium-help,body.practice-ffa #overlay#overlay .ffa-celebrate,body.practice-ffa #overlay#overlay .ffa-compact-player{min-height:22px!important;font-size:10px!important}
body.practice-ffa #overlay#overlay #ffa-verified-rewards{max-height:46px;font-size:10px}
}

/* Keep the FFA result heading centered above all three podium places. */
body.practice-ffa #overlay#overlay:has(.ffa-podium) .modal{grid-template-rows:62px minmax(0,1fr) 44px!important}
body.practice-ffa #overlay#overlay:has(.ffa-podium) #overline{grid-area:1/1/2/4!important;justify-self:center!important;align-self:start!important;margin:0!important;padding:4px 18px!important;font-size:10px!important;line-height:14px!important;min-height:0!important;width:max-content!important}
body.practice-ffa #overlay#overlay:has(.ffa-podium) #title{grid-area:1/1/2/4!important;justify-self:center!important;align-self:end!important;text-align:center!important;margin:0!important;max-width:100%!important;font-size:clamp(20px,2.5vw,30px)!important;line-height:1.1!important}
@media(max-height:500px){body.practice-ffa #overlay#overlay:has(.ffa-podium) .modal{grid-template-rows:46px minmax(0,1fr) 40px!important}body.practice-ffa #overlay#overlay:has(.ffa-podium) #overline{font-size:9px!important;line-height:12px!important;padding:2px 12px!important}body.practice-ffa #overlay#overlay:has(.ffa-podium) #title{font-size:20px!important}}
/* Chest inventory: a readable shelf and one clear opening action. */
html body #hub-dialog#hub-dialog #hub-content .vault-stage.chest-inventory:not(:has(>.inventory-summary)){
 grid-template-rows:auto auto 82px minmax(100px,1fr) auto auto!important;
 gap:10px!important;padding:18px!important;overflow:hidden!important;
}
.inventory-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.inventory-hint{margin:0!important;font:12px/1.4 system-ui!important;color:#cbb9d7!important}
.inventory-hint.has-rewards{color:#ffe3a2!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-heading .inventory-rank-link{font:700 12px/1.2 system-ui!important;min-height:36px!important;padding:6px 12px!important;border:1px solid #e8c27c!important;border-radius:12px!important;color:#fff0c4!important;background:#503354!important;box-shadow:0 0 14px #e2b85d55!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-dots{gap:8px!important;align-items:stretch!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-dots button{height:82px!important;min-height:0!important;padding:7px 4px!important;gap:3px!important;overflow:hidden!important;box-sizing:border-box!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-dots .inventory-chest-name{display:block!important;position:static!important;flex:none!important;width:auto!important;height:auto!important;min-height:16px!important;max-width:100%;border-radius:0!important;background:transparent!important;font:700 11px/1.25 Georgia,serif!important;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
html body #hub-dialog#hub-dialog #hub-content .inventory-dots img{flex:none!important;width:45px!important;height:38px!important;margin:0!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-dots button.chest-empty{opacity:.66}
html body #hub-dialog#hub-dialog #hub-content .inventory-dots button.chest-ready{border-color:#dbbb77!important;background:linear-gradient(#634968,#38283e)!important;box-shadow:inset 0 0 12px #eac57616,0 0 9px #eac57630!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-dots button.active{opacity:1;border-color:#ffe5a1!important;box-shadow:inset 0 0 0 1px #f7d483,0 0 12px #c59ced66!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-dots b{background:#21172c!important;color:#f7dfac!important;font:700 11px/18px system-ui!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-center{display:grid!important;grid-template-columns:minmax(100px,.9fr) minmax(0,1fr)!important;grid-template-rows:1fr auto auto auto 1fr!important;gap:5px 14px!important;align-content:center;align-items:center;justify-items:start;position:relative;background:radial-gradient(ellipse at 25% 50%,#b88adb20,transparent 65%);overflow:hidden!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-center>.inventory-scene{grid-column:1;grid-row:1/6;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-center>.inventory-kind{grid-column:2;grid-row:2;font:700 clamp(17px,1.7vw,25px)/1.2 Georgia!important;text-align:left!important;color:#f8e5b5!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-center>.inventory-count{grid-column:2;grid-row:3;font:700 12px/1.3 system-ui!important;color:#bdacd1!important;text-align:left!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-center.has-rewards>.inventory-count{color:#ffe5a1!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-center>.inventory-rewards{display:none!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-center>.chest-odds{grid-column:2;grid-row:4;text-align:left!important;width:100%;font:12px/1.4 system-ui!important}
html body #hub-dialog#hub-dialog #hub-content .chest-odds summary{text-align:left!important;color:#d6c1e8!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-center>.chest-odds[open] p{position:absolute!important;inset:auto 8px 8px 8px!important;max-height:calc(100% - 24px)!important;overflow:auto!important;z-index:5;background:#241a32;box-shadow:0 0 0 1px #be9c66;padding:12px!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;align-items:stretch}
html body #hub-dialog#hub-dialog #hub-content .inventory-actions button{width:100%!important;min-width:0!important;min-height:46px!important;height:auto!important;margin:0!important;font:700 16px/1.2 Georgia!important;text-shadow:none!important;display:flex;align-items:center;justify-content:center}
html body #hub-dialog#hub-dialog #hub-content .inventory-actions .inventory-shop{grid-column:1/-1;min-height:32px!important;font:12px/1.2 system-ui!important;background:transparent!important;border:0!important;box-shadow:none!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-actions .inventory-open:disabled{color:#bdaec9!important;background:#302739!important;border-color:#685971!important;opacity:1!important;box-shadow:none!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-actions .inventory-all{background:linear-gradient(#65517e,#392744)!important;color:#f7e5bd!important}
html body #hub-dialog#hub-dialog #hub-content .inventory-actions .inventory-all:disabled{opacity:.45!important}
html body #hub-dialog#hub-dialog #hub-content .vault-stage.chest-inventory:has(>.inventory-summary)>.inventory-heading,
html body #hub-dialog#hub-dialog #hub-content .vault-stage.chest-inventory:has(>.inventory-summary)>.inventory-hint{display:none!important}
body #hub-dialog[data-tab=rewards] .rank-reward-party.rank-reward-ready{border:1px solid #e9c786!important;box-shadow:0 0 18px #d3ae6b55!important}
body #hub-dialog[data-tab=rewards] .academy-road-link.claim-notice{border-color:#f5d18b!important;box-shadow:0 0 16px #d6b76e66!important}
@media(max-height:550px){
 html body #hub-dialog#hub-dialog #hub-content .vault-stage.chest-inventory:not(:has(>.inventory-summary)){grid-template-rows:auto auto 58px minmax(64px,1fr) auto auto!important;gap:5px!important;padding:10px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-title{font-size:18px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-dots button{height:58px!important;padding:3px!important;gap:0!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-dots img{width:30px!important;height:27px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-dots .inventory-chest-name{font-size:10px!important;line-height:14px!important;min-height:14px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-center{gap:2px 9px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-center>.inventory-kind{font-size:16px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-actions button{min-height:38px!important;font-size:13px!important}
 .inventory-hint{font-size:10px!important}
}
@media(max-height:360px){
 html body #hub-dialog#hub-dialog #hub-content .vault-stage.chest-inventory:not(:has(>.inventory-summary)){grid-template-rows:24px 12px 46px minmax(0,1fr) auto!important;gap:3px!important;padding:6px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-heading .inventory-rank-link{min-height:24px!important;font-size:10px!important;padding:3px 6px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-dots button{height:46px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-dots img{height:24px!important;width:27px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-dots .inventory-chest-name{font-size:8px!important;min-height:11px!important;line-height:11px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-center>.inventory-kind{font-size:12px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-center>.inventory-count,html body #hub-dialog#hub-dialog #hub-content .inventory-center>.chest-odds{font-size:10px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-actions button{min-height:30px!important;font-size:11px!important;padding:3px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-actions .inventory-shop{min-height:18px!important}
 html body #hub-dialog#hub-dialog #hub-content .inventory-status:empty{display:none!important}
}

@media(max-height:500px){
 html body #ffa-leaderboard.ffa-many:not([hidden]){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:2px 5px!important;width:min(270px,42vw)!important;max-height:none!important;overflow:hidden!important;pointer-events:none!important}
 html body #ffa-leaderboard.ffa-many>header{grid-column:1/-1}
 html body #ffa-leaderboard.ffa-many .ffa-row{position:static!important;grid-template-columns:12px minmax(0,1fr) 15px!important;gap:3px!important;min-height:24px!important;padding:1px 3px!important;margin:0!important}
 html body #ffa-leaderboard.ffa-many .ffa-row small{font-size:8px!important}
}

/* Top four and personal placement fit without a scrolling leaderboard. */
html body :is(#ffa-leaderboard,.academy-ffa-board).ffa-compact{display:block!important;box-sizing:border-box;width:clamp(150px,19vw,230px)!important;max-height:none!important;overflow:visible!important;pointer-events:none!important;transition:opacity .15s ease}
html body :is(#ffa-leaderboard,.academy-ffa-board).ffa-compact[hidden]{display:none!important}
html body :is(#ffa-leaderboard,.academy-ffa-board).actor-under-board{opacity:.22}
.ffa-more{font:10px system-ui;text-align:center;color:#dacbaf;padding:3px 0 0}
.ffa-personal{border-top:1px dashed #c5a565!important;margin-top:5px!important}
@media(max-height:500px){html body :is(#ffa-leaderboard,.academy-ffa-board).ffa-compact{top:44px!important;left:max(6px,env(safe-area-inset-left))!important;width:154px!important;padding:5px!important}html body .ffa-compact :is(.ffa-row,.academy-ffa-row){position:static!important;min-height:22px!important;padding:1px 4px!important;margin:1px 0!important;font-size:10px!important;grid-template-columns:14px minmax(0,1fr) 20px!important}html body .ffa-compact :is(.ffa-row,.academy-ffa-row) small{font-size:8px!important}html body .ffa-compact :is(footer,.academy-ffa-footer){display:none!important}}

@media(max-height:500px){body:where([data-ffa-compact]):not(._f):not(._g) #mobile-arena-map{top:48px!important;right:max(7px,env(safe-area-inset-right))!important;left:auto!important;bottom:auto!important}}
