/* Parent reserves a normal-flow host. No board/hero/hand selectors or global positioning.
 * Override --ba-max-height for a scrolling rail; placement is entirely parent-owned. */
.battle-assistant {
  --ba-line: #ad93653d;
  --ba-gold: #cfb783;
  --ba-ink: #eee9df;
  --ba-muted: #bcb7ae;
  container: battle-assistant / inline-size;
  position: relative;
  display: grid;
  align-content: start;
  width: 100%;
  min-width: 0;
  max-height: var(--ba-max-height, none);
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  color: var(--ba-ink);
  background: #19181cdb;
  border-block: 1px solid var(--ba-line);
  box-shadow: inset 0 1px #f3e3bc0c, inset 0 -1px #0005;
  backdrop-filter: blur(8px);
  font: 12px/1.5 system-ui, sans-serif;
  letter-spacing: 0;
  text-align: left;
}
.battle-assistant *, .battle-assistant *::before, .battle-assistant *::after { box-sizing: border-box; letter-spacing: 0; }
.battle-assistant [hidden], .battle-assistant[hidden] { display: none !important; }
.battle-assistant :is(p, h2) { margin: 0; }
.battle-assistant :is(section, details) { min-width: 0; border: 0; border-bottom: 1px solid var(--ba-line); border-radius: 0; background: none; }
.battle-assistant .ba-body { padding: 6px 8px; min-width: 0; }
.battle-assistant :is(button, select) {
  appearance: auto;
  position: static;
  transform: none;
  min-width: 0;
  min-height: 32px;
  max-width: 100%;
  margin: 0;
  padding: 4px 6px;
  border: 1px solid #cbb18422;
  border-radius: 3px;
  background: #ffffff03;
  color: var(--ba-ink);
  font: inherit;
  line-height: 1.4;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: left;
  box-shadow: none;
  cursor: pointer;
}
.battle-assistant button { display: inline-flex; align-items: center; justify-content: center; gap: 5px; }
.battle-assistant :is(button, select):hover:not(:disabled) { background: #cfb7830c; border-color: #cfb78388; color: #fff7e5; transform: none; }
.battle-assistant :is(button, select, summary):focus-visible { outline: 1px solid var(--ba-gold); outline-offset: -2px; }
.battle-assistant :is(button, select):disabled { opacity: .7; cursor: default; filter: none; }
.battle-assistant svg { width: 15px; height: 15px; flex: 0 0 15px; pointer-events: none; }
.battle-assistant summary { padding: 6px 8px; min-height: 32px; cursor: pointer; color: var(--ba-gold); font-weight: 600; }
.battle-assistant .ba-counts .ba-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.battle-assistant .ba-side { display: grid; grid-template-columns: 24px repeat(4, minmax(0, 1fr)); gap: 3px; align-items: center; min-width: 0; }
.battle-assistant .ba-side > strong { color: var(--ba-ink); font-size: 11px; }
.battle-assistant .ba-side[data-owner="enemy"] > strong { color: #cf9c9f; }
.battle-assistant .ba-side[data-active="true"] > strong { text-decoration: underline; text-underline-offset: 4px; }
.battle-assistant .ba-side button { flex-wrap: wrap; gap: 2px 4px; padding: 3px; border-color: transparent; font-variant-numeric: tabular-nums; }
.battle-assistant .ba-side b { font-size: 13px; }
.battle-assistant .ba-metric-label { font-size: 10px; }
.battle-assistant .ba-connection .ba-body { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.battle-assistant .ba-network-state { flex: 1 1 auto; }
.battle-assistant .ba-connection[data-state="connected"] .ba-network-state { color: var(--ba-gold); }
.battle-assistant .ba-connection:is([data-state="closed"], [data-state="suspended"]) .ba-network-state { color: #d6a0a4; }
.battle-assistant .ba-ping { color: var(--ba-muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.battle-assistant .ba-scenes .ba-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.battle-assistant .ba-scenes button { justify-content: start; align-items: start; background: none; padding: 3px; }
.battle-assistant .ba-scenes button > span { display: grid; min-width: 0; gap: 1px; }
.battle-assistant .ba-scenes strong { font-size: 12px; font-weight: 500; }
.battle-assistant .ba-scenes small { font-size: 10px; color: var(--ba-muted); }
.battle-assistant .ba-scenes .ba-backdrop { color: var(--ba-gold); }
.battle-assistant .ba-task-fee { color: var(--ba-gold); }
.battle-assistant .ba-turn-use { color: var(--ba-muted); font-size: 11px; padding-bottom: 4px; }
.battle-assistant .ba-task { display: grid; grid-template-columns: minmax(0, 1fr) 32px; gap: 4px; padding-block: 6px; border-top: 1px solid var(--ba-line); }
.battle-assistant .ba-task strong { font-size: 12px; font-weight: 500; overflow-wrap: anywhere; }
.battle-assistant .ba-task progress { grid-column: 1; width: 100%; height: 3px; accent-color: var(--ba-gold); }
.battle-assistant .ba-task p { grid-column: 1; font-size: 11px; color: var(--ba-muted); overflow-wrap: anywhere; }
.battle-assistant .ba-task button { grid-column: 2; grid-row: 1 / 4; align-self: start; width: 32px; padding: 4px; }
.battle-assistant .ba-task[data-ready="true"] p { color: var(--ba-gold); }
.battle-assistant .ba-picks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-bottom: 6px; }
.battle-assistant .ba-picks label { display: grid; min-width: 0; gap: 3px; font-size: 11px; color: var(--ba-muted); }
.battle-assistant select { width: 100%; text-overflow: ellipsis; color-scheme: dark; }
.battle-assistant .ba-outcome { overflow-wrap: anywhere; }
.battle-assistant .ba-preview-note { color: var(--ba-muted); font-size: 11px; margin-block: 4px; overflow-wrap: anywhere; }
.battle-assistant .ba-preview .ba-body > button { margin-top: 6px; }
@container battle-assistant (max-width: 540px) {
  .battle-assistant .ba-counts .ba-body { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .battle-assistant .ba-metric-label { display: none; }
}
@container battle-assistant (max-width: 240px) {
  .battle-assistant .ba-scenes .ba-body, .battle-assistant .ba-picks { grid-template-columns: minmax(0, 1fr); }
  .battle-assistant .ba-body { padding-inline: 5px; }
  .battle-assistant .ba-connection .ba-body { gap: 4px; }
}
@media (pointer: coarse) {
  .battle-assistant :is(button, select, summary) { min-height: 40px; }
}
