.battle-game-with-gain { min-width: 0; }
.game-gain-ribbon { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 12px; padding: 9px 12px; border: 1px solid rgba(83,255,129,.25); border-left: 3px solid var(--green); background: linear-gradient(105deg,rgba(42,181,103,.1),rgba(82,36,142,.1)); font-size: 11px; overflow-wrap: anywhere; }
.game-gain-ribbon > span { color: var(--cyan); text-transform: uppercase; font-size: 9px; letter-spacing: .08em; }
.game-gain-ribbon > b { color: var(--green); font-size: 15px; }
.game-gain-ribbon small { color: var(--muted); font-size: 10px; }
.game-gain-ribbon.is-waiting { border-left-color: var(--muted); }
.battle-intro { padding: 0; border: 1px solid rgba(53,212,255,.45); background: linear-gradient(110deg,rgba(105,53,178,.2),rgba(53,212,255,.07)),#0d0f18; }
.battle-intro > summary { display: flex; align-items: center; gap: 16px; padding: 16px 22px; cursor: pointer; list-style: none; }
.battle-intro > summary::-webkit-details-marker { display: none; }
.battle-intro > summary img { width: 46px; height: 46px; object-fit: contain; }
.battle-intro > summary h1,.battle-intro > summary h2 { margin: 0; font-size: clamp(24px,3vw,34px); line-height: 1.1; }
.battle-intro > summary > span { margin-left: auto; color: var(--cyan); font-size: 12px; font-weight: 800; }
.battle-intro > summary > span::after { content: " +"; }
.battle-intro[open] > summary > span::after { content: " −"; }
.battle-intro-body { display: flex; gap: 24px; align-items: center; padding: 4px 22px 22px; }
.battle-intro-body p { max-width: 760px; line-height: 1.6; color: var(--muted); }
.battle-intro-body > img { width: 100px; height: 100px; object-fit: contain; margin-left: auto; }
/* Explicitly hide bodies even in engines/styles that override native details display. */
.battle-intro:not([open]) > :not(summary),.primetime-joust:not([open]) > :not(summary) { display: none !important; }
.battle-intro > summary:focus-visible,.battle-pulse-miners summary:focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; }
.battle-pulse { border: 1px solid rgba(83,255,129,.45); background: radial-gradient(ellipse at 100% 0,rgba(66,202,138,.11),transparent 55%),#0d0f18; padding: 20px; }
.battle-pulse .panel-heading { align-items: center; margin-bottom: 4px; }
.battle-pulse h2,.battle-pulse h3 { margin: 0; }
.battle-pulse-beacon { display: inline-flex; align-items: center; gap: 8px; padding: 6px 9px; border: 1px solid rgba(83,255,129,.45); color: var(--green); font-size: 11px; font-weight: 800; letter-spacing: .08em; white-space: nowrap; }
.battle-pulse-beacon::before { content: ""; width: 7px; height: 7px; background: var(--green); border-radius: 50%; box-shadow: 0 0 10px var(--green); }
.battle-pulse-copy { color: var(--muted); font-size: 11px; line-height: 1.6; margin: 7px 0 12px; }
.battle-pulse-status { color: #a9b9cd; font-size: 11px; margin: 0 0 9px; }
.battle-pulse-status.is-delayed { color: #f3cd81; }
.battle-pulse-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 7px; }
.battle-pulse-row { display: grid; grid-template-columns: 26px minmax(0,1fr) minmax(180px,.65fr); gap: 5px 13px; padding: 13px 15px; border: 1px solid rgba(122,143,172,.2); border-left: 3px solid rgba(87,240,148,.5); background: rgba(4,8,14,.55); }
.battle-pulse-row:first-child { border-color: rgba(83,255,129,.45); background: linear-gradient(105deg,rgba(42,181,103,.11),rgba(82,36,142,.12)); }
.battle-pulse-rank { display: grid; place-items: center; align-self: start; width: 24px; height: 24px; background: #75ffab; color: #09231b; font-size: 12px; font-weight: 900; }
.battle-pulse-score { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 15px; }
.battle-pulse-score > strong { color: #eef7ff; font-size: 17px; }
.battle-pulse-score > strong span { color: var(--cyan); }
.battle-pulse-score > b { color: var(--green); font-size: 22px; font-variant-numeric: tabular-nums; }
.battle-pulse-score > b small { color: #a7c8b8; font-size: 12px; font-weight: 600; }
.battle-pulse-main p { margin: 2px 0 4px; color: #d3d9e6; font-size: 12px; }
.battle-pulse-time { color: #9aa8ba; font-size: 10px; }
.battle-pulse-switch { color: #e0bdfc; font-size: 10px; }
.battle-pulse-game { display: grid; align-content: start; gap: 3px; text-align: right; font-variant-numeric: tabular-nums; }
.battle-pulse-game > strong { font-size: 14px; color: #eaf5ff; }
.battle-pulse-game > strong span { color: #72929d; }
.battle-pulse-game > small { font-size: 10px; color: #a8c2d0; }
.battle-pulse-game button { justify-self: end; padding: 3px 0; font-size: 11px; }
.battle-pulse-miners { grid-column: 2 / -1; min-width: 0; font-size: 11px; color: #a3b6c5; }
.battle-pulse-miners summary { cursor: pointer; color: #cbe8db; line-height: 1.6; }
.battle-pulse-miners summary span { color: #a8a8cb; padding-left: 8px; overflow-wrap: anywhere; }
.battle-pulse-names { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0; }
.battle-pulse-names span { padding: 3px 6px; border: 1px solid rgba(53,212,255,.25); color: #b5e4f3; max-width: 100%; overflow-wrap: anywhere; }
.battle-pulse-empty { padding: 18px; border: 1px dashed rgba(83,255,129,.22); }
.battle-pulse-empty p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
@keyframes battle-pulse-arrival { from { background-color: rgba(83,255,129,.24); transform: translateY(-4px); } to { background-color: transparent; transform: translateY(0); } }
.battle-pulse-row.is-new { animation: battle-pulse-arrival .9s ease-out 1; }
@media (prefers-reduced-motion: reduce) { .battle-pulse-row.is-new { animation: none; } }
@media(max-width:600px) {
  .battle-intro > summary { padding: 13px; gap: 10px; }
  .battle-intro > summary img { width: 34px; height: 34px; }
  .battle-intro > summary > span { max-width: 80px; text-align: right; font-size: 10px; }
  .battle-intro-body { padding: 2px 13px 15px; }
  .battle-intro-body > img { display: none; }
  .battle-pulse { padding: 13px 10px; }
  .battle-pulse .panel-heading { gap: 8px; }
  .battle-pulse-beacon { font-size: 9px; letter-spacing: 0; }
  .battle-pulse-row { padding: 11px 9px; grid-template-columns: 22px minmax(0,1fr); gap: 5px 8px; }
  .battle-pulse-rank { width: 21px; height: 21px; }
  .battle-pulse-score { gap: 4px 10px; }
  .battle-pulse-score > b { font-size: 21px; }
  .battle-pulse-game { grid-column: 2; text-align: left; grid-template-columns: minmax(0,1fr) auto; }
  .battle-pulse-game > small { grid-column: 1; }
  .battle-pulse-game button { grid-column: 2; grid-row: 1 / 3; align-self: center; }
  .battle-pulse-miners { grid-column: 2; }
  .battle-pulse-miners summary span { display: block; padding-left: 0; }
}
