/* V1.147 — stable action surfaces: one-shot readiness, material lift, press depth and keyboard parity. */
html body:not(.maintenance-mode).battle-controls-active
#appRoot#appRoot.app.battle-app
#battle#battle.battle:not([hidden])
#cards#cards.cards
> .action-card.action-card[data-action-readiness] {
  animation: none !important;
  transform: translateZ(0) !important;
  transform-origin: 50% 62% !important;
  transition:
    transform 150ms cubic-bezier(0.2, 0.72, 0.24, 1),
    filter 150ms ease,
    box-shadow 170ms ease,
    outline-color 120ms ease !important;
  backface-visibility: hidden;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

@media (hover: hover) and (pointer: fine) {
  html body:not(.maintenance-mode).battle-controls-active
  #appRoot#appRoot.app.battle-app
  #battle#battle.battle:not([hidden])
  #cards#cards.cards
  > .action-card.action-card[data-action-readiness="playable"]:is(:hover, .card-vfx-hover),
  html body:not(.maintenance-mode).battle-controls-active
  #appRoot#appRoot.app.battle-app
  #battle#battle.battle:not([hidden])
  #cards#cards.cards
  > .action-card.action-card[data-action-readiness="targeting"]:is(:hover, .card-vfx-hover) {
    transform: translateY(-3px) translateZ(0) !important;
    filter: brightness(1.1) saturate(1.07) !important;
    box-shadow:
      0 13px 25px rgba(2, 9, 18, 0.34),
      0 0 18px color-mix(in srgb, var(--action-glow, #78dfff) 28%, transparent),
      inset 0 1px 0 rgba(255, 255, 255, 0.16) !important;
  }
}

html body:not(.maintenance-mode).battle-controls-active
#appRoot#appRoot.app.battle-app
#battle#battle.battle:not([hidden])
#cards#cards.cards
> .action-card.action-card[data-action-readiness]:focus-visible {
  transform: translateY(-2px) translateZ(0) !important;
  outline: 3px solid color-mix(in srgb, var(--action-glow, #78dfff) 76%, white 24%) !important;
  outline-offset: 3px !important;
  filter: brightness(1.09) saturate(1.05) !important;
  box-shadow:
    0 0 0 2px rgba(3, 11, 20, 0.88),
    0 0 22px color-mix(in srgb, var(--action-glow, #78dfff) 34%, transparent) !important;
}

html body:not(.maintenance-mode).battle-controls-active
#appRoot#appRoot.app.battle-app
#battle#battle.battle:not([hidden])
#cards#cards.cards
> .action-card.action-card[data-action-readiness]:is(:active, .card-vfx-press):not(:disabled):not(.is-battle-command-committing) {
  transform: translateY(1px) scale(0.988) translateZ(0) !important;
  filter: brightness(1.04) saturate(1.02) !important;
  transition-duration: 55ms !important;
  box-shadow:
    0 3px 8px rgba(1, 7, 14, 0.38),
    inset 0 1px 7px rgba(0, 0, 0, 0.18) !important;
}

html body:not(.maintenance-mode).battle-controls-active
#appRoot#appRoot.app.battle-app
#battle#battle.battle:not([hidden])
#cards#cards.cards
> .action-card.action-card.action-became-playable[data-action-readiness="playable"] {
  animation: action-surface-ready-v1147 520ms cubic-bezier(0.16, 0.82, 0.24, 1) both !important;
}

html body:not(.maintenance-mode).battle-controls-active
#appRoot#appRoot.app.battle-app
#battle#battle.battle:not([hidden])
#cards#cards.cards
> .action-card.action-card.is-battle-command-committing,
html body:not(.maintenance-mode).battle-controls-active
#appRoot#appRoot.app.battle-app
#battle#battle.battle:not([hidden])
#cards#cards.cards
> .action-card.action-card[data-action-readiness="pending"] {
  cursor: progress !important;
  transform: none !important;
  filter: brightness(0.9) saturate(0.78) !important;
}

html body:not(.maintenance-mode).battle-controls-active
#appRoot#appRoot.app.battle-app
#battle#battle.battle:not([hidden])
#cards#cards.cards
> .action-card.action-card[data-action-readiness="chosen"] {
  transform: none !important;
  filter: brightness(1.04) saturate(1.02) !important;
}

html body:not(.maintenance-mode).battle-controls-active
#appRoot#appRoot.app.battle-app
#battle#battle.battle:not([hidden])
#cards#cards.cards
> .action-card.action-card:disabled {
  transform: none !important;
  filter: grayscale(0.38) saturate(0.58) brightness(0.82) !important;
}

@keyframes action-surface-ready-v1147 {
  0% { opacity: 0.76; transform: translateY(2px) scale(0.985); filter: brightness(0.88) saturate(0.78); }
  48% { opacity: 1; transform: translateY(-2px) scale(1.008); filter: brightness(1.15) saturate(1.12); }
  100% { opacity: 1; transform: none; filter: none; }
}

body[data-vfx-quality="low"] .action-card.action-became-playable[data-action-readiness="playable"] {
  animation: none !important;
}

@media (prefers-reduced-motion: reduce) {
  html body:not(.maintenance-mode).battle-controls-active
  #cards#cards.cards
  > .action-card.action-card[data-action-readiness],
  html body:not(.maintenance-mode).battle-controls-active
  #cards#cards.cards
  > .action-card.action-card.action-became-playable {
    animation: none !important;
    transition: none !important;
  }
}

@media (forced-colors: active) {
  html body:not(.maintenance-mode).battle-controls-active
  #cards#cards.cards
  > .action-card.action-card[data-action-readiness]:focus-visible {
    outline: 3px solid Highlight !important;
    box-shadow: none !important;
  }
}
