/* Portrait battle fills the available browser viewport. Camp and desktop keep their layout. */
@media(max-width:820px) and (orientation:portrait){
 body.immersive-combat.in-game.in-battle{--battle-safe-top:env(safe-area-inset-top,0px);--battle-safe-bottom:env(safe-area-inset-bottom,0px);--deck-bottom:calc(var(--battle-safe-bottom) + 56px);padding:0;height:100dvh;overflow:hidden;background:#172f2c}
 body.immersive-combat.in-battle main{position:fixed;inset:0;padding:0;margin:0;width:100%;height:100%;display:block}
 body.immersive-combat.in-battle #game,body.immersive-combat.in-battle .game-layout,body.immersive-combat.in-battle .battle-column{display:block;height:100%;width:100%;margin:0;padding:0}
 body.immersive-combat.in-battle .arena{position:absolute;inset:0;width:100%;height:100%;max-height:none;border:0;border-radius:0;box-shadow:none}
 body.immersive-combat.in-battle .topbar{position:fixed;top:var(--battle-safe-top);left:0;right:0;width:100%;height:44px;min-height:44px;margin:0;padding:0 12px;z-index:35;border:0;border-radius:0;background:linear-gradient(#142b33e8,#142b3380);color:#fff9e2}
 body.immersive-combat.in-battle .battle-summary small{color:#e1e9cf}
 body.immersive-combat.in-battle .topbar .icon-button{color:#fff9e2;border:0;background:transparent}
 body.immersive-combat.in-battle .party-panel{position:fixed;top:calc(var(--battle-safe-top) + 46px);left:12px;right:12px;z-index:25;padding:4px 7px!important;min-height:0!important;border:0;border-radius:6px;background:#132c31b8;color:#fff7db;box-shadow:none;pointer-events:none}
 body.immersive-combat.in-battle .party-member:has(.rescue){min-height:0}
 body.immersive-combat.in-battle .party-member .rescue,body.immersive-combat.in-battle .member-info>small,body.immersive-combat.in-battle .member-status{display:none}
 body.immersive-combat.in-battle .member-head strong{font-size:9px;line-height:12px;color:#fff7db}
 body.immersive-combat.in-battle .party-panel .meter{height:3px;margin-top:2px}
 body.immersive-combat.in-battle .boss-hud{top:calc(var(--battle-safe-top) + 79px);left:12px;right:12px;width:auto;transform:none;background:#142b33d6;color:#fff5d6;height:33px;border-radius:7px;z-index:23}
 body.immersive-combat.in-battle .encounter-progress{top:calc(var(--battle-safe-top) + 66px);left:20px;right:20px;font-size:8px;z-index:26;text-align:center}
 body.immersive-combat.in-battle .telegraph,body.immersive-combat.in-battle .mechanic-banner,body.immersive-combat.in-battle .trial-banner{top:calc(var(--battle-safe-top) + 120px);left:12px;right:12px;width:auto;max-width:none;transform:none;z-index:26}
 body.immersive-combat.in-battle .mechanic-banner{bottom:auto}
 body.immersive-combat.in-battle .arena:has(.telegraph:not([hidden])) .mechanic-banner{display:none}
 body.immersive-combat.in-battle .tactical-arena .boss-actor.mechanic-actor{width:62%;max-width:300px}
 body.immersive-combat.in-battle .tactical-arena .actors,body.immersive-combat.in-battle .tactical-arena .fx{top:calc(var(--battle-safe-top) + 154px);bottom:calc(var(--battle-safe-bottom) + 264px);--tactical-clearance:0px}
 body.immersive-combat.in-battle .tactical-arena .hero-actor{bottom:14px!important;height:clamp(70px,37%,150px)!important}
 body.immersive-combat.in-battle .tactical-arena .boss-actor{top:0;bottom:auto!important;height:clamp(90px,48%,220px)!important;width:45%;max-width:230px}
 body.immersive-combat.in-battle .lane-zones{top:calc(var(--battle-safe-top) + 174px);bottom:calc(var(--battle-safe-bottom) + 248px)}
 body.immersive-combat.in-battle .lane-zones span{top:0;font-size:10px}
 body.immersive-combat.in-battle .control-panel{position:fixed;inset:0;margin:0;padding:0;z-index:30;background:none;border:0;border-radius:0;box-shadow:none;pointer-events:none}
 body.immersive-combat.in-battle .control-panel button{pointer-events:auto;touch-action:none}
 body.immersive-combat.in-battle .player-heading{display:contents}
 body.immersive-combat.in-battle .player-heading>div:first-child,body.immersive-combat.in-battle #growth-button{display:none}
 body.immersive-combat.in-battle #row-switch{position:absolute;left:12px;bottom:calc(var(--deck-bottom) + 116px);width:calc((100% - 39px)/4);height:50px;min-height:50px;border-radius:14px;background:#213f4cdb;color:#e1f5ec;border:1px solid #aad7ccaa;box-shadow:0 3px 8px #071e2955;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
 body.immersive-combat.in-battle #row-switch strong{display:block;font-size:12px;line-height:17px;color:inherit}
 body.immersive-combat.in-battle #row-switch small{display:block;font-size:8px;line-height:12px;color:#deead9}
 body.immersive-combat.in-battle .resources{position:absolute;bottom:calc(var(--battle-safe-bottom) + 229px);left:12px;right:12px;margin:0;padding:5px 8px;border-radius:8px;background:#132c31c7;gap:10px;color:#fff7db}
 body.immersive-combat.in-battle .resources span{font-size:9px;line-height:12px;color:inherit}
 body.immersive-combat.in-battle .resources .meter{height:4px}
 body.immersive-combat.in-battle .combat-deck{position:absolute;bottom:var(--deck-bottom);left:12px;right:12px;height:166px;display:grid;grid-template-rows:50px 50px 56px;grid-template-columns:repeat(12,minmax(0,1fr));gap:5px;margin:0}
 body.immersive-combat.in-battle .thumb-label{display:none}
 body.immersive-combat.in-battle .combat-deck .movement{grid-column:1/7;grid-row:2;gap:5px}
 body.immersive-combat.in-battle .combat-deck .movement button{background:#153a3fd6;border:1px solid #c0e0cf99;color:#f4ffe7;box-shadow:0 3px 8px #07202a55;font-size:14px;min-height:50px;border-radius:14px}
 body.immersive-combat.in-battle .combat-deck .movement button.selected{background:#667f3eea;border:2px solid #e8f3ae}
 body.immersive-combat.in-battle .combat-deck .movement button.danger{background:#8e323eda;border:2px dashed #ffc9a6;color:#fff}
 body.immersive-combat.in-battle .combat-deck .movement button.opening{background:#e1bc60e8;color:#3e2d0d;border:2px solid #fff1a2}
 body.immersive-combat.in-battle .combat-deck .action{background:#163b3fe0;color:#fff6df;border:1px solid #b5dbcd9c;box-shadow:0 3px 8px #071e2955;border-radius:14px;padding:4px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
 body.immersive-combat.in-battle .combat-deck .action small{color:#e0e9cd}
 body.immersive-combat.in-battle .combat-deck .action strong{color:#fff5df}
 body.immersive-combat.in-battle .combat-deck .action-icon{color:#b8e2cf}
 body.immersive-combat.in-battle .combat-deck [data-action="potion"]{grid-column:4/7;grid-row:1}
 body.immersive-combat.in-battle .combat-deck [data-action="awaken"]{grid-column:7/10;grid-row:1}
 body.immersive-combat.in-battle .combat-deck [data-action="support"]{grid-column:10/13;grid-row:1}
 body.immersive-combat.in-battle .combat-deck [data-action="dodge"]{grid-column:1/4;grid-row:3}
 body.immersive-combat.in-battle .combat-deck [data-action="guard"]{grid-column:4/7;grid-row:3}
 body.immersive-combat.in-battle .combat-deck [data-action="strike"]{grid-column:7/13;grid-row:2/4;padding:8px 8px 25px;background:linear-gradient(145deg,#fff1bedf,#e8be59ef);color:#503b14;border:2px solid #fff0a2;border-radius:26px;box-shadow:0 4px 0 #6b5326b0,0 8px 18px #142c3070}
 body.immersive-combat.in-battle .combat-deck [data-action="strike"] strong{font-size:18px;color:#503b14}
 body.immersive-combat.in-battle .combat-deck [data-action="strike"] small{color:#574c31;font-size:10px}
 body.immersive-combat.in-battle .combat-deck [data-action="strike"] .action-icon{color:#648f71}
 body.immersive-combat.in-battle .combat-deck [data-action="support"],body.immersive-combat.in-battle .combat-deck [data-action="awaken"],body.immersive-combat.in-battle .combat-deck [data-action="potion"]{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;text-align:center}
 body.immersive-combat.in-battle .combat-deck :is([data-action="support"],[data-action="awaken"],[data-action="potion"]) .action-icon{display:none}
 body.immersive-combat.in-battle .combat-deck :is([data-action="support"],[data-action="awaken"],[data-action="potion"]) :is(strong,small){align-self:center}
 body.immersive-combat.in-battle .control-foot{position:absolute;bottom:calc(var(--battle-safe-bottom) + 6px);left:12px;right:12px;margin:0;display:flex;gap:6px;height:44px}
 body.immersive-combat.in-battle .control-foot button{font-size:10px;min-height:44px;padding:4px 8px;border:1px solid #d5e8c974;background:#163b3fce;color:#f4ffe1;border-radius:12px}
 body.immersive-combat.in-battle #combat-hint{position:fixed;top:calc(var(--battle-safe-top) + 120px);left:12px;right:12px;max-width:none;padding:4px 8px;background:#142c35d6;color:#fff3b4;border-radius:8px;font-size:10px;line-height:14px;text-align:center}
 body.immersive-combat.in-battle:has(.telegraph:not([hidden]),.mechanic-banner:not([hidden]),.trial-banner:not([hidden])) #combat-hint{display:none}
 body.immersive-combat.in-battle .signal-tray{pointer-events:auto;position:fixed;bottom:calc(var(--battle-safe-bottom) + 56px);left:12px;right:12px;z-index:45;background:#f7f0dcef}
 body.immersive-combat.in-battle .expedition-bar{position:fixed;top:calc(var(--battle-safe-top) + 44px);left:8px;right:8px;z-index:45;padding:8px;background:#f7f0dcf5;border-radius:12px;box-shadow:0 7px 18px #1235}
 body.immersive-combat.in-battle #reconnect-banner{position:fixed;top:calc(var(--battle-safe-top) + 112px);left:12px;right:12px;z-index:46;padding:8px}
 body.immersive-combat.in-battle .toast{bottom:calc(var(--battle-safe-bottom) + 270px);z-index:60}
 body.immersive-combat.hand-left.in-battle .combat-deck .movement{grid-column:7/13}
 body.immersive-combat.hand-left.in-battle .combat-deck [data-action="strike"]{grid-column:1/7}
 body.immersive-combat.hand-left.in-battle .combat-deck [data-action="dodge"]{grid-column:7/10}
 body.immersive-combat.hand-left.in-battle .combat-deck [data-action="guard"]{grid-column:10/13}
 body.immersive-combat.hand-left.in-battle .combat-deck [data-action="support"]{grid-column:1/4}
 body.immersive-combat.hand-left.in-battle .combat-deck [data-action="awaken"]{grid-column:4/7}
 body.immersive-combat.hand-left.in-battle .combat-deck [data-action="potion"]{grid-column:10/13}
 body.immersive-combat.hand-left.in-battle #row-switch{left:auto;right:calc(12px + (100% - 19px)/4)}
}
