/* QVIRO 1.5 — agreed mobile battle layout and real combat feedback. */
body:has(#battle.view.active) .qv-profile-bar{display:none}
body:has(#battle.view.active) header{height:54px;padding-top:5px;padding-bottom:5px}
body:has(#battle.view.active) header h1{font-size:21px}
body:has(#battle.view.active) header .tag{font-size:8px;margin-top:4px}
body:has(#battle.view.active) .resources{gap:5px}
body:has(#battle.view.active) .res{padding:5px 7px;font-size:11px}
#battle.view.active{height:calc(100dvh - 54px - 66px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:6px 9px 2px;gap:5px;overflow:hidden;min-height:0}
#battle .qv-battle-title{min-height:29px;gap:10px}
#battle .qv-battle-title h2{color:#f3c288;font-size:18px;margin:0}
#battle .qv-battle-title .btn{min-height:31px;padding:5px 12px;font-size:11px}
#battle .battle-art{position:relative;flex:0 0 clamp(154px,24dvh,252px);border:1px solid #4d7770;border-radius:15px;overflow:hidden;background:linear-gradient(180deg,#0d1e2a0a,#0c1f24aa),var(--scene-bg,url('./assets/backgrounds/battle-forest.svg')) center/cover no-repeat!important}
#battle .battle-art.qv-3d-ready{background:linear-gradient(180deg,#102e3503,#0b1d2677),var(--scene-bg,url('./assets/backgrounds/battle-forest.svg')) center/cover no-repeat!important}
#battle .qv-battle-status{position:absolute;z-index:5;display:grid;gap:4px;min-width:120px;max-width:48%;padding:7px 9px;border:1px solid #8da8a064;background:#09232bcf;border-radius:10px;box-shadow:0 4px 16px #091019aa;pointer-events:none}
#battle .qv-battle-status .row{gap:5px;font-size:10px;line-height:1.15;flex-wrap:wrap}
#battle .qv-battle-status strong{font-size:11px}
#battle .qv-battle-status .progress{height:7px;margin:0}
#battle .qv-enemy-hud{top:8px;right:8px}
#battle .qv-player-hud{left:8px;bottom:8px}
#battle .qv-player-hud .progress span{background:linear-gradient(90deg,#69bfb1,#bcf1d5)}
#battle .qv-battle-turn{position:absolute;z-index:5;left:10px;top:8px;max-width:46%;border-radius:7px;background:#0e2935c9;border:1px solid #ffffff2b;color:#f3ddb1;padding:5px 7px;font-size:10px;pointer-events:none}
#battle .qv-battle-feedback{position:absolute;z-index:7;top:44%;left:50%;transform:translate(-50%,-50%) scale(.9);padding:9px 14px;border:1px solid #f0ad81;border-radius:11px;background:#221f28e8;color:#ffdfac;font-size:19px;font-weight:850;text-align:center;white-space:nowrap;opacity:0;pointer-events:none;text-shadow:0 1px 8px #211013;box-shadow:0 6px 16px #0006}
#battle .qv-battle-feedback.is-visible{animation:qv-combat-float .95s ease-out both}
#battle .qv-battle-feedback.shield{border-color:#83d4cc;color:#bbf7ec}
#battle .qv-battle-feedback.critical{border-color:#fff0a5;color:#ffdd77}
#battle .battle-art.enemy-attacking{animation:qv-enemy-impact .52s ease-in-out}
@keyframes qv-combat-float{0%{opacity:0;transform:translate(-50%,-25%) scale(.78)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}75%{opacity:1;transform:translate(-50%,-65%) scale(1)}100%{opacity:0;transform:translate(-50%,-95%) scale(.97)}}
@keyframes qv-enemy-impact{0%,100%{filter:brightness(1)}40%{filter:brightness(1.45) saturate(1.3)}}
#battle .qv-gem-legend{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;flex:0 0 auto}
#battle .qv-gem-guide{min-width:0;padding:5px 1px;border:1px solid #496b71;border-radius:9px;background:linear-gradient(135deg,#1b3437,#102530);display:grid;place-items:center;gap:1px;color:#dbe5db}
#battle .qv-gem-guide span{font-size:20px;line-height:1.05}
#battle .qv-gem-guide strong{font-size:10px;font-weight:700}
#battle .qv-gem-guide small{font-size:9px;color:#b9cfbe;line-height:1.15}
#battle .qv-gem-guide:focus-visible,#battle .qv-gem-guide.is-selected{outline:2px solid #f4d693;outline-offset:-2px;background:#33504b}
#battle #qv-gem-tip{flex:0 0 auto;margin:0;padding:0 2px;color:#c3d7ca;font-size:10px;min-height:14px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#battle #battlemsg{flex:0 0 auto;min-height:16px;font-size:11px;color:#ffe1a8}
#battle .board{width:100%;max-width:440px;flex:1 1 auto;min-height:125px;max-height:none;gap:3px;margin:0 auto;grid-template-rows:repeat(6,minmax(0,1fr))}
#battle .gem{border-radius:9px;min-height:0}
#battle .gem:disabled{opacity:.65}
#battle .qv-battle-actions{flex:0 0 auto;display:flex;gap:7px}
#battle .qv-battle-actions .btn{flex:1;min-height:38px;max-height:42px;font-size:11px;padding:6px;white-space:nowrap}
#battle .qv-battle-actions .btn:not(:disabled){border-color:#d5b879;background:#24433f}
#hero #qv-build-summary{border:1px solid #527f76;background:linear-gradient(130deg,#183934,#0e272c)}
#hero #qv-build-summary h3{color:#f3d6a3}
#hero #qv-build-summary p{margin:7px 0;color:#cfddd5;font-size:12px}
#hero #qv-build-summary .qv-build-stats{color:#bce8d8;font-size:12px}
#hero #qv-build-summary .qv-build-helper{color:#99b9b1;font-size:11px}
@media(max-height:740px){
 #battle.view.active{gap:3px}
 #battle .battle-art{flex-basis:clamp(112px,19dvh,172px)}
 #battle .qv-battle-status{padding:5px 7px}
 #battle .qv-gem-guide{padding:3px 1px}
 #battle .qv-gem-guide span{font-size:16px}
 #battle .qv-gem-guide small{font-size:8px}
}
