/* === Tela de batalha (projetos type: 'battle') — visual de RPG de turno === */
.dialog-stage.is-battle{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,430px);aspect-ratio:auto;place-items:stretch;background:#14101f;color:#fff;--rpg-line:#f4ecd8;--rpg-box:#1d1a3a;--rpg-gold:#ffc83d}
.battle-screen{position:relative;display:grid;place-items:center;background:#0c0915;min-height:0}
.battle-view{position:relative;width:100%;max-width:calc(74dvh * .907);aspect-ratio:1715/1891;overflow:hidden}
.dialog-stage.is-battle .battle-view video{position:absolute;inset:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover;background:transparent}
.battle-log{position:absolute;left:14px;right:14px;bottom:14px;margin:0;padding:14px 18px;background:var(--rpg-box);border:3px solid var(--rpg-line);border-radius:6px;box-shadow:0 0 0 3px #14101f,0 6px 0 #0008;font-size:15px;letter-spacing:.03em;line-height:1.4;color:#fff}
.battle-log::before{content:'▸ ';color:var(--rpg-gold)}
.battle-panel{display:flex;flex-direction:column;gap:12px;padding:20px;background:linear-gradient(180deg,#221d45,#161230);border-left:3px solid var(--rpg-line);min-width:0}
.battle-plate{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:end;padding:14px 16px;background:var(--rpg-box);border:3px solid var(--rpg-line);border-radius:6px;box-shadow:0 0 0 3px #14101f}
.battle-name{font:28px/1 var(--display);text-transform:uppercase;letter-spacing:.01em}
.battle-level{font-size:12px;color:var(--rpg-gold);letter-spacing:.1em}
.battle-hp{grid-column:1/-1;height:16px;border:2px solid var(--rpg-line);border-radius:3px;background:#0c0915;overflow:hidden}
.battle-hp i{display:block;height:100%;width:100%;background:linear-gradient(180deg,#7dff8a,#22b84a);transition:width .45s cubic-bezier(.2,.8,.2,1),background .3s}
.battle-hp.is-low i{background:linear-gradient(180deg,#ff8a7d,#e31c24)}
.battle-hp-text{grid-column:1/-1;font-size:12px;letter-spacing:.08em}
.battle-heading{margin:6px 0 0;font-size:12px;letter-spacing:.14em;color:var(--rpg-gold)}
.battle-heading[hidden],.battle-skins[hidden]{display:none}
.battle-mobs{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.battle-mob{display:grid;gap:5px;justify-items:center;padding:0;border:0;background:none;color:#cfc8e8;cursor:pointer;min-width:0}
.battle-mob img{width:100%;aspect-ratio:1;object-fit:cover;border:3px solid #4a4372;border-radius:6px;background:#0c0915;transition:transform .15s,border-color .15s}
.battle-mob span{font-size:10px;letter-spacing:.02em;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.battle-mob:hover img{transform:translateY(-3px);border-color:var(--rpg-line)}
.battle-mob.active{color:#fff}
.battle-mob.active img{border-color:var(--rpg-gold);box-shadow:0 0 0 2px #14101f,0 0 14px #ffc83d88}
.battle-skins{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.battle-skin{padding:13px 10px;font-size:14px;letter-spacing:.08em;color:#fff;background:var(--rpg-box);border:3px solid #4a4372;border-radius:6px;cursor:pointer;transition:border-color .15s,background .15s}
.battle-skin:hover{border-color:var(--rpg-line)}
.battle-skin.active{border-color:var(--rpg-gold);background:#2c2760;color:var(--rpg-gold)}
.battle-menu{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px;background:var(--rpg-box);border:3px solid var(--rpg-line);border-radius:6px;box-shadow:0 0 0 3px #14101f}
.battle-command{display:flex;align-items:center;gap:8px;min-height:56px;padding:10px 12px 10px 6px;border:2px solid transparent;border-radius:4px;background:transparent;color:#fff;font:17px/1 var(--mono);letter-spacing:.02em;text-transform:uppercase;text-align:left;cursor:pointer;transition:background .12s,border-color .12s}
.battle-cursor{width:14px;color:var(--rpg-gold);opacity:0;font-size:13px;transform:translateX(-4px);transition:opacity .12s,transform .12s}
.battle-icon{width:22px;text-align:center;font-size:19px;color:var(--rpg-gold)}
.battle-label{font-weight:700}
.battle-command:hover,.battle-command:focus-visible{background:#2c2760;border-color:#4a4372;outline:none}
.battle-command:hover .battle-cursor,.battle-command:focus-visible .battle-cursor,.battle-command.active .battle-cursor{opacity:1;transform:none}
.battle-command.active{background:#2c2760;border-color:var(--rpg-gold)}
.battle-command:active{transform:translateY(2px)}
.battle-mob:focus-visible,.battle-skin:focus-visible{outline:3px solid var(--rpg-gold);outline-offset:2px}
@media(max-width:900px){
  .dialog-stage.is-battle{grid-template-columns:1fr}
  .battle-view{max-width:min(100%,calc(52dvh * .907))}
  .battle-panel{border-left:0;border-top:3px solid var(--rpg-line);padding:14px;gap:10px}
  .battle-log{font-size:12px;padding:10px 12px;left:8px;right:8px;bottom:8px}
  .battle-name{font-size:22px}
  .battle-command{min-height:50px;font-size:14px;gap:6px}
  .battle-mob span{font-size:9px}
}
.dialog-source[hidden]{display:none}
.battle-command[data-anim="idle"]{grid-column:1/-1;justify-content:center}
