/*
 * Pokémon battle surface v1.
 *
 * Terminal, removable ownership layer for the live battle HUD. Historical
 * battle files stay intact for rollback; this file owns only presentation,
 * concrete Pokémon raster art and responsive containment.
 */

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] {
  --pk-battle-blue: #148fc5;
  --pk-battle-blue-deep: #086b9d;
  --pk-battle-red: #df4252;
  --pk-battle-gold: #f3bd3b;
  --pk-battle-ink: #12384e;
  --pk-battle-muted: #5b7989;
  --pk-battle-line: rgba(24, 126, 167, .3);
  --pk-battle-surface: rgba(247, 253, 255, .96);
  --pk-battle-surface-strong: rgba(255, 255, 255, .985);
  --pk-battle-shadow: 0 18px 52px rgba(3, 28, 45, .3);
  --bui-font: var(--pk-font);
  --battle-modal-width: min(1180px, calc(100vw - 32px));
  --battle-modal-height: min(760px, calc(100dvh - 32px));
  color: var(--pk-battle-ink);
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-shell,
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-shell * {
  box-sizing: border-box;
  font-family: var(--pk-font) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-shell {
  width: var(--battle-modal-width) !important;
  height: var(--battle-modal-height) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  border: 1px solid rgba(122, 211, 239, .62) !important;
  border-radius: 24px !important;
  background: rgba(7, 36, 53, .72) !important;
  box-shadow: var(--pk-battle-shadow), inset 0 1px 0 rgba(255, 255, 255, .2) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-stage {
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  border-radius: inherit !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] :is(.battle-combat-raster, .battle-result-raster, .battle-quick-raster) {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-loader-emblem {
  display: grid !important;
  place-items: center !important;
  overflow: visible !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-loader-emblem > img {
  width: 76px !important;
  height: 76px !important;
  object-fit: contain !important;
  filter: drop-shadow(0 10px 16px rgba(3, 35, 52, .32));
  animation: pk-battle-ball-ready 1.2s cubic-bezier(.38, .05, .23, .98) infinite;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-loader-emblem::before,
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-loader-emblem::after {
  content: none !important;
  display: none !important;
}

@keyframes pk-battle-ball-ready {
  0%, 100% { transform: translateY(0) rotate(0); }
  35% { transform: translateY(-4px) rotate(-8deg); }
  65% { transform: translateY(-2px) rotate(8deg); }
}

/* Trainer-card hierarchy above the arena. */
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-versus-card {
  min-width: 0 !important;
  max-width: min(340px, calc(100% - 24px)) !important;
  overflow: hidden !important;
  border: 1px solid rgba(122, 211, 239, .48) !important;
  border-top: 3px solid var(--pk-battle-red) !important;
  border-radius: 16px !important;
  color: #eefaff !important;
  background: linear-gradient(145deg, rgba(15, 64, 87, .94), rgba(5, 35, 53, .96)) !important;
  box-shadow: 0 10px 26px rgba(0, 24, 40, .26) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-versus-card strong {
  max-width: 100% !important;
  overflow: hidden !important;
  color: #f4fbff !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] #battleModeIcon {
  width: 28px !important;
  height: 28px !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-health > article {
  min-width: 0 !important;
  overflow: visible !important;
  border: 1px solid var(--pk-battle-line) !important;
  border-top: 3px solid var(--fighter-accent, var(--pk-battle-blue)) !important;
  border-radius: 17px !important;
  color: var(--pk-battle-ink) !important;
  background: var(--pk-battle-surface-strong) !important;
  box-shadow: 0 10px 26px rgba(7, 43, 61, .18), inset 0 1px 0 #fff !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-health > article::after {
  background: url('/assets/v2.9.11/items/poke-ball.png') center / 112px 112px no-repeat !important;
  -webkit-mask: none !important;
  mask: none !important;
  opacity: .035 !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-fighter-identity,
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-fighter-identity > header {
  min-width: 0 !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-fighter-identity > header > b {
  display: block !important;
  min-width: 0 !important;
  overflow: hidden !important;
  color: var(--pk-battle-ink) !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-fighter-identity > header > em,
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-vital > span > :is(b, strong, small),
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-exp > span > :is(b, small) {
  color: var(--pk-battle-muted) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-vital > span > i,
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-exp > span > i {
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-card-status-area {
  min-width: 0 !important;
  overflow: visible !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-statuses {
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  scrollbar-width: none;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-statuses::-webkit-scrollbar { display: none; }

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-status-icon,
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-status-icon > img {
  width: 24px !important;
  height: 24px !important;
}

/* One clean Pokédex command tray instead of nested futuristic panels. */
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-command-deck {
  max-width: calc(100% - 24px) !important;
  min-width: 0 !important;
  overflow: visible !important;
  border: 1px solid rgba(74, 161, 193, .46) !important;
  border-top: 4px solid var(--pk-battle-blue) !important;
  border-radius: 19px !important;
  color: var(--pk-battle-ink) !important;
  background:
    linear-gradient(100deg, rgba(255, 255, 255, .98), rgba(235, 248, 252, .97)),
    var(--pk-battle-surface) !important;
  box-shadow: 0 14px 34px rgba(3, 35, 52, .25), inset 0 1px 0 #fff !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] :is(.combat-live-controls, .combat-main-row, .combat-skills-panel, .combat-items-panel, .combat-utility-panel) {
  min-width: 0 !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] :is(.combat-skills-panel, .combat-items-panel) {
  border-color: rgba(30, 126, 166, .18) !important;
  background: transparent !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] :is(.combat-skills-panel, .combat-items-panel) > header b,
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-skill-name,
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-energy > span > :is(small, b) {
  color: var(--pk-battle-ink) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-action-button {
  min-width: 0 !important;
  border-radius: 13px !important;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-action-button:focus-visible,
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] :is(.combat-item-button, .combat-utility-actions > button, .mobile-combat-tabs > button, .battle-result-action):focus-visible {
  outline: 3px solid rgba(28, 164, 216, .72) !important;
  outline-offset: 2px !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-item-button {
  min-width: 0 !important;
  overflow: visible !important;
  border-color: rgba(40, 132, 170, .25) !important;
  background: rgba(255, 255, 255, .72) !important;
  box-shadow: inset 0 1px 0 #fff !important;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-item-button > span:first-child {
  overflow: visible !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-quick-raster {
  filter: drop-shadow(0 4px 5px rgba(11, 45, 62, .22));
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-utility-actions > button {
  min-width: 44px !important;
  min-height: 44px !important;
  border: 1px solid rgba(36, 132, 171, .24) !important;
  border-radius: 11px !important;
  color: var(--pk-battle-ink) !important;
  background: rgba(255, 255, 255, .74) !important;
  box-shadow: none !important;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-utility-actions > button > i {
  width: 30px !important;
  height: 30px !important;
  border: 0 !important;
  background: transparent !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] #cancelBattle {
  border-color: rgba(213, 73, 84, .28) !important;
  color: #96303b !important;
  background: rgba(255, 239, 241, .9) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-resource-row {
  min-width: 0 !important;
  border-color: rgba(36, 132, 171, .18) !important;
  background: rgba(226, 245, 251, .68) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-energy-marker {
  object-fit: contain !important;
  filter: drop-shadow(0 0 4px rgba(29, 166, 218, .5)) !important;
}

/* Pokémon Trainer / Pokédex tactics sheet. */
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-tactics {
  min-width: 0 !important;
  max-width: calc(100% - 16px) !important;
  max-height: calc(100% - 24px) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  border: 1px solid var(--pk-battle-line) !important;
  border-top: 4px solid var(--pk-battle-red) !important;
  border-radius: 17px !important;
  color: var(--pk-battle-ink) !important;
  background: var(--pk-battle-surface-strong) !important;
  box-shadow: 0 18px 46px rgba(3, 31, 48, .3) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-tactics :is(b, p, small, footer) {
  overflow-wrap: anywhere;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-tactics :is(header b, .battle-tactic-modes b, .battle-tactic-rules b) {
  color: var(--pk-battle-ink) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-tactics :is(header small, .battle-tactic-modes small, .battle-tactic-rules small, footer, p) {
  color: var(--pk-battle-muted) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-tactic-modes > button {
  min-height: 64px !important;
  min-width: 0 !important;
  border-color: rgba(35, 133, 171, .24) !important;
  background: rgba(235, 248, 252, .7) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-tactic-modes > button[aria-pressed="true"] {
  border-color: var(--pk-battle-blue) !important;
  background: rgba(211, 241, 251, .88) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-tactic-modes > button > i {
  width: 48px !important;
  height: 48px !important;
  overflow: visible !important;
}

/* Pause / surrender remain legible over every arena background. */
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-pause-overlay,
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-surrender-confirm {
  backdrop-filter: none !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-pause-status {
  max-width: calc(100% - 24px) !important;
  border: 1px solid rgba(124, 209, 238, .42) !important;
  border-top: 4px solid var(--pk-battle-red) !important;
  border-radius: 18px !important;
  color: #f3fbff !important;
  background: rgba(7, 42, 61, .92) !important;
  box-shadow: 0 18px 45px rgba(0, 23, 38, .34) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-pause-glyph {
  display: block !important;
  width: 58px !important;
  height: 58px !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-pause-glyph > svg {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-surrender-confirm > article {
  width: min(460px, calc(100% - 24px)) !important;
  max-height: calc(100% - 24px) !important;
  overflow: auto !important;
  border: 1px solid rgba(210, 77, 89, .3) !important;
  border-top: 4px solid var(--pk-battle-red) !important;
  border-radius: 18px !important;
  color: var(--pk-battle-ink) !important;
  background: var(--pk-battle-surface-strong) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-surrender-confirm > article > i {
  width: 54px !important;
  height: 54px !important;
  border: 0 !important;
  background: transparent !important;
}

/* Result is a compact League report, never a second full-screen dashboard. */
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] #battleDecision:not([hidden]) {
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  padding: clamp(10px, 2vw, 24px) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] #battleDecision .battle-result-card {
  width: min(680px, 100%) !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  align-self: center !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  border: 1px solid rgba(48, 143, 180, .32) !important;
  border-top: 5px solid var(--pk-battle-blue) !important;
  border-radius: 21px !important;
  color: var(--pk-battle-ink) !important;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, .99), rgba(233, 248, 252, .98)),
    var(--pk-battle-surface-strong) !important;
  box-shadow: 0 22px 58px rgba(2, 28, 44, .34) !important;
  scrollbar-gutter: stable;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-result-outcome {
  min-width: 0 !important;
  border-bottom: 1px solid rgba(34, 129, 168, .18) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-result-emblem {
  width: 82px !important;
  height: 82px !important;
  overflow: visible !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-result-copy {
  min-width: 0 !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-result-copy > :is(b, em) {
  display: block !important;
  max-width: 100% !important;
  overflow: hidden !important;
  color: var(--pk-battle-ink) !important;
  text-overflow: ellipsis !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-result-copy > em,
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-result-drops header {
  color: var(--pk-battle-muted) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-reward-list {
  min-width: 0 !important;
  overflow-x: hidden !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-reward-drop {
  min-width: 0 !important;
  border: 1px solid rgba(41, 132, 169, .18) !important;
  border-radius: 13px !important;
  color: var(--pk-battle-ink) !important;
  background: rgba(255, 255, 255, .72) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-reward-drop :is(b, strong) {
  color: var(--pk-battle-ink) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-reward-drop small {
  color: var(--pk-battle-muted) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-reward-drop-art {
  width: 54px !important;
  height: 54px !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-result-actions {
  min-width: 0 !important;
  gap: 9px !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-result-action {
  min-width: 0 !important;
  min-height: 50px !important;
  border-radius: 13px !important;
  color: #f7fcff !important;
  background: linear-gradient(135deg, var(--pk-battle-blue), var(--pk-battle-blue-deep)) !important;
  box-shadow: 0 8px 18px rgba(11, 111, 154, .22) !important;
  touch-action: manipulation;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-capture-action {
  color: #692c32 !important;
  background: linear-gradient(135deg, #fff0f1, #ffd9dd) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-result-action > i {
  width: 42px !important;
  height: 42px !important;
  border: 0 !important;
  background: transparent !important;
}

/* Capture controls use real Poké Ball artwork and remain touch safe. */
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-capture-panel {
  min-width: 0 !important;
  overflow: hidden !important;
  border-color: var(--pk-battle-line) !important;
  color: var(--pk-battle-ink) !important;
  background: var(--pk-battle-surface-strong) !important;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-capture-balls {
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-capture-balls > button,
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-capture-cancel {
  min-width: 44px !important;
  min-height: 44px !important;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

/* Tablet: keep two readable fighter cards and a single compact tray. */
@media (min-width: 761px) and (max-width: 1100px) {
  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] {
    --battle-modal-width: calc(100vw - 20px);
    --battle-modal-height: calc(100dvh - 20px);
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-health > article {
    width: calc(50% - 92px) !important;
    min-width: 220px !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-command-deck {
    width: min(820px, calc(100% - 20px)) !important;
  }
}

/* Phone portrait: the arena owns the visible viewport and every interactive
   surface fits without horizontal page scroll. */
@media (max-width: 760px) {
  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] {
    --battle-modal-width: var(--pk-mobile-vv-width, 100vw);
    --battle-modal-height: var(--pk-mobile-vv-height, 100dvh);
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-shell {
    left: var(--pk-mobile-vv-offset-left, 0) !important;
    top: var(--pk-mobile-vv-offset-top, 0) !important;
    width: var(--battle-modal-width) !important;
    height: var(--battle-modal-height) !important;
    max-width: 100vw !important;
    max-height: 100dvh !important;
    border: 0 !important;
    border-radius: 0 !important;
    transform: none !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-stage {
    border-radius: 0 !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-health {
    inset: max(6px, var(--pk-safe-top)) 6px auto !important;
    width: auto !important;
    min-width: 0 !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-health > article {
    width: calc(50% - 4px) !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 7px !important;
    border-radius: 13px !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-fighter-identity > header > b {
    font-size: clamp(12px, 3.5vw, 15px) !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-fighter-types .pokemon-type-badge b,
  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-exp > span > b {
    display: none !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-versus-card {
    top: max(6px, var(--pk-safe-top)) !important;
    width: min(132px, 31vw) !important;
    min-width: 0 !important;
    padding-inline: 7px !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-versus-card > strong,
  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-versus-card > em {
    display: none !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-command-deck {
    right: max(6px, var(--pk-safe-right)) !important;
    bottom: max(6px, var(--pk-safe-bottom)) !important;
    left: max(6px, var(--pk-safe-left)) !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    border-radius: 16px !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-main-row {
    min-width: 0 !important;
    overflow: hidden !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-skills,
  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-item-grid {
    width: 100% !important;
    min-width: 0 !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-skills {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-item-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-skill-name {
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .mobile-combat-tabs > button {
    min-width: 0 !important;
    min-height: 44px !important;
    border-radius: 10px !important;
    color: var(--pk-battle-ink) !important;
    touch-action: manipulation;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .mobile-combat-tabs > button > i {
    width: 28px !important;
    height: 28px !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-tactics {
    inset: max(6px, var(--pk-safe-top)) max(6px, var(--pk-safe-right)) max(6px, var(--pk-safe-bottom)) max(6px, var(--pk-safe-left)) !important;
    width: auto !important;
    max-width: none !important;
    max-height: none !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-tactic-modes {
    grid-template-columns: 1fr 1fr !important;
    min-width: 0 !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] #battleDecision:not([hidden]) {
    padding: max(8px, var(--pk-safe-top)) max(8px, var(--pk-safe-right)) max(8px, var(--pk-safe-bottom)) max(8px, var(--pk-safe-left)) !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] #battleDecision .battle-result-card {
    width: 100% !important;
    max-height: 100% !important;
    padding: 12px !important;
    border-radius: 17px !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-result-emblem {
    width: 64px !important;
    height: 64px !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-result-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-result-action {
    min-height: 48px !important;
  }
}

/* Very narrow and short screens preserve the arena by trimming optional copy,
   never by shrinking hit targets below 44 px. */
@media (max-width: 380px), (max-height: 650px) {
  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-result-copy > em,
  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-reward-drop small,
  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-capture-copy > em {
    display: none !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-result-card,
  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-tactics,
  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-surrender-confirm > article {
    scrollbar-gutter: auto;
  }
}

@media (max-width: 900px) and (max-height: 650px) and (orientation: landscape) {
  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] {
    --battle-modal-width: 100vw;
    --battle-modal-height: 100dvh;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-shell {
    width: 100vw !important;
    height: 100dvh !important;
    border: 0 !important;
    border-radius: 0 !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .battle-health > article {
    max-height: 116px !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] .combat-command-deck {
    right: 6px !important;
    bottom: max(4px, var(--pk-safe-bottom)) !important;
    left: 6px !important;
    width: auto !important;
    max-width: none !important;
  }
}

@media (hover: none) and (pointer: coarse) {
  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] button {
    -webkit-tap-highlight-color: transparent;
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] *,
  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] *::before,
  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

/* -------------------------------------------------------------------------
   Live geometry guard

   The historic battle stack still renders a single-enemy matchup banner even
   though the two fighter cards already own that information.  Keeping both
   creates a second, enormous pair of portraits over the arena, so the terminal
   skin retires only that duplicate.  Co-op target controls remain untouched.

   Older mobile layers also center the command deck with translateX(-50%).
   Once the terminal skin switches to left/right safe-area insets that transform
   must be explicitly cleared or half of the controls leave the viewport.
   ------------------------------------------------------------------------- */
html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] #battleTargets.is-matchup-summary {
  display: none !important;
}

html[data-ui-revision="pokemon-next"] body.is-battling #battleHud[data-pokemon-battle="v1"] #battleRosterPanel {
  left: 12px !important;
  right: auto !important;
  transform: none !important;
}

@media (max-width: 760px) {
  html[data-ui-revision="pokemon-next"] body.is-battling #battleHud[data-pokemon-battle="v1"] #battleRosterPanel {
    left: max(5px, var(--pk-safe-left)) !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] #battleCommandDeck.combat-command-deck {
    inset: auto max(6px, var(--pk-safe-right)) max(6px, var(--pk-safe-bottom)) max(6px, var(--pk-safe-left)) !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    transform: none !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] #battleLiveControls :is(.combat-action-button, .combat-item-button) > kbd {
    display: none !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] #battleQuickItems {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 3px !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] #battleQuickItems .combat-item-button {
    width: auto !important;
    min-width: 0 !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] #battleDecision:not([hidden]) {
    display: grid !important;
    place-items: center !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] #battleDecision .battle-result-card {
    align-self: center !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100% - 16px) !important;
  }
}

@media (max-width: 900px) and (max-height: 650px) and (orientation: landscape) {
  html[data-ui-revision="pokemon-next"] body.is-battling #battleHud[data-pokemon-battle="v1"] #battleRosterPanel {
    left: 6px !important;
  }

  html[data-ui-revision="pokemon-next"] #battleHud[data-pokemon-battle="v1"] #battleCommandDeck.combat-command-deck {
    inset: auto 6px max(4px, var(--pk-safe-bottom)) 6px !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    transform: none !important;
  }
}
