/* NO PERRY — Mesa de Guerra Call Board 55A
   Builder identity inheritance + call board preview shell.
   Role tokens mirror js/war-table-call-board-55a.js ROLE_THEMES. */

.np-arsenal {
  --np-role-caller: #7b5cc4;
  --np-role-tank: #4f7fbf;
  --np-role-dps: #b13b32;
  --np-role-cortaCura: #8e2130;
  --np-role-support: #d8d2c4;
  --np-role-healer: #5f9b52;
  --np-wt-iron: #171412;
  --np-wt-brass: rgba(168, 138, 74, 0.55);
}

/* ---------- role identity on the composition markers ---------- */

.np-arsenal__warrior-marker[data-role-family] {
  position: relative;
  --np-role-edge: var(--np-role-dps);
}

.np-arsenal__warrior-marker[data-role-family="caller"] { --np-role-edge: var(--np-role-caller); }
.np-arsenal__warrior-marker[data-role-family="tank"] { --np-role-edge: var(--np-role-tank); }
.np-arsenal__warrior-marker[data-role-family="dps"] { --np-role-edge: var(--np-role-dps); }
.np-arsenal__warrior-marker[data-role-family="cortaCura"] { --np-role-edge: var(--np-role-cortaCura); }
.np-arsenal__warrior-marker[data-role-family="support"] { --np-role-edge: var(--np-role-support); }
.np-arsenal__warrior-marker[data-role-family="healer"] { --np-role-edge: var(--np-role-healer); }

/* Role colour is an accent over the forged body, never a full repaint. */
.np-arsenal__warrior-marker[data-role-family]::after {
  content: "";
  position: absolute;
  inset: auto 14% 3px 14%;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, transparent, var(--np-role-edge), transparent);
  opacity: 0.75;
  pointer-events: none;
}

.np-arsenal__warrior-marker[data-role-family] .np-arsenal__wm-role {
  color: var(--np-role-edge);
  letter-spacing: 0.08em;
}

.np-arsenal__warrior-marker[data-role-family].is-active {
  box-shadow: inset 0 0 0 1px var(--np-role-edge), 0 0 18px -6px var(--np-role-edge);
}

/* ---------- larger equipment + swap reading in the builder ---------- */

.np-arsenal__swap-item,
.np-arsenal__swap-add {
  width: 76px;
  height: 76px;
  border-radius: 3px;
}

.np-arsenal__swap-item img {
  width: 92%;
  height: 92%;
  object-fit: contain;
}

.np-arsenal__swap-item {
  box-shadow: inset 0 0 0 1px rgba(120, 110, 94, 0.5);
}

.np-arsenal__swaps::before {
  content: "SWAP";
  align-self: center;
  margin-right: 0.15rem;
  font: 600 0.55rem/1 Consolas, monospace;
  letter-spacing: 0.16em;
  color: var(--forge-moss, #8fa65b);
  opacity: 0.85;
}

.np-arsenal__sock--weapon .np-arsenal__sock-aperture { width: 104px; }

.np-arsenal__sock--chest .np-arsenal__sock-aperture,
.np-arsenal__sock--head .np-arsenal__sock-aperture { width: 86px; }

.np-arsenal__sock--offhand .np-arsenal__sock-aperture,
.np-arsenal__sock--feet .np-arsenal__sock-aperture { width: 82px; }

.np-arsenal__sock--cape .np-arsenal__sock-aperture,
.np-arsenal__sock--food .np-arsenal__sock-aperture,
.np-arsenal__sock--potion .np-arsenal__sock-aperture { width: 68px; }

@media (max-width: 900px) {
  .np-arsenal__swap-item,
  .np-arsenal__swap-add { width: 62px; height: 62px; }
  .np-arsenal__sock--weapon .np-arsenal__sock-aperture { width: 88px; }
  .np-arsenal__sock--chest .np-arsenal__sock-aperture,
  .np-arsenal__sock--head .np-arsenal__sock-aperture { width: 74px; }
}

@media (max-width: 560px) {
  .np-arsenal__swap-item,
  .np-arsenal__swap-add { width: 54px; height: 54px; }
  .np-arsenal__sock--weapon .np-arsenal__sock-aperture { width: 74px; }
  .np-arsenal__sock--chest .np-arsenal__sock-aperture,
  .np-arsenal__sock--head .np-arsenal__sock-aperture { width: 62px; }
  .np-arsenal__sock--offhand .np-arsenal__sock-aperture,
  .np-arsenal__sock--feet .np-arsenal__sock-aperture { width: 60px; }
  .np-arsenal__sock--cape .np-arsenal__sock-aperture,
  .np-arsenal__sock--food .np-arsenal__sock-aperture,
  .np-arsenal__sock--potion .np-arsenal__sock-aperture { width: 52px; }
}

/* ---------- call board preview shell ---------- */

.np-arsenal__board-preview {
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(90, 120, 62, 0.12), transparent 70%),
    linear-gradient(180deg, #14120f 0%, #0a0908 100%);
  box-shadow: inset 0 0 0 1px var(--np-wt-brass), 0 30px 70px -30px rgba(0, 0, 0, 0.9);
}

.np-arsenal__board-preview-kicker {
  color: var(--forge-moss, #8fa65b);
  letter-spacing: 0.24em;
}

.np-arsenal__board-preview-frame {
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 8px;
  background: #060605;
  box-shadow: inset 0 0 0 1px rgba(59, 52, 44, 0.9);
}

.np-arsenal__board-preview-frame::after {
  content: "";
  position: absolute;
  inset: 3px;
  pointer-events: none;
  box-shadow: inset 0 0 0 1px var(--np-wt-brass);
}

.np-arsenal__board-preview-frame img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.np-arsenal__board-preview-actions [data-board-regen] {
  padding: 0.45rem 0.9rem;
  font: 600 0.6rem/1 Consolas, monospace;
  letter-spacing: 0.16em;
  color: var(--forge-mute, #9a9082);
  background: transparent;
  border: 1px solid rgba(90, 84, 74, 0.55);
  cursor: pointer;
}

.np-arsenal__board-preview-actions [data-board-regen]:hover:not([disabled]),
.np-arsenal__board-preview-actions [data-board-regen]:focus-visible {
  color: var(--forge-moss, #8fa65b);
  border-color: rgba(143, 166, 91, 0.6);
}
