/* Combat cues are attached to existing controls, preserving the phone layout. */
body.in-game.in-battle #actions [data-action="strike"].rally-action {background:linear-gradient(145deg,#d7eff9ed,#8bb4d8f2);border-color:#dbf9ff;box-shadow:0 4px 0 #416a81b0,0 0 18px #76c9e24a;}
body.in-game.in-battle #actions .rally-action :is(strong,small,.action-icon) {color:#193e59;}
.lane-zones>div.tide-zone {background:linear-gradient(#59e1c455,#29bda555);border:2px solid #9bfbe0;box-shadow:inset 0 0 22px #adffe978;}
.lane-zones>div.tide-zone span {color:#103e3c;text-shadow:0 1px #edfff4;background:#c4ffe8bd;border-radius:5px;}
body.in-game .movement button.tide-button {border:2px solid #b9ffe3!important;box-shadow:0 0 10px #50e3bb;}
body.in-game.in-battle #row-switch.row-danger {background:#9c3444e8;color:#fff5e1;border:2px solid #ffd5a3;box-shadow:0 0 12px #ff856b8c;}
body.in-game.in-battle #row-switch.row-safe {background:#266b59e8;color:#f1ffdc;border:2px solid #afecd2;}
.actor.row-threat .ground-ring {background:#ed4e4e80;border:3px dashed #ffb79d;box-shadow:0 0 20px #ff685e;}
.minion-trait {position:absolute;top:-12px;left:50%;transform:translateX(-50%);min-width:21px;line-height:21px;border-radius:50%;border:1px solid white;background:var(--trait-color);color:#183237;font-size:16px;font-style:normal;font-weight:900;text-align:center;box-shadow:0 2px 5px #1435;}
.minion[data-trait="armor"] .minion-body {border:3px solid #718fa9;}
.minion[data-trait="medic"] .minion-body {background:#7fcf9c;}
.minion[data-trait="rush"] .minion-body {background:#dfa166;}
#actions .action.relay-ready {border:2px solid #a9f0d8;box-shadow:inset 0 0 14px #6affc922,0 0 9px #6affc955;}
#actions [data-action="strike"].precision-ready {border-color:#ffe899;box-shadow:inset 0 0 14px #ffdf6040,0 0 12px #ffc84c70;}
#actions [data-action="strike"].precision-ready strong {color:#513807;text-shadow:none;}
/* Original game implementation inspired by Motion Library's Hold to Confirm / Pulse Rings. */
#actions [data-action="strike"].hold-input {transform:translateY(2px);}
#actions [data-action="strike"].charge-building {background:linear-gradient(90deg,#f0c85e var(--charge-fill),#efe8c6 var(--charge-fill));border-color:#a57623;box-shadow:0 0 16px #edb23b66;}
#actions [data-action="strike"].charge-building strong {color:#513807;text-shadow:none;font-size:clamp(14px,3.6vw,20px);}
#actions [data-action="strike"] {-webkit-touch-callout:none;user-select:none;}
#actions .heat-readout{position:absolute;top:5px;left:50%;transform:translateX(-50%);font-size:10px;line-height:16px;padding:0 7px;border-radius:8px;background:#293f49;color:#fff4d1;white-space:nowrap;pointer-events:none;font-weight:700;text-shadow:none;z-index:3}
#actions .heat-readout.heat-ready{background:#8d3f24;color:#fff4bd;border:1px solid #ffdf8e}
#actions [data-action="support"].heat-ready{box-shadow:inset 0 0 0 2px #ffc578,0 0 8px #e48b3155}
.hero-actor.charge-aura::after {content:"";position:absolute;left:15%;bottom:8%;width:70%;aspect-ratio:1;border:3px solid #ffe492;border-radius:50%;pointer-events:none;animation:combat-charge-ring .75s ease-out infinite;}
.hero-actor.charged-release .body {animation:combat-heavy-release .5s ease-out;}
.combat-impact-wave {position:absolute;width:100px;height:50px;margin:-25px -50px;border:4px solid #fff0b0;border-radius:50%;box-shadow:0 0 12px #b47620;pointer-events:none;animation:combat-impact-wave .5s ease-out both;}
@keyframes combat-impact-wave {from{transform:scale(.25);opacity:1}to{transform:scale(2);opacity:0}}
@keyframes combat-charge-ring {from{transform:scale(.5);opacity:.8}to{transform:scale(1.25);opacity:0}}
@keyframes combat-heavy-release {0%{transform:scale(.9) translateY(4px)}35%{transform:scale(1.08) translateY(-9px)}100%{transform:scale(1) translateY(0)}}
.reduce-motion .hero-actor.charge-aura::after {animation:none;opacity:.65;}
.reduce-motion .hero-actor.charged-release .body {animation:none;}
.reduce-motion .combat-impact-wave {animation:none;opacity:.55;}
@media(prefers-reduced-motion:reduce){.hero-actor.charge-aura::after{animation:none;opacity:.65}.hero-actor.charged-release .body{animation:none}.combat-impact-wave{animation:none;opacity:.55}}
