@import url("https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700;800&display=swap");
:root {
  color-scheme: light dark;
  --bg: #f7f3ec;
  --surface: rgba(255, 255, 255, .72);
  --surface-strong: #fffaf2;
  --text: #27221d;
  --muted: #6f675f;
  --line: rgba(80, 68, 56, .16);
  --accent: #b98b5d;
  --accent-strong: #8e633b;
  --danger: #b85f5f;
  --success: #6f9275;
  --shadow: 0 20px 60px rgba(60, 45, 30, .14);
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #151413;
    --surface: rgba(35, 34, 32, .78);
    --surface-strong: #22201d;
    --text: #f4eee5;
    --muted: #b9afa5;
    --line: rgba(255, 236, 214, .14);
    --accent: #d0a474;
    --accent-strong: #e0b985;
    --danger: #d98383;
    --success: #95b69b;
    --shadow: 0 20px 60px rgba(0, 0, 0, .25);
  }
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100vh;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at top left, color-mix(in srgb, var(--accent) 18%, transparent), transparent 32rem),
    linear-gradient(140deg, var(--bg), color-mix(in srgb, var(--bg) 90%, var(--accent) 10%));
  color: var(--text);
}

h1, h2, h3, p { margin: 0; }

a { color: inherit; }

.login-shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
}

.login-card, .panel {
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  backdrop-filter: blur(16px);
  border-radius: 28px;
}

.login-card {
  width: min(460px, 100%);
  padding: 32px;
}

.brand-mark {
  width: 56px;
  height: 56px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--accent) 24%, transparent);
  color: var(--accent-strong);
  font-weight: 900;
  letter-spacing: .08em;
  margin-bottom: 20px;
}

.eyebrow {
  color: var(--accent-strong);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .72rem;
  font-weight: 800;
  margin-bottom: 6px;
}

.login-card h1, .topbar h1 {
  font-size: clamp(2rem, 5vw, 3.5rem);
  letter-spacing: -.05em;
}

.muted {
  color: var(--muted);
  line-height: 1.55;
  margin-top: 10px;
}

.stack {
  display: grid;
  gap: 14px;
  margin-top: 24px;
}

label span {
  display: block;
  font-size: .82rem;
  color: var(--muted);
  margin: 0 0 6px 4px;
}

input, select {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 0 14px;
  background: var(--surface-strong);
  color: var(--text);
  outline: none;
}

input:focus, select:focus {
  border-color: color-mix(in srgb, var(--accent) 75%, var(--line));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent);
}

.btn {
  min-height: 42px;
  border: 0;
  border-radius: 14px;
  padding: 0 16px;
  font-weight: 800;
  cursor: pointer;
  transition: .18s ease;
}

.btn:hover { transform: translateY(-1px); }

.btn.primary {
  background: var(--accent);
  color: #1f1710;
}

.btn.secondary {
  background: color-mix(in srgb, var(--accent) 18%, var(--surface-strong));
  color: var(--accent-strong);
  border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line));
}

.btn.ghost {
  background: transparent;
  color: var(--text);
  border: 1px solid var(--line);
}

.btn.danger {
  background: color-mix(in srgb, var(--danger) 20%, var(--surface-strong));
  color: var(--danger);
  border: 1px solid color-mix(in srgb, var(--danger) 35%, var(--line));
}

.message {
  min-height: 20px;
  color: var(--muted);
  font-size: .9rem;
}

.message.error, .warning { color: var(--danger); }

.hint {
  margin-top: 18px;
  color: var(--muted);
  font-size: .9rem;
}

.topbar {
  max-width: 1180px;
  margin: 0 auto;
  padding: 26px 18px 10px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
}

.top-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}

.badge, .status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  border-radius: 999px;
  padding: 0 12px;
  background: color-mix(in srgb, var(--accent) 14%, var(--surface-strong));
  border: 1px solid var(--line);
  color: var(--accent-strong);
  font-weight: 800;
  font-size: .8rem;
}

.container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 18px;
}

.panel {
  padding: 22px;
}

.grid {
  display: grid;
  gap: 18px;
  margin-bottom: 18px;
}

.grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.section-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 16px;
}

.stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 18px;
}

.stats div {
  background: color-mix(in srgb, var(--surface-strong) 70%, transparent);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 16px;
}

.stats span {
  display: block;
  color: var(--muted);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .12em;
}

.stats strong {
  display: block;
  font-size: 1.8rem;
  margin-top: 4px;
}

.row {
  display: flex;
  gap: 10px;
  margin-top: 12px;
}

.row input { flex: 1; }

.list {
  display: grid;
  gap: 10px;
}

.item-row {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  background: color-mix(in srgb, var(--surface-strong) 70%, transparent);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px;
}

.item-row small {
  color: var(--muted);
}

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
}

.card-mini {
  background: color-mix(in srgb, var(--surface-strong) 70%, transparent);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px;
}

.qr-reader {
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: #000;
  margin-top: 14px;
}

.hidden { display: none !important; }

@media (max-width: 760px) {
  .topbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .grid.two {
    grid-template-columns: 1fr;
  }

  .row {
    flex-direction: column;
  }

  .section-head {
    flex-direction: column;
  }

  .login-card, .panel {
    border-radius: 22px;
  }
}


.qr-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 12px;
}

.qr-card {
  background: #fff;
  color: #1f1710;
  border: 1px solid #ddd0c1;
  border-radius: 18px;
  padding: 12px;
  text-align: center;
  break-inside: avoid;
}

.qr-canvas {
  width: 112px;
  height: 112px;
  margin: 0 auto 8px;
  display: grid;
  place-items: center;
}

.qr-canvas img,
.qr-canvas canvas {
  width: 112px !important;
  height: 112px !important;
}

.qr-card strong {
  display: block;
  font-size: .9rem;
  margin-bottom: 2px;
}

.qr-card small {
  display: block;
  color: #6f675f;
  font-size: .68rem;
  word-break: break-all;
}

@media print {
  body {
    background: #fff !important;
    color: #000 !important;
  }

  .topbar,
  .panel:not(:has(#adminQrs)),
  .section-head button,
  #adminSummary,
  #adminPlayers {
    display: none !important;
  }

  .container {
    max-width: none;
    padding: 0;
  }

  .panel {
    box-shadow: none;
    border: 0;
    background: #fff;
    padding: 0;
  }

  .qr-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 8mm;
  }

  .qr-card {
    border: 1px dashed #888;
    border-radius: 0;
    padding: 8mm;
  }
}


.file-fallback {
  display: block;
  margin-top: 14px;
}

.file-fallback input {
  padding: 10px;
}


.qr-card.qr-used {
  opacity: .62;
  position: relative;
}

.qr-card.qr-used::after {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  top: 50%;
  height: 3px;
  background: #b85f5f;
  transform: rotate(-12deg);
  border-radius: 999px;
}

.qr-card.qr-used strong,
.qr-card.qr-used small {
  text-decoration: line-through;
}


.guardian-panel {
  margin-top: 18px;
}

.soft-line {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 18px 0;
}

.pulse-form {
  align-items: center;
  margin-top: 0;
}

.pulse-form input {
  width: 86px;
  flex: 0 0 86px;
}


.sync-status {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  border-radius: 999px;
  padding: 0 10px;
  color: var(--muted);
  border: 1px solid var(--line);
  font-size: .78rem;
  white-space: nowrap;
}


.enemy-attack-form,
.admin-enemy-attack-form {
  display: flex;
  gap: 8px;
  align-items: center;
}

.enemy-attack-form input,
.admin-enemy-attack-form input {
  width: 132px;
  min-height: 42px;
}

@media (max-width: 760px) {
  .enemy-attack-form,
  .admin-enemy-attack-form {
    width: 100%;
  }

  .enemy-attack-form input,
  .admin-enemy-attack-form input {
    width: 100%;
    flex: 1;
  }
}


#adminMastersList .card-mini {
  display: grid;
  gap: 10px;
}


.avatar-title,
.person-line {
  display: flex;
  align-items: center;
  gap: 12px;
}

.avatar {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  object-fit: cover;
  border: 2px solid color-mix(in srgb, var(--accent) 45%, transparent);
  background: var(--surface-strong);
  flex: 0 0 auto;
}

.avatar-lg {
  width: 68px;
  height: 68px;
}

.avatar-placeholder {
  display: grid;
  place-items: center;
  font-weight: 900;
  color: var(--accent-strong);
  background: color-mix(in srgb, var(--accent) 16%, var(--surface-strong));
}

.avatar-tools {
  margin-top: 14px;
}

.file-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.file-button input {
  display: none;
}

.leader-tools {
  margin-top: 16px;
}

.group-qr {
  display: inline-grid;
  gap: 6px;
  justify-items: center;
  margin-top: 12px;
  padding: 12px;
  background: #fff;
  color: #1f1710;
  border-radius: 18px;
  border: 1px solid #ddd0c1;
}

.modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(0, 0, 0, .52);
}

.modal-card {
  width: min(460px, 100%);
  background: var(--surface-strong);
  border: 1px solid var(--line);
  border-radius: 26px;
  padding: 22px;
  box-shadow: var(--shadow);
}

.avatar-editor {
  display: grid;
  place-items: center;
  margin: 16px 0;
}

#avatarCanvas {
  width: min(320px, 100%);
  max-width: 100%;
  border-radius: 999px;
  background: #111;
  border: 1px solid var(--line);
}


:root {
  --bg: #f3f5f8;
  --surface: rgba(255, 255, 255, .78);
  --surface-strong: #ffffff;
  --text: #161b22;
  --muted: #6a7280;
  --line: rgba(15, 23, 42, .10);
  --accent: #5f6f89;
  --accent-strong: #425166;
  --danger: #c26060;
  --success: #3f8c66;
  --shadow: 0 18px 50px rgba(15, 23, 42, .10);
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0f1115;
    --surface: rgba(23, 26, 32, .84);
    --surface-strong: #171b22;
    --text: #f3f5f7;
    --muted: #9aa4b2;
    --line: rgba(255, 255, 255, .08);
    --accent: #8a97ab;
    --accent-strong: #d7dee9;
    --danger: #e28787;
    --success: #88b79f;
    --shadow: 0 18px 50px rgba(0, 0, 0, .28);
  }
}

body {
  background:
    radial-gradient(circle at top left, rgba(120, 138, 162, .10), transparent 28rem),
    linear-gradient(180deg, var(--bg), color-mix(in srgb, var(--bg) 92%, #1a2230 8%));
}

.eyebrow {
  color: var(--muted);
  letter-spacing: .14em;
}

.top-subtitle {
  margin-top: 8px;
  color: var(--muted);
  font-size: .96rem;
}

.topbar h1 {
  font-size: clamp(2rem, 4vw, 3.2rem);
}

.badge, .status-pill {
  background: color-mix(in srgb, var(--surface-strong) 88%, transparent);
  color: var(--text);
}

.btn.primary {
  background: #2f3642;
  color: #f5f7fa;
}

@media (prefers-color-scheme: light) {
  .btn.primary {
    background: #2f3b4d;
    color: #ffffff;
  }
}

.btn.secondary {
  background: color-mix(in srgb, var(--surface-strong) 92%, var(--accent) 8%);
  color: var(--text);
  border: 1px solid var(--line);
}

.player-head {
  margin-bottom: 8px;
}

.avatar-title-player {
  align-items: center;
  gap: 16px;
}

.meta-title-wrap {
  display: grid;
  gap: 4px;
}

.meta-title {
  font-size: clamp(2rem, 3.2vw, 2.8rem);
  line-height: 1;
  letter-spacing: -.05em;
}

.meta-class {
  color: var(--muted);
  font-size: 1rem;
  font-weight: 600;
}

.life-state {
  margin-top: 3px;
  color: var(--muted);
  font-size: .88rem;
}

.avatar {
  border: 0;
  box-shadow: 0 6px 18px rgba(0,0,0,.12);
}

.avatar-xl {
  width: 92px;
  height: 92px;
}

.avatar-placeholder {
  color: var(--text);
  background: color-mix(in srgb, var(--accent) 10%, var(--surface-strong));
}

.player-stats {
  margin-top: 18px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: end;
}

.player-stats div {
  background: transparent;
  border: 0;
  padding: 0;
}

.player-stats span {
  font-size: .74rem;
  color: var(--muted);
  letter-spacing: .10em;
}

.player-stats strong {
  margin-top: 6px;
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  letter-spacing: -.04em;
}

.meta-extra {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.sigilo-spotlight {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 18px;
  background: color-mix(in srgb, var(--accent) 10%, var(--surface-strong));
  border: 1px solid var(--line);
  width: fit-content;
}

.sigilo-spotlight span {
  color: var(--muted);
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-weight: 800;
}

.sigilo-spotlight strong {
  font-size: 1.2rem;
  letter-spacing: -.02em;
}

.meta-notes {
  margin-top: 0;
}

.avatar-hint {
  margin-top: 10px;
  font-size: .9rem;
}

.modal-card {
  width: min(520px, 100%);
}

#avatarCanvas {
  touch-action: none;
  cursor: grab;
  background: #11151d;
  border: 1px solid var(--line);
}

#avatarCanvas:active {
  cursor: grabbing;
}

@media (max-width: 760px) {
  .player-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 18px;
  }

  .avatar-xl {
    width: 84px;
    height: 84px;
  }
}


/* Player UI v2 */
.topbar {
  align-items: center;
}

.topbar h1 {
  font-size: clamp(1.8rem, 3vw, 2.4rem);
}

.player-shell {
  display: grid;
  gap: 18px;
}

.player-grid {
  margin-bottom: 0;
}

.player-hero,
.panel-game,
.player-footer {
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--surface-strong) 96%, transparent), color-mix(in srgb, var(--surface) 92%, transparent));
}

.player-hero {
  padding: 26px;
}

.player-hero-main {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.player-avatar-col {
  display: grid;
  justify-items: center;
  gap: 12px;
}

.avatar-hero {
  width: 108px;
  height: 108px;
  border: 0;
  box-shadow: 0 12px 30px rgba(0,0,0,.18);
}

.compact-button {
  min-height: 38px;
  padding: 0 14px;
}

.player-name {
  font-size: clamp(2.4rem, 4vw, 3.4rem);
  line-height: .98;
  letter-spacing: -.06em;
  margin-top: 2px;
}

.player-class {
  margin-top: 8px;
  font-size: 1.05rem;
  color: var(--text);
  opacity: .9;
  font-weight: 650;
}

.player-state {
  margin-top: 6px;
  color: var(--muted);
  font-size: .95rem;
}

.player-gamebox {
  display: grid;
  gap: 18px;
  margin-top: 22px;
}

.player-core-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.stat-inline {
  display: grid;
  gap: 6px;
  align-content: start;
}

.stat-inline span {
  color: var(--muted);
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 800;
}

.stat-inline strong {
  font-size: clamp(2.2rem, 4vw, 3rem);
  line-height: 1;
  letter-spacing: -.05em;
}

.stat-vital strong {
  font-size: clamp(2rem, 3.5vw, 2.8rem);
}

.player-highlights {
  display: grid;
  grid-template-columns: minmax(140px, 180px) 1fr;
  gap: 14px;
}

.sigilo-card,
.buffs-card {
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 16px 18px;
  background: color-mix(in srgb, var(--surface-strong) 88%, transparent);
}

.sigilo-card {
  display: grid;
  gap: 8px;
  align-content: center;
  justify-items: start;
  background: linear-gradient(145deg, color-mix(in srgb, var(--accent) 18%, var(--surface-strong)), color-mix(in srgb, var(--surface-strong) 92%, transparent));
}

.sigilo-card span,
.buffs-card span {
  color: var(--muted);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-weight: 800;
}

.sigilo-card strong {
  font-size: 1.35rem;
  letter-spacing: -.03em;
}

.buffs-card p {
  margin-top: 8px;
}

.panel-title-tight {
  margin-bottom: 10px;
}

.panel-title-tight h2 {
  font-size: 1.35rem;
  letter-spacing: -.03em;
}

.compact-stack {
  gap: 10px;
  margin-top: 12px;
}

.leader-tools-grid {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 16px;
  align-items: start;
}

.group-qr {
  width: 150px;
  justify-self: start;
}

.player-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}

.player-footer h3 {
  font-size: 1.15rem;
}

.footer-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

#userBadge.hidden {
  display: none !important;
}

@media (max-width: 760px) {
  .player-hero-main {
    grid-template-columns: 1fr;
  }

  .player-avatar-col {
    justify-items: start;
  }

  .player-highlights,
  .leader-tools-grid {
    grid-template-columns: 1fr;
  }

  .group-qr {
    width: auto;
  }

  .player-footer {
    flex-direction: column;
    align-items: flex-start;
  }
}


/* Player UI v3 */
.clickable-avatar { cursor: pointer; }
.clickable-avatar:hover .avatar-hero,
.clickable-avatar:hover .avatar-placeholder { transform: translateY(-1px); }
.player-state { margin-top: 8px; font-size: 1rem; }
.solo-sigilo { width: fit-content; min-width: 200px; }
.effect-line { margin-top: -4px; }
.qr-minimal-panel { display: grid; gap: 12px; }
.qr-actions-row { display: flex; gap: 10px; align-items: center; }
.eye-button {
  width: 64px; height: 64px; border-radius: 999px; border: 1px solid var(--line);
  background: linear-gradient(180deg, color-mix(in srgb, var(--surface-strong) 96%, transparent), color-mix(in srgb, var(--accent) 16%, transparent));
  color: var(--text); font-size: 1.8rem; display: grid; place-items: center; box-shadow: var(--shadow);
}
.eye-button:hover { transform: translateY(-1px); }
.group-name { font-size: clamp(1.6rem, 2.8vw, 2.2rem); letter-spacing: -.04em; }
.group-members-list { margin-top: 8px; }
.invite-card {
  display: flex; justify-content: space-between; gap: 12px; align-items: center;
  padding: 14px 16px; border: 1px solid var(--line); border-radius: 18px;
  background: color-mix(in srgb, var(--surface-strong) 88%, transparent);
}
.items-only-panel { margin-top: 0; }
#groupEntryBox.hidden, #toggleGroupAdmin.hidden, #leaderGroupTools.hidden { display: none !important; }
.file-fallback { margin-top: 4px; }
@media (max-width: 760px) { .invite-card { flex-direction: column; align-items: flex-start; } }


/* Player UI v4 - medieval refinement */
.topbar h1:empty {
  display: none;
}

.player-shell {
  gap: 22px;
}

.player-hero {
  padding: 28px;
  border: 1px solid color-mix(in srgb, var(--line) 88%, transparent);
  box-shadow: 0 18px 40px rgba(0, 0, 0, .18);
}

.player-hero,
.player-hero * {
  font-family: "Cormorant Garamond", Georgia, serif;
}

.eyebrow,
.player-class,
.player-state,
.stat-card span,
.sigilo-card span {
  letter-spacing: .08em;
}

.player-name,
.group-name,
.sigilo-card strong,
.stat-card strong {
  font-family: "Cinzel", Georgia, serif;
}

.player-name {
  font-size: clamp(2.25rem, 4.3vw, 3.1rem);
  letter-spacing: -.03em;
  line-height: 1.02;
}

.player-class {
  margin-top: 10px;
  font-size: 1.25rem;
  font-weight: 700;
}

.player-state {
  margin-top: 8px;
  font-size: 1.1rem;
}

.avatar-hero {
  width: 116px;
  height: 116px;
  border: none !important;
  outline: none !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.20);
}

.player-core-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.stat-card {
  padding: 16px 16px 14px;
  border-radius: 18px;
  border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
  background: linear-gradient(180deg, color-mix(in srgb, var(--surface-strong) 95%, transparent), color-mix(in srgb, var(--surface) 92%, transparent));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.02);
  min-height: 104px;
}

.stat-card span {
  font-size: .92rem;
  text-transform: uppercase;
  color: var(--muted);
}

.stat-card strong {
  margin-top: 8px;
  font-size: clamp(2rem, 4vw, 2.8rem);
}

.stat-vital strong {
  font-size: clamp(1.75rem, 3vw, 2.4rem);
}

.solo-sigilo {
  width: 100%;
  min-width: 0;
  border-radius: 20px;
  padding: 18px 20px;
}

.sigilo-card span {
  font-size: .88rem;
}

.sigilo-card strong {
  font-size: 1.85rem;
  line-height: 1.15;
}

.effect-line {
  margin-top: 2px;
  font-size: 1.05rem;
}

.player-footer .eyebrow,
.player-footer h3,
.player-footer .muted,
.player-footer .sync-status {
  font-family: "Cormorant Garamond", Georgia, serif;
}

@media (max-width: 760px) {
  .player-name {
    font-size: 2.15rem;
  }

  .player-core-stats {
    grid-template-columns: 1fr;
  }

  .stat-card {
    min-height: auto;
  }
}


/* Player UI v5 - compact layout */
.topbar {
  padding: 18px 16px 8px;
}

.topbar .eyebrow {
  font-size: .82rem;
}

.player-shell {
  gap: 16px;
}

.player-hero {
  padding: 18px;
  border-radius: 24px;
}

.player-hero-main {
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.player-avatar-col {
  gap: 8px;
}

.avatar-hero {
  width: 88px;
  height: 88px;
  box-shadow: 0 10px 20px rgba(0,0,0,.18);
}

.player-name {
  font-size: clamp(1.8rem, 3.4vw, 2.4rem);
  margin-top: 0;
}

.player-class {
  margin-top: 4px;
  font-size: 1rem;
}

.player-state {
  margin-top: 4px;
  font-size: .95rem;
}

.player-gamebox {
  gap: 12px;
  margin-top: 12px;
}

.player-core-stats {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.stat-card {
  min-height: 0;
  padding: 10px 12px 12px;
  border-radius: 16px;
}

.stat-card span {
  font-size: .75rem;
}

.stat-card strong {
  margin-top: 4px;
  font-size: clamp(1.55rem, 3vw, 2rem);
}

.stat-vital strong {
  font-size: clamp(1.35rem, 2.8vw, 1.8rem);
}

.solo-sigilo {
  padding: 14px 16px;
  border-radius: 18px;
}

.sigilo-card span {
  font-size: .76rem;
}

.sigilo-card strong {
  font-size: 1.35rem;
}

.effect-line {
  margin-top: 0;
  font-size: .94rem;
}

.panel,
.panel-game,
.player-footer {
  border-radius: 22px;
}

.player-footer {
  padding: 16px 18px;
}

@media (max-width: 760px) {
  .topbar {
    padding: 14px 12px 6px;
  }

  .player-hero {
    padding: 14px;
  }

  .player-hero-main {
    grid-template-columns: 80px minmax(0, 1fr);
    gap: 12px;
  }

  .avatar-hero {
    width: 80px;
    height: 80px;
  }

  .player-name {
    font-size: 1.7rem;
  }

  .player-class {
    font-size: .95rem;
  }

  .player-state {
    font-size: .9rem;
  }

  .player-core-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  .stat-card {
    padding: 9px 10px 10px;
  }

  .stat-card span {
    font-size: .68rem;
    letter-spacing: .06em;
  }

  .stat-card strong {
    font-size: 1.35rem;
  }

  .stat-vital strong {
    font-size: 1.15rem;
  }

  .solo-sigilo {
    padding: 12px 14px;
  }

  .sigilo-card strong {
    font-size: 1.15rem;
  }
}


/* Player UI v6 - centered stats and avatar modal mobile fix */
.player-core-stats {
  justify-items: center;
  align-items: stretch;
}

.stat-card {
  width: 100%;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.stat-card strong,
.stat-card span {
  text-align: center;
}

.solo-sigilo,
.sigilo-card {
  text-align: center;
  align-items: center;
}

.sigilo-card strong,
.sigilo-card span {
  text-align: center;
}

.modal {
  align-items: center;
  justify-items: center;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.modal-card {
  width: min(460px, 100%);
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.modal-card .row {
  position: sticky;
  bottom: 0;
  background: var(--surface-strong);
  padding-top: 12px;
  margin-top: 8px;
}

@media (max-width: 760px) {
  .modal {
    padding: 10px;
    align-items: start;
  }

  .modal-card {
    width: 100%;
    max-height: calc(100dvh - 12px);
    border-radius: 20px;
    padding: 16px;
  }

  .avatar-editor {
    margin: 10px 0;
  }

  #avatarCanvas {
    width: min(260px, 100%);
  }

  .modal-card .section-head {
    gap: 8px;
    align-items: start;
  }

  .modal-card .row {
    gap: 8px;
    flex-wrap: wrap;
  }

  .modal-card .row .btn {
    flex: 1 1 140px;
  }
}


/* Player UI v7 - full-width centered stats + pinch avatar */
.player-hero-main {
  grid-template-columns: 88px minmax(0, 1fr);
  grid-template-areas:
    "avatar meta"
    "gamebox gamebox";
  gap: 12px 16px;
}

.player-avatar-col { grid-area: avatar; }
.player-meta-col { grid-area: meta; }
.player-gamebox {
  grid-area: gamebox;
  margin-top: 4px;
  justify-items: center;
}

.player-core-stats {
  width: 100%;
  max-width: 420px;
  margin-inline: auto;
}

.solo-sigilo {
  width: 100%;
  max-width: 420px;
  margin-inline: auto;
}

.effect-line,
.warning[data-block="deadNotice"] {
  width: 100%;
  max-width: 420px;
  margin-inline: auto;
  text-align: center;
}

.modal-card .row {
  position: sticky;
  bottom: 0;
  background: var(--surface-strong);
  padding-top: 8px;
  margin-top: 6px;
}

.modal-card .row .btn {
  min-height: 42px;
  padding: 0 14px;
  font-size: .95rem;
  flex: 1 1 0;
}

@media (max-width: 760px) {
  .player-hero-main {
    grid-template-columns: 80px minmax(0, 1fr);
    grid-template-areas:
      "avatar meta"
      "gamebox gamebox";
    gap: 10px 12px;
  }

  .player-gamebox {
    margin-top: 2px;
  }

  .player-core-stats,
  .solo-sigilo,
  .effect-line,
  .warning[data-block="deadNotice"] {
    max-width: 100%;
  }

  .modal-card .row {
    gap: 8px;
    flex-wrap: nowrap;
  }

  .modal-card .row .btn {
    min-height: 40px;
    padding: 0 12px;
    font-size: .92rem;
  }
}


/* Player UI v8 - avatar gallery, colored status, QR refinements */
.player-state.status-viva {
  color: #5ec27f;
  font-weight: 700;
}

.player-state.status-combate {
  color: #d65a5a;
  font-weight: 700;
}

.player-state.status-ferida {
  color: #df9a3c;
  font-weight: 700;
}

.player-state.status-morta {
  color: #b0b7c3;
  font-weight: 700;
}

.qr-headline {
  text-align: center;
}

.qr-headline .eyebrow {
  margin: 0;
  font-size: 1rem;
  letter-spacing: .12em;
}

.qr-minimal-panel {
  justify-items: center;
}

.qr-actions-row {
  justify-content: center;
}

.eye-button {
  width: 92px;
  height: 92px;
  font-size: 2.6rem;
  border-width: 1px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--surface-strong) 96%, transparent), color-mix(in srgb, var(--accent) 22%, transparent));
}

.eye-button:hover { transform: translateY(-1px) scale(1.01); }

#qrStatus,
#manualQrForm {
  width: 100%;
}

#manualQrForm {
  max-width: 420px;
  margin-inline: auto;
}

.file-fallback {
  display: none !important;
}

@media (max-width: 760px) {
  .eye-button {
    width: 86px;
    height: 86px;
    font-size: 2.35rem;
  }
}


/* Player UI v9 - avatar chooser + sigilo modal + status fix */
.player-state.status-combate {
  color: #d84e4e;
}

.player-state.status-morta {
  color: #d84e4e;
  font-weight: 800;
}

.clickable-sigilo {
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.clickable-sigilo:hover,
.clickable-sigilo:focus-visible {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--accent) 38%, var(--line));
  box-shadow: 0 10px 24px rgba(0,0,0,.14);
  outline: none;
}

.modal-card-sm {
  width: min(360px, 100%);
}

.avatar-source-actions .btn {
  min-height: 48px;
}

.sigilo-modal-body {
  gap: 14px;
}

.sigilo-rule-hero {
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: color-mix(in srgb, var(--surface-strong) 92%, transparent);
}

.sigilo-rule-hero h3 {
  margin: 4px 0 4px;
  font-family: "Cinzel", Georgia, serif;
  font-size: 1.35rem;
}

.sigilo-rule-list {
  margin: 0;
  padding-left: 1.25rem;
  display: grid;
  gap: 10px;
}

.sigilo-rule-list li {
  color: var(--text);
  line-height: 1.45;
}


/* Player UI v10 - camera preview restored */
.qr-reader {
  width: 100%;
  max-width: 360px;
  min-height: 280px;
  margin: 12px auto;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: #05070a;
}

.qr-reader video {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  object-fit: cover;
}

.qr-reader.hidden {
  display: none !important;
}

#stopQr {
  min-height: 42px;
}

@media (max-width: 760px) {
  .qr-reader {
    max-width: 100%;
    min-height: 240px;
  }
}


/* Player UI v11 - group administration */
.group-header-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

.group-members-wrap {
  margin-top: 12px;
}

.group-member-row {
  align-items: center;
}

.group-member-row .person-line {
  min-width: 0;
}

.group-member-row .btn {
  flex: 0 0 auto;
}

.compact-button {
  min-height: 36px;
  padding: 0 12px;
}

.leader-tools {
  margin-top: 14px;
}

.leader-tools-grid {
  display: grid;
  grid-template-columns: minmax(140px, 170px) minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.group-qr {
  margin-top: 8px;
}

#groupEntryBox.hidden,
#leaveGroupButton.hidden,
#toggleGroupAdmin.hidden,
#leaderGroupTools.hidden {
  display: none !important;
}

@media (max-width: 760px) {
  .group-header-actions {
    width: 100%;
  }

  .group-header-actions .btn {
    flex: 1;
  }

  .leader-tools-grid {
    grid-template-columns: 1fr;
  }

  .group-member-row {
    gap: 12px;
  }
}


/* Player UI v12 - inventory medieval style and group limit */
.items-only-panel,
.items-only-panel * {
  font-family: "Cormorant Garamond", Georgia, serif;
}

.items-only-panel h2,
.inventory-card strong {
  font-family: "Cinzel", Georgia, serif;
}

.items-only-panel .eyebrow {
  letter-spacing: .10em;
}

.inventory-card {
  border-radius: 18px;
  padding: 16px 18px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--surface-strong) 94%, transparent), color-mix(in srgb, var(--surface) 92%, transparent));
}

.inventory-card .eyebrow {
  margin-bottom: 6px;
  color: var(--muted);
}

.inventory-card strong {
  display: block;
  font-size: 1.08rem;
  letter-spacing: -.02em;
}

.inventory-card .muted {
  margin-top: 8px;
  font-size: 1rem;
}

.inventory-card .btn {
  margin-top: 10px;
}

.group-panel .muted::selection,
.items-only-panel .muted::selection {
  background: color-mix(in srgb, var(--accent) 28%, transparent);
}


/* Player UI v15 - inventory before Olho Gospel */
.items-only-panel {
  margin-bottom: 0;
}

.items-only-panel + .player-grid {
  margin-top: -2px;
}


/* Player UI v17 - functional sigils and turn counter */
.functional-sigilo-panel {
  width: 100%;
  max-width: 420px;
  margin-inline: auto;
}

.sigilo-action-card {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px 16px;
  background: color-mix(in srgb, var(--surface-strong) 92%, transparent);
  text-align: center;
}

.sigilo-action-card h3 {
  font-family: "Cinzel", Georgia, serif;
  margin: 4px 0 6px;
}

.sigilo-action-card .btn {
  margin-top: 10px;
  width: 100%;
}

.turn-pill {
  display: inline-flex;
  width: fit-content;
  margin-top: 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 6px 12px;
  font-family: "Cinzel", Georgia, serif;
  font-size: .9rem;
  background: color-mix(in srgb, var(--accent) 12%, transparent);
}

button:disabled {
  opacity: .48;
  cursor: not-allowed;
}


/* Player UI v18 - master turn checkboxes */
.turn-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: color-mix(in srgb, var(--surface-strong) 90%, transparent);
  cursor: pointer;
  user-select: none;
}

.turn-checkbox input {
  width: 18px;
  height: 18px;
  accent-color: var(--accent);
}

.turn-checkbox input:disabled + span {
  opacity: .72;
}

.turn-checkbox span {
  font-family: "Cinzel", Georgia, serif;
  font-size: .86rem;
}


/* Player UI v21 - player combat turn panel */
.player-combat-panel {
  margin-top: 0;
}

.player-combat-panel.hidden {
  display: none !important;
}

.combat-turn-summary {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: color-mix(in srgb, var(--surface-strong) 92%, transparent);
  margin-bottom: 12px;
}

.combat-turn-summary strong {
  font-family: "Cinzel", Georgia, serif;
  font-size: 1.25rem;
}

.combat-turn-summary span {
  color: var(--muted);
}

.combat-member-cards {
  display: grid;
  gap: 10px;
}

.combat-member-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: color-mix(in srgb, var(--surface-strong) 88%, transparent);
}

.combat-member-card.self {
  border-color: color-mix(in srgb, var(--accent) 38%, var(--line));
}

.combat-member-card.acted {
  opacity: .78;
}

.combat-member-card.dead {
  opacity: .48;
}

.combat-action-state {
  flex: 0 0 auto;
  min-width: 76px;
  text-align: center;
  border-radius: 999px;
  padding: 6px 10px;
  border: 1px solid var(--line);
  font-family: "Cinzel", Georgia, serif;
  font-size: .78rem;
}

.combat-member-card:not(.acted):not(.dead) .combat-action-state {
  color: #df9a3c;
}

.combat-member-card.acted .combat-action-state {
  color: #5ec27f;
}

.combat-member-card.dead .combat-action-state {
  color: #d84e4e;
}

@media (max-width: 760px) {
  .combat-member-card {
    align-items: flex-start;
    flex-direction: column;
  }

  .combat-action-state {
    min-width: 0;
  }
}


/* Player UI v22 - invite autocomplete */
.invite-hint {
  margin-top: -4px;
  font-size: .92rem;
}

#inviteMetaformaForm input[list] {
  position: relative;
}


/* Player UI v24 - onboarding, guide and group admin refinements */
.onboarding-card,
.guide-card {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px 16px;
  background: color-mix(in srgb, var(--surface-strong) 92%, transparent);
}

.onboarding-card h3,
.guide-card strong {
  font-family: "Cinzel", Georgia, serif;
}

.onboarding-card ol {
  margin: 10px 0 0;
  padding-left: 1.1rem;
  color: var(--muted);
  display: grid;
  gap: 4px;
}

.guide-body {
  gap: 12px;
}


/* Player UI v26 - group rename warning */
.rename-warning {
  margin: -4px 0 2px;
  padding: 10px 12px;
  border: 1px solid color-mix(in srgb, #df9a3c 45%, var(--line));
  border-radius: 14px;
  background: color-mix(in srgb, #df9a3c 10%, transparent);
  color: #df9a3c;
  font-size: .95rem;
  line-height: 1.35;
}


/* Player UI v27 - guided Metaform creation wizard */
.metaform-wizard-card {
  width: min(720px, 100%);
  font-family: "Cormorant Garamond", Georgia, serif;
}

.metaform-wizard-card h2,
.metaform-wizard-card h3,
.archetype-choice strong {
  font-family: "Cinzel", Georgia, serif;
}

.wizard-progress {
  display: flex;
  gap: 8px;
  margin-bottom: 18px;
}

.wizard-progress span {
  height: 8px;
  flex: 1;
  border-radius: 999px;
  background: color-mix(in srgb, var(--line) 70%, transparent);
}

.wizard-progress span.active {
  background: color-mix(in srgb, var(--accent) 75%, #ffffff);
}

.wizard-step h2 {
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  margin: 6px 0 8px;
}

.wizard-avatar-preview {
  display: grid;
  place-items: center;
  margin: 22px 0;
}

.wizard-actions-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.wizard-nav {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 22px;
}

.wizard-nav .btn {
  min-width: 150px;
}

.wizard-label {
  display: grid;
  gap: 8px;
  margin-top: 20px;
}

.archetype-choice-grid {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.archetype-choice {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: color-mix(in srgb, var(--surface-strong) 92%, transparent);
  cursor: pointer;
  transition: transform .15s ease, border-color .15s ease, background .15s ease;
}

.archetype-choice:hover {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
}

.archetype-choice input {
  margin-top: 6px;
  accent-color: var(--accent);
}

.archetype-choice span {
  display: grid;
  gap: 5px;
}

.archetype-choice em,
.archetype-choice small {
  color: var(--muted);
  font-style: normal;
}

.archetype-choice:has(input:checked) {
  border-color: color-mix(in srgb, var(--accent) 70%, var(--line));
  background: color-mix(in srgb, var(--accent) 10%, var(--surface-strong));
}

.compact-onboarding {
  max-width: 460px;
}

@media (max-width: 760px) {
  .metaform-wizard-card {
    max-height: calc(100dvh - 12px);
  }

  .wizard-actions-grid,
  .wizard-nav {
    grid-template-columns: 1fr;
    flex-direction: column;
  }

  .wizard-nav .btn {
    width: 100%;
  }
}


/* Player UI v31 - Metaform creation as main screen */
.hidden {
  display: none !important;
}

.metaform-welcome-screen {
  min-height: calc(100dvh - 120px);
  display: grid;
  place-items: center;
  padding: 20px 0 30px;
}

.metaform-welcome-card {
  width: min(680px, 100%);
  border: 1px solid var(--line);
  border-radius: 30px;
  padding: clamp(24px, 6vw, 48px);
  background:
    radial-gradient(circle at top left, color-mix(in srgb, var(--accent) 12%, transparent), transparent 36%),
    color-mix(in srgb, var(--surface-strong) 96%, transparent);
  box-shadow: 0 24px 70px rgba(0,0,0,.24);
  text-align: center;
}

.metaform-welcome-card h1 {
  font-family: "Cinzel", Georgia, serif;
  font-size: clamp(2.15rem, 7vw, 4.2rem);
  line-height: 1;
  margin: 8px 0 14px;
}

.metaform-welcome-card .muted {
  max-width: 520px;
  margin-inline: auto;
  font-size: 1.08rem;
}

.welcome-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin: 28px 0;
}

.welcome-steps div {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px 10px;
  background: color-mix(in srgb, var(--surface) 72%, transparent);
}

.welcome-steps strong {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin: 0 auto 8px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent) 22%, transparent);
  font-family: "Cinzel", Georgia, serif;
}

.welcome-steps span {
  display: block;
  color: var(--muted);
}

.metaform-welcome-card .btn {
  min-width: 220px;
  min-height: 50px;
}

@media (max-width: 760px) {
  .metaform-welcome-screen {
    min-height: calc(100dvh - 90px);
    padding: 10px 0 24px;
  }

  .welcome-steps {
    grid-template-columns: 1fr;
  }

  .metaform-welcome-card {
    border-radius: 24px;
  }
}


/* Player UI v33 - clean first-time Metaform creation screen */
.clean-wizard-shell {
  min-height: calc(100dvh - 116px);
  display: grid;
  place-items: center;
  padding: 18px 0 32px;
}

.clean-wizard-card {
  width: min(720px, 100%);
  border: 1px solid var(--line);
  border-radius: 30px;
  padding: clamp(22px, 5vw, 42px);
  background:
    radial-gradient(circle at top left, color-mix(in srgb, var(--accent) 10%, transparent), transparent 34%),
    color-mix(in srgb, var(--surface-strong) 96%, transparent);
  box-shadow: 0 24px 70px rgba(0,0,0,.24);
  font-family: "Cormorant Garamond", Georgia, serif;
}

.clean-wizard-card h1 {
  font-family: "Cinzel", Georgia, serif;
  font-size: clamp(2rem, 6vw, 3.5rem);
  line-height: 1.02;
  margin: 8px 0 14px;
}

.clean-step .muted {
  font-size: 1.08rem;
  line-height: 1.55;
}

.wizard-progress {
  display: flex;
  gap: 8px;
  margin-bottom: 22px;
}

.wizard-progress span {
  height: 8px;
  flex: 1;
  border-radius: 999px;
  background: color-mix(in srgb, var(--line) 70%, transparent);
}

.wizard-progress span.active {
  background: color-mix(in srgb, var(--accent) 75%, #ffffff);
}

.wizard-avatar-preview {
  display: grid;
  place-items: center;
  margin: 24px 0;
}

.wizard-actions-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.wizard-nav {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 24px;
}

.wizard-nav .btn {
  min-width: 150px;
}

.wizard-label {
  display: grid;
  gap: 8px;
  margin-top: 20px;
}

.archetype-choice-grid {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.archetype-choice {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: color-mix(in srgb, var(--surface-strong) 92%, transparent);
  cursor: pointer;
}

.archetype-choice input {
  margin-top: 6px;
  accent-color: var(--accent);
}

.archetype-choice span {
  display: grid;
  gap: 5px;
}

.archetype-choice strong {
  font-family: "Cinzel", Georgia, serif;
}

.archetype-choice em,
.archetype-choice small {
  color: var(--muted);
  font-style: normal;
}

.archetype-choice:has(input:checked) {
  border-color: color-mix(in srgb, var(--accent) 70%, var(--line));
  background: color-mix(in srgb, var(--accent) 10%, var(--surface-strong));
}

@media (max-width: 760px) {
  .clean-wizard-shell {
    min-height: calc(100dvh - 88px);
    padding: 8px 0 24px;
  }

  .wizard-actions-grid,
  .wizard-nav {
    grid-template-columns: 1fr;
    flex-direction: column;
  }

  .wizard-nav .btn {
    width: 100%;
  }

  .clean-wizard-card {
    border-radius: 24px;
  }
}


/* Player UI v34 - readable archetype cards */
.clean-step[data-clean-step="3"] h1 {
  font-size: clamp(1.9rem, 5.5vw, 3.1rem);
}

.clean-step[data-clean-step="3"] > .muted {
  font-size: 1.18rem;
  line-height: 1.55;
}

.archetype-choice {
  align-items: start;
  gap: 14px;
  padding: 18px 18px;
}

.archetype-choice input {
  width: 22px;
  height: 22px;
  margin-top: 10px;
}

.archetype-choice strong {
  font-size: 1.18rem;
  letter-spacing: .04em;
}

.archetype-choice em {
  font-size: 1.08rem;
  line-height: 1.35;
}

.archetype-choice small {
  font-size: 1rem;
  line-height: 1.38;
}

.archetype-choice small b {
  color: var(--text);
  font-weight: 800;
}

@media (max-width: 760px) {
  .archetype-choice-grid {
    gap: 14px;
  }

  .archetype-choice {
    padding: 18px 16px;
  }

  .archetype-choice strong {
    font-size: 1.15rem;
  }

  .archetype-choice em {
    font-size: 1.05rem;
  }

  .archetype-choice small {
    font-size: .98rem;
  }
}


/* Player UI v36 - restore stable player interactions */
#sigiloCard,
.clickable-sigilo,
#playerAvatarTrigger {
  cursor: pointer;
}

#playerCombatPanel.hidden {
  display: none !important;
}

#avatarSourceModal.hidden,
#sigiloModal.hidden {
  display: none !important;
}


/* Admin UI v37 - menu layout */
.admin-shell {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.admin-menu {
  position: sticky;
  top: 16px;
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: color-mix(in srgb, var(--surface-strong) 96%, transparent);
}

.admin-menu-title {
  padding: 8px 8px 12px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 6px;
}

.admin-menu-title strong {
  display: block;
  font-family: "Cinzel", Georgia, serif;
  font-size: 1.05rem;
}

.admin-tab {
  width: 100%;
  min-height: 42px;
  border: 1px solid transparent;
  border-radius: 16px;
  padding: 0 12px;
  text-align: left;
  color: var(--muted);
  background: transparent;
  font-weight: 800;
  cursor: pointer;
}

.admin-tab:hover,
.admin-tab.active {
  color: var(--text);
  border-color: var(--line);
  background: color-mix(in srgb, var(--accent) 12%, transparent);
}

.admin-content {
  min-width: 0;
}

.admin-view {
  display: none;
  gap: 18px;
}

.admin-view.active {
  display: grid;
}

.admin-hero {
  overflow: hidden;
}

.admin-shortcuts {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.admin-help-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.admin-help-grid div {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px;
  background: color-mix(in srgb, var(--surface-strong) 90%, transparent);
}

.admin-help-grid strong {
  display: block;
  font-family: "Cinzel", Georgia, serif;
}

.admin-help-grid span {
  display: block;
  margin-top: 4px;
  color: var(--muted);
}

.admin-wide-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-wide-form .btn {
  width: fit-content;
}

.print-area {
  min-height: 240px;
}

@media (max-width: 900px) {
  .admin-shell {
    grid-template-columns: 1fr;
  }

  .admin-menu {
    position: static;
    display: flex;
    overflow-x: auto;
    border-radius: 20px;
  }

  .admin-menu-title {
    display: none;
  }

  .admin-tab {
    flex: 0 0 auto;
    width: auto;
    white-space: nowrap;
  }

  .admin-wide-form,
  .admin-help-grid {
    grid-template-columns: 1fr;
  }
}

@media print {
  .admin-menu,
  .topbar,
  .admin-view:not([data-admin-view="qrs"]) {
    display: none !important;
  }

  .admin-shell {
    display: block;
  }

  .admin-view[data-admin-view="qrs"] {
    display: block !important;
  }
}


/* Admin UI v38 - compact users and edit modal */
.admin-user-list {
  display: grid;
  gap: 8px;
}

.admin-user-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.1fr) minmax(260px, 1.4fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 10px 12px;
  background: color-mix(in srgb, var(--surface-strong) 92%, transparent);
}

.admin-user-main {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.admin-user-main .avatar {
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
}

.admin-user-name {
  display: grid;
  min-width: 0;
}

.admin-user-name strong {
  line-height: 1.1;
}

.admin-user-name span,
.admin-user-meta span {
  color: var(--muted);
  font-size: .92rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.admin-user-meta {
  display: grid;
  min-width: 0;
}

.admin-user-meta > span:first-child {
  color: var(--text);
  font-weight: 800;
}

.admin-user-meta.empty > span:first-child {
  color: var(--muted);
}

.admin-user-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.compact-button {
  min-height: 36px;
  padding: 0 12px;
}

.admin-user-modal-card {
  width: min(860px, 100%);
}

.modal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-start;
}

.compact-head {
  margin-top: 4px;
}

.soft-line {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 18px 0;
}

@media (max-width: 900px) {
  .admin-user-row {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .admin-user-actions {
    justify-content: flex-start;
  }

  .admin-user-name span,
  .admin-user-meta span {
    white-space: normal;
  }
}

#avatarCanvas{touch-action:none;user-select:none;max-width:100%;}
#playerAvatarTrigger{cursor:pointer;}


/* v47 - input de arquivo do avatar não usa display:none para não bloquear câmera/galeria em celulares */
.avatar-file-input {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Player UI v49 - administração de grupo em sobre-tela e busca compacta */
.group-admin-modal {
  align-items: start;
  padding: 12px;
}

.group-admin-modal-card {
  width: min(720px, 100%);
  max-height: calc(100dvh - 24px);
}

.group-admin-modal-card .leader-tools-grid {
  grid-template-columns: minmax(120px, 150px) minmax(0, 1fr);
}

.group-admin-qr-block {
  display: grid;
  gap: 8px;
  align-content: start;
}

.compact-metaforma-list {
  display: grid;
  gap: 6px;
  max-height: min(46dvh, 380px);
  overflow-y: auto;
  padding-right: 2px;
  -webkit-overflow-scrolling: touch;
}

.compact-metaforma-row {
  width: 100%;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: color-mix(in srgb, var(--surface) 90%, transparent);
  color: var(--text);
  text-align: left;
  font: inherit;
}

.compact-metaforma-row:active,
.compact-metaforma-row:focus-visible {
  border-color: color-mix(in srgb, var(--accent) 70%, var(--line));
  outline: none;
}

.compact-metaforma-row.is-sending {
  opacity: .6;
}

.compact-metaforma-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface-strong) 80%, transparent);
  font-weight: 800;
}

.compact-metaforma-main {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.compact-metaforma-main strong,
.compact-metaforma-main small {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.compact-metaforma-main small {
  color: var(--muted);
  font-size: .82rem;
}

.compact-metaforma-stats {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  justify-content: end;
  max-width: 180px;
}

.compact-metaforma-stats b {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 2px 6px;
  font-size: .72rem;
  line-height: 1.2;
  white-space: nowrap;
  color: var(--muted);
  font-weight: 700;
}

.compact-empty {
  margin: 0;
  padding: 8px 2px;
}

@media (max-width: 760px) {
  .group-admin-modal-card .leader-tools-grid {
    grid-template-columns: 1fr;
  }

  .group-admin-qr-block {
    justify-items: start;
  }

  .compact-metaforma-row {
    grid-template-columns: 30px minmax(0, 1fr);
  }

  .compact-metaforma-stats {
    grid-column: 2;
    justify-content: start;
    max-width: 100%;
  }
}

/* Player UI v50 - administração de grupo em modal de tela inteira */
body.group-admin-open {
  overflow: hidden;
}

body.group-admin-open #leaderGroupTools:not(.hidden) {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  min-height: 100dvh !important;
  z-index: 5000 !important;
  display: block !important;
  padding: max(12px, env(safe-area-inset-top)) 12px max(22px, env(safe-area-inset-bottom)) 12px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch;
  box-sizing: border-box;
  background: rgba(0, 0, 0, .64);
}

body.group-admin-open #leaderGroupTools .group-admin-modal-card {
  width: min(720px, 100%) !important;
  max-height: none !important;
  min-height: auto !important;
  overflow: visible !important;
  margin: 0 auto !important;
  box-sizing: border-box;
}

body.group-admin-open #leaderGroupTools .compact-metaforma-list {
  max-height: none !important;
  overflow: visible !important;
  padding-right: 0 !important;
}

@media (max-width: 760px) {
  body.group-admin-open #leaderGroupTools:not(.hidden) {
    padding: max(8px, env(safe-area-inset-top)) 8px max(18px, env(safe-area-inset-bottom)) 8px !important;
  }

  body.group-admin-open #leaderGroupTools .group-admin-modal-card {
    width: 100% !important;
    border-radius: 18px;
  }
}


/* Player UI v51 - nome de grupo já alterado: aviso único e limpo */
.rename-used-note {
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, #df9a3c 45%, var(--line));
  border-radius: 14px;
  background: color-mix(in srgb, #df9a3c 10%, transparent);
  color: color-mix(in srgb, #df9a3c 88%, var(--text));
  line-height: 1.35;
}

.rename-used-note p {
  margin: 0;
}

.rename-used-note .eyebrow {
  margin-bottom: 6px;
}

/* Player UI v52 - bloqueio temporário de convite após duas recusas */
.compact-metaforma-row.is-invite-blocked {
  opacity: .88;
  cursor: not-allowed;
  border-color: color-mix(in srgb, #d34b4b 45%, var(--line));
  background: color-mix(in srgb, #d34b4b 8%, var(--surface));
}

.compact-metaforma-row.is-invite-blocked .compact-metaforma-avatar,
.compact-metaforma-row.is-invite-blocked .compact-metaforma-stats b {
  border-color: color-mix(in srgb, #d34b4b 42%, var(--line));
}

.invite-block-alert {
  display: block;
  margin-top: 3px;
  color: #f07171;
  font-size: .76rem;
  font-style: normal;
  font-weight: 800;
  line-height: 1.2;
  white-space: normal;
}

/* v54: ajustes de combate, Guardião e Pulso centralizado */
.combat-person-line {
  align-items: flex-start;
}

.combat-member-main {
  min-width: 0;
}

.combat-member-actions {
  display: flex;
  flex-direction: column;
  gap: .45rem;
  align-items: center;
}

.combat-pulse-slot {
  display: inline-flex;
  gap: .25rem;
  margin-top: .35rem;
  padding: .28rem .5rem;
  border: 1px solid var(--border, rgba(255,255,255,.12));
  border-radius: 999px;
  font-size: .78rem;
  opacity: .86;
}

.combat-pulse-slot.has-pulse {
  opacity: 1;
  border-color: rgba(76, 175, 80, .45);
  background: rgba(76, 175, 80, .10);
}

.combat-pulse-form {
  justify-content: center;
  align-items: center;
  gap: .4rem;
  width: 100%;
}

.combat-pulse-form input {
  flex: 0 0 4.5rem;
  width: 4.5rem;
  min-width: 4.5rem;
  text-align: center;
}

.combat-guardian-sigilo {
  margin-top: .85rem;
}

@media (max-width: 720px) {
  .combat-member-card {
    gap: .65rem;
  }

  .combat-member-actions {
    align-items: center;
    width: 100%;
  }

  .combat-pulse-form {
    justify-content: center;
    width: 100%;
  }

  .combat-pulse-form input {
    flex: 0 0 4.25rem;
  }

  .combat-pulse-form button {
    flex: 0 0 auto;
  }
}

/* v55 - Mestre: grupos fora de combate em linhas compactas */
.master-group-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  background: color-mix(in srgb, var(--surface-strong) 70%, transparent);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px 14px;
}

.master-group-row.is-locked {
  border-color: color-mix(in srgb, var(--danger) 38%, var(--line));
}

.master-group-main {
  min-width: 0;
  display: grid;
  gap: 8px;
}

.master-group-title-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
}

.master-group-status,
.master-combat-lock {
  color: var(--muted);
  font-size: .86rem;
}

.danger-text,
.master-combat-lock {
  color: var(--danger);
}

.master-group-members-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
}

.master-member-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface) 75%, transparent);
  border-radius: 999px;
  padding: 4px 8px 4px 4px;
  font-size: .86rem;
  line-height: 1;
  white-space: nowrap;
}

.master-member-chip.is-leader {
  border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
}

.master-member-avatar {
  width: 26px;
  height: 26px;
  border-width: 1px;
  font-size: .75rem;
}

.master-group-action {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

@media (max-width: 720px) {
  .master-group-row {
    grid-template-columns: 1fr;
  }

  .master-group-action {
    justify-content: stretch;
  }

  .master-group-action .btn {
    width: 100%;
  }
}

/* v56 - Mestre: combate responsivo e ações em ordem clara */
.master-combat-member-row {
  align-items: center;
  gap: 12px;
}

.master-combat-member-info {
  min-width: 0;
}

.master-combat-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  margin-left: auto;
}

.master-status-btn {
  min-width: 78px;
}

.master-enemy-attack-form {
  margin-left: auto;
}

.master-enemy-attack-form button {
  min-width: 84px;
}

.turn-action-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  min-width: 86px;
  padding: 0 14px;
  border-radius: 14px;
  border: 1px solid var(--line);
  font-family: "Cinzel", Georgia, serif;
  font-size: .86rem;
  font-weight: 800;
  cursor: pointer;
  user-select: none;
  transition: transform .12s ease, border-color .12s ease, background .12s ease;
}

.turn-action-button input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 1px;
  height: 1px;
}

.turn-action-button.is-pending {
  color: #ffd56d;
  border-color: color-mix(in srgb, #ffd56d 50%, var(--line));
  background: color-mix(in srgb, #ffd56d 14%, var(--surface-strong));
}

.turn-action-button.is-done {
  color: #9be58f;
  border-color: color-mix(in srgb, #74d66a 55%, var(--line));
  background: color-mix(in srgb, #74d66a 18%, var(--surface-strong));
}

.turn-action-button:not(.is-done):active {
  transform: scale(.98);
}

@media (max-width: 820px) {
  .master-combat-member-row {
    align-items: stretch;
    flex-direction: column;
  }

  .master-combat-actions {
    width: 100%;
    justify-content: flex-start;
    margin-left: 0;
  }

  .master-status-btn,
  .turn-action-button {
    flex: 1 1 calc(33.333% - 8px);
    min-width: 0;
  }

  .master-enemy-attack-form {
    width: 100%;
    margin-left: 0;
    order: 10;
  }

  .master-enemy-attack-form input {
    min-width: 0;
    flex: 1;
  }

  .master-enemy-attack-form button {
    flex: 0 0 auto;
  }
}

@media (max-width: 420px) {
  .master-combat-actions {
    gap: 7px;
  }

  .master-status-btn,
  .turn-action-button {
    min-height: 40px;
    padding-left: 8px;
    padding-right: 8px;
    font-size: .8rem;
  }

  .master-enemy-attack-form {
    gap: 7px;
  }
}

/* v57 - anel circular de vitalidade + botao Agiu padronizado */
:root {
  --hp-green: #62d66f;
  --hp-yellow: #f2c94c;
  --hp-red: #eb5757;
  --hp-neutral: color-mix(in srgb, var(--muted) 55%, var(--line));
}

.health-avatar-wrap {
  --hp-size: 48px;
  --hp-ring-deg: 360deg;
  --hp-ring-color: var(--hp-green);
  width: var(--hp-size);
  height: var(--hp-size);
  padding: 3px;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  background:
    conic-gradient(var(--hp-ring-color) var(--hp-ring-deg), color-mix(in srgb, var(--line) 75%, transparent) 0deg);
  box-shadow: 0 8px 22px rgba(0,0,0,.16);
  transition: background .2s ease, transform .14s ease;
}

.health-avatar-wrap > .avatar {
  width: 100% !important;
  height: 100% !important;
  border: 2px solid var(--surface-strong) !important;
  outline: none !important;
  box-shadow: none !important;
  margin: 0;
}

.health-avatar-wrap.health-avatar-sm {
  --hp-size: 32px;
  padding: 2px;
  box-shadow: none;
}

.health-avatar-wrap.health-avatar-hero {
  --hp-size: 98px;
  padding: 5px;
  margin: 0 auto;
}

.health-avatar-wrap.health-avatar-neutral {
  --hp-ring-deg: 0deg;
  --hp-ring-color: var(--hp-neutral);
}

.clickable-avatar:hover .health-avatar-wrap {
  transform: translateY(-1px);
}

.turn-action-button {
  font-family: inherit;
  font-size: inherit;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: none;
}

.turn-action-button span {
  font: inherit;
}

@media (max-width: 420px) {
  .health-avatar-wrap.health-avatar-hero {
    --hp-size: 96px;
  }
}


/* v58 - ajuste do avatar principal da ficha do jogador */
.player-hero-main {
  grid-template-columns: 104px minmax(0, 1fr);
  gap: 12px 18px;
}

.player-meta-col {
  min-width: 0;
  padding-left: 4px;
}

.player-name {
  overflow-wrap: anywhere;
}

.health-avatar-wrap.health-avatar-hero {
  --hp-size: 92px;
  padding: 3px;
}

.health-avatar-wrap.health-avatar-hero > .avatar {
  border-width: 2px !important;
}

@media (max-width: 760px) {
  .player-hero-main {
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 10px 14px;
  }

  .health-avatar-wrap.health-avatar-hero {
    --hp-size: 88px;
    padding: 3px;
  }

  .player-meta-col {
    padding-left: 2px;
  }
}

@media (max-width: 380px) {
  .player-hero-main {
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 10px 12px;
  }

  .health-avatar-wrap.health-avatar-hero {
    --hp-size: 82px;
    padding: 2px;
  }

  .player-name {
    font-size: clamp(1.45rem, 7vw, 1.85rem);
  }
}


/* v59 - Combate: textos do jogador e botão Agiu padronizado no Mestre */
.combat-member-card.dead {
  opacity: .72;
}

.combat-member-card.dead .combat-member-main strong {
  color: var(--danger);
}

.combat-action-state {
  min-width: 104px;
}

.master-combat-actions .btn,
.master-combat-actions .turn-action-button {
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: .84rem !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.master-combat-actions .turn-action-button span {
  font: inherit !important;
}

@media (max-width: 420px) {
  .master-combat-actions .btn,
  .master-combat-actions .turn-action-button {
    font-size: .8rem !important;
  }

  .combat-action-state {
    min-width: 0;
  }
}


/* v60 - ajuste de Metaforma morta e alinhamento do botão Agiu */
.combat-member-card.dead {
  justify-content: center;
  text-align: center;
}

.combat-member-card.dead .combat-person-line {
  width: 100%;
  justify-content: center;
  text-align: center;
}

.combat-member-card.dead .combat-member-main {
  text-align: center;
}

.master-combat-actions .turn-action-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  min-height: 42px !important;
  line-height: 1 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  vertical-align: middle !important;
}

.master-combat-actions .turn-action-button span {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  min-height: 1em;
  transform: translateY(0) !important;
}

@media (max-width: 420px) {
  .master-combat-actions .turn-action-button {
    min-height: 40px !important;
  }
}

/* v61 - morto alinhado e Agiu reversível/centralizado */
.combat-member-card.dead {
  justify-content: flex-start;
  text-align: left;
  align-items: center;
  min-height: 72px;
}

.combat-member-card.dead .combat-person-line {
  width: 100%;
  justify-content: flex-start;
  align-items: center !important;
  text-align: left;
}

.combat-member-card.dead .combat-member-main {
  display: flex;
  align-items: center;
  min-height: var(--hp-size, 44px);
  text-align: left;
}

.combat-member-card.dead .combat-member-main strong {
  display: block;
  line-height: 1.2;
}

.master-combat-actions .turn-action-button {
  height: 42px !important;
  min-height: 42px !important;
  padding: 0 16px !important;
  line-height: 42px !important;
}

.master-combat-actions .turn-action-button span {
  height: 100%;
  line-height: 42px !important;
  display: block !important;
  transform: none !important;
}

@media (max-width: 760px) {
  .combat-member-card.dead {
    flex-direction: row;
    align-items: center;
  }
}

@media (max-width: 420px) {
  .master-combat-actions .turn-action-button {
    height: 40px !important;
    min-height: 40px !important;
    line-height: 40px !important;
  }

  .master-combat-actions .turn-action-button span {
    line-height: 40px !important;
  }
}


/* v62 - Mestre: dano direto e Cura/Reviver */
.direct-damage-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 42px;
  padding: 0 10px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--danger) 42%, var(--line));
  color: color-mix(in srgb, var(--danger) 86%, #fff);
  background: color-mix(in srgb, var(--danger) 10%, var(--surface-strong));
  font-size: .78rem;
  font-weight: 800;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
}

.direct-damage-toggle input {
  width: 16px !important;
  height: 16px;
  min-height: 0 !important;
  flex: 0 0 auto !important;
  accent-color: var(--danger);
}

.master-enemy-attack-form {
  align-items: center;
}

@media (max-width: 820px) {
  .master-enemy-attack-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .master-enemy-attack-form input[name="ataque_inimigo"] {
    grid-column: 1 / -1;
    width: 100%;
  }

  .direct-damage-toggle {
    min-width: 0;
    width: 100%;
  }

  .master-enemy-attack-form button {
    width: 100%;
  }
}

@media (max-width: 420px) {
  .direct-damage-toggle {
    font-size: .74rem;
    padding: 0 8px;
  }
}


/* v63 - Mestre: Direto compacto e campo Ataque menor */
.master-enemy-attack-form input[name="ataque_inimigo"] {
  width: 108px;
  flex: 0 0 108px;
  text-align: center;
}

.direct-damage-toggle {
  justify-content: center;
  text-align: center;
  min-width: 92px;
  padding-left: 10px;
  padding-right: 10px;
}

.direct-damage-toggle span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  flex: 1 1 auto;
  text-align: center;
}

@media (max-width: 820px) {
  .master-enemy-attack-form {
    grid-template-columns: minmax(78px, 108px) minmax(84px, auto) minmax(82px, auto);
    justify-content: end;
  }

  .master-enemy-attack-form input[name="ataque_inimigo"] {
    grid-column: auto;
    width: 100%;
    min-width: 0;
    flex: initial;
  }

  .direct-damage-toggle {
    width: auto;
    min-width: 84px;
  }
}

@media (max-width: 520px) {
  .master-enemy-attack-form {
    grid-template-columns: minmax(74px, 1fr) minmax(82px, .9fr) minmax(78px, .85fr);
    width: 100%;
    gap: 7px;
  }

  .master-enemy-attack-form input[name="ataque_inimigo"],
  .direct-damage-toggle,
  .master-enemy-attack-form button {
    min-height: 40px;
  }
}

@media (max-width: 360px) {
  .direct-damage-toggle {
    padding-left: 6px;
    padding-right: 6px;
    font-size: .72rem;
  }
}

/* v64 - Mestre: PVT compacto, Curar e controles alinhados */
.master-enemy-attack-form input[name="ataque_inimigo"] {
  width: 86px !important;
  flex: 0 0 86px !important;
  min-width: 0 !important;
  padding-left: 8px;
  padding-right: 8px;
  text-align: center;
}

.direct-damage-toggle {
  height: 42px !important;
  min-height: 42px !important;
  min-width: 80px !important;
  padding: 0 9px !important;
  box-sizing: border-box;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px;
  line-height: 1 !important;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: .84rem !important;
  font-weight: 800 !important;
}

.direct-damage-toggle input {
  margin: 0 !important;
  align-self: center !important;
  transform: none !important;
}

.direct-damage-toggle span {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 100% !important;
  line-height: 1 !important;
  flex: 0 0 auto !important;
  transform: none !important;
}

@media (max-width: 820px) {
  .master-enemy-attack-form {
    grid-template-columns: minmax(68px, 86px) minmax(74px, auto) minmax(78px, auto) !important;
    justify-content: end;
  }

  .master-enemy-attack-form input[name="ataque_inimigo"] {
    width: 100% !important;
    flex: initial !important;
  }

  .direct-damage-toggle {
    min-width: 74px !important;
    width: auto !important;
  }
}

@media (max-width: 520px) {
  .master-enemy-attack-form {
    grid-template-columns: minmax(64px, .75fr) minmax(72px, .75fr) minmax(76px, .8fr) !important;
  }

  .direct-damage-toggle {
    font-size: .8rem !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
  }
}

/* v65 - Mestre: Direto neutro e Morra */
.direct-damage-toggle {
  border-color: var(--line) !important;
  color: var(--text) !important;
  background: var(--surface-strong) !important;
  height: 42px !important;
  min-height: 42px !important;
  line-height: 42px !important;
  align-items: center !important;
  justify-content: center !important;
  vertical-align: middle !important;
}

.direct-damage-toggle input {
  display: block !important;
  position: relative !important;
  top: 0 !important;
  margin: 0 !important;
  align-self: center !important;
}

.direct-damage-toggle span {
  display: block !important;
  height: auto !important;
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative !important;
  top: 0 !important;
  transform: none !important;
  align-self: center !important;
  text-align: center !important;
}

/* v66 — mensagens do app em sobre-tela própria */
/* v67 — centraliza o modal também em telas de smartphone */
body.forum-dialog-open {
  overflow: hidden;
}

.forum-dialog-backdrop {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(3, 6, 12, .72);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  animation: forumDialogFade .12s ease-out;
}

.forum-dialog-backdrop.closing {
  animation: forumDialogFadeOut .12s ease-in forwards;
}

.forum-dialog-card {
  width: min(420px, 100%);
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
  background: var(--surface-strong);
  color: var(--text);
  border: 1px solid var(--line);
  border-radius: 24px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .42);
  padding: 22px;
  text-align: center;
  display: grid;
  gap: 12px;
  overscroll-behavior: contain;
}

.forum-dialog-rune {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  justify-self: center;
  border: 1px solid var(--accent-soft);
  border-radius: 999px;
  background: rgba(218, 177, 119, .12);
  color: var(--accent);
  font-size: 20px;
  line-height: 1;
}

.forum-dialog-card h2 {
  margin: 0;
  font-size: clamp(1.1rem, 4vw, 1.35rem);
  letter-spacing: .02em;
}

.forum-dialog-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
  font-size: .98rem;
  overflow-wrap: anywhere;
}

.forum-dialog-actions {
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.forum-dialog-actions .btn {
  min-width: 118px;
  justify-content: center;
}

.forum-toast-stack {
  position: fixed;
  right: max(14px, env(safe-area-inset-right));
  bottom: max(16px, env(safe-area-inset-bottom));
  z-index: 8990;
  display: grid;
  gap: 8px;
  width: min(360px, calc(100vw - 28px));
  pointer-events: none;
}

.forum-toast {
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface-strong);
  color: var(--text);
  box-shadow: 0 16px 44px rgba(0, 0, 0, .34);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .16s ease, transform .16s ease;
  overflow-wrap: anywhere;
  line-height: 1.35;
  font-size: .94rem;
}

.forum-toast-with-avatar {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 8px 12px 8px 8px;
}

.forum-toast-avatar {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--line) 74%, transparent);
  background: color-mix(in srgb, var(--surface-2) 82%, rgba(0,0,0,.28));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  font-family: var(--font-title);
  font-weight: 800;
  letter-spacing: .04em;
  flex: 0 0 auto;
}

.forum-toast-avatar img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.forum-toast-message {
  min-width: 0;
}

.forum-toast-one-line,
.forum-toast-one-line .forum-toast-message {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow-wrap: normal;
}

.forum-toast-chronicle {
  border-color: color-mix(in srgb, var(--accent) 32%, var(--line));
  background: color-mix(in srgb, var(--surface-strong) 94%, rgba(0,0,0,.28));
}

body.player-combat-quickbar-active .forum-toast-stack {
  bottom: calc(124px + env(safe-area-inset-bottom, 0px));
}

.forum-toast.visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 520px) {
  .forum-dialog-backdrop {
    align-items: center;
    justify-items: center;
    place-items: center;
    padding: 12px;
  }

  .forum-dialog-card {
    width: 100%;
    border-radius: 22px;
    padding: 18px;
  }

  .forum-dialog-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .forum-dialog-actions .btn {
    width: 100%;
  }

  .forum-toast-stack {
    right: 12px;
    left: 12px;
    width: auto;
  }

  body.player-combat-quickbar-active .forum-toast-stack {
    bottom: calc(86px + env(safe-area-inset-bottom, 0px));
  }
}

@keyframes forumDialogFade {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes forumDialogFadeOut {
  from { opacity: 1; }
  to { opacity: 0; }
}

/* v68 - Mestre: Forja de Monstros e Desafios */
.master-shell {
  display: grid;
  gap: 16px;
}

.master-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: color-mix(in srgb, var(--surface-strong) 52%, transparent);
}

.master-tab {
  min-height: 42px;
  border: 1px solid transparent;
  border-radius: 14px;
  padding: 0 14px;
  background: transparent;
  color: var(--muted);
  font-weight: 900;
  cursor: pointer;
}

.master-tab.active {
  background: color-mix(in srgb, var(--accent) 18%, var(--surface-strong));
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
  color: var(--text);
}

.master-view {
  display: grid;
  gap: 14px;
}

.master-builder-form {
  display: grid;
  gap: 14px;
}

.master-builder-head {
  align-items: center;
}

.master-monster-grid {
  grid-template-columns: 1.4fr .9fr .55fr .55fr .75fr;
}

textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px 14px;
  background: color-mix(in srgb, var(--surface-strong) 74%, transparent);
  color: var(--text);
  font: inherit;
  resize: vertical;
}

.file-input-stealth {
  position: fixed;
  left: -100vw;
  top: auto;
  width: 1px;
  height: 1px;
  opacity: .01;
  pointer-events: none;
}

.master-avatar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.master-monster-preview {
  display: grid;
  place-items: center;
  min-width: 58px;
}

.health-avatar-wrap.health-avatar-xs {
  --hp-size: 28px;
  padding: 2px;
  box-shadow: none;
}

.master-monster-avatar {
  font-size: .8rem;
}

.master-entity-row {
  align-items: center;
  gap: 12px;
}

.master-entity-row .person-line {
  min-width: 0;
}

.master-entity-row .person-line > div,
.master-challenge-main {
  min-width: 0;
}

.master-entity-actions {
  justify-content: flex-end;
  flex-wrap: wrap;
}

.master-entity-description {
  margin-top: 4px;
  font-size: .86rem;
}

.compact-head {
  margin-bottom: 8px;
}

.compact-list {
  margin-top: 0;
}

.challenge-monster-picker {
  display: grid;
  gap: 8px;
}

.challenge-monster-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 8px 10px;
  background: color-mix(in srgb, var(--surface-strong) 62%, transparent);
  cursor: pointer;
}

.challenge-monster-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.challenge-monster-option.is-selected {
  border-color: color-mix(in srgb, var(--accent) 65%, var(--line));
  background: color-mix(in srgb, var(--accent) 14%, var(--surface-strong));
}

.challenge-monster-option span {
  min-width: 0;
}

.challenge-monster-option small {
  display: block;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.25;
}

.master-challenge-row {
  grid-template-columns: minmax(0, 1fr) auto;
}

.challenge-monster-line {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}

.challenge-monster-group {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.mini-label {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-right: 2px;
}

.challenge-monster-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 4px 8px 4px 4px;
  background: color-mix(in srgb, var(--surface) 80%, transparent);
  font-size: .82rem;
  line-height: 1;
}

.challenge-monster-chip.is-boss {
  border-color: color-mix(in srgb, var(--danger) 38%, var(--line));
}

@media (max-width: 820px) {
  .master-monster-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 600px) {
  .master-tabs {
    display: grid;
    grid-template-columns: 1fr;
  }

  .master-tab {
    width: 100%;
  }

  .master-monster-grid {
    grid-template-columns: 1fr;
  }

  .master-builder-head {
    align-items: start;
  }

  .master-entity-row,
  .master-challenge-row {
    grid-template-columns: 1fr;
  }

  .master-entity-actions,
  .master-entity-actions .btn {
    width: 100%;
  }

  .master-entity-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .master-avatar-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .master-avatar-actions .btn {
    width: 100%;
  }
}


/* v69 - Avatar dos monstros: editor de ajuste e contenção da moldura */
.health-avatar-wrap {
  overflow: hidden;
}

.health-avatar-wrap > img.avatar,
.health-avatar-wrap > .avatar.master-monster-avatar {
  display: block;
  object-fit: cover;
  border-radius: 999px;
}

.master-monster-preview .health-avatar-wrap {
  --hp-size: 64px;
}

.master-entity-row .health-avatar-wrap {
  overflow: hidden;
}

.master-entity-row .health-avatar-wrap > img.avatar {
  max-width: 100%;
  max-height: 100%;
}

/* v70 - responsividade da Forja e ajuste explícito de avatar */
.master-view,
#masterMonsters,
#masterChallenges,
.master-builder-form,
.master-builder-form *,
.master-entity-row,
.master-challenge-row {
  min-width: 0;
  max-width: 100%;
}

.form-grid {
  display: grid;
  gap: 10px;
}

.master-builder-form {
  width: 100%;
  overflow: hidden;
}

.master-builder-form label,
.master-builder-form input,
.master-builder-form select,
.master-builder-form textarea {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.master-builder-head {
  gap: 12px;
}

.master-monster-preview {
  justify-items: center;
  align-items: center;
}

.health-avatar-wrap > .avatar-placeholder.master-monster-avatar,
.health-avatar-wrap > .avatar-placeholder {
  display: grid !important;
  place-items: center !important;
  text-align: center;
  line-height: 1;
}

.health-avatar-wrap > img.avatar.master-monster-avatar {
  display: block !important;
  object-fit: cover !important;
  object-position: center center !important;
}

.master-monster-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.avatar-zoom-controls {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  margin: 10px 0 14px;
}

.avatar-zoom-controls span {
  color: var(--muted);
  font-weight: 900;
  font-size: .82rem;
}

.avatar-zoom-controls input[type="range"] {
  min-height: 36px;
  padding: 0;
}

.avatar-editor-actions {
  flex-wrap: wrap;
}

@media (max-width: 600px) {
  .master-builder-form.card-mini,
  #masterMonsters > .card-mini,
  #masterChallenges > .card-mini {
    padding: 12px;
    border-radius: 18px;
    overflow: hidden;
  }

  .master-builder-head {
    display: grid;
    grid-template-columns: 1fr;
  }

  .master-monster-preview {
    width: 100%;
    justify-content: center;
  }

  .master-avatar-actions,
  .master-monster-form-actions,
  .avatar-editor-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .master-avatar-actions .btn,
  .master-monster-form-actions .btn,
  .avatar-editor-actions .btn {
    width: 100%;
  }

  .master-entity-row .person-line {
    align-items: center;
  }

  .master-entity-actions {
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }
}

@media (max-width: 380px) {
  .master-entity-actions {
    grid-template-columns: 1fr;
  }
}

/* v71 - Mestre: escolher desafio ao iniciar combate */
.start-combat-dialog-card {
  width: min(560px, 100%);
}

.start-combat-group-name {
  margin-top: -4px;
}

.start-combat-challenge-list {
  display: grid;
  gap: 8px;
  margin: 14px 0 4px;
}

.start-combat-challenge-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: color-mix(in srgb, var(--surface-strong) 76%, transparent);
  cursor: pointer;
  text-align: left;
}

.start-combat-challenge-option input {
  width: 18px;
  height: 18px;
  accent-color: var(--accent);
}

.start-combat-challenge-option.is-selected {
  border-color: color-mix(in srgb, var(--accent) 60%, var(--line));
  background: color-mix(in srgb, var(--accent) 16%, var(--surface-strong));
}

.start-combat-challenge-text {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.start-combat-challenge-text strong {
  overflow-wrap: anywhere;
}

.start-combat-challenge-text small,
.start-combat-challenge-text em {
  color: var(--muted);
  font-size: .84rem;
  line-height: 1.25;
}

.start-combat-challenge-text em {
  font-style: normal;
}

.start-combat-empty {
  margin: 12px 0 4px;
  padding: 12px;
  border: 1px dashed var(--line);
  border-radius: 16px;
  background: color-mix(in srgb, var(--surface) 58%, transparent);
}

.start-combat-dialog-actions {
  margin-top: 14px;
}

@media (max-width: 520px) {
  .start-combat-dialog-card {
    width: 100%;
    padding: 18px;
  }

  .start-combat-dialog-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .start-combat-dialog-actions .btn {
    width: 100%;
  }
}

/* v72 - Mestre: monstros do desafio no combate */
.master-combat-monsters {
  margin-top: 14px;
  background: color-mix(in srgb, var(--surface-strong) 52%, transparent);
}

.master-combat-monster-group + .master-combat-monster-group {
  margin-top: 12px;
}

.master-combat-monster-row {
  align-items: center;
  gap: 12px;
  border-color: color-mix(in srgb, var(--line) 82%, transparent);
}

.master-combat-monster-row.is-boss {
  border-color: color-mix(in srgb, var(--danger) 42%, var(--line));
  background: color-mix(in srgb, var(--danger) 8%, var(--surface-strong));
}

.master-combat-monster-row.is-dead {
  opacity: .72;
}

.master-combat-monster-row.is-dead strong {
  color: var(--danger);
}

.master-combat-monster-info {
  min-width: 0;
}

.master-combat-monster-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  margin-left: auto;
}

.master-monster-status-btn {
  min-width: 76px;
}

.master-monster-attack-form {
  display: grid;
  grid-template-columns: minmax(72px, 86px) minmax(74px, auto) minmax(112px, auto);
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.master-monster-attack-form input[name="ataque_recebido"] {
  width: 86px !important;
  min-width: 0 !important;
  padding-left: 8px;
  padding-right: 8px;
  text-align: center;
}

.master-monster-attack-form .btn {
  min-width: 112px;
  white-space: nowrap;
}

.master-monster-attack-sources {
  grid-column: 1 / -1;
  display: grid;
  gap: 6px;
  justify-items: end;
}

.master-monster-source-list {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 6px;
}

.monster-source-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 30px;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface) 72%, transparent);
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
  cursor: pointer;
  user-select: none;
}

.monster-source-chip input {
  width: 14px;
  height: 14px;
  margin: 0;
  accent-color: var(--accent);
}

.monster-source-chip:has(input:checked) {
  color: var(--text);
  border-color: color-mix(in srgb, var(--accent) 58%, var(--line));
  background: color-mix(in srgb, var(--accent) 16%, var(--surface-strong));
}

.master-monster-source-empty {
  text-align: right;
  margin: 0;
  font-size: .8rem;
}

.master-combat-monster-actions .btn,
.master-combat-monster-actions .direct-damage-toggle {
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: .84rem !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

@media (max-width: 900px) {
  .master-combat-monster-row {
    align-items: stretch;
    flex-direction: column;
  }

  .master-combat-monster-actions {
    width: 100%;
    justify-content: flex-start;
    margin-left: 0;
  }

  .master-monster-status-btn {
    flex: 1 1 calc(50% - 8px);
  }

  .master-monster-attack-form {
    width: 100%;
    margin-left: 0;
    grid-template-columns: minmax(64px, .75fr) minmax(72px, .75fr) minmax(104px, .9fr);
  }

  .master-monster-attack-form input[name="ataque_recebido"] {
    width: 100% !important;
  }

  .master-monster-attack-sources,
  .master-monster-source-list,
  .master-monster-source-empty {
    justify-items: start;
    justify-content: flex-start;
    text-align: left;
  }
}

@media (max-width: 520px) {
  .master-combat-monsters.card-mini {
    padding: 12px;
  }

  .master-combat-monster-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .master-monster-attack-form {
    grid-column: 1 / -1;
    grid-template-columns: minmax(62px, .75fr) minmax(72px, .75fr) minmax(104px, 1fr);
    gap: 7px;
  }

  .master-monster-attack-form .btn,
  .master-monster-attack-form .direct-damage-toggle,
  .master-monster-attack-form input[name="ataque_recebido"] {
    min-height: 40px;
  }

  .monster-source-chip {
    font-size: .74rem;
    padding: 4px 7px;
  }
}

@media (max-width: 380px) {
  .master-monster-attack-form {
    grid-template-columns: 1fr 1fr;
  }

  .master-monster-attack-form .btn {
    grid-column: 1 / -1;
    width: 100%;
  }
}

/* v73 - Mestre: fontes de ataque em modal e responsividade dos monstros */
:root {
  --hp-monster-blue: #18e7ff;
  --hp-monster-purple: #a66cff;
}

.combat-source-picker {
  min-width: 0 !important;
  max-width: 100%;
  height: 42px !important;
  min-height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 10px !important;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: .84rem !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.combat-source-picker.has-selection {
  color: var(--text) !important;
  border-color: color-mix(in srgb, var(--accent) 55%, var(--line)) !important;
  background: color-mix(in srgb, var(--accent) 16%, var(--surface-strong)) !important;
}

.master-enemy-attack-form,
.master-monster-attack-form {
  box-sizing: border-box;
  max-width: 100%;
}

.master-enemy-attack-form {
  display: grid !important;
  grid-template-columns: minmax(88px, 120px) 76px 80px 84px !important;
  align-items: center !important;
  gap: 8px !important;
}

.master-enemy-attack-form input[name="ataque_inimigo"] {
  width: 100% !important;
  min-width: 0 !important;
  flex: initial !important;
}

.master-enemy-attack-form .direct-damage-toggle,
.master-enemy-attack-form .btn,
.master-monster-attack-form .direct-damage-toggle,
.master-monster-attack-form .btn,
.master-monster-attack-form input[name="ataque_recebido"] {
  width: 100% !important;
  min-width: 0 !important;
}

.master-monster-attack-form {
  display: grid !important;
  grid-template-columns: minmax(88px, 1fr) 76px 80px minmax(106px, 1fr) !important;
  align-items: center !important;
  gap: 8px !important;
  width: min(100%, 460px) !important;
  margin-left: auto !important;
}

.master-monster-attack-form input[name="ataque_recebido"] {
  width: 100% !important;
  min-width: 0 !important;
  padding-left: 8px;
  padding-right: 8px;
  text-align: center;
}

.master-combat-monster-actions {
  max-width: 100%;
}

.master-combat-monster-actions .master-monster-status-btn {
  min-width: 0 !important;
}

.combat-source-dialog-card {
  width: min(460px, calc(100vw - 28px));
  max-height: min(82vh, 720px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.combat-source-dialog-card > p {
  margin-bottom: 10px;
}

.combat-source-option-list {
  display: grid;
  gap: 8px;
  max-height: min(52vh, 440px);
  overflow: auto;
  padding: 2px;
  margin: 6px 0 10px;
}

.combat-source-option {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: color-mix(in srgb, var(--surface-strong) 78%, transparent);
  color: var(--text);
  padding: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  text-align: left;
  cursor: pointer;
}

.combat-source-option:hover,
.combat-source-option:focus-visible {
  outline: none;
  border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
  background: color-mix(in srgb, var(--accent) 12%, var(--surface-strong));
}

.combat-source-option span {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.combat-source-option strong,
.combat-source-option small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.combat-source-option small {
  color: var(--muted);
  font-size: .78rem;
}

@media (max-width: 900px) {
  .master-monster-attack-form {
    width: 100% !important;
    margin-left: 0 !important;
    grid-template-columns: minmax(86px, 1fr) minmax(68px, .75fr) minmax(74px, .75fr) minmax(104px, 1fr) !important;
  }
}

@media (max-width: 820px) {
  .master-enemy-attack-form {
    width: 100% !important;
    margin-left: 0 !important;
    grid-template-columns: minmax(86px, 1fr) minmax(68px, .75fr) minmax(74px, .75fr) minmax(78px, .75fr) !important;
    justify-content: stretch !important;
  }
}

@media (max-width: 520px) {
  .master-combat-monster-row {
    padding: 12px;
    overflow: hidden;
  }

  .master-combat-monster-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    width: 100%;
  }

  .master-monster-attack-form {
    grid-column: 1 / -1;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }

  .master-monster-attack-form .combat-source-picker,
  .master-monster-attack-form .btn.primary {
    grid-column: 1 / -1;
  }

  .master-enemy-attack-form {
    grid-template-columns: 1fr 1fr !important;
  }

  .master-enemy-attack-form .combat-source-picker,
  .master-enemy-attack-form .btn.primary {
    grid-column: 1 / -1;
  }

  .combat-source-picker,
  .direct-damage-toggle,
  .master-enemy-attack-form input[name="ataque_inimigo"],
  .master-monster-attack-form input[name="ataque_recebido"] {
    min-height: 40px !important;
    height: 40px !important;
    font-size: .8rem !important;
  }

  .combat-source-dialog-card {
    width: calc(100vw - 22px);
    max-height: 84vh;
  }

  .combat-source-option-list {
    max-height: 56vh;
  }
}

/* v74 — sigilos, origem de ataque e monstros no combate do jogador */
.sigilo-action-card.is-active {
  border-color: rgba(116, 255, 189, .45);
  box-shadow: 0 0 0 1px rgba(116, 255, 189, .12), 0 0 24px rgba(116, 255, 189, .08);
}

.player-combat-monsters {
  margin: 12px 0 14px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,255,255,.025);
}

.player-combat-monster-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: center;
  margin-top: 8px;
}

.player-combat-monster-row.bosses {
  margin-bottom: 8px;
}

.player-combat-monster-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  max-width: 100%;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,255,255,.035);
}

.player-combat-monster-chip.is-boss {
  border-color: rgba(50, 233, 255, .35);
  background: rgba(50, 233, 255, .055);
}

.player-combat-monster-chip.is-minion {
  font-size: .92rem;
}

.player-combat-monster-chip.is-dead {
  opacity: .55;
  filter: grayscale(.25);
}

.player-combat-monster-chip strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: min(220px, 55vw);
}

.health-avatar-boss {
  --hp-size: 54px;
}

.master-enemy-attack-form input[name="ataque_inimigo"],
.master-monster-attack-form input[name="ataque_recebido"] {
  width: 76px;
  min-width: 76px;
  text-align: center;
}

.combat-source-picker.has-selection {
  border-color: rgba(50, 233, 255, .35);
  background: rgba(50, 233, 255, .075);
}

@media (max-width: 560px) {
  .master-combat-monster-actions,
  .master-combat-actions {
    width: 100%;
  }

  .master-monster-attack-form,
  .master-enemy-attack-form {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 72px;
    gap: 8px;
    align-items: stretch;
  }

  .master-monster-attack-form .combat-source-picker,
  .master-enemy-attack-form .combat-source-picker {
    grid-column: 1 / -1;
    width: 100%;
  }

  .master-monster-attack-form .direct-damage-toggle,
  .master-enemy-attack-form .direct-damage-toggle {
    min-width: 0;
    justify-content: center;
  }

  .master-monster-attack-form .btn,
  .master-enemy-attack-form .btn {
    min-width: 0;
    width: 100%;
  }

  .master-enemy-attack-form input[name="ataque_inimigo"],
  .master-monster-attack-form input[name="ataque_recebido"] {
    width: 100%;
    min-width: 0;
  }
}

/* v75 — Agiu automático, monstros instanciados e reforços no combate */
:root {
  --hp-monster-blue: #0b4ea2;
  --hp-monster-purple: #8f4dd8;
}

.health-avatar-wrap[style*="--hp-ring-color:var(--hp-monster-blue)"] {
  box-shadow: 0 0 0 1px rgba(63, 140, 255, .18), 0 0 16px rgba(21, 94, 205, .24);
}

.master-combat-monster-row .health-avatar-wrap:not(.health-avatar-sm):not(.health-avatar-xs):not(.health-avatar-hero) {
  --hp-size: 48px;
}

.master-combat-monsters .compact-head {
  gap: 10px;
}

.master-combat-monsters .compact-head .btn {
  white-space: nowrap;
}

.challenge-monster-qty-option {
  grid-template-columns: auto minmax(0, 1fr) auto;
  cursor: default;
}

.challenge-monster-quantity {
  display: inline-grid;
  grid-template-columns: auto 64px;
  gap: 7px;
  align-items: center;
  justify-self: end;
}

.challenge-monster-quantity small {
  color: var(--muted);
  font-size: .74rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.challenge-monster-quantity input[name="monster_quantity"] {
  position: static;
  opacity: 1;
  pointer-events: auto;
  width: 64px;
  min-width: 0;
  height: 36px;
  padding: 5px 7px;
  text-align: center;
}

@media (max-width: 560px) {
  .challenge-monster-qty-option {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .challenge-monster-quantity {
    grid-column: 1 / -1;
    justify-self: stretch;
    grid-template-columns: 1fr 92px;
  }

  .challenge-monster-quantity input[name="monster_quantity"] {
    width: 100%;
  }

  .master-combat-monsters .compact-head {
    align-items: stretch;
  }

  .master-combat-monsters .compact-head .btn {
    width: 100%;
  }
}

/* v78 — inimigos estilo stories e histórico do jogador */
.player-combat-monsters-stories {
  padding: 12px 10px;
  overflow: hidden;
}

.player-monsters-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.player-monsters-head .mini-label {
  margin: 0;
}

.player-monster-story-strip {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  padding: 2px 2px 8px;
  -webkit-overflow-scrolling: touch;
}

.player-monster-story-strip::-webkit-scrollbar {
  height: 5px;
}

.player-monster-story-strip::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,.16);
  border-radius: 999px;
}

.player-monster-story {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--text);
  display: grid;
  justify-items: center;
  gap: 6px;
  flex: 0 0 auto;
  min-width: 72px;
  padding: 4px 2px;
  cursor: pointer;
  scroll-snap-align: start;
}

.player-monster-story .health-avatar-wrap {
  transition: transform .14s ease, filter .14s ease;
}

.player-monster-story:active .health-avatar-wrap,
.player-monster-story:hover .health-avatar-wrap {
  transform: translateY(-1px) scale(1.02);
}

.health-avatar-story {
  --hp-size: 56px;
}

.health-avatar-story-boss {
  --hp-size: 66px;
}

.player-monster-life {
  min-width: 44px;
  padding: 3px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(0,0,0,.22);
  font-size: .78rem;
  font-weight: 800;
  line-height: 1;
}

.player-monster-story.is-boss .player-monster-life {
  border-color: rgba(50, 233, 255, .35);
}

.player-monster-story.is-dead {
  opacity: .55;
  filter: grayscale(.35);
}

.player-monsters-hint {
  margin: 4px 2px 0;
  font-size: .82rem;
}

.player-monsters-dialog-card,
.player-history-dialog-card {
  width: min(760px, 100%);
  text-align: left;
}

.player-monsters-dialog-card .forum-dialog-rune,
.player-history-dialog-card .forum-dialog-rune {
  justify-self: start;
}

.player-monster-full-list,
.history-feats-list {
  display: grid;
  gap: 10px;
}

.player-monster-full-row {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 12px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255,255,255,.03);
}

.player-monster-full-row.is-dead {
  opacity: .62;
  filter: grayscale(.25);
}

.player-monster-full-row strong,
.player-monster-full-row small {
  display: block;
}

.player-monster-full-row small {
  color: var(--muted);
  margin-top: 2px;
}

.history-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.history-stat-card {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px;
  background: rgba(255,255,255,.03);
  display: grid;
  gap: 4px;
}

.history-stat-card span,
.history-stat-card small {
  color: var(--muted);
  font-size: .78rem;
}

.history-stat-card strong {
  font-size: 1.55rem;
  line-height: 1;
}

.history-section {
  display: grid;
  gap: 10px;
  margin-top: 4px;
}

.history-section h3 {
  margin: 0;
  font-size: 1rem;
}

.history-feat-row,
.history-rank-row {
  display: grid;
  gap: 8px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(0,0,0,.12);
}

.history-feat-row {
  grid-template-columns: 1fr auto;
}

.history-feat-row strong,
.history-feat-row small {
  display: block;
}

.history-feat-row small,
.history-feat-row time {
  color: var(--muted);
  font-size: .82rem;
}

.history-rank-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.history-rank-grid > div {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 10px;
  background: rgba(255,255,255,.025);
  display: grid;
  gap: 8px;
}

.history-rank-row {
  grid-template-columns: auto 1fr auto;
  padding: 8px;
}

.history-rank-row span,
.history-rank-row em {
  color: var(--muted);
  font-style: normal;
  font-size: .84rem;
}

@media (max-width: 680px) {
  .history-stat-grid,
  .history-rank-grid {
    grid-template-columns: 1fr 1fr;
  }

  .player-monsters-dialog-card,
  .player-history-dialog-card {
    width: 100%;
  }
}

@media (max-width: 420px) {
  .history-stat-grid,
  .history-rank-grid,
  .history-feat-row {
    grid-template-columns: 1fr;
  }
}

/* v79 — stories responsivo no jogador + lacaios roxos */
:root {
  --hp-monster-minion-purple-dark: #4b238f;
}

.player-combat-panel,
.combat-members-list,
.combat-member-cards,
.player-combat-monsters,
.player-combat-monsters-stories {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.player-combat-monsters-stories {
  width: 100%;
  overflow: hidden;
  padding: 12px 10px;
}

.player-monster-story-strip {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  display: flex;
  flex-wrap: nowrap;
  gap: 12px;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
  padding: 2px 1px 4px;
  scrollbar-width: none;
  box-sizing: border-box;
}

.player-monster-story-strip::-webkit-scrollbar {
  display: none;
}

.player-monster-story {
  flex: 0 0 70px;
  width: 70px;
  min-width: 70px;
  max-width: 70px;
  gap: 0;
  padding: 4px 2px;
  box-sizing: border-box;
}

.health-avatar-story,
.health-avatar-story-boss {
  --hp-size: 66px;
}

.player-monster-story .player-combat-monster-avatar {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

.player-monster-life {
  display: none !important;
}

.player-monster-story.is-minion .health-avatar-wrap {
  box-shadow: 0 0 0 1px rgba(116, 55, 190, .22), 0 0 16px rgba(75, 35, 143, .28);
}

.player-monster-story.is-boss .health-avatar-wrap {
  box-shadow: 0 0 0 1px rgba(63, 140, 255, .2), 0 0 18px rgba(21, 94, 205, .3);
}

@media (max-width: 560px) {
  .player-combat-monsters-stories {
    padding-left: 10px;
    padding-right: 10px;
  }

  .player-monster-story-strip {
    gap: 10px;
  }
}

/* v80 — histórico instagramável + mortes + ranking antes dos feitos */
.player-history-dialog-card.history-social-card {
  width: min(860px, 100%);
  padding: 14px;
  gap: 14px;
  background:
    radial-gradient(circle at 18% 8%, rgba(218, 177, 119, .14), transparent 28%),
    radial-gradient(circle at 88% 18%, rgba(112, 56, 176, .20), transparent 34%),
    var(--surface-strong);
}

.history-share-poster {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--accent) 34%, var(--line));
  border-radius: 28px;
  padding: clamp(16px, 3vw, 24px);
  background:
    linear-gradient(145deg, rgba(10, 12, 20, .96), rgba(24, 18, 36, .94) 48%, rgba(8, 10, 17, .98)),
    radial-gradient(circle at top left, rgba(218, 177, 119, .18), transparent 38%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 22px 60px rgba(0,0,0,.34);
}

.history-poster-glow {
  position: absolute;
  inset: -35% -15% auto auto;
  width: 280px;
  height: 280px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(218,177,119,.20), rgba(128,62,183,.10) 45%, transparent 70%);
  filter: blur(4px);
  z-index: -1;
}

.history-poster-topline {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  color: color-mix(in srgb, var(--accent) 84%, white);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.history-poster-topline em {
  color: var(--muted);
  font-style: normal;
  letter-spacing: .08em;
  text-align: right;
}

.history-hero-block {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(14px, 3vw, 22px);
  align-items: center;
  margin-top: 18px;
}

.history-hero-avatar {
  width: clamp(88px, 22vw, 132px);
  height: clamp(88px, 22vw, 132px);
  border-radius: 999px;
  padding: 4px;
  background: conic-gradient(from 200deg, var(--accent), #6b2fd1, #d55662, var(--accent));
  box-shadow: 0 0 0 6px rgba(255,255,255,.035), 0 16px 38px rgba(0,0,0,.36);
}

.history-hero-avatar-img,
.history-hero-avatar-placeholder {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  display: grid;
  place-items: center;
  object-fit: cover;
  border: 3px solid rgba(8, 10, 17, .96);
  background: rgba(255,255,255,.06);
}

.history-hero-avatar-placeholder {
  font-size: 2.6rem;
  font-weight: 900;
  color: var(--accent);
}

.history-hero-title {
  min-width: 0;
}

.history-hero-title h2 {
  margin: 2px 0 4px;
  font-size: clamp(1.5rem, 6vw, 2.65rem);
  line-height: .96;
  text-align: left;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

.history-hero-title p,
.history-hero-title small {
  display: block;
  text-align: left;
}

.history-hero-title small {
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.35;
  margin-top: 4px;
}

.history-metric-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-top: 20px;
}

.history-metric-card {
  min-width: 0;
  display: grid;
  gap: 4px;
  align-content: start;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 20px;
  padding: 12px 10px;
  background: rgba(255,255,255,.055);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}

.history-metric-card.is-gold {
  border-color: color-mix(in srgb, var(--accent) 44%, rgba(255,255,255,.12));
  background: color-mix(in srgb, var(--accent) 13%, rgba(255,255,255,.045));
}

.history-metric-card.is-danger {
  border-color: color-mix(in srgb, var(--danger) 45%, rgba(255,255,255,.12));
  background: color-mix(in srgb, var(--danger) 12%, rgba(255,255,255,.045));
}

.history-metric-icon {
  font-size: 1.05rem;
  line-height: 1;
}

.history-metric-label {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.history-metric-card strong {
  font-size: clamp(1.45rem, 5vw, 2rem);
  line-height: 1;
}

.history-metric-card small {
  color: color-mix(in srgb, var(--muted) 82%, white);
  font-size: .76rem;
}

.history-section-heading {
  display: grid;
  gap: 2px;
}

.history-section-heading h3 {
  margin: 0;
  font-size: 1.05rem;
}

.history-rank-section,
.history-feats-section {
  padding: 2px;
}

.history-rank-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.history-rank-grid > div {
  background:
    linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.018));
  border-radius: 18px;
}

.history-rank-grid > div > strong {
  font-size: .9rem;
}

.history-rank-row {
  grid-template-columns: 44px 1fr auto;
  border-color: rgba(255,255,255,.08);
}

.history-rank-row span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  color: var(--accent);
  font-weight: 900;
}

.history-rank-row strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.history-rank-row em {
  min-width: 34px;
  text-align: right;
  color: var(--text);
  font-weight: 900;
}

.history-feat-row {
  background: rgba(255,255,255,.035);
  border-color: rgba(255,255,255,.08);
}

.history-dialog-actions {
  position: sticky;
  bottom: -14px;
  padding-top: 8px;
  padding-bottom: 2px;
  background: linear-gradient(180deg, transparent, var(--surface-strong) 26%);
}

@media (max-width: 760px) {
  .history-metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .history-metric-card:first-child {
    grid-column: span 2;
  }
}

@media (max-width: 560px) {
  .player-history-dialog-card.history-social-card {
    padding: 10px;
  }

  .history-poster-topline {
    display: grid;
    gap: 4px;
  }

  .history-poster-topline em {
    text-align: left;
  }

  .history-hero-block {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }

  .history-hero-title h2,
  .history-hero-title p,
  .history-hero-title small {
    text-align: center;
  }

  .history-rank-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 400px) {
  .history-metric-grid {
    grid-template-columns: 1fr;
  }

  .history-metric-card:first-child {
    grid-column: auto;
  }

  .history-rank-row {
    grid-template-columns: 38px 1fr auto;
  }
}

/* v81 — refino do histórico: cards compactos e base visual para compartilhamento */
.player-history-dialog-card.history-social-card {
  width: min(760px, 100%);
  padding: 12px;
  gap: 12px;
}

.history-share-poster {
  padding: clamp(14px, 3vw, 20px);
  border-radius: 24px;
}

.history-share-poster::after {
  content: attr(data-share-event);
  display: block;
  margin-top: 12px;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-align: center;
  opacity: .72;
}

.history-hero-block {
  grid-template-columns: auto 1fr;
  margin-top: 0;
  gap: 14px;
}

.history-hero-avatar {
  width: clamp(74px, 18vw, 104px);
  height: clamp(74px, 18vw, 104px);
}

.history-hero-title h2 {
  font-size: clamp(1.35rem, 5vw, 2rem);
  line-height: 1;
  margin: 0 0 6px;
}

.history-hero-title p {
  color: var(--muted);
  font-size: .95rem;
  font-weight: 700;
}

.history-metric-grid {
  grid-template-columns: 1fr;
  gap: 8px;
  margin-top: 16px;
}

.history-metric-card.history-metric-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 9px 11px;
  border-radius: 16px;
}

.history-metric-row .history-metric-icon {
  width: 24px;
  text-align: center;
  font-size: 1rem;
}

.history-metric-row .history-metric-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: .78rem;
}

.history-metric-row strong {
  font-size: 1.15rem;
  min-width: 28px;
  text-align: right;
}

.history-metric-row small {
  min-width: 76px;
  text-align: right;
  white-space: nowrap;
  font-size: .72rem;
}

.history-rank-section,
.history-feats-section {
  padding: 0;
}

.history-section-heading {
  gap: 0;
}

.history-section-heading h3 {
  font-size: .98rem;
}

.history-rank-grid {
  grid-template-columns: 1fr;
  gap: 8px;
}

.history-rank-grid > div {
  padding: 9px;
  border-radius: 16px;
  gap: 6px;
}

.history-rank-grid > div > strong {
  font-size: .84rem;
}

.history-rank-row {
  min-height: 36px;
  padding: 6px 8px;
  grid-template-columns: 34px minmax(0, 1fr) auto;
}

.history-rank-row span {
  width: 26px;
  height: 26px;
  font-size: .76rem;
}

.history-feat-row {
  min-height: 42px;
  padding: 8px 10px;
  border-radius: 14px;
}

.history-feat-row small,
.history-feat-row time {
  font-size: .76rem;
}

@media (max-width: 560px) {
  .history-share-poster::after {
    font-size: .66rem;
  }

  .history-hero-block {
    grid-template-columns: auto 1fr;
    justify-items: initial;
    text-align: left;
  }

  .history-hero-title h2,
  .history-hero-title p,
  .history-hero-title small {
    text-align: left;
  }
}

@media (max-width: 390px) {
  .history-metric-card.history-metric-row {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }

  .history-metric-row small {
    grid-column: 2 / 4;
    min-width: 0;
    text-align: left;
    margin-top: -4px;
  }
}

/* v82 — Ranking Top 5 + janela completa */
.history-rank-card {
  padding: 9px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.035);
  display: grid;
  gap: 6px;
  min-width: 0;
}

.history-rank-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.history-rank-card-head strong {
  min-width: 0;
  font-size: .84rem;
  color: rgba(245,247,255,.86);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.history-rank-more-btn,
.history-full-rank-tab {
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.055);
  color: rgba(245,247,255,.86);
  border-radius: 999px;
  cursor: pointer;
  font-weight: 800;
}

.history-rank-more-btn {
  padding: 5px 9px;
  font-size: .72rem;
  flex: 0 0 auto;
}

.history-rank-more-btn:hover,
.history-full-rank-tab:hover,
.history-full-rank-tab.active {
  border-color: rgba(145,96,255,.55);
  background: rgba(145,96,255,.18);
  color: #fff;
}

.player-ranking-dialog-card {
  width: min(640px, calc(100vw - 24px));
  max-height: min(760px, calc(100vh - 24px));
  overflow: auto;
}

.history-full-rank-tabs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 4px 2px 10px;
  margin: 6px 0 10px;
  scrollbar-width: thin;
}

.history-full-rank-tab {
  padding: 8px 11px;
  white-space: nowrap;
  font-size: .76rem;
}

.history-full-rank-panel {
  display: grid;
  gap: 8px;
}

.history-full-rank-panel h3 {
  margin: 0 0 2px;
  font-size: 1rem;
  color: rgba(245,247,255,.92);
}

.history-full-rank-row {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  padding: 9px 10px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.04);
}

.history-full-rank-row span {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(255,255,255,.07);
  font-weight: 900;
  font-size: .82rem;
}

.history-full-rank-row strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: rgba(245,247,255,.9);
}

.history-full-rank-row em {
  font-style: normal;
  font-weight: 900;
  color: #fff;
  padding-left: 8px;
}

@media (max-width: 560px) {
  .player-ranking-dialog-card {
    width: calc(100vw - 14px);
    max-height: calc(100vh - 14px);
  }

  .history-rank-card-head {
    gap: 6px;
  }

  .history-rank-more-btn {
    padding: 5px 8px;
    font-size: .68rem;
  }

  .history-full-rank-row {
    grid-template-columns: 36px minmax(0, 1fr) auto;
    padding: 8px;
  }
}

/* v84 — Central administrativa de combate */
.admin-combat-group-card {
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 22px;
  padding: 16px;
  background: rgba(255,255,255,.035);
  display: grid;
  gap: 12px;
}

.admin-combat-group-card.is-active {
  border-color: rgba(145,96,255,.24);
  background: linear-gradient(135deg, rgba(145,96,255,.09), rgba(255,255,255,.035));
}

.admin-combat-group-main,
.admin-combat-card-actions,
.admin-combat-back-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.admin-combat-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px 10px;
  border-radius: 999px;
  font-size: .74rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
  border: 1px solid rgba(255,255,255,.11);
  color: rgba(245,247,255,.72);
  background: rgba(255,255,255,.045);
}

.admin-combat-status.is-active {
  color: #fff;
  border-color: rgba(75,125,255,.42);
  background: rgba(75,125,255,.14);
}

.admin-combat-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.admin-combat-metrics span {
  min-width: 0;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 14px;
  padding: 8px 10px;
  background: rgba(0,0,0,.12);
  color: rgba(245,247,255,.66);
  font-size: .78rem;
}

.admin-combat-metrics strong {
  color: rgba(245,247,255,.94);
  font-weight: 900;
}

.admin-combat-members-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.admin-combat-active-view {
  display: grid;
  gap: 12px;
}

.admin-managed-combat-card {
  border-color: rgba(145,96,255,.22);
}

@media (max-width: 760px) {
  .admin-combat-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .admin-combat-group-card {
    padding: 12px;
    border-radius: 18px;
  }

  .admin-combat-metrics {
    grid-template-columns: 1fr;
  }

  .admin-combat-card-actions .btn,
  .admin-combat-back-row .btn {
    width: 100%;
  }
}

/* v85 — Administração completa de Mestres */
.admin-master-list {
  display: grid;
  gap: 12px;
}

.admin-master-card {
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 22px;
  padding: 16px;
  background: linear-gradient(135deg, rgba(255,255,255,.045), rgba(255,255,255,.018));
  display: grid;
  gap: 12px;
}

.admin-master-card.is-inactive {
  opacity: .7;
  border-color: rgba(255,255,255,.055);
}

.admin-master-card-main {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.admin-master-metrics {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-master-account-form {
  margin-bottom: 14px;
  border-color: rgba(145,96,255,.18);
}

.admin-master-manager {
  margin-top: 18px;
  border-color: rgba(75,125,255,.20);
}

.admin-master-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0 14px;
}

.admin-master-tab {
  border: 1px solid rgba(255,255,255,.09);
  background: rgba(255,255,255,.035);
  color: rgba(245,247,255,.76);
  border-radius: 999px;
  padding: 10px 13px;
  font-weight: 900;
  cursor: pointer;
}

.admin-master-tab.active {
  color: #fff;
  background: rgba(75,125,255,.16);
  border-color: rgba(75,125,255,.42);
}

.admin-master-manager-body {
  display: grid;
  gap: 12px;
}

@media (max-width: 760px) {
  .admin-master-card-main {
    display: grid;
  }

  .admin-master-metrics {
    grid-template-columns: 1fr;
  }
}

/* v86 — iniciativa e fila única de combate */
.master-combat-queue {
  margin-top: 1rem;
}

.combat-queue-list {
  gap: .75rem;
}

.combat-queue-row {
  border-left: 3px solid rgba(148, 163, 184, .22);
}

.combat-queue-row.is-player {
  border-left-color: rgba(74, 222, 128, .45);
}

.combat-queue-row.is-monster {
  border-left-color: rgba(168, 85, 247, .45);
}

.combat-queue-row.is-acted {
  opacity: .72;
}

.combat-queue-row.is-dead {
  opacity: .45;
}

.combat-actor-chip {
  display: inline-flex;
  align-items: center;
  margin-left: .35rem;
  padding: .12rem .42rem;
  border: 1px solid rgba(148, 163, 184, .25);
  border-radius: 999px;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  vertical-align: middle;
}

.combat-actor-chip.is-monster-chip {
  color: #d8b4fe;
  border-color: rgba(168, 85, 247, .32);
}

.initiative-dialog-card,
.number-prompt-dialog-card {
  width: min(720px, calc(100vw - 2rem));
  max-height: min(82vh, 760px);
  overflow: auto;
}

.initiative-sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}

.initiative-list {
  display: grid;
  gap: .55rem;
}

.initiative-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 112px;
  gap: .75rem;
  align-items: center;
  padding: .7rem;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 1rem;
  background: rgba(15, 23, 42, .45);
}

.initiative-actor {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: .65rem;
}

.initiative-actor strong,
.initiative-actor small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.initiative-actor small {
  color: var(--muted);
  font-size: .78rem;
}

.initiative-input,
.initiative-manager-input,
.number-prompt-input {
  width: 100%;
  min-width: 0;
}

.initiative-manager-list {
  margin-top: 1rem;
}

@media (max-width: 760px) {
  .initiative-sections {
    grid-template-columns: 1fr;
  }

  .initiative-row {
    grid-template-columns: minmax(0, 1fr) 90px;
  }
}

/* v88 — refinamento visual da fila de ação */
.combat-queue-row.master-combat-member-row,
.combat-queue-row.master-combat-monster-row {
  display: grid;
  grid-template-columns: minmax(250px, 1fr) minmax(420px, auto);
  align-items: center;
  gap: 12px;
  padding: 13px 14px;
}

.combat-queue-row .master-combat-member-info,
.combat-queue-row .master-combat-monster-info {
  min-width: 0;
}

.combat-queue-row .master-combat-actions,
.combat-queue-row .master-combat-monster-actions {
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: nowrap;
  gap: 7px;
  margin-left: 0;
  min-width: 0;
  width: 100%;
}

.combat-action-form,
.combat-queue-row .master-player-attack-form,
.combat-queue-row .master-creature-attack-form {
  display: grid !important;
  grid-template-columns: minmax(100px, 150px) 82px 78px 88px;
  align-items: center;
  gap: 7px;
  margin-left: 0 !important;
  width: auto !important;
  min-width: 0;
}

.combat-action-form .combat-target-picker,
.combat-action-form .combat-source-picker {
  width: 100%;
  min-width: 0;
  height: 40px;
  min-height: 40px;
  padding: 0 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.combat-action-form input[name="ataque_recebido"],
.combat-action-form input[name="ataque_inimigo"] {
  width: 82px !important;
  min-width: 0 !important;
  flex: 0 0 82px !important;
  height: 40px;
  min-height: 40px;
  padding: 0 8px;
  text-align: center;
}

.combat-action-form .direct-damage-toggle {
  width: 78px !important;
  min-width: 78px !important;
  height: 40px !important;
  min-height: 40px !important;
  padding: 0 8px !important;
  font-size: .78rem !important;
}

.combat-action-form .direct-damage-toggle input {
  width: 14px !important;
  height: 14px !important;
}

.combat-action-form .btn {
  width: 88px;
  min-width: 88px;
  height: 40px;
  min-height: 40px;
  padding: 0 12px;
}

.combat-queue-row .master-status-btn,
.combat-queue-row .master-monster-status-btn,
.combat-queue-row .turn-action-button {
  min-width: 76px !important;
  height: 40px !important;
  min-height: 40px !important;
  padding: 0 12px !important;
  font-size: .8rem !important;
  line-height: 40px !important;
}

.combat-queue-row .turn-action-button span {
  line-height: 40px !important;
}

.combat-queue-row small {
  line-height: 1.45;
}

@media (max-width: 1120px) {
  .combat-queue-row.master-combat-member-row,
  .combat-queue-row.master-combat-monster-row {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .combat-queue-row .master-combat-actions,
  .combat-queue-row .master-combat-monster-actions {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .combat-action-form,
  .combat-queue-row .master-player-attack-form,
  .combat-queue-row .master-creature-attack-form {
    flex: 1 1 100%;
    width: 100% !important;
    grid-template-columns: minmax(140px, 1fr) 82px 78px 88px;
    order: 1;
  }

  .combat-queue-row .master-status-btn,
  .combat-queue-row .master-monster-status-btn,
  .combat-queue-row .turn-action-button {
    order: 2;
  }
}

@media (max-width: 640px) {
  .combat-queue-row.master-combat-member-row,
  .combat-queue-row.master-combat-monster-row {
    padding: 12px;
  }

  .combat-action-form,
  .combat-queue-row .master-player-attack-form,
  .combat-queue-row .master-creature-attack-form {
    grid-template-columns: minmax(0, 1fr) 76px;
  }

  .combat-action-form .combat-target-picker,
  .combat-action-form .combat-source-picker {
    grid-column: 1 / -1;
  }

  .combat-action-form .direct-damage-toggle,
  .combat-action-form .btn {
    width: 100% !important;
    min-width: 0 !important;
  }

  .combat-action-form input[name="ataque_recebido"],
  .combat-action-form input[name="ataque_inimigo"] {
    width: 100% !important;
    flex: initial !important;
  }

  .combat-queue-row .master-status-btn,
  .combat-queue-row .master-monster-status-btn,
  .combat-queue-row .turn-action-button {
    flex: 1 1 calc(33.333% - 7px);
    min-width: 0 !important;
  }
}

.combat-queue-row .combat-action-form {
  order: 1;
}

.combat-queue-row .master-status-btn,
.combat-queue-row .master-monster-status-btn,
.combat-queue-row .turn-action-button {
  order: 2;
}

/* v96 — orientação padronizada do aro de vida.
   O aro começa em 12h. A perda de vida avança no sentido horário, mantendo o
   aro base e o aro animado da vez com a mesma origem e direção. */
.health-avatar-wrap {
  position: relative;
  isolation: isolate;
  overflow: visible;
  background: conic-gradient(
    from -90deg,
    color-mix(in srgb, var(--line) 75%, transparent) 0deg,
    color-mix(in srgb, var(--line) 75%, transparent) var(--hp-ring-empty-deg),
    var(--hp-ring-color) var(--hp-ring-empty-deg),
    var(--hp-ring-color) 360deg
  );
}

.health-avatar-wrap > .avatar,
.health-avatar-wrap > .avatar-placeholder {
  position: relative;
  z-index: 3;
}

.health-avatar-wrap::before,
.health-avatar-wrap::after {
  content: none;
}

.health-avatar-wrap.is-current-turn {
  background: conic-gradient(
    from -90deg,
    color-mix(in srgb, var(--line) 75%, transparent) 0deg,
    color-mix(in srgb, var(--line) 75%, transparent) var(--hp-ring-empty-deg),
    transparent var(--hp-ring-empty-deg),
    transparent 360deg
  );
}

.health-avatar-wrap.is-current-turn::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 999px;
  pointer-events: none;
  z-index: 1;
  background: conic-gradient(
    from -90deg,
    transparent 0deg,
    transparent var(--hp-ring-empty-deg),
    color-mix(in srgb, var(--hp-ring-color) 20%, transparent) var(--hp-ring-empty-deg),
    color-mix(in srgb, var(--hp-ring-color) 56%, transparent) var(--hp-ring-fade-1),
    color-mix(in srgb, var(--hp-ring-color) 76%, transparent) var(--hp-ring-fade-2),
    color-mix(in srgb, var(--hp-ring-color) 92%, transparent) var(--hp-ring-fade-3),
    var(--hp-ring-color) 360deg
  );
  transform-origin: center;
  animation: hp-turn-ring-spin 1.65s linear infinite;
}

@keyframes hp-turn-ring-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.player-monster-story.is-current-turn-actor .health-avatar-wrap,
.combat-member-card:not(.dead) .health-avatar-wrap.is-current-turn {
  transform: translateY(-1px);
}

/* evita vazamento da letra inicial quando o avatar principal já carregou */
#playerAvatar:not(.hidden) + #playerAvatarPlaceholder {
  display: none !important;
}

/* monstros sem brilho externo */
.health-avatar-wrap[style*="--hp-ring-color:var(--hp-monster-blue)"],
.player-monster-story.is-minion .health-avatar-wrap,
.player-monster-story.is-boss .health-avatar-wrap,
.master-combat-monster-row .health-avatar-wrap:not(.health-avatar-sm):not(.health-avatar-xs):not(.health-avatar-hero),
.master-action-card.is-monster .health-avatar-wrap {
  box-shadow: none !important;
}

.player-monsters-hint {
  display: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .health-avatar-wrap.is-current-turn::before {
    animation: none;
    transform: rotate(18deg);
  }
}


/* v97 — aro de vida corrigido: 12h fixo + consumo anti-horário.
   A geometria do aro não gira mais durante o destaque de rodada; só o brilho pulsa.
   Assim, quando a vez termina, o aro permanece/retorna alinhado ao topo do avatar. */
.health-avatar-wrap {
  --hp-ring-empty-color: color-mix(in srgb, var(--line) 75%, transparent);
  background: conic-gradient(
    from -90deg,
    var(--hp-ring-color) 0deg,
    var(--hp-ring-color) var(--hp-ring-deg),
    var(--hp-ring-empty-color) var(--hp-ring-deg),
    var(--hp-ring-empty-color) 360deg
  );
}

.health-avatar-wrap.is-current-turn {
  background: conic-gradient(
    from -90deg,
    var(--hp-ring-color) 0deg,
    var(--hp-ring-color) var(--hp-ring-deg),
    var(--hp-ring-empty-color) var(--hp-ring-deg),
    var(--hp-ring-empty-color) 360deg
  );
}

.health-avatar-wrap::before,
.health-avatar-wrap::after {
  content: none;
}

.health-avatar-wrap.is-current-turn::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 999px;
  pointer-events: none;
  z-index: 1;
  background: conic-gradient(
    from -90deg,
    color-mix(in srgb, var(--hp-ring-color) 20%, transparent) 0deg,
    color-mix(in srgb, var(--hp-ring-color) 56%, transparent) var(--hp-ring-fade-1),
    color-mix(in srgb, var(--hp-ring-color) 76%, transparent) var(--hp-ring-fade-2),
    color-mix(in srgb, var(--hp-ring-color) 92%, transparent) var(--hp-ring-fade-3),
    var(--hp-ring-color) var(--hp-ring-deg),
    transparent var(--hp-ring-deg),
    transparent 360deg
  );
  transform: none;
  animation: hp-turn-ring-breathe 1.55s ease-in-out infinite;
}

@keyframes hp-turn-ring-breathe {
  0%, 100% { opacity: .58; filter: brightness(1); }
  50% { opacity: .95; filter: brightness(1.18); }
}

@media (prefers-reduced-motion: reduce) {
  .health-avatar-wrap.is-current-turn::before {
    animation: none;
    opacity: .72;
    transform: none;
  }
}

/* v98 — correção definitiva do aro de vida.
   Regra: o ponto fixo é 12h. A vitalidade colorida é desenhada a partir de 12h
   no sentido anti-horário. A parte consumida abre do topo para a direita.
   Nenhuma animação pode girar o conic-gradient; o destaque de rodada só respira. */
.health-avatar-wrap {
  --hp-ring-empty-color: color-mix(in srgb, var(--line) 75%, transparent);
  position: relative;
  isolation: isolate;
  overflow: visible;
  background: conic-gradient(
    from -90deg,
    var(--hp-ring-empty-color) 0deg,
    var(--hp-ring-empty-color) var(--hp-ring-empty-deg),
    var(--hp-ring-color) var(--hp-ring-empty-deg),
    var(--hp-ring-color) 360deg
  ) !important;
  transform: none;
}

.health-avatar-wrap.is-current-turn {
  background: conic-gradient(
    from -90deg,
    var(--hp-ring-empty-color) 0deg,
    var(--hp-ring-empty-color) var(--hp-ring-empty-deg),
    var(--hp-ring-color) var(--hp-ring-empty-deg),
    var(--hp-ring-color) 360deg
  ) !important;
  animation: hp-turn-ring-breathe-v98 1.55s ease-in-out infinite;
}

.health-avatar-wrap::before,
.health-avatar-wrap::after,
.health-avatar-wrap.is-current-turn::before,
.health-avatar-wrap.is-current-turn::after {
  content: none !important;
  display: none !important;
  animation: none !important;
  transform: none !important;
  background: none !important;
}

.player-monster-story.is-current-turn-actor .health-avatar-wrap,
.combat-member-card:not(.dead) .health-avatar-wrap.is-current-turn {
  transform: none !important;
}

@keyframes hp-turn-ring-breathe-v98 {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.16); }
}

@media (prefers-reduced-motion: reduce) {
  .health-avatar-wrap.is-current-turn {
    animation: none !important;
    filter: brightness(1.08);
  }
}

/* v99 — aro de vitalidade em SVG matemático.
   Substitui a orientação por conic-gradient por um arco SVG:
   100% = círculo completo; dano nasce em 12h e consome no sentido anti-horário.
   O destaque de rodada não rotaciona o aro. */
.health-avatar-wrap {
  --hp-ring-empty-color: color-mix(in srgb, var(--line) 75%, transparent);
  position: relative !important;
  isolation: isolate !important;
  overflow: visible !important;
  background: none !important;
  transform: none !important;
}

.health-avatar-wrap > .health-ring-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
  overflow: visible;
}

.health-ring-track,
.health-ring-life {
  fill: none;
  stroke-width: 8;
  stroke-linecap: butt;
}

.health-ring-track {
  stroke: var(--hp-ring-empty-color);
}

.health-ring-life {
  stroke: var(--hp-ring-color);
  transition: d .2s ease, stroke .2s ease;
}

.health-avatar-wrap > .avatar,
.health-avatar-wrap > .avatar-placeholder,
.health-avatar-wrap > img.avatar,
.health-avatar-wrap > .avatar.master-monster-avatar {
  position: relative !important;
  z-index: 2 !important;
}

.health-avatar-wrap::before,
.health-avatar-wrap::after,
.health-avatar-wrap.is-current-turn::before,
.health-avatar-wrap.is-current-turn::after {
  content: none !important;
  display: none !important;
  animation: none !important;
  transform: none !important;
  background: none !important;
}

.health-avatar-wrap.is-current-turn {
  background: none !important;
  animation: none !important;
  filter: none !important;
  transform: none !important;
}

.health-avatar-wrap.is-current-turn > .health-ring-svg {
  animation: hp-svg-turn-ring-breathe-v99 1.55s ease-in-out infinite;
}

.player-monster-story.is-current-turn-actor .health-avatar-wrap,
.combat-member-card:not(.dead) .health-avatar-wrap.is-current-turn {
  transform: none !important;
}

@keyframes hp-svg-turn-ring-breathe-v99 {
  0%, 100% { opacity: .92; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.18); }
}

@media (prefers-reduced-motion: reduce) {
  .health-avatar-wrap.is-current-turn > .health-ring-svg {
    animation: none !important;
    filter: brightness(1.08);
  }
}

/* v100 — aro SVG mais espesso e pulso de rodada mais visível.
   Mantém a geometria matemática da v99: o aro não gira, nasce/fecha em 12h
   e o consumo permanece anti-horário. A mudança é apenas peso visual + pulso. */
.health-avatar-wrap {
  --hp-ring-stroke-width: 11;
  --hp-ring-stroke-width-active: 13;
  --hp-ring-track-opacity: .72;
}

.health-avatar-wrap.health-avatar-hero {
  --hp-ring-stroke-width: 13;
  --hp-ring-stroke-width-active: 15.5;
}

.health-avatar-wrap.health-avatar-sm,
.health-avatar-wrap.health-avatar-xs {
  --hp-ring-stroke-width: 10;
  --hp-ring-stroke-width-active: 12;
}

.health-avatar-wrap > .health-ring-svg {
  transform-origin: 50% 50%;
}

.health-ring-track,
.health-ring-life {
  stroke-width: var(--hp-ring-stroke-width) !important;
}

.health-ring-track {
  opacity: var(--hp-ring-track-opacity);
}

.health-avatar-wrap.is-current-turn > .health-ring-svg {
  animation: hp-svg-turn-ring-breathe-v100 1.08s ease-in-out infinite !important;
}

.health-avatar-wrap.is-current-turn .health-ring-track,
.health-avatar-wrap.is-current-turn .health-ring-life {
  stroke-width: var(--hp-ring-stroke-width-active) !important;
}

.health-avatar-wrap.is-current-turn .health-ring-track {
  opacity: .92;
}

@keyframes hp-svg-turn-ring-breathe-v100 {
  0%, 100% {
    opacity: .96;
    transform: scale(1);
    filter: brightness(1.08) saturate(1.08) drop-shadow(0 0 2px var(--hp-ring-color));
  }
  50% {
    opacity: 1;
    transform: scale(1.055);
    filter: brightness(1.55) saturate(1.42) drop-shadow(0 0 7px var(--hp-ring-color)) drop-shadow(0 0 13px rgba(255,255,255,.28));
  }
}

@media (prefers-reduced-motion: reduce) {
  .health-avatar-wrap.is-current-turn > .health-ring-svg {
    animation: none !important;
    filter: brightness(1.32) saturate(1.25) drop-shadow(0 0 6px var(--hp-ring-color));
    transform: none !important;
  }
}

/* v101 — aro SVG mais grosso, consumo horário e pulso em anel completo.
   O aro de vida continua matemático e fixo em 12h. A diferença desta versão:
   a parte consumida agora nasce em 12h e avança no sentido horário; o pulso é
   uma camada SVG própria, circular completa, para envolver também trechos já consumidos. */
.health-avatar-wrap {
  --hp-ring-stroke-width: 12;
  --hp-ring-stroke-width-active: 14;
  --hp-ring-track-opacity: .74;
  --hp-ring-pulse-opacity: 0;
}

.health-avatar-wrap.health-avatar-hero {
  --hp-ring-stroke-width: 14;
  --hp-ring-stroke-width-active: 16;
}

.health-avatar-wrap.health-avatar-sm,
.health-avatar-wrap.health-avatar-story {
  --hp-ring-stroke-width: 11;
  --hp-ring-stroke-width-active: 13;
}

.health-avatar-wrap.health-avatar-xs {
  --hp-ring-stroke-width: 10;
  --hp-ring-stroke-width-active: 12;
}

.health-ring-track,
.health-ring-life,
.health-ring-pulse {
  fill: none;
  stroke-linecap: butt;
  stroke-width: var(--hp-ring-stroke-width) !important;
}

.health-ring-pulse {
  stroke: var(--hp-ring-color);
  opacity: 0;
  pointer-events: none;
  filter: none;
  transform-origin: 50% 50%;
}

.health-avatar-wrap.is-current-turn > .health-ring-svg {
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}

.health-avatar-wrap.is-current-turn .health-ring-track,
.health-avatar-wrap.is-current-turn .health-ring-life {
  stroke-width: var(--hp-ring-stroke-width-active) !important;
}

.health-avatar-wrap.is-current-turn .health-ring-track {
  opacity: .88;
}

.health-avatar-wrap.is-current-turn .health-ring-pulse {
  stroke-width: var(--hp-ring-stroke-width-active) !important;
  animation: hp-svg-turn-full-ring-pulse-v101 1.08s ease-in-out infinite !important;
}

@keyframes hp-svg-turn-full-ring-pulse-v101 {
  0%, 100% {
    opacity: .22;
    filter: brightness(1.05) saturate(1.05) drop-shadow(0 0 1.2px var(--hp-ring-color));
  }
  50% {
    opacity: .58;
    filter: brightness(1.33) saturate(1.25) drop-shadow(0 0 4.2px var(--hp-ring-color)) drop-shadow(0 0 7.8px rgba(255,255,255,.17));
  }
}

@media (prefers-reduced-motion: reduce) {
  .health-avatar-wrap.is-current-turn .health-ring-pulse {
    animation: none !important;
    opacity: .42;
    filter: brightness(1.18) saturate(1.14) drop-shadow(0 0 4px var(--hp-ring-color));
  }
}

/* v102 — Sigilo de combate dentro do card do jogador logado + ordem por iniciativa.
   O painel funcional de Sigilo saiu do rodapé da ficha principal e passa a aparecer
   apenas no card de combate da própria Metaforma. */
.combat-member-order-note {
  margin: 0 0 10px;
  padding: 8px 11px;
  border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
  border-radius: 14px;
  color: var(--muted);
  background: color-mix(in srgb, var(--surface-strong) 72%, transparent);
  font-size: .78rem;
  line-height: 1.35;
  text-align: center;
}

.combat-member-detail {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px 8px;
  margin-top: 3px;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.35;
}

.combat-member-detail > span:first-child {
  min-width: 0;
}

.combat-member-initiative {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 22px;
  padding: 2px 8px;
  border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line));
  border-radius: 999px;
  color: color-mix(in srgb, var(--text) 90%, var(--accent));
  background: color-mix(in srgb, var(--accent) 10%, transparent);
  font-family: "Cinzel", Georgia, serif;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .06em;
  white-space: nowrap;
}

.combat-sigilo-inline {
  width: min(100%, 320px);
  margin-top: 9px;
  padding: 10px 11px;
  border: 1px solid color-mix(in srgb, var(--accent) 24%, var(--line));
  border-radius: 15px;
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--surface-strong) 90%, transparent),
    color-mix(in srgb, var(--surface) 88%, transparent)
  );
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
  display: grid;
  gap: 6px;
}

.combat-sigilo-inline.is-active {
  border-color: rgba(116, 255, 189, .42);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 0 0 1px rgba(116, 255, 189, .08), 0 0 16px rgba(116, 255, 189, .06);
}

.combat-sigilo-inline .eyebrow {
  margin: 0;
  font-size: .62rem;
  letter-spacing: .14em;
  color: var(--muted);
}

.combat-sigilo-headline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.combat-sigilo-headline h3 {
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
  font-family: "Cinzel", Georgia, serif;
  font-size: .94rem;
  line-height: 1.1;
}

.combat-sigilo-headline span {
  flex: 0 0 auto;
  min-width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid color-mix(in srgb, var(--accent) 32%, var(--line));
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  font-family: "Cinzel", Georgia, serif;
  font-size: .88rem;
  font-weight: 800;
}

.combat-sigilo-inline .muted {
  margin: 0;
  font-size: .76rem;
  line-height: 1.3;
}

.combat-sigilo-inline .btn {
  width: 100%;
  min-height: 36px;
  margin-top: 1px;
  padding: 8px 10px;
  font-size: .78rem;
  white-space: normal;
}

.combat-member-card.self .combat-member-main {
  width: 100%;
}

@media (max-width: 760px) {
  .combat-member-order-note {
    font-size: .74rem;
    padding: 7px 9px;
  }

  .combat-member-detail {
    font-size: .78rem;
  }

  .combat-member-card.self .combat-sigilo-inline {
    width: 100%;
  }
}

@media (max-width: 430px) {
  .combat-member-card {
    padding: 11px 10px;
  }

  .combat-sigilo-inline {
    padding: 9px;
    border-radius: 14px;
  }

  .combat-sigilo-headline h3 {
    font-size: .86rem;
  }

  .combat-sigilo-headline span {
    min-width: 27px;
    height: 27px;
    font-size: .8rem;
  }

  .combat-sigilo-inline .btn {
    min-height: 34px;
    font-size: .74rem;
  }
}

/* v103 — tela do jogador: iniciativa sem números + Sigilo centralizado no card inteiro.
   A ordenação por iniciativa continua sendo usada internamente, mas o jogador não vê o valor numérico. */
.combat-member-card.self {
  flex-wrap: wrap;
}

.combat-member-sigilo-slot {
  flex: 0 0 100%;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: stretch;
  margin-top: 2px;
}

.combat-member-sigilo-slot .combat-sigilo-inline {
  width: min(100%, 340px);
  margin: 0 auto;
}

.combat-member-card.self .combat-member-detail {
  padding-right: 0;
}

@media (max-width: 760px) {
  .combat-member-card.self .combat-person-line,
  .combat-member-card.self .combat-member-actions,
  .combat-member-sigilo-slot {
    width: 100%;
  }

  .combat-member-sigilo-slot .combat-sigilo-inline {
    width: min(100%, 360px);
  }
}

@media (max-width: 430px) {
  .combat-member-sigilo-slot .combat-sigilo-inline {
    width: 100%;
  }
}

/* v104 — Sigilo centralizado por grid real + botão de ordem de iniciativa no rodapé do combate do jogador.
   O card do jogador logado passa a ter duas linhas: identidade/estado em cima e Sigilo em faixa própria embaixo.
   Isso impede que o bloco de Sigilo seja empurrado para a direita pela coluna de ações. */
.combat-member-card.self:not(.dead) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "identity actions"
    "sigilo sigilo";
  align-items: start;
  justify-content: stretch;
  column-gap: 12px;
  row-gap: 10px;
  overflow: hidden;
}

.combat-member-card.self:not(.dead) > .combat-person-line {
  grid-area: identity;
  width: 100%;
  min-width: 0;
}

.combat-member-card.self:not(.dead) > .combat-member-actions {
  grid-area: actions;
  justify-self: end;
  align-self: center;
  width: auto;
  min-width: max-content;
}

.combat-member-card.self:not(.dead) > .combat-member-sigilo-slot {
  grid-area: sigilo;
  width: 100%;
  min-width: 0;
  display: flex;
  justify-content: center;
  align-items: stretch;
  margin: 0;
  padding: 0;
}

.combat-member-card.self:not(.dead) .combat-sigilo-inline {
  box-sizing: border-box;
  width: min(100%, 330px);
  max-width: 330px;
  margin: 0 auto;
}

.player-combat-footer {
  display: flex;
  justify-content: center;
  margin-top: 12px;
  padding-top: 4px;
}

.player-initiative-order-button {
  width: min(100%, 230px);
}

.player-initiative-dialog-card {
  max-width: 520px;
}

.player-initiative-order-list {
  display: grid;
  gap: 8px;
  max-height: min(58vh, 520px);
  overflow: auto;
  margin: 14px 0 4px;
  padding-right: 2px;
}

.player-initiative-order-row {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 10px;
  padding: 10px 11px;
  border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
  border-radius: 15px;
  background: color-mix(in srgb, var(--surface-strong) 78%, transparent);
}

.player-initiative-order-row.is-current {
  border-color: color-mix(in srgb, var(--accent) 54%, var(--line));
  background: color-mix(in srgb, var(--accent) 12%, var(--surface-strong));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 12%, transparent);
}

.player-initiative-order-row.is-dead {
  opacity: .55;
}

.player-initiative-order-index {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line));
  border-radius: 999px;
  font-family: "Cinzel", Georgia, serif;
  font-weight: 800;
  font-size: .82rem;
}

.player-initiative-order-info {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.player-initiative-order-info strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-family: "Cinzel", Georgia, serif;
  font-size: .94rem;
  line-height: 1.1;
}

.player-initiative-order-info small {
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.25;
}

.player-initiative-order-roll {
  justify-self: end;
  min-width: 68px;
  display: inline-grid;
  place-items: center;
  gap: 1px;
  padding: 6px 9px;
  border: 1px solid color-mix(in srgb, var(--accent) 34%, var(--line));
  border-radius: 14px;
  background: color-mix(in srgb, var(--accent) 10%, transparent);
  text-align: center;
  white-space: nowrap;
}

.player-initiative-order-roll small {
  color: var(--muted);
  font-family: "Inter", system-ui, sans-serif;
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .07em;
  line-height: 1;
  text-transform: uppercase;
}

.player-initiative-order-roll strong {
  color: var(--text);
  font-family: "Cinzel", Georgia, serif;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.05;
}

.player-initiative-order-status {
  justify-self: end;
  padding: 5px 8px;
  border: 1px solid color-mix(in srgb, var(--line) 86%, transparent);
  border-radius: 999px;
  color: var(--muted);
  font-family: "Cinzel", Georgia, serif;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .04em;
  white-space: nowrap;
}

.player-initiative-order-row.is-current .player-initiative-order-status {
  color: color-mix(in srgb, var(--text) 90%, var(--accent));
  border-color: color-mix(in srgb, var(--accent) 42%, var(--line));
  background: color-mix(in srgb, var(--accent) 12%, transparent);
}

.player-initiative-order-row.is-current .player-initiative-order-roll {
  border-color: color-mix(in srgb, var(--accent) 62%, var(--line));
  background: color-mix(in srgb, var(--accent) 18%, transparent);
}

@media (max-width: 760px) {
  .combat-member-card.self:not(.dead) {
    grid-template-columns: 1fr;
    grid-template-areas:
      "identity"
      "actions"
      "sigilo";
  }

  .combat-member-card.self:not(.dead) > .combat-member-actions {
    justify-self: center;
    width: auto;
  }

  .combat-member-card.self:not(.dead) .combat-sigilo-inline {
    width: min(100%, 350px);
    max-width: 350px;
  }
}

@media (max-width: 430px) {
  .combat-member-card.self:not(.dead) .combat-sigilo-inline {
    width: 100%;
    max-width: 100%;
  }

  .player-initiative-order-row {
    grid-template-columns: 30px minmax(0, 1fr) auto;
    gap: 8px;
  }

  .player-initiative-order-roll {
    min-width: 58px;
    padding: 5px 7px;
  }

  .player-initiative-order-status {
    grid-column: 2 / 4;
    justify-self: start;
  }
}

/* v106 — Aro das criaturas com a mesma espessura visual dos jogadores + cancelamento de Sigilo.
   O aro dos inimigos nos stories e cards usa o mesmo peso do aro padrão dos jogadores.
   Gatuno/Growl recebem botão de cancelamento enquanto o Mestre ainda não contabilizou o Sigilo. */
.health-avatar-wrap.health-avatar-story,
.player-monster-story .health-avatar-wrap,
.health-avatar-wrap:has(> .avatar.player-combat-monster-avatar),
.health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar),
.health-avatar-wrap:has(> .avatar.master-monster-avatar),
.health-avatar-wrap:has(> img.avatar.master-monster-avatar) {
  --hp-ring-stroke-width: 12;
  --hp-ring-stroke-width-active: 14;
}

.health-avatar-wrap.health-avatar-story.is-current-turn,
.player-monster-story .health-avatar-wrap.is-current-turn,
.health-avatar-wrap:has(> .avatar.player-combat-monster-avatar).is-current-turn,
.health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar).is-current-turn {
  --hp-ring-stroke-width: 12;
  --hp-ring-stroke-width-active: 14;
}

.combat-sigilo-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 7px;
  width: 100%;
}

.combat-sigilo-actions .btn {
  margin-top: 0;
}

.combat-sigilo-actions .btn.ghost[data-cancel-sigilo] {
  border-color: color-mix(in srgb, var(--warning, #f5c16c) 42%, var(--line));
  color: color-mix(in srgb, var(--text) 86%, var(--warning, #f5c16c));
  background: color-mix(in srgb, var(--warning, #f5c16c) 8%, transparent);
}

.combat-sigilo-cancel-note {
  margin: -1px 0 0;
  color: var(--muted);
  font-size: .68rem;
  line-height: 1.25;
  text-align: center;
}

@media (min-width: 520px) {
  .combat-sigilo-inline.is-active .combat-sigilo-actions {
    grid-template-columns: 1fr 1fr;
  }
}

/* v107 — pulso verde no card do jogador na tela do Mestre quando Growl/Gatuno ativa Sigilo */
.master-combat-member-row.is-sigilo-alert {
  position: relative;
  overflow: hidden;
  border-color: color-mix(in srgb, #34d27d 72%, var(--line)) !important;
  background:
    linear-gradient(135deg, rgba(52, 210, 125, .16), rgba(52, 210, 125, .045) 48%, rgba(52, 210, 125, .12));
  box-shadow: 0 0 0 1px rgba(52, 210, 125, .28), 0 0 18px rgba(52, 210, 125, .22);
  animation: master-sigilo-green-pulse-v107 1.18s ease-in-out infinite;
}

.master-combat-member-row.is-sigilo-alert::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 50%, rgba(52, 210, 125, .34), transparent 34%),
    linear-gradient(90deg, rgba(52, 210, 125, .10), transparent 58%);
  opacity: .78;
  animation: master-sigilo-green-wash-v107 1.18s ease-in-out infinite;
}

.master-combat-member-row.is-sigilo-alert .master-combat-member-info,
.master-combat-member-row.is-sigilo-alert .master-combat-actions {
  position: relative;
  z-index: 1;
}

.master-combat-member-row.is-sigilo-alert .combat-actor-chip {
  border-color: rgba(52, 210, 125, .52);
  color: #bffbd5;
  background: rgba(52, 210, 125, .12);
}

@keyframes master-sigilo-green-pulse-v107 {
  0%, 100% {
    box-shadow: 0 0 0 1px rgba(52, 210, 125, .24), 0 0 14px rgba(52, 210, 125, .18);
    filter: saturate(1);
  }
  50% {
    box-shadow: 0 0 0 2px rgba(52, 210, 125, .54), 0 0 30px rgba(52, 210, 125, .42);
    filter: saturate(1.16);
  }
}

@keyframes master-sigilo-green-wash-v107 {
  0%, 100% { opacity: .45; }
  50% { opacity: .92; }
}

@media (prefers-reduced-motion: reduce) {
  .master-combat-member-row.is-sigilo-alert,
  .master-combat-member-row.is-sigilo-alert::before {
    animation: none !important;
  }
}

/* v108 — equalização visual do pulso do jogador logado e aro das criaturas.
   - O jogador logado recebe um pulso de rodada um pouco mais presente no avatar principal
     e no próprio card de combate.
   - Criaturas usam stroke maior para compensar o tamanho menor dos avatares e ficarem
     visualmente próximas da espessura dos jogadores. */
#playerAvatarRing.health-avatar-hero.is-current-turn {
  --hp-ring-stroke-width-active: 17;
}

#playerAvatarRing.health-avatar-hero.is-current-turn .health-ring-pulse,
.combat-member-card.self .health-avatar-wrap.is-current-turn .health-ring-pulse {
  animation: hp-svg-turn-player-logged-pulse-v108 1.02s ease-in-out infinite !important;
}

@keyframes hp-svg-turn-player-logged-pulse-v108 {
  0%, 100% {
    opacity: .32;
    filter: brightness(1.11) saturate(1.09) drop-shadow(0 0 1.8px var(--hp-ring-color));
  }
  50% {
    opacity: .72;
    filter: brightness(1.42) saturate(1.28) drop-shadow(0 0 5.8px var(--hp-ring-color)) drop-shadow(0 0 10px rgba(255,255,255,.18));
  }
}

.health-avatar-wrap.health-avatar-story,
.player-monster-story .health-avatar-wrap,
.health-avatar-wrap:has(> .avatar.player-combat-monster-avatar),
.health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar),
.health-avatar-wrap:has(> .avatar.master-monster-avatar),
.health-avatar-wrap:has(> img.avatar.master-monster-avatar),
.master-combat-monster-row .health-avatar-wrap,
.master-action-card.is-monster .health-avatar-wrap,
.player-monster-full-row .health-avatar-wrap {
  --hp-ring-stroke-width: 15;
  --hp-ring-stroke-width-active: 17;
}

.player-monster-story .health-avatar-wrap,
.health-avatar-wrap.health-avatar-story {
  --hp-ring-stroke-width: 16;
  --hp-ring-stroke-width-active: 18;
}

.health-avatar-wrap.health-avatar-story.is-current-turn,
.player-monster-story .health-avatar-wrap.is-current-turn,
.health-avatar-wrap:has(> .avatar.player-combat-monster-avatar).is-current-turn,
.health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar).is-current-turn,
.health-avatar-wrap:has(> .avatar.master-monster-avatar).is-current-turn,
.health-avatar-wrap:has(> img.avatar.master-monster-avatar).is-current-turn,
.master-combat-monster-row .health-avatar-wrap.is-current-turn,
.master-action-card.is-monster .health-avatar-wrap.is-current-turn,
.player-monster-full-row .health-avatar-wrap.is-current-turn {
  --hp-ring-stroke-width-active: 18;
}

@media (prefers-reduced-motion: reduce) {
  #playerAvatarRing.health-avatar-hero.is-current-turn .health-ring-pulse,
  .combat-member-card.self .health-avatar-wrap.is-current-turn .health-ring-pulse {
    animation: none !important;
    opacity: .52;
    filter: brightness(1.24) saturate(1.18) drop-shadow(0 0 5px var(--hp-ring-color));
  }
}

/* v110 — Desafios do Mestre mais leves + Grupo mobile sem efeitos pesados.
   A Forja não é renderizada até Novo/Editar, cards de desafio ficam resumidos,
   e o card Grupo no smartphone evita filtros/sombras e rebuilds desnecessários via JS. */
.master-challenge-launcher {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.master-challenge-launcher > div {
  min-width: 0;
}

.master-challenge-editor {
  border-color: color-mix(in srgb, var(--accent) 30%, var(--line));
}

.master-challenge-row-lite {
  align-items: flex-start;
}

.master-challenge-row-lite .master-challenge-main {
  min-width: 0;
}

.master-challenge-stats,
.challenge-details-summary {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.master-challenge-stats span,
.challenge-details-summary span {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 9px;
  border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
  border-radius: 999px;
  color: var(--muted);
  background: color-mix(in srgb, var(--surface) 52%, transparent);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .03em;
}

.challenge-details-dialog-card {
  width: min(540px, calc(100vw - 28px));
}

.challenge-details-list {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.challenge-detail-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid color-mix(in srgb, var(--line) 86%, transparent);
  border-radius: 14px;
  background: color-mix(in srgb, var(--surface-strong) 58%, transparent);
}

.challenge-detail-line.is-boss {
  border-color: color-mix(in srgb, var(--hp-monster-blue, #478cff) 35%, var(--line));
}

.challenge-detail-line strong,
.challenge-detail-line small {
  display: block;
}

.challenge-detail-line small {
  color: var(--muted);
  margin-top: 2px;
}

@media (max-width: 760px) {
  .master-challenge-launcher,
  .master-challenge-row-lite {
    align-items: stretch;
    flex-direction: column;
  }

  .master-challenge-row-lite .master-entity-actions {
    width: 100%;
  }

  .master-challenge-row-lite .master-entity-actions .btn,
  .master-challenge-launcher .btn {
    width: 100%;
  }

  [data-block="groupPanel"],
  [data-block="groupPanel"] .card-mini,
  [data-block="groupPanel"] .item-row,
  [data-block="groupPanel"] .person-line,
  [data-block="groupPanel"] .health-avatar-wrap,
  [data-block="groupPanel"] .health-avatar-wrap > .health-ring-svg,
  [data-block="groupPanel"] .health-ring-track,
  [data-block="groupPanel"] .health-ring-life,
  [data-block="groupPanel"] .health-ring-pulse {
    box-shadow: none !important;
    filter: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  [data-block="groupPanel"] .item-row {
    background: color-mix(in srgb, var(--surface-strong) 66%, transparent);
  }
}

/* v116 — Encontros: nova área de montagem, independente do editor antigo de Desafios */
.encounter-launcher-card,
.encounter-list-card,
.encounter-editor-card,
.encounter-loading-card {
  border-color: rgba(148, 163, 184, 0.18);
}

.encounter-row {
  align-items: center;
  gap: 14px;
}

.encounter-row-main {
  min-width: 0;
  flex: 1;
}

.encounter-stats,
.challenge-details-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.encounter-stats span,
.challenge-details-summary span {
  border: 1px solid rgba(148, 163, 184, 0.18);
  background: rgba(15, 23, 42, 0.42);
  border-radius: 999px;
  padding: 5px 9px;
  font-size: 0.76rem;
  color: var(--muted);
}

.encounter-editor-card {
  display: grid;
  gap: 14px;
}

.encounter-add-panel,
.encounter-draft-panel {
  border: 1px solid rgba(148, 163, 184, 0.16);
  border-radius: 16px;
  padding: 12px;
  background: rgba(15, 23, 42, 0.24);
}

.encounter-add-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 92px auto;
  gap: 10px;
  align-items: end;
}

.encounter-add-grid label,
.encounter-draft-qty {
  margin: 0;
}

.encounter-draft-list {
  display: grid;
  gap: 8px;
}

.encounter-draft-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) 82px auto;
  gap: 10px;
  align-items: center;
  border: 1px solid rgba(148, 163, 184, 0.16);
  border-radius: 14px;
  padding: 9px;
  background: rgba(2, 6, 23, 0.28);
}

.encounter-draft-badge {
  border: 1px solid rgba(168, 85, 247, 0.34);
  color: #d8b4fe;
  border-radius: 999px;
  padding: 5px 8px;
  font-size: 0.68rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.encounter-draft-badge.is-boss {
  border-color: rgba(96, 165, 250, 0.38);
  color: #bfdbfe;
}

.encounter-draft-info {
  min-width: 0;
}

.encounter-draft-info strong,
.encounter-draft-info small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.encounter-draft-info small {
  color: var(--muted);
  font-size: 0.76rem;
  margin-top: 2px;
}

.encounter-draft-qty {
  display: grid;
  gap: 3px;
}

.encounter-draft-qty span {
  color: var(--muted);
  font-size: 0.68rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.encounter-draft-qty input {
  text-align: center;
  min-width: 0;
}

@media (max-width: 720px) {
  .encounter-row {
    align-items: stretch;
  }
  .encounter-add-grid {
    grid-template-columns: 1fr;
  }
  .encounter-draft-row {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .encounter-draft-qty,
  .encounter-draft-row .btn {
    grid-column: 1 / -1;
  }
}

/* v119 — Responsividade da Forja e Encontros salvos no smartphone
   Corrige cards salvos que ficavam espremidos em linha: avatar/texto de um lado e ações do outro.
   No mobile, cada item passa a ter leitura em blocos: identidade em cima, ações embaixo. */
@media (max-width: 640px) {
  #masterMonsters > .card-mini:not(.master-builder-form),
  .encounter-list-card {
    padding: 14px;
    border-radius: 18px;
    overflow: hidden;
  }

  #masterMonsters > .card-mini:not(.master-builder-form) .compact-head,
  .encounter-list-card .compact-head {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3px;
    align-items: start;
    margin-bottom: 12px;
  }

  #masterMonsters > .card-mini:not(.master-builder-form) .compact-head .eyebrow,
  .encounter-list-card .compact-head .eyebrow {
    margin: 0;
    line-height: 1.2;
  }

  #masterMonsters > .card-mini:not(.master-builder-form) .compact-head strong,
  .encounter-list-card .compact-head strong {
    display: block;
    line-height: 1.2;
  }

  #masterMonsters .master-entity-row,
  .encounter-list-card .encounter-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    justify-content: stretch;
    gap: 12px;
    padding: 14px;
    width: 100%;
  }

  #masterMonsters .master-entity-row .person-line {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    width: 100%;
    min-width: 0;
  }

  #masterMonsters .master-entity-row .health-avatar-wrap {
    --hp-size: 42px;
    justify-self: center;
  }

  #masterMonsters .master-entity-row .person-line > div,
  .encounter-list-card .encounter-row-main {
    min-width: 0;
    width: 100%;
  }

  #masterMonsters .master-entity-row .person-line br {
    display: none;
  }

  #masterMonsters .master-entity-row .person-line strong,
  .encounter-list-card .encounter-row-main > strong {
    display: block;
    line-height: 1.14;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  #masterMonsters .master-entity-row .person-line small {
    display: block;
    margin-top: 6px;
    line-height: 1.35;
    white-space: normal;
  }

  #masterMonsters .master-entity-description,
  .encounter-list-card .master-entity-description {
    margin-top: 7px;
    line-height: 1.35;
  }

  #masterMonsters .master-entity-actions,
  .encounter-list-card .master-entity-actions {
    display: grid;
    gap: 10px;
    width: 100%;
    margin-top: 0;
    justify-content: stretch;
  }

  #masterMonsters .master-entity-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .encounter-list-card .master-entity-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .encounter-list-card .master-entity-actions [data-show-master-encounter-details] {
    grid-column: 1 / -1;
  }

  #masterMonsters .master-entity-actions .btn,
  .encounter-list-card .master-entity-actions .btn {
    width: 100%;
    min-width: 0;
    margin: 0;
  }

  .encounter-list-card .encounter-stats {
    margin-top: 10px;
  }

  .encounter-list-card .encounter-stats span {
    min-height: 26px;
  }
}

@media (max-width: 360px) {
  #masterMonsters .master-entity-actions,
  .encounter-list-card .master-entity-actions {
    grid-template-columns: 1fr;
  }

  .encounter-list-card .master-entity-actions [data-show-master-encounter-details] {
    grid-column: auto;
  }
}

/* v121 — poderes dos monstros e efeitos temporários */
.field-hint {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.72rem;
  line-height: 1.25;
  color: var(--muted);
  letter-spacing: 0.01em;
}

.combat-effect-stack {
  display: grid;
  gap: 0.45rem;
  margin-top: 0.45rem;
}

.combat-effect-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}

.combat-effect-chip {
  display: inline-flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  padding: 0.38rem 0.55rem;
  border: 1px solid rgba(148, 163, 184, 0.24);
  border-radius: 0.75rem;
  background: rgba(15, 23, 42, 0.55);
  color: rgba(226, 232, 240, 0.95);
  line-height: 1.1;
}

.combat-effect-chip strong {
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.combat-effect-chip small {
  color: var(--muted);
  font-size: 0.68rem;
}

.combat-effect-chip.is-poison {
  border-color: rgba(34, 197, 94, 0.42);
  background: rgba(22, 101, 52, 0.16);
}

.combat-effect-chip.is-flame {
  border-color: rgba(248, 113, 113, 0.48);
  background: rgba(127, 29, 29, 0.18);
}

.combat-effect-chip.is-bind,
.combat-effect-chip.is-skip {
  border-color: rgba(250, 204, 21, 0.42);
  background: rgba(113, 63, 18, 0.18);
}

.combat-effect-stack [data-roll-flames] {
  justify-self: start;
  padding-inline: 0.75rem;
}

@media (max-width: 640px) {
  .combat-effect-chip {
    padding: 0.34rem 0.48rem;
  }
  .combat-effect-chip strong {
    font-size: 0.68rem;
  }
  .combat-effect-chip small {
    font-size: 0.64rem;
  }
}

/* v123 — efeitos removíveis e rolar apenas na própria ação */
.combat-effect-chip.is-removable {
  cursor: pointer;
  transition: transform 0.16s ease, border-color 0.16s ease, background 0.16s ease, opacity 0.16s ease;
}

.combat-effect-chip.is-removable:hover,
.combat-effect-chip.is-removable:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(226, 232, 240, 0.58);
  background: rgba(30, 41, 59, 0.72);
  outline: none;
}

.combat-effect-chip.is-removable::after {
  content: "toque para remover";
  margin-top: 0.12rem;
  color: rgba(226, 232, 240, 0.58);
  font-size: 0.58rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.combat-effect-chip.is-removing {
  opacity: 0.55;
  pointer-events: none;
}

.combat-effect-stack [data-roll-flames]:disabled {
  cursor: not-allowed;
  opacity: 0.5;
  filter: saturate(0.65);
}

/* v124 — alertas de efeito no card do jogador + efeitos em faixa horizontal */
.combat-member-card.self.has-combat-effects:not(.dead) {
  grid-template-areas:
    "identity actions"
    "effects effects"
    "sigilo sigilo";
}

.combat-member-card.self.has-combat-effects:not(.dead) > .combat-member-effects-slot {
  grid-area: effects;
  width: 100%;
  min-width: 0;
  margin: 0;
}

.combat-member-effects-slot .combat-effect-stack {
  margin-top: 0;
}

.combat-effect-stack {
  width: 100%;
  gap: 0.36rem;
}

.combat-effect-chips {
  display: grid;
  grid-template-columns: 1fr;
  width: 100%;
  gap: 0.32rem;
}

.combat-effect-chip {
  box-sizing: border-box;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, auto) minmax(0, 1fr);
  align-items: center;
  gap: 0.5rem;
  min-height: 33px;
  padding: 0.34rem 0.62rem;
  border-radius: 13px;
}

.combat-effect-chip strong {
  min-width: 0;
  white-space: nowrap;
  line-height: 1;
}

.combat-effect-chip small {
  justify-self: end;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1.05;
}

.combat-effect-stack [data-roll-flames],
.combat-roll-flames-button {
  justify-self: stretch;
  width: 100%;
  min-height: 34px;
  margin-top: 0.02rem;
  border-radius: 999px;
}

.combat-member-card.self.has-poison-effect:not(.dead),
.combat-member-card.self.has-bind-effect:not(.dead),
.combat-member-card.self.has-flame-effect:not(.dead) {
  opacity: 1;
}

.combat-member-card.self.has-poison-effect:not(.dead) {
  animation: v124-card-poison-pulse 1.25s ease-in-out infinite;
}

.combat-member-card.self.has-bind-effect:not(.dead) {
  animation: v124-card-bind-pulse 1.2s ease-in-out infinite;
}

.combat-member-card.self.has-flame-effect:not(.dead) {
  animation: v124-card-flame-pulse 1.05s ease-in-out infinite;
}

@keyframes v124-card-poison-pulse {
  0%, 100% {
    border-color: rgba(132, 204, 22, 0.42);
    box-shadow: 0 0 0 1px rgba(132, 204, 22, 0.06), 0 0 0 rgba(132, 204, 22, 0);
  }
  50% {
    border-color: rgba(163, 230, 53, 0.96);
    box-shadow: 0 0 0 1px rgba(163, 230, 53, 0.38), 0 0 18px rgba(132, 204, 22, 0.24);
  }
}

@keyframes v124-card-bind-pulse {
  0%, 100% {
    border-color: rgba(250, 204, 21, 0.42);
    box-shadow: 0 0 0 1px rgba(250, 204, 21, 0.06), 0 0 0 rgba(250, 204, 21, 0);
  }
  50% {
    border-color: rgba(253, 224, 71, 0.98);
    box-shadow: 0 0 0 1px rgba(253, 224, 71, 0.34), 0 0 18px rgba(250, 204, 21, 0.22);
  }
}

@keyframes v124-card-flame-pulse {
  0%, 100% {
    border-color: rgba(248, 113, 113, 0.44);
    box-shadow: 0 0 0 1px rgba(248, 113, 113, 0.06), 0 0 0 rgba(248, 113, 113, 0);
  }
  50% {
    border-color: rgba(239, 68, 68, 0.98);
    box-shadow: 0 0 0 1px rgba(239, 68, 68, 0.38), 0 0 19px rgba(239, 68, 68, 0.24);
  }
}

@media (max-width: 760px) {
  .combat-member-card.self.has-combat-effects:not(.dead) {
    grid-template-areas:
      "identity"
      "actions"
      "effects"
      "sigilo";
  }
}

@media (max-width: 430px) {
  .combat-effect-chip {
    min-height: 32px;
    padding: 0.32rem 0.52rem;
    gap: 0.42rem;
  }
}

/* v125 — Crivo da Lontra: eventos e login persistente */
.login-card-secure .brand-mark {
  letter-spacing: .03em;
}
.admin-event-form {
  margin-bottom: 14px;
}
.admin-events-list {
  gap: 12px;
}
.admin-event-card {
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.035);
  border-radius: 18px;
  padding: 14px;
  display: grid;
  gap: 12px;
}
.admin-event-card.is-current {
  border-color: rgba(139, 232, 178, .52);
  box-shadow: 0 0 0 1px rgba(139, 232, 178, .12), 0 14px 34px rgba(0,0,0,.20);
}
.admin-event-card.is-archived {
  opacity: .68;
}
.admin-event-card-main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.admin-event-card-main > div {
  min-width: 0;
}
.admin-event-card-main strong {
  display: block;
  font-size: 1rem;
}
.admin-combat-status.is-draft {
  border-color: rgba(255, 220, 135, .35);
  background: rgba(255, 220, 135, .10);
  color: #ffe0a0;
}
@media (max-width: 720px) {
  .admin-event-card-main {
    flex-direction: column;
  }
  .admin-event-card .admin-combat-card-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .admin-event-card .admin-combat-card-actions .btn {
    width: 100%;
  }
}

/* v126 — Admin com seleção obrigatória de evento */
.admin-event-gate {
  display: grid;
  gap: 18px;
  max-width: 1040px;
  margin: 0 auto;
}

.admin-event-gate-hero {
  background:
    radial-gradient(circle at top left, rgba(139, 232, 178, .12), transparent 34%),
    color-mix(in srgb, var(--surface-strong) 94%, transparent);
}

.admin-event-context {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 18px;
  border-color: rgba(139, 232, 178, .22);
  background:
    linear-gradient(135deg, rgba(139, 232, 178, .075), transparent 42%),
    color-mix(in srgb, var(--surface-strong) 95%, transparent);
}

.admin-event-context h2 {
  margin: 0;
  font-size: clamp(1.15rem, 2.2vw, 1.55rem);
}

.admin-event-context .muted {
  margin: 4px 0 0;
}

.admin-event-switch {
  color: var(--text);
  border-color: rgba(139, 232, 178, .22);
  background: rgba(139, 232, 178, .08);
}

.success-text {
  color: #9af0bf;
  margin: 6px 0 0;
  font-size: .86rem;
  font-weight: 800;
}

@media (max-width: 720px) {
  .admin-event-context {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-event-context .btn {
    width: 100%;
  }
}

/* v127 — Combate Autônomo, Forja Global e Espólios */
.admin-global-monster-row,
.admin-autonomous-row,
.spoil-row,
.autonomous-edit-row {
  align-items: flex-start;
  gap: 12px;
}
.admin-autonomous-row.is-inactive,
.spoil-row.is-granted {
  opacity: .72;
}
.admin-autonomous-main {
  flex: 1;
  min-width: 180px;
}
.small-qr {
  width: 86px;
  min-width: 86px;
  height: 86px;
  background: #fff;
  border-radius: 12px;
  padding: 6px;
}
.admin-auto-editor-block {
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 18px;
  padding: 12px;
  background: rgba(255,255,255,.03);
}
.autonomous-monster-list,
.autonomous-spoil-list {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}
.autonomous-edit-row {
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 16px;
  padding: 10px;
  background: rgba(0,0,0,.18);
}
.autonomous-edit-title {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 8px;
}
.compact-form-grid {
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 8px;
}
.compact-form-grid .wide {
  grid-column: 1 / -1;
}
.autonomous-player-actions,
.player-spoils-card {
  margin-top: 10px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 18px;
  padding: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
}
.autonomous-player-actions .combat-roll-flames-button,
.autonomous-player-actions .row .combat-roll-flames-button {
  width: 100%;
  min-height: 44px;
}
.autonomous-player-actions .row {
  width: 100%;
  gap: 8px;
}
.autonomous-wait-line {
  margin: 10px 0 0;
  text-align: center;
}
.autonomous-target-list {
  display: grid;
  gap: 8px;
  margin: 12px 0;
}
.player-spoils-card {
  border-color: rgba(255, 213, 128, .32);
}
.player-spoils-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.player-spoils-list span {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 6px 10px;
  background: rgba(255, 213, 128, .12);
  border: 1px solid rgba(255, 213, 128, .22);
  font-size: .85rem;
}
@media (max-width: 760px) {
  .admin-autonomous-row,
  .admin-global-monster-row,
  .spoil-row {
    align-items: stretch;
  }
  .small-qr {
    width: 100%;
    height: auto;
    min-height: 110px;
    display: flex;
    justify-content: center;
  }
}

/* v129 — QR de Combate Autônomo mais legível e payload por URL */
.qr-canvas[data-qr-size] {
  width: var(--qr-size, 112px);
  height: var(--qr-size, 112px);
}
.qr-canvas[data-qr-size] img,
.qr-canvas[data-qr-size] canvas {
  width: var(--qr-size, 112px) !important;
  height: var(--qr-size, 112px) !important;
}
.autonomous-qr-box {
  display: grid;
  justify-items: center;
  gap: 6px;
  background: #ffffff;
  color: #1f1710;
  border-radius: 18px;
  padding: 12px;
  box-shadow: 0 10px 28px rgba(0,0,0,.22);
}
.autonomous-qr {
  margin: 0;
  background: #ffffff;
  border-radius: 12px;
  padding: 8px;
}
.qr-help-line {
  max-width: 190px;
  text-align: center;
  line-height: 1.25;
  color: #5a4738;
}
@media (max-width: 760px) {
  .autonomous-qr-box {
    width: 100%;
  }
}

/* v130 — QR baixável, catálogo de Espólios e acompanhamento autônomo */
.autonomous-qr-poster-box {
  min-width: min(100%, 580px);
}
.autonomous-qr-poster-box .qr-help-line {
  max-width: 320px;
}
.spoil-catalog-row,
.autonomous-execution-row {
  align-items: flex-start;
}
.spoil-generated-qr-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}
.spoil-qr-card {
  width: 220px;
  max-width: 100%;
}
.spoil-qr-card .btn {
  margin-top: 8px;
  width: 100%;
}
@media (max-width: 760px) {
  .autonomous-qr-poster-box {
    min-width: 0;
    overflow: auto;
  }
  .autonomous-qr[data-qr-size="528"] {
    transform-origin: top center;
  }
}

/* v132 — Combate Autônomo guiado por popups */
.autonomous-qr-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: 210px;
}
.autonomous-qr-actions .qr-help-line {
  flex-basis: 100%;
  max-width: none;
  color: rgba(255,255,255,.58);
  text-align: right;
}
.autonomous-qr-dialog-card {
  width: min(96vw, 680px);
}
.autonomous-qr-display {
  margin: 10px auto;
  padding: 10px;
  border-radius: 18px;
  background: #fff;
  overflow: auto;
  max-width: 100%;
  max-height: 62vh;
}
.autonomous-combat-status-card {
  display: grid;
  gap: 5px;
  margin: 10px 0 12px;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255, 214, 127, .10), rgba(145, 99, 255, .07));
}
.autonomous-combat-status-card > span {
  color: rgba(255,255,255,.78);
  font-size: .92rem;
}
.autonomous-mini-history {
  display: grid;
  gap: 4px;
  margin-top: 6px;
  padding-top: 8px;
  border-top: 1px solid rgba(255,255,255,.08);
}
.autonomous-mini-history small {
  color: rgba(255,255,255,.55);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .68rem;
}
.autonomous-mini-history p {
  margin: 0;
  color: rgba(255,255,255,.74);
  font-size: .82rem;
  line-height: 1.3;
}
.combat-member-autonomous-slot {
  margin-top: 8px;
}
.combat-member-autonomous-slot .autonomous-player-actions {
  margin-top: 0;
}
.autonomous-player-actions.in-card {
  padding: 10px;
  border-radius: 16px;
  background: rgba(0,0,0,.18);
}
.autonomous-player-actions.is-waiting {
  padding: 10px;
}
.autonomous-decision-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
@media (max-width: 760px) {
  .autonomous-qr-actions {
    width: 100%;
    justify-content: stretch;
  }
  .autonomous-qr-actions .btn {
    flex: 1 1 130px;
  }
  .autonomous-qr-actions .qr-help-line {
    text-align: left;
  }
  .autonomous-decision-actions {
    grid-template-columns: 1fr;
  }
}

/* v133 — QR de Combate Autônomo menor na tela e com borda branca de leitura */
.autonomous-qr-dialog-card {
  width: min(94vw, 420px);
}
.autonomous-qr-display {
  width: max-content;
  height: auto;
  margin: 12px auto;
  padding: 22px;
  border-radius: 20px;
  background: #ffffff;
  border: 1px solid rgba(255,255,255,.94);
  box-shadow: 0 16px 34px rgba(0,0,0,.24);
  overflow: visible;
  max-width: calc(100vw - 72px);
  max-height: none;
  box-sizing: content-box;
}
.autonomous-qr-display img,
.autonomous-qr-display canvas {
  display: block;
  background: #ffffff;
}
.autonomous-qr-dialog-card .muted {
  overflow-wrap: anywhere;
}
@media (max-width: 420px) {
  .autonomous-qr-dialog-card {
    width: min(94vw, 360px);
  }
  .autonomous-qr-display {
    padding: 18px;
    max-width: calc(100vw - 64px);
  }
  .autonomous-qr-display[data-qr-size] {
    width: 220px;
    height: 220px;
  }
  .autonomous-qr-display[data-qr-size] img,
  .autonomous-qr-display[data-qr-size] canvas {
    width: 220px !important;
    height: 220px !important;
  }
}

/* v140 — Crônica do Combate mais legível */
.autonomous-mini-history p {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 6px;
  align-items: start;
}
.autonomous-mini-history .chronicle-dot {
  color: rgba(255, 214, 127, .9);
  line-height: 1.3;
  font-weight: 800;
}

/* v141 — Crônica do Combate respeitando tema claro/escuro */
.autonomous-combat-status-card {
  border-color: var(--line) !important;
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--surface-strong) 88%, var(--accent) 12%),
      color-mix(in srgb, var(--surface) 94%, var(--accent-strong) 6%)) !important;
  color: var(--text) !important;
  box-shadow: 0 14px 34px color-mix(in srgb, var(--shadow) 45%, transparent) !important;
}

.autonomous-combat-status-card > strong,
.autonomous-combat-status-card .eyebrow,
.autonomous-mini-history small,
.autonomous-mini-history p,
.autonomous-mini-history span {
  color: inherit;
}

.autonomous-combat-status-card > span {
  color: var(--muted) !important;
}

.autonomous-mini-history {
  border-top-color: var(--line) !important;
}

.autonomous-mini-history small {
  color: var(--muted) !important;
}

.autonomous-mini-history p {
  color: var(--text) !important;
  background: color-mix(in srgb, var(--surface-strong) 72%, transparent) !important;
  border: 1px solid color-mix(in srgb, var(--line) 78%, transparent) !important;
  border-radius: 12px;
  padding: 7px 9px;
}

.autonomous-mini-history .chronicle-dot {
  color: var(--accent-strong) !important;
}

@media (prefers-color-scheme: dark) {
  .autonomous-combat-status-card {
    background:
      linear-gradient(135deg,
        color-mix(in srgb, var(--surface-strong) 82%, var(--accent) 10%),
        color-mix(in srgb, var(--surface) 90%, #000 10%)) !important;
  }
  .autonomous-mini-history p {
    background: color-mix(in srgb, var(--surface-strong) 82%, #000 10%) !important;
  }
}


/* v144 — interface clean e temas padronizados
   Diretriz: cor só quando comunica estado de jogo. Sem sombras, glows ou degradês decorativos. */
:root {
  color-scheme: light dark;
  --font-ui: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  --font-display: "Cinzel", Georgia, serif;
  --bg: #f6f6f4;
  --surface: #ffffff;
  --surface-strong: #ffffff;
  --text: #151515;
  --muted: #646464;
  --line: #d7d7d2;
  --accent: #151515;
  --accent-strong: #151515;
  --danger: #a53a3a;
  --success: #2f7047;
  --shadow: none;
  --clean-hover: #efefec;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #09090a;
    --surface: #141416;
    --surface-strong: #1b1b1e;
    --text: #f4f4f4;
    --muted: #a5a5a8;
    --line: #34343a;
    --accent: #f4f4f4;
    --accent-strong: #ffffff;
    --danger: #ef8b8b;
    --success: #8fcf9e;
    --shadow: none;
    --clean-hover: #202024;
  }
}

html,
body {
  background: var(--bg) !important;
  background-image: none !important;
  color: var(--text) !important;
}

body,
body * {
  text-shadow: none !important;
  box-shadow: none !important;
}

body,
input,
select,
textarea,
button,
.btn,
.muted,
.badge,
.status-pill,
.player-hero,
.player-hero *,
.items-only-panel,
.items-only-panel *,
.player-footer .eyebrow,
.player-footer h3,
.player-footer .muted,
.player-footer .sync-status,
.turn-action-button,
.master-status-btn,
.master-monster-status-btn,
.sigilo-action-card h3,
.sigilo-rule-hero h3,
.group-name,
.sigilo-card strong,
.player-class,
.player-state,
.stat-card span,
.sigilo-card span {
  font-family: var(--font-ui) !important;
}

.player-name,
[data-field="metaformaNome"] {
  font-family: var(--font-display) !important;
  color: var(--text) !important;
  letter-spacing: -0.02em;
}

.stat-card strong,
.player-core-stats strong,
.player-stats strong,
[data-field="ataque"],
[data-field="defesa"],
[data-field="vitalidade"] {
  font-family: var(--font-display) !important;
  color: var(--text) !important;
}

h1,
h2,
h3,
h4,
strong,
.section-head h2,
.login-card h1,
.topbar h1 {
  color: var(--text) !important;
}

p,
small,
label span,
.muted,
.hint,
.message,
.top-subtitle,
.life-state,
.meta-class,
.player-class,
.player-state,
.field-hint,
.autonomous-combat-status-card > span {
  color: var(--muted) !important;
}

.login-card,
.panel,
.modal-card,
.forum-dialog-card,
.player-history-dialog-card,
.player-initiative-dialog-card,
.player-monsters-dialog-card,
.player-ranking-dialog-card,
.player-hero,
.player-gamebox,
.card-mini,
.item-row,
.invite-card,
.stat-card,
.sigilo-card,
.sigilo-rule-hero,
.sigilo-action-card,
.player-spoils-card,
.autonomous-combat-status-card,
.history-share-poster,
.history-metric-card,
.history-rank-grid > div,
.history-feat-row,
.compact-metaforma-row,
.master-member-chip,
.master-group-status,
.admin-combat-status,
.turn-pill,
.sync-status,
.badge,
.status-pill {
  background: var(--surface) !important;
  background-image: none !important;
  border-color: var(--line) !important;
  color: var(--text) !important;
  backdrop-filter: none !important;
}

.panel,
.login-card,
.modal-card,
.forum-dialog-card,
.player-hero,
.card-mini,
.item-row,
.invite-card,
.stat-card,
.sigilo-card,
.player-spoils-card,
.autonomous-combat-status-card {
  border: 1px solid var(--line) !important;
}

.stats div,
.player-stats div,
.history-rank-row,
.autonomous-mini-history p,
.combat-member-card,
.master-combat-member-row,
.combat-queue-row,
.player-monster-full-row,
.spoil-row,
.admin-autonomous-row,
.admin-autonomous-actor-row,
.master-entity-card,
.encounter-list-card,
.master-challenge-card {
  background: var(--surface-strong) !important;
  background-image: none !important;
  border-color: var(--line) !important;
  color: var(--text) !important;
}

button,
.btn,
.turn-action-button,
.master-status-btn,
.master-monster-status-btn,
.compact-button,
.eye-button {
  background: transparent !important;
  background-image: none !important;
  border: 1px solid var(--line) !important;
  color: var(--text) !important;
  transform: none !important;
  transition: border-color .12s ease, background-color .12s ease, color .12s ease !important;
}

.btn:hover,
button:hover,
.turn-action-button:hover,
.master-status-btn:hover,
.master-monster-status-btn:hover,
.clickable-sigilo:hover,
.clickable-sigilo:focus-visible,
.clickable-avatar:hover .avatar-hero,
.clickable-avatar:hover .avatar-placeholder,
.clickable-avatar:hover .health-avatar-wrap {
  transform: none !important;
}

.btn:hover,
button:hover,
.turn-action-button:hover,
.master-status-btn:hover,
.master-monster-status-btn:hover {
  background: var(--clean-hover) !important;
  border-color: var(--text) !important;
}

.btn.primary {
  background: var(--text) !important;
  border-color: var(--text) !important;
  color: var(--bg) !important;
}

.btn.secondary,
.btn.ghost {
  background: transparent !important;
  color: var(--text) !important;
  border-color: var(--line) !important;
}

.btn.danger,
button.danger {
  background: transparent !important;
  color: var(--danger) !important;
  border-color: color-mix(in srgb, var(--danger) 60%, var(--line)) !important;
}

.btn.danger:hover,
button.danger:hover {
  border-color: var(--danger) !important;
}

input,
select,
textarea {
  background: var(--surface-strong) !important;
  color: var(--text) !important;
  border-color: var(--line) !important;
  box-shadow: none !important;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--text) !important;
  box-shadow: none !important;
}

.brand-mark,
.avatar-placeholder,
.history-poster-glow,
.history-metric-icon {
  background: transparent !important;
  background-image: none !important;
  color: var(--text) !important;
  filter: none !important;
}

/* QR precisa continuar com fundo branco real para leitura de câmera e impressão. */
.qr-card,
.group-qr,
.autonomous-qr-display,
.autonomous-qr-display img,
.autonomous-qr-display canvas,
.qr-canvas,
.qr-canvas img,
.qr-canvas canvas {
  background: #ffffff !important;
  color: #111111 !important;
}

.qr-card small,
.group-qr small {
  color: #555555 !important;
}

/* Crônica: limpa, legível e sem cartões coloridos. */
.autonomous-mini-history {
  border-top: 1px solid var(--line) !important;
  color: var(--text) !important;
}

.autonomous-mini-history small {
  color: var(--muted) !important;
  font-weight: 700;
}

.autonomous-mini-history p {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 4px 0 !important;
  color: var(--text) !important;
}

.autonomous-mini-history .chronicle-dot {
  color: var(--muted) !important;
}

/* Mantém cores funcionais de estado, mas sem fundo/glow decorativo. */
.combat-effect-chip {
  background: transparent !important;
  color: var(--text) !important;
}

.combat-effect-chip.is-poison {
  border-color: rgba(132, 204, 22, 0.78) !important;
}
.combat-effect-chip.is-bind,
.combat-effect-chip.is-skip {
  border-color: rgba(250, 204, 21, 0.82) !important;
}
.combat-effect-chip.is-flame {
  border-color: rgba(239, 68, 68, 0.84) !important;
}

.turn-action-button.is-pending,
.turn-action-button.is-done {
  background: transparent !important;
}

.turn-action-button.is-pending {
  color: #c79a28 !important;
  border-color: #c79a28 !important;
}

.turn-action-button.is-done {
  color: var(--success) !important;
  border-color: var(--success) !important;
}

.player-state.status-viva,
.player-state.status-combate,
.player-state.status-ferida,
.player-state.status-morta,
.message.error,
.warning {
  background: transparent !important;
}

.player-state.status-morta,
.message.error,
.warning {
  color: var(--danger) !important;
}

.player-state.status-viva {
  color: var(--success) !important;
}

/* Aros de vida continuam coloridos; apenas retiramos profundidade visual. */
.health-avatar-wrap,
.history-hero-avatar {
  box-shadow: none !important;
}

/* Bordas piscantes continuam, mas sem brilho externo. */
@keyframes v124-card-poison-pulse {
  0%, 100% { border-color: rgba(132, 204, 22, 0.46); box-shadow: none; }
  50% { border-color: rgba(163, 230, 53, 1); box-shadow: none; }
}

@keyframes v124-card-bind-pulse {
  0%, 100% { border-color: rgba(250, 204, 21, 0.48); box-shadow: none; }
  50% { border-color: rgba(253, 224, 71, 1); box-shadow: none; }
}

@keyframes v124-card-flame-pulse {
  0%, 100% { border-color: rgba(248, 113, 113, 0.48); box-shadow: none; }
  50% { border-color: rgba(239, 68, 68, 1); box-shadow: none; }
}

/* Diálogos continuam legíveis em ambos os temas. */
.modal {
  background: color-mix(in srgb, #000000 56%, transparent) !important;
}

@media (prefers-color-scheme: light) {
  .modal {
    background: color-mix(in srgb, #000000 30%, transparent) !important;
  }
}

/* v145 — ajustes da tela do jogador, aros dos inimigos e Olho Mágico em modal */
/* Tipografia: remover caixa alta decorativa dos rótulos/bold comuns; títulos seguem com contraste pelo peso, não por maiúsculas. */
.eyebrow,
.sigilo-card span,
.buffs-card span,
.stat-inline span,
.stat-card span,
.mini-label,
.history-poster-topline,
.history-metric-label,
.autonomous-mini-history small,
.combat-effect-chip,
.combat-action-state,
.status-pill,
.badge {
  text-transform: none !important;
  letter-spacing: 0 !important;
}

strong,
b,
.combat-member-card strong,
.card-mini strong,
.guide-card strong,
.item-row strong,
.spoil-row strong,
.admin-autonomous-row strong,
.master-entity-row strong,
.master-combat-member-row strong,
.player-monster-full-row strong {
  text-transform: none !important;
}

/* Card de combate do jogador: Rodada e textos mais discretos. */
.player-combat-panel .section-head h2 {
  font-size: clamp(1.15rem, 3.5vw, 1.55rem) !important;
  line-height: 1.08 !important;
  margin: 0 !important;
}
.player-combat-panel [data-field="combatMaster"] {
  font-size: .78rem !important;
  line-height: 1.25 !important;
  margin-top: 3px !important;
  color: var(--muted) !important;
}
.combat-turn-summary {
  gap: 8px !important;
  padding: 9px 11px !important;
  border-radius: 14px !important;
  margin-bottom: 10px !important;
}
.combat-turn-summary strong {
  font-family: var(--font-ui) !important;
  font-size: .98rem !important;
  line-height: 1 !important;
  color: var(--text) !important;
}
.combat-turn-summary span {
  font-size: .76rem !important;
  line-height: 1.2 !important;
  color: var(--muted) !important;
}

/* Pulso/Ação no card dos jogadores em combate. */
.combat-pulse-slot {
  font-family: var(--font-ui) !important;
  color: var(--muted) !important;
}
.combat-action-state {
  font-family: var(--font-ui) !important;
  font-size: .74rem !important;
  font-weight: 650 !important;
  color: var(--muted) !important;
  background: transparent !important;
  min-width: 104px !important;
}
.combat-action-state.is-pending,
.combat-member-card:not(.acted):not(.dead) .combat-action-state {
  color: var(--muted) !important;
  border-color: #c79a28 !important;
}
.combat-action-state.is-done,
.combat-member-card.acted .combat-action-state {
  color: var(--muted) !important;
  border-color: var(--success) !important;
}
.combat-member-card.dead .combat-action-state {
  color: var(--muted) !important;
  border-color: var(--danger) !important;
}

/* Efeitos ativos no card principal: texto de apoio limpo, sem aspecto de título pesado. */
.effect-line,
[data-field="arquetipo"] {
  font-size: .82rem !important;
  line-height: 1.35 !important;
  color: var(--muted) !important;
  font-weight: 450 !important;
}

/* Correção dos inimigos: a regra genérica de botões do v144 não deve criar quadrado em volta dos stories. */
.player-monster-story,
.player-monster-story:hover,
.player-monster-story:focus,
.player-monster-story:focus-visible,
.player-monster-story:active {
  border: 0 !important;
  outline: none !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}
.player-monster-story .health-avatar-wrap,
.health-avatar-wrap.health-avatar-story,
.health-avatar-wrap:has(> .avatar.player-combat-monster-avatar),
.health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar) {
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 999px !important;
  overflow: visible !important;
}
.player-monster-story .health-ring-pulse,
.health-avatar-wrap.health-avatar-story .health-ring-pulse,
.health-avatar-wrap:has(> .avatar.player-combat-monster-avatar) .health-ring-pulse,
.health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar) .health-ring-pulse {
  display: none !important;
}
.player-monster-story .health-ring-track,
.player-monster-story .health-ring-life,
.health-avatar-wrap.health-avatar-story .health-ring-track,
.health-avatar-wrap.health-avatar-story .health-ring-life {
  stroke-width: 10 !important;
}
.player-monster-story .avatar,
.player-monster-story img.avatar,
.player-monster-story .avatar-placeholder,
.player-combat-monster-avatar {
  border-radius: 999px !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

/* Olho Mágico no padrão clean dos demais cards. */
.qr-minimal-panel {
  justify-items: stretch !important;
  align-items: stretch !important;
  text-align: left !important;
}
.qr-minimal-panel .qr-headline,
.qr-minimal-panel .qr-actions-row {
  justify-content: flex-start !important;
}
.eye-button {
  width: auto !important;
  min-height: 44px !important;
  height: 44px !important;
  min-width: 64px !important;
  border-radius: 14px !important;
  padding: 0 18px !important;
  font-size: 1.4rem !important;
  place-items: center !important;
}

/* Ao abrir a câmera, ela vira janela centralizada sobreposta à tela. */
body.qr-camera-open {
  overflow: hidden !important;
}
body.qr-camera-open::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9990;
  background: color-mix(in srgb, #000 68%, transparent);
}
body.qr-camera-open #qrReader {
  position: fixed !important;
  z-index: 10000 !important;
  left: 50% !important;
  top: 48% !important;
  transform: translate(-50%, -50%) !important;
  width: min(92vw, 390px) !important;
  max-width: min(92vw, 390px) !important;
  min-height: min(70vh, 390px) !important;
  margin: 0 !important;
  border-radius: 20px !important;
  border: 1px solid var(--line) !important;
  background: #000 !important;
  box-shadow: none !important;
}
body.qr-camera-open #qrReader video {
  border-radius: 20px !important;
}
body.qr-camera-open #qrStatus {
  position: fixed !important;
  z-index: 10001 !important;
  left: 50% !important;
  top: calc(48% + min(35vh, 205px)) !important;
  transform: translateX(-50%) !important;
  width: min(88vw, 390px) !important;
  margin: 12px 0 0 !important;
  padding: 10px 12px !important;
  border-radius: 14px !important;
  border: 1px solid var(--line) !important;
  background: var(--surface) !important;
  color: var(--text) !important;
  text-align: center !important;
}
body.qr-camera-open #stopQr {
  position: fixed !important;
  z-index: 10002 !important;
  left: 50% !important;
  bottom: max(22px, env(safe-area-inset-bottom)) !important;
  transform: translateX(-50%) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--surface) !important;
  color: var(--text) !important;
  border-color: var(--line) !important;
}
body.qr-camera-open #stopQr.hidden {
  display: none !important;
}

@media (prefers-color-scheme: light) {
  body.qr-camera-open::before {
    background: color-mix(in srgb, #000 38%, transparent);
  }
}

/* v146 — refinamento visual do card do jogador, inimigos e espera de combate */
/* O aviso vazio de efeitos não ocupa espaço quando não há efeito ativo. */
.effect-line.hidden,
[data-field="arquetipo"].hidden {
  display: none !important;
}

/* Inimigos: aros mais finos, próximos ao aro dos jogadores, sem quadrado ou aro duplo. */
.player-monster-story,
.player-monster-story:hover,
.player-monster-story:focus,
.player-monster-story:focus-visible,
.player-monster-story:active {
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.player-monster-story .health-avatar-wrap,
.health-avatar-wrap.health-avatar-story,
.health-avatar-wrap:has(> .avatar.player-combat-monster-avatar),
.health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar) {
  --hp-ring-stroke-width: 7 !important;
  --hp-ring-stroke-width-active: 8.5 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
  border-radius: 999px !important;
  overflow: visible !important;
}
.player-monster-story .health-ring-track,
.player-monster-story .health-ring-life,
.health-avatar-wrap.health-avatar-story .health-ring-track,
.health-avatar-wrap.health-avatar-story .health-ring-life,
.health-avatar-wrap:has(> .avatar.player-combat-monster-avatar) .health-ring-track,
.health-avatar-wrap:has(> .avatar.player-combat-monster-avatar) .health-ring-life,
.health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar) .health-ring-track,
.health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar) .health-ring-life {
  stroke-width: 7 !important;
}
.player-monster-story .health-avatar-wrap.is-current-turn .health-ring-track,
.player-monster-story .health-avatar-wrap.is-current-turn .health-ring-life,
.health-avatar-wrap.health-avatar-story.is-current-turn .health-ring-track,
.health-avatar-wrap.health-avatar-story.is-current-turn .health-ring-life,
.health-avatar-wrap:has(> .avatar.player-combat-monster-avatar).is-current-turn .health-ring-track,
.health-avatar-wrap:has(> .avatar.player-combat-monster-avatar).is-current-turn .health-ring-life,
.health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar).is-current-turn .health-ring-track,
.health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar).is-current-turn .health-ring-life {
  stroke-width: 8.5 !important;
}
.player-monster-story .health-ring-pulse,
.health-avatar-wrap.health-avatar-story .health-ring-pulse,
.health-avatar-wrap:has(> .avatar.player-combat-monster-avatar) .health-ring-pulse,
.health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar) .health-ring-pulse {
  display: none !important;
}

/* Pulso de Vida centralizado no card, com moldura discreta. */
.combat-pulse-slot {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .45rem !important;
  width: fit-content !important;
  max-width: 100% !important;
  margin: .48rem auto 0 !important;
  padding: .34rem .72rem !important;
  border-radius: 999px !important;
  border: 1px solid var(--line) !important;
  background: color-mix(in srgb, var(--surface-strong) 72%, transparent) !important;
  text-align: center !important;
  font-size: .76rem !important;
  line-height: 1 !important;
}
.combat-pulse-slot span,
.combat-pulse-slot strong {
  font-family: var(--font-ui) !important;
}
.combat-pulse-slot strong {
  color: var(--text) !important;
}
.combat-pulse-slot.has-pulse {
  border-color: color-mix(in srgb, var(--success) 42%, var(--line)) !important;
  background: color-mix(in srgb, var(--success) 10%, var(--surface-strong)) !important;
}

/* Molduras internas mais harmoniosas dentro do card de combate. */
.combat-sigilo-inline,
.autonomous-player-actions,
.player-spoils-card,
.combat-member-effects-slot .combat-effect-stack,
.combat-member-autonomous-slot .autonomous-player-actions {
  border-radius: 22px !important;
}
.combat-sigilo-inline {
  width: 100% !important;
  max-width: 100% !important;
  padding: 12px 13px !important;
  background: var(--surface) !important;
  box-shadow: none !important;
}
.combat-sigilo-headline span {
  min-width: 34px !important;
  height: 34px !important;
}
.combat-action-state {
  border-radius: 999px !important;
  padding: 7px 12px !important;
}

/* A espera do jogador fica menor e pulsa suavemente, sem parecer alerta pesado. */
.autonomous-wait-line {
  margin: 12px auto 0 !important;
  max-width: 92% !important;
  text-align: center !important;
  font-size: .82rem !important;
  line-height: 1.35 !important;
  color: var(--muted) !important;
  animation: autonomous-wait-soft-pulse-v146 1.65s ease-in-out infinite;
}
@keyframes autonomous-wait-soft-pulse-v146 {
  0%, 100% { opacity: .48; }
  50% { opacity: .92; }
}
@media (prefers-reduced-motion: reduce) {
  .autonomous-wait-line {
    animation: none !important;
    opacity: .72;
  }
}

/* v147 — Pulso de Vida e estado de ação centralizados com molduras iguais */
.combat-member-pulse-row {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  min-width: 0 !important;
}

.combat-member-card.self:not(.dead),
.combat-member-card.self.has-combat-effects:not(.dead) {
  grid-template-columns: 1fr !important;
  grid-template-areas:
    "identity"
    "pulse"
    "actions"
    "effects"
    "sigilo"
    "autonomous" !important;
  justify-items: stretch !important;
  row-gap: 8px !important;
}

.combat-member-card.self:not(.dead) > .combat-person-line {
  grid-area: identity !important;
}

.combat-member-card.self:not(.dead) > .combat-member-pulse-row {
  grid-area: pulse !important;
  margin-top: 2px !important;
}

.combat-member-card.self:not(.dead) > .combat-member-actions {
  grid-area: actions !important;
  justify-self: center !important;
  align-self: center !important;
  width: 100% !important;
  min-width: 0 !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
}

.combat-member-card.self:not(.dead) > .combat-member-effects-slot {
  grid-area: effects !important;
}

.combat-member-card.self:not(.dead) > .combat-member-sigilo-slot {
  grid-area: sigilo !important;
}

.combat-member-card.self:not(.dead) > .combat-member-autonomous-slot {
  grid-area: autonomous !important;
  width: 100% !important;
  min-width: 0 !important;
}

.combat-member-card.self .combat-pulse-slot,
.combat-member-card.self .combat-action-state {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 148px !important;
  min-width: 148px !important;
  max-width: 148px !important;
  min-height: 31px !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  line-height: 1 !important;
  text-align: center !important;
}

.combat-member-card.self .combat-pulse-slot {
  gap: .38rem !important;
  margin-top: 0 !important;
}

.combat-member-card.self .combat-action-state {
  white-space: nowrap !important;
}

@media (max-width: 380px) {
  .combat-member-card.self .combat-pulse-slot,
  .combat-member-card.self .combat-action-state {
    width: 136px !important;
    min-width: 136px !important;
    max-width: 136px !important;
    font-size: .7rem !important;
  }
}

/* v148 — harmonização geral dos cards de combate, modais limpos e iniciativa */
/* Pulso de Vida e estado de ação centralizados em todos os cards de jogadores. */
.combat-member-card:not(.dead) {
  display: grid !important;
  grid-template-columns: 1fr !important;
  grid-template-areas:
    "identity"
    "pulse"
    "actions"
    "autonomous"
    "effects"
    "sigilo" !important;
  justify-items: stretch !important;
  align-items: start !important;
  row-gap: 8px !important;
}

.combat-member-card:not(.dead) > .combat-person-line {
  grid-area: identity !important;
  width: 100% !important;
  min-width: 0 !important;
}

.combat-member-card:not(.dead) > .combat-member-pulse-row {
  grid-area: pulse !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  margin: 1px 0 0 !important;
}

.combat-member-card:not(.dead) > .combat-member-actions {
  grid-area: actions !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  min-width: 0 !important;
  gap: 8px !important;
  margin: 0 !important;
}

.combat-member-card:not(.dead) > .combat-member-autonomous-slot {
  grid-area: autonomous !important;
  width: 100% !important;
  min-width: 0 !important;
  display: flex !important;
  justify-content: center !important;
}

.combat-member-card:not(.dead) > .combat-member-effects-slot {
  grid-area: effects !important;
  width: 100% !important;
}

.combat-member-card:not(.dead) > .combat-member-sigilo-slot {
  grid-area: sigilo !important;
  width: 100% !important;
}

.combat-member-card .combat-pulse-slot,
.combat-member-card .combat-action-state {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 148px !important;
  min-width: 148px !important;
  max-width: 148px !important;
  min-height: 31px !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  margin: 0 auto !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: nowrap !important;
  color: var(--muted) !important;
  border-color: var(--line) !important;
  background: color-mix(in srgb, var(--surface-strong) 72%, transparent) !important;
}

.combat-member-card .combat-pulse-slot {
  gap: .38rem !important;
}

.combat-member-card .combat-pulse-slot.has-pulse,
.combat-member-card .combat-action-state.is-pending,
.combat-member-card:not(.acted):not(.dead) .combat-action-state,
.combat-member-card .combat-action-state.is-done,
.combat-member-card.acted .combat-action-state,
.combat-member-card.dead .combat-action-state {
  color: var(--muted) !important;
  border-color: var(--line) !important;
  background: color-mix(in srgb, var(--surface-strong) 72%, transparent) !important;
}

.combat-member-card .combat-pulse-slot strong {
  color: var(--text) !important;
}

/* A mensagem de espera fica imediatamente abaixo do estado de ação, menor e pulsante. */
.combat-member-autonomous-slot .autonomous-wait-line {
  margin: 0 auto !important;
  max-width: 92% !important;
  text-align: center !important;
  font-size: .78rem !important;
  line-height: 1.35 !important;
}

/* Sigilo ativo e ações sem cores decorativas: molduras no padrão clean. */
.combat-sigilo-inline,
.combat-sigilo-inline.is-active,
.sigilo-action-card.is-active,
.combat-sigilo-actions .btn.ghost[data-cancel-sigilo] {
  border-color: var(--line) !important;
  background: var(--surface) !important;
  background-image: none !important;
  box-shadow: none !important;
  color: var(--text) !important;
}

.combat-sigilo-headline span {
  border-color: var(--line) !important;
  background: color-mix(in srgb, var(--surface-strong) 78%, transparent) !important;
  color: var(--text) !important;
}

.master-combat-member-row.is-sigilo-alert,
.master-combat-member-row.is-sigilo-alert::before,
.master-combat-member-row.is-sigilo-alert .combat-actor-chip {
  border-color: var(--line) !important;
  background: var(--surface) !important;
  background-image: none !important;
  box-shadow: none !important;
  animation: none !important;
  color: var(--text) !important;
}

.master-combat-member-row.is-sigilo-alert::before {
  display: none !important;
}

/* Botão Ordem de iniciativa na largura horizontal do card. */
.player-combat-footer {
  display: flex !important;
  width: 100% !important;
  margin-top: 12px !important;
  padding-top: 4px !important;
}

.player-initiative-order-button {
  width: 100% !important;
  min-height: 44px !important;
  justify-content: center !important;
}

/* Janela de Ordem de iniciativa no padrão clean atual. */
.player-initiative-dialog-backdrop,
.forum-dialog-backdrop.player-initiative-dialog-backdrop {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10010 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 18px !important;
  background: color-mix(in srgb, #000 62%, transparent) !important;
}

.player-initiative-dialog-card,
.forum-dialog-card.player-initiative-dialog-card {
  width: min(94vw, 460px) !important;
  max-height: min(84vh, 680px) !important;
  overflow: auto !important;
  padding: 18px !important;
  border: 1px solid var(--line) !important;
  border-radius: 22px !important;
  background: var(--surface) !important;
  color: var(--text) !important;
  box-shadow: none !important;
}

.player-initiative-dialog-card .forum-dialog-rune {
  display: none !important;
}

.player-initiative-dialog-card h2 {
  margin: 0 0 14px !important;
  font-family: var(--font-ui) !important;
  font-size: 1.1rem !important;
  line-height: 1.2 !important;
  color: var(--text) !important;
}

.player-initiative-order-list {
  display: grid !important;
  gap: 8px !important;
}

.player-initiative-order-row,
.player-initiative-order-row.is-current,
.player-initiative-order-row.is-dead {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  gap: 10px !important;
  align-items: center !important;
  padding: 10px !important;
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  background: color-mix(in srgb, var(--surface-strong) 74%, transparent) !important;
  box-shadow: none !important;
}

.player-initiative-order-row.is-current {
  border-color: var(--line) !important;
}

.player-initiative-order-index,
.player-initiative-order-roll,
.player-initiative-order-status {
  border: 1px solid var(--line) !important;
  background: var(--surface) !important;
  color: var(--muted) !important;
  box-shadow: none !important;
}

.player-initiative-order-status {
  grid-column: 1 / -1 !important;
  justify-self: start !important;
  padding: 4px 9px !important;
  border-radius: 999px !important;
  font-size: .72rem !important;
}

.player-initiative-order-info strong {
  font-family: var(--font-ui) !important;
  color: var(--text) !important;
}

.player-initiative-order-info small,
.player-initiative-order-roll small {
  color: var(--muted) !important;
}

.player-initiative-dialog-card .forum-dialog-actions {
  margin-top: 16px !important;
  padding-top: 12px !important;
  border-top: 1px solid var(--line) !important;
}

.player-initiative-dialog-card .forum-dialog-actions .btn {
  width: 100% !important;
}

/* Janela de resumo do Sigilo centralizada, limpa e com Fechar no rodapé. */
.modal.clean-centered-modal,
#sigiloModal.modal {
  align-items: center !important;
  justify-content: center !important;
  padding: 18px !important;
}

#sigiloModal .sigilo-clean-modal-card,
#sigiloModal .modal-card {
  width: min(94vw, 460px) !important;
  max-height: min(84vh, 680px) !important;
  overflow: auto !important;
  border-radius: 22px !important;
  border: 1px solid var(--line) !important;
  background: var(--surface) !important;
  color: var(--text) !important;
  box-shadow: none !important;
}

#sigiloModal .section-head {
  align-items: start !important;
}

#sigiloModal .sigilo-rule-hero,
#sigiloModal .sigilo-rule-list li {
  border: 1px solid var(--line) !important;
  background: color-mix(in srgb, var(--surface-strong) 74%, transparent) !important;
  background-image: none !important;
  box-shadow: none !important;
}

#sigiloModal .sigilo-rule-hero h3,
#sigiloModal .sigilo-rule-list strong {
  font-family: var(--font-ui) !important;
  color: var(--text) !important;
}

#sigiloModal .sigilo-clean-modal-footer,
#sigiloModal .modal-footer {
  display: flex !important;
  justify-content: stretch !important;
  margin-top: 16px !important;
  padding-top: 12px !important;
  border-top: 1px solid var(--line) !important;
}

#sigiloModal .sigilo-clean-modal-footer .btn,
#sigiloModal .modal-footer .btn,
#closeSigiloModal {
  width: 100% !important;
  justify-content: center !important;
}

@media (max-width: 380px) {
  .combat-member-card .combat-pulse-slot,
  .combat-member-card .combat-action-state {
    width: 136px !important;
    min-width: 136px !important;
    max-width: 136px !important;
    font-size: .7rem !important;
  }
}

/* v150 — Classes globais */
.admin-class-row {
  align-items: stretch;
  gap: 14px;
}
.admin-class-main {
  min-width: 180px;
}
.admin-class-fields {
  flex: 1 1 520px;
}
.form-hint-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px;
  padding: 10px 12px;
  background: rgba(255,255,255,.045);
  color: var(--text, #f4efe7);
}
.form-hint-card span {
  color: var(--muted, #b9ad9d);
  font-size: .9rem;
}
@media (max-width: 760px) {
  .admin-class-row { flex-direction: column; }
  .admin-class-main { min-width: 0; }
}

/* v158 — Botão de ataque mais limpo na ficha do jogador/NPC */
.autonomous-player-actions.attack-only,
.combat-member-autonomous-slot .autonomous-player-actions.attack-only,
.autonomous-player-actions.attack-only.in-card {
  margin-top: 10px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.autonomous-player-actions.attack-only .autonomous-attack-button,
.autonomous-player-actions.attack-only .combat-roll-flames-button {
  width: 100% !important;
  min-height: 48px !important;
  margin: 0 !important;
  border-radius: 18px !important;
  font-size: 1rem !important;
  letter-spacing: .02em;
}

/* v160 — Regras de UI para ações no card de combate
   - Botões no card do jogador/NPC usam sempre o padrão .btn.
   - A ação principal ocupa a largura útil do card.
   - Inputs auxiliares ficam compactos e alinhados aos botões/pílulas existentes.
   - Sem wrappers decorativos extras ao redor dos botões. */
.combat-member-card:not(.dead) > .combat-member-autonomous-slot,
.combat-member-card.self:not(.dead) > .combat-member-autonomous-slot {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  justify-content: stretch !important;
}

.combat-member-autonomous-slot .autonomous-player-actions.attack-only,
.autonomous-player-actions.attack-only,
.autonomous-player-actions.attack-only.in-card {
  box-sizing: border-box !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

.combat-member-autonomous-slot .autonomous-player-actions.attack-only .autonomous-attack-button,
.autonomous-player-actions.attack-only .autonomous-attack-button {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 16px !important;
  border-radius: 14px !important;
  font-size: .94rem !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  line-height: 1 !important;
}

.combat-member-card .combat-pulse-form,
.combat-member-card.self .combat-pulse-form {
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: 46px minmax(0, 148px) !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: 100% !important;
  max-width: 210px !important;
  margin: 0 auto !important;
}

.combat-member-card .combat-pulse-form input,
.combat-member-card.self .combat-pulse-form input {
  box-sizing: border-box !important;
  width: 46px !important;
  min-width: 46px !important;
  max-width: 46px !important;
  height: 36px !important;
  min-height: 36px !important;
  flex: none !important;
  padding: 0 !important;
  border-radius: 12px !important;
  text-align: center !important;
  font-size: .88rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
}

.combat-member-card .combat-pulse-form .btn,
.combat-member-card.self .combat-pulse-form .btn {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 148px !important;
  min-width: 148px !important;
  max-width: 148px !important;
  min-height: 36px !important;
  height: 36px !important;
  padding: 0 10px !important;
  border-radius: 999px !important;
  font-size: .76rem !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

@media (max-width: 380px) {
  .combat-member-card .combat-pulse-form,
  .combat-member-card.self .combat-pulse-form {
    grid-template-columns: 42px minmax(0, 136px) !important;
    max-width: 190px !important;
    gap: 7px !important;
  }

  .combat-member-card .combat-pulse-form input,
  .combat-member-card.self .combat-pulse-form input {
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    height: 34px !important;
    min-height: 34px !important;
  }

  .combat-member-card .combat-pulse-form .btn,
  .combat-member-card.self .combat-pulse-form .btn {
    width: 136px !important;
    min-width: 136px !important;
    max-width: 136px !important;
    height: 34px !important;
    min-height: 34px !important;
    font-size: .7rem !important;
  }
}

/* v161 — Regra Jones aplicada ao card de combate
   Fonte de design: docs/documentos/regra-jones-design-visual.txt
   - Componentes do mesmo bloco devem compartilhar eixo, largura e altura coerentes.
   - Ação principal ocupa toda a largura útil do card.
   - Controle com quantidade usa input discreto + botão dominante, sem elementos soltos. */
.combat-member-card {
  --jones-combat-pill-width: min(100%, 188px);
  --jones-combat-control-height: 34px;
  --jones-combat-control-gap: 6px;
}

.combat-member-card .combat-pulse-slot,
.combat-member-card .combat-action-state,
.combat-member-card.self .combat-pulse-slot,
.combat-member-card.self .combat-action-state {
  width: var(--jones-combat-pill-width) !important;
  min-width: 0 !important;
  max-width: 188px !important;
  min-height: 31px !important;
}

.combat-member-card .combat-pulse-form,
.combat-member-card.self .combat-pulse-form {
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: 34px minmax(0, 1fr) !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--jones-combat-control-gap) !important;
  width: var(--jones-combat-pill-width) !important;
  min-width: 0 !important;
  max-width: 188px !important;
  margin: 0 auto !important;
}

.combat-member-card .combat-pulse-form input,
.combat-member-card.self .combat-pulse-form input {
  box-sizing: border-box !important;
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  height: var(--jones-combat-control-height) !important;
  min-height: var(--jones-combat-control-height) !important;
  padding: 0 !important;
  border-radius: 12px !important;
  text-align: center !important;
  font-size: .78rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
}

.combat-member-card .combat-pulse-form input::-webkit-outer-spin-button,
.combat-member-card .combat-pulse-form input::-webkit-inner-spin-button {
  margin: 0 !important;
}

.combat-member-card .combat-pulse-form .btn,
.combat-member-card.self .combat-pulse-form .btn {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: var(--jones-combat-control-height) !important;
  min-height: var(--jones-combat-control-height) !important;
  padding: 0 10px !important;
  border-radius: 999px !important;
  font-size: .74rem !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.combat-member-card:not(.dead) > .combat-member-autonomous-slot,
.combat-member-card.self:not(.dead) > .combat-member-autonomous-slot,
.combat-member-autonomous-slot .autonomous-player-actions.attack-only,
.autonomous-player-actions.attack-only,
.autonomous-player-actions.attack-only.in-card {
  width: 100% !important;
  max-width: none !important;
}

.combat-member-autonomous-slot .autonomous-player-actions.attack-only .autonomous-attack-button,
.autonomous-player-actions.attack-only .autonomous-attack-button {
  width: 100% !important;
  max-width: none !important;
  min-height: 44px !important;
  border-radius: 14px !important;
}

@media (max-width: 380px) {
  .combat-member-card {
    --jones-combat-pill-width: min(100%, 176px);
    --jones-combat-control-height: 34px;
    --jones-combat-control-gap: 6px;
  }

  .combat-member-card .combat-pulse-slot,
  .combat-member-card .combat-action-state,
  .combat-member-card.self .combat-pulse-slot,
  .combat-member-card.self .combat-action-state,
  .combat-member-card .combat-pulse-form,
  .combat-member-card.self .combat-pulse-form {
    max-width: 176px !important;
  }

  .combat-member-card .combat-pulse-form,
  .combat-member-card.self .combat-pulse-form {
    grid-template-columns: 32px minmax(0, 1fr) !important;
  }

  .combat-member-card .combat-pulse-form input,
  .combat-member-card.self .combat-pulse-form input {
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    font-size: .74rem !important;
  }

  .combat-member-card .combat-pulse-form .btn,
  .combat-member-card.self .combat-pulse-form .btn {
    font-size: .7rem !important;
    padding: 0 8px !important;
  }
}

/* v162 — Regra Jones: ações importantes usam contraste primário.
   Botões que executam ação relevante no card (Atacar, ativar sigilos, Conceder Pulso)
   devem ser brancos no tema escuro e pretos no tema claro, sempre no padrão .btn.primary. */
.combat-member-card .combat-pulse-form .btn.primary.combat-pulse-submit,
.combat-member-card.self .combat-pulse-form .btn.primary.combat-pulse-submit {
  background: var(--text) !important;
  border-color: var(--text) !important;
  color: var(--bg) !important;
  font-weight: 850 !important;
}

.combat-member-card .combat-action-state.is-current,
.combat-member-card.self .combat-action-state.is-current {
  color: var(--text) !important;
  border-color: var(--text) !important;
  background: color-mix(in srgb, var(--text) 7%, transparent) !important;
  font-weight: 850 !important;
}

.combat-member-card .combat-pulse-form input:focus,
.combat-member-card.self .combat-pulse-form input:focus {
  border-color: var(--text) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--text) 13%, transparent) !important;
}

/* v163 - Regra Jones para Administração mobile */
.admin-shortcuts-primary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
  align-items: stretch;
}

.admin-shortcuts-primary .btn {
  width: 100%;
  min-height: 44px;
}

.admin-mobile-rule-card {
  min-height: 100%;
}

.admin-list-first {
  order: -1;
}

.admin-collapsible-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  align-items: start;
}

details.admin-collapsible {
  display: block;
  overflow: hidden;
}

details.admin-collapsible > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 48px;
}

details.admin-collapsible > summary::-webkit-details-marker {
  display: none;
}

details.admin-collapsible > summary strong {
  display: block;
  font-family: "Cinzel", Georgia, serif;
  color: var(--text);
  line-height: 1.2;
}

details.admin-collapsible > summary small {
  display: block;
  color: var(--muted);
  font-size: .88rem;
  margin-top: 2px;
}

.admin-summary-action,
.admin-more-menu > summary {
  border: 1px solid var(--line);
  border-radius: 999px;
  min-height: 36px;
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--text);
  background: color-mix(in srgb, var(--surface-strong) 90%, transparent);
  font-weight: 900;
  white-space: nowrap;
}

.admin-collapsible-body {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}

.admin-actions-mobile-safe {
  align-items: center;
}

.admin-more-menu {
  position: relative;
}

.admin-more-menu > summary {
  cursor: pointer;
  list-style: none;
  min-height: 36px;
}

.admin-more-menu > summary::-webkit-details-marker {
  display: none;
}

.admin-more-menu > div {
  display: grid;
  gap: 8px;
  min-width: 150px;
  margin-top: 8px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--surface-strong);
  box-shadow: 0 18px 40px rgba(0, 0, 0, .22);
  position: absolute;
  right: 0;
  z-index: 20;
}

.admin-more-menu .btn {
  width: 100%;
}

.admin-user-row .admin-user-actions .btn.primary {
  min-width: 94px;
}

@media (max-width: 900px) {
  .admin-event-context {
    display: grid;
    gap: 12px;
  }

  .admin-event-context .btn,
  .admin-content .section-head > .btn,
  .admin-content .section-head > button {
    width: 100%;
  }

  .admin-menu {
    gap: 8px;
    padding: 10px;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }

  .admin-tab {
    min-height: 40px;
    border-radius: 999px;
    scroll-snap-align: start;
  }

  .admin-collapsible-grid {
    grid-template-columns: 1fr;
  }

  details.admin-collapsible > summary {
    align-items: flex-start;
  }

  .admin-shortcuts-primary {
    grid-template-columns: 1fr;
  }

  .admin-user-actions.admin-actions-mobile-safe,
  .admin-combat-card-actions.admin-actions-mobile-safe,
  .master-entity-actions,
  .admin-combat-card-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .admin-user-actions.admin-actions-mobile-safe > .btn,
  .admin-combat-card-actions.admin-actions-mobile-safe > .btn,
  .master-entity-actions > .btn,
  .admin-combat-card-actions > .btn,
  .admin-more-menu,
  .admin-more-menu > summary {
    width: 100%;
  }

  .admin-more-menu > div {
    position: static;
    width: 100%;
  }

  .admin-user-row {
    gap: 14px;
    padding: 14px;
  }
}

@media (max-width: 900px) {
  .admin-menu .admin-event-switch {
    display: none;
  }
}

/* v164 — Regra Jones: Administração em coluna única.
   Fonte: docs/documentos/regra-jones-design-visual.txt
   - Formulários administrativos não usam campos lado a lado no smartphone.
   - Todo campo respeita a largura útil do card, sem rolagem lateral.
   - Campos administrativos são compactos, legíveis e em uma coluna.
   - Botões de formulário seguem a Regra Jones: ação principal forte e largura útil. */
.admin-content,
.admin-content *,
.admin-view,
.admin-view * {
  box-sizing: border-box;
}

.admin-content,
.admin-view,
.admin-view .panel,
.admin-view .card-mini,
.admin-view details.admin-collapsible,
.admin-view form,
.admin-view label,
.admin-view input,
.admin-view select,
.admin-view textarea {
  max-width: 100%;
  min-width: 0;
}

.admin-collapsible-grid {
  grid-template-columns: 1fr !important;
  gap: 14px !important;
}

.admin-view form.stack,
.admin-view .admin-collapsible-body,
.admin-view .admin-master-account-form,
.admin-view .admin-master-manager-form,
.admin-view .master-builder-form,
.admin-view .admin-auto-editor-block form {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
}

.admin-view form .form-grid,
.admin-view .form-grid,
.admin-view .compact-form-grid,
.admin-view .admin-class-fields,
.admin-view .master-monster-grid,
.admin-view .encounter-add-grid,
.admin-view .autonomous-edit-row .form-grid,
.admin-view .autonomous-edit-row .compact-form-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: 100% !important;
}

.admin-view .compact-form-grid .wide,
.admin-view .form-grid .wide,
.admin-view .admin-class-fields .wide {
  grid-column: auto !important;
}

.admin-view label {
  display: grid;
  gap: 5px;
  width: 100%;
  margin: 0;
}

.admin-view label span {
  margin: 0 0 0 2px !important;
  font-size: .76rem !important;
  line-height: 1.2 !important;
}

.admin-view input,
.admin-view select,
.admin-view textarea {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 40px !important;
  height: auto;
  border-radius: 12px !important;
  padding: 0 12px !important;
  font-size: .88rem !important;
}

.admin-view textarea {
  min-height: 82px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

.admin-view input[type="number"] {
  min-height: 38px !important;
  font-variant-numeric: tabular-nums;
}

.admin-view .modal-actions,
.admin-view .wizard-nav,
.admin-view .admin-user-actions,
.admin-view .master-entity-actions,
.admin-view .admin-combat-card-actions,
.admin-view .forum-dialog-actions {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 8px !important;
  width: 100% !important;
  max-width: 100% !important;
  align-items: stretch !important;
}

.admin-view .modal-actions .btn,
.admin-view .wizard-nav .btn,
.admin-view .admin-user-actions .btn,
.admin-view .master-entity-actions .btn,
.admin-view .admin-combat-card-actions .btn,
.admin-view details.admin-collapsible .btn {
  width: 100% !important;
  min-height: 42px !important;
  justify-content: center !important;
}

.admin-view details.admin-collapsible > summary {
  gap: 10px !important;
  align-items: flex-start !important;
}

.admin-view details.admin-collapsible > summary > span:first-child {
  min-width: 0;
}

.admin-view details.admin-collapsible > summary small,
.admin-view .muted,
.admin-view small {
  overflow-wrap: anywhere;
}

.admin-view .admin-summary-action {
  flex: 0 0 auto;
  min-width: 72px;
  min-height: 34px;
  padding: 0 12px;
}

.admin-view .item-row,
.admin-view .admin-class-row,
.admin-view .admin-npc-class-row,
.admin-view .admin-npc-row,
.admin-view .admin-global-monster-row,
.admin-view .autonomous-edit-row {
  overflow: hidden;
  width: 100%;
  max-width: 100%;
}

.admin-view .admin-class-row,
.admin-view .admin-npc-class-row,
.admin-view .admin-npc-row,
.admin-view .admin-global-monster-row {
  align-items: stretch !important;
}

.admin-view .person-line,
.admin-view .admin-class-main,
.admin-view .autonomous-edit-title,
.admin-view .section-head,
.admin-view .compact-head {
  min-width: 0;
}

.admin-view .autonomous-edit-title {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 4px !important;
}

@media (max-width: 900px) {
  .admin-view .panel {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .admin-view input,
  .admin-view select,
  .admin-view textarea {
    min-height: 39px !important;
  }
}

/* v165 — Regra Jones: menu administrativo flutuante no smartphone.
   Fonte: docs/documentos/regra-jones-design-visual.txt
   - No mobile, o menu administrativo não fica no topo consumindo altura útil.
   - O acesso principal vira um botão circular fixo no rodapé direito.
   - O painel do menu abre como folha flutuante, sem rolagem horizontal. */
.admin-floating-menu-button,
.admin-mobile-menu-backdrop {
  display: none;
}

@media (max-width: 900px) {
  body.admin-mobile-menu-open {
    overflow: hidden;
  }

  .admin-shell {
    padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px));
  }

  .admin-mobile-menu-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1090;
    display: none;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    background: rgba(0, 0, 0, .46) !important;
    cursor: default;
  }

  .admin-shell.admin-mobile-menu-open .admin-mobile-menu-backdrop {
    display: block;
  }

  .admin-floating-menu-button {
    position: fixed;
    right: 18px;
    bottom: calc(18px + env(safe-area-inset-bottom, 0px));
    z-index: 1120;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    border-radius: 999px !important;
    border: 1px solid var(--text) !important;
    background: var(--text) !important;
    color: var(--bg) !important;
    font-weight: 950;
    letter-spacing: .02em;
    text-transform: none;
    box-shadow: 0 18px 42px rgba(0, 0, 0, .38) !important;
  }

  .admin-floating-menu-button:hover,
  .admin-floating-menu-button:focus-visible {
    background: var(--text) !important;
    color: var(--bg) !important;
    border-color: var(--text) !important;
  }

  .admin-menu {
    position: fixed !important;
    left: 14px;
    right: 14px;
    top: auto !important;
    bottom: calc(104px + env(safe-area-inset-bottom, 0px));
    z-index: 1110;
    display: grid !important;
    gap: 8px;
    max-height: min(68vh, 520px);
    overflow-y: auto;
    overflow-x: hidden;
    padding: 14px;
    border-radius: 28px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .46);
    transform: translateY(18px) scale(.98);
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: opacity .14s ease, transform .14s ease, visibility .14s ease;
  }

  .admin-shell.admin-mobile-menu-open .admin-menu {
    transform: translateY(0) scale(1);
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
  }

  .admin-menu-title {
    display: block;
    padding: 6px 8px 12px;
  }

  .admin-tab {
    width: 100% !important;
    min-height: 44px;
    text-align: left;
    white-space: normal;
  }

  .admin-menu .admin-event-switch {
    display: none !important;
  }
}


/* v166 — Regra Jones: cabeçalho administrativo mobile harmonizado.
   Fonte: docs/documentos/regra-jones-design-visual.txt
   - No smartphone, o cabeçalho precisa separar identidade, status e ações.
   - Informações de conta e sincronização não competem visualmente com botões.
   - Botões Atualizar/Sair mantêm área de toque confortável e simetria. */
@media (max-width: 760px) {
  .topbar {
    align-items: stretch !important;
    gap: 12px !important;
    padding: 16px 14px 8px !important;
  }

  .topbar > div:first-child {
    width: 100%;
    min-width: 0;
  }

  .topbar .eyebrow {
    margin-bottom: 5px;
    font-size: .72rem !important;
    letter-spacing: .12em;
  }

  .topbar h1 {
    max-width: 100%;
    font-size: clamp(1.85rem, 8vw, 2.35rem) !important;
    line-height: 1.05;
    letter-spacing: -.045em;
  }

  .topbar .top-subtitle {
    margin-top: 8px;
    font-size: .95rem;
    line-height: 1.35;
  }

  .top-actions {
    width: 100%;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
    align-items: stretch;
  }

  #userBadge {
    order: 1;
    grid-column: 1 / -1;
    justify-self: start;
    max-width: 100%;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--muted) !important;
    font-size: .9rem !important;
    font-weight: 700 !important;
    line-height: 1.25;
    white-space: normal;
  }

  #syncStatus {
    order: 2;
    grid-column: 1 / -1;
    justify-self: start;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--muted) !important;
    font-size: .78rem !important;
    font-weight: 700;
    line-height: 1.2;
  }

  #manualRefreshButton,
  #logoutButton {
    width: 100%;
    min-height: 42px;
    justify-content: center;
    padding-left: 12px;
    padding-right: 12px;
    white-space: nowrap;
  }

  #manualRefreshButton { order: 3; }
  #logoutButton { order: 4; }
}

/* v167 — Regra Jones: Administração sem card de evento redundante e Usuários mais limpo.
   Fonte: docs/documentos/regra-jones-design-visual.txt
   - O contexto do evento fica no cabeçalho e o trocar evento no menu.
   - A tela Usuários começa com ação Criar usuário e depois a lista compacta.
   - Cards de usuários não repetem dados da ficha abaixo do avatar. */
.admin-event-context {
  display: none !important;
}

.admin-users-panel {
  display: grid;
  gap: 14px;
}

.admin-users-head {
  align-items: flex-start;
}

.admin-users-head .btn {
  flex: 0 0 auto;
  min-width: 148px;
}

.admin-create-user-panel {
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 14px;
  background: color-mix(in srgb, var(--surface-strong) 94%, transparent);
}

.admin-create-user-panel.hidden {
  display: none !important;
}

.admin-user-row-clean {
  grid-template-columns: minmax(0, 1fr) auto !important;
}

.admin-user-row-clean .admin-user-main {
  min-width: 0;
}

.admin-user-row-clean .admin-user-name strong,
.admin-user-row-clean .admin-user-name span {
  overflow: hidden;
  text-overflow: ellipsis;
}

.admin-user-row-clean .admin-user-meta {
  display: none !important;
}

.admin-empty-state {
  margin: 0;
}

@media (max-width: 900px) {
  .admin-users-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .admin-users-head .btn {
    width: 100%;
    min-width: 0;
  }

  .admin-create-user-panel {
    padding: 12px;
  }

  .admin-user-row-clean {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .admin-user-row-clean .admin-user-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px;
    justify-content: stretch;
  }

  .admin-user-row-clean .admin-user-actions .btn,
  .admin-user-row-clean .admin-more-menu > summary {
    width: 100% !important;
    min-height: 42px !important;
    justify-content: center !important;
    text-align: center;
  }

  .admin-menu .admin-event-switch {
    display: inline-flex !important;
  }
}

/* v168 — perfis administrativos sem personagem vinculado */
.admin-meta-notice {
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 14px;
  background: color-mix(in srgb, var(--surface-strong) 94%, transparent);
  display: grid;
  gap: 6px;
}

.admin-meta-notice strong {
  color: var(--text);
  font-size: 1rem;
}

.admin-meta-notice span {
  color: var(--muted);
  line-height: 1.45;
}

/* v169 — Regra Jones: Usuários em janela separada, busca e lista limpa.
   - Criar usuário abre modal próprio, sem formulário combinado com a lista.
   - Botões de fechar/cancelar ficam no rodapé da janela.
   - Lista administrativa é ordenada e pesquisável, com dados mínimos ao lado do avatar. */
.admin-create-user-modal-card {
  width: min(520px, 100%);
}

#adminCreateUserModal .admin-create-user-panel {
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

.admin-search-field {
  display: grid;
  gap: 8px;
  width: 100%;
}

.admin-search-field input {
  width: 100%;
  min-height: 44px;
}

.modal-footer-actions {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  display: grid !important;
  grid-template-columns: 1fr;
  gap: 10px;
}

.modal-footer-actions .btn {
  width: 100%;
  min-height: 44px;
}

#adminUserModal .modal-card > .section-head,
#adminCreateUserModal .modal-card > .section-head {
  margin-bottom: 14px;
}

.admin-user-row-clean .admin-user-name {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.admin-user-row-clean .admin-user-name strong {
  line-height: 1.2;
}

.admin-user-row-clean .admin-user-name span {
  line-height: 1.25;
  color: var(--muted);
}

@media (max-width: 900px) {
  .admin-create-user-modal-card,
  .admin-user-modal-card {
    width: min(100%, 520px) !important;
    max-height: calc(100dvh - 28px);
    overflow: auto;
  }

  #adminUserModal .grid.two,
  #adminCreateUserModal .grid.two {
    grid-template-columns: 1fr !important;
  }

  .admin-user-row-clean .admin-user-main {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    align-items: center;
  }
}

/* v170 — Regra Jones: criação de Metaforma, avatar circular e nome curto */
.wizard-avatar-crop-preview {
  width: min(220px, 70vw);
  height: min(220px, 70vw);
  margin-inline: auto;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--accent) 48%, var(--line));
  background: color-mix(in srgb, var(--surface-strong) 94%, transparent);
  box-shadow: 0 18px 45px rgba(0,0,0,.24);
}

.wizard-avatar-crop-preview .avatar,
.wizard-avatar-crop-preview img.avatar {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 999px !important;
  border: 0 !important;
  box-shadow: none !important;
}

.wizard-avatar-hint {
  margin-top: -10px;
  text-align: center;
  font-size: .92rem !important;
}

.wizard-name-feedback {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  margin-top: 8px;
  font-size: .9rem;
}

.wizard-name-feedback small {
  min-width: 0;
}

.ok-text {
  color: var(--success, #8bdc96) !important;
}

[data-field="metaformaNome"] {
  cursor: pointer;
}

[data-field="metaformaNome"]:hover {
  color: color-mix(in srgb, var(--accent) 75%, var(--text));
}

.jones-modal-footer {
  display: grid;
  gap: 10px;
  margin-top: 20px;
}

.jones-modal-footer .btn {
  width: 100%;
}

.archetype-choice small {
  line-height: 1.35;
}

.health-avatar-wrap,
.health-avatar-wrap > .avatar,
.health-avatar-wrap > img.avatar,
.player-avatar-col,
.wizard-avatar-preview {
  min-width: 0;
}

.health-avatar-wrap > .avatar,
.health-avatar-wrap > img.avatar {
  object-fit: cover !important;
  overflow: hidden !important;
}

@media (max-width: 760px) {
  .wizard-name-feedback {
    display: grid;
    justify-content: stretch;
    gap: 4px;
  }

  .archetype-choice {
    grid-template-columns: 1fr;
  }

  .archetype-choice input {
    justify-self: start;
  }
}

/* v172 — Regra Jones: cards de arquétipo compactos e comparáveis */
.clean-step[data-clean-step="3"] h1 {
  font-size: clamp(1.55rem, 8vw, 2.55rem);
  line-height: 1.06;
}

.clean-step[data-clean-step="3"] > .muted {
  font-size: 1rem;
  line-height: 1.45;
}

.archetype-choice-grid {
  gap: 10px;
}

.archetype-choice {
  display: grid !important;
  grid-template-columns: 22px minmax(0, 1fr) !important;
  align-items: start;
  gap: 12px;
  padding: 14px 14px;
  max-width: 100%;
}

.archetype-choice input {
  width: 18px;
  height: 18px;
  margin-top: 4px;
}

.archetype-choice-content,
.archetype-choice span {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.archetype-choice strong {
  font-size: 1.05rem;
  line-height: 1.1;
}

.archetype-choice em {
  font-size: .95rem;
  line-height: 1.28;
}

.archetype-choice small,
.archetype-choice .archetype-stats,
.archetype-choice .archetype-sigilo-line,
.archetype-choice .archetype-rule-line {
  font-size: .92rem;
  line-height: 1.26;
}

.archetype-choice .archetype-sigilo-line {
  color: var(--text);
  font-weight: 750;
}

.archetype-choice .archetype-rule-line {
  color: var(--muted);
}

@media (max-width: 760px) {
  .archetype-choice-grid {
    gap: 10px;
  }

  .archetype-choice {
    grid-template-columns: 20px minmax(0, 1fr) !important;
    padding: 14px 13px;
    border-radius: 17px;
  }

  .archetype-choice input {
    width: 17px;
    height: 17px;
    margin-top: 3px;
  }

  .archetype-choice strong {
    font-size: 1.02rem;
  }

  .archetype-choice em,
  .archetype-choice small,
  .archetype-choice .archetype-stats,
  .archetype-choice .archetype-sigilo-line,
  .archetype-choice .archetype-rule-line {
    font-size: .9rem;
  }
}

/* v173 — Regra Jones: administração de grupo mobile limpa.
   - A janela de grupo prioriza dados e ações antes do QR.
   - QR do grupo fica recolhível para não ocupar a área nobre do smartphone.
   - Botão de fechar fica no rodapé da janela.
   - Seções em coluna única, sem grid lateral e sem ações soltas. */
.group-admin-head {
  margin-bottom: 10px;
}

.group-admin-stack {
  display: grid;
  gap: 14px;
}

.group-admin-section {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: color-mix(in srgb, var(--surface) 92%, transparent);
  min-width: 0;
}

.group-admin-section-title {
  display: grid;
  gap: 2px;
}

.group-admin-section-title h3 {
  margin: 0;
  font-size: 1.04rem;
  letter-spacing: -.02em;
}

.group-admin-form,
.group-admin-invite-box {
  margin-top: 0 !important;
}

.group-admin-form input,
.group-admin-form button,
.group-admin-section .btn {
  width: 100%;
  max-width: 100%;
}

.group-qr-panel {
  display: grid;
  justify-items: center;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: color-mix(in srgb, var(--surface-strong) 86%, transparent);
}

.group-qr-panel.hidden {
  display: none !important;
}

.group-qr-panel .group-qr,
.group-qr-panel .qr-canvas {
  width: 132px;
  max-width: 100%;
  justify-self: center;
}

.group-qr-panel canvas,
.group-qr-panel img {
  max-width: 132px;
  height: auto !important;
  border-radius: 14px;
}

.group-admin-members-list {
  display: grid;
  gap: 8px;
}

.group-admin-member-row {
  align-items: center;
  gap: 10px;
}

.group-admin-member-row .person-line {
  min-width: 0;
}

.group-admin-member-row .person-line strong,
.group-admin-member-row .person-line small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: block;
}

.group-admin-member-row .compact-button {
  width: 100%;
}

.group-admin-danger-section {
  border-color: color-mix(in srgb, var(--danger) 40%, var(--line));
}

.group-admin-footer-actions {
  margin-top: 16px;
}

@media (max-width: 760px) {
  .group-admin-modal-card {
    padding: 18px !important;
  }

  .group-admin-section {
    padding: 13px;
    border-radius: 16px;
  }

  .group-admin-member-row {
    grid-template-columns: 1fr;
  }

  .group-admin-member-row .compact-button {
    min-height: 42px;
  }
}


/* v174 — Regra Jones: QR centralizado e integrantes compactos.
   - O QR aberto precisa ficar exatamente centralizado dentro do painel e dentro da moldura branca.
   - O card do integrante na Administração do grupo deve ser compacto, com avatar, nome e função em uma linha visual. */
.group-qr-panel {
  justify-items: center !important;
  align-items: center !important;
  text-align: center;
}

.group-qr-panel .group-qr,
.group-qr-panel #groupQrBox,
.group-qr-panel .qr-canvas {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  justify-self: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
}

.group-qr-panel .group-qr {
  width: 152px !important;
  min-width: 152px;
  min-height: 152px;
  padding: 12px !important;
  margin-top: 0 !important;
}

.group-qr-panel .qr-canvas {
  width: 128px !important;
  height: 128px !important;
  padding: 0 !important;
  background: #fff !important;
}

.group-qr-panel .qr-canvas canvas,
.group-qr-panel .qr-canvas img,
.group-qr-panel canvas,
.group-qr-panel img {
  display: block !important;
  width: 128px !important;
  height: 128px !important;
  max-width: 128px !important;
  max-height: 128px !important;
  margin: 0 auto !important;
  object-fit: contain;
}

.group-admin-members-list {
  gap: 7px !important;
}

.group-admin-member-row.item-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 10px 11px !important;
  border-radius: 15px !important;
  background: color-mix(in srgb, var(--surface-strong) 58%, transparent) !important;
}

.group-admin-member-row .person-line {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  width: 100%;
}

.group-admin-member-row .health-avatar-wrap.health-avatar-sm {
  --hp-size: 30px;
  width: 34px;
  height: 34px;
  padding: 2px;
}

.group-admin-member-row .person-line strong {
  font-size: .98rem;
  line-height: 1.12;
}

.group-admin-member-row .person-line small {
  font-size: .8rem;
  line-height: 1.15;
}

.group-admin-member-row .compact-button {
  width: 100%;
  min-height: 38px;
  margin-top: 2px;
}

@media (min-width: 560px) {
  .group-admin-member-row.item-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .group-admin-member-row .compact-button {
    width: auto;
    min-width: 120px;
    margin-top: 0;
  }
}

/* v175 — QR único e integrantes com ficha essencial.
   - Corrige o QR duplicado causado pela imagem de fallback do qrcodejs ficando visível junto do canvas.
   - Mantém o QR do grupo centralizado e exibe classe, ATQ, DEF e VIT no card de integrantes. */
.group-qr-panel .qr-canvas > canvas {
  display: block !important;
  width: 128px !important;
  height: 128px !important;
  max-width: 128px !important;
  max-height: 128px !important;
  margin: 0 auto !important;
}

.group-qr-panel .qr-canvas > canvas + img,
.group-qr-panel .qr-canvas > img[style*="display: none"],
.group-qr-panel .qr-canvas > img[style*="display:none"] {
  display: none !important;
}

.group-admin-member-row.item-row {
  gap: 9px !important;
  padding: 11px 12px !important;
}

.group-admin-member-row .person-line {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  width: 100%;
  min-width: 0;
}

.group-admin-member-main {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.group-admin-member-title {
  display: flex;
  align-items: baseline;
  gap: 7px;
  min-width: 0;
}

.group-admin-member-title strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.group-admin-member-title small {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.1;
}

.group-admin-member-detail {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
  min-width: 0;
}

.group-admin-member-detail span,
.group-admin-member-detail b {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 2px 7px;
  font-size: .73rem;
  line-height: 1.15;
  white-space: nowrap;
  color: var(--muted);
  background: transparent;
}

.group-admin-member-detail b {
  font-weight: 800;
  color: var(--text);
}

.group-admin-member-class {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 420px) {
  .group-admin-member-title {
    display: grid;
    gap: 2px;
  }

  .group-admin-member-title small {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .group-admin-member-detail span,
  .group-admin-member-detail b {
    font-size: .7rem;
    padding-inline: 6px;
  }
}

/* v176 — Olho Gospel no padrão Jones.
   - Emoji de olho em apresentação de texto/monocromática acima do botão.
   - Botão principal escrito "Olho Gospel" ocupando a largura útil do card. */
.qr-minimal-panel {
  justify-items: stretch !important;
  align-items: stretch !important;
}

.qr-minimal-panel .qr-headline {
  display: grid !important;
  place-items: center !important;
  text-align: center !important;
  margin: 0 0 2px !important;
}

.gospel-eye-emoji {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: var(--text);
  font-family: "Segoe UI Symbol", "Apple Symbols", "Noto Sans Symbols 2", ui-sans-serif, system-ui, sans-serif;
  font-variant-emoji: text;
  -webkit-text-fill-color: currentColor;
  font-size: 1.65rem;
  line-height: 1;
}

.qr-minimal-panel .qr-actions-row {
  width: 100% !important;
  justify-content: stretch !important;
  align-items: stretch !important;
}

.qr-minimal-panel .eye-button {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 46px !important;
  height: 46px !important;
  border-radius: 14px !important;
  padding: 0 16px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--text) !important;
  color: var(--bg) !important;
  border: 0 !important;
  box-shadow: none !important;
  font-size: .98rem !important;
  font-weight: 900 !important;
  letter-spacing: .01em !important;
}

.qr-minimal-panel #stopQr {
  width: 100%;
}

@media (prefers-color-scheme: dark) {
  .gospel-eye-emoji {
    color: var(--text);
  }
}


/* v177 — Olho Gospel e Combate Autônomo mobile.
   - O símbolo monocromático do olho fica centralizado acima do botão.
   - O botão "Olho Gospel" volta ao mesmo padrão visual dos botões primários da tela do jogador.
   - Cards de Combate Autônomo não usam ações laterais espremidas no mobile. */
.qr-minimal-panel .qr-headline {
  width: 100% !important;
  min-width: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  margin: 0 0 10px !important;
  padding: 0 !important;
}

.qr-minimal-panel .gospel-eye-emoji {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 28px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  margin: 0 auto !important;
  padding: 0 !important;
  color: var(--text) !important;
  -webkit-text-fill-color: currentColor !important;
  font-family: "Segoe UI Symbol", "Apple Symbols", "Noto Sans Symbols 2", "Noto Sans Symbols", ui-sans-serif, system-ui, sans-serif !important;
  font-variant-emoji: text !important;
  font-size: 1.8rem !important;
  line-height: 1 !important;
}

.qr-minimal-panel .qr-actions-row {
  width: 100% !important;
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  margin-top: 0 !important;
  justify-items: stretch !important;
  align-items: stretch !important;
}

.qr-minimal-panel .eye-button,
.qr-minimal-panel #startQr.eye-button,
.qr-minimal-panel #startQr.btn.primary.eye-button {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 42px !important;
  height: auto !important;
  border-radius: 14px !important;
  padding: 0 16px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: .95rem !important;
  font-weight: 850 !important;
  letter-spacing: 0 !important;
  background: var(--text) !important;
  border: 1px solid var(--text) !important;
  color: var(--bg) !important;
  box-shadow: none !important;
}

.qr-minimal-panel #manualQrForm {
  width: 100% !important;
}

@media (max-width: 760px) {
  .admin-view .admin-autonomous-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .admin-view .admin-autonomous-row > *,
  .admin-view .admin-autonomous-main,
  .admin-view .autonomous-qr-actions,
  .admin-view .master-entity-actions {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .admin-view .admin-autonomous-main {
    display: grid !important;
    gap: 4px !important;
  }

  .admin-view .admin-autonomous-main .muted,
  .admin-view .admin-autonomous-main small {
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  .admin-view .autonomous-qr-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-content: stretch !important;
    justify-items: stretch !important;
    align-items: stretch !important;
    gap: 8px !important;
  }

  .admin-view .autonomous-qr-actions .btn {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    justify-content: center !important;
    white-space: normal !important;
  }

  .admin-view .autonomous-qr-actions .qr-help-line {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: auto !important;
    text-align: center !important;
    margin: 0 !important;
    overflow-wrap: anywhere !important;
  }
}

/* v178 — Avatares na Forja Global e portais narrativos do Combate Autônomo */
.monster-avatar-editor-card {
  display: grid;
  justify-items: center;
  gap: 10px;
  width: 100%;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: color-mix(in srgb, var(--surface-strong) 58%, transparent);
}

.monster-avatar-editor-card .master-avatar-actions {
  width: 100%;
  justify-content: center;
}

.admin-global-monster-row .person-line {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
}

.autonomous-popup-list {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

.autonomous-popup-edit-row {
  display: grid;
  gap: 10px;
}

.autonomous-popup-image-box {
  width: 100%;
  min-height: 112px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px dashed color-mix(in srgb, var(--muted) 38%, transparent);
  border-radius: 16px;
  background: color-mix(in srgb, var(--surface) 78%, transparent);
}

.autonomous-popup-thumb {
  display: block;
  width: 100%;
  max-height: 220px;
  object-fit: cover;
  object-position: center;
}

.popup-image-empty {
  margin: 0;
  padding: 18px 10px;
  text-align: center;
}

.autonomous-entry-card {
  width: min(94vw, 460px);
  display: grid;
  gap: 10px;
}

.autonomous-entry-card h2 {
  margin-bottom: 0;
}

.autonomous-entry-image {
  width: 100%;
  max-height: 260px;
  object-fit: cover;
  object-position: center;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: var(--surface-strong);
}

.autonomous-entry-timer,
.autonomous-entry-votes,
.autonomous-entry-wait {
  margin: 0;
  text-align: center;
}

.autonomous-entry-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

@media (max-width: 600px) {
  .monster-avatar-editor-card .master-avatar-actions,
  .autonomous-popup-edit-row .master-avatar-actions,
  .autonomous-entry-actions {
    grid-template-columns: 1fr;
    display: grid;
    width: 100%;
  }

  .monster-avatar-editor-card .master-avatar-actions .btn,
  .autonomous-popup-edit-row .master-avatar-actions .btn,
  .autonomous-entry-actions .btn {
    width: 100%;
  }

  .admin-global-monster-row .person-line {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }
}

/* v180 - editor quadrado para imagens narrativas dos popups do Combate Autônomo */
#avatarCanvas.is-square-crop {
  border-radius: 18px;
}

.autonomous-popup-image-box {
  aspect-ratio: 1 / 1;
  max-width: 260px;
  justify-self: center;
}

.autonomous-popup-thumb {
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: cover;
}

.autonomous-entry-image {
  width: min(100%, 320px);
  aspect-ratio: 1 / 1;
  height: auto;
  max-height: none;
  justify-self: center;
  object-fit: cover;
}

/* v189 — avatar do monstro na popup de ataque recebido */
.forum-dialog-media {
  display: grid;
  place-items: center;
  margin: 0 0 2px;
}

.forum-dialog-monster-avatar {
  width: 92px;
  height: 92px;
  border-radius: 999px;
  overflow: hidden;
  display: grid;
  place-items: center;
  border: 1px solid var(--accent-soft);
  background: rgba(218, 177, 119, .10);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .28);
  color: var(--accent);
  font-weight: 800;
  font-size: 1.8rem;
  line-height: 1;
}

.forum-dialog-monster-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (max-width: 520px) {
  .forum-dialog-monster-avatar {
    width: 84px;
    height: 84px;
    font-size: 1.65rem;
  }
}

/* v190 — NPCs separados na administração e visíveis na busca de convite */
.admin-npc-list-block {
  display: grid;
  gap: 10px;
}

.admin-npc-subhead {
  display: grid;
  gap: 2px;
  padding: 4px 2px 0;
}

.admin-npc-subhead h3,
.admin-npc-subhead p {
  margin: 0;
}

.admin-npc-divider {
  margin: 22px 0;
}

.compact-metaforma-row.is-npc-invite {
  border-style: dashed;
  border-color: color-mix(in srgb, var(--accent) 50%, var(--line));
  background: color-mix(in srgb, var(--accent) 7%, var(--surface));
}

.compact-metaforma-row.is-npc-invite:active,
.compact-metaforma-row.is-npc-invite:focus-visible {
  border-style: solid;
}

.npc-invite-note {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: .76rem;
  font-style: normal;
  font-weight: 800;
  line-height: 1.2;
  white-space: normal;
}

/* v192 - Espólios individuais */
.inventory-spoils-section {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.inventory-subhead {
  margin-bottom: 0.75rem;
}
.spoil-inventory-card strong,
.spoil-history-row strong {
  letter-spacing: 0.01em;
}
.spoil-history-list {
  max-height: min(60vh, 520px);
  overflow: auto;
  padding-right: 0.25rem;
}
.spoil-row.is-granted {
  opacity: 0.82;
}

/* v196 — QR Codes de Ambiente */
.grid.three {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.environment-effects-line {
  margin-top: .65rem;
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.environment-effects-line.hidden {
  display: none !important;
}
.environment-effect-pill {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .2rem;
  width: 100%;
  padding: .55rem .65rem;
  border: 1px solid var(--border-soft, rgba(255,255,255,.12));
  border-radius: 999px;
  background: rgba(255,255,255,.035);
  font-size: .85rem;
  line-height: 1.25;
}
.environment-effect-pill b {
  font-variant-numeric: tabular-nums;
}
@media (max-width: 900px) {
  .grid.three {
    grid-template-columns: 1fr;
  }
}

/* v198 - QRs de Ambiente baixáveis, sem impressão geral */
.ambiente-download-area .ambiente-qr-card .btn {
  margin-top: 10px;
  width: 100%;
}

@media print {
  .admin-view[data-admin-view="ambientes"],
  .ambiente-download-area,
  #adminAmbienteQrs {
    display: none !important;
  }
}

/* v199 - QR de Ambiente com Exibir QR, seguindo Regra Jones */
.admin-ambiente-row {
  align-items: flex-start;
}
.admin-ambiente-main {
  flex: 1;
  min-width: 180px;
}
.ambiente-qr-actions {
  min-width: 190px;
}
.ambiente-admin-actions {
  min-width: 120px;
}
.ambiente-qr-card .ambiente-qr-actions {
  width: 100%;
  min-width: 0;
  margin-top: 10px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}
.ambiente-qr-card .ambiente-qr-actions .btn {
  width: 100%;
  justify-content: center;
}
.ambiente-qr-card .qr-help-line {
  color: #5a4738;
  text-align: center;
}
.ambiente-qr-dialog-card .ambiente-qr-display {
  display: grid;
  place-items: center;
}
@media (max-width: 760px) {
  .admin-view .admin-ambiente-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
    gap: 12px !important;
  }
  .admin-view .admin-ambiente-row > *,
  .admin-view .admin-ambiente-main,
  .admin-view .ambiente-qr-actions,
  .admin-view .ambiente-admin-actions {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  .admin-view .ambiente-qr-actions,
  .admin-view .ambiente-admin-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-content: stretch !important;
    justify-items: stretch !important;
    align-items: stretch !important;
    gap: 8px !important;
  }
  .admin-view .ambiente-qr-actions .btn,
  .admin-view .ambiente-admin-actions .btn {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    justify-content: center !important;
    white-space: normal !important;
  }
  .admin-view .ambiente-qr-actions .qr-help-line {
    width: 100% !important;
    max-width: 100% !important;
    text-align: center !important;
    margin: 0 !important;
    overflow-wrap: anywhere !important;
  }
}

/* v201 - QR de Ambiente: cooldown com tempo correndo no popup, seguindo Regra Jones */
.environment-cooldown-card {
  gap: 14px;
}
.environment-cooldown-lead,
.environment-cooldown-help {
  margin: 0;
}
.environment-cooldown-count {
  width: 100%;
  display: grid;
  place-items: center;
  gap: 4px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(218, 177, 119, .08);
}
.environment-cooldown-count strong {
  font-size: clamp(2rem, 12vw, 3rem);
  line-height: 1;
  letter-spacing: .04em;
  color: var(--text);
  font-variant-numeric: tabular-nums;
}
.environment-cooldown-count span {
  color: var(--muted);
  font-size: .94rem;
  line-height: 1.35;
  text-align: center;
}
.environment-cooldown-help {
  color: var(--muted);
  font-size: .88rem;
}
@media (max-width: 520px) {
  .environment-cooldown-count {
    padding: 13px 12px;
  }
  .environment-cooldown-count strong {
    font-size: clamp(2.2rem, 18vw, 3.35rem);
  }
}

/* v204 — Administração: sub-opções em QR de Ambiente sem misturar fluxo do jogador */
.admin-ambiente-hub .section-head {
  align-items: flex-start;
}

.admin-suboption-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.admin-suboption-card {
  appearance: none;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.045);
  color: inherit;
  border-radius: 18px;
  padding: 16px;
  min-height: 128px;
  display: grid;
  gap: 8px;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 18px 42px rgba(0,0,0,.18);
  transition: transform .16s ease, border-color .16s ease, background .16s ease;
}

.admin-suboption-card:hover,
.admin-suboption-card:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.26);
  background: rgba(255,255,255,.07);
  outline: none;
}

.admin-suboption-card strong {
  font-size: 1rem;
  line-height: 1.15;
}

.admin-suboption-card small {
  color: var(--muted);
  line-height: 1.35;
}

.admin-suboption-kicker {
  width: fit-content;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.78);
  background: rgba(255,255,255,.08);
}

@media (max-width: 900px) {
  .admin-suboption-grid {
    grid-template-columns: 1fr;
  }
  .admin-suboption-card {
    min-height: 112px;
  }
}


/* v206 — Administração: isolamento forte das sub-opções.
   Evita que blocos antigos reapareçam abaixo dos cards do hub quando alguma lógica legada remove .hidden. */
.admin-view[data-admin-sub-managed="1"] > [data-admin-sub-hub]:not([data-admin-sub-active="1"]),
.admin-view[data-admin-sub-managed="1"] > [data-admin-sub-panel]:not([data-admin-sub-active="1"]),
.admin-view[data-admin-ambiente-managed="1"] > #adminAmbienteHub:not([data-admin-ambiente-active="1"]),
.admin-view[data-admin-ambiente-managed="1"] > [data-admin-ambiente-panel]:not([data-admin-ambiente-active="1"]) {
  display: none !important;
}

/* v207 — temporizador discreto do turno em Combate Autônomo */
.autonomous-turn-countdown-status,
.autonomous-turn-countdown-inline {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .85rem;
  color: var(--muted);
}

.autonomous-turn-countdown-status strong,
.autonomous-turn-countdown-inline strong {
  font-variant-numeric: tabular-nums;
  letter-spacing: .04em;
  color: var(--text);
}

.autonomous-turn-countdown-inline {
  width: 100%;
  justify-content: center;
  margin-top: .25rem;
  padding: .35rem .6rem;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 999px;
  background: rgba(255,255,255,.04);
}

.autonomous-mini-timer-line .autonomous-turn-countdown-status {
  margin-left: .15rem;
}

/* v214 — avisos narrativos automáticos do Combate Autônomo */
.autonomous-narrative-dialog .autonomous-narrative-card {
  overflow: hidden;
}

.autonomous-narrative-content {
  display: grid;
  gap: 12px;
  justify-items: center;
  opacity: 1;
  transform: translateY(0) scale(1);
  transition: opacity .16s ease, transform .16s ease;
}

.autonomous-narrative-content.is-changing {
  opacity: 0;
  transform: translateY(6px) scale(.985);
}

.autonomous-narrative-dialog .forum-dialog-media {
  margin: 0;
}

.autonomous-narrative-dialog .forum-dialog-card h2 {
  font-size: clamp(1.05rem, 4vw, 1.28rem);
}

.autonomous-narrative-dialog .forum-dialog-card p {
  color: var(--text);
  font-size: clamp(1rem, 4vw, 1.14rem);
  font-weight: 650;
  line-height: 1.36;
}

.autonomous-narrative-hint {
  color: var(--muted);
  font-size: .78rem;
  opacity: .75;
}

@media (prefers-reduced-motion: reduce) {
  .autonomous-narrative-content {
    transition: none;
  }
}

/* v215 — ritmo mais confortável para avisos narrativos automáticos */
.autonomous-narrative-content {
  transition: opacity .24s ease, transform .24s ease;
}

/* v215 — card de inimigos como primeiro ponto visual do combate do jogador */
#playerCombatPanel .player-combat-monsters {
  scroll-margin-top: 14px;
}


/* v216 — alinhamento automático no início do Combate Autônomo */
#playerCombatPanel {
  scroll-margin-top: 14px;
}

/* v218 — aro dos inimigos mais legível, imagem narrativa maior e contador junto à iniciativa */
#playerCombatPanel .player-monster-story-strip {
  gap: 14px !important;
  padding: 6px 3px 8px !important;
}

#playerCombatPanel .player-monster-story {
  flex: 0 0 82px !important;
  width: 82px !important;
  min-width: 82px !important;
  max-width: 82px !important;
  padding: 5px 2px !important;
}

#playerCombatPanel .player-monster-story .health-avatar-wrap,
#playerCombatPanel .health-avatar-wrap.health-avatar-story,
#playerCombatPanel .health-avatar-wrap:has(> .avatar.player-combat-monster-avatar),
#playerCombatPanel .health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar) {
  --hp-size: 76px !important;
  --hp-ring-stroke-width: 11 !important;
  --hp-ring-stroke-width-active: 13 !important;
  --hp-ring-empty-color: rgba(255,255,255,.26) !important;
  padding: 5px !important;
  background: radial-gradient(circle, rgba(0,0,0,.34) 58%, rgba(255,255,255,.08) 59%, rgba(0,0,0,.12) 74%, transparent 76%) !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,.10), 0 10px 24px rgba(0,0,0,.34) !important;
}

#playerCombatPanel .player-monster-story.is-minion .health-avatar-wrap,
#playerCombatPanel .player-monster-story.is-boss .health-avatar-wrap {
  box-shadow: 0 0 0 1px rgba(255,255,255,.10), 0 10px 24px rgba(0,0,0,.34), 0 0 18px rgba(120,80,220,.25) !important;
}

#playerCombatPanel .player-monster-story .health-ring-track,
#playerCombatPanel .player-monster-story .health-ring-life,
#playerCombatPanel .health-avatar-wrap.health-avatar-story .health-ring-track,
#playerCombatPanel .health-avatar-wrap.health-avatar-story .health-ring-life,
#playerCombatPanel .health-avatar-wrap:has(> .avatar.player-combat-monster-avatar) .health-ring-track,
#playerCombatPanel .health-avatar-wrap:has(> .avatar.player-combat-monster-avatar) .health-ring-life,
#playerCombatPanel .health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar) .health-ring-track,
#playerCombatPanel .health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar) .health-ring-life {
  stroke-width: 11 !important;
}

#playerCombatPanel .player-monster-story .health-ring-life,
#playerCombatPanel .health-avatar-wrap.health-avatar-story .health-ring-life,
#playerCombatPanel .health-avatar-wrap:has(> .avatar.player-combat-monster-avatar) .health-ring-life,
#playerCombatPanel .health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar) .health-ring-life {
  filter: drop-shadow(0 0 4px currentColor) !important;
}

.autonomous-narrative-dialog .forum-dialog-monster-avatar {
  width: 118px !important;
  height: 118px !important;
  font-size: 2.1rem !important;
  box-shadow: 0 14px 34px rgba(0,0,0,.34), 0 0 0 1px rgba(255,255,255,.08) !important;
}

.autonomous-narrative-dialog .forum-dialog-media {
  margin: 2px 0 4px !important;
}

.autonomous-combat-status-card > span .autonomous-turn-countdown-status {
  display: inline-flex !important;
  vertical-align: middle !important;
  margin-left: .35rem !important;
  margin-top: .15rem !important;
}

.autonomous-mini-history .autonomous-mini-timer-line {
  display: none !important;
}

@media (max-width: 520px) {
  #playerCombatPanel .player-monster-story {
    flex-basis: 78px !important;
    width: 78px !important;
    min-width: 78px !important;
    max-width: 78px !important;
  }
  #playerCombatPanel .player-monster-story .health-avatar-wrap,
  #playerCombatPanel .health-avatar-wrap.health-avatar-story,
  #playerCombatPanel .health-avatar-wrap:has(> .avatar.player-combat-monster-avatar),
  #playerCombatPanel .health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar) {
    --hp-size: 72px !important;
    --hp-ring-stroke-width: 10.5 !important;
    --hp-ring-stroke-width-active: 12.5 !important;
  }
  .autonomous-narrative-dialog .forum-dialog-monster-avatar {
    width: 108px !important;
    height: 108px !important;
    font-size: 1.95rem !important;
  }
}


/* v219 — aros de criaturas: sem glow e paleta roxo/amarelo/vermelho */
#playerCombatPanel .player-monster-story .health-avatar-wrap,
#playerCombatPanel .health-avatar-wrap.health-avatar-story,
#playerCombatPanel .health-avatar-wrap:has(> .avatar.player-combat-monster-avatar),
#playerCombatPanel .health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar) {
  --hp-ring-empty-color: rgba(255,255,255,.18) !important;
  background: rgba(0,0,0,.28) !important;
  box-shadow: none !important;
}

#playerCombatPanel .player-monster-story.is-minion .health-avatar-wrap,
#playerCombatPanel .player-monster-story.is-boss .health-avatar-wrap,
#playerCombatPanel .player-monster-story .health-avatar-wrap.is-current-turn,
#playerCombatPanel .health-avatar-wrap.health-avatar-story.is-current-turn,
#playerCombatPanel .health-avatar-wrap:has(> .avatar.player-combat-monster-avatar).is-current-turn,
#playerCombatPanel .health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar).is-current-turn {
  box-shadow: none !important;
}

#playerCombatPanel .player-monster-story .health-ring-life,
#playerCombatPanel .health-avatar-wrap.health-avatar-story .health-ring-life,
#playerCombatPanel .health-avatar-wrap:has(> .avatar.player-combat-monster-avatar) .health-ring-life,
#playerCombatPanel .health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar) .health-ring-life,
#playerCombatPanel .player-monster-story .health-ring-pulse,
#playerCombatPanel .health-avatar-wrap.health-avatar-story .health-ring-pulse,
#playerCombatPanel .health-avatar-wrap:has(> .avatar.player-combat-monster-avatar) .health-ring-pulse,
#playerCombatPanel .health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar) .health-ring-pulse {
  filter: none !important;
}

#playerCombatPanel .player-monster-story .health-ring-pulse,
#playerCombatPanel .health-avatar-wrap.health-avatar-story .health-ring-pulse,
#playerCombatPanel .health-avatar-wrap:has(> .avatar.player-combat-monster-avatar) .health-ring-pulse,
#playerCombatPanel .health-avatar-wrap:has(> img.avatar.player-combat-monster-avatar) .health-ring-pulse {
  display: none !important;
}

/* v220 — NPC Selador / Espólios pendentes */
.inline-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,.03);
}
.inline-check input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  flex: 0 0 auto;
}
.npc-spoils-dialog-card {
  width: min(720px, 100%);
  text-align: left;
}
.npc-spoils-dialog-card .forum-dialog-rune,
.npc-spoils-dialog-card h2,
.npc-spoils-dialog-card > p,
.npc-spoils-dialog-card .forum-dialog-actions {
  text-align: center;
  justify-self: center;
}
.npc-spoils-dialog-list {
  display: grid;
  gap: 10px;
}
.npc-spoil-row {
  align-items: flex-start;
}

/* v221 — Regra Jones aplicada ao NPC Selador / Espólios pendentes */
.inline-check.jones-toggle-card {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 12px;
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border-radius: 16px;
  cursor: pointer;
}
.inline-check.jones-toggle-card input[type="checkbox"] {
  margin-top: 2px;
}
.inline-check.jones-toggle-card > span {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.inline-check.jones-toggle-card strong {
  line-height: 1.15;
}
.inline-check.jones-toggle-card small {
  color: var(--muted);
  line-height: 1.3;
}

.npc-selador-card {
  display: grid;
  gap: 12px;
  width: 100%;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: color-mix(in srgb, var(--surface-strong) 70%, transparent);
}
.npc-selador-head {
  margin: 0;
}
.npc-selador-copy {
  margin: 0;
  line-height: 1.35;
}
.npc-selador-main-action {
  width: 100%;
  min-height: 44px;
  justify-content: center;
}

.npc-spoils-dialog-card {
  width: min(680px, calc(100vw - 24px));
  max-height: min(86vh, 760px);
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr) auto;
  gap: 12px;
  overflow: hidden;
}
.npc-spoils-dialog-card .forum-dialog-rune,
.npc-spoils-dialog-card h2,
.npc-spoils-dialog-card > p {
  text-align: center;
  justify-self: center;
}
.npc-spoils-dialog-count {
  margin: 0;
}
.npc-spoils-dialog-list {
  max-height: 100%;
  overflow: auto;
  padding-right: 2px;
}
.npc-spoils-dialog-actions {
  display: grid !important;
  grid-template-columns: 1fr;
  gap: 8px;
  width: 100%;
  justify-self: stretch !important;
}
.npc-spoils-dialog-actions .btn {
  width: 100%;
  min-height: 44px;
  justify-content: center;
}
.npc-spoil-row {
  display: grid;
  grid-template-columns: 1fr;
  align-items: stretch;
  gap: 12px;
  padding: 14px;
}
.npc-spoil-info {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.npc-spoil-info strong,
.npc-spoil-info p,
.npc-spoil-info small {
  overflow-wrap: anywhere;
}
.npc-spoil-meta {
  margin: 0;
  line-height: 1.3;
}
.npc-spoil-action {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 8px !important;
  width: 100%;
  margin: 0;
}
.npc-spoil-action .btn {
  width: 100%;
  min-height: 42px;
  justify-content: center;
}
.npc-permission-chip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  margin-top: 6px;
  padding: 4px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.15;
}

@media (min-width: 720px) {
  .npc-spoil-row {
    grid-template-columns: minmax(0, 1fr) minmax(132px, 160px);
    align-items: center;
  }
}

/* v222 — Regra Jones: Espólios compactos para jogador e Selador */
#espoliosList.cards {
  gap: 8px;
}
.spoil-inventory-compact {
  appearance: none;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.035);
  color: var(--text);
  width: 100%;
  min-height: 46px;
  padding: 12px 14px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  text-align: left;
  cursor: pointer;
}
.spoil-inventory-compact::after {
  content: "›";
  color: var(--muted);
  font-size: 1.25rem;
  line-height: 1;
  flex: 0 0 auto;
}
.spoil-inventory-compact span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 900;
  letter-spacing: .01em;
}
.spoil-inventory-compact:focus-visible,
.spoil-inventory-compact:active {
  outline: none;
  border-color: color-mix(in srgb, var(--accent) 62%, var(--line));
  background: rgba(255,255,255,.055);
}

.npc-spoils-dialog-card {
  width: min(560px, calc(100vw - 22px));
  gap: 10px;
}
.npc-spoils-dialog-list {
  display: grid;
  gap: 8px;
  padding-right: 3px;
}
.npc-spoil-row-compact {
  display: grid;
  grid-template-columns: 1fr;
  gap: 9px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255,255,255,.025);
}
.npc-spoil-compact-main {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.npc-spoil-avatar {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  overflow: hidden;
  display: grid;
  place-items: center;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.10);
  color: var(--text);
  font-weight: 950;
  line-height: 1;
  flex: 0 0 auto;
}
.npc-spoil-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.npc-spoil-info-compact {
  gap: 2px;
}
.npc-spoil-info-compact strong,
.npc-spoil-info-compact p {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.npc-spoil-item-name {
  margin: 0;
  color: var(--text);
  font-size: .94rem;
  font-weight: 850;
  line-height: 1.24;
}
.npc-spoil-info-compact .npc-spoil-meta {
  font-size: .82rem;
  line-height: 1.2;
}
.npc-spoil-row-compact .npc-spoil-action {
  margin: 0;
}
.npc-spoil-row-compact .npc-spoil-action .btn {
  width: 100%;
  min-height: 40px;
  border-radius: 999px;
}

@media (min-width: 640px) {
  .npc-spoil-row-compact {
    grid-template-columns: minmax(0, 1fr) 124px;
    align-items: center;
  }
  .npc-spoil-row-compact .npc-spoil-action .btn {
    min-height: 42px;
  }
}

/* v223 — Selador: entrega contínua sem fechar janela e botões compactos */
.npc-spoils-dialog-card {
  grid-template-rows: auto auto auto auto minmax(0, 1fr) auto;
}
.npc-spoils-dialog-status {
  width: 100%;
  margin: 0;
  min-height: 18px;
  padding: 0 4px;
  text-align: center;
  font-size: .82rem;
  line-height: 1.2;
}
.npc-spoils-dialog-status.hidden {
  display: none !important;
}
.npc-spoil-row-compact {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 9px 10px;
}
.npc-spoil-compact-main {
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 9px;
}
.npc-spoil-avatar {
  width: 40px;
  height: 40px;
  border-radius: 13px;
}
.npc-spoil-row-compact .npc-spoil-action {
  width: auto;
  justify-self: end;
  align-self: center;
}
.npc-spoil-row-compact .npc-spoil-action .btn,
.npc-spoil-deliver-btn {
  width: auto;
  min-width: 86px;
  min-height: 36px;
  padding: 0 12px;
  border-radius: 14px;
  font-size: .88rem;
  white-space: nowrap;
}
.npc-spoil-deliver-btn.is-confirming {
  background: color-mix(in srgb, var(--accent) 28%, var(--surface-strong));
  color: var(--accent-strong);
  border: 1px solid color-mix(in srgb, var(--accent) 38%, var(--line));
}
.npc-spoil-deliver-btn:disabled {
  opacity: .68;
  cursor: wait;
  transform: none;
}

@media (max-width: 380px) {
  .npc-spoil-row-compact {
    grid-template-columns: 1fr;
  }
  .npc-spoil-row-compact .npc-spoil-action {
    justify-self: stretch;
  }
  .npc-spoil-row-compact .npc-spoil-action .btn,
  .npc-spoil-deliver-btn {
    width: 100%;
  }
}

/* v226 — Regra Jones: opções técnicas compactas na Forja Global */
.jones-check {
  display: flex !important;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 16px;
  background: rgba(255,255,255,.045);
  cursor: pointer;
}
.jones-check input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  accent-color: var(--accent, #9f7aea);
}
.jones-check > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.jones-check strong {
  font-size: .9rem;
  line-height: 1.1;
}
.jones-check small {
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.2;
}
.form-grid > .wide,
.form-grid label.wide {
  grid-column: 1 / -1;
}

/* v227 — Regra Jones: checkbox técnico da Forja com proporção e alinhamento corretos */
.admin-view label.jones-check,
.admin-view .form-grid label.jones-check {
  display: grid !important;
  grid-template-columns: 22px minmax(0, 1fr) !important;
  align-items: center !important;
  column-gap: 10px !important;
  row-gap: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 46px !important;
  padding: 9px 12px !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,.045) !important;
  overflow: hidden !important;
}

.admin-view label.jones-check input[type="checkbox"],
.admin-view .form-grid label.jones-check input[type="checkbox"] {
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  max-height: 18px !important;
  padding: 0 !important;
  margin: 0 !important;
  justify-self: start !important;
  align-self: center !important;
  flex: 0 0 18px !important;
  border-radius: 5px !important;
  accent-color: var(--accent, #9f7aea) !important;
}

.admin-view label.jones-check > span,
.admin-view .form-grid label.jones-check > span {
  display: grid !important;
  gap: 2px !important;
  min-width: 0 !important;
  width: 100% !important;
  margin: 0 !important;
  overflow: hidden !important;
}

.admin-view label.jones-check > span strong,
.admin-view .form-grid label.jones-check > span strong {
  display: block !important;
  min-width: 0 !important;
  color: var(--text) !important;
  font-size: .9rem !important;
  line-height: 1.12 !important;
  overflow-wrap: anywhere !important;
}

.admin-view label.jones-check > span small,
.admin-view .form-grid label.jones-check > span small {
  display: block !important;
  min-width: 0 !important;
  color: var(--muted) !important;
  font-size: .76rem !important;
  line-height: 1.22 !important;
  overflow-wrap: anywhere !important;
}

/* v228 — Lotes de QRcodes de Selos e Itens */
.qr-batch-form { gap: 18px; }
.qr-batch-category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
}
.qr-batch-category-card {
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  padding: 14px;
  background: rgba(255,255,255,.035);
}
.qr-batch-category-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.qr-batch-type-list { display: grid; gap: 9px; }
.qr-batch-type-row {
  display: grid;
  grid-template-columns: 1fr 78px;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 14px;
  background: rgba(0,0,0,.16);
}
.qr-batch-type-row strong { display: block; line-height: 1.2; }
.qr-batch-type-row small { display: block; margin-top: 4px; color: var(--muted); line-height: 1.35; }
.qr-batch-type-row input {
  width: 100%;
  min-height: 40px;
  text-align: center;
  padding: 8px;
}
.qr-lot-list { display: grid; gap: 12px; }
.qr-lote-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  background: rgba(255,255,255,.035);
}
.qr-lote-card.is-invalidated { opacity: .72; border-style: dashed; }
.qr-lote-main strong { display: block; font-size: 1.02rem; margin: 2px 0 4px; }
.qr-lote-main small { display: block; color: var(--muted); }
.qr-lote-chips,
.qr-lote-flags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.qr-lote-chips span,
.qr-lote-flags span {
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  padding: 4px 8px;
  font-size: .78rem;
  color: rgba(255,255,255,.82);
  background: rgba(0,0,0,.18);
}
.qr-lote-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  min-width: 210px;
}
.qr-legacy-details {
  margin-top: 16px;
  border-top: 1px solid rgba(255,255,255,.1);
  padding-top: 12px;
}
.qr-legacy-details summary { cursor: pointer; color: var(--muted); font-weight: 800; }
.admin-qr-lote-dialog-card { width: min(900px, 94vw); max-height: 88vh; }
.qr-lote-dialog-list {
  display: grid;
  gap: 10px;
  overflow: auto;
  max-height: 56vh;
  padding-right: 4px;
}
.qr-lote-dialog-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 96px;
  gap: 12px;
  align-items: center;
  padding: 10px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 16px;
  background: rgba(0,0,0,.18);
}
.qr-lote-dialog-row.is-invalidated { opacity: .7; }
.qr-lote-dialog-info strong,
.qr-lote-dialog-info small,
.qr-lote-dialog-info code { display: block; }
.qr-lote-dialog-info small { color: var(--muted); margin-top: 3px; }
.qr-lote-dialog-info code { margin-top: 6px; font-size: .74rem; white-space: normal; word-break: break-word; color: rgba(255,255,255,.82); }
.qr-lote-dialog-qr {
  width: 86px;
  height: 86px;
  padding: 5px;
  border-radius: 12px;
  background: #fff;
  display: grid;
  place-items: center;
}
.qr-lote-dialog-qr canvas,
.qr-lote-dialog-qr img { width: 76px !important; height: 76px !important; }
@media (max-width: 760px) {
  .qr-lote-card { grid-template-columns: 1fr; }
  .qr-lote-actions { grid-template-columns: 1fr 1fr; min-width: 0; }
  .qr-batch-type-row { grid-template-columns: 1fr 68px; }
  .qr-lote-dialog-row { grid-template-columns: minmax(0, 1fr) 82px; }
  .qr-lote-dialog-qr { width: 78px; height: 78px; }
  .qr-lote-dialog-qr canvas,
  .qr-lote-dialog-qr img { width: 68px !important; height: 68px !important; }
}

.admin-lottery-shell {
  display: grid;
  gap: 16px;
}
.lottery-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}
.lottery-stats-grid div,
.lottery-current-number {
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  padding: 14px;
  background: rgba(0,0,0,.18);
}
.lottery-stats-grid span,
.lottery-current-number span {
  display: block;
  color: var(--muted);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.lottery-stats-grid strong {
  display: block;
  margin-top: 4px;
  font-size: 1.35rem;
}
.lottery-current-number {
  margin-top: 12px;
  text-align: center;
}
.lottery-current-number strong {
  display: block;
  margin: 6px 0;
  font-size: clamp(2.3rem, 12vw, 5rem);
  line-height: 1;
  letter-spacing: .04em;
}
.lottery-current-number small {
  display: block;
  color: var(--muted);
}
.lottery-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 12px;
}
.lottery-config-grid { margin-top: 12px; }
.lottery-config-list {
  display: grid;
  gap: 9px;
}
.lottery-config-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: flex-start;
  padding: 10px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 14px;
  background: rgba(0,0,0,.16);
  cursor: pointer;
}
.lottery-config-row input {
  width: 20px;
  height: 20px;
  margin-top: 2px;
}
.lottery-config-row strong,
.lottery-config-row small {
  display: block;
}
.lottery-config-row small {
  margin-top: 4px;
  color: var(--muted);
  line-height: 1.35;
}
.lottery-history-list {
  display: grid;
  gap: 8px;
}
.lottery-history-row {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 11px 12px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px;
  background: rgba(0,0,0,.16);
}
.lottery-history-row.is-latest {
  border-color: rgba(255,255,255,.22);
  background: rgba(255,255,255,.06);
}
.lottery-history-row strong {
  font-size: 1.08rem;
  letter-spacing: .04em;
}
.lottery-history-row span,
.lottery-history-row small {
  min-width: 0;
}
.lottery-history-row small {
  grid-column: 2;
  color: var(--muted);
}
@media (max-width: 760px) {
  .lottery-stats-grid { grid-template-columns: 1fr 1fr; }
  .lottery-actions { grid-template-columns: 1fr; }
  .lottery-history-row { grid-template-columns: 78px minmax(0, 1fr); }
}

/* v234 — Código curto padronizado para digitação manual de QR */
.qr-manual-code-label {
  margin: 10px 0 2px;
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(245, 238, 220, .62);
}
.qr-manual-code-display {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 8.5rem;
  padding: .42rem .7rem;
  border-radius: 999px;
  border: 1px solid rgba(226, 190, 116, .45);
  background: rgba(12, 8, 18, .72);
  color: #f7e6bd;
  font-size: 1.18rem;
  letter-spacing: .15em;
  font-weight: 900;
  box-shadow: 0 0 20px rgba(226, 190, 116, .12);
}
#manualQrForm input[name="codigo"] {
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 800;
  text-align: center;
}

/* v236 — código secreto visível do QR de grupo */
.qr-short-code {
  display: inline-block;
  margin-top: 6px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16);
  color: rgba(255,255,255,.88);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: .78rem;
  letter-spacing: .08em;
}

/* v237 — QR de grupo legível e Olho Gospel na largura correta.
   - O código secreto do grupo fica abaixo do QR, sem quebrar na lateral.
   - O card do Olho Gospel ocupa a largura dos demais painéis em telas médias/maiores. */
.group-qr-panel {
  justify-items: center !important;
  text-align: center !important;
}

.group-qr-panel .group-qr,
.group-qr-panel #groupQrBox {
  display: grid !important;
  grid-template-columns: 1fr !important;
  place-items: center !important;
  justify-content: center !important;
  align-content: center !important;
  gap: 10px !important;
  width: min(100%, 224px) !important;
  min-width: 0 !important;
  max-width: 224px !important;
  min-height: 0 !important;
  padding: 14px 16px !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}

.group-qr-panel .qr-canvas,
.group-qr-panel #groupQrCanvas {
  display: block !important;
  flex: none !important;
  width: 128px !important;
  height: 128px !important;
  min-width: 128px !important;
  min-height: 128px !important;
  max-width: 128px !important;
  max-height: 128px !important;
  padding: 0 !important;
  margin: 0 auto !important;
  overflow: hidden !important;
  background: #fff !important;
  border-radius: 12px !important;
}

.group-qr-panel .qr-canvas canvas,
.group-qr-panel .qr-canvas img,
.group-qr-panel canvas,
.group-qr-panel img {
  display: block !important;
  width: 128px !important;
  height: 128px !important;
  max-width: 128px !important;
  max-height: 128px !important;
  margin: 0 auto !important;
  object-fit: contain !important;
}

.group-qr-panel .qr-short-code,
.group-qr-panel .group-qr .qr-short-code {
  display: block !important;
  width: max-content !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding: 5px 10px !important;
  border-radius: 999px !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  text-align: center !important;
  line-height: 1.15 !important;
  color: #111 !important;
  background: #f2f2f2 !important;
  border: 1px solid #d7d7d7 !important;
  font-size: .78rem !important;
  font-weight: 900 !important;
  letter-spacing: .08em !important;
}

.player-shell > .player-grid.grid.two {
  grid-template-columns: 1fr !important;
  width: 100% !important;
}

.player-shell > .player-grid.grid.two > .qr-minimal-panel {
  width: 100% !important;
  max-width: none !important;
  justify-self: stretch !important;
  box-sizing: border-box !important;
}

.player-shell > .player-grid.grid.two #manualQrForm {
  width: min(100%, 560px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* v238 — QR de grupo sem cantos cortados.
   O cartão branco pode continuar arredondado, mas o canvas/imagem do QR precisa ficar reto,
   sem border-radius nem overflow escondendo os marcadores das pontas. */
.group-qr-panel .qr-canvas,
.group-qr-panel #groupQrCanvas {
  overflow: visible !important;
  border-radius: 0 !important;
  clip-path: none !important;
  background: #fff !important;
}

.group-qr-panel .qr-canvas canvas,
.group-qr-panel .qr-canvas img,
.group-qr-panel #groupQrCanvas canvas,
.group-qr-panel #groupQrCanvas img,
.group-qr-panel canvas,
.group-qr-panel img {
  border-radius: 0 !important;
  clip-path: none !important;
  overflow: visible !important;
}

.group-qr-panel .group-qr,
.group-qr-panel #groupQrBox {
  overflow: visible !important;
}

/* v239 - ficha resumida de criaturas no jogador */
.player-monster-full-row-stats {
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
}

.player-monster-full-main {
  min-width: 0;
}

.player-monster-full-stats {
  max-width: 210px;
}

.monster-inflicts-chip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  margin-top: 5px;
  border: 1px solid color-mix(in srgb, var(--accent) 45%, var(--line));
  border-radius: 999px;
  padding: 3px 8px;
  color: var(--text);
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  font-size: .75rem;
  line-height: 1.2;
  font-style: normal;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.monster-inflicts-chip.is-empty {
  border-color: var(--line);
  color: var(--muted);
  background: rgba(255,255,255,.025);
}

@media (max-width: 560px) {
  .player-monster-full-row-stats {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .player-monster-full-stats {
    grid-column: 2;
    justify-content: start;
    max-width: 100%;
  }
}

/* v241 — Meu Sigilo mais simples, sem molduras internas nos itens. */
#sigiloModal .sigilo-modal-body {
  gap: 12px !important;
}

#sigiloModal .sigilo-rule-hero {
  border: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 2px 4px !important;
}

#sigiloModal .sigilo-rule-list {
  margin: 2px 0 0 !important;
  padding-left: 1.15rem !important;
  display: block !important;
  list-style: disc outside !important;
}

#sigiloModal .sigilo-rule-list li {
  border: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 0 8px !important;
  color: var(--text) !important;
  line-height: 1.5 !important;
}

#sigiloModal .sigilo-rule-list li:last-child {
  margin-bottom: 0 !important;
}


/* v245 — cadastro por credenciais */
.login-secondary-actions,
.registration-tabs {
  display: grid;
  gap: .65rem;
  grid-template-columns: 1fr;
  margin-top: .75rem;
}
.registration-card .form-grid {
  align-items: end;
}
.registration-footnote {
  margin-top: .75rem;
  font-size: .85rem;
}
.admin-credentials-panel .stats {
  margin-bottom: 1rem;
}
.admin-credentials-settings,
.admin-credentials-generate {
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 18px;
  padding: 1rem;
  margin-bottom: 1rem;
  background: rgba(255,255,255,.03);
}
.credential-row strong {
  letter-spacing: .08em;
}
.credential-livre strong { color: var(--accent, #f2d38a); }
.credential-usado strong { color: #b8f2d0; }
.credential-cancelado { opacity: .65; }
@media (min-width: 680px) {
  .login-secondary-actions,
  .registration-tabs {
    grid-template-columns: 1fr 1fr;
  }
}

/* v246 — cartões de credencial com logo e QR individual */
.credential-logo-preview {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .75rem;
  margin: .25rem 0 1rem;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 16px;
  background: rgba(255,255,255,.03);
}
.credential-logo-preview span {
  color: var(--muted);
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.credential-logo-preview img {
  max-width: 150px;
  max-height: 72px;
  object-fit: contain;
  background: rgba(255,255,255,.95);
  border-radius: 12px;
  padding: .45rem;
}
.admin-credential-remove-logo {
  margin: -.35rem 0 1rem;
}
.admin-credential-logo-field small {
  display: block;
  margin-top: .25rem;
}

/* v248 — ajustes de credenciais: reset, login e editor de logo */
.admin-credential-remove-logo {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  width: auto;
  max-width: max-content;
  min-height: 0;
  padding: .45rem .65rem;
  border-radius: 999px;
  margin: -.25rem 0 1rem;
}
.admin-credential-remove-logo input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin: 0;
}
.admin-credentials-generate .modal-actions .btn.danger {
  margin-left: auto;
}
.credential-logo-editor-card {
  width: min(680px, calc(100vw - 24px));
}
.credential-logo-editor {
  display: grid;
  place-items: center;
  padding: .75rem;
  border-radius: 18px;
  background: rgba(0,0,0,.22);
  border: 1px solid rgba(255,255,255,.08);
  touch-action: none;
}
#credentialLogoCanvas {
  display: block;
  width: min(100%, 520px);
  height: auto;
  border-radius: 14px;
  background: #fffaf0;
  border: 1px solid rgba(255,255,255,.12);
  touch-action: none;
}
.credential-logo-zoom-controls {
  margin-top: .75rem;
}
@media (max-width: 640px) {
  .admin-credentials-generate .modal-actions .btn.danger {
    margin-left: 0;
  }
}

/* v249 — login da credencial como texto e checkbox proporcional */
.admin-view label.admin-credential-remove-logo,
.admin-view .admin-credential-remove-logo {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: .55rem !important;
  width: auto !important;
  max-width: max-content !important;
  min-height: 0 !important;
  padding: .45rem .65rem !important;
  border-radius: 999px !important;
  margin: -.25rem 0 1rem !important;
}
.admin-view label.admin-credential-remove-logo input[type="checkbox"],
.admin-view .admin-credential-remove-logo input[type="checkbox"] {
  appearance: auto !important;
  -webkit-appearance: checkbox !important;
  display: inline-block !important;
  width: 16px !important;
  min-width: 16px !important;
  max-width: 16px !important;
  height: 16px !important;
  min-height: 16px !important;
  max-height: 16px !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 4px !important;
  flex: 0 0 16px !important;
}
.admin-view label.admin-credential-remove-logo > span,
.admin-view .admin-credential-remove-logo > span {
  margin: 0 !important;
  font-size: .82rem !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
}

/* v250 — credenciais: campo de local, login como texto e checkbox nativo compacto */
.admin-credential-remove-logo-row {
  display: inline-flex !important;
  align-items: center !important;
  gap: .55rem !important;
  width: max-content !important;
  max-width: 100% !important;
  min-height: 0 !important;
  margin: -.15rem 0 .9rem !important;
  padding: .42rem .62rem !important;
  border: 1px solid var(--line) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.03) !important;
}
.admin-credential-remove-logo-row input[type="checkbox"] {
  all: revert !important;
  appearance: auto !important;
  -webkit-appearance: checkbox !important;
  width: 16px !important;
  min-width: 16px !important;
  max-width: 16px !important;
  height: 16px !important;
  min-height: 16px !important;
  max-height: 16px !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 0 0 16px !important;
}
.admin-credential-remove-logo-row label {
  display: inline !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--muted) !important;
  font-size: .82rem !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
}
.admin-credentials-settings input[name="login_url"] {
  -webkit-text-security: none !important;
}

/* v251 — editor de logo mais horizontal para credenciais monocromáticas */
.credential-logo-editor-card {
  width: min(980px, calc(100vw - 24px));
}
#credentialLogoCanvas {
  width: min(100%, 900px);
  max-width: 900px;
  background: #fff;
}

.root-user-chip {
  display: inline-flex;
  align-items: center;
  margin-left: 0.35rem;
  padding: 0.05rem 0.35rem;
  border: 1px solid rgba(255,255,255,0.28);
  border-radius: 999px;
  font-size: 0.62rem;
  line-height: 1.2;
  letter-spacing: 0.08em;
  opacity: 0.82;
}

/* v259 - confirmação de senha e botão de visibilidade na área de usuários */
.password-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px;
  gap: 8px;
  align-items: stretch;
  width: 100%;
}
.password-field input {
  min-width: 0 !important;
  width: 100% !important;
}
.password-toggle {
  min-height: 40px;
  width: 44px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: color-mix(in srgb, var(--surface-strong) 94%, transparent);
  color: var(--text);
  cursor: pointer;
  display: grid;
  place-items: center;
  font-size: 1rem;
  line-height: 1;
  padding: 0;
}
.password-toggle:hover,
.password-toggle.is-visible {
  border-color: color-mix(in srgb, var(--accent) 70%, var(--line));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent);
}

/* v260 — cadastro mais compacto, login conferido e PIN mínimo de 6 dígitos */
.registration-shell {
  place-items: start center;
  padding-top: 16px;
  padding-bottom: 16px;
}
.registration-card {
  padding-top: 26px;
}
.registration-card .eyebrow {
  margin-top: 0;
}
.registration-card .stack {
  gap: 12px;
  margin-top: 18px;
}
.registration-card .registration-tabs {
  margin-top: .6rem;
}
.registration-card .registration-footnote {
  margin-top: .55rem;
}
.login-availability {
  display: block;
  min-height: 1.05rem;
  margin-top: .35rem;
  font-size: .78rem;
  line-height: 1.35;
  color: var(--muted);
}
.login-availability.ok {
  color: var(--success) !important;
}
.login-availability.error {
  color: var(--danger) !important;
}
input.input-ok,
input.input-ok:focus {
  border-color: var(--success) !important;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--success) 55%, transparent) !important;
}
input.input-error,
input.input-error:focus {
  border-color: var(--danger) !important;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--danger) 55%, transparent) !important;
}
@media (max-width: 560px) {
  .registration-shell {
    padding-top: 10px;
    padding-left: 14px;
    padding-right: 14px;
  }
  .registration-card {
    padding: 22px 20px 24px;
  }
  .registration-card h1 {
    font-size: clamp(2.2rem, 13vw, 3.35rem);
  }
  .registration-card .stack {
    gap: 11px;
  }
}

/* v261 — Conta Amiga */
.friend-account-switcher {
  position: relative;
  margin: -0.35rem auto 0.8rem;
  max-width: 720px;
  display: flex;
  justify-content: flex-start;
}
.friend-account-active {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.72rem 0.9rem;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 1.1rem;
  background: rgba(255,255,255,0.045);
  color: var(--text, #f5f5f5);
  text-align: left;
}
.friend-account-switcher.is-friend-active .friend-account-active {
  border-color: rgba(120, 255, 180, 0.35);
  box-shadow: 0 0 0 1px rgba(120, 255, 180, 0.08) inset;
}
.friend-account-avatar {
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.16);
  font-weight: 900;
}
.friend-account-avatar.small {
  width: 34px;
  height: 34px;
  font-size: 0.85rem;
}
.friend-account-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.friend-account-active-text,
.friend-account-option span,
.friend-dialog-person span {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.friend-account-active-text strong,
.friend-account-option strong,
.friend-dialog-person strong {
  font-size: 0.98rem;
  line-height: 1.1;
}
.friend-account-active-text small,
.friend-account-option small,
.friend-dialog-person small {
  color: var(--muted, #a9a9b2);
  font-size: 0.76rem;
}
.friend-account-caret {
  margin-left: auto;
  opacity: 0.7;
  font-size: 1.2rem;
}
.friend-account-dropdown {
  position: absolute;
  z-index: 20;
  top: calc(100% + 0.35rem);
  left: 0;
  right: 0;
  padding: 0.45rem;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 1rem;
  background: rgba(18,18,24,0.98);
  box-shadow: 0 18px 50px rgba(0,0,0,0.45);
}
.friend-account-option {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.65rem;
  border: 0;
  border-radius: 0.85rem;
  background: transparent;
  color: inherit;
  text-align: left;
}
.friend-account-option.active,
.friend-account-option:hover {
  background: rgba(255,255,255,0.07);
}
.friend-accounts-dialog-card {
  max-width: 560px;
}
.friend-code-card {
  display: grid;
  gap: 0.25rem;
  padding: 0.9rem;
  margin: 0.9rem 0;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 1rem;
  background: rgba(255,255,255,0.04);
}
.friend-code-card span,
.friend-add-form span {
  color: var(--muted, #a9a9b2);
  font-size: 0.8rem;
}
.friend-code-card strong {
  font-size: 1.45rem;
  letter-spacing: 0.08em;
}
.friend-code-card .btn {
  justify-self: flex-start;
  margin-top: 0.25rem;
}
.friend-add-form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.65rem;
  align-items: end;
  margin: 0.85rem 0 1rem;
}
.friend-add-form label {
  display: grid;
  gap: 0.35rem;
}
.friend-dialog-list {
  display: grid;
  gap: 0.55rem;
  margin-top: 0.75rem;
}
.friend-dialog-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 0.9rem;
  background: rgba(255,255,255,0.035);
}
.friend-dialog-person {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
.friend-dialog-actions {
  flex: 0 0 auto;
  display: flex;
  gap: 0.4rem;
}
@media (max-width: 560px) {
  .friend-account-switcher { margin-top: -0.15rem; }
  .friend-add-form { grid-template-columns: 1fr; }
  .friend-dialog-row { align-items: stretch; flex-direction: column; }
  .friend-dialog-actions { justify-content: flex-end; }
}

/* v262 — Conta Amiga compacta em avatares tipo story */
.friend-account-switcher {
  position: relative;
  margin: 0.05rem auto 0.45rem;
  max-width: 720px;
  display: block;
  justify-content: initial;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.friend-account-switcher::-webkit-scrollbar {
  display: none;
}
.friend-account-stories {
  display: flex;
  align-items: center;
  gap: 0.42rem;
  min-height: 52px;
  padding: 0.08rem 0.15rem 0.18rem;
}
.friend-account-story {
  flex: 0 0 auto;
  width: 50px;
  height: 50px;
  padding: 2px;
  display: inline-grid;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  transition: transform .14s ease, filter .14s ease;
}
.friend-account-story:active {
  transform: scale(0.96);
}
.friend-account-story.active {
  filter: brightness(1.14);
}
.friend-account-story.active .friend-account-story-ring {
  box-shadow: 0 0 0 2px rgba(255,255,255,.86), 0 0 0 4px rgba(98,214,111,.22);
}
.friend-account-story-ring {
  --hp-size: 44px;
  --hp-ring-stroke-width: 10;
  --hp-ring-stroke-width-active: 12;
  box-shadow: none;
}
.friend-account-story-ring > .avatar,
.friend-account-story-ring > .avatar-placeholder,
.friend-account-story-ring > img.avatar {
  border-width: 1px !important;
  font-size: 1rem;
}

@media (max-width: 560px) {
  .friend-account-switcher {
    margin-top: -0.05rem;
    margin-bottom: 0.35rem;
  }
  .friend-account-stories {
    min-height: 48px;
    gap: 0.36rem;
  }
  .friend-account-story {
    width: 46px;
    height: 46px;
  }
  .friend-account-story-ring {
    --hp-size: 40px;
    --hp-ring-stroke-width: 9.5;
    --hp-ring-stroke-width-active: 11.5;
  }
}

/* v263 — Conta Amiga ainda mais compacta */
.friend-account-switcher {
  margin: -0.22rem auto 0.12rem !important;
  max-width: 720px;
  padding: 0 !important;
}
.friend-account-stories {
  min-height: 38px !important;
  gap: 0.18rem !important;
  padding: 0 !important;
}
.friend-account-story {
  width: 38px !important;
  height: 38px !important;
  padding: 1px !important;
}
.friend-account-story-ring {
  --hp-size: 34px !important;
  --hp-ring-stroke-width: 8 !important;
  --hp-ring-stroke-width-active: 9.5 !important;
}
.friend-account-story-ring > .avatar,
.friend-account-story-ring > .avatar-placeholder,
.friend-account-story-ring > img.avatar {
  border-width: 1px !important;
  font-size: 0.86rem !important;
}
.friend-account-story.active .friend-account-story-ring {
  box-shadow: 0 0 0 1.5px rgba(255,255,255,.82), 0 0 0 3px rgba(98,214,111,.18) !important;
}
.player-shell:has(.friend-account-switcher:not(.hidden)) {
  gap: 10px;
}
.friend-account-switcher:not(.hidden) + .player-hero {
  margin-top: 0 !important;
}
@media (max-width: 560px) {
  .friend-account-switcher {
    margin-top: -0.32rem !important;
    margin-bottom: 0.08rem !important;
  }
  .friend-account-stories {
    min-height: 36px !important;
    gap: 0.16rem !important;
  }
  .friend-account-story {
    width: 36px !important;
    height: 36px !important;
  }
  .friend-account-story-ring {
    --hp-size: 32px !important;
    --hp-ring-stroke-width: 7.5 !important;
    --hp-ring-stroke-width-active: 9 !important;
  }
}

/* v265 — Conta Amiga alinhada à esquerda e mais próxima do topo */
.friend-account-switcher {
  width: 100% !important;
  max-width: none !important;
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
  margin: -0.5rem 0 0.02rem !important;
  padding: 0 !important;
}
.friend-account-stories {
  justify-content: flex-start !important;
  align-items: center !important;
  width: auto !important;
  min-height: 34px !important;
  gap: 0.14rem !important;
  padding: 0 0 0 0.08rem !important;
}
.friend-account-story {
  width: 35px !important;
  height: 35px !important;
}
.friend-account-story-ring {
  --hp-size: 31px !important;
  --hp-ring-stroke-width: 7.2 !important;
  --hp-ring-stroke-width-active: 8.6 !important;
}
.player-shell:has(.friend-account-switcher:not(.hidden)) {
  gap: 8px !important;
}
.friend-account-switcher:not(.hidden) + .player-hero {
  margin-top: 0 !important;
}
@media (max-width: 560px) {
  .friend-account-switcher {
    margin: -0.62rem 0 0.02rem !important;
  }
  .friend-account-stories {
    min-height: 33px !important;
    gap: 0.12rem !important;
    padding-left: 0.04rem !important;
  }
  .friend-account-story {
    width: 34px !important;
    height: 34px !important;
  }
  .friend-account-story-ring {
    --hp-size: 30px !important;
    --hp-ring-stroke-width: 7 !important;
    --hp-ring-stroke-width-active: 8.4 !important;
  }
}


/* v266 — Conta Amiga centralizada, maior e com destaque real no selecionado */
.friend-account-switcher {
  width: 100% !important;
  max-width: 720px !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin: -0.55rem auto 0.02rem !important;
  padding: 0 !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
}
.friend-account-switcher::-webkit-scrollbar {
  display: none !important;
}
.friend-account-stories {
  width: auto !important;
  max-width: 100% !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  min-height: 48px !important;
  gap: 0.26rem !important;
  padding: 0 !important;
  margin: 0 auto !important;
}
.friend-account-story {
  width: 42px !important;
  height: 42px !important;
  padding: 1px !important;
  display: inline-grid !important;
  place-items: center !important;
  transform-origin: center !important;
}
.friend-account-story-ring {
  --hp-size: 38px !important;
  --hp-ring-stroke-width: 8.2 !important;
  --hp-ring-stroke-width-active: 9.8 !important;
}
.friend-account-story.active {
  width: 49px !important;
  height: 49px !important;
  z-index: 2 !important;
  filter: brightness(1.16) saturate(1.08) !important;
}
.friend-account-story.active .friend-account-story-ring {
  --hp-size: 45px !important;
  --hp-ring-stroke-width: 9.8 !important;
  --hp-ring-stroke-width-active: 11.4 !important;
  box-shadow: 0 0 0 2px rgba(255,255,255,.86), 0 0 0 4px rgba(98,214,111,.24), 0 7px 16px rgba(0,0,0,.28) !important;
}
.friend-account-story-ring > .avatar,
.friend-account-story-ring > .avatar-placeholder,
.friend-account-story-ring > img.avatar {
  border-width: 1px !important;
  font-size: 0.92rem !important;
}
.player-shell:has(.friend-account-switcher:not(.hidden)) {
  gap: 7px !important;
}
.friend-account-switcher:not(.hidden) + .player-hero {
  margin-top: 0 !important;
}
@media (max-width: 560px) {
  .friend-account-switcher {
    margin: -0.62rem auto 0 !important;
  }
  .friend-account-stories {
    min-height: 46px !important;
    gap: 0.22rem !important;
  }
  .friend-account-story {
    width: 40px !important;
    height: 40px !important;
  }
  .friend-account-story-ring {
    --hp-size: 36px !important;
    --hp-ring-stroke-width: 8 !important;
    --hp-ring-stroke-width-active: 9.4 !important;
  }
  .friend-account-story.active {
    width: 47px !important;
    height: 47px !important;
  }
  .friend-account-story.active .friend-account-story-ring {
    --hp-size: 43px !important;
    --hp-ring-stroke-width: 9.4 !important;
    --hp-ring-stroke-width-active: 11 !important;
  }
}

/* v270 — Flâmulas da Vitória: título padronizado */
.player-flamulas-panel {
  margin-top: 10px;
}
.player-flamulas-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.player-flamulas-cta h2 {
  margin: 0;
  font-size: 1.35rem;
  line-height: 1.12;
  letter-spacing: -.03em;
}
@media (max-width: 520px) {
  .player-flamulas-cta h2 {
    font-size: 1.18rem;
  }
}
.player-flamulas-dialog-card {
  width: min(720px, calc(100vw - 22px));
  max-height: min(86vh, 840px);
  overflow: auto;
}
.flamula-victory-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
  margin-top: 14px;
}
.flamula-victory-card {
  appearance: none;
  width: 100%;
  border: 1px solid rgba(230, 204, 142, .24);
  border-radius: 18px;
  background: rgba(17, 13, 24, .82);
  color: var(--text, #f8f3e7);
  text-align: left;
  padding: 10px;
  display: grid;
  grid-template-columns: 74px 1fr;
  gap: 10px;
  align-items: center;
  min-height: 112px;
  box-shadow: 0 10px 28px rgba(0,0,0,.24);
}
.flamula-victory-card.is-earned {
  cursor: pointer;
  border-color: rgba(230, 204, 142, .56);
}
.flamula-victory-card.is-locked {
  cursor: default;
  opacity: .72;
}
.flamula-victory-thumb {
  width: 74px;
  height: 92px;
  border-radius: 14px;
  background: radial-gradient(circle at 50% 18%, rgba(230,204,142,.35), rgba(54,30,66,.45) 42%, rgba(8,6,12,.9));
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  padding: 7px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.12);
  overflow: hidden;
}
.flamula-victory-card.is-locked .flamula-victory-thumb {
  filter: grayscale(1) brightness(.58);
}
.flamula-victory-seal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  border-radius: 999px;
  background: rgba(0,0,0,.58);
  color: #f1d890;
  font-size: 13px;
}
.flamula-victory-copy {
  display: grid;
  gap: 4px;
}
.flamula-victory-copy strong {
  font-size: .98rem;
  line-height: 1.12;
}
.flamula-victory-copy small,
.flamula-victory-copy em {
  font-size: .78rem;
  line-height: 1.25;
  color: rgba(248,243,231,.72);
  font-style: normal;
}
.player-flamula-poster-card {
  width: min(620px, calc(100vw - 18px));
  max-height: min(92vh, 900px);
  overflow: auto;
}
.player-flamula-poster-preview {
  display: flex;
  justify-content: center;
  margin: 14px auto;
}
.player-flamula-poster-canvas {
  width: min(100%, 390px);
  height: auto;
  border-radius: 18px;
  box-shadow: 0 18px 52px rgba(0,0,0,.45);
  background: #140f19;
}
.flamula-admin-preview {
  min-height: 96px;
  border: 1px dashed rgba(230, 204, 142, .34);
  border-radius: 16px;
  padding: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.03);
}
.flamula-admin-preview img {
  width: 100%;
  max-height: 180px;
  object-fit: cover;
  border-radius: 12px;
}
.flamula-admin-preview small {
  display: block;
  margin-left: 10px;
  color: rgba(248,243,231,.72);
}
@media (max-width: 640px) {
  .player-flamulas-cta {
    align-items: stretch;
    flex-direction: column;
  }
  .player-flamulas-cta .btn {
    width: 100%;
  }
  .flamula-victory-grid {
    grid-template-columns: 1fr;
  }
}


/* v272 — editor de imagem da Flâmula */
#avatarCanvas.is-poster-crop {
  border-radius: 22px;
  width: min(320px, 72vw);
  height: auto;
}
.flamula-upload-hint {
  margin: 8px 0 10px;
  font-size: .86rem;
}
.flamula-upload-hint strong {
  color: #f0d694;
}
.admin-flamula-editor-block .master-avatar-actions {
  flex-wrap: wrap;
}
@media (max-width: 600px) {
  .admin-flamula-editor-block .master-avatar-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }
  .admin-flamula-editor-block .master-avatar-actions .btn {
    width: 100%;
  }
}

/* v276 — Mistérios */
.player-mysteries-panel {
  text-align: left;
}
.player-mysteries-panel .btn {
  width: 100%;
  justify-content: center;
}
.player-mysteries-dialog-card {
  width: min(720px, calc(100vw - 24px));
  max-height: min(86vh, 900px);
  overflow: auto;
}
.mystery-player-list,
.mystery-clue-list {
  display: grid;
  gap: 12px;
}
.mystery-player-card {
  border: 1px solid rgba(232,216,170,.22);
  border-radius: 18px;
  padding: 14px;
  background: rgba(12, 8, 16, .72);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.03);
}
.mystery-player-card.is-solved {
  border-color: rgba(232,216,170,.48);
  background: linear-gradient(135deg, rgba(65,46,18,.38), rgba(12,8,16,.84));
}
.mystery-clue-row {
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  padding: 10px 12px;
  background: rgba(255,255,255,.035);
}
.mystery-clue-row strong,
.mystery-clue-row small {
  display: block;
}
.mystery-clue-row.is-locked {
  opacity: .62;
  filter: grayscale(.55);
}
.mystery-word-form {
  margin-top: 10px;
}
.mystery-word-form input {
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 800;
}
.admin-mystery-row {
  align-items: flex-start;
}
.admin-mystery-main {
  min-width: 0;
  display: grid;
  gap: 8px;
}
.admin-mystery-qrs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 10px;
  margin-top: 8px;
}
.mystery-qr-card {
  min-height: auto;
}
.mystery-word-grid input {
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 800;
}
@media (max-width: 640px) {
  .admin-mystery-row {
    display: grid;
    gap: 12px;
  }
  .admin-mystery-qrs {
    grid-template-columns: 1fr;
  }
}


/* v277 — Mistérios no padrão visual do app */
.mystery-rule-jones-card {
  width: min(680px, calc(100vw - 24px));
  max-height: min(86vh, 880px);
  overflow: auto;
  text-align: center;
}
.mystery-rule-jones-card > h2 {
  margin-bottom: 4px;
}
.mystery-rule-jones-card > .muted {
  margin-top: 0;
}
.mystery-inline-notice {
  display: grid;
  gap: 4px;
  margin: 12px 0;
  padding: 12px 14px;
  border: 1px solid rgba(232,216,170,.28);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(232,216,170,.12), rgba(145,99,255,.08));
  text-align: left;
}
.mystery-inline-notice strong,
.mystery-inline-notice small {
  display: block;
}
.mystery-player-list {
  margin-top: 12px;
  text-align: left;
}
.mystery-word-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: stretch;
}
.mystery-word-form input {
  width: 100%;
}
.admin-mystery-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px) auto;
  gap: 14px;
}
.admin-mystery-qrs {
  display: grid;
  grid-template-columns: 1fr;
  align-content: start;
  gap: 10px;
  margin-top: 0;
}
.mystery-qr-action-block {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 16px;
  background: rgba(255,255,255,.035);
}
.mystery-qr-action-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}
.mystery-qr-action-copy strong,
.mystery-qr-action-copy small {
  display: block;
}
.mystery-qr-action-copy small {
  color: rgba(255,255,255,.62);
  overflow-wrap: anywhere;
}
.mystery-qr-actions {
  min-width: 0;
  justify-content: flex-end;
}
.mystery-qr-dialog-card {
  width: min(94vw, 420px);
}
@media (max-width: 860px) {
  .admin-mystery-row {
    grid-template-columns: 1fr;
  }
  .mystery-qr-action-block {
    grid-template-columns: 1fr;
  }
  .mystery-qr-actions {
    width: 100%;
    justify-content: stretch;
  }
  .mystery-qr-actions .btn {
    flex: 1 1 130px;
  }
}
@media (max-width: 520px) {
  .mystery-word-form {
    grid-template-columns: 1fr;
  }
}

/* v278 — Imagens nos Mistérios */
.admin-mystery-image-block .master-avatar-actions,
.mystery-clue-admin-image .master-avatar-actions,
.admin-mystery-poster-block .master-avatar-actions {
  flex-wrap: wrap;
}
.mystery-admin-image-preview {
  width: min(260px, 100%);
  aspect-ratio: 4 / 5;
  border: 1px solid rgba(232,216,170,.22);
  border-radius: 18px;
  overflow: hidden;
  display: grid;
  place-items: center;
  background: rgba(255,255,255,.035);
  margin: 8px 0 10px;
}
.mystery-admin-image-preview.compact {
  width: min(180px, 100%);
}
.mystery-admin-image-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.mystery-clue-admin-image {
  grid-column: 1 / -1;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 16px;
  background: rgba(255,255,255,.025);
}
.mystery-cover-image,
.mystery-clue-image,
.mystery-notice-image {
  border: 1px solid rgba(232,216,170,.18);
  border-radius: 18px;
  overflow: hidden;
  background: rgba(255,255,255,.035);
}
.mystery-cover-image {
  margin: 8px 0 12px;
}
.mystery-cover-image img,
.mystery-clue-image img,
.mystery-notice-image img {
  width: 100%;
  display: block;
  object-fit: cover;
}
.mystery-cover-image img {
  aspect-ratio: 4 / 5;
  max-height: min(62vh, 560px);
}
.mystery-clue-image {
  margin-bottom: 10px;
}
.mystery-clue-image img {
  aspect-ratio: 4 / 5;
  max-height: 420px;
}
.mystery-notice-image {
  margin-bottom: 8px;
}
.mystery-notice-image img {
  aspect-ratio: 4 / 5;
  max-height: 360px;
}
@media (max-width: 600px) {
  .admin-mystery-image-block .master-avatar-actions,
  .mystery-clue-admin-image .master-avatar-actions,
  .admin-mystery-poster-block .master-avatar-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }
  .admin-mystery-image-block .master-avatar-actions .btn,
  .mystery-clue-admin-image .master-avatar-actions .btn,
  .admin-mystery-poster-block .master-avatar-actions .btn {
    width: 100%;
  }
}

/* v279 — Mistérios em cards e pistas sob demanda */
.mystery-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}
.mystery-summary-card {
  display: grid;
  gap: 12px;
  padding: 12px;
}
.mystery-card-cover,
.mystery-detail-cover,
.mystery-image-viewer {
  border: 1px solid rgba(232,216,170,.22);
  border-radius: 18px;
  overflow: hidden;
  background: rgba(255,255,255,.035);
}
.mystery-card-cover {
  aspect-ratio: 4 / 5;
  max-height: 320px;
}
.mystery-card-cover img,
.mystery-detail-cover img,
.mystery-image-viewer img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.mystery-card-cover.is-empty {
  display: grid;
  place-items: center;
  min-height: 180px;
  color: rgba(232,216,170,.72);
  font-size: 3rem;
  font-family: var(--font-title, Georgia, serif);
}
.mystery-summary-copy {
  display: grid;
  gap: 2px;
}
.mystery-summary-copy h3,
.mystery-detail-head h3 {
  margin: 0;
}
.mystery-summary-actions {
  display: grid;
  gap: 8px;
  margin-top: 2px;
}
.mystery-summary-actions .btn,
.mystery-poster-action,
.mystery-back-btn {
  width: 100%;
  justify-content: center;
}
.mystery-detail-view {
  display: grid;
  gap: 12px;
}
.mystery-player-detail {
  display: grid;
  gap: 14px;
}
.mystery-detail-cover {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  color: #f4e7c4;
  cursor: pointer;
  text-align: left;
  max-height: min(54vh, 520px);
}
.mystery-detail-cover img {
  aspect-ratio: 4 / 5;
  max-height: min(54vh, 520px);
}
.mystery-detail-cover span {
  position: absolute;
  right: 12px;
  bottom: 12px;
  padding: 7px 10px;
  border: 1px solid rgba(232,216,170,.34);
  border-radius: 999px;
  background: rgba(0,0,0,.62);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .04em;
}
.mystery-detail-description {
  margin: 0;
}
.mystery-clue-card-list {
  display: grid;
  gap: 10px;
}
.mystery-clue-card {
  width: 100%;
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 16px;
  background: rgba(255,255,255,.035);
  color: inherit;
  text-align: left;
}
.mystery-clue-card:not(:disabled) {
  cursor: pointer;
}
.mystery-clue-card.is-open.has-image {
  border-color: rgba(232,216,170,.34);
  background: linear-gradient(135deg, rgba(232,216,170,.10), rgba(255,255,255,.035));
}
.mystery-clue-card.is-locked {
  opacity: .58;
  filter: grayscale(.5);
}
.mystery-clue-card strong,
.mystery-clue-card small,
.mystery-clue-card em,
.mystery-clue-status {
  display: block;
}
.mystery-clue-status {
  color: rgba(232,216,170,.78);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.mystery-clue-card strong {
  font-family: var(--font-title, Georgia, serif);
  font-size: 1.02rem;
}
.mystery-clue-card small {
  color: rgba(255,255,255,.72);
  line-height: 1.35;
}
.mystery-clue-card em {
  margin-top: 4px;
  color: #f0d694;
  font-style: normal;
  font-size: .82rem;
  font-weight: 900;
}
.mystery-word-form-detail {
  margin: 0;
}
.mystery-image-dialog-card {
  width: min(520px, calc(100vw - 24px));
  max-height: min(88vh, 900px);
  overflow: auto;
}
.mystery-image-dialog-card h2 {
  margin-bottom: 12px;
  text-align: center;
}
.mystery-image-viewer {
  width: min(100%, 430px);
  margin: 0 auto 12px;
  aspect-ratio: 4 / 5;
}
@media (max-width: 560px) {
  .mystery-card-grid {
    grid-template-columns: 1fr;
  }
  .mystery-summary-card {
    padding: 12px;
  }
  .mystery-card-cover {
    max-height: 260px;
  }
  .mystery-detail-cover,
  .mystery-detail-cover img {
    max-height: 420px;
  }
}


/* v280 — Mistérios sem cores extras e imagens centralizadas */
.mystery-player-card.is-solved,
.mystery-player-card.is-active {
  border-color: rgba(255,255,255,.10);
  background: rgba(12, 8, 16, .72);
}
.mystery-inline-notice {
  border-color: rgba(255,255,255,.10);
  background: rgba(255,255,255,.035);
}
.mystery-card-cover,
.mystery-detail-cover,
.mystery-image-viewer {
  display: grid;
  place-items: center;
  margin-left: auto;
  margin-right: auto;
  background: rgba(255,255,255,.028);
}
.mystery-card-cover {
  width: min(100%, 260px);
  max-height: none;
}
.mystery-detail-cover {
  width: min(100%, 360px);
  justify-self: center;
}
.mystery-card-cover img,
.mystery-detail-cover img,
.mystery-image-viewer img {
  object-position: center center;
}
.mystery-card-cover.is-empty {
  color: rgba(255,255,255,.58);
}
.mystery-clue-card.is-open.has-image,
.mystery-clue-card.is-open {
  border-color: rgba(255,255,255,.14);
  background: rgba(255,255,255,.035);
}
.mystery-clue-status,
.mystery-clue-card em {
  color: rgba(255,255,255,.62);
}
.mystery-summary-card {
  align-items: start;
}
.mystery-summary-copy,
.mystery-summary-actions {
  width: 100%;
}
@media (max-width: 560px) {
  .mystery-card-cover,
  .mystery-detail-cover {
    width: 100%;
  }
  .mystery-card-cover {
    max-height: none;
  }
}


/* v285 — credenciais: nome de quem adquiriu */
.credential-main-info {
  min-width: 0;
}
.credential-buyer-view {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 7px;
}
.credential-buyer-view small {
  margin: 0;
}
.credential-buyer-view b {
  color: var(--text, #f4ead2);
  font-weight: 700;
}
.credential-buyer-editor {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.credential-buyer-editor input {
  min-width: min(100%, 260px);
  flex: 1 1 220px;
}
.credential-actions {
  align-self: center;
}


/* v288 — Login narrativo e discreto */
.login-card-secure h1 {
  font-size: clamp(2rem, 6.2vw, 2.65rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.045em !important;
  max-width: 10ch;
}
.login-card-secure .login-event-copy {
  font-size: 1rem;
  line-height: 1.55;
  max-width: 35ch;
}
.login-card-secure .login-event-copy strong {
  font-weight: 800;
  color: var(--text) !important;
}
.login-pin-actions,
.login-secondary-actions.login-pin-actions {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  grid-template-columns: none !important;
  margin-top: .65rem !important;
}
.login-pin-link {
  display: inline-block;
  padding: .25rem .4rem;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--muted) !important;
  font-size: .82rem;
  font-weight: 400 !important;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  opacity: .78;
}
.login-pin-link:hover,
.login-pin-link:focus-visible {
  color: var(--text) !important;
  opacity: 1;
  text-decoration: underline;
  outline: none;
}


/* v289 — Login mais harmônico e simples */
.login-card-secure {
  width: min(480px, 100%);
  padding: 36px 40px 34px;
}
.login-card-secure h1 {
  font-size: clamp(1.8rem, 5.2vw, 2.35rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.04em !important;
  max-width: none !important;
  margin-bottom: 0 !important;
  text-wrap: balance;
}
.login-card-secure .login-event-copy {
  font-size: .98rem;
  line-height: 1.58;
  max-width: none;
  margin-top: 14px;
  text-align: justify;
  text-wrap: pretty;
}
.login-card-secure .login-event-copy strong {
  font-weight: inherit;
  color: inherit !important;
}
.login-card-secure .stack {
  margin-top: 28px;
}
.login-card-secure .login-pin-actions,
.login-card-secure .login-secondary-actions.login-pin-actions {
  margin-top: .9rem !important;
}
@media (max-width: 520px) {
  .login-card-secure {
    padding: 26px 24px 28px;
  }
  .login-card-secure h1 {
    font-size: clamp(1.7rem, 8vw, 2.15rem) !important;
  }
  .login-card-secure .login-event-copy {
    font-size: .95rem;
  }
}


/* v291 — Voltar ao login como botão discreto */
.registration-card .registration-footnote {
  margin-top: .75rem;
  margin-bottom: .95rem;
}
.registration-card .login-return-btn {
  width: 100%;
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: transparent;
  color: var(--text);
  box-shadow: none;
  text-decoration: none;
  font-weight: 800;
  letter-spacing: .01em;
  margin-top: 0;
}
.registration-card .login-return-btn:hover,
.registration-card .login-return-btn:focus-visible {
  border-color: color-mix(in srgb, var(--text) 30%, var(--line));
  background: rgba(255,255,255,.035);
  outline: none;
}
.registration-card #registrationMessage:empty + .registration-footnote {
  margin-top: .65rem;
}


/* v292 — Conta do jogador e Conta Amiga */
.player-footer {
  align-items: stretch;
}
.player-footer > div:first-child {
  min-width: 0;
}
.player-footer [data-field="accountInfo"] {
  word-break: break-word;
}
.player-account-actions,
.footer-actions.player-account-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  align-items: stretch;
  min-width: min(100%, 260px);
}
.player-account-actions .btn {
  width: 100%;
  justify-content: center;
}
.player-sync-button.is-syncing {
  opacity: .82;
}
.player-sync-button.is-updated {
  opacity: .9;
}
.friend-dialog-status {
  min-height: 1.25rem;
  margin-top: .55rem;
  text-align: center;
  font-size: .9rem;
}
.friend-dialog-status.success {
  color: var(--accent-strong);
}
.friend-dialog-status.error {
  color: #ff9b9b;
}
@media (max-width: 760px) {
  .player-footer {
    display: grid;
    grid-template-columns: 1fr;
  }
  .player-account-actions,
  .footer-actions.player-account-actions {
    min-width: 0;
  }
}


/* v295 — PWA com logo e login sem piscada */
body.login-checking .login-card-secure {
  opacity: 0;
  pointer-events: none;
}
body.login-checking {
  background: #000;
}


/* v297 — PWA: splash com logo por tema e instalação revisada */
.app-splash {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  background: #0b0b0f;
  opacity: 1;
  visibility: visible;
  transition: opacity .72s ease, visibility .72s ease;
}
.app-splash picture,
.app-splash img {
  display: block;
}
.app-splash img {
  width: min(86vw, 430px);
  max-height: min(44vh, 360px);
  height: auto;
  object-fit: contain;
}
body.app-splash-done .app-splash {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
@media (prefers-color-scheme: light) {
  .app-splash {
    background: #f5f2ea;
  }
}
.pwa-install-button.hidden,
.pwa-install-button[hidden] {
  display: none !important;
}
.login-card-secure .pwa-install-button {
  width: 100%;
  margin-top: .35rem;
}
.top-pwa-install {
  white-space: nowrap;
}


/* v298 — jogador mais próximo do topo e Conta Amiga sem glow */
body.player-view-compact-top .topbar,
body:has(.player-shell) .topbar {
  display: none !important;
}
body.player-view-compact-top .container,
body:has(.player-shell) .container {
  padding-top: 6px !important;
}
body.player-view-compact-top .player-shell,
body:has(.player-shell) .player-shell {
  gap: 8px !important;
}
body.player-view-compact-top .player-hero:first-of-type,
body:has(.friend-account-switcher.hidden) .player-hero {
  margin-top: 0 !important;
}
.friend-account-switcher:not(.hidden) {
  margin-top: 0 !important;
  margin-bottom: 4px !important;
}
.friend-account-story.active {
  filter: none !important;
}
.friend-account-story.active .friend-account-story-ring {
  box-shadow: none !important;
  filter: none !important;
}
.friend-account-story.active .health-ring-svg,
.friend-account-story.active .health-ring-track,
.friend-account-story.active .health-ring-life {
  filter: none !important;
}
@media (max-width: 560px) {
  body.player-view-compact-top .container,
  body:has(.player-shell) .container {
    padding-top: 4px !important;
  }
  .friend-account-switcher:not(.hidden) {
    margin-top: 0 !important;
    margin-bottom: 3px !important;
  }
}


/* v299 — Mistérios quadrados e respeitando tema */
.player-mysteries-panel .muted {
  text-wrap: pretty;
}
.mystery-player-card,
.mystery-player-card.is-solved,
.mystery-player-card.is-active {
  background: color-mix(in srgb, var(--surface) 94%, transparent) !important;
  color: var(--text) !important;
  border-color: var(--line) !important;
  box-shadow: none !important;
}
.mystery-clue-row,
.mystery-clue-card,
.mystery-clue-card.is-open,
.mystery-clue-card.is-open.has-image,
.mystery-qr-action-block,
.mystery-clue-admin-image,
.mystery-inline-notice {
  background: color-mix(in srgb, var(--surface-strong) 86%, transparent) !important;
  color: var(--text) !important;
  border-color: var(--line) !important;
  box-shadow: none !important;
}
.mystery-clue-card small,
.mystery-qr-action-copy small,
.mystery-clue-status,
.mystery-clue-card em {
  color: var(--muted) !important;
}
.mystery-card-cover,
.mystery-detail-cover,
.mystery-image-viewer,
.mystery-cover-image,
.mystery-clue-image,
.mystery-notice-image {
  aspect-ratio: 1 / 1 !important;
  background: color-mix(in srgb, var(--surface-strong) 88%, transparent) !important;
  border-color: var(--line) !important;
}
.mystery-card-cover {
  width: min(100%, 260px);
}
.mystery-detail-cover {
  width: min(100%, 360px);
  max-height: none !important;
}
.mystery-image-viewer {
  width: min(100%, 430px);
}
.mystery-card-cover img,
.mystery-detail-cover img,
.mystery-image-viewer img,
.mystery-cover-image img,
.mystery-clue-image img,
.mystery-notice-image img {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 1 / 1 !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center !important;
}
.mystery-card-cover.is-empty {
  color: var(--muted) !important;
}
#adminMysteryCoverPreview,
#adminMysteryClue1Preview,
#adminMysteryClue2Preview,
#adminMysteryClue3Preview {
  aspect-ratio: 1 / 1 !important;
}
#adminMysteryPosterPreview {
  aspect-ratio: 4 / 5 !important;
}
@media (max-width: 560px) {
  .mystery-card-cover,
  .mystery-detail-cover,
  .mystery-image-viewer {
    width: 100%;
  }
}


/* v300 — NPC: QR oculto e no padrão atual */
.npc-self-qr-card {
  display: grid;
  gap: 0.85rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--surface);
  text-align: center;
}
.npc-self-qr-card > strong {
  font-size: 1rem;
}
.npc-self-qr-toggle {
  width: 100%;
}
.npc-self-qr-content {
  display: grid;
  justify-items: center;
  gap: .35rem;
}
.npc-self-qr-display,
.npc-qr-display {
  margin-left: auto;
  margin-right: auto;
}
.admin-npc-row .admin-user-actions {
  align-content: center;
}


/* v303 — Poster de Mistério sem moldura cinza */
.player-mystery-poster-canvas {
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}


/* v304 — Mistérios sem moldura nas imagens e poster com leitura melhor */
.mystery-card-cover,
.mystery-detail-cover,
.mystery-image-viewer,
.mystery-cover-image,
.mystery-clue-image,
.mystery-notice-image {
  background: transparent !important;
  border: 0 !important;
  border-color: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.mystery-card-cover img,
.mystery-detail-cover img,
.mystery-image-viewer img,
.mystery-cover-image img,
.mystery-clue-image img,
.mystery-notice-image img {
  border-radius: 0 !important;
  box-shadow: none !important;
}
.player-mystery-poster-canvas {
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}


/* v305 — Editor de imagens dos Mistérios sem moldura gravada e poster com info centralizada */
#avatarCanvas.is-square-crop,
#avatarCanvas.is-poster-crop {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.player-mystery-poster-canvas {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* v311 — Flâmulas em card próprio e Mistérios no padrão de conquistas */
.player-flamulas-panel .btn {
  width: 100%;
  justify-content: center;
}
.flamula-victory-card.is-active {
  cursor: pointer;
  border-color: rgba(145, 99, 255, .42);
  opacity: .95;
}
.flamula-victory-card.is-active .flamula-victory-thumb {
  filter: none;
}
.mystery-victory-grid {
  text-align: left;
}
.mystery-victory-card.is-locked {
  cursor: pointer;
}
.mystery-victory-card.is-active .flamula-victory-seal {
  color: #efe2b4;
}
.mystery-victory-thumb {
  background-position: center;
}


/* v312 - convite de grupo com moldura dourada e ações centralizadas */
.invite-card.invite-card--group {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 18px;
  border: 1px solid color-mix(in srgb, var(--accent) 72%, var(--line)) !important;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 16%, transparent);
}

.invite-card--group .invite-card-content {
  text-align: left;
}

.invite-card--group .invite-card-content strong {
  display: block;
  color: color-mix(in srgb, var(--accent) 72%, white);
  font-size: 1.05rem;
  margin-bottom: 4px;
}

.invite-card--group .invite-card-content small {
  color: color-mix(in srgb, var(--text-muted) 88%, white);
}

.invite-card--group .invite-card-actions {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  flex-wrap: nowrap;
}

.invite-card--group .invite-card-actions .btn {
  min-width: 124px;
}

@media (max-width: 760px) {
  .invite-card.invite-card--group {
    align-items: stretch;
  }

  .invite-card--group .invite-card-actions {
    justify-content: center;
    flex-direction: row;
  }
}


/* v314 - integrantes do grupo com ficha essencial mantendo avatar grande */
.group-member-row.item-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  padding: 11px 12px !important;
}

.group-member-row .person-line {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  width: 100%;
  min-width: 0;
}

.group-member-main {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.group-member-title {
  display: flex;
  align-items: baseline;
  gap: 7px;
  min-width: 0;
}

.group-member-title strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.group-member-title small {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.1;
}

.group-member-detail {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
  min-width: 0;
}

.group-member-detail span,
.group-member-detail b {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 2px 7px;
  font-size: .73rem;
  line-height: 1.15;
  white-space: nowrap;
  color: var(--muted);
  background: transparent;
}

.group-member-detail b {
  font-weight: 800;
  color: var(--text);
}

.group-member-class {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (min-width: 560px) {
  .group-member-row.item-row {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 420px) {
  .group-member-title {
    display: grid;
    gap: 2px;
  }

  .group-member-title small {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .group-member-detail span,
  .group-member-detail b {
    font-size: .7rem;
    padding-inline: 6px;
  }
}


/* v315 - efeitos do Guardião e cores de saúde da Metaforma */
.player-state.status-viva {
  color: var(--success) !important;
}

.player-state.status-ferida {
  color: #df9a3c !important;
}

.player-state.status-grave,
.player-state.status-morta {
  color: var(--danger) !important;
}

.player-state.status-combate {
  color: color-mix(in srgb, var(--accent) 82%, white) !important;
}

/* v319 — Guia da Metaforma em acordeão */
.player-guide-card {
  max-height: min(86vh, 880px);
  overflow: auto;
}

.guide-intro {
  margin: 10px 0 14px;
  padding: 14px 16px;
  border: 1px solid color-mix(in srgb, var(--accent) 44%, var(--line));
  border-radius: 18px;
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--accent) 13%, var(--surface-strong)),
    color-mix(in srgb, var(--surface) 94%, transparent));
}

.guide-intro p {
  margin: 0;
  color: var(--text);
  line-height: 1.5;
}

.guide-accordion .guide-card {
  padding: 0;
  overflow: hidden;
}

.guide-accordion .guide-card summary {
  list-style: none;
  cursor: pointer;
  padding: 14px 16px;
  display: grid;
  gap: 4px;
  position: relative;
}

.guide-accordion .guide-card summary::-webkit-details-marker {
  display: none;
}

.guide-accordion .guide-card summary::after {
  content: "⌄";
  position: absolute;
  right: 16px;
  top: 16px;
  color: var(--accent-strong);
  font-size: 1rem;
  transition: transform .18s ease;
}

.guide-accordion .guide-card[open] summary::after {
  transform: rotate(180deg);
}

.guide-accordion .guide-card summary span {
  padding-right: 28px;
  font-family: "Cinzel", Georgia, serif;
  font-weight: 700;
  color: var(--text);
}

.guide-accordion .guide-card summary small {
  padding-right: 28px;
  color: var(--muted);
  line-height: 1.35;
}

.guide-card-content {
  padding: 0 16px 16px;
  color: var(--muted);
  line-height: 1.55;
}

.guide-card-content p {
  margin: 0 0 10px;
}

.guide-card-content p:last-child {
  margin-bottom: 0;
}

.guide-card-content ul {
  margin: 0 0 10px;
  padding-left: 1.1rem;
  display: grid;
  gap: 6px;
}

.guide-card-content h3 {
  margin: 14px 0 6px;
  font-size: .95rem;
  color: color-mix(in srgb, var(--accent) 82%, var(--text));
  font-family: "Cinzel", Georgia, serif;
}

.guide-card-content strong {
  color: var(--text);
}

/* v320 - imagem cadastrável para Itens */
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.admin-item-image-field {
  display: grid;
  gap: 10px;
}

.admin-item-image-field > span {
  font-size: .82rem;
  color: var(--text-muted);
}

.admin-item-image-preview {
  width: min(100%, 240px);
  aspect-ratio: 4 / 5;
  border: 1px dashed color-mix(in srgb, var(--accent) 52%, var(--line));
  border-radius: 18px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: color-mix(in srgb, var(--surface-strong) 88%, transparent);
  color: var(--text-muted);
}

.admin-item-image-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.admin-item-type-row {
  align-items: center;
}

.admin-item-type-thumb {
  flex: 0 0 54px;
  width: 54px;
  height: 68px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--accent) 48%, var(--line));
  background-size: cover;
  background-position: center;
  box-shadow: 0 8px 22px rgba(0,0,0,.24);
}

.admin-item-type-thumb-empty {
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--surface-strong) 90%, transparent);
  color: color-mix(in srgb, var(--accent) 72%, white);
}

.inventory-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.player-item-image-preview img {
  max-width: 100%;
  width: auto;
  max-height: min(72vh, 760px);
  border-radius: 18px;
  box-shadow: 0 18px 50px rgba(0,0,0,.42);
  display: block;
  margin: 0 auto;
}

.player-item-image-card {
  max-width: min(94vw, 760px);
}

/* v321 - Artefato equipado com ações alinhadas pela regra Jones */
.inventory-card-actions {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: stretch;
  gap: 10px;
  width: 100%;
  margin-top: 12px;
}

.inventory-card-actions .btn {
  flex: 1 1 0;
  min-width: 0;
  justify-content: center;
  text-align: center;
}

.player-item-artifact-canvas {
  max-width: 100%;
  height: auto;
  max-height: min(78vh, 820px);
  border-radius: 18px;
  box-shadow: 0 18px 50px rgba(0,0,0,.42);
  display: block;
  margin: 0 auto;
}


/* v322 - ações do Artefato com largura equilibrada */
.inventory-card-actions {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  justify-content: center !important;
  align-items: stretch !important;
  gap: 10px !important;
  width: 100% !important;
}

.inventory-card-actions .btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 1 1 0 !important;
  width: 100% !important;
  min-width: 0 !important;
  text-align: center !important;
  white-space: nowrap;
}


/* v323 - Forja dos Monstros */
.player-monster-forge-panel .btn {
  width: 100%;
}
.monster-forge-card.is-seen {
  border-color: color-mix(in srgb, var(--accent) 36%, var(--line));
}
.monster-forge-card.is-seen .flamula-victory-seal {
  background: color-mix(in srgb, var(--surface-strong) 76%, var(--accent) 10%);
}
.monster-forge-thumb {
  background-position: center;
  background-size: cover;
}
.player-monster-forge-dialog-card h2,
.player-monster-forge-poster-card h2 {
  letter-spacing: -.02em;
}

/* v335 - Marca do Avistamento */
.environment-effect-pill.avistamento-effect-pill {
  border: 1px solid color-mix(in srgb, #58c879 70%, var(--line)) !important;
  box-shadow: 0 0 0 1px color-mix(in srgb, #58c879 18%, transparent), 0 0 18px color-mix(in srgb, #58c879 16%, transparent);
  background: color-mix(in srgb, #58c879 11%, var(--surface)) !important;
}
.environment-effect-pill.avistamento-effect-pill.is-negative {
  border-color: color-mix(in srgb, #c84f58 74%, var(--line)) !important;
  box-shadow: 0 0 0 1px color-mix(in srgb, #c84f58 20%, transparent), 0 0 18px color-mix(in srgb, #c84f58 18%, transparent);
  background: color-mix(in srgb, #c84f58 11%, var(--surface)) !important;
}
.environment-effect-pill.avistamento-effect-pill.is-positive strong {
  color: color-mix(in srgb, #58c879 78%, var(--text));
}
.environment-effect-pill.avistamento-effect-pill.is-negative strong {
  color: color-mix(in srgb, #ff7c86 78%, var(--text));
}
.admin-avistamento-row .row {
  justify-content: flex-end;
}

/* v362 — Diagnóstico geral compacto */
.diagnostic-summary-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: color-mix(in srgb, var(--surface-strong) 72%, transparent);
  font-size: .88rem;
}

.diagnostic-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}

.diagnostic-filter.active {
  border-color: color-mix(in srgb, var(--accent) 70%, var(--line));
  background: color-mix(in srgb, var(--accent) 14%, transparent);
}

.diagnostic-terminal {
  display: grid;
  gap: 6px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: .8rem;
}

.diagnostic-line {
  display: grid;
  grid-template-columns: 86px minmax(128px, 180px) minmax(150px, 230px) 1fr;
  gap: 10px;
  align-items: baseline;
  padding: 8px 10px;
  border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
  border-radius: 10px;
  background: color-mix(in srgb, var(--surface) 84%, transparent);
}

.diagnostic-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 72px;
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid currentColor;
  font-weight: 800;
  letter-spacing: .01em;
  line-height: 1.2;
}

.diagnostic-status-ok {
  color: #58c879;
  background: color-mix(in srgb, #58c879 10%, transparent);
}

.diagnostic-status-falha {
  color: #ff6b75;
  background: color-mix(in srgb, #ff6b75 10%, transparent);
}

.diagnostic-status-atencao {
  color: #e0b84f;
  background: color-mix(in srgb, #e0b84f 12%, transparent);
}

.diagnostic-area {
  color: var(--muted);
  font-weight: 800;
}

.diagnostic-title {
  color: var(--text);
  font-weight: 800;
}

.diagnostic-detail {
  color: var(--muted);
  line-height: 1.35;
}

@media (max-width: 760px) {
  .diagnostic-line {
    grid-template-columns: 80px 1fr;
    gap: 6px 10px;
  }
  .diagnostic-detail {
    grid-column: 1 / -1;
  }
}

.forum-dialog-input-label {
  display: grid;
  gap: 8px;
  margin: 14px 0 4px;
  text-align: left;
}

.forum-dialog-input {
  width: 100%;
}


#adminAmbienteBencaoFields[hidden],
#adminAmbienteBencaoFields[data-admin-bencao-fields-hidden="1"] {
  display: none !important;
}

.forum-class-change-input {
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 900;
}

.forum-dialog-input.is-invalid {
  border-color: var(--danger) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 18%, transparent);
}

.forum-dialog-error {
  margin: 4px 0 12px;
  color: var(--danger);
  font-weight: 800;
  font-size: .9rem;
}


/* v367 — Card fino para alternância de Contas Amigas */
.friend-account-switcher {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 15px 18px 8px !important;
  margin: 0 0 6px !important;
  min-height: 64px !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
}
.friend-account-switcher::-webkit-scrollbar {
  display: none !important;
}
.friend-account-switcher.hidden {
  display: none !important;
}
.friend-account-switcher-label {
  position: absolute;
  left: 18px;
  top: 7px;
  margin: 0 !important;
  color: var(--muted);
  font-family: Inter, system-ui, sans-serif !important;
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  line-height: 1;
  text-transform: uppercase;
  pointer-events: none;
}
.friend-account-stories {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 43px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.28rem !important;
  padding: 5px 0 0 !important;
  margin: 0 auto !important;
  overflow: visible !important;
}
.friend-account-story {
  flex: 0 0 auto !important;
  width: 40px !important;
  height: 40px !important;
  padding: 1px !important;
  display: inline-grid !important;
  place-items: center !important;
}
.friend-account-story-ring {
  --hp-size: 36px !important;
  --hp-ring-stroke-width: 8 !important;
  --hp-ring-stroke-width-active: 9.4 !important;
}
.friend-account-story-ring > .avatar,
.friend-account-story-ring > .avatar-placeholder,
.friend-account-story-ring > img.avatar {
  border-width: 1px !important;
  font-size: 0.9rem !important;
}
.friend-account-story.active {
  width: 46px !important;
  height: 46px !important;
  z-index: 2 !important;
}
.friend-account-story.active .friend-account-story-ring {
  --hp-size: 42px !important;
  --hp-ring-stroke-width: 9.3 !important;
  --hp-ring-stroke-width-active: 10.8 !important;
  box-shadow: none !important;
  filter: none !important;
}
.player-shell:has(.friend-account-switcher:not(.hidden)) {
  gap: 8px !important;
}
.friend-account-switcher:not(.hidden) + .player-hero {
  margin-top: 0 !important;
}
@media (max-width: 560px) {
  .friend-account-switcher {
    padding: 14px 14px 7px !important;
    min-height: 60px !important;
    margin-bottom: 5px !important;
  }
  .friend-account-switcher-label {
    left: 14px;
    top: 6px;
    font-size: 0.6rem;
  }
  .friend-account-stories {
    min-height: 40px !important;
    gap: 0.22rem !important;
    padding-top: 4px !important;
  }
  .friend-account-story {
    width: 38px !important;
    height: 38px !important;
  }
  .friend-account-story-ring {
    --hp-size: 34px !important;
    --hp-ring-stroke-width: 7.6 !important;
    --hp-ring-stroke-width-active: 9 !important;
  }
  .friend-account-story.active {
    width: 43px !important;
    height: 43px !important;
  }
  .friend-account-story.active .friend-account-story-ring {
    --hp-size: 39px !important;
    --hp-ring-stroke-width: 8.8 !important;
    --hp-ring-stroke-width-active: 10.2 !important;
  }
}

/* v375 — card flutuante sem moldura central e toast mais próximo */
body.player-combat-quickbar-active {
  padding-bottom: calc(132px + env(safe-area-inset-bottom, 0px));
}

.player-combat-quickbar {
  position: fixed;
  left: 50%;
  bottom: max(12px, calc(env(safe-area-inset-bottom, 0px) + 10px));
  transform: translateX(-50%);
  z-index: 48;
  width: min(calc(100vw - 36px), 1180px);
  min-height: 78px;
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 11px 13px;
  border: 1px solid color-mix(in srgb, var(--accent) 24%, var(--line));
  border-radius: 24px;
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--surface-strong) 94%, rgba(0,0,0,.22)),
      color-mix(in srgb, var(--surface) 92%, rgba(0,0,0,.30))
    );
  box-shadow: 0 18px 48px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.045);
  backdrop-filter: blur(18px);
  --quickbar-effect-glow: color-mix(in srgb, var(--accent) 22%, transparent);
}

.player-combat-quickbar.has-quickbar-flame {
  border-color: color-mix(in srgb, #ff7a3d 70%, var(--line));
  box-shadow: 0 18px 48px rgba(0,0,0,.30), 0 0 0 1px rgba(255,122,61,.12), 0 0 22px rgba(255,122,61,.16), inset 0 1px 0 rgba(255,255,255,.045);
}

.player-combat-quickbar.has-quickbar-bind {
  border-color: color-mix(in srgb, #a78bfa 68%, var(--line));
  box-shadow: 0 18px 48px rgba(0,0,0,.30), 0 0 0 1px rgba(167,139,250,.12), 0 0 22px rgba(167,139,250,.14), inset 0 1px 0 rgba(255,255,255,.045);
}

.player-combat-quickbar.has-quickbar-poison {
  border-color: color-mix(in srgb, #9cff72 62%, var(--line));
  box-shadow: 0 18px 48px rgba(0,0,0,.30), 0 0 0 1px rgba(156,255,114,.10), 0 0 22px rgba(156,255,114,.12), inset 0 1px 0 rgba(255,255,255,.045);
}

.player-combat-quickbar-vit {
  min-width: 0;
  display: grid;
  place-items: center;
}

.player-combat-quickbar-vit-ring {
  position: relative;
  width: 56px;
  height: 56px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  color: var(--quickbar-hp-color, var(--accent));
  background:
    conic-gradient(var(--quickbar-hp-color, var(--accent)) var(--quickbar-hp-deg, 360deg), color-mix(in srgb, var(--line) 62%, transparent) 0);
  box-shadow: 0 0 18px color-mix(in srgb, var(--quickbar-hp-color, var(--accent)) 20%, transparent);
}

.player-combat-quickbar-vit-ring::after {
  content: "";
  position: absolute;
  inset: 5px;
  border-radius: inherit;
  background: color-mix(in srgb, var(--surface-strong) 92%, rgba(0,0,0,.34));
  border: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
  z-index: 0;
}

.player-combat-quickbar-vit-ring.has-pulse::before {
  content: "";
  position: absolute;
  inset: -5px;
  border-radius: inherit;
  border: 2px solid rgba(116,255,189,.82);
  box-shadow: 0 0 0 1px rgba(116,255,189,.16), 0 0 16px rgba(116,255,189,.28);
  z-index: -1;
}

.player-combat-quickbar-vit-ring strong {
  position: relative;
  z-index: 1;
  font-family: "Cinzel", Georgia, serif;
  font-size: clamp(1.65rem, 6.2vw, 2.22rem);
  font-weight: 900;
  line-height: .92;
  text-shadow: 0 0 14px color-mix(in srgb, var(--quickbar-hp-color, var(--accent)) 28%, transparent);
}

.player-combat-quickbar-pulse-count {
  position: absolute;
  z-index: 2;
  right: 4px;
  bottom: 3px;
  min-width: 18px;
  min-height: 16px;
  padding: 1px 4px;
  border-radius: 999px;
  color: #0b2b1b;
  background: rgba(116,255,189,.92);
  box-shadow: 0 0 10px rgba(116,255,189,.32);
  font-family: "Cinzel", Georgia, serif;
  font-size: .60rem;
  font-style: normal;
  font-weight: 900;
  line-height: 1.15;
  text-align: center;
}

.player-combat-quickbar-turn {
  min-width: 0;
  width: 100%;
  min-height: 52px;
  padding: 0 4px;
  border: 0;
  border-radius: 0;
  color: var(--text);
  background: transparent;
  box-shadow: none;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 3px;
  cursor: pointer;
}

.player-combat-quickbar-turn span {
  color: var(--muted);
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .14em;
  line-height: 1;
  text-transform: uppercase;
}

.player-combat-quickbar-turn strong {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: "Cinzel", Georgia, serif;
  font-size: .98rem;
  line-height: 1.04;
}

.player-combat-quickbar-turn:focus-visible,
.player-combat-quickbar-btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 72%, white);
  outline-offset: 3px;
}

.player-combat-quickbar-timer {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 18px;
  min-width: 0;
  padding: 0;
  border-radius: 0;
  border: 0;
  background: transparent;
}

.player-combat-quickbar-timer strong {
  font-family: "Cinzel", Georgia, serif;
  font-size: .80rem;
  font-weight: 900;
  line-height: 1;
}

.player-combat-quickbar-timer.is-muted {
  opacity: .64;
}

.player-combat-quickbar-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
}

.player-combat-quickbar-action {
  display: inline-grid;
  justify-items: center;
  align-items: center;
  gap: 4px;
  min-width: 48px;
}

.player-combat-quickbar-action small {
  color: var(--muted);
  font-size: .56rem;
  font-weight: 900;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
}

.player-combat-quickbar-btn {
  width: 46px;
  height: 46px;
  min-width: 46px;
  min-height: 46px;
  padding: 0;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--accent) 34%, var(--line));
  background: color-mix(in srgb, var(--surface-strong) 74%, transparent);
  color: var(--text);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
  font-family: "Cinzel", Georgia, serif;
  font-size: 1.18rem;
  line-height: 1;
}

.player-combat-quickbar-btn:not(:disabled):active {
  transform: translateY(1px) scale(.98);
}

.player-combat-quickbar-attack {
  background: color-mix(in srgb, var(--accent) 78%, var(--surface-strong));
  color: #1f1710;
  border-color: color-mix(in srgb, var(--accent) 76%, var(--line));
}

.player-combat-quickbar-crit {
  color: color-mix(in srgb, var(--accent) 92%, var(--text));
}

.player-combat-quickbar-crit.is-active {
  border-color: rgba(255,76,76,.92);
  background: color-mix(in srgb, #ff4c4c 10%, var(--surface-strong));
  color: color-mix(in srgb, var(--accent) 82%, var(--text));
  box-shadow: 0 0 0 1px rgba(255,76,76,.28), 0 0 18px rgba(255,76,76,.16);
}

.player-combat-quickbar-roll {
  border-color: color-mix(in srgb, #ff7a3d 58%, var(--line));
  color: color-mix(in srgb, #ffb071 72%, var(--text));
  background: color-mix(in srgb, #ff7a3d 12%, var(--surface-strong));
}

.player-combat-quickbar-btn:disabled {
  cursor: not-allowed;
  opacity: .42;
  filter: grayscale(.18);
}

@media (max-width: 520px) {
  body.player-combat-quickbar-active {
    padding-bottom: calc(124px + env(safe-area-inset-bottom, 0px));
  }

  body.player-combat-quickbar-active .forum-toast-stack {
    bottom: calc(116px + env(safe-area-inset-bottom, 0px));
  }

  .player-combat-quickbar {
    width: min(calc(100vw - 22px), 1180px);
    min-height: 74px;
    grid-template-columns: 60px minmax(0, 1fr) auto;
    gap: 8px;
    padding: 10px 9px;
    border-radius: 22px;
  }

  .player-combat-quickbar-vit-ring {
    width: 50px;
    height: 50px;
  }

  .player-combat-quickbar-vit-ring strong {
    font-size: 1.66rem;
  }

  .player-combat-quickbar-turn {
    min-height: 48px;
    padding-inline: 2px;
  }

  .player-combat-quickbar-turn strong {
    font-size: .82rem;
  }

  .player-combat-quickbar-timer strong {
    font-size: .72rem;
  }

  .player-combat-quickbar-actions {
    gap: 6px;
  }

  .player-combat-quickbar-action {
    min-width: 42px;
  }

  .player-combat-quickbar-action small {
    font-size: .50rem;
    letter-spacing: .04em;
  }

  .player-combat-quickbar-btn {
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
    font-size: 1.04rem;
  }
}

@media (max-width: 390px) {
  .player-combat-quickbar {
    grid-template-columns: 56px minmax(0, 1fr) auto;
    gap: 6px;
  }

  .player-combat-quickbar-actions {
    gap: 4px;
  }

  .player-combat-quickbar-action {
    min-width: 38px;
  }

  .player-combat-quickbar-btn {
    width: 37px;
    height: 37px;
    min-width: 37px;
    min-height: 37px;
  }

  .player-combat-quickbar-action small {
    font-size: .47rem;
  }
}


/* v375 — remove a moldura do bloco central e aproxima o toast do card de combate */
.player-combat-quickbar .player-combat-quickbar-turn,
.player-combat-quickbar .player-combat-quickbar-turn:hover,
.player-combat-quickbar .player-combat-quickbar-turn:active,
.player-combat-quickbar .player-combat-quickbar-turn:focus {
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

.player-combat-quickbar .player-combat-quickbar-turn:hover,
.player-combat-quickbar .player-combat-quickbar-turn:active {
  color: var(--text) !important;
  transform: none !important;
}

.player-combat-quickbar .player-combat-quickbar-turn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent) 72%, white) !important;
  outline-offset: 3px !important;
}

body.player-combat-quickbar-active .forum-toast-stack {
  bottom: calc(100px + env(safe-area-inset-bottom, 0px)) !important;
}

@media (max-width: 520px) {
  body.player-combat-quickbar-active .forum-toast-stack {
    bottom: calc(92px + env(safe-area-inset-bottom, 0px)) !important;
  }
}


/* v379 — tarja inferior de combate, Pulso azul e toast de ataque recebido lateral */
body.player-combat-quickbar-active {
  padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px)) !important;
}

.player-combat-quickbar {
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  transform: none !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 78px !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 10px max(13px, calc((100vw - 1180px) / 2 + 13px)) calc(10px + env(safe-area-inset-bottom, 0px)) max(13px, calc((100vw - 1180px) / 2 + 13px)) !important;
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--surface-strong) 96%, rgba(0,0,0,.22)),
      color-mix(in srgb, var(--surface) 94%, rgba(0,0,0,.34))
    ) !important;
  box-shadow: 0 -16px 44px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.06) !important;
  backdrop-filter: blur(18px) !important;
}

.player-combat-quickbar.has-quickbar-flame {
  border: 0 !important;
  box-shadow: 0 -16px 44px rgba(0,0,0,.34), inset 0 3px 0 rgba(255,122,61,.72), 0 -8px 26px rgba(255,122,61,.10) !important;
}

.player-combat-quickbar.has-quickbar-bind {
  border: 0 !important;
  box-shadow: 0 -16px 44px rgba(0,0,0,.34), inset 0 3px 0 rgba(167,139,250,.72), 0 -8px 26px rgba(167,139,250,.10) !important;
}

.player-combat-quickbar.has-quickbar-poison {
  border: 0 !important;
  box-shadow: 0 -16px 44px rgba(0,0,0,.34), inset 0 3px 0 rgba(156,255,114,.62), 0 -8px 26px rgba(156,255,114,.08) !important;
}

.player-combat-quickbar-vit-ring.has-pulse::before {
  border-color: rgba(88,166,255,.92) !important;
  box-shadow: 0 0 0 1px rgba(88,166,255,.18), 0 0 18px rgba(88,166,255,.34) !important;
}

.player-combat-quickbar-pulse-count {
  color: #07182e !important;
  background: rgba(88,166,255,.94) !important;
  box-shadow: 0 0 12px rgba(88,166,255,.36) !important;
}

body.player-combat-quickbar-active .forum-toast-stack {
  bottom: calc(88px + env(safe-area-inset-bottom, 0px)) !important;
}

.forum-toast {
  transition: opacity .20s ease, transform .20s ease !important;
}

.forum-toast.forum-toast-incoming-attack {
  border-color: rgba(255,89,89,.82) !important;
  box-shadow: 0 16px 44px rgba(0,0,0,.36), 0 0 0 1px rgba(255,89,89,.10), 0 0 24px rgba(255,89,89,.14) !important;
  background: color-mix(in srgb, var(--surface-strong) 92%, rgba(90, 8, 8, .38)) !important;
  transform: translateX(34px) !important;
}

.forum-toast.forum-toast-incoming-attack.visible {
  transform: translateX(0) !important;
}

.forum-toast.forum-toast-incoming-attack .forum-toast-avatar {
  border-color: rgba(255,89,89,.44) !important;
}

@media (max-width: 520px) {
  body.player-combat-quickbar-active {
    padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .player-combat-quickbar {
    min-height: 72px !important;
    width: 100% !important;
    grid-template-columns: 58px minmax(0, 1fr) auto !important;
    padding: 9px 10px calc(9px + env(safe-area-inset-bottom, 0px)) 10px !important;
    border-radius: 0 !important;
  }
  body.player-combat-quickbar-active .forum-toast-stack {
    bottom: calc(80px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (max-width: 390px) {
  .player-combat-quickbar {
    grid-template-columns: 54px minmax(0, 1fr) auto !important;
    gap: 5px !important;
  }
}

/* v380 — rótulo de vitalidade e efeitos ativos dentro da tarja de combate */
body.player-combat-quickbar-active {
  padding-bottom: calc(126px + env(safe-area-inset-bottom, 0px)) !important;
}

.player-combat-quickbar {
  min-height: 104px !important;
  grid-template-columns: 72px minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 12px !important;
  padding-top: 12px !important;
  padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px)) !important;
}

.player-combat-quickbar-vit {
  align-content: center !important;
  gap: 5px !important;
}

.player-combat-quickbar-vit > small {
  color: var(--muted);
  font-size: .55rem;
  font-weight: 900;
  letter-spacing: .07em;
  line-height: 1;
  text-transform: uppercase;
}

.player-combat-quickbar-turn {
  min-height: 78px !important;
  gap: 4px !important;
  align-content: center !important;
}

.player-combat-quickbar-effects {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  max-width: 100%;
  min-height: 20px;
  margin-top: 1px;
}

.player-combat-quickbar-effects.is-empty {
  min-height: 0;
  margin-top: 0;
}

.player-combat-quickbar-effect-chip {
  padding: 3px 7px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  max-width: 100%;
  white-space: nowrap;
}

.player-combat-quickbar-effect-chip strong {
  font-size: .50rem !important;
  letter-spacing: .055em !important;
  line-height: 1 !important;
}

body.player-combat-quickbar-active .forum-toast-stack {
  bottom: calc(118px + env(safe-area-inset-bottom, 0px)) !important;
}

@media (max-width: 520px) {
  body.player-combat-quickbar-active {
    padding-bottom: calc(116px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .player-combat-quickbar {
    min-height: 98px !important;
    grid-template-columns: 58px minmax(0, 1fr) auto !important;
    gap: 8px !important;
    padding-top: 10px !important;
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .player-combat-quickbar-vit {
    gap: 4px !important;
  }

  .player-combat-quickbar-vit > small {
    font-size: .48rem;
    letter-spacing: .045em;
  }

  .player-combat-quickbar-turn {
    min-height: 72px !important;
    gap: 3px !important;
  }

  .player-combat-quickbar-effects {
    gap: 3px;
    min-height: 17px;
  }

  .player-combat-quickbar-effect-chip {
    padding: 3px 5px !important;
  }

  .player-combat-quickbar-effect-chip strong {
    font-size: .45rem !important;
    letter-spacing: .035em !important;
  }

  body.player-combat-quickbar-active .forum-toast-stack {
    bottom: calc(108px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (max-width: 390px) {
  body.player-combat-quickbar-active {
    padding-bottom: calc(112px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .player-combat-quickbar {
    grid-template-columns: 54px minmax(0, 1fr) auto !important;
    min-height: 96px !important;
    gap: 5px !important;
  }

  .player-combat-quickbar-effects {
    gap: 2px;
  }

  .player-combat-quickbar-effect-chip {
    padding: 2px 4px !important;
  }

  .player-combat-quickbar-effect-chip strong {
    font-size: .40rem !important;
  }

  body.player-combat-quickbar-active .forum-toast-stack {
    bottom: calc(104px + env(safe-area-inset-bottom, 0px)) !important;
  }
}


/* v381 — efeitos detalhados na tarja e altura reservada sem pulo visual */
body.player-combat-quickbar-active {
  padding-bottom: calc(152px + env(safe-area-inset-bottom, 0px)) !important;
}

.player-combat-quickbar {
  min-height: 126px !important;
  grid-template-columns: 74px minmax(0, 1fr) auto !important;
  padding-top: 13px !important;
  padding-bottom: calc(13px + env(safe-area-inset-bottom, 0px)) !important;
}

.player-combat-quickbar-turn {
  min-height: 98px !important;
  gap: 5px !important;
}

.player-combat-quickbar-effects,
.player-combat-quickbar-effects.is-empty {
  width: 100%;
  min-height: 26px !important;
  max-height: 30px;
  margin-top: 2px !important;
  display: flex !important;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap !important;
  gap: 5px;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.player-combat-quickbar-effects::-webkit-scrollbar {
  display: none;
}

.player-combat-quickbar-effects.is-empty {
  opacity: 0;
  pointer-events: none;
}

.player-combat-quickbar-effect-placeholder {
  display: inline-block;
  min-height: 20px;
}

.player-combat-quickbar-effect-chip {
  flex: 0 1 auto;
  min-width: 0;
  max-width: min(100%, 360px);
  padding: 4px 8px !important;
  gap: 4px !important;
  overflow: hidden;
  text-overflow: ellipsis;
}

.player-combat-quickbar-effect-chip strong,
.player-combat-quickbar-effect-chip small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1 !important;
}

.player-combat-quickbar-effect-chip strong {
  flex: 0 0 auto;
  font-size: .52rem !important;
}

.player-combat-quickbar-effect-chip small {
  display: inline-block;
  color: color-mix(in srgb, var(--text) 72%, var(--muted));
  font-size: .50rem !important;
  font-weight: 800;
  letter-spacing: .02em;
}

body.player-combat-quickbar-active .forum-toast-stack {
  bottom: calc(144px + env(safe-area-inset-bottom, 0px)) !important;
}

@media (max-width: 520px) {
  body.player-combat-quickbar-active {
    padding-bottom: calc(144px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .player-combat-quickbar {
    min-height: 120px !important;
    grid-template-columns: 60px minmax(0, 1fr) auto !important;
    gap: 8px !important;
    padding-top: 11px !important;
    padding-bottom: calc(11px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .player-combat-quickbar-turn {
    min-height: 92px !important;
  }

  .player-combat-quickbar-effects,
  .player-combat-quickbar-effects.is-empty {
    min-height: 25px !important;
    max-height: 28px;
    justify-content: flex-start;
  }

  .player-combat-quickbar-effect-chip {
    max-width: min(100%, 280px);
    padding: 4px 6px !important;
  }

  .player-combat-quickbar-effect-chip strong {
    font-size: .46rem !important;
  }

  .player-combat-quickbar-effect-chip small {
    font-size: .44rem !important;
  }

  body.player-combat-quickbar-active .forum-toast-stack {
    bottom: calc(136px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (max-width: 390px) {
  body.player-combat-quickbar-active {
    padding-bottom: calc(140px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .player-combat-quickbar {
    min-height: 116px !important;
    grid-template-columns: 56px minmax(0, 1fr) auto !important;
  }

  .player-combat-quickbar-effect-chip {
    max-width: 220px;
  }

  .player-combat-quickbar-effect-chip strong {
    font-size: .42rem !important;
  }

  .player-combat-quickbar-effect-chip small {
    font-size: .40rem !important;
  }

  body.player-combat-quickbar-active .forum-toast-stack {
    bottom: calc(132px + env(safe-area-inset-bottom, 0px)) !important;
  }
}


/* v382 — linha de efeitos acima da tarja e avatar apenas em ataque de criatura */
body.player-combat-quickbar-active {
  padding-bottom: calc(162px + env(safe-area-inset-bottom, 0px)) !important;
}

.player-combat-quickbar {
  min-height: 134px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: 34px minmax(0, 1fr) !important;
  align-items: stretch !important;
  gap: 6px !important;
  padding-top: 10px !important;
  padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px)) !important;
}

.player-combat-quickbar-effect-row {
  min-width: 0;
  width: 100%;
  min-height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.player-combat-quickbar-main {
  min-width: 0;
  width: 100%;
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}

.player-combat-quickbar-turn {
  min-height: 64px !important;
  height: auto !important;
}

.player-combat-quickbar-effects,
.player-combat-quickbar-effects.is-empty {
  width: min(100%, 720px);
  min-height: 28px !important;
  max-height: 30px !important;
  margin: 0 auto !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 6px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.player-combat-quickbar-effects.is-empty {
  opacity: 0;
}

.player-combat-quickbar-effect-chip {
  max-width: min(92vw, 520px) !important;
  padding: 5px 10px !important;
}

.player-combat-quickbar-effect-chip strong {
  font-size: .55rem !important;
}

.player-combat-quickbar-effect-chip small {
  font-size: .52rem !important;
}

body.player-combat-quickbar-active .forum-toast-stack {
  bottom: calc(154px + env(safe-area-inset-bottom, 0px)) !important;
}

@media (max-width: 520px) {
  body.player-combat-quickbar-active {
    padding-bottom: calc(154px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .player-combat-quickbar {
    min-height: 128px !important;
    grid-template-rows: 34px minmax(0, 1fr) !important;
    gap: 5px !important;
    padding-top: 9px !important;
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .player-combat-quickbar-main {
    grid-template-columns: 60px minmax(0, 1fr) auto;
    gap: 8px;
  }

  .player-combat-quickbar-turn {
    min-height: 58px !important;
  }

  .player-combat-quickbar-effect-row {
    min-height: 29px;
  }

  .player-combat-quickbar-effects,
  .player-combat-quickbar-effects.is-empty {
    width: 100%;
    min-height: 28px !important;
    justify-content: center !important;
  }

  .player-combat-quickbar-effect-chip {
    max-width: min(96vw, 340px) !important;
    padding: 5px 8px !important;
  }

  .player-combat-quickbar-effect-chip strong {
    font-size: .47rem !important;
  }

  .player-combat-quickbar-effect-chip small {
    font-size: .45rem !important;
  }

  body.player-combat-quickbar-active .forum-toast-stack {
    bottom: calc(146px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (max-width: 390px) {
  body.player-combat-quickbar-active {
    padding-bottom: calc(150px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .player-combat-quickbar {
    min-height: 124px !important;
  }

  .player-combat-quickbar-main {
    grid-template-columns: 56px minmax(0, 1fr) auto;
    gap: 5px;
  }

  .player-combat-quickbar-effect-chip {
    max-width: min(96vw, 300px) !important;
    padding: 4px 7px !important;
  }

  .player-combat-quickbar-effect-chip strong {
    font-size: .43rem !important;
  }

  .player-combat-quickbar-effect-chip small {
    font-size: .41rem !important;
  }

  body.player-combat-quickbar-active .forum-toast-stack {
    bottom: calc(142px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* v383 — tarja mais harmônica: vitalidade alinhada e efeitos como texto colorido */
body.player-combat-quickbar-active {
  padding-bottom: calc(146px + env(safe-area-inset-bottom, 0px)) !important;
}

.player-combat-quickbar {
  min-height: 118px !important;
  grid-template-rows: 24px minmax(0, 1fr) !important;
  gap: 4px !important;
  padding-top: 9px !important;
  padding-bottom: calc(17px + env(safe-area-inset-bottom, 0px)) !important;
}

.player-combat-quickbar-effect-row {
  min-height: 22px !important;
  align-items: center !important;
}

.player-combat-quickbar-effects,
.player-combat-quickbar-effects.is-empty {
  min-height: 22px !important;
  max-height: 24px !important;
  gap: 0.45rem !important;
}

.player-combat-quickbar-effect-chip {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  flex-direction: row !important;
  align-items: baseline !important;
  gap: 0.24rem !important;
  max-width: min(94vw, 620px) !important;
  white-space: nowrap !important;
  text-shadow: 0 0 10px currentColor;
}

.player-combat-quickbar-effect-chip strong,
.player-combat-quickbar-effect-chip small {
  color: inherit !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: 0.035em !important;
}

.player-combat-quickbar-effect-chip strong {
  font-size: .58rem !important;
  text-transform: uppercase !important;
}

.player-combat-quickbar-effect-chip small {
  font-size: .56rem !important;
  opacity: .86 !important;
}

.player-combat-quickbar-effect-chip.is-flame {
  color: #ff9a58 !important;
}

.player-combat-quickbar-effect-chip.is-poison {
  color: #9cff72 !important;
}

.player-combat-quickbar-effect-chip.is-bind,
.player-combat-quickbar-effect-chip.is-skip {
  color: #bba4ff !important;
}

.player-combat-quickbar-main {
  align-items: end !important;
}

.player-combat-quickbar-vit {
  align-self: end !important;
  justify-self: center !important;
  gap: 3px !important;
  transform: translateY(-3px);
}

.player-combat-quickbar-vit > small {
  line-height: 1 !important;
  min-height: .6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.player-combat-quickbar-turn {
  align-self: center !important;
  min-height: 64px !important;
}

.player-combat-quickbar-actions {
  align-self: end !important;
  padding-bottom: 0 !important;
}

body.player-combat-quickbar-active .forum-toast-stack {
  bottom: calc(128px + env(safe-area-inset-bottom, 0px)) !important;
}

@media (max-width: 520px) {
  body.player-combat-quickbar-active {
    padding-bottom: calc(140px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .player-combat-quickbar {
    min-height: 112px !important;
    grid-template-rows: 23px minmax(0, 1fr) !important;
    gap: 3px !important;
    padding-top: 8px !important;
    padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .player-combat-quickbar-effect-row,
  .player-combat-quickbar-effects,
  .player-combat-quickbar-effects.is-empty {
    min-height: 21px !important;
    max-height: 23px !important;
  }

  .player-combat-quickbar-effect-chip {
    max-width: min(96vw, 360px) !important;
    gap: 0.18rem !important;
  }

  .player-combat-quickbar-effect-chip strong {
    font-size: .48rem !important;
  }

  .player-combat-quickbar-effect-chip small {
    font-size: .46rem !important;
  }

  .player-combat-quickbar-vit {
    gap: 2px !important;
    transform: translateY(-3px);
  }

  .player-combat-quickbar-turn {
    min-height: 58px !important;
  }

  body.player-combat-quickbar-active .forum-toast-stack {
    bottom: calc(122px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (max-width: 390px) {
  body.player-combat-quickbar-active {
    padding-bottom: calc(136px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .player-combat-quickbar {
    min-height: 108px !important;
    padding-bottom: calc(15px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .player-combat-quickbar-effect-chip strong {
    font-size: .43rem !important;
  }

  .player-combat-quickbar-effect-chip small {
    font-size: .41rem !important;
  }

  body.player-combat-quickbar-active .forum-toast-stack {
    bottom: calc(118px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* v384 — corrige corte superior do texto dos efeitos na tarja */
body.player-combat-quickbar-active {
  padding-bottom: calc(154px + env(safe-area-inset-bottom, 0px)) !important;
}

.player-combat-quickbar {
  min-height: 126px !important;
  grid-template-rows: 32px minmax(0, 1fr) !important;
  gap: 4px !important;
  padding-top: 10px !important;
}

.player-combat-quickbar-effect-row {
  min-height: 30px !important;
  height: 32px !important;
  align-items: center !important;
  overflow: visible !important;
}

.player-combat-quickbar-effects,
.player-combat-quickbar-effects.is-empty {
  min-height: 30px !important;
  max-height: none !important;
  height: 30px !important;
  align-items: center !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  padding-top: 3px !important;
  padding-bottom: 2px !important;
}

.player-combat-quickbar-effect-chip {
  align-items: center !important;
  padding-top: 1px !important;
  padding-bottom: 1px !important;
  overflow: visible !important;
  text-shadow: 0 0 8px currentColor !important;
}

.player-combat-quickbar-effect-chip strong,
.player-combat-quickbar-effect-chip small {
  line-height: 1.25 !important;
  overflow: visible !important;
}

body.player-combat-quickbar-active .forum-toast-stack {
  bottom: calc(136px + env(safe-area-inset-bottom, 0px)) !important;
}

@media (max-width: 520px) {
  body.player-combat-quickbar-active {
    padding-bottom: calc(148px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .player-combat-quickbar {
    min-height: 120px !important;
    grid-template-rows: 31px minmax(0, 1fr) !important;
    padding-top: 9px !important;
  }

  .player-combat-quickbar-effect-row {
    min-height: 29px !important;
    height: 31px !important;
  }

  .player-combat-quickbar-effects,
  .player-combat-quickbar-effects.is-empty {
    min-height: 29px !important;
    height: 29px !important;
    padding-top: 3px !important;
    padding-bottom: 2px !important;
  }

  body.player-combat-quickbar-active .forum-toast-stack {
    bottom: calc(130px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (max-width: 390px) {
  body.player-combat-quickbar-active {
    padding-bottom: calc(144px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .player-combat-quickbar {
    min-height: 116px !important;
    grid-template-rows: 30px minmax(0, 1fr) !important;
  }

  .player-combat-quickbar-effect-row {
    min-height: 28px !important;
    height: 30px !important;
  }

  .player-combat-quickbar-effects,
  .player-combat-quickbar-effects.is-empty {
    min-height: 28px !important;
    height: 28px !important;
  }

  body.player-combat-quickbar-active .forum-toast-stack {
    bottom: calc(126px + env(safe-area-inset-bottom, 0px)) !important;
  }
}


/* v388 — exclusão definitiva de evento arquivado */
/* v390 — ranking administrativo com zerar ranking */
.admin-clone-event-card {
  width: min(640px, calc(100vw - 28px));
  max-height: min(86vh, 820px);
  overflow: auto;
}
.admin-clone-options {
  display: grid;
  gap: 8px;
  margin: 10px 0 4px;
  text-align: left;
}
.admin-clone-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: flex-start;
  gap: 10px;
  padding: 10px 11px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 14px;
  background: rgba(255,255,255,.045);
}
.admin-clone-option input {
  margin-top: 3px;
  accent-color: var(--accent, #d6b36a);
}
.admin-clone-option strong {
  display: block;
  font-size: .9rem;
}
.admin-clone-option small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  line-height: 1.25;
}
.admin-clone-option.is-risk {
  border-color: rgba(255, 123, 123, .24);
  background: rgba(127, 29, 29, .12);
}
.admin-clone-hint {
  margin-top: 8px;
}
@media (max-width: 720px) {
  .admin-clone-event-card {
    width: min(96vw, 640px);
    padding-left: 16px;
    padding-right: 16px;
  }
  .admin-clone-option {
    padding: 9px;
  }
}


/* v390 — ranking administrativo */
.admin-ranking-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .5rem;
}

.admin-ranking-summary {
  margin-bottom: 1rem;
}

.admin-ranking-grid {
  align-items: stretch;
}

.admin-ranking-card {
  min-height: 100%;
}

.admin-ranking-card-head {
  gap: .75rem;
}

.admin-ranking-card-body {
  display: grid;
  gap: .45rem;
}

.admin-ranking-row {
  grid-template-columns: auto minmax(0, 1fr) auto auto;
}

.admin-ranking-row small {
  color: var(--muted);
  font-size: .72rem;
  white-space: nowrap;
}

@media (max-width: 640px) {
  .admin-ranking-actions {
    justify-content: stretch;
    width: 100%;
  }
  .admin-ranking-actions .btn {
    flex: 1 1 auto;
  }
  .admin-ranking-row {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }
  .admin-ranking-row small {
    grid-column: 2 / 3;
    white-space: normal;
  }
}

/* v404 — destaque do Ataque Crítico na tarja de combate.
   Precisa vir depois do reset visual global dos botões, que usa !important. */
.player-combat-quickbar .player-combat-quickbar-btn.player-combat-quickbar-crit.is-active,
.player-combat-quickbar .player-combat-quickbar-btn.player-combat-quickbar-crit.is-active:hover,
.player-combat-quickbar .player-combat-quickbar-btn.player-combat-quickbar-crit.is-active:focus-visible {
  border-color: #ff3b3b !important;
  border-width: 2px !important;
  color: #ff6b6b !important;
  background: color-mix(in srgb, #ff3b3b 12%, var(--surface-strong)) !important;
  box-shadow: 0 0 0 1px rgba(255, 59, 59, .42), 0 0 14px rgba(255, 59, 59, .20) !important;
}

/* v416 — toasts sólidos, sem sombra, avatar circular e número na crônica */
.forum-toast {
  background: #191311 !important;
  background-color: #191311 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.forum-toast-chronicle {
  background: #1d1512 !important;
  background-color: #1d1512 !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

.forum-toast.forum-toast-incoming-attack {
  background: #2a1010 !important;
  background-color: #2a1010 !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

.forum-toast-avatar,
.forum-toast.forum-toast-incoming-attack .forum-toast-avatar {
  border-radius: 50% !important;
  background: #211916 !important;
  background-color: #211916 !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

.forum-toast-avatar img {
  border-radius: 50% !important;
  box-shadow: none !important;
}

.chronicle-action-number {
  flex: 0 0 auto;
  min-width: 2.15em;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin-right: 8px;
  font-family: var(--font-title);
  font-size: .78rem;
  font-weight: 800;
  line-height: 1;
  color: var(--accent);
}

.autonomous-mini-history p {
  align-items: flex-start;
}

/* v417 — toast acompanha tema do aparelho, sólido e sem sombra */
:root {
  --forum-toast-bg-solid: #fffaf2;
  --forum-toast-chronicle-bg-solid: #fff6e8;
  --forum-toast-incoming-bg-solid: #fff0ef;
  --forum-toast-avatar-bg-solid: #f1e7da;
  --forum-toast-border-solid: rgba(80, 68, 56, .22);
}

@media (prefers-color-scheme: dark) {
  :root {
    --forum-toast-bg-solid: #191311;
    --forum-toast-chronicle-bg-solid: #1d1512;
    --forum-toast-incoming-bg-solid: #2a1010;
    --forum-toast-avatar-bg-solid: #211916;
    --forum-toast-border-solid: rgba(255, 236, 214, .16);
  }
}

.forum-toast,
.forum-toast-chronicle,
.forum-toast.forum-toast-incoming-attack {
  box-shadow: none !important;
  text-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.forum-toast {
  background: var(--forum-toast-bg-solid) !important;
  background-color: var(--forum-toast-bg-solid) !important;
  color: var(--text) !important;
  border-color: var(--forum-toast-border-solid) !important;
}

.forum-toast-chronicle {
  background: var(--forum-toast-chronicle-bg-solid) !important;
  background-color: var(--forum-toast-chronicle-bg-solid) !important;
}

.forum-toast.forum-toast-incoming-attack {
  background: var(--forum-toast-incoming-bg-solid) !important;
  background-color: var(--forum-toast-incoming-bg-solid) !important;
}

.forum-toast-avatar,
.forum-toast.forum-toast-incoming-attack .forum-toast-avatar {
  border-radius: 50% !important;
  background: var(--forum-toast-avatar-bg-solid) !important;
  background-color: var(--forum-toast-avatar-bg-solid) !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

.forum-toast-avatar img {
  border-radius: 50% !important;
  box-shadow: none !important;
}

/* v419 — tela dedicada de Combate Autônomo: crônica central e tarja sólida */
body.player-combat-screen-active {
  padding-bottom: calc(196px + env(safe-area-inset-bottom, 0px)) !important;
  overflow-x: hidden;
}

body.player-combat-screen-active .topbar {
  display: none !important;
}

body.player-combat-screen-active .container {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.player-combat-screen-active .player-shell > section:not(#playerCombatPanel) {
  display: none !important;
}

body.player-combat-screen-active #playerCombatPanel {
  display: block !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: calc(100dvh - 196px);
  background: var(--bg) !important;
  color: var(--text) !important;
}

body.player-combat-screen-active #playerCombatPanel > .section-head {
  display: none !important;
}

body.player-combat-screen-active .combat-members-list {
  min-height: calc(100dvh - 196px);
  padding: max(10px, env(safe-area-inset-top, 0px)) 10px 10px;
}

.player-combat-stage {
  min-height: calc(100dvh - 206px);
  height: calc(100dvh - 206px);
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  gap: 8px;
  background: var(--bg) !important;
}

.player-combat-stage-initiative,
.player-combat-stage-status,
.player-combat-stage-enemies,
.player-combat-chronicle-row p,
.player-combat-chronicle-empty,
.guardian-pulse-row,
.autonomous-target-card {
  background: var(--surface-strong) !important;
  background-image: none !important;
  border: 1px solid var(--line) !important;
  color: var(--text) !important;
  box-shadow: none !important;
  text-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.player-combat-stage-initiative {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: 8px;
  padding: 8px;
  border-radius: 16px;
}

.player-combat-stage-now,
.player-combat-stage-next,
.player-combat-stage-enemies-title,
.player-combat-stage-enemy-chip {
  appearance: none;
  border: 1px solid var(--line) !important;
  background: var(--surface) !important;
  color: var(--text) !important;
  border-radius: 12px;
  box-shadow: none !important;
  text-shadow: none !important;
  display: grid;
  gap: 2px;
  text-align: left;
  padding: 9px 10px;
  min-width: 0;
}

.player-combat-stage-now span,
.player-combat-stage-next span,
.player-combat-stage-enemies-title span,
.player-combat-stage-status span,
.player-combat-stage-enemy-chip span {
  color: var(--muted) !important;
  font-size: .66rem;
  text-transform: uppercase;
  font-weight: 850;
  letter-spacing: .07em;
}

.player-combat-stage-now strong,
.player-combat-stage-next strong,
.player-combat-stage-enemies-title strong,
.player-combat-stage-enemy-chip strong {
  color: var(--text) !important;
  font-size: .9rem;
  line-height: 1.12;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.player-combat-stage-status {
  border-radius: 16px;
  padding: 10px 12px;
  display: grid;
  gap: 4px;
}

.player-combat-stage-status > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.player-combat-stage-status strong {
  color: var(--text) !important;
  font-size: .96rem;
  line-height: 1.15;
  text-align: right;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.player-combat-stage-status p {
  margin: 0;
  color: var(--text) !important;
  line-height: 1.25;
  font-size: .92rem;
}

.player-combat-stage-status small {
  color: var(--muted) !important;
  font-size: .74rem;
}

.player-combat-chronicle {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 4px 0;
  scrollbar-width: thin;
}

.player-combat-chronicle-row p {
  margin: 0 !important;
  border-radius: 14px !important;
  padding: 10px 12px !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 0 !important;
  line-height: 1.34 !important;
  font-size: .94rem !important;
}

.player-combat-chronicle-row .chronicle-action-number {
  min-width: 2.5em;
  margin-right: 8px;
  color: var(--accent) !important;
}

.player-combat-chronicle-empty {
  margin-top: auto;
  border-radius: 16px;
  padding: 18px;
  display: grid;
  gap: 4px;
  text-align: center;
}

.player-combat-chronicle-empty span {
  color: var(--muted) !important;
}

.player-combat-stage-enemies {
  border-radius: 16px;
  padding: 8px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px;
  align-items: stretch;
}

.player-combat-stage-enemies-title {
  min-width: 72px;
  align-content: center;
  text-align: center;
}

.player-combat-stage-enemy-strip {
  display: flex;
  gap: 7px;
  overflow-x: auto;
  min-width: 0;
  scrollbar-width: none;
}

.player-combat-stage-enemy-strip::-webkit-scrollbar {
  display: none;
}

.player-combat-stage-enemy-chip {
  flex: 0 0 auto;
  min-width: 128px;
  max-width: 168px;
  padding: 8px 10px;
}

.player-combat-stage-enemy-chip.is-dead {
  opacity: .56;
}

.player-combat-stage-enemy-empty {
  align-self: center;
  color: var(--muted) !important;
  padding: 8px;
}

/* Tarja inferior maior e sólida */
body.player-combat-screen-active .player-combat-quickbar,
.player-combat-quickbar {
  background: var(--surface) !important;
  background-image: none !important;
  color: var(--text) !important;
  border-top: 1px solid var(--line) !important;
  box-shadow: none !important;
  text-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.player-combat-screen-active .player-combat-quickbar {
  min-height: 178px !important;
  grid-template-rows: 34px minmax(0, 1fr) !important;
  padding: 10px 10px calc(18px + env(safe-area-inset-bottom, 0px)) !important;
}

body.player-combat-screen-active .player-combat-quickbar-main {
  grid-template-columns: auto minmax(82px, .82fr) minmax(95px, 1fr) auto !important;
  gap: 8px !important;
  align-items: end !important;
}

.player-combat-quickbar-sheet {
  min-width: 0;
  align-self: stretch;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 8px 9px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface-strong) !important;
  color: var(--text) !important;
  box-shadow: none !important;
}

.player-combat-quickbar-sheet strong,
.player-combat-quickbar-sheet span,
.player-combat-quickbar-sheet small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.player-combat-quickbar-sheet strong {
  color: var(--text) !important;
  font-size: .85rem;
  line-height: 1.08;
}

.player-combat-quickbar-sheet span,
.player-combat-quickbar-sheet small {
  color: var(--muted) !important;
  font-size: .66rem;
  line-height: 1.1;
  font-weight: 800;
}

.player-combat-quickbar-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  justify-content: flex-end !important;
}

.player-combat-quickbar-action small {
  color: var(--muted) !important;
}

.player-combat-quickbar .player-combat-quickbar-btn,
.player-combat-quickbar .btn {
  box-shadow: none !important;
  text-shadow: none !important;
}

.player-combat-quickbar .player-combat-quickbar-btn.player-combat-quickbar-crit.is-active,
.player-combat-quickbar .player-combat-quickbar-btn.player-combat-quickbar-crit.is-active:hover,
.player-combat-quickbar .player-combat-quickbar-btn.player-combat-quickbar-crit.is-active:focus-visible {
  box-shadow: none !important;
}

.player-combat-quickbar-pulse,
.player-combat-quickbar-gospel,
.player-combat-quickbar-growl {
  border-color: var(--line) !important;
  background: var(--surface-strong) !important;
  color: var(--text) !important;
}

.guardian-pulse-dialog-card,
.autonomous-target-card-shell {
  background: var(--surface) !important;
  background-image: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.guardian-pulse-list,
.autonomous-target-card-list {
  display: grid;
  gap: 8px;
  max-height: min(62vh, 560px);
  overflow: auto;
  padding-right: 2px;
}

.guardian-pulse-row,
.autonomous-target-card {
  border-radius: 16px !important;
  padding: 10px !important;
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  width: 100%;
  text-align: left;
}

.guardian-pulse-row.is-dead,
.autonomous-target-card.is-dead {
  opacity: .58;
}

.guardian-pulse-info,
.autonomous-target-card-main,
.autonomous-target-card-stats {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.guardian-pulse-info strong,
.autonomous-target-card-main strong {
  color: var(--text) !important;
  overflow-wrap: anywhere;
}

.guardian-pulse-info small,
.autonomous-target-card-main small,
.guardian-pulse-unavailable {
  color: var(--muted) !important;
  font-size: .74rem;
  line-height: 1.2;
}

.autonomous-target-card-stats {
  justify-items: end;
  white-space: nowrap;
}

.autonomous-target-card-stats b {
  color: var(--text) !important;
  font-size: .72rem;
}

.guardian-pulse-form {
  display: grid !important;
  grid-template-columns: 58px auto;
  gap: 6px !important;
  align-items: center;
}

.guardian-pulse-form input {
  min-width: 0;
  height: 40px;
  text-align: center;
}

body.player-combat-screen-active .forum-toast-stack {
  bottom: calc(186px + env(safe-area-inset-bottom, 0px)) !important;
}

@media (max-width: 520px) {
  body.player-combat-screen-active {
    padding-bottom: calc(206px + env(safe-area-inset-bottom, 0px)) !important;
  }

  body.player-combat-screen-active #playerCombatPanel,
  body.player-combat-screen-active .combat-members-list,
  .player-combat-stage {
    min-height: calc(100dvh - 206px);
  }

  .player-combat-stage {
    height: calc(100dvh - 206px);
  }

  .player-combat-stage-initiative {
    grid-template-columns: 1fr;
  }

  body.player-combat-screen-active .player-combat-quickbar {
    min-height: 188px !important;
  }

  body.player-combat-screen-active .player-combat-quickbar-main {
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    grid-template-areas:
      "vit sheet actions"
      "vit turn actions";
    align-items: center !important;
  }

  body.player-combat-screen-active .player-combat-quickbar-vit { grid-area: vit; }
  body.player-combat-screen-active .player-combat-quickbar-sheet { grid-area: sheet; min-height: 52px; }
  body.player-combat-screen-active .player-combat-quickbar-turn { grid-area: turn; min-height: 54px !important; }
  body.player-combat-screen-active .player-combat-quickbar-actions { grid-area: actions; max-width: 92px; }

  .guardian-pulse-row,
  .autonomous-target-card {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .guardian-pulse-form,
  .autonomous-target-card-stats,
  .guardian-pulse-unavailable {
    grid-column: 1 / -1;
    justify-items: stretch;
  }

  .autonomous-target-card-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    justify-items: start;
  }

  body.player-combat-screen-active .forum-toast-stack {
    bottom: calc(196px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* v419b — Olho Gospel precisa aparecer mesmo dentro da tela dedicada de combate */
body.player-combat-screen-active.qr-camera-open .player-shell > section.qr-minimal-panel {
  display: block !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 8805 !important;
  overflow: auto !important;
  padding: max(14px, env(safe-area-inset-top, 0px)) 14px max(14px, env(safe-area-inset-bottom, 0px)) !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--bg) !important;
  color: var(--text) !important;
}

body.player-combat-screen-active.qr-camera-open .qr-minimal-panel .qr-headline,
body.player-combat-screen-active.qr-camera-open .qr-minimal-panel .qr-actions-row,
body.player-combat-screen-active.qr-camera-open .qr-minimal-panel #qrStatus {
  display: block !important;
}

body.player-combat-screen-active.qr-camera-open .qr-minimal-panel .qr-actions-row {
  display: flex !important;
}


/* v420 — tela de combate limpa com timeline central e controles flutuantes */
body.player-combat-screen-active .forum-toast-stack { display:none !important; }
.player-combat-stage-clean { padding: 8px 0 10px; }
.player-combat-stage-body { display:grid; grid-template-columns: 78px minmax(0,1fr) 92px; gap: 10px; align-items:start; min-height: 54vh; }
.player-combat-enemy-rail,.player-combat-action-rail { display:flex; flex-direction:column; gap:10px; align-items:center; position:sticky; top: 14px; }
.player-combat-side-empty { display:inline-flex; align-items:center; justify-content:center; width:44px; min-height:44px; border-radius:999px; background: var(--panel); color: var(--muted); border:1px solid var(--border); }
.player-combat-enemy-float { display:flex; flex-direction:column; align-items:center; gap:4px; border:0; background:transparent; padding:0; color:inherit; }
.player-combat-enemy-float small { font-size:11px; font-weight:700; color: var(--muted); background: var(--panel); border:1px solid var(--border); border-radius:999px; padding:2px 6px; }
.player-combat-enemy-float.is-dead { opacity:.45; }
.player-combat-enemy-avatar { width:52px; height:52px; }
.player-combat-chronicle { min-height: 54vh; max-height: 62vh; border:1px solid var(--border); border-radius: 18px; background: var(--panel); padding: 14px 16px; overflow:auto; box-shadow:none; }
.player-combat-chronicle-row { margin:0 0 10px; }
.player-combat-chronicle-row p { margin:0; line-height:1.45; }
.player-combat-chronicle-empty { min-height: 180px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:6px; color: var(--muted); }
.player-combat-action-rail { justify-self:end; }
.player-combat-float-action { width:72px; min-height:72px; border-radius:18px; border:1px solid var(--border); background: var(--panel); color: var(--text); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:8px 6px; font: inherit; box-shadow:none; }
.player-combat-float-action span[aria-hidden="true"] { font-size:20px; line-height:1; }
.player-combat-float-action small { font-size:11px; text-transform:uppercase; letter-spacing:.04em; color: var(--muted); }
.player-combat-float-action.is-primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.player-combat-float-action.is-primary small { color:#fff; }
.player-combat-float-action.is-warning { border-color: var(--warning, #b36b00); }
.player-combat-float-action.is-active { border-color: #b10019; background:#b10019; color:#fff; }
.player-combat-float-action.is-active small { color:#fff; }
.player-combat-float-action:disabled { opacity:.5; }
.player-combat-quickbar-minimal { margin-top:10px; padding: 10px 12px; border-radius: 16px; background: var(--panel); border:1px solid var(--border); box-shadow:none; }
.player-combat-quickbar-minimal .player-combat-quickbar-main { display:flex; align-items:center; gap:10px; }
.player-combat-quickbar-minimal .player-combat-quickbar-vit { flex:0 0 auto; }
.player-combat-quickbar-minimal .player-combat-quickbar-vit small { display:none; }
.player-combat-quickbar-minimal .player-combat-quickbar-vit-ring { width:54px; height:54px; }
.player-combat-quickbar-minimal .player-combat-quickbar-sheet { display:flex; flex-direction:column; gap:2px; min-width:0; }
.player-combat-quickbar-status-line { font-style:normal; font-size:11px; color: var(--muted); }
.player-combat-screen-active #playerCombatPanel .combat-turn-summary, .player-combat-screen-active #playerCombatPanel .player-combat-monsters, .player-combat-screen-active #playerCombatPanel .autonomous-combat-status-card { display:none !important; }
@media (max-width: 760px) { .player-combat-stage-body { grid-template-columns: 64px minmax(0,1fr) 82px; gap:8px; min-height: 48vh; } .player-combat-chronicle { min-height:48vh; max-height:56vh; padding:12px; } .player-combat-float-action { width:64px; min-height:64px; border-radius:16px; } .player-combat-enemy-avatar { width:46px; height:46px; } .player-combat-enemy-float small { font-size:10px; padding:2px 5px; } }
@media (max-width: 560px) { .player-combat-stage-body { grid-template-columns: 58px minmax(0,1fr) 74px; gap:6px; } .player-combat-float-action { width:58px; min-height:58px; padding:6px 4px; } .player-combat-float-action small { font-size:10px; } .player-combat-quickbar-minimal { padding: 8px 10px; } .player-combat-quickbar-minimal .player-combat-quickbar-vit-ring { width:50px; height:50px; } }


/* v421 — correções do overlay de combate no celular */
body.player-combat-screen-active { overflow:hidden; }
body.player-combat-screen-active #combatMembersList { display:flex; flex-direction:column; min-height: calc(100vh - 120px); }
.player-combat-stage-clean { flex:1 1 auto; min-height:0; padding: 4px 0 0; }
.player-combat-stage-overlay { position:relative; min-height:0; height:100%; flex:1 1 auto; }
.player-combat-chronicle-shell { position:relative; height:100%; }
.player-combat-chronicle { height:100%; min-height: 52vh; max-height:none; border:0; border-radius:0; background: transparent; padding: 10px 82px 12px 74px; overflow:auto; box-shadow:none; }
.player-combat-chronicle-row { margin:0 0 10px; }
.player-combat-chronicle-row p { display:block; margin:0; padding: 12px 14px; border-radius: 16px; background: var(--panel); border:1px solid var(--border); line-height:1.42; }
.player-combat-chronicle-empty { min-height: 200px; }
.player-combat-enemy-rail { position:absolute; left:6px; top:8px; display:flex; flex-direction:column; gap:10px; z-index:3; }
.player-combat-enemy-float { display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border:0; background:transparent; padding:0; box-shadow:none; }
.player-combat-enemy-float .health-avatar-wrap { width:54px; height:54px; }
.player-combat-enemy-float.is-dead { opacity:.4; }
.player-combat-enemy-avatar { width:46px; height:46px; }
.player-combat-side-empty { display:none; }
.player-combat-action-rail { position:absolute; right:6px; bottom:14px; display:flex; flex-direction:column; align-items:center; gap:10px; z-index:4; }
.player-combat-float-action { width:58px; min-height:58px; border-radius:16px; border:1px solid var(--border); background: var(--panel); color: var(--text); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; padding:6px 4px; font: inherit; box-shadow:none; }
.player-combat-float-action span[aria-hidden="true"] { font-size:18px; line-height:1; }
.player-combat-float-action small { font-size:10px; text-transform:uppercase; letter-spacing:.04em; color: var(--muted); }
.player-combat-float-action.is-primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.player-combat-float-action.is-primary small, .player-combat-float-action.is-active small { color:#fff; }
.player-combat-float-action.is-active { border-color: #b10019; background:#b10019; color:#fff; }
.player-combat-float-action.is-warning { border-color: var(--warning, #b36b00); }
.player-combat-quickbar-minimal { flex:0 0 auto; margin-top:0; padding: 8px 12px; border-radius: 0; background: var(--panel); border-top:1px solid var(--border); border-left:0; border-right:0; border-bottom:0; box-shadow:none; min-height:72px; }
.player-combat-quickbar-minimal .player-combat-quickbar-main { display:flex; align-items:center; gap:10px; min-width:0; }
.player-combat-quickbar-minimal .player-combat-quickbar-vit { flex:0 0 auto; margin:0; }
.player-combat-quickbar-minimal .player-combat-quickbar-vit small { display:none; }
.player-combat-quickbar-minimal .player-combat-quickbar-vit-ring { width:54px; height:54px; }
.player-combat-quickbar-minimal .player-combat-quickbar-sheet { display:flex; flex-direction:column; gap:2px; min-width:0; overflow:hidden; }
.player-combat-quickbar-minimal .player-combat-quickbar-sheet strong, .player-combat-quickbar-minimal .player-combat-quickbar-sheet span, .player-combat-quickbar-minimal .player-combat-quickbar-sheet small, .player-combat-quickbar-status-line { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.player-combat-quickbar-status-line { font-style:normal; font-size:11px; color: var(--muted); }
.player-combat-screen-active #playerCombatPanel { padding-bottom: 0 !important; }
.player-combat-screen-active #playerCombatPanel .combat-turn-summary, .player-combat-screen-active #playerCombatPanel .player-combat-monsters, .player-combat-screen-active #playerCombatPanel .autonomous-combat-status-card { display:none !important; }
@media (min-width: 761px) { .player-combat-chronicle { padding-left: 86px; padding-right: 94px; } .player-combat-enemy-float { width:62px; height:62px; } .player-combat-enemy-float .health-avatar-wrap { width:60px; height:60px; } .player-combat-action-rail { right:10px; } .player-combat-float-action { width:64px; min-height:64px; } }

/* v422 — limpeza estrutural da tela dedicada de combate */
body.player-combat-screen-active .forum-toast-stack {
  display: none !important;
}

/* Durante o combate, a tela principal não vaza por baixo/antes da interface de combate. */
body.player-combat-screen-active .player-shell > section:not(#playerCombatPanel):not(.player-grid) {
  display: none !important;
}
body.player-combat-screen-active .player-shell > section.player-grid {
  display: none !important;
}
body.player-combat-screen-active.qr-camera-open .player-shell > section.player-grid {
  display: grid !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 8800 !important;
  margin: 0 !important;
  padding: max(14px, env(safe-area-inset-top, 0px)) 14px max(14px, env(safe-area-inset-bottom, 0px)) !important;
  overflow: auto !important;
  background: var(--bg) !important;
}
body.player-combat-screen-active.qr-camera-open .player-shell > section.player-grid > .qr-minimal-panel {
  display: block !important;
  position: relative !important;
  inset: auto !important;
  z-index: auto !important;
  width: min(100%, 520px) !important;
  margin: 0 auto !important;
  border-radius: 20px !important;
  background: var(--panel) !important;
}

body.player-combat-screen-active {
  overflow: hidden !important;
}
body.player-combat-screen-active #playerCombatPanel {
  display: flex !important;
  flex-direction: column !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 80 !important;
  margin: 0 !important;
  padding: max(6px, env(safe-area-inset-top, 0px)) 0 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--bg) !important;
  box-shadow: none !important;
}
body.player-combat-screen-active #playerCombatPanel > .section-head {
  display: none !important;
}
body.player-combat-screen-active #combatMembersList {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

/* Timeline como fundo principal: o card cruza por baixo dos overlays, o texto evita as laterais. */
body.player-combat-screen-active .player-combat-stage-clean {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  padding: 0 !important;
}
body.player-combat-screen-active .player-combat-stage-overlay {
  position: relative !important;
  height: 100% !important;
  min-height: 0 !important;
  overflow: hidden !important;
}
body.player-combat-screen-active .player-combat-chronicle-shell {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
}
body.player-combat-screen-active .player-combat-chronicle {
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 10px 0 12px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
body.player-combat-screen-active .player-combat-chronicle::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}
body.player-combat-screen-active .player-combat-chronicle-row {
  margin: 0 0 10px !important;
}
body.player-combat-screen-active .player-combat-chronicle-row p {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 12px 78px 12px 76px !important;
  border-radius: 0 !important;
  background: var(--panel) !important;
  border: 1px solid var(--border) !important;
  border-left: 0 !important;
  border-right: 0 !important;
  box-shadow: none !important;
  line-height: 1.42 !important;
}
body.player-combat-screen-active .player-combat-chronicle-empty {
  min-height: 220px !important;
  padding-left: 74px !important;
  padding-right: 82px !important;
}

/* Criaturas: só avatar circular com aro de vida; sem caixa, sem número e sem moldura quadrada. */
body.player-combat-screen-active .player-combat-enemy-rail {
  position: absolute !important;
  left: 7px !important;
  top: 12px !important;
  z-index: 3 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 11px !important;
  align-items: center !important;
  pointer-events: auto !important;
}
body.player-combat-screen-active .player-combat-enemy-float,
body.player-combat-screen-active .player-combat-enemy-float:hover,
body.player-combat-screen-active .player-combat-enemy-float:active,
body.player-combat-screen-active .player-combat-enemy-float:focus {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-grid !important;
  place-items: center !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: inherit !important;
  box-shadow: none !important;
}
body.player-combat-screen-active .player-combat-enemy-float-inner {
  display: inline-grid !important;
  place-items: center !important;
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap.health-avatar-story {
  --hp-size: 56px !important;
  width: 56px !important;
  height: 56px !important;
  padding: 3px !important;
  margin: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  background: transparent !important;
}
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap > .health-ring-svg {
  display: block !important;
}
body.player-combat-screen-active .player-combat-enemy-avatar,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap > .avatar,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap > img.avatar,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap > .avatar-placeholder {
  width: 46px !important;
  height: 46px !important;
  border-radius: 999px !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}
body.player-combat-screen-active .player-combat-enemy-float small {
  display: none !important;
}
body.player-combat-screen-active .player-combat-enemy-float.is-dead {
  opacity: .35 !important;
}

/* Botões: overlay real, ancorado embaixo; a ordem visual sobe de baixo para cima. */
body.player-combat-screen-active .player-combat-action-rail {
  position: absolute !important;
  right: 7px !important;
  bottom: 12px !important;
  z-index: 4 !important;
  display: flex !important;
  flex-direction: column-reverse !important;
  align-items: center !important;
  gap: 10px !important;
}
body.player-combat-screen-active .player-combat-float-action {
  width: 58px !important;
  min-width: 58px !important;
  height: 58px !important;
  min-height: 58px !important;
  border-radius: 18px !important;
  border: 1px solid var(--border) !important;
  background: var(--panel) !important;
  color: var(--text) !important;
  box-shadow: none !important;
  padding: 6px 4px !important;
}
body.player-combat-screen-active .player-combat-float-action.is-primary {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  color: #fff !important;
}
body.player-combat-screen-active .player-combat-float-action.is-active {
  background: #b10019 !important;
  border-color: #b10019 !important;
  color: #fff !important;
}
body.player-combat-screen-active .player-combat-float-action small {
  font-size: 9px !important;
  line-height: 1.05 !important;
}
body.player-combat-screen-active .player-combat-float-action:disabled {
  opacity: .48 !important;
}

/* Tarja restaurada: usa estrutura antiga, mas sem botões. */
body.player-combat-screen-active .player-combat-quickbar-restored {
  flex: 0 0 auto !important;
  position: relative !important;
  z-index: 5 !important;
  margin: 0 !important;
  padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px)) !important;
  border-radius: 0 !important;
  border: 0 !important;
  border-top: 1px solid var(--border) !important;
  background: var(--panel) !important;
  box-shadow: none !important;
}
body.player-combat-screen-active .player-combat-quickbar-restored .player-combat-quickbar-effect-row {
  display: flex !important;
  min-height: 20px !important;
  margin: 0 0 4px !important;
  overflow: hidden !important;
}
body.player-combat-screen-active .player-combat-quickbar-restored .player-combat-quickbar-main {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  gap: 10px !important;
  align-items: center !important;
}
body.player-combat-screen-active .player-combat-quickbar-restored .player-combat-quickbar-vit {
  margin: 0 !important;
  min-width: 0 !important;
}
body.player-combat-screen-active .player-combat-quickbar-restored .player-combat-quickbar-vit-ring {
  width: 52px !important;
  height: 52px !important;
}
body.player-combat-screen-active .player-combat-quickbar-restored .player-combat-quickbar-vit > small {
  display: none !important;
}
body.player-combat-screen-active .player-combat-quickbar-restored .player-combat-quickbar-sheet {
  min-width: 0 !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 1px !important;
}
body.player-combat-screen-active .player-combat-quickbar-restored .player-combat-quickbar-sheet strong,
body.player-combat-screen-active .player-combat-quickbar-restored .player-combat-quickbar-sheet span,
body.player-combat-screen-active .player-combat-quickbar-restored .player-combat-quickbar-sheet small {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
body.player-combat-screen-active .player-combat-quickbar-restored .player-combat-quickbar-turn {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  justify-content: center !important;
  min-width: 70px !important;
  min-height: 44px !important;
  padding: 4px 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--text) !important;
}
body.player-combat-screen-active .player-combat-quickbar-restored .player-combat-quickbar-turn span {
  font-size: 10px !important;
  color: var(--muted) !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
}
body.player-combat-screen-active .player-combat-quickbar-restored .player-combat-quickbar-turn strong {
  max-width: 88px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  font-size: 12px !important;
}
body.player-combat-screen-active .player-combat-quickbar-restored .player-combat-quickbar-timer strong {
  font-size: 12px !important;
}
body.player-combat-screen-active .player-combat-quickbar-actions {
  display: none !important;
}

@media (max-width: 380px) {
  body.player-combat-screen-active .player-combat-chronicle-row p {
    padding-left: 66px !important;
    padding-right: 68px !important;
  }
  body.player-combat-screen-active .player-combat-float-action {
    width: 52px !important;
    min-width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
  }
  body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap,
  body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap.health-avatar-story {
    --hp-size: 50px !important;
    width: 50px !important;
    height: 50px !important;
  }
  body.player-combat-screen-active .player-combat-enemy-avatar,
  body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap > .avatar,
  body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap > img.avatar,
  body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap > .avatar-placeholder {
    width: 41px !important;
    height: 41px !important;
  }
}


/* v423 — correção do blackout e tarja sem ficha */
body.player-combat-screen-active #playerCombatPanel { display:flex !important; flex-direction:column !important; }
body.player-combat-screen-active #combatMembersList { display:flex !important; flex-direction:column !important; flex:1 1 auto !important; height:100% !important; min-height:0 !important; overflow:hidden !important; }
body.player-combat-screen-active .player-combat-stage.player-combat-stage-clean { display:flex !important; flex:1 1 0 !important; height:auto !important; min-height:0 !important; max-height:none !important; grid-template-rows:none !important; gap:0 !important; overflow:hidden !important; }
body.player-combat-screen-active .player-combat-stage-overlay { display:flex !important; position:relative !important; flex:1 1 0 !important; height:auto !important; min-height:0 !important; overflow:hidden !important; }
body.player-combat-screen-active .player-combat-chronicle-shell { position:relative !important; inset:auto !important; display:flex !important; flex:1 1 auto !important; min-height:0 !important; z-index:1 !important; overflow:hidden !important; }
body.player-combat-screen-active .player-combat-chronicle { display:block !important; flex:1 1 auto !important; height:100% !important; min-height:0 !important; max-height:none !important; overflow-y:auto !important; overflow-x:hidden !important; scrollbar-width:none !important; -ms-overflow-style:none !important; }
body.player-combat-screen-active .player-combat-chronicle::-webkit-scrollbar { width:0 !important; height:0 !important; display:none !important; }
body.player-combat-screen-active .player-combat-chronicle-row p { width:100% !important; box-sizing:border-box !important; }
body.player-combat-screen-active .player-combat-enemy-rail { z-index:3 !important; }
body.player-combat-screen-active .player-combat-action-rail { z-index:4 !important; }
body.player-combat-screen-active .player-combat-enemy-float, body.player-combat-screen-active .player-combat-enemy-float-inner, body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap { background:transparent !important; border:0 !important; outline:0 !important; box-shadow:none !important; filter:none !important; }
body.player-combat-screen-active .player-combat-enemy-float::before, body.player-combat-screen-active .player-combat-enemy-float::after, body.player-combat-screen-active .player-combat-enemy-float-inner::before, body.player-combat-screen-active .player-combat-enemy-float-inner::after, body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap::before, body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap::after { content:none !important; display:none !important; }
body.player-combat-screen-active .player-combat-enemy-float .health-ring-svg { filter:none !important; }
body.player-combat-screen-active .player-combat-quickbar-vital-only { flex:0 0 auto !important; min-height:58px !important; padding:6px 10px calc(6px + env(safe-area-inset-bottom, 0px)) !important; }
body.player-combat-screen-active .player-combat-quickbar-vital-only .player-combat-quickbar-main { display:flex !important; grid-template-columns:none !important; align-items:center !important; justify-content:flex-start !important; gap:10px !important; }
body.player-combat-screen-active .player-combat-quickbar-vital-only .player-combat-quickbar-vit-ring { width:48px !important; height:48px !important; }
body.player-combat-screen-active .player-combat-quickbar-vital-only .player-combat-quickbar-vit > small, body.player-combat-screen-active .player-combat-quickbar-vital-only .player-combat-quickbar-sheet, body.player-combat-screen-active .player-combat-quickbar-vital-only .player-combat-quickbar-turn, body.player-combat-screen-active .player-combat-quickbar-vital-only .player-combat-quickbar-effect-row { display:none !important; }
body.player-combat-screen-active .player-combat-quickbar-effects-compact { flex:1 1 auto !important; min-width:0 !important; display:flex !important; align-items:center !important; overflow:hidden !important; }
body.player-combat-screen-active .player-combat-quickbar-effects-compact .player-combat-quickbar-effects { display:flex !important; gap:6px !important; max-width:100% !important; overflow:hidden !important; }
body.player-combat-screen-active .player-combat-quickbar-effects-compact .player-combat-quickbar-effect-chip { max-width:120px !important; }
@media (max-width:380px){ body.player-combat-screen-active .player-combat-quickbar-vital-only .player-combat-quickbar-vit-ring{width:44px !important;height:44px !important;} body.player-combat-screen-active .player-combat-quickbar-vital-only{min-height:54px !important;} }

/* v424 — tela de combate reproduzida a partir da referência visual */
body.player-combat-screen-active {
  overflow: hidden !important;
}
body.player-combat-screen-active .forum-toast-stack {
  display: none !important;
}
body.player-combat-screen-active #playerCombatPanel {
  display: flex !important;
  flex-direction: column !important;
  min-height: calc(100dvh - 10px) !important;
  height: calc(100dvh - 10px) !important;
  overflow: hidden !important;
  padding: 6px 8px max(6px, env(safe-area-inset-bottom, 0px)) !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
body.player-combat-screen-active #combatMembersList {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  height: 100% !important;
  overflow: hidden !important;
}
body.player-combat-screen-active .player-combat-stage-reference {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  height: 100% !important;
  gap: 8px !important;
  overflow: hidden !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
body.player-combat-screen-active .player-combat-reference-header {
  flex: 0 0 auto !important;
  width: min(100%, 330px) !important;
  margin: 0 auto !important;
  padding: 12px 14px !important;
  border: 1px solid var(--border) !important;
  border-radius: 18px !important;
  background: var(--panel) !important;
  color: var(--text) !important;
  box-shadow: none !important;
}
body.player-combat-screen-active .player-combat-reference-header p,
body.player-combat-screen-active .player-combat-reference-header strong,
body.player-combat-screen-active .player-combat-reference-header span {
  display: block !important;
  margin: 0 !important;
}
body.player-combat-screen-active .player-combat-reference-header p {
  color: var(--muted) !important;
  font-size: .78rem !important;
  letter-spacing: .02em !important;
}
body.player-combat-screen-active .player-combat-reference-header strong {
  margin-top: 6px !important;
  font-size: 1rem !important;
  line-height: 1.2 !important;
}
body.player-combat-screen-active .player-combat-reference-header span {
  margin-top: 6px !important;
  color: var(--muted) !important;
  font-size: .92rem !important;
  line-height: 1.28 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
body.player-combat-screen-active .player-combat-reference-body {
  position: relative !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
}
body.player-combat-screen-active .player-combat-chronicle-shell {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  overflow: hidden !important;
  z-index: 1 !important;
}
body.player-combat-screen-active .player-combat-chronicle {
  height: 100% !important;
  width: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  padding: 8px 44px 10px 58px !important;
  box-sizing: border-box !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  display: block !important;
}
body.player-combat-screen-active .player-combat-chronicle::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}
body.player-combat-screen-active .player-combat-chronicle::before {
  content: "Crônica do Combate";
  display: block;
  margin: 0 0 8px;
  padding: 8px 0 4px;
  color: var(--muted);
  font-size: .78rem;
  border-top: 1px solid var(--border);
}
body.player-combat-screen-active .player-combat-chronicle-row {
  margin: 0 0 10px !important;
}
body.player-combat-screen-active .player-combat-chronicle-row p {
  display: flex !important;
  align-items: flex-start !important;
  gap: 7px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--text) !important;
  line-height: 1.35 !important;
  font-size: .93rem !important;
}
body.player-combat-screen-active .player-combat-chronicle-row .chronicle-action-number {
  flex: 0 0 auto !important;
  min-width: 1.35em !important;
  margin: 0 !important;
  padding-top: .18em !important;
  color: var(--text) !important;
  opacity: .8 !important;
  font-size: .76rem !important;
  font-family: var(--font-title, inherit) !important;
  font-weight: 800 !important;
}
body.player-combat-screen-active .player-combat-chronicle-empty {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--muted) !important;
  background: transparent !important;
  border: 0 !important;
}

body.player-combat-screen-active .player-combat-enemy-rail {
  position: absolute !important;
  left: 2px !important;
  top: 24px !important;
  bottom: 0 !important;
  z-index: 3 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 12px !important;
  overflow: visible !important;
  pointer-events: none !important;
}
body.player-combat-screen-active .player-combat-enemy-float {
  pointer-events: auto !important;
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 52px !important;
  min-width: 52px !important;
  height: auto !important;
  min-height: 52px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  color: var(--text) !important;
}
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap.health-avatar-story {
  --hp-size: 52px !important;
  width: 52px !important;
  height: 52px !important;
  padding: 3px !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}
body.player-combat-screen-active .player-combat-enemy-avatar,
body.player-combat-screen-active .player-combat-enemy-float .avatar,
body.player-combat-screen-active .player-combat-enemy-float img.avatar,
body.player-combat-screen-active .player-combat-enemy-float .avatar-placeholder {
  width: 43px !important;
  height: 43px !important;
  border: 0 !important;
  outline: 0 !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}
body.player-combat-screen-active .player-combat-enemy-float::before,
body.player-combat-screen-active .player-combat-enemy-float::after,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap::before,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap::after {
  content: none !important;
  display: none !important;
}
body.player-combat-screen-active .player-combat-enemy-float small {
  display: block !important;
  margin-top: 3px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--text) !important;
  font-size: .69rem !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  text-transform: none !important;
}
body.player-combat-screen-active .player-combat-enemy-float.is-dead {
  opacity: .4 !important;
}

body.player-combat-screen-active .player-combat-action-rail {
  position: absolute !important;
  right: 0 !important;
  bottom: 16px !important;
  z-index: 4 !important;
  display: flex !important;
  flex-direction: column-reverse !important;
  align-items: center !important;
  gap: 11px !important;
  pointer-events: none !important;
}
body.player-combat-screen-active .player-combat-float-action {
  pointer-events: auto !important;
  width: 56px !important;
  min-width: 56px !important;
  height: 56px !important;
  min-height: 56px !important;
  display: inline-flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 3px !important;
  padding: 5px 3px !important;
  border-radius: 18px !important;
  border: 1px solid var(--border) !important;
  background: var(--panel) !important;
  color: var(--text) !important;
  box-shadow: none !important;
  font: inherit !important;
}
body.player-combat-screen-active .player-combat-float-action span[aria-hidden="true"] {
  font-size: 18px !important;
  line-height: 1 !important;
}
body.player-combat-screen-active .player-combat-float-action small {
  color: var(--muted) !important;
  font-size: .62rem !important;
  line-height: 1 !important;
  letter-spacing: .03em !important;
  text-transform: uppercase !important;
}
body.player-combat-screen-active .player-combat-float-action.is-primary {
  background: var(--panel) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}
body.player-combat-screen-active .player-combat-float-action.is-active {
  border-color: #b10019 !important;
  background: #b10019 !important;
  color: #fff !important;
}
body.player-combat-screen-active .player-combat-float-action.is-active small {
  color: #fff !important;
}
body.player-combat-screen-active .player-combat-float-action:disabled {
  opacity: .44 !important;
}

body.player-combat-screen-active .player-combat-reference-player-card {
  flex: 0 0 auto !important;
  width: min(100%, 320px) !important;
  margin: 0 auto !important;
  padding: 10px 12px !important;
  border: 1px solid var(--border) !important;
  border-radius: 18px !important;
  background: var(--panel) !important;
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 10px !important;
  color: var(--text) !important;
  box-shadow: none !important;
}
body.player-combat-screen-active .player-combat-reference-avatar-wrap {
  position: relative !important;
  width: 54px !important;
  height: 54px !important;
  display: inline-grid !important;
  place-items: center !important;
}
body.player-combat-screen-active .player-combat-reference-avatar-wrap .health-avatar-wrap {
  --hp-size: 54px !important;
  width: 54px !important;
  height: 54px !important;
}
body.player-combat-screen-active .player-combat-reference-player-avatar,
body.player-combat-screen-active .player-combat-reference-avatar-wrap .avatar,
body.player-combat-screen-active .player-combat-reference-avatar-wrap img.avatar,
body.player-combat-screen-active .player-combat-reference-avatar-wrap .avatar-placeholder {
  width: 45px !important;
  height: 45px !important;
  border-radius: 999px !important;
}
body.player-combat-screen-active .player-combat-reference-avatar-wrap em {
  position: absolute !important;
  right: -5px !important;
  bottom: -3px !important;
  min-width: 24px !important;
  height: 24px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  background: var(--accent) !important;
  color: #fff !important;
  font-style: normal !important;
  font-weight: 800 !important;
  font-size: .82rem !important;
}
body.player-combat-screen-active .player-combat-reference-player-main {
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 3px !important;
}
body.player-combat-screen-active .player-combat-reference-player-main strong {
  color: var(--accent) !important;
  font-size: .96rem !important;
  line-height: 1.12 !important;
}
body.player-combat-screen-active .player-combat-reference-player-main span {
  color: var(--muted) !important;
  font-size: .76rem !important;
  line-height: 1 !important;
}
body.player-combat-screen-active .player-combat-reference-stat-row {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 5px !important;
  margin-top: 3px !important;
}
body.player-combat-screen-active .player-combat-reference-stat-row small,
body.player-combat-screen-active .player-combat-reference-stat-row b {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 20px !important;
  padding: 2px 7px !important;
  border-radius: 999px !important;
  background: color-mix(in srgb, var(--panel) 76%, #000 24%) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  font-size: .65rem !important;
  line-height: 1 !important;
  font-weight: 800 !important;
}
body.player-combat-screen-active .player-combat-reference-stat-row small {
  font-weight: 500 !important;
  color: var(--muted) !important;
}
body.player-combat-screen-active .player-combat-quickbar,
body.player-combat-screen-active .player-combat-quickbar-restored,
body.player-combat-screen-active .player-combat-quickbar-vital-only {
  display: none !important;
}

/* A lente do Olho Gospel precisa sobrepor a tela dedicada sem ser escondida pelos painéis de combate. */
body.player-combat-screen-active.qr-camera-open #qrReader,
body.player-combat-screen-active.qr-camera-open #qrStatus,
body.player-combat-screen-active.qr-camera-open #stopQr {
  display: block !important;
  visibility: visible !important;
}
body.player-combat-screen-active.qr-camera-open #stopQr {
  display: inline-flex !important;
}

@media (max-width: 380px) {
  body.player-combat-screen-active #playerCombatPanel {
    padding-left: 6px !important;
    padding-right: 6px !important;
  }
  body.player-combat-screen-active .player-combat-reference-header,
  body.player-combat-screen-active .player-combat-reference-player-card {
    width: min(100%, 316px) !important;
  }
  body.player-combat-screen-active .player-combat-chronicle {
    padding-left: 54px !important;
    padding-right: 40px !important;
  }
  body.player-combat-screen-active .player-combat-float-action {
    width: 52px !important;
    min-width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
  }
  body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap,
  body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap.health-avatar-story {
    --hp-size: 48px !important;
    width: 48px !important;
    height: 48px !important;
  }
  body.player-combat-screen-active .player-combat-enemy-avatar,
  body.player-combat-screen-active .player-combat-enemy-float .avatar,
  body.player-combat-screen-active .player-combat-enemy-float img.avatar,
  body.player-combat-screen-active .player-combat-enemy-float .avatar-placeholder {
    width: 40px !important;
    height: 40px !important;
  }
}


/* v425 — acabamento da tela de combate: verde de vitalidade + tema claro/escuro */
body.player-combat-screen-active {
  --combat-accent: var(--hp-green, #62d66f);
  --combat-bg: var(--bg);
  --combat-panel: var(--surface-strong);
  --combat-panel-soft: var(--surface);
  --combat-border: color-mix(in srgb, var(--line) 80%, var(--combat-accent) 20%);
  --combat-text: var(--text);
  --combat-muted: var(--muted);
  background: var(--combat-bg) !important;
}
@media (prefers-color-scheme: light) {
  body.player-combat-screen-active {
    --combat-bg: #f7f3ec;
    --combat-panel: #fffaf2;
    --combat-panel-soft: #ffffff;
    --combat-border: color-mix(in srgb, var(--line) 72%, var(--combat-accent) 28%);
  }
}
@media (prefers-color-scheme: dark) {
  body.player-combat-screen-active {
    --combat-bg: #050606;
    --combat-panel: #121313;
    --combat-panel-soft: #171818;
    --combat-border: color-mix(in srgb, var(--line) 64%, var(--combat-accent) 36%);
  }
}
body.player-combat-screen-active::-webkit-scrollbar,
body.player-combat-screen-active #playerCombatPanel::-webkit-scrollbar,
body.player-combat-screen-active #combatMembersList::-webkit-scrollbar,
body.player-combat-screen-active .player-combat-reference-body::-webkit-scrollbar,
body.player-combat-screen-active .player-combat-stage-reference::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}
body.player-combat-screen-active #playerCombatPanel {
  background: var(--combat-bg) !important;
  color: var(--combat-text) !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
body.player-combat-screen-active .player-combat-stage-reference {
  gap: 10px !important;
  background: var(--combat-bg) !important;
}
body.player-combat-screen-active .player-combat-reference-header {
  width: min(100%, 330px) !important;
  padding: 13px 14px 14px !important;
  border: 1px solid var(--combat-border) !important;
  border-radius: 18px !important;
  background: var(--combat-panel) !important;
  color: var(--combat-text) !important;
}
body.player-combat-screen-active .player-combat-reference-header::after {
  content: "";
  display: block;
  height: 1px;
  margin-top: 12px;
  background: var(--combat-border);
}
body.player-combat-screen-active .player-combat-reference-header p {
  color: var(--combat-muted) !important;
  font-size: .78rem !important;
}
body.player-combat-screen-active .player-combat-reference-header strong {
  color: var(--combat-text) !important;
  font-size: 1.02rem !important;
}
body.player-combat-screen-active .player-combat-reference-header span {
  color: var(--combat-muted) !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
}
body.player-combat-screen-active .player-combat-reference-body {
  width: min(100%, 330px) !important;
  margin: 0 auto !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
body.player-combat-screen-active .player-combat-chronicle {
  padding: 0 42px 8px 54px !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
body.player-combat-screen-active .player-combat-chronicle::before {
  content: "Crônica do Combate" !important;
  margin: 0 0 10px !important;
  padding: 0 0 7px !important;
  border-top: 0 !important;
  border-bottom: 1px solid var(--combat-border) !important;
  color: var(--combat-muted) !important;
  font-size: .76rem !important;
}
body.player-combat-screen-active .player-combat-chronicle-row p {
  color: var(--combat-text) !important;
  font-size: .95rem !important;
  line-height: 1.37 !important;
}
body.player-combat-screen-active .player-combat-chronicle-row .chronicle-action-number {
  color: var(--combat-text) !important;
  opacity: .92 !important;
  min-width: 1.45em !important;
}
body.player-combat-screen-active .player-combat-enemy-rail {
  left: 0 !important;
  top: 16px !important;
  gap: 12px !important;
}
body.player-combat-screen-active .player-combat-enemy-float,
body.player-combat-screen-active .player-combat-enemy-float:focus,
body.player-combat-screen-active .player-combat-enemy-float:active,
body.player-combat-screen-active .player-combat-enemy-float:hover {
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap {
  background: transparent !important;
  box-shadow: none !important;
}
body.player-combat-screen-active .player-combat-enemy-float .health-ring-life {
  stroke: var(--combat-accent) !important;
}
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap[style] {
  --hp-ring-color: var(--combat-accent) !important;
}
body.player-combat-screen-active .player-combat-enemy-float small {
  color: var(--combat-text) !important;
  opacity: .95 !important;
}
body.player-combat-screen-active .player-combat-action-rail {
  right: 0 !important;
  bottom: 18px !important;
  gap: 13px !important;
}
body.player-combat-screen-active .player-combat-float-action {
  width: 58px !important;
  min-width: 58px !important;
  height: 58px !important;
  min-height: 58px !important;
  border-radius: 999px !important;
  border: 1px solid var(--combat-border) !important;
  background: var(--combat-panel) !important;
  color: var(--combat-text) !important;
}
body.player-combat-screen-active .player-combat-float-action small {
  color: var(--combat-muted) !important;
  font-size: .59rem !important;
}
body.player-combat-screen-active .player-combat-float-action.is-primary,
body.player-combat-screen-active .player-combat-float-action.is-active {
  background: color-mix(in srgb, var(--combat-accent) 16%, var(--combat-panel)) !important;
  border-color: var(--combat-accent) !important;
  color: var(--combat-text) !important;
}
body.player-combat-screen-active .player-combat-float-action.is-primary small,
body.player-combat-screen-active .player-combat-float-action.is-active small {
  color: var(--combat-muted) !important;
}
body.player-combat-screen-active .player-combat-float-action:disabled {
  opacity: .45 !important;
}
body.player-combat-screen-active .player-combat-reference-player-card {
  width: min(100%, 330px) !important;
  padding: 11px 12px !important;
  border: 1px solid var(--combat-border) !important;
  border-radius: 18px !important;
  background: var(--combat-panel) !important;
  color: var(--combat-text) !important;
}
body.player-combat-screen-active .player-combat-reference-player-main strong {
  color: var(--combat-accent) !important;
}
body.player-combat-screen-active .player-combat-reference-avatar-wrap em {
  background: var(--combat-accent) !important;
  color: #061006 !important;
}
body.player-combat-screen-active .player-combat-reference-stat-row small,
body.player-combat-screen-active .player-combat-reference-stat-row b {
  background: color-mix(in srgb, var(--combat-panel) 72%, var(--combat-bg) 28%) !important;
  border-color: var(--combat-border) !important;
  color: var(--combat-text) !important;
}
body.player-combat-screen-active .player-combat-reference-stat-row small {
  color: var(--combat-muted) !important;
}
@media (max-width: 380px) {
  body.player-combat-screen-active .player-combat-reference-body,
  body.player-combat-screen-active .player-combat-reference-header,
  body.player-combat-screen-active .player-combat-reference-player-card {
    width: min(100%, 318px) !important;
  }
  body.player-combat-screen-active .player-combat-chronicle {
    padding-left: 52px !important;
    padding-right: 38px !important;
  }
  body.player-combat-screen-active .player-combat-float-action {
    width: 54px !important;
    min-width: 54px !important;
    height: 54px !important;
    min-height: 54px !important;
  }
}


/* v426 — tentativa mais fiel à referência do jogador */
body.player-combat-screen-active { --combat-life-green:#6fbd12; --combat-neutral-border: var(--border); --combat-neutral-panel: var(--panel); --combat-neutral-text: var(--text); --combat-neutral-muted: var(--muted); }
@media (prefers-color-scheme: light) { body.player-combat-screen-active { --combat-screen-bg:#f6f2ea; --combat-neutral-panel:#fffaf2; --combat-neutral-border:#d8d1c4; } }
@media (prefers-color-scheme: dark) { body.player-combat-screen-active { --combat-screen-bg:#050505; --combat-neutral-panel:#101112; --combat-neutral-border:#282b2f; } }
body.player-combat-screen-active, body.player-combat-screen-active #playerCombatPanel { background:var(--combat-screen-bg) !important; color:var(--combat-neutral-text) !important; }
body.player-combat-screen-active .player-combat-stage-reference { width:min(100%, 360px) !important; margin:0 auto !important; gap:8px !important; background:transparent !important; }
body.player-combat-screen-active .player-combat-reference-header { width:min(100%, 330px) !important; margin:0 auto !important; padding:13px 14px 12px !important; border:1px solid var(--combat-neutral-border) !important; border-radius:18px !important; background:var(--combat-neutral-panel) !important; color:var(--combat-neutral-text) !important; }
body.player-combat-screen-active .player-combat-reference-header::after { background:var(--combat-neutral-border) !important; opacity:.9 !important; }
body.player-combat-screen-active .player-combat-reference-header p, body.player-combat-screen-active .player-combat-reference-header span { color:var(--combat-neutral-muted) !important; }
body.player-combat-screen-active .player-combat-reference-header strong { color:var(--combat-neutral-text) !important; }
body.player-combat-screen-active .player-combat-reference-body { position:relative !important; width:min(100%, 330px) !important; margin:0 auto !important; min-height:410px !important; overflow:hidden !important; }
body.player-combat-screen-active .player-combat-chronicle-shell { position:relative !important; z-index:1 !important; height:100% !important; }
body.player-combat-screen-active .player-combat-chronicle { background:transparent !important; border:0 !important; border-radius:0 !important; padding:0 8px 10px 8px !important; min-height:410px !important; max-height:430px !important; overflow:auto !important; scrollbar-width:none !important; -ms-overflow-style:none !important; }
body.player-combat-screen-active .player-combat-chronicle::-webkit-scrollbar { width:0 !important; height:0 !important; display:none !important; }
body.player-combat-screen-active .player-combat-chronicle::before { content:"Crônica do Combate" !important; display:block !important; margin:0 0 9px 0 !important; padding:0 0 7px 0 !important; border-bottom:1px solid var(--combat-neutral-border) !important; color:var(--combat-neutral-muted) !important; font-size:.76rem !important; }
body.player-combat-screen-active .player-combat-chronicle-row { margin:0 0 10px !important; }
body.player-combat-screen-active .player-combat-chronicle-row p { background:transparent !important; border:0 !important; border-radius:0 !important; padding:0 !important; color:var(--combat-neutral-text) !important; font-size:.95rem !important; line-height:1.35 !important; box-shadow:none !important; }
body.player-combat-screen-active .player-combat-chronicle-row .chronicle-action-number { min-width:1.45em !important; margin-right:.55em !important; color:var(--combat-neutral-text) !important; opacity:.96 !important; font-weight:800 !important; }
body.player-combat-screen-active .player-combat-enemy-rail { position:absolute !important; z-index:3 !important; left:0 !important; top:38px !important; display:flex !important; flex-direction:column !important; align-items:center !important; gap:10px !important; pointer-events:none !important; }
body.player-combat-screen-active .player-combat-enemy-float { pointer-events:auto !important; width:56px !important; min-width:56px !important; height:auto !important; min-height:56px !important; padding:0 !important; margin:0 !important; background:transparent !important; border:0 !important; box-shadow:none !important; outline:0 !important; display:flex !important; flex-direction:column !important; align-items:center !important; gap:4px !important; }
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap { width:54px !important; height:54px !important; background:transparent !important; border:0 !important; box-shadow:none !important; --hp-ring-color:var(--combat-life-green) !important; }
body.player-combat-screen-active .player-combat-enemy-float .health-ring-life { stroke:var(--combat-life-green) !important; }
body.player-combat-screen-active .player-combat-enemy-avatar, body.player-combat-screen-active .player-combat-enemy-float .avatar, body.player-combat-screen-active .player-combat-enemy-float img.avatar, body.player-combat-screen-active .player-combat-enemy-float .avatar-placeholder { width:46px !important; height:46px !important; border-radius:999px !important; }
body.player-combat-screen-active .player-combat-enemy-float small { background:transparent !important; border:0 !important; padding:0 !important; color:var(--combat-neutral-text) !important; font-size:.72rem !important; font-weight:500 !important; text-transform:none !important; }
body.player-combat-screen-active .player-combat-action-rail { position:absolute !important; z-index:4 !important; right:0 !important; bottom:22px !important; display:flex !important; flex-direction:column-reverse !important; align-items:center !important; gap:13px !important; pointer-events:none !important; }
body.player-combat-screen-active .player-combat-float-action { pointer-events:auto !important; width:58px !important; min-width:58px !important; height:58px !important; min-height:58px !important; border-radius:999px !important; border:1px solid var(--combat-neutral-border) !important; background:var(--combat-neutral-panel) !important; color:var(--combat-neutral-text) !important; box-shadow:none !important; padding:5px 3px !important; }
body.player-combat-screen-active .player-combat-float-action small { color:var(--combat-neutral-muted) !important; font-size:.58rem !important; line-height:1 !important; letter-spacing:.04em !important; text-transform:uppercase !important; }
body.player-combat-screen-active .player-combat-float-action span[aria-hidden="true"] { font-size:18px !important; }
body.player-combat-screen-active .player-combat-float-action.is-primary { width:72px !important; min-width:72px !important; height:72px !important; min-height:72px !important; background:var(--combat-neutral-panel) !important; border-color:var(--combat-neutral-border) !important; color:var(--combat-neutral-text) !important; font-weight:800 !important; }
body.player-combat-screen-active .player-combat-float-action.is-primary span[aria-hidden="true"] { font-size:23px !important; }
body.player-combat-screen-active .player-combat-float-action.is-primary small { color:var(--combat-neutral-muted) !important; font-size:.68rem !important; }
body.player-combat-screen-active .player-combat-float-action.is-active { background:var(--combat-neutral-panel) !important; border-color:var(--combat-neutral-border) !important; color:var(--combat-neutral-text) !important; }
body.player-combat-screen-active .player-combat-float-action.is-active small { color:var(--combat-neutral-muted) !important; }
body.player-combat-screen-active .player-combat-float-action:disabled { opacity:.42 !important; }
body.player-combat-screen-active .player-combat-reference-player-card { width:min(100%, 330px) !important; margin:0 auto !important; padding:10px 12px !important; border:1px solid var(--combat-neutral-border) !important; border-radius:18px !important; background:var(--combat-neutral-panel) !important; color:var(--combat-neutral-text) !important; }
body.player-combat-screen-active .player-combat-reference-player-main strong { color:var(--combat-neutral-text) !important; }
body.player-combat-screen-active .player-combat-reference-player-main span { color:var(--combat-neutral-muted) !important; }
body.player-combat-screen-active .player-combat-reference-avatar-wrap em { background:#1677ff !important; color:#fff !important; }
body.player-combat-screen-active .player-combat-reference-stat-row small, body.player-combat-screen-active .player-combat-reference-stat-row b { background:var(--combat-screen-bg) !important; border:1px solid var(--combat-neutral-border) !important; color:var(--combat-neutral-text) !important; }
body.player-combat-screen-active .player-combat-reference-stat-row small { color:var(--combat-neutral-muted) !important; }
body.player-combat-screen-active.qr-camera-open .player-shell > section.player-grid { display:grid !important; position:fixed !important; inset:0 !important; z-index:12000 !important; margin:0 !important; padding:max(14px, env(safe-area-inset-top,0px)) 14px max(14px, env(safe-area-inset-bottom,0px)) !important; background:var(--combat-screen-bg) !important; overflow:auto !important; }
body.player-combat-screen-active.qr-camera-open .player-shell > section.player-grid > .qr-minimal-panel { display:block !important; visibility:visible !important; position:relative !important; width:min(100%, 520px) !important; margin:0 auto !important; z-index:12001 !important; background:var(--combat-neutral-panel) !important; border:1px solid var(--combat-neutral-border) !important; }
body.player-combat-screen-active.qr-camera-open #qrReader { display:block !important; visibility:visible !important; min-height:280px !important; }
body.player-combat-screen-active.qr-camera-open #stopQr { display:inline-flex !important; visibility:visible !important; }
body.player-combat-screen-active.qr-camera-open #startQr.hidden { display:none !important; }
@media (max-width:380px) { body.player-combat-screen-active .player-combat-stage-reference, body.player-combat-screen-active .player-combat-reference-header, body.player-combat-screen-active .player-combat-reference-body, body.player-combat-screen-active .player-combat-reference-player-card { width:min(100%, 330px) !important; } body.player-combat-screen-active .player-combat-chronicle { padding-left:6px !important; padding-right:6px !important; } }


/* v427 — refinamento de alinhamento da referência */
body.player-combat-screen-active .player-combat-chronicle { padding:0 4px 10px 58px !important; }
body.player-combat-screen-active .player-combat-chronicle-row p { padding-right:0 !important; }
body.player-combat-screen-active .player-combat-enemy-rail { left:-6px !important; top:38px !important; gap:8px !important; }
body.player-combat-screen-active .player-combat-enemy-float { width:52px !important; height:52px !important; align-items:center !important; justify-content:center !important; }
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap { width:50px !important; height:50px !important; margin:0 !important; display:flex !important; align-items:center !important; justify-content:center !important; }
body.player-combat-screen-active .player-combat-enemy-float .health-avatar { width:42px !important; height:42px !important; margin:0 !important; }
body.player-combat-screen-active .player-combat-enemy-float img { object-fit:cover !important; object-position:center !important; }
body.player-combat-screen-active .player-combat-action-rail { right:-2px !important; bottom:122px !important; gap:12px !important; }
body.player-combat-screen-active .player-combat-float-action.is-primary { width:74px !important; min-width:74px !important; height:74px !important; min-height:74px !important; }
body.player-combat-screen-active .player-combat-float-action { backdrop-filter:none !important; }
body.player-combat-screen-active .player-combat-reference-body { overflow:hidden !important; }
body.player-combat-screen-active .player-combat-chronicle-shell { overflow:hidden !important; }
@media (max-width: 430px) { body.player-combat-screen-active .player-combat-chronicle { padding-left:54px !important; padding-right:2px !important; } body.player-combat-screen-active .player-combat-action-rail { right:-4px !important; } body.player-combat-screen-active .player-combat-enemy-rail { left:-8px !important; } }


/* v430 — reset limpo do layout de combate: ancoras independentes */
body.player-combat-screen-active #playerCombatPanel { overflow:visible !important; padding-bottom:0 !important; }
body.player-combat-screen-active .player-combat-stage-reference { width:min(100%, 370px) !important; margin:0 auto !important; display:flex !important; flex-direction:column !important; gap:12px !important; overflow:visible !important; }
body.player-combat-screen-active .player-combat-reference-header { width:100% !important; box-sizing:border-box !important; margin:0 auto !important; }
body.player-combat-screen-active .player-combat-reference-body { position:relative !important; width:100% !important; height:min(54vh, 430px) !important; min-height:390px !important; max-height:460px !important; overflow:visible !important; flex:0 0 auto !important; }
body.player-combat-screen-active .player-combat-chronicle-shell { position:absolute !important; inset:0 !important; z-index:1 !important; overflow:hidden !important; }
body.player-combat-screen-active .player-combat-chronicle { position:absolute !important; inset:0 !important; height:auto !important; min-height:0 !important; max-height:none !important; overflow-y:auto !important; overflow-x:hidden !important; padding:0 4px 12px 72px !important; box-sizing:border-box !important; background:transparent !important; border:0 !important; box-shadow:none !important; scrollbar-width:none !important; -ms-overflow-style:none !important; }
body.player-combat-screen-active .player-combat-chronicle::-webkit-scrollbar { width:0 !important; height:0 !important; display:none !important; }
body.player-combat-screen-active .player-combat-chronicle::before { margin-left:0 !important; }
body.player-combat-screen-active .player-combat-chronicle-row { margin:0 0 10px !important; }
body.player-combat-screen-active .player-combat-chronicle-row p { background:transparent !important; border:0 !important; padding:0 !important; margin:0 !important; line-height:1.36 !important; box-shadow:none !important; }
body.player-combat-screen-active .player-combat-chronicle-row .chronicle-action-number { display:inline !important; min-width:0 !important; margin:0 .3em 0 0 !important; }
body.player-combat-screen-active .player-combat-enemy-rail { position:absolute !important; left:0 !important; bottom:0 !important; top:auto !important; width:78px !important; z-index:3 !important; display:flex !important; flex-direction:column !important; align-items:center !important; justify-content:flex-end !important; gap:12px !important; pointer-events:none !important; overflow:visible !important; }
body.player-combat-screen-active .player-combat-enemy-grunts { display:flex !important; flex-direction:column !important; align-items:center !important; gap:12px !important; overflow:visible !important; }
body.player-combat-screen-active .player-combat-enemy-float { pointer-events:auto !important; width:52px !important; height:52px !important; min-width:52px !important; min-height:52px !important; border:0 !important; background:transparent !important; padding:0 !important; margin:0 !important; display:flex !important; align-items:center !important; justify-content:center !important; overflow:visible !important; box-shadow:none !important; }
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap { width:50px !important; height:50px !important; min-width:50px !important; min-height:50px !important; margin:0 !important; display:flex !important; align-items:center !important; justify-content:center !important; }
body.player-combat-screen-active .player-combat-enemy-float .health-avatar, body.player-combat-screen-active .player-combat-enemy-avatar { width:42px !important; height:42px !important; min-width:42px !important; min-height:42px !important; margin:0 !important; object-fit:cover !important; object-position:center !important; }
body.player-combat-screen-active .player-combat-boss-slot { display:flex !important; flex-direction:column !important; align-items:center !important; justify-content:flex-end !important; gap:3px !important; margin:0 !important; padding:0 !important; pointer-events:none !important; }
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float { width:74px !important; height:74px !important; min-width:74px !important; min-height:74px !important; pointer-events:auto !important; }
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap { width:72px !important; height:72px !important; min-width:72px !important; min-height:72px !important; }
body.player-combat-screen-active .player-combat-boss-slot .health-avatar, body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-avatar { width:62px !important; height:62px !important; min-width:62px !important; min-height:62px !important; }
body.player-combat-screen-active .player-combat-boss-slot span { font-size:.78rem !important; line-height:1 !important; color:var(--combat-neutral-text) !important; }
body.player-combat-screen-active .player-combat-action-rail { position:absolute !important; right:0 !important; bottom:16px !important; top:auto !important; width:82px !important; z-index:4 !important; display:flex !important; flex-direction:column-reverse !important; align-items:center !important; justify-content:flex-start !important; gap:12px !important; overflow:visible !important; }
body.player-combat-screen-active .player-combat-float-action { width:58px !important; min-width:58px !important; height:58px !important; min-height:58px !important; border-radius:999px !important; margin:0 !important; }
body.player-combat-screen-active .player-combat-float-action.is-primary { width:74px !important; min-width:74px !important; height:74px !important; min-height:74px !important; }
body.player-combat-screen-active .player-combat-reference-player-card { width:100% !important; box-sizing:border-box !important; margin:0 auto !important; flex:0 0 auto !important; }
@media (max-width:420px) { body.player-combat-screen-active .player-combat-stage-reference { width:min(100%, 352px) !important; } body.player-combat-screen-active .player-combat-reference-body { height:min(53vh, 414px) !important; min-height:374px !important; } body.player-combat-screen-active .player-combat-chronicle { padding-left:66px !important; padding-right:2px !important; } body.player-combat-screen-active .player-combat-enemy-rail { width:72px !important; gap:10px !important; } body.player-combat-screen-active .player-combat-enemy-grunts { gap:10px !important; } body.player-combat-screen-active .player-combat-action-rail { width:76px !important; gap:10px !important; } }


/* v431 — ajuste fino: card mais baixo, lacaios mais à esquerda, botões menores mais à direita */
body.player-combat-screen-active .player-combat-stage-reference { min-height: calc(100svh - 150px) !important; }
body.player-combat-screen-active .player-combat-reference-player-card { margin-top: auto !important; margin-bottom: 0 !important; }
body.player-combat-screen-active .player-combat-reference-body { margin-bottom: 4px !important; }
body.player-combat-screen-active .player-combat-enemy-rail { left: -12px !important; bottom: -2px !important; width: 74px !important; align-items:flex-start !important; }
body.player-combat-screen-active .player-combat-enemy-grunts { align-items:flex-start !important; gap: 16px !important; }
body.player-combat-screen-active .player-combat-enemy-float { width: 50px !important; height: 50px !important; min-width:50px !important; min-height:50px !important; }
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap { width: 48px !important; height: 48px !important; min-width:48px !important; min-height:48px !important; }
body.player-combat-screen-active .player-combat-enemy-float .health-avatar, body.player-combat-screen-active .player-combat-enemy-avatar { width: 40px !important; height: 40px !important; min-width:40px !important; min-height:40px !important; }
body.player-combat-screen-active .player-combat-boss-slot { align-items:flex-start !important; transform: translateX(-2px) !important; }
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float { width: 74px !important; height: 74px !important; min-width:74px !important; min-height:74px !important; }
body.player-combat-screen-active .player-combat-action-rail { right: -10px !important; bottom: -2px !important; width: 80px !important; align-items:flex-end !important; gap: 14px !important; }
body.player-combat-screen-active .player-combat-float-action { width: 56px !important; min-width:56px !important; height: 56px !important; min-height:56px !important; }
body.player-combat-screen-active .player-combat-float-action.is-primary { width: 74px !important; min-width:74px !important; height: 74px !important; min-height:74px !important; }
body.player-combat-screen-active .player-combat-chronicle { padding-left: 78px !important; padding-right: 6px !important; }
@media (max-width: 420px) { body.player-combat-screen-active .player-combat-stage-reference { min-height: calc(100svh - 140px) !important; } body.player-combat-screen-active .player-combat-enemy-rail { left:-10px !important; width:70px !important; } body.player-combat-screen-active .player-combat-enemy-grunts { gap:14px !important; } body.player-combat-screen-active .player-combat-action-rail { right:-8px !important; width:78px !important; } body.player-combat-screen-active .player-combat-chronicle { padding-left:74px !important; } }


/* v432 — descer card/rails e empurrar mais para os cantos */
body.player-combat-screen-active .player-combat-stage-reference { min-height: calc(100svh - 132px) !important; gap: 10px !important; }
body.player-combat-screen-active .player-combat-reference-body { height:min(58vh, 470px) !important; min-height:420px !important; max-height:490px !important; margin-bottom: 0 !important; }
body.player-combat-screen-active .player-combat-reference-player-card { margin-top: 4px !important; margin-bottom: 0 !important; }
body.player-combat-screen-active .player-combat-enemy-rail { left:-18px !important; bottom:-14px !important; width:76px !important; }
body.player-combat-screen-active .player-combat-enemy-grunts { gap:18px !important; }
body.player-combat-screen-active .player-combat-boss-slot { transform: translateX(-4px) !important; }
body.player-combat-screen-active .player-combat-action-rail { right:-18px !important; bottom:-14px !important; width:84px !important; gap:16px !important; }
body.player-combat-screen-active .player-combat-float-action { width:56px !important; min-width:56px !important; height:56px !important; min-height:56px !important; }
body.player-combat-screen-active .player-combat-float-action.is-primary { width:74px !important; min-width:74px !important; height:74px !important; min-height:74px !important; }
body.player-combat-screen-active .player-combat-chronicle { padding-left: 82px !important; padding-right: 8px !important; }
@media (max-width: 420px) { body.player-combat-screen-active .player-combat-stage-reference { min-height: calc(100svh - 126px) !important; } body.player-combat-screen-active .player-combat-reference-body { height:min(57vh, 456px) !important; min-height:404px !important; } body.player-combat-screen-active .player-combat-enemy-rail { left:-16px !important; bottom:-12px !important; width:72px !important; } body.player-combat-screen-active .player-combat-enemy-grunts { gap:16px !important; } body.player-combat-screen-active .player-combat-action-rail { right:-16px !important; bottom:-12px !important; width:80px !important; gap:14px !important; } body.player-combat-screen-active .player-combat-chronicle { padding-left:78px !important; } }


/* v433 — alinhar Boss com Atacar, restaurar aro e abrir mais a crônica à esquerda */
body.player-combat-screen-active .player-combat-reference-body { height:min(59vh, 478px) !important; min-height:428px !important; max-height:500px !important; }
body.player-combat-screen-active .player-combat-reference-player-card { margin-top: 2px !important; }
body.player-combat-screen-active .player-combat-enemy-rail { left:-16px !important; bottom:-12px !important; width:76px !important; }
body.player-combat-screen-active .player-combat-enemy-grunts { gap:18px !important; }
body.player-combat-screen-active .player-combat-boss-slot { position:relative !important; align-items:flex-start !important; transform: translate(-4px, 8px) !important; padding-bottom:16px !important; }
body.player-combat-screen-active .player-combat-boss-slot span { position:absolute !important; left:0 !important; right:auto !important; bottom:0 !important; margin:0 !important; }
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float.is-boss, body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float { width:74px !important; min-width:74px !important; height:74px !important; min-height:74px !important; }
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap { width:72px !important; min-width:72px !important; height:72px !important; min-height:72px !important; --hp-ring-color: var(--combat-life-green) !important; }
body.player-combat-screen-active .player-combat-boss-slot .health-ring-life { stroke: var(--combat-life-green) !important; }
body.player-combat-screen-active .player-combat-boss-slot .health-avatar, body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-avatar { width:62px !important; min-width:62px !important; height:62px !important; min-height:62px !important; }
body.player-combat-screen-active .player-combat-action-rail { right:-16px !important; bottom:-4px !important; width:84px !important; gap:16px !important; }
body.player-combat-screen-active .player-combat-float-action { width:56px !important; min-width:56px !important; height:56px !important; min-height:56px !important; }
body.player-combat-screen-active .player-combat-float-action.is-primary { width:74px !important; min-width:74px !important; height:74px !important; min-height:74px !important; }
body.player-combat-screen-active .player-combat-chronicle { padding-left: 70px !important; padding-right: 8px !important; }
@media (max-width: 420px) { body.player-combat-screen-active .player-combat-reference-body { height:min(58vh, 462px) !important; min-height:412px !important; } body.player-combat-screen-active .player-combat-enemy-rail { left:-14px !important; bottom:-10px !important; width:72px !important; } body.player-combat-screen-active .player-combat-boss-slot { transform: translate(-3px, 7px) !important; } body.player-combat-screen-active .player-combat-action-rail { right:-14px !important; bottom:-2px !important; width:80px !important; } body.player-combat-screen-active .player-combat-chronicle { padding-left:66px !important; } }


/* v435 - visual only: stable combat rails and visible Boss life ring */
body.player-combat-screen-active .player-combat-stage-reference {
  width: min(100%, 370px) !important;
  min-height: calc(100svh - 132px) !important;
  margin: 0 auto !important;
  gap: 10px !important;
  overflow: visible !important;
}

body.player-combat-screen-active .player-combat-reference-header,
body.player-combat-screen-active .player-combat-reference-player-card {
  width: 100% !important;
  box-sizing: border-box !important;
}

body.player-combat-screen-active .player-combat-reference-body {
  position: relative !important;
  width: 100% !important;
  height: min(58vh, 462px) !important;
  min-height: 412px !important;
  max-height: 486px !important;
  margin: 0 !important;
  overflow: visible !important;
  flex: 0 0 auto !important;
}

body.player-combat-screen-active .player-combat-chronicle-shell {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  overflow: hidden !important;
}

body.player-combat-screen-active .player-combat-chronicle {
  position: absolute !important;
  inset: 0 !important;
  padding: 0 72px 12px 74px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
}

body.player-combat-screen-active .player-combat-enemy-rail {
  position: absolute !important;
  left: -14px !important;
  top: auto !important;
  bottom: -2px !important;
  width: 78px !important;
  height: calc(100% - 24px) !important;
  z-index: 3 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-end !important;
  gap: 12px !important;
  overflow: visible !important;
  pointer-events: none !important;
}

body.player-combat-screen-active .player-combat-enemy-grunts {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-end !important;
  gap: 15px !important;
  overflow: visible !important;
  pointer-events: none !important;
}

body.player-combat-screen-active .player-combat-enemy-float {
  width: 52px !important;
  min-width: 52px !important;
  height: 52px !important;
  min-height: 52px !important;
  overflow: visible !important;
  pointer-events: auto !important;
}

body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap.health-avatar-story {
  width: 52px !important;
  min-width: 52px !important;
  height: 52px !important;
  min-height: 52px !important;
  padding: 3px !important;
  overflow: visible !important;
  display: grid !important;
  place-items: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  --hp-ring-color: var(--combat-life-green) !important;
}

body.player-combat-screen-active .player-combat-enemy-float .health-ring-svg {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  overflow: visible !important;
  z-index: 2 !important;
  filter: none !important;
}

body.player-combat-screen-active .player-combat-enemy-float .health-ring-track,
body.player-combat-screen-active .player-combat-enemy-float .health-ring-life {
  stroke-width: 7px !important;
}

body.player-combat-screen-active .player-combat-enemy-float .health-ring-life {
  stroke: var(--combat-life-green) !important;
}

body.player-combat-screen-active .player-combat-enemy-float .avatar,
body.player-combat-screen-active .player-combat-enemy-float img.avatar,
body.player-combat-screen-active .player-combat-enemy-float .avatar-placeholder,
body.player-combat-screen-active .player-combat-enemy-avatar {
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  min-height: 42px !important;
  object-fit: cover !important;
  object-position: center !important;
  z-index: 1 !important;
}

body.player-combat-screen-active .player-combat-boss-slot {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 3px !important;
  width: 78px !important;
  min-height: 88px !important;
  margin: 0 !important;
  padding: 0 0 16px 0 !important;
  transform: translateX(-1px) !important;
  overflow: visible !important;
  pointer-events: none !important;
}

body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float,
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float.is-boss {
  width: 74px !important;
  min-width: 74px !important;
  height: 74px !important;
  min-height: 74px !important;
  overflow: visible !important;
  pointer-events: auto !important;
}

body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap.health-avatar-story {
  width: 74px !important;
  min-width: 74px !important;
  height: 74px !important;
  min-height: 74px !important;
  padding: 4px !important;
  overflow: visible !important;
}

body.player-combat-screen-active .player-combat-boss-slot .health-ring-svg {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  overflow: visible !important;
  z-index: 3 !important;
}

body.player-combat-screen-active .player-combat-boss-slot .health-ring-track,
body.player-combat-screen-active .player-combat-boss-slot .health-ring-life {
  stroke-width: 6.5px !important;
}

body.player-combat-screen-active .player-combat-boss-slot .health-avatar,
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-avatar,
body.player-combat-screen-active .player-combat-boss-slot .avatar,
body.player-combat-screen-active .player-combat-boss-slot img.avatar,
body.player-combat-screen-active .player-combat-boss-slot .avatar-placeholder {
  width: 62px !important;
  min-width: 62px !important;
  height: 62px !important;
  min-height: 62px !important;
  z-index: 1 !important;
}

body.player-combat-screen-active .player-combat-boss-slot span {
  position: absolute !important;
  left: 1px !important;
  bottom: 0 !important;
  margin: 0 !important;
  font-size: .78rem !important;
  line-height: 1 !important;
  color: var(--combat-neutral-text) !important;
}

body.player-combat-screen-active .player-combat-action-rail {
  position: absolute !important;
  right: -14px !important;
  top: auto !important;
  bottom: 0 !important;
  width: 84px !important;
  z-index: 4 !important;
  display: flex !important;
  flex-direction: column-reverse !important;
  align-items: flex-end !important;
  justify-content: flex-start !important;
  gap: 14px !important;
  overflow: visible !important;
  pointer-events: none !important;
}

body.player-combat-screen-active .player-combat-float-action {
  width: 56px !important;
  min-width: 56px !important;
  height: 56px !important;
  min-height: 56px !important;
  pointer-events: auto !important;
}

body.player-combat-screen-active .player-combat-float-action.is-primary {
  width: 74px !important;
  min-width: 74px !important;
  height: 74px !important;
  min-height: 74px !important;
}

@media (max-width: 420px) {
  body.player-combat-screen-active .player-combat-stage-reference {
    width: min(100%, 352px) !important;
    min-height: calc(100svh - 126px) !important;
  }
  body.player-combat-screen-active .player-combat-reference-body {
    height: min(58vh, 456px) !important;
    min-height: 406px !important;
  }
  body.player-combat-screen-active .player-combat-chronicle {
    padding-left: 70px !important;
    padding-right: 68px !important;
  }
  body.player-combat-screen-active .player-combat-enemy-rail {
    left: -12px !important;
    bottom: 0 !important;
    width: 74px !important;
  }
  body.player-combat-screen-active .player-combat-enemy-grunts {
    gap: 14px !important;
  }
  body.player-combat-screen-active .player-combat-action-rail {
    right: -12px !important;
    bottom: 2px !important;
    width: 80px !important;
    gap: 12px !important;
  }
}

@media (max-width: 360px) {
  body.player-combat-screen-active .player-combat-chronicle {
    padding-left: 62px !important;
    padding-right: 62px !important;
  }
  body.player-combat-screen-active .player-combat-enemy-rail {
    left: -10px !important;
  }
  body.player-combat-screen-active .player-combat-action-rail {
    right: -10px !important;
  }
}

/* v436 - combat header, timeline flow and compact creature life rings */
body.player-combat-screen-active .player-combat-stage-reference {
  gap: 6px !important;
}

body.player-combat-screen-active .player-combat-reference-header {
  width: 100% !important;
  margin: 0 auto !important;
  padding: 0 14px 8px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.player-combat-screen-active .player-combat-reference-header::before,
body.player-combat-screen-active .player-combat-reference-header::after {
  content: none !important;
  display: none !important;
}

body.player-combat-screen-active .player-combat-reference-header p {
  margin: 0 0 4px !important;
}

body.player-combat-screen-active .player-combat-reference-header strong {
  display: block !important;
  margin: 0 0 3px !important;
}

body.player-combat-screen-active .player-combat-reference-header span {
  display: block !important;
  margin: 0 !important;
}

body.player-combat-screen-active .player-combat-turn-countdown {
  margin-top: 8px !important;
}

body.player-combat-screen-active .player-combat-turn-countdown .autonomous-turn-countdown-inline {
  width: auto !important;
  min-height: 28px !important;
  margin: 0 !important;
  padding: 5px 10px !important;
  display: inline-flex !important;
  justify-content: flex-start !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.06) !important;
  color: var(--combat-neutral-muted) !important;
  font-size: .78rem !important;
  line-height: 1 !important;
}

body.player-combat-screen-active .player-combat-turn-countdown .autonomous-turn-countdown-inline strong {
  min-width: 4.2ch !important;
  color: var(--combat-neutral-text) !important;
  font-size: .92rem !important;
  font-variant-numeric: tabular-nums !important;
  text-align: center !important;
}

body.player-combat-screen-active .player-combat-chronicle-title {
  margin-top: 10px !important;
  padding-top: 10px !important;
  border-top: 1px solid var(--combat-neutral-border) !important;
  color: var(--combat-neutral-muted) !important;
  font-size: .76rem !important;
  line-height: 1.1 !important;
}

body.player-combat-screen-active .player-combat-reference-body {
  height: min(56vh, 438px) !important;
  min-height: 390px !important;
  max-height: 456px !important;
}

body.player-combat-screen-active .player-combat-chronicle::before {
  content: none !important;
  display: none !important;
}

body.player-combat-screen-active .player-combat-chronicle {
  padding-top: 0 !important;
  scroll-behavior: auto !important;
}

body.player-combat-screen-active .player-combat-chronicle-row:first-child {
  margin-top: 0 !important;
}

body.player-combat-screen-active .player-combat-enemy-float,
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float,
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float.is-boss {
  width: 54px !important;
  min-width: 54px !important;
  height: 54px !important;
  min-height: 54px !important;
}

body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap.health-avatar-story,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap.health-avatar-story {
  --hp-size: 54px !important;
  width: 54px !important;
  min-width: 54px !important;
  height: 54px !important;
  min-height: 54px !important;
  padding: 0 !important;
}

body.player-combat-screen-active .player-combat-enemy-float .health-ring-track,
body.player-combat-screen-active .player-combat-enemy-float .health-ring-life,
body.player-combat-screen-active .player-combat-boss-slot .health-ring-track,
body.player-combat-screen-active .player-combat-boss-slot .health-ring-life {
  stroke-width: 5.5px !important;
}

body.player-combat-screen-active .player-combat-enemy-float .avatar,
body.player-combat-screen-active .player-combat-enemy-float img.avatar,
body.player-combat-screen-active .player-combat-enemy-float .avatar-placeholder,
body.player-combat-screen-active .player-combat-enemy-avatar,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar,
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-avatar,
body.player-combat-screen-active .player-combat-boss-slot .avatar,
body.player-combat-screen-active .player-combat-boss-slot img.avatar,
body.player-combat-screen-active .player-combat-boss-slot .avatar-placeholder {
  width: 45px !important;
  min-width: 45px !important;
  height: 45px !important;
  min-height: 45px !important;
}

body.player-combat-screen-active .player-combat-boss-slot {
  width: 58px !important;
  min-height: 72px !important;
  padding-bottom: 14px !important;
  transform: none !important;
}

body.player-combat-screen-active .player-combat-boss-slot span {
  left: 0 !important;
  width: 54px !important;
  text-align: center !important;
}

body.player-combat-screen-active .player-combat-enemy-rail {
  width: 62px !important;
}

body.player-combat-screen-active .player-combat-chronicle {
  padding-left: 64px !important;
  padding-right: 68px !important;
}

@media (max-width: 420px) {
  body.player-combat-screen-active .player-combat-reference-body {
    height: min(56vh, 430px) !important;
    min-height: 382px !important;
  }
  body.player-combat-screen-active .player-combat-chronicle {
    padding-left: 60px !important;
    padding-right: 64px !important;
  }
  body.player-combat-screen-active .player-combat-enemy-rail {
    width: 60px !important;
  }
}

/* v437 - keep boss size, remove duplicate chronicle label and lock header height */
body.player-combat-screen-active .player-combat-reference-header {
  height: 112px !important;
  min-height: 112px !important;
  max-height: 112px !important;
  overflow: hidden !important;
  padding: 0 14px 8px !important;
}

body.player-combat-screen-active .player-combat-reference-header p {
  color: var(--combat-neutral-text) !important;
  font-size: .95rem !important;
  line-height: 1.15 !important;
}

body.player-combat-screen-active .player-combat-reference-header strong {
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.player-combat-screen-active .player-combat-reference-header span {
  max-width: 100% !important;
  max-height: 1.25rem !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.player-combat-screen-active .player-combat-chronicle-title {
  display: none !important;
}

body.player-combat-screen-active .player-combat-reference-body {
  height: min(58vh, 462px) !important;
  min-height: 412px !important;
  max-height: 486px !important;
}

body.player-combat-screen-active .player-combat-enemy-float .health-ring-track,
body.player-combat-screen-active .player-combat-enemy-float .health-ring-life,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap > .health-ring-svg .health-ring-track,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap > .health-ring-svg .health-ring-life,
body.player-combat-screen-active .player-combat-boss-slot .health-ring-track,
body.player-combat-screen-active .player-combat-boss-slot .health-ring-life,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap > .health-ring-svg .health-ring-track,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap > .health-ring-svg .health-ring-life {
  stroke-width: 5px !important;
}

body.player-combat-screen-active .player-combat-boss-slot {
  width: 78px !important;
  min-height: 88px !important;
  padding: 0 0 16px 0 !important;
  transform: translateX(-1px) !important;
}

body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float,
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float.is-boss {
  width: 74px !important;
  min-width: 74px !important;
  height: 74px !important;
  min-height: 74px !important;
}

body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap.health-avatar-story {
  --hp-size: 74px !important;
  width: 74px !important;
  min-width: 74px !important;
  height: 74px !important;
  min-height: 74px !important;
}

body.player-combat-screen-active .player-combat-boss-slot .health-avatar,
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-avatar,
body.player-combat-screen-active .player-combat-boss-slot .avatar,
body.player-combat-screen-active .player-combat-boss-slot img.avatar,
body.player-combat-screen-active .player-combat-boss-slot .avatar-placeholder {
  width: 62px !important;
  min-width: 62px !important;
  height: 62px !important;
  min-height: 62px !important;
}

body.player-combat-screen-active .player-combat-boss-slot span {
  width: 74px !important;
}

@media (max-width: 420px) {
  body.player-combat-screen-active .player-combat-reference-header {
    height: 108px !important;
    min-height: 108px !important;
    max-height: 108px !important;
  }
}

/* v438 - force creature life rings to the same thin visual weight as the player card */
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap.health-avatar-story,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap.health-avatar-story {
  --hp-ring-stroke-width: 3px !important;
  --hp-ring-stroke-width-active: 3px !important;
}

body.player-combat-screen-active .player-combat-enemy-float .health-ring-track,
body.player-combat-screen-active .player-combat-enemy-float .health-ring-life,
body.player-combat-screen-active .player-combat-enemy-float .health-ring-pulse,
body.player-combat-screen-active .player-combat-boss-slot .health-ring-track,
body.player-combat-screen-active .player-combat-boss-slot .health-ring-life,
body.player-combat-screen-active .player-combat-boss-slot .health-ring-pulse,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap.is-current-turn .health-ring-track,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap.is-current-turn .health-ring-life,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap.is-current-turn .health-ring-track,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap.is-current-turn .health-ring-life {
  stroke-width: 3px !important;
}

/* v440 - player-weight rings and boss aligned with the attack button */
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap.health-avatar-story,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap.health-avatar-story {
  --hp-ring-stroke-width: 5px !important;
  --hp-ring-stroke-width-active: 5px !important;
}

body.player-combat-screen-active .player-combat-enemy-float .health-ring-track,
body.player-combat-screen-active .player-combat-enemy-float .health-ring-life,
body.player-combat-screen-active .player-combat-enemy-float .health-ring-pulse,
body.player-combat-screen-active .player-combat-boss-slot .health-ring-track,
body.player-combat-screen-active .player-combat-boss-slot .health-ring-life,
body.player-combat-screen-active .player-combat-boss-slot .health-ring-pulse,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap.is-current-turn .health-ring-track,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap.is-current-turn .health-ring-life,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap.is-current-turn .health-ring-track,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap.is-current-turn .health-ring-life {
  stroke-width: 5px !important;
}

body.player-combat-screen-active .player-combat-boss-slot {
  width: 74px !important;
  min-height: 74px !important;
  height: 74px !important;
  padding: 0 !important;
  transform: none !important;
  justify-content: flex-end !important;
}

body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float,
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float.is-boss,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap.health-avatar-story {
  --hp-size: 74px !important;
  width: 74px !important;
  min-width: 74px !important;
  height: 74px !important;
  min-height: 74px !important;
}

body.player-combat-screen-active .player-combat-boss-slot span {
  position: absolute !important;
  left: 0 !important;
  bottom: -14px !important;
  width: 74px !important;
  text-align: center !important;
  pointer-events: none !important;
}

/* v441 - boss avatar itself matches the attack button and stays on the same baseline */
body.player-combat-screen-active .player-combat-enemy-rail {
  bottom: 0 !important;
  width: 82px !important;
}

body.player-combat-screen-active .player-combat-action-rail {
  bottom: 0 !important;
}

body.player-combat-screen-active .player-combat-boss-slot {
  width: 74px !important;
  min-width: 74px !important;
  height: 74px !important;
  min-height: 74px !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  align-items: flex-start !important;
  justify-content: flex-end !important;
  overflow: visible !important;
}

body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float,
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float.is-boss,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap.health-avatar-story,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar,
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-avatar,
body.player-combat-screen-active .player-combat-boss-slot .avatar,
body.player-combat-screen-active .player-combat-boss-slot img.avatar,
body.player-combat-screen-active .player-combat-boss-slot .avatar-placeholder {
  --hp-size: 74px !important;
  width: 74px !important;
  min-width: 74px !important;
  height: 74px !important;
  min-height: 74px !important;
  max-width: 74px !important;
  max-height: 74px !important;
  border-radius: 999px !important;
}

body.player-combat-screen-active .player-combat-boss-slot span {
  display: none !important;
}

/* v442 - combat group action, boss baseline and quiet empty chronicle */
body.player-combat-screen-active .player-combat-chronicle-empty {
  display: none !important;
}

body.player-combat-screen-active .player-combat-enemy-rail {
  left: -14px !important;
  bottom: 22px !important;
  width: 82px !important;
  height: calc(100% - 44px) !important;
  position: absolute !important;
}

body.player-combat-screen-active .player-combat-enemy-grunts {
  padding-bottom: 90px !important;
}

body.player-combat-screen-active .player-combat-boss-slot {
  position: absolute !important;
  left: 0 !important;
  bottom: 0 !important;
  width: 74px !important;
  min-width: 74px !important;
  height: 74px !important;
  min-height: 74px !important;
}

body.player-combat-screen-active .player-combat-action-rail {
  bottom: 22px !important;
  gap: 10px !important;
}

body.player-combat-screen-active .player-combat-action-rail .player-combat-float-action[data-combat-group] span {
  font-weight: 900 !important;
  font-size: 1rem !important;
  line-height: 1 !important;
}

.combat-group-dialog-card {
  width: min(94vw, 430px) !important;
}

.combat-group-members-list {
  display: grid !important;
  gap: 8px !important;
  margin-top: 10px !important;
}

/* v443 - independent combat rails and friend-account footer chips */
body.player-combat-screen-active .player-combat-reference-body {
  overflow: hidden !important;
}

body.player-combat-screen-active .player-combat-enemy-rail {
  left: -14px !important;
  top: 0 !important;
  bottom: 0 !important;
  height: 100% !important;
  width: 82px !important;
  display: block !important;
  overflow: visible !important;
}

body.player-combat-screen-active .player-combat-enemy-grunts {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  bottom: 86px !important;
  width: 60px !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 14px !important;
  overflow: hidden !important;
}

body.player-combat-screen-active .player-combat-boss-slot {
  position: absolute !important;
  left: 0 !important;
  bottom: 0 !important;
  width: 74px !important;
  height: 74px !important;
  min-width: 74px !important;
  min-height: 74px !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
}

body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float,
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float.is-boss,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap.health-avatar-story {
  --hp-size: 74px !important;
  width: 74px !important;
  min-width: 74px !important;
  height: 74px !important;
  min-height: 74px !important;
  max-width: 74px !important;
  max-height: 74px !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
}

body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap::before,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap::after,
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float::before,
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-float::after {
  content: none !important;
  display: none !important;
}

body.player-combat-screen-active .player-combat-boss-slot .health-avatar,
body.player-combat-screen-active .player-combat-boss-slot .player-combat-enemy-avatar,
body.player-combat-screen-active .player-combat-boss-slot .avatar,
body.player-combat-screen-active .player-combat-boss-slot img.avatar,
body.player-combat-screen-active .player-combat-boss-slot .avatar-placeholder {
  width: 64px !important;
  min-width: 64px !important;
  height: 64px !important;
  min-height: 64px !important;
  max-width: 64px !important;
  max-height: 64px !important;
  border-radius: 999px !important;
  object-fit: cover !important;
  object-position: center !important;
}

body.player-combat-screen-active .player-combat-action-rail {
  bottom: 0 !important;
  gap: 10px !important;
}

body.player-combat-screen-active .player-combat-friend-footer {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  margin: -2px 0 0 !important;
  padding: 0 2px !important;
}

body.player-combat-screen-active .player-combat-friend-chip {
  min-height: 22px !important;
  max-width: 100% !important;
  padding: 2px 9px !important;
  border: 1px solid var(--combat-neutral-border) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.04) !important;
  color: var(--combat-neutral-text) !important;
  font-size: .72rem !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* v444 - keep rails inside viewport and show friend chips inside player card */
body.player-combat-screen-active .player-combat-reference-body {
  overflow: hidden !important;
}

body.player-combat-screen-active .player-combat-enemy-rail {
  left: 6px !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 76px !important;
  height: 100% !important;
}

body.player-combat-screen-active .player-combat-enemy-grunts {
  left: 0 !important;
  top: 0 !important;
  bottom: 84px !important;
  width: 58px !important;
  gap: 12px !important;
  overflow: hidden !important;
}

body.player-combat-screen-active .player-combat-boss-slot {
  left: 0 !important;
  bottom: 0 !important;
  width: 74px !important;
  height: 74px !important;
}

body.player-combat-screen-active .player-combat-action-rail {
  right: 6px !important;
  bottom: 0 !important;
  width: 76px !important;
  align-items: center !important;
  gap: 10px !important;
}

body.player-combat-screen-active .player-combat-reference-player-main {
  min-width: 0 !important;
}

body.player-combat-screen-active .player-combat-reference-player-main .player-combat-friend-footer {
  width: 100% !important;
  margin: 6px 0 0 !important;
  padding: 0 !important;
}

body.player-combat-screen-active .player-combat-reference-player-main .player-combat-friend-chip {
  min-height: 20px !important;
  max-width: 100% !important;
  padding: 2px 8px !important;
  font-size: .69rem !important;
}


/* v445 — geometria responsiva dos trilhos do combate */
body.player-combat-screen-active {
  --combat-rail-gap: clamp(8px, 1.55vh, 14px);
  --combat-enemy-size: clamp(44px, 12vw, 54px);
  --combat-boss-size: clamp(64px, 17.5vw, 76px);
  --combat-action-size: clamp(50px, 13.5vw, 58px);
  --combat-attack-size: var(--combat-boss-size);
  --combat-left-rail-w: calc(var(--combat-boss-size) + 10px);
  --combat-right-rail-w: calc(var(--combat-attack-size) + 8px);
  --combat-rail-bottom: clamp(2px, .8vh, 8px);
}
body.player-combat-screen-active .player-combat-stage-reference { width:min(100%, 372px) !important; margin:0 auto !important; display:flex !important; flex-direction:column !important; gap:10px !important; min-height:calc(100svh - 120px) !important; overflow:visible !important; }
body.player-combat-screen-active .player-combat-reference-body { position:relative !important; width:100% !important; height:min(58svh, 480px) !important; min-height:410px !important; max-height:500px !important; margin:0 auto !important; overflow:hidden !important; }
body.player-combat-screen-active .player-combat-reference-player-card { width:100% !important; box-sizing:border-box !important; margin:0 auto !important; flex:0 0 auto !important; }
body.player-combat-screen-active .player-combat-chronicle-shell { position:absolute !important; inset:0 !important; z-index:1 !important; overflow:hidden !important; }
body.player-combat-screen-active .player-combat-chronicle { position:absolute !important; inset:0 !important; height:auto !important; min-height:0 !important; max-height:none !important; overflow-y:auto !important; overflow-x:hidden !important; padding:0 4px 12px calc(var(--combat-enemy-size) + 18px) !important; box-sizing:border-box !important; background:transparent !important; border:0 !important; box-shadow:none !important; scrollbar-width:none !important; -ms-overflow-style:none !important; }
body.player-combat-screen-active .player-combat-chronicle::-webkit-scrollbar { width:0 !important; height:0 !important; display:none !important; }
body.player-combat-screen-active .player-combat-chronicle-row p { background:transparent !important; border:0 !important; padding:0 !important; margin:0 !important; line-height:1.36 !important; box-shadow:none !important; }
body.player-combat-screen-active .player-combat-enemy-rail { position:absolute !important; left:0 !important; right:auto !important; top:0 !important; bottom:0 !important; width:var(--combat-left-rail-w) !important; height:100% !important; z-index:3 !important; pointer-events:none !important; overflow:visible !important; }
body.player-combat-screen-active .player-combat-enemy-stack { position:absolute !important; left:0 !important; bottom:var(--combat-rail-bottom) !important; width:var(--combat-left-rail-w) !important; max-height:100% !important; display:flex !important; flex-direction:column-reverse !important; align-items:flex-start !important; justify-content:flex-start !important; gap:var(--combat-rail-gap) !important; overflow:hidden !important; padding:0 !important; margin:0 !important; }
body.player-combat-screen-active .player-combat-enemy-float { pointer-events:auto !important; position:relative !important; border:0 !important; background:transparent !important; box-shadow:none !important; padding:0 !important; margin:0 !important; overflow:visible !important; display:flex !important; align-items:center !important; justify-content:center !important; width:var(--combat-enemy-size) !important; height:var(--combat-enemy-size) !important; min-width:var(--combat-enemy-size) !important; min-height:var(--combat-enemy-size) !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-boss { width:var(--combat-boss-size) !important; height:var(--combat-boss-size) !important; min-width:var(--combat-boss-size) !important; min-height:var(--combat-boss-size) !important; }
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap { --hp-ring-color:var(--combat-life-green) !important; width:100% !important; height:100% !important; min-width:100% !important; min-height:100% !important; margin:0 !important; display:flex !important; align-items:center !important; justify-content:center !important; background:transparent !important; border:0 !important; box-shadow:none !important; }
body.player-combat-screen-active .player-combat-enemy-float .health-ring-life { stroke:var(--combat-life-green) !important; }
body.player-combat-screen-active .player-combat-enemy-float .health-avatar, body.player-combat-screen-active .player-combat-enemy-float .player-combat-enemy-avatar, body.player-combat-screen-active .player-combat-enemy-float .avatar, body.player-combat-screen-active .player-combat-enemy-float img.avatar, body.player-combat-screen-active .player-combat-enemy-float .avatar-placeholder { width:calc(100% - 10px) !important; height:calc(100% - 10px) !important; min-width:calc(100% - 10px) !important; min-height:calc(100% - 10px) !important; max-width:calc(100% - 10px) !important; max-height:calc(100% - 10px) !important; border-radius:999px !important; object-fit:cover !important; object-position:center !important; margin:0 !important; }
body.player-combat-screen-active .player-combat-enemy-more { position:absolute !important; right:-4px !important; bottom:-3px !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; min-width:20px !important; height:20px !important; padding:0 5px !important; border-radius:999px !important; background:var(--combat-neutral-panel) !important; border:1px solid var(--combat-neutral-border) !important; color:var(--combat-neutral-text) !important; font-size:.68rem !important; font-style:normal !important; font-weight:900 !important; }
body.player-combat-screen-active .player-combat-action-rail { position:absolute !important; right:0 !important; left:auto !important; top:auto !important; bottom:var(--combat-rail-bottom) !important; width:var(--combat-right-rail-w) !important; max-height:100% !important; z-index:4 !important; display:flex !important; flex-direction:column-reverse !important; align-items:flex-end !important; justify-content:flex-start !important; gap:var(--combat-rail-gap) !important; overflow:visible !important; pointer-events:none !important; }
body.player-combat-screen-active .player-combat-float-action { pointer-events:auto !important; width:var(--combat-action-size) !important; height:var(--combat-action-size) !important; min-width:var(--combat-action-size) !important; min-height:var(--combat-action-size) !important; border-radius:999px !important; margin:0 !important; }
body.player-combat-screen-active .player-combat-float-action.is-primary { width:var(--combat-attack-size) !important; height:var(--combat-attack-size) !important; min-width:var(--combat-attack-size) !important; min-height:var(--combat-attack-size) !important; }
body.player-combat-screen-active .player-combat-friend-footer { display:flex !important; flex-wrap:wrap !important; gap:5px !important; margin:5px 0 0 !important; padding:0 !important; width:100% !important; }
body.player-combat-screen-active .player-combat-friend-chip { min-height:20px !important; max-width:100% !important; padding:2px 8px !important; border:1px solid var(--combat-neutral-border) !important; border-radius:999px !important; background:rgba(255,255,255,.04) !important; color:var(--combat-neutral-text) !important; font-size:.68rem !important; font-weight:800 !important; line-height:1.1 !important; overflow:hidden !important; text-overflow:ellipsis !important; white-space:nowrap !important; }
body.player-combat-screen-active .player-combat-friend-chip.is-own { opacity:.95 !important; }
body.player-combat-screen-active .player-combat-friend-chip.is-active { border-color:var(--combat-life-green) !important; }
@media (max-width:420px) { body.player-combat-screen-active { --combat-rail-gap: clamp(7px, 1.35vh, 12px); --combat-enemy-size: clamp(42px, 11.6vw, 50px); --combat-boss-size: clamp(62px, 17vw, 72px); --combat-action-size: clamp(48px, 13vw, 56px); } body.player-combat-screen-active .player-combat-stage-reference { width:min(100%, 354px) !important; min-height:calc(100svh - 112px) !important; } body.player-combat-screen-active .player-combat-reference-body { height:min(58svh, 462px) !important; min-height:398px !important; } body.player-combat-screen-active .player-combat-chronicle { padding-left:calc(var(--combat-enemy-size) + 16px) !important; } }


/* v446 — preservar Atacar, alinhar Boss ao Atacar e proteger timeline/card */
body.player-combat-screen-active #playerCombatPanel { height:100svh !important; min-height:100svh !important; overflow:hidden !important; }
@supports (height: 100dvh) { body.player-combat-screen-active #playerCombatPanel { height:100dvh !important; min-height:100dvh !important; } }
body.player-combat-screen-active .player-combat-stage-reference { height:calc(100svh - max(10px, env(safe-area-inset-bottom, 0px))) !important; min-height:0 !important; max-height:none !important; overflow:hidden !important; display:flex !important; flex-direction:column !important; gap:8px !important; }
@supports (height: 100dvh) { body.player-combat-screen-active .player-combat-stage-reference { height:calc(100dvh - max(10px, env(safe-area-inset-bottom, 0px))) !important; } }
body.player-combat-screen-active .player-combat-reference-header { flex:0 0 auto !important; }
body.player-combat-screen-active .player-combat-reference-body { flex:1 1 auto !important; height:auto !important; min-height:0 !important; max-height:none !important; overflow:hidden !important; margin:0 auto !important; }
body.player-combat-screen-active .player-combat-reference-player-card { flex:0 0 auto !important; margin:6px auto 0 !important; max-height:128px !important; overflow:hidden !important; }
body.player-combat-screen-active .player-combat-chronicle { padding-left:calc(var(--combat-enemy-size) + 16px) !important; padding-right:calc(var(--combat-action-size) + 18px) !important; }
body.player-combat-screen-active .player-combat-enemy-rail { left:2px !important; width:calc(var(--combat-attack-size) + 6px) !important; overflow:visible !important; }
body.player-combat-screen-active .player-combat-enemy-stack { left:0 !important; bottom:var(--combat-rail-bottom) !important; width:calc(var(--combat-attack-size) + 6px) !important; overflow:visible !important; align-items:flex-start !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-boss { width:var(--combat-attack-size) !important; height:var(--combat-attack-size) !important; min-width:var(--combat-attack-size) !important; min-height:var(--combat-attack-size) !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-boss .health-avatar-wrap { width:100% !important; height:100% !important; min-width:100% !important; min-height:100% !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-boss .health-ring-life { stroke:var(--combat-life-green) !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-boss .health-ring-track { opacity:.55 !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-boss .health-avatar, body.player-combat-screen-active .player-combat-enemy-float.is-boss .player-combat-enemy-avatar, body.player-combat-screen-active .player-combat-enemy-float.is-boss .avatar, body.player-combat-screen-active .player-combat-enemy-float.is-boss img.avatar { width:calc(100% - 10px) !important; height:calc(100% - 10px) !important; min-width:calc(100% - 10px) !important; min-height:calc(100% - 10px) !important; max-width:calc(100% - 10px) !important; max-height:calc(100% - 10px) !important; }
body.player-combat-screen-active .player-combat-action-rail { bottom:var(--combat-rail-bottom) !important; }
body.player-combat-screen-active .player-combat-friend-footer { display:flex !important; flex-wrap:nowrap !important; gap:5px !important; overflow-x:auto !important; overflow-y:hidden !important; max-width:100% !important; max-height:24px !important; padding:0 0 1px !important; margin:4px 0 0 !important; scrollbar-width:none !important; -ms-overflow-style:none !important; }
body.player-combat-screen-active .player-combat-friend-footer::-webkit-scrollbar { width:0 !important; height:0 !important; display:none !important; }
body.player-combat-screen-active .player-combat-friend-chip { flex:0 0 auto !important; white-space:nowrap !important; min-height:20px !important; max-height:22px !important; padding:2px 8px !important; }
@media (max-height:720px) { body.player-combat-screen-active .player-combat-reference-header { padding-top:9px !important; padding-bottom:9px !important; } body.player-combat-screen-active .player-combat-reference-player-card { padding-top:8px !important; padding-bottom:8px !important; max-height:118px !important; } body.player-combat-screen-active .player-combat-friend-footer { max-height:22px !important; } }
@media (max-width:420px) { body.player-combat-screen-active .player-combat-chronicle { padding-left:calc(var(--combat-enemy-size) + 14px) !important; padding-right:calc(var(--combat-action-size) + 14px) !important; } body.player-combat-screen-active .player-combat-enemy-rail, body.player-combat-screen-active .player-combat-enemy-stack { width:calc(var(--combat-attack-size) + 4px) !important; } }


/* v447 — limpar moldura interna dos avatares e igualar avatar do boss ao Atacar */
body.player-combat-screen-active { --combat-boss-avatar-size: var(--combat-attack-size); --combat-boss-ring-gap: 8px; --combat-boss-outer-size: calc(var(--combat-boss-avatar-size) + var(--combat-boss-ring-gap)); }
body.player-combat-screen-active .player-combat-enemy-rail { width:calc(var(--combat-boss-outer-size) + 4px) !important; left:2px !important; overflow:visible !important; }
body.player-combat-screen-active .player-combat-enemy-stack { width:calc(var(--combat-boss-outer-size) + 4px) !important; overflow:visible !important; }
body.player-combat-screen-active .player-combat-enemy-float, body.player-combat-screen-active .player-combat-enemy-float.is-lacaio { overflow:visible !important; }
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap { overflow:visible !important; }
body.player-combat-screen-active .player-combat-enemy-float .health-avatar,
body.player-combat-screen-active .player-combat-enemy-float .player-combat-enemy-avatar,
body.player-combat-screen-active .player-combat-enemy-float .avatar,
body.player-combat-screen-active .player-combat-enemy-float img.avatar,
body.player-combat-screen-active .player-combat-enemy-float .avatar-placeholder { border:0 !important; outline:0 !important; box-shadow:none !important; background:transparent !important; image-rendering:auto !important; -webkit-transform:translateZ(0); transform:translateZ(0); backface-visibility:hidden; }
body.player-combat-screen-active .player-combat-enemy-float .health-avatar, body.player-combat-screen-active .player-combat-enemy-float .player-combat-enemy-avatar, body.player-combat-screen-active .player-combat-enemy-float .avatar, body.player-combat-screen-active .player-combat-enemy-float img.avatar { width:calc(100% - 8px) !important; height:calc(100% - 8px) !important; min-width:calc(100% - 8px) !important; min-height:calc(100% - 8px) !important; max-width:calc(100% - 8px) !important; max-height:calc(100% - 8px) !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-boss { width:var(--combat-boss-outer-size) !important; height:var(--combat-boss-outer-size) !important; min-width:var(--combat-boss-outer-size) !important; min-height:var(--combat-boss-outer-size) !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-boss .health-avatar-wrap { width:var(--combat-boss-outer-size) !important; height:var(--combat-boss-outer-size) !important; min-width:var(--combat-boss-outer-size) !important; min-height:var(--combat-boss-outer-size) !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-boss .health-avatar,
body.player-combat-screen-active .player-combat-enemy-float.is-boss .player-combat-enemy-avatar,
body.player-combat-screen-active .player-combat-enemy-float.is-boss .avatar,
body.player-combat-screen-active .player-combat-enemy-float.is-boss img.avatar,
body.player-combat-screen-active .player-combat-enemy-float.is-boss .avatar-placeholder { width:var(--combat-boss-avatar-size) !important; height:var(--combat-boss-avatar-size) !important; min-width:var(--combat-boss-avatar-size) !important; min-height:var(--combat-boss-avatar-size) !important; max-width:var(--combat-boss-avatar-size) !important; max-height:var(--combat-boss-avatar-size) !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-boss .health-ring-life { stroke:var(--combat-life-green) !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-boss .health-ring-track { opacity:.55 !important; }
body.player-combat-screen-active .player-combat-chronicle { padding-left:calc(var(--combat-enemy-size) + 18px) !important; }
@media (max-width:420px) { body.player-combat-screen-active .player-combat-enemy-rail, body.player-combat-screen-active .player-combat-enemy-stack { width:calc(var(--combat-boss-outer-size) + 2px) !important; } body.player-combat-screen-active .player-combat-chronicle { padding-left:calc(var(--combat-enemy-size) + 16px) !important; } }


/* v448 — lacaio com encaixe do avatar como referência do jogador e mais espaço útil à direita da crônica */
body.player-combat-screen-active .player-combat-chronicle { padding-right: clamp(14px, 7vw, 36px) !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-lacaio { width:var(--combat-enemy-size) !important; height:var(--combat-enemy-size) !important; min-width:var(--combat-enemy-size) !important; min-height:var(--combat-enemy-size) !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-lacaio .health-avatar-wrap { --hp-size: var(--combat-enemy-size) !important; width:var(--combat-enemy-size) !important; height:var(--combat-enemy-size) !important; min-width:var(--combat-enemy-size) !important; min-height:var(--combat-enemy-size) !important; display:inline-grid !important; place-items:center !important; overflow:hidden !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-lacaio .health-ring-track, body.player-combat-screen-active .player-combat-enemy-float.is-lacaio .health-ring-life { stroke-width: 6px !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-lacaio .health-avatar,
body.player-combat-screen-active .player-combat-enemy-float.is-lacaio .player-combat-enemy-avatar,
body.player-combat-screen-active .player-combat-enemy-float.is-lacaio .avatar,
body.player-combat-screen-active .player-combat-enemy-float.is-lacaio img.avatar,
body.player-combat-screen-active .player-combat-enemy-float.is-lacaio .avatar-placeholder { width: calc(var(--combat-enemy-size) - 9px) !important; height: calc(var(--combat-enemy-size) - 9px) !important; min-width: calc(var(--combat-enemy-size) - 9px) !important; min-height: calc(var(--combat-enemy-size) - 9px) !important; max-width: calc(var(--combat-enemy-size) - 9px) !important; max-height: calc(var(--combat-enemy-size) - 9px) !important; display:block !important; border:0 !important; outline:0 !important; box-shadow:none !important; border-radius:999px !important; object-fit:cover !important; object-position:center center !important; background:transparent !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-boss .health-avatar-wrap { overflow:visible !important; }
body.player-combat-screen-active .player-combat-enemy-float.is-boss .health-avatar,
body.player-combat-screen-active .player-combat-enemy-float.is-boss .player-combat-enemy-avatar,
body.player-combat-screen-active .player-combat-enemy-float.is-boss .avatar,
body.player-combat-screen-active .player-combat-enemy-float.is-boss img.avatar,
body.player-combat-screen-active .player-combat-enemy-float.is-boss .avatar-placeholder { display:block !important; object-fit:cover !important; object-position:center center !important; border:0 !important; outline:0 !important; box-shadow:none !important; background:transparent !important; }
@media (max-width:420px) { body.player-combat-screen-active .player-combat-chronicle { padding-right: clamp(12px, 6vw, 30px) !important; } }


/* v449 — aro vermelho nas criaturas e pequeno recuo extra da crônica à direita */
body.player-combat-screen-active { --combat-creature-ring-color: #FF0000; }
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap { --hp-ring-color: var(--combat-creature-ring-color) !important; }
body.player-combat-screen-active .player-combat-enemy-float .health-ring-life,
body.player-combat-screen-active .player-combat-enemy-float .health-avatar-wrap > .health-ring-svg .health-ring-life,
body.player-combat-screen-active .player-combat-boss-slot .health-ring-life,
body.player-combat-screen-active .player-combat-boss-slot .health-avatar-wrap > .health-ring-svg .health-ring-life { stroke: var(--combat-creature-ring-color) !important; }
body.player-combat-screen-active .player-combat-chronicle { padding-right: clamp(24px, 9vw, 46px) !important; }
@media (max-width:420px) { body.player-combat-screen-active .player-combat-chronicle { padding-right: clamp(20px, 8vw, 38px) !important; } }


/* v450 — crônica justificada e com recuo para evitar os botões menores */
body.player-combat-screen-active { --combat-chronicle-safe-right: clamp(68px, 18vw, 92px); }
body.player-combat-screen-active .player-combat-chronicle { padding-right: var(--combat-chronicle-safe-right) !important; }
body.player-combat-screen-active .player-combat-chronicle-row p { text-align: justify !important; text-justify: inter-word !important; hyphens: auto !important; }
body.player-combat-screen-active .player-combat-reference-current-turn, body.player-combat-screen-active .player-combat-reference-subtitle { max-width: calc(100% - var(--combat-chronicle-safe-right)) !important; }
body.player-combat-screen-active .player-combat-action-rail { right: max(6px, env(safe-area-inset-right)) !important; }
body.player-combat-screen-active .player-combat-float-action:not(.is-primary) { width: 54px !important; min-width:54px !important; height:54px !important; min-height:54px !important; }
@media (max-width: 420px) { body.player-combat-screen-active { --combat-chronicle-safe-right: clamp(64px, 19vw, 84px); } }

/* v451 — janela de Pulsos no padrão visual do combate e sem fechar após confirmar */
.guardian-pulse-dialog-backdrop {
  padding: max(14px, env(safe-area-inset-top, 0px)) 14px max(14px, env(safe-area-inset-bottom, 0px)) !important;
}

.guardian-pulse-dialog-card {
  width: min(92vw, 500px) !important;
  max-height: min(86dvh, 720px) !important;
  padding: 18px !important;
  border-radius: 24px !important;
  background: var(--surface) !important;
  border: 1px solid var(--line) !important;
  box-shadow: none !important;
  display: grid !important;
  gap: 14px !important;
  overflow: hidden !important;
}

.guardian-pulse-dialog-head {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  gap: 12px !important;
  align-items: center !important;
  text-align: left !important;
}

.guardian-pulse-dialog-head h2 {
  margin: 0 !important;
  font-size: 1.25rem !important;
  line-height: 1.1 !important;
}

.guardian-pulse-dialog-head p {
  margin: 4px 0 0 !important;
  font-size: .86rem !important;
  line-height: 1.25 !important;
}

.guardian-pulse-rune {
  width: 42px !important;
  height: 42px !important;
  margin: 0 !important;
  border-radius: 999px !important;
  display: inline-grid !important;
  place-items: center !important;
  background: var(--surface-strong) !important;
  color: var(--text) !important;
  box-shadow: none !important;
}

.guardian-pulse-remaining {
  min-width: 58px !important;
  display: inline-grid !important;
  justify-items: center !important;
  gap: 0 !important;
  padding: 7px 9px !important;
  border-radius: 999px !important;
  background: var(--surface-strong) !important;
  border: 1px solid var(--line) !important;
  color: var(--text) !important;
}

.guardian-pulse-remaining small {
  color: var(--muted) !important;
  font-size: .62rem !important;
  text-transform: uppercase !important;
  letter-spacing: .04em !important;
}

.guardian-pulse-remaining strong {
  font-size: 1rem !important;
  line-height: 1 !important;
}

.guardian-pulse-list {
  display: grid !important;
  gap: 10px !important;
  max-height: min(56dvh, 470px) !important;
  overflow: auto !important;
  padding: 0 2px 0 0 !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}

.guardian-pulse-list::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}

.guardian-pulse-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 10px !important;
  padding: 12px !important;
  border-radius: 18px !important;
  background: var(--surface-strong) !important;
  border: 1px solid var(--line) !important;
  color: var(--text) !important;
  box-shadow: none !important;
  transition: border-color .18s ease, background .18s ease !important;
}

.guardian-pulse-row.just-updated {
  border-color: color-mix(in srgb, var(--accent) 65%, var(--line) 35%) !important;
  background: color-mix(in srgb, var(--surface-strong) 82%, var(--accent) 18%) !important;
}

.guardian-pulse-player-line {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 10px !important;
}

.guardian-pulse-avatar-wrap {
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
}

.guardian-pulse-avatar,
.guardian-pulse-avatar-wrap .avatar,
.guardian-pulse-avatar-wrap img.avatar,
.guardian-pulse-avatar-wrap .avatar-placeholder {
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  min-height: 38px !important;
  border-radius: 999px !important;
  border: 0 !important;
  box-shadow: none !important;
  object-fit: cover !important;
  object-position: center !important;
}

.guardian-pulse-info {
  min-width: 0 !important;
  display: grid !important;
  gap: 3px !important;
}

.guardian-pulse-info strong {
  font-size: 1rem !important;
  line-height: 1.1 !important;
  color: var(--text) !important;
}

.guardian-pulse-info small {
  font-size: .78rem !important;
  line-height: 1.25 !important;
  color: var(--muted) !important;
}

.guardian-pulse-form {
  display: grid !important;
  grid-template-columns: minmax(84px, 100px) minmax(120px, 150px) !important;
  justify-content: end !important;
  align-items: end !important;
  gap: 8px !important;
}

.guardian-pulse-form label {
  display: grid !important;
  gap: 4px !important;
  margin: 0 !important;
}

.guardian-pulse-form label span {
  color: var(--muted) !important;
  font-size: .68rem !important;
  text-transform: uppercase !important;
  letter-spacing: .04em !important;
}

.guardian-pulse-form input {
  width: 100% !important;
  min-width: 0 !important;
  height: 42px !important;
  border-radius: 14px !important;
  text-align: center !important;
  font-weight: 800 !important;
  background: var(--surface) !important;
  border: 1px solid var(--line) !important;
  color: var(--text) !important;
}

.guardian-pulse-form .combat-pulse-submit {
  min-height: 42px !important;
  border-radius: 999px !important;
  padding: 0 16px !important;
  font-weight: 800 !important;
  box-shadow: none !important;
}

.guardian-pulse-unavailable {
  justify-self: end !important;
  color: var(--muted) !important;
  font-size: .78rem !important;
}

.guardian-pulse-actions {
  margin: 0 !important;
}

.guardian-pulse-actions .guardian-pulse-close {
  width: 100% !important;
  min-height: 46px !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  font-weight: 800 !important;
}

@media (max-width: 520px) {
  .guardian-pulse-dialog-card {
    width: min(94vw, 500px) !important;
    padding: 16px !important;
    gap: 12px !important;
  }
  .guardian-pulse-dialog-head {
    grid-template-columns: auto minmax(0, 1fr) !important;
  }
  .guardian-pulse-remaining {
    grid-column: 1 / -1 !important;
    justify-self: start !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
  }
  .guardian-pulse-form {
    grid-template-columns: minmax(74px, 96px) minmax(116px, 1fr) !important;
    justify-content: stretch !important;
  }
}


/* v452 — Olho Gospel em combate abre como janela com câmera, cancelar e código manual */
body.combat-gospel-dialog-open { overflow:hidden !important; }
body.combat-gospel-dialog-open .combat-gospel-dialog-backdrop { z-index: 12500 !important; padding: 18px !important; }
body.combat-gospel-dialog-open .combat-gospel-dialog-card { width:min(94vw, 430px) !important; max-height: calc(100dvh - 36px) !important; overflow:auto !important; border-radius:24px !important; }
body.combat-gospel-dialog-open .combat-gospel-panel-host { width:100% !important; margin-top:14px !important; }
body.combat-gospel-dialog-open .qr-minimal-panel.combat-gospel-panel { display:block !important; visibility:visible !important; position:relative !important; width:100% !important; margin:0 !important; padding:0 !important; background:transparent !important; border:0 !important; box-shadow:none !important; }
body.combat-gospel-dialog-open .qr-minimal-panel.combat-gospel-panel .qr-headline { display:none !important; }
body.combat-gospel-dialog-open .qr-minimal-panel.combat-gospel-panel .qr-actions-row { display:flex !important; gap:8px !important; align-items:center !important; justify-content:center !important; margin:0 0 10px !important; }
body.combat-gospel-dialog-open .qr-minimal-panel.combat-gospel-panel #startQr { min-height:42px !important; border-radius:14px !important; font-size:1rem !important; padding:0 16px !important; }
body.combat-gospel-dialog-open .qr-minimal-panel.combat-gospel-panel #stopQr { min-height:42px !important; border-radius:14px !important; padding:0 16px !important; }
body.combat-gospel-dialog-open.qr-camera-open::before { content:none !important; display:none !important; }
body.combat-gospel-dialog-open.qr-camera-open #qrReader, body.combat-gospel-dialog-open #qrReader { position:relative !important; left:auto !important; top:auto !important; bottom:auto !important; transform:none !important; z-index:auto !important; width:100% !important; max-width:100% !important; min-height:min(56vh, 320px) !important; margin:8px 0 10px !important; border-radius:18px !important; border:1px solid var(--line) !important; background:#000 !important; box-shadow:none !important; overflow:hidden !important; }
body.combat-gospel-dialog-open #qrReader.hidden { display:none !important; }
body.combat-gospel-dialog-open #qrReader video { border-radius:18px !important; }
body.combat-gospel-dialog-open.qr-camera-open #qrStatus, body.combat-gospel-dialog-open #qrStatus { position:relative !important; left:auto !important; top:auto !important; bottom:auto !important; transform:none !important; z-index:auto !important; width:100% !important; margin:8px 0 !important; padding:9px 10px !important; border-radius:14px !important; border:1px solid var(--line) !important; background:var(--surface) !important; color:var(--text) !important; text-align:center !important; }
body.combat-gospel-dialog-open.qr-camera-open #stopQr { position:relative !important; left:auto !important; top:auto !important; bottom:auto !important; transform:none !important; z-index:auto !important; display:inline-flex !important; }
body.combat-gospel-dialog-open #manualQrForm { display:grid !important; grid-template-columns:minmax(0,1fr) auto !important; gap:8px !important; width:100% !important; margin-top:10px !important; }
body.combat-gospel-dialog-open #manualQrForm input { width:100% !important; min-height:42px !important; text-transform:uppercase !important; }
body.combat-gospel-dialog-open #manualQrForm .btn, body.combat-gospel-dialog-open #manualQrForm button { min-height:42px !important; }
body.combat-gospel-dialog-open .combat-gospel-dialog-actions { margin-top:14px !important; }
@media (max-width:420px) { body.combat-gospel-dialog-open .combat-gospel-dialog-backdrop { padding:10px !important; } body.combat-gospel-dialog-open .combat-gospel-dialog-card { max-height:calc(100dvh - 20px) !important; } body.combat-gospel-dialog-open.qr-camera-open #qrReader, body.combat-gospel-dialog-open #qrReader { min-height:min(48vh, 280px) !important; } }


/* v453 — Olho Gospel em combate: câmera primeiro, sem foco automático no campo manual */
body.combat-gospel-dialog-open #manualQrForm input[name="codigo"][data-combat-camera-first="1"] { scroll-margin-bottom: 0 !important; }


/* v454 — aviso sólido de ataque crítico no topo da timeline */
body.player-combat-screen-active .player-combat-float-action.is-active { border-color:#FF0000 !important; background:var(--combat-neutral-panel) !important; color:var(--combat-neutral-text) !important; box-shadow:none !important; }
body.player-combat-screen-active .player-combat-float-action.is-active small { color:var(--combat-neutral-muted) !important; }
body.player-combat-screen-active .player-combat-timeline-toast { display:block !important; width:100% !important; box-sizing:border-box !important; margin:0 0 10px 0 !important; padding:10px 12px !important; border:1px solid #FF0000 !important; border-radius:14px !important; background:var(--combat-neutral-panel) !important; color:var(--combat-neutral-text) !important; font-weight:800 !important; line-height:1.25 !important; text-align:left !important; opacity:1 !important; filter:none !important; backdrop-filter:none !important; box-shadow:none !important; }
body.player-combat-screen-active .player-combat-timeline-toast.is-critical-on { border-color:#FF0000 !important; }
body.player-combat-screen-active .player-combat-timeline-toast.is-critical-off { border-color:var(--combat-neutral-border) !important; }


/* v455 — aviso de crítico refinado, pequeno e sobreposto à timeline */
body.player-combat-screen-active .player-combat-chronicle-shell { position:absolute !important; }
body.player-combat-screen-active .player-combat-timeline-toast { position:absolute !important; z-index:8 !important; top:4px !important; left:calc(var(--combat-enemy-size) + 18px) !important; right:var(--combat-chronicle-safe-right, clamp(68px, 18vw, 92px)) !important; width:auto !important; max-width:none !important; box-sizing:border-box !important; margin:0 !important; padding:5px 8px !important; border:1px solid var(--combat-neutral-border) !important; border-radius:999px !important; background:var(--combat-neutral-panel) !important; color:var(--combat-neutral-text) !important; font-size:.72rem !important; font-weight:800 !important; line-height:1.1 !important; letter-spacing:.01em !important; text-align:center !important; opacity:1 !important; filter:none !important; backdrop-filter:none !important; box-shadow:none !important; pointer-events:none !important; }
body.player-combat-screen-active .player-combat-timeline-toast.is-critical-on { border-color:#FF0000 !important; }
body.player-combat-screen-active .player-combat-timeline-toast.is-critical-off { border-color:var(--combat-neutral-border) !important; }
@media (max-width:420px) { body.player-combat-screen-active .player-combat-timeline-toast { left:calc(var(--combat-enemy-size) + 16px) !important; right:var(--combat-chronicle-safe-right, clamp(64px, 19vw, 84px)) !important; font-size:.68rem !important; padding:5px 7px !important; } }


/* v456 — janela do grupo alinhada e com Pulsos de Vida visíveis */
body.player-combat-screen-active .combat-group-dialog-card { width:min(94vw, 430px) !important; padding:22px 24px !important; }
body.player-combat-screen-active .combat-group-dialog-card > h2 { margin:0 0 18px !important; text-align:center !important; }
body.player-combat-screen-active .combat-group-members-list { gap:10px !important; }
body.player-combat-screen-active .combat-group-member-row.item-row { padding:14px 16px !important; border-radius:18px !important; }
body.player-combat-screen-active .combat-group-person-line { display:grid !important; grid-template-columns:auto minmax(0,1fr) !important; align-items:center !important; gap:14px !important; width:100% !important; }
body.player-combat-screen-active .combat-group-avatar-wrap { width:56px !important; height:56px !important; min-width:56px !important; min-height:56px !important; display:inline-grid !important; place-items:center !important; }
body.player-combat-screen-active .combat-group-avatar, body.player-combat-screen-active .combat-group-avatar-wrap .avatar, body.player-combat-screen-active .combat-group-avatar-wrap img.avatar, body.player-combat-screen-active .combat-group-avatar-wrap .avatar-placeholder { width:46px !important; height:46px !important; min-width:46px !important; min-height:46px !important; border:0 !important; box-shadow:none !important; }
body.player-combat-screen-active .combat-group-member-main { display:grid !important; gap:7px !important; min-width:0 !important; justify-items:start !important; text-align:left !important; }
body.player-combat-screen-active .combat-group-member-title { display:grid !important; gap:2px !important; align-items:start !important; justify-items:start !important; text-align:left !important; width:100% !important; }
body.player-combat-screen-active .combat-group-member-title strong { display:block !important; width:100% !important; text-align:left !important; font-size:1.06rem !important; line-height:1.08 !important; }
body.player-combat-screen-active .combat-group-member-title small { display:block !important; text-align:left !important; font-size:.78rem !important; color:var(--muted) !important; }
body.player-combat-screen-active .combat-group-member-detail { display:flex !important; flex-wrap:wrap !important; align-items:center !important; justify-content:flex-start !important; gap:5px !important; width:100% !important; }
body.player-combat-screen-active .combat-group-member-detail span, body.player-combat-screen-active .combat-group-member-detail b { min-height:22px !important; padding:2px 7px !important; border-radius:999px !important; line-height:1.1 !important; }
body.player-combat-screen-active .combat-group-pulse-chip.has-pulse { border-color:#1677ff !important; background:#1677ff !important; color:#fff !important; }
body.player-combat-screen-active .combat-group-pulse-chip.is-empty { opacity:.62 !important; font-weight:700 !important; }
@media (max-width:420px) { body.player-combat-screen-active .combat-group-dialog-card { padding:20px 20px !important; } body.player-combat-screen-active .combat-group-member-row.item-row { padding:12px 14px !important; } body.player-combat-screen-active .combat-group-person-line { gap:12px !important; } body.player-combat-screen-active .combat-group-avatar-wrap { width:52px !important; height:52px !important; min-width:52px !important; min-height:52px !important; } body.player-combat-screen-active .combat-group-avatar, body.player-combat-screen-active .combat-group-avatar-wrap .avatar, body.player-combat-screen-active .combat-group-avatar-wrap img.avatar, body.player-combat-screen-active .combat-group-avatar-wrap .avatar-placeholder { width:43px !important; height:43px !important; min-width:43px !important; min-height:43px !important; } }


/* v457 — numeração da crônica em negativo e separador */
body.player-combat-screen-active .player-combat-chronicle-row .chronicle-action-number { color: var(--combat-neutral-muted, var(--muted)) !important; opacity: .68 !important; font-weight: 700 !important; margin-right: .25em !important; }
body.player-combat-screen-active .player-combat-chronicle-row .chronicle-action-separator { color: var(--combat-neutral-muted, var(--muted)) !important; opacity: .55 !important; margin: 0 .38em 0 .08em !important; font-weight: 700 !important; }
body.player-combat-screen-active .player-combat-chronicle-row .chronicle-action-text { color: var(--combat-neutral-text, var(--text)) !important; }


/* v458 — número da ação junto à frase, sem coluna separada */
body.player-combat-screen-active .player-combat-chronicle-row p { display:block !important; }
body.player-combat-screen-active .player-combat-chronicle-row .chronicle-action-prefix { display:inline !important; min-width:0 !important; margin:0 .22em 0 0 !important; color: var(--combat-neutral-muted, var(--muted)) !important; opacity:.68 !important; font-family:var(--font-title, inherit) !important; font-size:.82em !important; font-weight:700 !important; line-height:inherit !important; white-space:nowrap !important; }
body.player-combat-screen-active .player-combat-chronicle-row .chronicle-action-number, body.player-combat-screen-active .player-combat-chronicle-row .chronicle-action-separator { display:inline !important; min-width:0 !important; margin:0 !important; justify-content:normal !important; color: var(--combat-neutral-muted, var(--muted)) !important; opacity:.68 !important; }

/* v459 — número da criatura sem duplicação e puxar para atualizar no combate */
body.player-combat-screen-active .player-combat-stage-reference {
  --combat-pull-distance: 0px;
  position: relative !important;
}
body.player-combat-screen-active .combat-pull-refresh-indicator {
  position: absolute !important;
  top: 2px !important;
  left: 50% !important;
  z-index: 6 !important;
  transform: translate(-50%, calc(-100% + var(--combat-pull-distance))) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 26px !important;
  padding: 4px 12px !important;
  border-radius: 999px !important;
  border: 1px solid var(--combat-neutral-border, var(--border)) !important;
  background: var(--combat-neutral-panel, var(--panel)) !important;
  color: var(--combat-neutral-muted, var(--muted)) !important;
  font-size: .72rem !important;
  font-weight: 800 !important;
  letter-spacing: .02em !important;
  opacity: 0 !important;
  pointer-events: none !important;
  box-shadow: none !important;
  filter: none !important;
  transition: opacity .12s ease, transform .12s ease !important;
  white-space: nowrap !important;
}
body.player-combat-screen-active .combat-pull-refresh-indicator.is-visible {
  opacity: 1 !important;
}
body.player-combat-screen-active .combat-pull-refresh-indicator.is-ready {
  color: var(--combat-neutral-text, var(--text)) !important;
}
body.player-combat-screen-active .player-combat-chronicle {
  overscroll-behavior-y: contain !important;
}

/* v460 — atualização nativa do navegador, efeitos no card e Rolar acima do Grupo */
body.player-combat-screen-active {
  overscroll-behavior-y: auto !important;
  overflow-y: auto !important;
}
body.player-combat-screen-active #playerCombatPanel,
body.player-combat-screen-active .player-combat-stage-reference,
body.player-combat-screen-active .player-combat-reference-body,
body.player-combat-screen-active .player-combat-chronicle,
body.player-combat-screen-active .player-combat-chronicle-shell {
  overscroll-behavior-y: auto !important;
  touch-action: pan-y !important;
}
body.player-combat-screen-active .combat-pull-refresh-indicator {
  display: none !important;
}
body.player-combat-screen-active .player-combat-reference-player-card {
  overflow: visible !important;
}
body.player-combat-screen-active .player-combat-reference-avatar-wrap {
  overflow: visible !important;
}
body.player-combat-screen-active .player-combat-reference-pulse-badge {
  position: absolute !important;
  right: -5px !important;
  bottom: -3px !important;
  min-width: 24px !important;
  height: 24px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  background: #1677ff !important;
  color: #fff !important;
  font-style: normal !important;
  font-weight: 900 !important;
  font-size: .78rem !important;
  line-height: 1 !important;
  z-index: 5 !important;
}
body.player-combat-screen-active .player-combat-reference-negative-badge {
  position: absolute !important;
  left: -5px !important;
  top: -4px !important;
  min-width: 24px !important;
  height: 24px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  color: #fff !important;
  font-style: normal !important;
  font-weight: 900 !important;
  font-size: .78rem !important;
  line-height: 1 !important;
  z-index: 6 !important;
  border: 1px solid rgba(0,0,0,.35) !important;
}
body.player-combat-screen-active .player-combat-reference-negative-badge.is-flame {
  background: #d43a16 !important;
}
body.player-combat-screen-active .player-combat-reference-negative-badge.is-poison {
  background: #3f8f3d !important;
}
body.player-combat-screen-active .player-combat-reference-negative-badge.is-mixed {
  background: #8d2f9b !important;
}
body.player-combat-screen-active .player-combat-reference-role-line {
  display: flex !important;
  align-items: center !important;
  gap: 5px !important;
  min-width: 0 !important;
  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  color: var(--combat-neutral-muted) !important;
  font-size: .78rem !important;
  line-height: 1.15 !important;
}
body.player-combat-screen-active .player-combat-reference-role-line::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}
body.player-combat-screen-active .player-combat-reference-role-line > span {
  flex: 0 0 auto !important;
  color: var(--combat-neutral-muted) !important;
}
body.player-combat-screen-active .player-combat-card-effect-chips {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  flex: 0 0 auto !important;
}
body.player-combat-screen-active .player-combat-card-effect-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 3px !important;
  min-height: 18px !important;
  padding: 1px 6px !important;
  border-radius: 999px !important;
  border: 1px solid var(--combat-neutral-border) !important;
  background: color-mix(in srgb, var(--combat-neutral-panel) 70%, var(--combat-screen-bg) 30%) !important;
  color: var(--combat-neutral-text) !important;
  white-space: nowrap !important;
}
body.player-combat-screen-active .player-combat-card-effect-chip strong {
  font-size: .62rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}
body.player-combat-screen-active .player-combat-card-effect-chip small {
  font-size: .6rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  opacity: .9 !important;
}
body.player-combat-screen-active .player-combat-card-effect-chip.is-flame {
  border-color: #d43a16 !important;
}
body.player-combat-screen-active .player-combat-card-effect-chip.is-poison {
  border-color: #3f8f3d !important;
}
body.player-combat-screen-active .player-combat-card-effect-chip.is-bind {
  border-color: #8d7cff !important;
}
body.player-combat-screen-active .player-combat-float-action.is-warning {
  border-color: #d43a16 !important;
}


/* v461 — bolinha negativa circular e resumo de área */
body.player-combat-screen-active .player-combat-reference-negative-badge { width:24px !important; min-width:24px !important; max-width:24px !important; height:24px !important; min-height:24px !important; max-height:24px !important; padding:0 !important; box-sizing:border-box !important; border-radius:999px !important; aspect-ratio:1/1 !important; flex:0 0 24px !important; white-space:nowrap !important; overflow:hidden !important; text-align:center !important; }
body.player-combat-screen-active .player-combat-reference-negative-badge { left:-4px !important; top:-4px !important; }


/* v462 — badge negativo circular e crônica de área consolidada */
body.player-combat-screen-active .player-combat-reference-negative-badge { width:22px !important; min-width:22px !important; max-width:22px !important; height:22px !important; min-height:22px !important; max-height:22px !important; padding:0 !important; border-radius:999px !important; aspect-ratio:1/1 !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; line-height:1 !important; font-size:.68rem !important; font-weight:900 !important; box-sizing:border-box !important; white-space:nowrap !important; overflow:hidden !important; }
body.player-combat-screen-active .player-combat-reference-negative-badge { left:-4px !important; top:-4px !important; right:auto !important; bottom:auto !important; }
body.player-combat-screen-active .player-combat-reference-avatar-wrap { overflow:visible !important; }


/* v463 — ataque em área volta a ser só consolidação visual; badge negativo volta ao padrão bom */
body.player-combat-screen-active .player-combat-reference-negative-badge { width:24px !important; min-width:24px !important; max-width:24px !important; height:24px !important; min-height:24px !important; max-height:24px !important; padding:0 !important; box-sizing:border-box !important; border-radius:999px !important; aspect-ratio:1/1 !important; flex:0 0 24px !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; white-space:nowrap !important; overflow:hidden !important; text-align:center !important; line-height:1 !important; }
body.player-combat-screen-active .player-combat-reference-negative-badge { left:-4px !important; top:-4px !important; right:auto !important; bottom:auto !important; }
body.player-combat-screen-active .player-combat-reference-avatar-wrap { overflow:visible !important; }

/* v465 — transição para combate, sem popups de espólio e decisão estável */
.combat-forge-transition {
  position: fixed !important;
  inset: 0 !important;
  z-index: 20000 !important;
  display: grid !important;
  place-items: center !important;
  background: #050505 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
}
.combat-forge-transition.is-fading {
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity .62s ease, visibility .62s ease !important;
}
.combat-forge-transition-mark {
  display: grid !important;
  place-items: center !important;
  gap: 12px !important;
  color: #FF0000 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  font-weight: 900 !important;
}
.combat-forge-transition-mark img {
  width: min(34vw, 148px) !important;
  height: min(34vw, 148px) !important;
  object-fit: contain !important;
  filter: brightness(0) saturate(100%) invert(13%) sepia(100%) saturate(7457%) hue-rotate(358deg) brightness(104%) contrast(114%) !important;
}
.combat-forge-transition-mark strong {
  color: #FF0000 !important;
  font-size: clamp(.76rem, 3vw, 1rem) !important;
}
body.player-combat-screen-active .autonomous-decision-dialog .forum-dialog-card {
  will-change: auto !important;
}
body.player-combat-screen-active .autonomous-decision-actions.hidden {
  display: none !important;
}


/* v466 — transição de combate igual ao splash geral, com logo vermelho e sem texto */
.combat-forge-transition {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483000 !important;
  min-height: 100vh !important;
  min-height: 100dvh !important;
  display: grid !important;
  place-items: center !important;
  background: #0b0b0f !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
  transition: opacity .72s ease, visibility .72s ease !important;
}
.combat-forge-transition.is-fading { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; transition: opacity .72s ease, visibility .72s ease !important; }
.combat-forge-transition-mark { display: grid !important; place-items: center !important; gap: 0 !important; color: #FF0000 !important; }
.combat-forge-transition-mark img {
  display: block !important;
  width: min(86vw, 430px) !important;
  max-height: min(44vh, 360px) !important;
  height: auto !important;
  object-fit: contain !important;
  filter: brightness(0) saturate(100%) invert(13%) sepia(100%) saturate(7457%) hue-rotate(358deg) brightness(104%) contrast(114%) !important;
}
.combat-forge-transition-mark strong { display: none !important; }
@media (prefers-color-scheme: light) { .combat-forge-transition { background: #f5f2ea !important; } }

/* v467 — nome do evento e avisos laterais elegantes no combate */
body.player-combat-screen-active .player-combat-reference-header {
  position: relative !important;
  padding-right: 42% !important;
}
body.player-combat-screen-active .player-combat-reference-header .player-combat-reference-event-name {
  position: absolute !important;
  top: 11px !important;
  right: 14px !important;
  max-width: 42% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-style: normal !important;
  font-weight: 300 !important;
  font-size: .72rem !important;
  line-height: 1 !important;
  letter-spacing: .03em !important;
  text-align: right !important;
  color: var(--combat-neutral-muted, var(--muted)) !important;
  opacity: .92 !important;
}
body.player-combat-screen-active .player-combat-reference-header strong {
  display: none !important;
}
body.player-combat-screen-active .player-combat-timeline-toast {
  position: absolute !important;
  z-index: 12 !important;
  top: 10px !important;
  right: var(--combat-chronicle-safe-right, clamp(64px, 17vw, 88px)) !important;
  left: auto !important;
  width: min(230px, calc(100% - var(--combat-chronicle-safe-right, 76px) - var(--combat-enemy-size, 52px) - 30px)) !important;
  max-width: 230px !important;
  min-height: 34px !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 8px 11px !important;
  border: 1px solid var(--combat-neutral-border, var(--border)) !important;
  border-radius: 14px !important;
  background: var(--combat-neutral-panel, var(--panel)) !important;
  color: var(--combat-neutral-text, var(--text)) !important;
  font-size: .78rem !important;
  font-weight: 750 !important;
  line-height: 1.22 !important;
  letter-spacing: .01em !important;
  text-align: left !important;
  opacity: 1 !important;
  filter: none !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
  pointer-events: none !important;
  animation: combatSideNoteIn .24s ease-out both !important;
}
body.player-combat-screen-active .player-combat-timeline-toast.is-leaving {
  animation: combatSideNoteOut .28s ease-in both !important;
}
body.player-combat-screen-active .player-combat-timeline-toast.is-critical-on {
  border-color: #FF0000 !important;
}
body.player-combat-screen-active .player-combat-timeline-toast.is-critical-off {
  border-color: var(--combat-neutral-border, var(--border)) !important;
}
body.player-combat-screen-active .player-combat-timeline-toast[class*="is-effect-flamejante"] {
  border-color: #d43a16 !important;
}
body.player-combat-screen-active .player-combat-timeline-toast[class*="is-effect-envenenado"] {
  border-color: #3f8f3d !important;
}
body.player-combat-screen-active .player-combat-timeline-toast[class*="is-effect-aprisionado"],
body.player-combat-screen-active .player-combat-timeline-toast[class*="is-effect-perde-turno"] {
  border-color: #7a57c8 !important;
}
@keyframes combatSideNoteIn {
  from { opacity: 0; transform: translateX(28px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes combatSideNoteOut {
  from { opacity: 1; transform: translate(0, 0); }
  to { opacity: 0; transform: translate(0, 10px); }
}
@media (max-width: 420px) {
  body.player-combat-screen-active .player-combat-reference-header {
    padding-right: 40% !important;
  }
  body.player-combat-screen-active .player-combat-reference-header .player-combat-reference-event-name {
    max-width: 40% !important;
    font-size: .68rem !important;
  }
  body.player-combat-screen-active .player-combat-timeline-toast {
    width: min(214px, calc(100% - var(--combat-chronicle-safe-right, 70px) - var(--combat-enemy-size, 48px) - 24px)) !important;
    right: var(--combat-chronicle-safe-right, clamp(62px, 18vw, 82px)) !important;
    font-size: .74rem !important;
    padding: 8px 10px !important;
  }
}


/* v468 — desfazer nome do evento no topo sem remover avisos laterais */
body.player-combat-screen-active .player-combat-reference-header { padding-right: inherit !important; }
body.player-combat-screen-active .player-combat-reference-header .player-combat-reference-event-name { display:none !important; }
@media (max-width:420px) { body.player-combat-screen-active .player-combat-reference-header { padding-right: inherit !important; } }


/* v469 — aviso lateral para dano recorrente de efeito */
body.player-combat-screen-active .player-combat-reference-negative-badge { width:24px !important; min-width:24px !important; max-width:24px !important; height:24px !important; min-height:24px !important; max-height:24px !important; padding:0 !important; border-radius:999px !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; line-height:1 !important; font-size:.68rem !important; font-weight:900 !important; white-space:nowrap !important; overflow:hidden !important; }
body.player-combat-screen-active .player-combat-timeline-toast[class*="is-effect-flamejante"], body.player-combat-screen-active .player-combat-timeline-toast[class*="is-effect-envenenado"] { min-height:38px !important; }


/* v471 — restaurar topo da tela de combate ao padrão anterior ao nome do evento */
body.player-combat-screen-active .player-combat-reference-header { position:relative !important; height:112px !important; min-height:112px !important; max-height:112px !important; overflow:hidden !important; padding:0 14px 8px !important; box-sizing:border-box !important; }
body.player-combat-screen-active .player-combat-reference-header p { display:block !important; color:var(--combat-neutral-text) !important; font-size:.95rem !important; line-height:1.15 !important; margin:0 0 4px !important; }
body.player-combat-screen-active .player-combat-reference-header strong { display:block !important; color:var(--combat-neutral-text) !important; max-width:100% !important; overflow:hidden !important; text-overflow:ellipsis !important; white-space:nowrap !important; margin:0 0 4px !important; padding:0 !important; font-weight:800 !important; }
body.player-combat-screen-active .player-combat-reference-header span { display:block !important; color:var(--combat-neutral-muted) !important; max-width:100% !important; max-height:1.25rem !important; overflow:hidden !important; text-overflow:ellipsis !important; white-space:nowrap !important; margin:0 !important; padding:0 !important; }
body.player-combat-screen-active .player-combat-reference-header .player-combat-reference-event-name { display:none !important; }
@media (max-width:420px) { body.player-combat-screen-active .player-combat-reference-header { padding:0 14px 8px !important; height:112px !important; min-height:112px !important; max-height:112px !important; } }

/* v472 — avisos voltam para a Crônica e novas mensagens entram de forma suave */
body.player-combat-screen-active .player-combat-timeline-toast {
  display: none !important;
}
body.player-combat-screen-active .player-combat-chronicle-row {
  transform-origin: top center !important;
}
body.player-combat-screen-active .player-combat-chronicle-row.is-new {
  animation: combatChronicleRowEnter .24s ease-out both !important;
}
body.player-combat-screen-active .player-combat-chronicle-row.is-local-notice p {
  border-left: 2px solid #FF0000 !important;
  padding-left: 8px !important;
}
@keyframes combatChronicleRowEnter {
  from {
    opacity: 0;
    transform: translateY(-9px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  body.player-combat-screen-active .player-combat-chronicle-row.is-new {
    animation: none !important;
  }
}

/* v480 — remover efeitos fixos e tela final visual sem tocar na mecânica */
body.player-combat-screen-active .player-combat-card-effect-chips,
body.player-combat-screen-active .player-combat-card-effect-chip,
body.player-combat-screen-active .player-combat-negative-badge {
  display: none !important;
}
body.player-combat-ending-active .player-combat-stage-ending {
  min-height: calc(100svh - 18px) !important;
}
body.player-combat-ending-active .player-combat-end-header {
  position: relative !important;
}
body.player-combat-ending-active .player-combat-end-countdown {
  position: absolute !important;
  top: 10px !important;
  right: 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  padding: 5px 9px !important;
  border-radius: 999px !important;
  border: 1px solid var(--border) !important;
  background: var(--panel) !important;
  color: var(--text) !important;
  box-shadow: none !important;
}
body.player-combat-ending-active .player-combat-end-countdown span {
  font-size: .68rem !important;
  color: var(--muted) !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
}
body.player-combat-ending-active .player-combat-end-countdown strong {
  font-size: 1rem !important;
  line-height: 1 !important;
}
body.player-combat-ending-active .player-combat-final-body {
  min-height: 0 !important;
}
body.player-combat-ending-active .player-combat-end-row p,
body.player-combat-ending-active .player-combat-chronicle-row.is-local-notice p {
  border-left: 3px solid #FF0000 !important;
  padding-left: 10px !important;
}
body.player-combat-ending-active .player-combat-end-spoils {
  display: grid !important;
  gap: 8px !important;
}
body.player-combat-ending-active .player-combat-end-spoils > strong {
  font-weight: 800 !important;
}
body.player-combat-ending-active .player-combat-end-spoils ul {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  display: grid !important;
  gap: 6px !important;
}
body.player-combat-ending-active .player-combat-end-spoils li {
  display: grid !important;
  gap: 2px !important;
}
body.player-combat-ending-active .player-combat-end-spoils li span {
  color: var(--muted) !important;
  font-size: .82rem !important;
}
.combat-forge-transition.combat-forge-transition-exit .combat-forge-transition-mark img {
  filter: none !important;
}


/* v485 — resultado explícito e entrada final sem piscada */
body.player-combat-ending-active [data-block="groupPanel"], body.player-combat-ending-active [data-block="inventory"], body.player-combat-ending-active [data-block="history"], body.player-combat-ending-active [data-block="guide"] { visibility:hidden !important; }
body.player-combat-ending-active .player-combat-end-header > span { display:inline-flex !important; align-self:flex-start !important; padding:3px 9px !important; border-radius:999px !important; border:1px solid var(--border) !important; font-weight:800 !important; letter-spacing:.02em !important; }
body.player-combat-ending-active .player-combat-stage-ending.is-vitoria .player-combat-end-header > span { color:#0f7f3f !important; }
body.player-combat-ending-active .player-combat-stage-ending.is-derrota .player-combat-end-header > span { color:#b00020 !important; }
body.player-combat-ending-active .player-combat-stage-ending.is-debandada .player-combat-end-header > span { color:#a45a00 !important; }


/* v490 — restaurar chips/bolinha de efeitos no card e remover avisos fixos de efeito na crônica */
body.player-combat-screen-active .player-combat-card-effect-chips { display:inline-flex !important; align-items:center !important; gap:4px !important; flex:0 0 auto !important; }
body.player-combat-screen-active .player-combat-card-effect-chip { display:inline-flex !important; align-items:center !important; gap:3px !important; min-height:18px !important; padding:1px 6px !important; border-radius:999px !important; }
body.player-combat-screen-active .player-combat-reference-negative-badge { display:inline-flex !important; position:absolute !important; left:-4px !important; top:-4px !important; right:auto !important; bottom:auto !important; width:24px !important; min-width:24px !important; max-width:24px !important; height:24px !important; min-height:24px !important; max-height:24px !important; padding:0 !important; border-radius:999px !important; align-items:center !important; justify-content:center !important; line-height:1 !important; font-size:.68rem !important; font-weight:900 !important; white-space:nowrap !important; overflow:hidden !important; z-index:6 !important; }
body.player-combat-screen-active .player-combat-timeline-toast[class*="is-effect-"], body.player-combat-screen-active .player-combat-chronicle-row.is-local-notice p:has(.player-combat-timeline-toast) { display:none !important; }
