/* A single measured footer reserves its actual height in the canvas and dialogue layer. */
.battle-footer{position:absolute;z-index:21;bottom:0;left:0;right:0;background:#091b2e;color:#eff5ff;border-top:1px solid #48617b;padding:0 max(12px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(12px,env(safe-area-inset-left))}
.battle-footer .world-buffs{position:static;height:27px;max-width:none;display:flex;align-items:center;flex-wrap:nowrap;gap:6px;overflow:auto;scrollbar-width:none;pointer-events:auto;touch-action:pan-x}
.battle-footer .world-buffs span{flex:none;white-space:nowrap;border:0;background:#19354c;color:#b9eddf;font:600 10px/1.2 var(--body);padding:4px 8px}
.world-buffs[data-empty=true]:after{content:'Atacas y recoges automáticamente';font:500 10px var(--body);color:#9eb4cb}
.battle-controls{display:flex;gap:8px;align-items:stretch;padding-bottom:9px}
.battle-help{margin-right:auto;align-self:center;font:600 12px var(--body);color:#d9e6f5}.battle-help span{display:block;margin-top:6px;font-size:10px;color:#a5bcd5}
.ability-button{position:relative;min-height:72px;min-width:0;border:1px solid #91aec9;border-bottom:3px solid #304b66;border-radius:7px;background:linear-gradient(#2c4964,#19314b);color:#f1f6ff;box-shadow:inset 0 0 0 2px #e1cb9d12;text-align:left;padding:8px 12px 13px;touch-action:manipulation;overflow:hidden}
.ability-button:disabled{opacity:1;color:#bed0e4;cursor:default;background:linear-gradient(#203449,#11253b);border-color:#526b84}
.ability-button strong{display:block;font:800 13px/1.2 var(--heading)}
.ability-button small{font:600 10px/1.3 var(--body);color:inherit;white-space:nowrap}
.ability-button kbd{position:absolute;right:8px;top:9px;opacity:.8;font-size:8px}
.ability-button:focus-visible{outline:3px solid #fff1c8;outline-offset:2px}
.ability-button:active:not(:disabled){transform:translateY(1px)}
.ability-button.evade{width:100px;text-align:center;flex:none;padding:7px 8px 13px}
.ability-button.evade svg{display:block;margin:0 auto 3px;width:20px;height:17px;fill:none;stroke:#9be4ff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.ability-button.evade strong{font-size:12px}.ability-button.evade kbd{display:none}
.ability-button.superpower{width:330px;border-color:#be9a69}
.ability-heading{display:flex;gap:10px;justify-content:space-between;align-items:center;padding-right:55px;margin-bottom:5px}
.ability-heading b{font:800 9px var(--heading);letter-spacing:.8px;color:#ffcb89}
.ability-effect{display:block;font:500 10px/1.4 var(--body);margin-top:3px}
.ability-meter{position:absolute;bottom:4px;left:9px;right:9px;height:4px;border-radius:2px;background:#06172a;overflow:hidden}
.ability-meter>span{height:100%;display:block;background:#8edbf7;transition:width .1s linear}
.superpower .ability-meter>span{background:#f9bf76}
.superpower[data-ready=true]{background:linear-gradient(#ffc175,#f2904c);color:#11253a;border-color:#f8d69d;box-shadow:0 0 12px #fbab5933,inset 0 0 0 2px #ffe3b330}
.superpower[data-ready=true] .ability-heading b{color:#263c50}.superpower[data-ready=true] .ability-meter>span{background:#31502c}
.battle-footer .combat-dock{position:static;height:106px;padding:10px 0 0;border-top:1px solid #38536b;gap:0 18px;background:none;grid-template-rows:1fr 20px}
.in-game .game-topline{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-top:max(6px,env(safe-area-inset-top));height:calc(50px + env(safe-area-inset-top))}
.in-game .wave-status{top:calc(55px + env(safe-area-inset-top));background:#102941e8;border-color:#586a74;border-radius:4px;box-shadow:none}
.in-game .wave-status strong{color:#e4d2ad}.in-game .wave-status span{color:#afc4d8}
.in-game .boss-health{top:calc(90px + env(safe-area-inset-top))}
.in-game .touch-guide{bottom:calc(var(--dock-height) + 10px)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#hub-canvas{touch-action:none;-webkit-touch-callout:none;user-select:none}
.hub-world .floating-joystick{z-index:6}
@media(pointer:coarse){.ability-button kbd{display:none}.ability-heading{padding-right:0}}
@media(prefers-reduced-motion:reduce){.ability-meter>span{transition:none}}

.in-game .combo{top:calc(86px + env(safe-area-inset-top));left:14px}
.boss-health.enraged{border-color:#FF8D63;box-shadow:0 0 18px #FF6B3526}.boss-health.enraged #boss-percent{color:#FFBE96;font-weight:800}

.ability-emblem,.ability-countdown,.mobile-control-label{display:none}
