/* ============================================================
   Blood Bowl Companion — css/wizards.css
   Block, Pass, Foul, Throw Team-Mate wizard styles.
   Glass-blue aesthetic, matching panels.css.
   ============================================================ */

/* ── Stat stepper (shared across all wizards) ── */
.stat-stepper {
  display:       flex;
  align-items:   center;
  border:        1px solid rgba(70, 110, 200, 0.4);
  border-radius: 4px;
  overflow:      hidden;
  width:         fit-content;
  background:    rgba(10, 22, 65, 0.55);
}

.stepper-btn {
  background:  rgba(30, 60, 150, 0.4);
  border:      none;
  width:       34px;
  height:      34px;
  font-size:   1.15rem;
  font-weight: 700;
  line-height: 1;
  cursor:      pointer;
  color:       rgba(180, 210, 255, 0.7);
  transition:  background 0.12s, color 0.12s;
  flex-shrink: 0;
}

.stepper-btn:hover  { background: rgba(60, 100, 200, 0.5); color: #fff; }
.stepper-btn:active { background: rgba(80, 130, 220, 0.6); }

.stepper-val {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 800;
  font-size:   1rem;
  color:       var(--bb-gold, #D4AF37);
  min-width:   38px;
  text-align:  center;
  background:  transparent;
  padding:     0 0.3rem;
  line-height: 34px;
  height:      34px;
}

/* ── Wizard section divider ── */
.wizard-divider {
  border:     none;
  border-top: 1px solid rgba(70, 110, 200, 0.2);
  margin:     1.1rem 0 0.85rem;
}

/* ── Inline banner for computed info ── */
.wizard-info-bar {
  display:       flex;
  align-items:   baseline;
  gap:           0.5rem;
  background:    rgba(20, 50, 130, 0.3);
  border:        1px solid rgba(80, 130, 255, 0.3);
  border-radius: 6px;
  padding:       0.5rem 0.9rem;
  margin:        0.75rem 0;
}

.wizard-info-num {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 800;
  font-size:   1.5rem;
  color:       var(--bb-gold, #D4AF37);
  line-height: 1;
  text-shadow: 0 0 12px rgba(212, 175, 55, 0.3);
}

.wizard-info-note {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 500;
  font-size:   0.76rem;
  color:       rgba(150, 185, 255, 0.55);
}

/* ── Block wizard: attacker vs defender layout ── */
.block-setup-grid {
  display:               grid;
  grid-template-columns: 1fr auto 1fr;
  gap:                   1rem;
  align-items:           start;
  margin-bottom:         0.85rem;
}

.block-side {
  display:        flex;
  flex-direction: column;
  gap:            0.4rem;
}

.block-side.right {
  align-items: flex-end;
  text-align:  right;
}

.block-vs {
  display:         flex;
  align-items:     center;
  justify-content: center;
  padding-top:     1.6rem;
}

.vs-label {
  font-family:    'JetBrains Mono', monospace;
  font-weight:    800;
  font-size:      0.85rem;
  color:          rgba(120, 160, 230, 0.4);
  letter-spacing: 0.06em;
}

/* ── Block die face ── */
.block-dice-tray {
  display:     flex;
  gap:         0.65rem;
  flex-wrap:   wrap;
  margin:      0 0 0.5rem;
  min-height:  var(--block-die-size, 72px);
  align-items: flex-end;
  /* Dice paint above sibling frames/buttons — never "load under" them */
  position:    relative;
  z-index:     var(--z-dice, 100);
}

.block-face {
  width:           var(--block-die-size, 72px);
  height:          var(--block-die-size, 72px);
  border-radius:   10px;
  display:         flex;
  align-items:     center;
  justify-content: center;
  overflow:        hidden;
  user-select:     none;
  cursor:          default;
  background:      #630d13;
  /* Raised bevel: highlight top+left, shadow bottom+right */
  border-top:      2px solid rgba(160, 40, 40, 0.9);
  border-left:     2px solid rgba(140, 30, 30, 0.8);
  border-bottom:   2px solid rgba(20, 0, 0, 0.85);
  border-right:    2px solid rgba(25, 0, 0, 0.75);
  box-shadow:      2px 3px 6px rgba(0, 0, 0, 0.7);
}

/* Item 7: glyph only — no label text */
.block-face-label { display: none; }

/* Glyph: fills die, cream color, recessed text-shadow */
.block-face-sym {
  font-family: 'Nuffle Dice', sans-serif;
  font-size:   5.5rem;
  line-height: 1;
  color:       #fee9d5;
  display:     block;
  width:       100%;
  text-align:  center;
  /* Recessed: dark shadow top-left (inside), light highlight bottom-right (outside) */
  text-shadow:
    -1px -1px 2px rgba(0, 0, 0, 0.8),
     1px  1px 1px rgba(255, 230, 200, 0.3);
}

/* All face types share the dark red die — only the glyph character differs */
.block-face.att-down,
.block-face.both-down,
.block-face.push,
.block-face.stumble,
.block-face.def-down {
  background:    #630d13;
  border-top:    2px solid rgba(160, 40, 40, 0.9);
  border-left:   2px solid rgba(140, 30, 30, 0.8);
  border-bottom: 2px solid rgba(20, 0, 0, 0.85);
  border-right:  2px solid rgba(25, 0, 0, 0.75);
  color:         #fee9d5;
}

/* Block die roll animation */
@keyframes blockDiceRoll {
  0%   { transform: rotate(0deg)   scale(1); }
  12%  { transform: rotate(-22deg) scale(1.09); }
  27%  { transform: rotate(18deg)  scale(0.92); }
  42%  { transform: rotate(-14deg) scale(1.05); }
  57%  { transform: rotate(12deg)  scale(0.96); }
  72%  { transform: rotate(-7deg)  scale(1.02); }
  87%  { transform: rotate(4deg)   scale(0.99); }
  100% { transform: rotate(0deg)   scale(1); }
}

@keyframes blockDiceSettle {
  0%   { box-shadow: 3px 3px 0 rgba(0,0,0,0.4), 0 0 18px rgba(212,175,55,0.75); }
  100% { box-shadow: 3px 3px 0 rgba(0,0,0,0.4), 0 0 0   rgba(212,175,55,0); }
}

.block-face.rolling  { animation: blockDiceRoll   0.56s cubic-bezier(0.25, 0.46, 0.45, 0.94) both; }
.block-face.settled  { animation: blockDiceSettle 0.52s ease-out both; }

/* Defender picks: white die, red glyph, red settle glow */
#block-dice-tray.def-picks .block-face {
  background:    #ffffff;
  border-top:    2px solid rgba(255,255,255,0.95);
  border-left:   2px solid rgba(220,220,220,0.80);
  border-bottom: 2px solid rgba(160,160,160,0.70);
  border-right:  2px solid rgba(180,180,180,0.60);
  box-shadow:    2px 3px 6px rgba(0,0,0,0.45);
}
#block-dice-tray.def-picks .block-face .block-face-sym {
  color:       #cc001e;
  text-shadow:
    -1px -1px 2px rgba(0,0,0,0.1),
     1px  1px 1px rgba(255,120,120,0.3);
}
@keyframes blockDiceSettle-def {
  0%   { box-shadow: 3px 3px 0 rgba(0,0,0,0.4), 0 0 18px rgba(200,16,46,0.75); }
  100% { box-shadow: 3px 3px 0 rgba(0,0,0,0.4), 0 0 0   rgba(200,16,46,0); }
}
#block-dice-tray.def-picks .block-face.settled {
  animation: blockDiceSettle-def 0.52s ease-out both;
}

/* ── Block result rows ── */
.block-results-list {
  margin:          0.5rem 0 0.2rem;
  display:         flex;
  flex-direction:  column;
  gap:             0.3rem;
}

.block-result-row {
  font-family: 'JetBrains Mono', monospace;
  font-size:   1rem;
  display:     flex;
  align-items: center;
  gap:         0.4rem;
}

/* ── Skill notes below result ── */
.result-notes {
  margin-top:  0.65rem;
  padding-top: 0.55rem;
  border-top:  1px solid rgba(80, 130, 255, 0.12);
}

/* ── Pass wizard ── */
.pass-target-bar {
  display:     flex;
  align-items: baseline;
  gap:         0.4rem;
  margin:      0.6rem 0 0.75rem;
}

/* ── Sub-sections (catch, landing) ── */
.wizard-sub-section { margin-top: 0; }

/* ── Responsive ── */
@media (max-width: 520px) {
  .block-setup-grid { grid-template-columns: 1fr auto 1fr; gap: 0.5rem; }
  .block-face       { width: 56px; height: 56px; }
}

/* ── Result chips (pass wizard rolls) ── */
.result-chip {
  display:       inline-block;
  padding:       0.15rem 0.45rem;
  border-radius: 3px;
  font-family:   'JetBrains Mono', monospace;
  font-size:     0.72rem;
  font-weight:   800;
  border:        1px solid transparent;
}
.result-chip-ok   { background: rgba(76,175,80,0.15);  border-color: rgba(76,175,80,0.4);  color: #81c784; }
.result-chip-bad  { background: rgba(200,16,46,0.15);  border-color: rgba(200,16,46,0.4);  color: #ff8fa0; }
.result-chip-warn { background: rgba(255,193,7,0.12);  border-color: rgba(255,193,7,0.35); color: #FFD54F; }

.result-desc {
  margin:      0.15rem 0 0;
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.62rem;
  color:       rgba(180,210,255,0.55);
  line-height: 1.4;
}

/* ── Add / remove buttons in pass wizard ── */
.pwiz-add-btn {
  display:       block;
  width:         100%;
  padding:       0.3rem 0.55rem;
  background:    rgba(80,130,255,0.08);
  border:        1px dashed rgba(80,130,255,0.28);
  border-radius: 4px;
  color:         rgba(160,200,255,0.65);
  font-family:   'JetBrains Mono', monospace;
  font-size:     0.68rem;
  font-weight:   700;
  cursor:        pointer;
  margin-bottom: 0.25rem;
  text-align:    left;
  transition:    background 0.12s, border-color 0.12s, color 0.12s;
}
.pwiz-add-btn:hover {
  background:   rgba(80,130,255,0.18);
  border-color: rgba(80,130,255,0.5);
  color:        rgba(200,225,255,0.9);
}

.pwiz-rm-btn {
  flex-shrink:   0;
  background:    transparent;
  border:        1px solid rgba(200,16,46,0.3);
  border-radius: 3px;
  color:         rgba(255,100,120,0.55);
  width:         18px;
  height:        18px;
  font-size:     0.6rem;
  line-height:   1;
  cursor:        pointer;
  padding:       0;
  display:       flex;
  align-items:   center;
  justify-content: center;
  transition:    background 0.1s, color 0.1s;
}
.pwiz-rm-btn:hover { background: rgba(200,16,46,0.15); color: #ff8fa0; }

/* ── Roster picker overlay ── */
.pwiz-picker-overlay {
  position: relative;
  z-index:  50;
}
.pwiz-picker-card {
  position:   absolute;
  left: 0; right: 0;
  top:        0;
  background: rgba(4,10,30,0.97);
  border:     1px solid rgba(80,130,255,0.35);
  border-radius: 6px;
  max-height: 220px;
  overflow-y: auto;
  z-index:    200;
  padding:    0.25rem;
  box-shadow: 0 4px 20px rgba(0,0,0,0.6);
}
.pwiz-picker-hdr {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.57rem;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color:          rgba(130,165,235,0.5);
  padding:        0.18rem 0.3rem 0.25rem;
  border-bottom:  1px solid rgba(80,130,255,0.12);
  margin-bottom:  0.2rem;
}

/* ── Pitch placement mode highlight ── */
.bbp-placement-mode {
  cursor: crosshair !important;
}
.bbp-placement-mode > div {
  cursor: crosshair !important;
}
.bbp-placement-mode > div:hover {
  background-color: rgba(212,175,55,0.18) !important;
}

/* ════════════════════════════════════════════════════════
   PASS WIZARD v2 — Sprint 11-14 + resize pass
   Console TV layout: left panel | center pitch | right panel
   All child sizes in em so they scale with this root font-size.
   ════════════════════════════════════════════════════════ */

/* ── Root container — scaling origin ── */
.pwiz-v2 {
  display:        flex;
  flex-direction: column;
  gap:            0.5em;
  height:         100%;
  /* Scale all em-based children with viewport width.
     At 1920px → 26px (1.625× base), at 768px → 14px (floor). */
  font-size:      clamp(11px, 1.75vw, 21px);
}

/* ── Header: variant buttons + team tabs ── */
.pwiz-v2-header {
  display:        flex;
  flex-direction: column;
  gap:            0.35em;
  padding-bottom: 0.45em;
  border-bottom:  1px solid rgba(80,130,255,0.15);
}

.pwiz-variant-row {
  display:   flex;
  gap:       0.3em;
  flex-wrap: wrap;
}

.pwiz-variant-btn {
  padding:       0.22em 0.6em;
  background:    rgba(20,40,100,0.4);
  border:        1px solid rgba(80,130,255,0.2);
  border-radius: 4px;
  color:         rgba(140,180,255,0.55);
  font-family:   'JetBrains Mono', monospace;
  font-size:     0.65em;
  font-weight:   700;
  cursor:        pointer;
  transition:    background 0.12s, color 0.12s, border-color 0.12s;
}
.pwiz-variant-btn:hover {
  background:   rgba(60,100,200,0.35);
  color:        rgba(200,225,255,0.9);
  border-color: rgba(80,130,255,0.45);
}
.pwiz-variant-btn.active {
  background:   rgba(212,175,55,0.15);
  border-color: rgba(212,175,55,0.5);
  color:        #D4AF37;
}

/* ── 3-column body ── */
.pwiz-v2-body {
  display:     flex;
  flex:        1 1 0;
  min-height:  0;
  gap:         clamp(0.3rem, 0.5vw, 0.7rem);
  align-items: flex-start;
}

.pwiz-v2-left {
  flex:       0 0 clamp(150px, 17vw, 240px);
  min-width:  0;
  overflow:   hidden;
  overflow-y: auto;
  max-height: 100%;
}

.pwiz-v2-center {
  flex:           1 1 auto;
  min-width:      0;
  overflow:       hidden;
  display:        flex;
  flex-direction: column;
  align-items:    center;
  gap:            0.4em;
}

.pwiz-v2-right {
  flex:      0 0 clamp(100px, 11.5vw, 195px);
  min-width: 0;
  overflow:  hidden;
}

/* ── Panel section label ── */
.pwiz-panel-label {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.6em;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color:          rgba(180,210,255,0.3);
  margin-bottom:  0.4em;
}

/* ── Zones button ── */
.pwiz-zones-btn {
  display:       block;
  width:         100%;
  margin-bottom: 0.35em;
  font-size:     0.8em;
  padding:       0.45em 0.7em;
}

/* ── Opposing player rows in left panel ── */
.pwiz-opp-row {
  display:       flex;
  align-items:   center;
  gap:           0.3em;
  margin-bottom: 0.25em;
  padding:       0.2em 0.4em;
  background:    rgba(200,16,46,0.08);
  border:        1px solid rgba(200,16,46,0.18);
  border-radius: 3px;
}
.pwiz-opp-label {
  flex:          1;
  font-family:   'JetBrains Mono', monospace;
  font-size:     0.65em;
  color:         rgba(255,150,150,0.8);
  overflow:      hidden;
  text-overflow: ellipsis;
  white-space:   nowrap;
}
.pwiz-opp-pos {
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.57em;
  color:       rgba(255,150,150,0.35);
  flex-shrink: 0;
}

/* ── TZ summary in left panel ── */
.pwiz-tz-summary {
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.62em;
  color:       rgba(180,210,255,0.45);
  margin-top:  0.45em;
  line-height: 1.4;
}

/* ── Placement banner ── */
.pwiz-place-banner {
  width:         100%;
  padding:       0.35em 0.7em;
  background:    rgba(212,175,55,0.15);
  border:        1px solid rgba(212,175,55,0.4);
  border-radius: 4px;
  font-family:   'JetBrains Mono', monospace;
  font-size:     0.72em;
  color:         #D4AF37;
  text-align:    center;
  cursor:        pointer;
}

/* ── Below-pitch: chooser areas ── */
.pwiz-below-pitch {
  display:        flex;
  flex-direction: column;
  gap:            0.4em;
  width:          100%;
  margin-bottom:  0.5em;
}

.pwiz-chooser-area {
  flex:           1;
  min-width:      0;
  padding:        0.5em 0.65em;
  background:     rgba(10,20,60,0.5);
  border:         1px dashed rgba(80,130,255,0.25);
  border-radius:  6px;
  display:        flex;
  flex-direction: column;
  gap:            0.3em;
  transition:     background 0.15s, border-color 0.15s;
}
.pwiz-chooser-area.pwiz-chooser-selected {
  background:   rgba(212,175,55,0.07);
  border-style: solid;
  border-color: rgba(212,175,55,0.3);
}

.pwiz-chooser-btn {
  background:  transparent;
  border:      none;
  color:       rgba(140,180,255,0.6);
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.85em;
  font-weight: 700;
  cursor:      pointer;
  padding:     0.6em 0.4em;
  text-align:  center;
  width:       100%;
  transition:  color 0.12s;
}
.pwiz-chooser-btn:hover { color: rgba(212,175,55,0.9); }

.pwiz-chooser-name {
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.75em;
  display:     flex;
  flex-wrap:   wrap;
  align-items: baseline;
  gap:         0.3em;
}
.pwiz-chooser-role {
  font-size:      0.6em;
  color:          rgba(140,180,255,0.45);
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.pwiz-chooser-player-name {
  color:       #D4AF37;
  font-weight: 800;
}
.pwiz-chooser-pos {
  font-size: 0.58em;
  color:     rgba(212,175,55,0.4);
}

.pwiz-chooser-stats {
  display:   flex;
  gap:       0.3em;
  flex-wrap: wrap;
}

.pwiz-chooser-stat {
  display:        flex;
  flex-direction: column;
  align-items:    center;
  padding:        0.18em 0.35em;
  background:     rgba(30,60,150,0.3);
  border:         1px solid rgba(80,130,255,0.18);
  border-radius:  3px;
  min-width:      2em;
}
.pwiz-cs-key {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.5em;
  color:          rgba(150,185,255,0.45);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height:    1;
}
.pwiz-cs-val {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 800;
  font-size:   0.82em;
  color:       rgba(200,225,255,0.85);
  line-height: 1.2;
}

.pwiz-chooser-skills {
  display:   flex;
  flex-wrap: wrap;
  gap:       0.25em;
}

/* ── Right panel (Sprint 14) ── */
.pwiz-right-rr {
  text-align:    center;
  padding:       0.6em 0.4em;
  background:    rgba(10,20,60,0.5);
  border:        1px solid rgba(80,130,255,0.2);
  border-radius: 6px;
  margin-bottom: 0.45em;
}
.pwiz-rr-big-num {
  font-family: 'JetBrains Mono', monospace;
  font-size:   2.8em;
  font-weight: 900;
  color:       #D4AF37;
  line-height: 1;
  text-shadow: 0 0 20px rgba(212,175,55,0.35);
}
.pwiz-rr-big-num.zero {
  color:       rgba(200,16,46,0.7);
  text-shadow: 0 0 20px rgba(200,16,46,0.2);
}
.pwiz-rr-big-label {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.57em;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color:          rgba(180,210,255,0.35);
  margin-top:     0.2em;
}
.pwiz-rr-used-note {
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.6em;
  color:       rgba(255,193,7,0.65);
  margin-top:  0.2em;
}

.pwiz-right-weather {
  text-align:    center;
  padding:       0.5em 0.4em;
  background:    rgba(10,20,60,0.4);
  border:        1px solid rgba(80,130,255,0.15);
  border-radius: 6px;
  margin-bottom: 0.4em;
}
.pwiz-weather-emoji {
  font-size:     1.6em;
  line-height:   1;
  margin-bottom: 0.12em;
}
.pwiz-weather-name {
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.7em;
  font-weight: 700;
  color:       rgba(200,225,255,0.75);
}
.pwiz-weather-effect {
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.62em;
  color:       rgba(255,193,7,0.6);
  margin-top:  0.15em;
  line-height: 1.35;
}

.pwiz-right-game {
  padding:       0.35em 0.5em;
  background:    rgba(10,20,60,0.35);
  border:        1px solid rgba(80,130,255,0.12);
  border-radius: 5px;
  margin-bottom: 0.35em;
}
.pwiz-game-row {
  display:         flex;
  align-items:     baseline;
  justify-content: space-between;
  gap:             0.3em;
}
.pwiz-game-key {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.58em;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color:          rgba(140,180,255,0.4);
}
.pwiz-game-val {
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.85em;
  font-weight: 800;
  color:       rgba(200,225,255,0.8);
}
.pwiz-right-note {
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.55em;
  color:       rgba(140,180,255,0.25);
  text-align:  center;
  margin-top:  0.25em;
}

/* ── Full-screen player picker overlay (Sprint 12) ── */
.pwiz-full-picker-overlay {
  position:       absolute;
  inset:          0;
  z-index:        300;
  background:     rgba(2,6,20,0.88);
  display:        flex;
  align-items:    flex-start;
  justify-content: center;
  padding:        0.6em;
  backdrop-filter: blur(4px);
}

.pwiz-full-picker-card {
  background:     rgba(4,12,40,0.98);
  border:         1px solid rgba(80,130,255,0.4);
  border-radius:  8px;
  width:          100%;
  max-height:     80vh;
  display:        flex;
  flex-direction: column;
  box-shadow:     0 8px 40px rgba(0,0,0,0.7);
}

.pwiz-full-picker-hdr {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  padding:         0.6em 0.85em;
  border-bottom:   1px solid rgba(80,130,255,0.2);
  font-family:     'JetBrains Mono', monospace;
  font-size:       0.9em;
  font-weight:     800;
  color:           rgba(200,225,255,0.85);
  flex-shrink:     0;
}

.pwiz-full-picker-grid {
  display:    grid;
  grid-template-columns: repeat(auto-fill, minmax(min(220px, 45%), 1fr));
  gap:        0.5em;
  padding:    0.6em;
  overflow-y: auto;
  flex:       1;
}

/* ── Individual player card in picker ── */
.pwiz-player-pick-card {
  display:        flex;
  flex-direction: column;
  gap:            0.3em;
  padding:        0.55em 0.65em;
  background:     rgba(10,22,65,0.7);
  border:         1px solid rgba(80,130,255,0.2);
  border-radius:  6px;
  cursor:         pointer;
  text-align:     left;
  transition:     background 0.12s, border-color 0.12s, transform 0.1s;
}
.pwiz-player-pick-card:hover {
  background:   rgba(40,80,200,0.25);
  border-color: rgba(212,175,55,0.45);
  transform:    translateY(-1px);
}
.pwiz-player-pick-card:active { transform: translateY(0); }

.pwiz-pick-name-row {
  display:         flex;
  align-items:     baseline;
  justify-content: space-between;
  gap:             0.35em;
}
.pwiz-pick-name {
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.85em;
  font-weight: 800;
  color:       rgba(200,225,255,0.9);
}
.pwiz-pick-pos {
  font-family:   'JetBrains Mono', monospace;
  font-size:     0.65em;
  color:         rgba(140,180,255,0.45);
  flex-shrink:   0;
  overflow:      hidden;
  text-overflow: ellipsis;
  white-space:   nowrap;
  max-width:     6em;
}

.pwiz-pick-stats {
  display:   flex;
  gap:       0.28em;
  flex-wrap: wrap;
}
.pwiz-pick-stat {
  display:        flex;
  flex-direction: column;
  align-items:    center;
  padding:        0.15em 0.3em;
  background:     rgba(20,45,120,0.4);
  border:         1px solid rgba(80,130,255,0.15);
  border-radius:  3px;
  min-width:      1.8em;
}
.pwiz-pick-stat.pwiz-stat-focus {
  background:   rgba(212,175,55,0.12);
  border-color: rgba(212,175,55,0.35);
}
.pwiz-stat-key {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.48em;
  color:          rgba(150,185,255,0.4);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  line-height:    1;
}
.pwiz-stat-val {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 800;
  font-size:   0.8em;
  color:       rgba(200,225,255,0.85);
  line-height: 1.15;
}
.pwiz-pick-stat.pwiz-stat-focus .pwiz-stat-val {
  color: #D4AF37;
}

.pwiz-pick-skills {
  display:   flex;
  flex-wrap: wrap;
  gap:       0.22em;
}

/* ── Skill chip: neutral variant (Sprint 13) ── */
.pwiz-skill-chip.neutral {
  background:   rgba(50,70,130,0.2);
  border-color: rgba(80,130,255,0.2);
  color:        rgba(160,195,255,0.55);
}
/* Highlighted skill in picker */
.pwiz-skill-chip.highlight {
  background:   rgba(212,175,55,0.18);
  border-color: rgba(212,175,55,0.5);
  color:        #D4AF37;
  font-weight:  800;
}
/* Base chip sizing in wizard context */
.pwiz-v2 .pwiz-skill-chip {
  font-size: 0.65em;
  padding:   0.2em 0.45em;
}

/* ── Skill tooltip (Sprint 13) ── */
.pwiz-skill-tooltip {
  position:       absolute;
  bottom:         calc(100% + 6px);
  left:           50%;
  transform:      translateX(-50%);
  background:     rgba(4,10,30,0.97);
  border:         1px solid rgba(80,130,255,0.4);
  border-radius:  5px;
  padding:        0.4em 0.55em;
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.7em;
  color:          rgba(200,225,255,0.85);
  white-space:    normal;
  max-width:      min(280px, 22em);
  min-width:      min(180px, 15em);
  z-index:        var(--z-tooltip, 500);
  line-height:    1.45;
  box-shadow:     0 4px 20px rgba(0,0,0,0.6);
  pointer-events: none;
}

/* Ensure skill chip has position context for tooltip */
.pwiz-skill-chip {
  position: relative;
}

/* ── Add/remove buttons in wizard context ── */
.pwiz-v2 .pwiz-add-btn {
  font-size:  0.7em;
  padding:    0.35em 0.6em;
}
.pwiz-v2 .pwiz-rm-btn {
  width:      1.5em;
  height:     1.5em;
  font-size:  0.65em;
}

/* ── Variant overrides ── */

/* V2: Even larger text — TV-at-distance */
.pwiz-variant-2 { font-size: clamp(16px, 2.5vw, 30px); }
.pwiz-variant-2 .pwiz-v2-left  { flex: 0 0 clamp(150px, 14vw, 240px); }
.pwiz-variant-2 .pwiz-v2-right { flex: 0 0 clamp(140px, 13vw, 225px); }

/* V3: Wide center — pitch-dominant */
.pwiz-variant-3 .pwiz-v2-left  { flex: 0 0 clamp(100px, 9vw, 160px); }
.pwiz-variant-3 .pwiz-v2-right { flex: 0 0 clamp(100px, 9vw, 155px); }
.pwiz-variant-3 .pwiz-panel-label { display: none; }

/* V4: Gold/amber accent */
.pwiz-variant-4 .pwiz-v2-body {
  background:    rgba(212,175,55,0.03);
  border-radius: 8px;
  padding:       0.4em;
  border:        1px solid rgba(212,175,55,0.1);
}
.pwiz-variant-4 .pwiz-chooser-area              { border-color: rgba(212,175,55,0.2); background: rgba(40,30,5,0.5); }
.pwiz-variant-4 .pwiz-chooser-area.pwiz-chooser-selected { border-color: rgba(212,175,55,0.5); background: rgba(60,50,10,0.5); }
.pwiz-variant-4 .pwiz-right-rr                  { border-color: rgba(212,175,55,0.3); background: rgba(40,30,5,0.5); }
.pwiz-variant-4 .pwiz-rr-big-num                { color: #FFD700; }
.pwiz-variant-4 .pwiz-variant-btn.active        { color: #FFD700; border-color: rgba(255,215,0,0.5); }

/* V5: Compact — information-dense */
.pwiz-variant-5 { font-size: clamp(12px, 1.6vw, 20px); }
.pwiz-variant-5 .pwiz-v2-left  { flex: 0 0 clamp(110px, 11vw, 175px); }
.pwiz-variant-5 .pwiz-v2-right { flex: 0 0 clamp(100px, 10vw, 160px); }
.pwiz-variant-5 .pwiz-v2-body  { gap: 0.3em; }
.pwiz-variant-5 .pwiz-chooser-area  { padding: 0.28em 0.4em; }
.pwiz-variant-5 .pwiz-rr-big-num    { font-size: 2.2em; }

/* ── Responsive: collapse to single column on narrow panels ── */
@media (max-width: 600px) {
  #panel-pass {
    width:         100vw;
    height:        auto;
    max-height:    92vh;
    aspect-ratio:  unset;
    border-radius: 16px 16px 0 0;
  }
  #panel-pass .panel-body { height: auto; }
  .pwiz-v2-body { flex-direction: column; }
  .pwiz-v2-left, .pwiz-v2-right { flex: none; width: 100%; }
  .pwiz-full-picker-grid { grid-template-columns: 1fr; }
}

/* ── Roll area below body ── */
.pwiz-v2 .pwiz-requirements,
.pwiz-v2 #pwiz-roll {
  width:      100%;
  box-sizing: border-box;  /* neutralise pitch.css padding on .pwiz-requirements */
}

/* ── Roll waiting state (before thrower/catcher are placed) ── */
.pwiz-roll-waiting {
  display:        flex;
  flex-direction: column;
  gap:            0.35em;
  padding:        0.6em 0.75em;
  background:     rgba(10,22,65,0.45);
  border:         1px solid rgba(80,130,255,0.15);
  border-radius:  6px;
}
.pwiz-wait-step {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.72em;
  color:          rgba(150,185,255,0.55);
  font-style:     italic;
}

/* ── Action row / roll sequence ── */
.pwiz-action-row {
  display:     flex;
  flex-wrap:   wrap;
  gap:         0.5em;
  align-items: flex-start;
}
.pwiz-action-col {
  display:        flex;
  flex-direction: column;
  align-items:    center;
  min-width:      4.5em;
}
.pwiz-action-chip {
  padding:       0.22em 0.55em;
  border-radius: 4px;
  font-family:   'JetBrains Mono', monospace;
  font-size:     0.7em;
  font-weight:   800;
  text-align:    center;
  line-height:   1.3;
  border:        1px solid rgba(80,130,255,0.25);
  background:    rgba(20,45,120,0.4);
  color:         rgba(200,225,255,0.8);
}
.pwiz-action-target {
  font-size:   0.9em;
  font-weight: 900;
  color:       #D4AF37;
  display:     block;
}
.pwiz-action-arrow {
  color:       rgba(180,210,255,0.35);
  font-size:   1.25em;
  align-self:  center;
  padding-top: 0.6em;
}
.pwiz-action-die    { min-height: 2.8em; display: flex; align-items: center; justify-content: center; }
.pwiz-action-result { font-size: 0.75em; text-align: center; min-height: 1.2em; }
.pwiz-action-sub    { font-size: 0.55em; opacity: 0.6; font-weight: 400; }

.chip-throw   { border-color: rgba(212,175,55,0.4); background: rgba(212,175,55,0.08); color: #D4AF37; }
.chip-catch   { border-color: rgba(76,175,80,0.4);  background: rgba(76,175,80,0.08);  color: #81c784; }
.chip-int     { border-color: rgba(200,16,46,0.4);  background: rgba(200,16,46,0.08);  color: #ff8fa0; }
.chip-scatter { border-color: rgba(80,130,255,0.35);background: rgba(80,130,255,0.08); color: rgba(180,210,255,0.8); }

.pwiz-mod-breakdown {
  margin-bottom: 0.4em;
  font-family:   'JetBrains Mono', monospace;
  font-size:     0.7em;
}
.pwiz-mod-row {
  display:     flex;
  gap:         0.45em;
  align-items: center;
  padding:     0.07em 0;
}
.pwiz-mod-row.neg   .pwiz-mod-value { color: #ff8fa0; }
.pwiz-mod-row.pos   .pwiz-mod-value { color: #81c784; }
.pwiz-mod-row.final .pwiz-mod-label { font-weight: 800; color: #D4AF37; }
.pwiz-mod-row.final .pwiz-mod-value { display: none; }
.pwiz-mod-label { flex: 1; color: rgba(180,210,255,0.6); }
.pwiz-mod-value { color: rgba(180,210,255,0.5); }

.result-roll-num {
  font-family: 'JetBrains Mono', monospace;
  font-size:   1.6em;
  font-weight: 900;
  color:       rgba(200,225,255,0.9);
  line-height: 1;
}

/* ════════════════════════════════════════════════════════
   BLOCK WIZARD — 2-column layout + roll log
   ════════════════════════════════════════════════════════ */

.bwiz-panel-body {
  display:   flex;
  flex:      1 1 0;
  min-height: 0;
  padding:   0 !important;
  overflow:  hidden;
}

.bwiz-layout {
  display:  flex;
  width:    100%;
  height:   100%;
  overflow: hidden;
}

/* Left column: controls */
.bwiz-controls {
  flex:       0 0 clamp(280px, 44%, 560px);
  overflow-y: auto;
  padding:    1rem 1.25rem;
  border-right: 1px solid rgba(70, 110, 200, 0.2);
  box-sizing: border-box;
}

/* Right column: roll log */
.bwiz-log {
  flex:       1 1 0;
  min-width:  0;
  overflow-y: auto;
  padding:    1rem 1.25rem;
  display:    flex;
  flex-direction: column;
  gap:        0.75rem;
  box-sizing: border-box;
}

.bwiz-log-empty {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.7rem;
  color:          rgba(100, 130, 180, 0.35);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  text-align:     center;
  margin-top:     2rem;
}

/* Each roll entry in the log */
.bwiz-log-entry {
  background:    rgba(10, 22, 65, 0.6);
  border:        1px solid rgba(80, 130, 255, 0.2);
  border-radius: 8px;
  padding:       0.75rem 1rem;
}

.bwiz-log-hdr {
  display:        flex;
  align-items:    center;
  gap:            0.75rem;
  margin-bottom:  0.5rem;
}

.bwiz-log-label {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.65rem;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color:          rgba(150, 185, 255, 0.5);
}

.bwiz-log-picker {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.65rem;
  color:          var(--bb-gold, #D4AF37);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* Die result chips in the log */
.bwiz-log-dice-row {
  display:   flex;
  flex-wrap: wrap;
  gap:       0.5rem;
  margin-bottom: 0.6rem;
}

.bwiz-log-die {
  display:        flex;
  align-items:    center;
  gap:            0.4rem;
  padding:        0.3rem 0.7rem 0.3rem 0.4rem;
  border-radius:  6px;
  border:         1px solid rgba(80, 130, 255, 0.2);
  background:     rgba(10, 22, 65, 0.5);
}

.bwiz-die-glyph {
  font-family: 'Nuffle Dice', sans-serif;
  font-size:   2.2rem;
  line-height: 1;
}

.bwiz-die-label {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.7rem;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Die face colours */
.bwiz-die-att-down  { border-color: rgba(200,16,46,0.5);   color: #ff8fa0; }
.bwiz-die-both-down { border-color: rgba(180,70,0,0.5);    color: #FFAA55; }
.bwiz-die-push      { border-color: rgba(100,140,220,0.3); color: rgba(180,210,255,0.7); }
.bwiz-die-stumble   { border-color: rgba(180,140,0,0.4);   color: #FFD055; }
.bwiz-die-def-down  { border-color: rgba(0,120,40,0.5);    color: #66EE88; }

/* Rule notes */
.bwiz-log-notes {
  margin:      0;
  padding:     0;
  list-style:  none;
  display:     flex;
  flex-direction: column;
  gap:         0.3rem;
}

.bwiz-log-notes li {
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.68rem;
  line-height: 1.4;
  display:     flex;
  align-items: baseline;
  gap:         0.4rem;
}

.bwiz-note-glyph {
  font-family:  'Nuffle Dice', sans-serif;
  font-size:    1.4rem;
  line-height:  1;
  flex-shrink:  0;
}

.bwiz-note-bad  { color: rgba(255, 140, 160, 0.85); }
.bwiz-note-good { color: rgba(100, 230, 140, 0.85); }

.pwiz-reroll-counter { display: none; } /* moved to right panel in v2 */

/* ════════════════════════════════════════════════════════
   BLOCK WIZARD v2 — card layout
   ════════════════════════════════════════════════════════ */

/* Panel-body hosts the scaled stage; horizontally centered, top-aligned so the
   top-origin scale always keeps the scaled content inside the panel. */
.bwiz-panel-body {
  display:               grid !important;
  grid-template-columns: minmax(0, 1fr);
  justify-items:         center;
  align-items:           start;
  /* clip (not hidden): same containment but can never be scroll-shifted,
     which previously let dice/frames render offset under controls */
  overflow:              clip !important;
  padding:               0 !important;
}

/* ── Unified scaling root — FIXED design size (em × 15px). Its size never
   changes with content, so FitScale (window-driven only) locks the layout
   in place and never re-scales mid-use. Variable parts scroll internally. ── */
.bwiz-scale-root {
  display:           flex;
  flex-direction:    column;
  overflow:          visible;
  font-size:         15px;       /* fixed design base; FitScale handles fit */
  width:             74em;
  height:            46em;
  transform-origin:  top center;
  will-change:       transform;
}

/* ── Main wizard row — fills the space above the results strip ── */
.bwiz-outer {
  display:         flex;
  align-items:     flex-start;
  gap:             0.75em;
  padding:         0.85em 0.75em 0.5em;
  overflow:        visible;
  flex:            1 1 0;
  min-height:      0;
}

/* ── Skills columns (far left / right) — scroll if a player has many ── */
.bwiz-skills-col {
  width:           10em;
  flex-shrink:     0;
  display:         flex;
  flex-direction:  column;
  gap:             0.4rem;
  min-height:      0;
  max-height:      100%;
  overflow-y:      auto;
  overflow-x:      hidden;
}

.bwiz-skills-heading {
  font-family:     'JetBrains Mono', monospace;
  font-size:       0.6rem;
  font-weight:     700;
  text-transform:  uppercase;
  letter-spacing:  0.1em;
  color:           rgba(150, 185, 255, 0.45);
  padding-bottom:  0.3rem;
  border-bottom:   1px solid rgba(80, 130, 255, 0.15);
  margin-bottom:   0.15rem;
}

.bwiz-skills-empty {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.65rem;
  color:          rgba(120, 150, 200, 0.35);
  font-style:     italic;
}

/* ── Card columns ── */
.bwiz-card-col {
  width:           17.5em;
  flex-shrink:     0;
  display:         flex;
  flex-direction:  column;
  gap:             0.5rem;
  overflow:        hidden;
  max-height:      100%;
}

.bwiz-change-btn {
  width:          100%;
  padding:        0.3rem 0.6rem;
  background:     rgba(80, 130, 255, 0.1);
  border:         1px solid rgba(80, 130, 255, 0.3);
  border-radius:  5px;
  color:          rgba(160, 200, 255, 0.8);
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.65rem;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  cursor:         pointer;
  transition:     background 0.12s, border-color 0.12s, color 0.12s;
}
.bwiz-change-btn:hover {
  background:     rgba(80, 130, 255, 0.2);
  border-color:   rgba(80, 130, 255, 0.55);
  color:          #fff;
}

/* Card wrap contains either the picker or the embedded card */
.bwiz-card-wrap {
  width:      17.5em;
  flex-shrink: 0;
  position:   relative;
}

/* Embedded trading card — fixed width, ratio locked by parent .trading-card rule */
.bwiz-embedded-card {
  max-width: 17.5em !important;
  cursor:    default;
}

/* Picker (shown before a player is selected) — matches card 5:7 ratio */
.bwiz-picker {
  background:     rgba(10, 22, 65, 0.6);
  border:         1px dashed rgba(80, 130, 255, 0.25);
  border-radius:  6px;
  padding:        0.65rem;
  aspect-ratio:   5 / 7;
  display:        flex;
  flex-direction: column;
  overflow:       hidden;
}
.bwiz-picker .wps-list {
  max-height: none;
  flex:       1 1 0;
  min-height: 0;
}

.bwiz-picker-label {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.62rem;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color:          rgba(150, 185, 255, 0.4);
  margin-bottom:  0.5rem;
}

/* ── Assists dots ── */
.bwiz-assists {
  display:    flex;
  flex-direction: column;
  gap:        0.25rem;
}

.bwiz-assists-label {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.58rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color:          rgba(120, 155, 210, 0.45);
}

.bwiz-assists-row {
  display:     flex;
  gap:         0.35rem;
  align-items: center;
}

/* Blitz toggle — sits to the right of the 6th assist dot (attacker only) */
.bwiz-blitz-toggle {
  margin-left:    0.4rem;
  padding:        0.18rem 0.6rem;
  border-radius:  4px;
  border:         1px solid rgba(212, 175, 55, 0.45);
  background:     rgba(212, 175, 55, 0.1);
  color:          var(--bb-gold, #D4AF37);
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.62rem;
  font-weight:    800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  cursor:         pointer;
  transition:     background 0.12s, border-color 0.12s, box-shadow 0.12s;
}
.bwiz-blitz-toggle:hover:not(:disabled) {
  background:   rgba(212, 175, 55, 0.22);
  border-color: rgba(212, 175, 55, 0.7);
}
.bwiz-blitz-toggle.active {
  background:   var(--bb-gold, #D4AF37);
  border-color: var(--bb-gold, #D4AF37);
  color:        #1a1205;
  box-shadow:   0 0 10px rgba(212, 175, 55, 0.5);
}
.bwiz-blitz-toggle:disabled {
  opacity: 0.35;
  cursor:  not-allowed;
}

.assist-dot {
  width:          1.4rem;
  height:         1.4rem;
  border-radius:  50%;
  border:         2px solid rgba(80, 130, 255, 0.3);
  background:     rgba(10, 22, 65, 0.5);
  cursor:         pointer;
  transition:     background 0.12s, border-color 0.12s, transform 0.1s;
  padding:        0;
}
.assist-dot:hover {
  border-color:   rgba(80, 130, 255, 0.7);
  transform:      scale(1.15);
}
.assist-dot.active {
  background:     var(--tc-primary, #062E94);
  border-color:   var(--tc-primary, #062E94);
  box-shadow:     0 0 6px rgba(100, 150, 255, 0.4);
}

/* ── Center column ── */
.bwiz-center {
  flex:            1;
  min-width:       10em;
  display:         flex;
  flex-direction:  column;
  align-items:     center;
  gap:             0.65rem;
  padding-top:     0.25rem;
  /* Room so the Roll/Confirm/Complete button's glow isn't clipped by the
     scrollport's bottom edge. */
  padding-bottom:  2.4rem;
  min-height:      0;
  max-height:      100%;
  overflow-y:      auto;
  overflow-x:      hidden;
}

/* Re-rolls */
.bwiz-rerolls-wrap {
  display:        flex;
  flex-direction: column;
  align-items:    center;
  gap:            0.25rem;
}

.bwiz-rerolls-label {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.58rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color:          rgba(120, 155, 210, 0.45);
}

.bwiz-rerolls {
  display:    flex;
  flex-wrap:  wrap;
  gap:        0.35rem;
  justify-content: center;
}

.bwiz-rr-dot {
  width:          1.2rem;
  height:         1.2rem;
  border-radius:  50%;
  border:         2px solid rgba(212, 175, 55, 0.5);
  background:     rgba(212, 175, 55, 0.15);
  cursor:         pointer;
  padding:        0;
  transition:     background 0.12s, transform 0.1s;
}
.bwiz-rr-dot:hover:not(:disabled) {
  background:     rgba(212, 175, 55, 0.4);
  transform:      scale(1.15);
}
.bwiz-rr-dot.spent { background: transparent; border-color: rgba(212,175,55,0.15); cursor: default; }
.bwiz-rr-dot.used  { opacity: 0.35; cursor: not-allowed; }
.bwiz-rr-dot:disabled { cursor: not-allowed; opacity: 0.4; }

.bwiz-rr-used-note {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.6rem;
  color:          rgba(212,175,55,0.5);
  text-transform: uppercase;
}

/* ST compare text */
.bwiz-st-compare {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.72rem;
  font-weight:    700;
  color:          rgba(180, 210, 255, 0.7);
  text-align:     center;
  line-height:    1.4;
}

/* Dice tray (same block-dice-tray styles apply, just center it) */
.bwiz-dice-tray {
  justify-content: center;
  margin:          0;
}

/* Defender-picks banner */
.bwiz-def-picks-banner {
  background:     rgba(212, 175, 55, 0.15);
  border:         1px solid rgba(212, 175, 55, 0.4);
  border-radius:  5px;
  padding:        0.35rem 0.85rem;
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.7rem;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color:          var(--bb-gold, #D4AF37);
  animation:      pulse 1.2s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.55; }
}

/* Confirm button */
.bwiz-confirm-btn {
  width:          100%;
  padding:        0.4rem 1.2rem;
  background:     rgba(80, 130, 255, 0.15);
  border:         1px solid rgba(80, 130, 255, 0.45);
  border-radius:  5px;
  color:          rgba(180, 210, 255, 0.9);
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.72rem;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  cursor:         pointer;
  transition:     background 0.12s, border-color 0.12s;
}
.bwiz-confirm-btn:hover {
  background:     rgba(80, 130, 255, 0.3);
  border-color:   rgba(80, 130, 255, 0.7);
}

/* Use Re-roll button (gold) */
.bwiz-rr-action-btn {
  width:          100%;
  padding:        0.4rem 1.2rem;
  background:     rgba(212, 175, 55, 0.12);
  border:         1px solid rgba(212, 175, 55, 0.5);
  border-radius:  5px;
  color:          var(--bb-gold, #D4AF37);
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.72rem;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  cursor:         pointer;
  transition:     background 0.12s, border-color 0.12s;
}
.bwiz-rr-action-btn:hover {
  background:   rgba(212, 175, 55, 0.28);
  border-color: rgba(212, 175, 55, 0.8);
}

/* Selected die highlight */
.bwiz-die-selected {
  outline:      3px solid var(--bb-gold, #D4AF37);
  outline-offset: 2px;
  box-shadow:   0 0 12px rgba(212,175,55,0.5) !important;
}
.bwiz-die-selectable { cursor: pointer !important; }

/* ── Results strip ── */
.bwiz-results-strip {
  display:         flex;
  gap:             0.65em;
  padding:         0.65em 0.75em 0.75em;
  border-top:      1px solid rgba(80, 130, 255, 0.15);
  background:      rgba(5, 12, 40, 0.5);
  flex-shrink:     0;
}

.bwiz-result-panel {
  flex:            1;
  background:      rgba(10, 22, 65, 0.55);
  border:          1px solid rgba(80, 130, 255, 0.2);
  border-radius:   7px;
  padding:         0.65em 0.75em;
  display:         flex;
  flex-direction:  column;
  gap:             0.3em;
  transition:      opacity 0.25s, border-color 0.25s;
  min-width:       0;
  /* Grows with content (Both Down = two armour + two injury results)
     up to a cap, then scrolls — no scrollbar while there's room. */
  min-height:      13em;
  max-height:      20em;
  overflow:        hidden;   /* content scrolls once the cap is hit */
  font-family:     'JetBrains Mono', monospace;
}

.bwiz-result-panel.locked {
  opacity:         0.35;
  pointer-events:  none;
}

.bwiz-result-label {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.58em;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color:          rgba(150, 185, 255, 0.45);
}

.bwiz-result-content {
  display:        flex;
  flex-direction: column;
  gap:            0.3em;
  /* auto basis: content height grows the panel (up to its max-height) */
  flex:           1 1 auto;
  min-height:     0;
  overflow-y:     auto;
}

/* Headline — bold italic, sized to match panels.css .result-name pattern */
.bwiz-result-headline {
  font-family:    'JetBrains Mono', monospace;
  font-weight:    800;
  font-style:     italic;
  font-size:      1em;
  line-height:    1.2;
  letter-spacing: -0.01em;
  color:          rgba(200, 225, 255, 0.9);
}
.bwiz-result-headline.bwiz-result-ok      { color: #66EE88; }
.bwiz-result-headline.bwiz-result-bad     { color: #ff8fa0; }
.bwiz-result-headline.bwiz-result-warn    { color: #FFD055; }
.bwiz-result-headline.bwiz-result-neutral { color: rgba(200, 225, 255, 0.75); }

/* Context note box */
.bwiz-result-note {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.75em;
  font-weight:    500;
  line-height:    1.45;
  padding:        0.3em 0.55em;
  border-radius:  4px;
  border:         1px solid transparent;
  margin:         0;
}
.bwiz-result-note.ok   { background: rgba(76,175,80,0.12);   border-color: rgba(76,175,80,0.3);   color: rgba(150,230,160,0.9); }
.bwiz-result-note.bad  { background: rgba(200,16,46,0.12);   border-color: rgba(200,16,46,0.3);   color: rgba(255,150,165,0.9); }
.bwiz-result-note.warn { background: rgba(255,193,7,0.1);    border-color: rgba(255,193,7,0.3);   color: rgba(255,210,100,0.9); }
.bwiz-result-note.info { background: rgba(80,130,255,0.1);   border-color: rgba(80,130,255,0.28); color: rgba(160,200,255,0.85); }

/* Dice math line */
.bwiz-math-row {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.72em;
  color:          rgba(140, 175, 235, 0.55);
  letter-spacing: 0.04em;
  margin:         0;
}

/* Running record — one row per roll (attacker, then defender below) */
.bwiz-roll-row {
  display:        flex;
  flex-direction: column;
  gap:            0.15em;
  padding:        0.3em 0;
  border-top:     1px solid rgba(80, 130, 255, 0.14);
}
.bwiz-roll-row:first-child { border-top: none; padding-top: 0; }
.bwiz-roll-row:last-child  { padding-bottom: 0; }
.bwiz-roll-row.pending     { opacity: 0.7; }
.bwiz-roll-who {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.58em;
  font-weight:    700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color:          rgba(170, 205, 255, 0.6);
}
.bwiz-roll-detail {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.66em;
  color:          rgba(160, 195, 255, 0.55);
}
.bwiz-roll-row .bwiz-casualty-result {
  display:        flex;
  flex-direction: column;
  gap:            0.15em;
  margin-top:     0.2em;
}

.bwiz-roll-btn-sm {
  margin-top:     0.2em;
  padding:        0.3em 0.75em !important;
  font-size:      0.65em !important;
}

/* ── Skill cards in side columns — scale down sk-card to fit 10em columns ── */
.bwiz-skills-col .sk-card {
  padding:   0.5rem 0.6rem 0.6rem;
  gap:       0.3rem;
  cursor:    default;
}
.bwiz-skills-col .sk-card:hover { transform: none; }
.bwiz-skills-col .sk-card-name {
  font-size:   0.72rem;
  border:      none;
  background:  none;
  padding:     0;
  cursor:      default;
}
.bwiz-skills-col .sk-card-name:hover { border: none; color: #fff; }
.bwiz-skills-col .sk-card-badge { font-size: 0.5rem; padding: 0.15rem 0.35rem; }
.bwiz-skills-col .sk-card-desc  { font-size: 0.58rem; line-height: 1.5; }

/* ── Styled 2D6 dice display ── */
.bwiz-armor-dice-tray {
  display:     flex;
  align-items: center;
  gap:         0.35em;
  flex-wrap:   wrap;
  min-height:  2.2em;
  margin-top:  0.25em;
}

.bwiz-d6-face {
  font-family: 'Nuffle Dice', sans-serif;
  font-size:   3.2rem;
  line-height: 1;
  display:     inline-block;
  color:       #D4AF37;
  background:  #1a1a2e;
  box-shadow:  2px 3px 6px rgba(0,0,0,0.65);
}

.bwiz-dice-op {
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.85em;
  font-weight: 700;
  color:       rgba(180, 210, 255, 0.5);
}

.bwiz-dice-total {
  font-family: 'JetBrains Mono', monospace;
  font-size:   1.3em;
  font-weight: 900;
  color:       #ff8fa0;
}
.bwiz-dice-total.ok { color: #66EE88; }

/* ── Block Roll button: state glow (matches action-card hover style) ── */
@keyframes bwiz-pulse-gold {
  0%, 100% {
    box-shadow: 0 0 0 1px rgba(212,175,55,0.55),
                0 0 10px 2px rgba(212,175,55,0.30),
                0 0 18px 3px rgba(212,175,55,0.18);
  }
  50% {
    box-shadow: 0 0 0 1px rgba(212,175,55,0.85),
                0 0 16px 4px rgba(212,175,55,0.45),
                0 0 28px 6px rgba(212,175,55,0.22);
  }
}
@keyframes bwiz-pulse-green {
  0%, 100% {
    box-shadow: 0 0 0 1px rgba(102,238,68,0.55),
                0 0 10px 2px rgba(102,238,68,0.30),
                0 0 18px 3px rgba(102,238,68,0.18);
  }
  50% {
    box-shadow: 0 0 0 1px rgba(102,238,68,0.85),
                0 0 16px 4px rgba(102,238,68,0.45),
                0 0 28px 6px rgba(102,238,68,0.22);
  }
}

@keyframes bwiz-pulse-blue {
  0%, 100% {
    box-shadow: 0 0 0 1px rgba(80,130,255,0.55),
                0 0 10px 2px rgba(80,130,255,0.30),
                0 0 18px 3px rgba(80,130,255,0.18);
  }
  50% {
    box-shadow: 0 0 0 1px rgba(80,130,255,0.85),
                0 0 16px 4px rgba(80,130,255,0.45),
                0 0 28px 6px rgba(80,130,255,0.22);
  }
}

@keyframes bwiz-card-pulse-green {
  0%, 100% {
    box-shadow: 0 0 0 1px rgba(76,175,80,0.50),
                0 0 12px 3px rgba(76,175,80,0.28),
                0 0 24px 5px rgba(76,175,80,0.16);
  }
  50% {
    box-shadow: 0 0 0 2px rgba(76,175,80,0.85),
                0 0 18px 5px rgba(76,175,80,0.4),
                0 0 32px 8px rgba(76,175,80,0.22);
  }
}

@keyframes bwiz-card-pulse-red {
  0%, 100% {
    box-shadow: 0 0 0 1px rgba(200,16,46,0.50),
                0 0 12px 3px rgba(200,16,46,0.28),
                0 0 24px 5px rgba(200,16,46,0.16);
  }
  50% {
    box-shadow: 0 0 0 2px rgba(200,16,46,0.85),
                0 0 18px 5px rgba(200,16,46,0.4),
                0 0 32px 8px rgba(200,16,46,0.22);
  }
}

@keyframes bwiz-pulse-gold-strong {
  0%, 100% {
    box-shadow: 0 0 0 1px rgba(255,210,40,0.70),
                0 0 16px 5px rgba(255,210,40,0.45),
                0 0 30px 8px rgba(255,210,40,0.24),
                0 4px 12px rgba(0,0,0,0.28);
  }
  50% {
    box-shadow: 0 0 0 2px rgba(255,210,40,1.0),
                0 0 24px 8px rgba(255,210,40,0.78),
                0 0 44px 14px rgba(255,210,40,0.40),
                0 4px 12px rgba(0,0,0,0.28);
  }
}
@keyframes bwiz-pulse-green-strong {
  0%, 100% {
    box-shadow: 0 0 0 1px rgba(102,238,68,0.60),
                0 0 14px 4px rgba(102,238,68,0.35),
                0 0 26px 6px rgba(102,238,68,0.22);
  }
  50% {
    box-shadow: 0 0 0 1px rgba(102,238,68,1.0),
                0 0 22px 6px rgba(102,238,68,0.65),
                0 0 40px 10px rgba(102,238,68,0.35);
  }
}
@keyframes bwiz-pulse-blue-strong {
  0%, 100% {
    box-shadow: 0 0 0 1px rgba(80,130,255,0.60),
                0 0 14px 4px rgba(80,130,255,0.35),
                0 0 26px 6px rgba(80,130,255,0.22);
  }
  50% {
    box-shadow: 0 0 0 2px rgba(80,130,255,1.0),
                0 0 22px 6px rgba(80,130,255,0.70),
                0 0 40px 10px rgba(80,130,255,0.38);
  }
}

/* Confirm button blue pulse */
.bwiz-confirm-btn { transition: background 0.12s, border-color 0.12s, box-shadow 0.7s ease; }
.bwiz-confirm-btn.glow-blue { animation: bwiz-pulse-blue 1.6s ease-in-out infinite; }

/* Re-roll button gold pulse */
.bwiz-rr-action-btn { transition: background 0.12s, border-color 0.12s, box-shadow 0.7s ease; }
.bwiz-rr-action-btn.glow-gold { animation: bwiz-pulse-gold 1.6s ease-in-out infinite; }

/* Player card glows — applied to .bwiz-embedded-card */
.bwiz-card-glow-att { animation: bwiz-card-pulse-green 1.8s ease-in-out infinite; border-radius: 8px; }
.bwiz-card-glow-def { animation: bwiz-card-pulse-red   1.8s ease-in-out infinite; border-radius: 8px; }

/* Slow fade-out when glow class is removed; fast on hover */
#block-roll-btn,
.pwiz3-roll-btn {
  transition:      background 0.15s, box-shadow 0.7s ease, transform 0.12s, border-color 0.15s;
  font-family:     'Nuffle Italic', serif;
  font-size:       1.5em;
  width:           100%;
  padding:         0.55em 1em;
  background:      rgba(212, 175, 55, 0.88);
  border-color:    rgba(212, 175, 55, 0.95);
  color:           #fff;
  text-shadow:     0 0 4px rgba(0,0,0,0.7), 0 1px 2px rgba(0,0,0,0.9);
  letter-spacing:  0.06em;
  justify-content: center;
  margin:          0.4em 0 0;
}
#block-roll-btn:hover,
.pwiz3-roll-btn:hover {
  transition:   background 0.15s, box-shadow 0.15s, transform 0.12s, border-color 0.15s;
  background:   rgba(212, 175, 55, 1);
  border-color: rgba(212, 175, 55, 1);
  box-shadow:   0 0 20px rgba(212, 175, 55, 0.5), 0 4px 16px rgba(0,0,0,0.35);
}
.pwiz3-roll-btn:disabled { opacity: 0.45; }

#block-roll-btn.glow-gold,
.pwiz3-roll-btn.glow-gold  { animation: bwiz-pulse-gold-strong  1.6s ease-in-out infinite; }
#block-roll-btn.glow-green,
.pwiz3-roll-btn.glow-green { animation: bwiz-pulse-green-strong 1.6s ease-in-out infinite; }
#block-roll-btn.glow-blue,
.pwiz3-roll-btn.glow-blue  { animation: bwiz-pulse-blue-strong  1.6s ease-in-out infinite; }

/* ── Roll button — Confirm Result state (solid blue, replaces gold) ── */
#block-roll-btn.roll-btn--confirm,
.pwiz3-roll-btn.roll-btn--confirm {
  background:   rgba(80, 130, 255, 0.9);
  border-color: rgba(80, 130, 255, 1);
  color:        #fff;
  text-shadow:  0 0 4px rgba(0,0,0,0.7), 0 1px 2px rgba(0,0,0,0.9);
}
#block-roll-btn.roll-btn--confirm:hover,
.pwiz3-roll-btn.roll-btn--confirm:hover {
  background:   rgba(80, 130, 255, 1);
  border-color: rgba(80, 130, 255, 1);
  box-shadow:   0 0 20px rgba(80, 130, 255, 0.55), 0 4px 16px rgba(0,0,0,0.35);
}

/* ── Roll button — Complete Block state (solid green, white text persists) ── */
.roll-btn--complete {
  background:   rgba(76, 175, 80, 0.15);
  border-color: rgba(76, 175, 80, 0.45);
  color:        #81c784;
  box-shadow:   0 0 10px rgba(76, 175, 80, 0.06);
}
.roll-btn--complete:hover {
  background:   rgba(76, 175, 80, 0.3);
  border-color: rgba(76, 175, 80, 0.7);
  box-shadow:   0 0 20px rgba(76, 175, 80, 0.28), 0 4px 16px rgba(0,0,0,0.35);
}

/* Block roll btn Complete state overrides with solid green + white text */
#block-roll-btn.roll-btn--complete,
.pwiz3-roll-btn.roll-btn--complete {
  background:  rgba(76, 175, 80, 0.85);
  border-color: rgba(76, 175, 80, 0.95);
  color:        #fff;
  text-shadow:  0 0 4px rgba(0,0,0,0.7), 0 1px 2px rgba(0,0,0,0.9);
}
#block-roll-btn.roll-btn--complete:hover,
.pwiz3-roll-btn.roll-btn--complete:hover {
  background:  rgba(76, 175, 80, 1);
  border-color: rgba(76, 175, 80, 1);
  box-shadow:   0 0 20px rgba(76, 175, 80, 0.5), 0 4px 16px rgba(0,0,0,0.35);
}

/* ── Team tabs inside block picker (Home / Away toggle) ── */
.bwiz-team-tabs {
  display:     flex;
  gap:         0.25rem;
  margin:      0 0 0.4rem;
  flex-shrink: 0;
}

.bwiz-team-tab {
  flex:           1;
  padding:        0.2rem 0.3rem;
  background:     rgba(20, 40, 100, 0.4);
  border:         1px solid rgba(80, 130, 255, 0.2);
  border-radius:  4px;
  color:          rgba(140, 180, 255, 0.55);
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.58rem;
  font-weight:    700;
  cursor:         pointer;
  text-align:     center;
  transition:     background 0.12s, color 0.12s, border-color 0.12s;
}
.bwiz-team-tab:hover {
  background:   rgba(60, 100, 200, 0.35);
  color:        rgba(200, 225, 255, 0.9);
  border-color: rgba(80, 130, 255, 0.45);
}
.bwiz-team-tab.active {
  background:   rgba(212, 175, 55, 0.15);
  border-color: rgba(212, 175, 55, 0.5);
  color:        #D4AF37;
}

/* ════════════════════════════════════════════════════════
   BLOCK WIZARD — inline skill prompts (full simulation)
   ════════════════════════════════════════════════════════ */
.bwiz-skill-prompts {
  display:        flex;
  flex-direction: column;
  gap:            0.35rem;
  width:          100%;
  margin-top:     0.4rem;
}
.bwiz-prompt {
  display:        flex;
  align-items:    center;
  flex-wrap:      wrap;
  gap:            0.35rem;
  padding:        0.35rem 0.5rem;
  background:     rgba(80, 130, 255, 0.08);
  border:         1px solid rgba(100, 150, 255, 0.22);
  border-radius:  6px;
}
.bwiz-prompt-label {
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.66rem;
  line-height: 1.35;
  color:       rgba(220, 235, 255, 0.9);
  flex:        1 1 auto;
  min-width:   8rem;
}
.bwiz-prompt-label b { color: var(--bb-gold, #E8C24A); font-weight: 700; }
.bwiz-prompt-btn {
  font-family:   'JetBrains Mono', monospace;
  font-size:     0.64rem;
  font-weight:   700;
  color:         rgba(210, 230, 255, 0.85);
  background:    rgba(255, 255, 255, 0.06);
  border:        1px solid rgba(120, 160, 230, 0.35);
  border-radius: 5px;
  padding:       0.25rem 0.6rem;
  cursor:        pointer;
  transition:    background 0.12s, color 0.12s;
}
.bwiz-prompt-btn:hover { background: rgba(90, 140, 255, 0.2); color: #fff; }
.bwiz-prompt-btn.primary {
  color:      #fff;
  background:  rgba(70, 130, 255, 0.32);
  border-color: rgba(120, 170, 255, 0.6);
}
.bwiz-prompt-btn.chosen {
  background:  rgba(40, 90, 200, 0.5);
  border-color: rgba(150, 190, 255, 0.8);
  color: #fff;
}
.bwiz-prompt-btn:disabled { opacity: 0.55; cursor: default; }
.bwiz-prompt-res {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 800;
  font-size:   0.85rem;
  color:       var(--bb-gold, #E8C24A);
  min-width:   1.2rem;
  text-align:  center;
}
.bwiz-prompt-note {
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.62rem;
  color:       rgba(180, 210, 255, 0.65);
  padding:     0.1rem 0.4rem;
}
.bwiz-mini-die {
  width:  1.6rem !important;
  height: 1.6rem !important;
  min-width: 1.6rem;
  font-size: 0.9rem !important;
  flex-shrink: 0;
}
.bwiz-skill-notes {
  margin:      0.3rem 0 0;
  padding-left: 1rem;
  list-style:  disc;
}
.bwiz-skill-notes li {
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.6rem;
  line-height: 1.45;
  color:       rgba(200, 220, 255, 0.7);
}

/* ════════════════════════════════════════════════════════
   SPECIAL ACTIONS WIZARD
   Fixed-design stage (FitScale) like Block/Foul — same
   74em × 46em scale root; internals scroll, never reflow.
   ════════════════════════════════════════════════════════ */
/* Throw wizard fixed stage — step content scrolls, chrome stays put */
.bwiz-scale-root--throw .pass-summary-strip,
.bwiz-scale-root--throw .pass-step-indicator,
.bwiz-scale-root--throw .pass-nav { flex-shrink: 0; }
.bwiz-scale-root--throw #twiz-content {
  flex:       1 1 0;
  min-height: 0;
  overflow-y: auto;
}

.bwiz-scale-root--special .panel-intro { flex-shrink: 0; margin-bottom: 0; }
.bwiz-scale-root--special .spec-outer  { flex: 1 1 0; min-height: 0; }
.bwiz-scale-root--special .spec-col,
.bwiz-scale-root--special .spec-center { min-height: 0; overflow-y: auto; }
.bwiz-scale-root--special .bwiz-results-strip { flex-shrink: 0; }

.spec-outer {
  display:        grid;
  grid-template-columns: 1fr 1.1fr 1fr;
  gap:            1rem;
  align-items:    start;
  margin-top:     0.6rem;
}
.spec-col { display: flex; flex-direction: column; gap: 0.5rem; min-width: 0; }
.spec-col-label {
  font-family:    'JetBrains Mono', monospace;
  font-size:      0.62rem;
  font-weight:    700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color:          rgba(190, 215, 255, 0.6);
}
.spec-center { align-items: center; gap: 0.7rem; }
.spec-action-name {
  font-family: 'JetBrains Mono', monospace;
  font-size:   0.68rem;
  line-height: 1.45;
  color:       rgba(210, 230, 255, 0.85);
  text-align:  center;
  min-height:  2.2em;
}
.spec-action-name b { color: var(--bb-gold, #E8C24A); }

.spec-action-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.spec-chip {
  font-family:   'JetBrains Mono', monospace;
  font-size:     0.66rem;
  font-weight:   700;
  color:         rgba(220, 235, 255, 0.85);
  background:    rgba(120, 60, 200, 0.16);
  border:        1px solid rgba(160, 110, 240, 0.4);
  border-radius: 5px;
  padding:       0.28rem 0.6rem;
  cursor:        pointer;
  transition:    background 0.12s, border-color 0.12s;
}
.spec-chip:hover  { background: rgba(140, 80, 230, 0.28); }
.spec-chip.active {
  background:   rgba(150, 90, 240, 0.45);
  border-color: rgba(200, 160, 255, 0.8);
  color:        #fff;
}

/* Reuse the block wizard's player-list look for actor/target columns */
#spec-actor-wrap .pwiz-team-tabs { margin-bottom: 0.4rem; }

/* ════════════════════════════════════════════════════════
   EMBEDDED CARD — dynamic scaling + redesign (Block + Pass)
   Every internal size is expressed in container-query units
   (cqw = 1% of the card's own width), so the whole card scales
   up or down to fit the UI instead of clipping/wrapping.
   • Lifts out of its frame so the glow isn't clipped.
   • Stats overlap the picture on a faded backdrop.
   • Skills as boxed tags under the stats (no underline/commas).
   • Flavor always shown, clamped to 2 lines.
   ════════════════════════════════════════════════════════ */

/* Let the glow/pulse bleed out of the card column */
.bwiz-card-col { overflow: visible; }

/* Keep the locked 5:7 ratio; the card is its own query container so every
   internal size (in cqw) scales with the card's width — i.e. self-similar at
   any size, so content always fits the 5:7 box. */
.bwiz-embedded-card {
  aspect-ratio: 5 / 7 !important;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  container-type: inline-size;
}

/* Name band — proportions matched to the full-size roster card (name ≈5.5%
   of card width, jersey ≈13%) so the embedded card is a uniform scale-down. */
.bwiz-embedded-card .modal-card-overlay  { gap: 2.5cqw; padding: 2cqw 3cqw; }
.bwiz-embedded-card .modal-jersey-circle { width: 13.5cqw; height: 13.5cqw; font-size: 7.5cqw; border-width: 0.4cqw; }
.bwiz-embedded-card .modal-name          { font-size: 5.6cqw; -webkit-text-stroke: 0.28cqw #000; }
.bwiz-embedded-card .modal-position      { font-size: 2.7cqw; -webkit-text-stroke: 0.2cqw #000; letter-spacing: 0.04em; }
.bwiz-embedded-card .img-placeholder-num { font-size: 21cqw; }

/* Picture fills the space left over above the stats/skills/flavor */
.bwiz-embedded-card .modal-image-area { flex: 1 1 0; min-height: 0; }

/* Stats lifted over the picture on a fade-to-card gradient */
.bwiz-embedded-card .modal-stats {
  flex: 0 0 auto;
  position: relative;
  z-index: 4;
  margin-top: -11cqw;
  padding: 5cqw 2.5cqw 2cqw;
  border-bottom: none;
  background: linear-gradient(to bottom,
    rgba(16, 20, 30, 0) 0%,
    rgba(16, 20, 30, 0.45) 38%,
    rgba(242, 242, 242, 0.94) 100%);
}
.bwiz-embedded-card .modal-stats-row { border: none; border-radius: 0; overflow: visible; gap: 1.2cqw; }
.bwiz-embedded-card .modal-stat {
  border: none;
  background: #fff;
  border-radius: 1.3cqw;
  padding: 1.3cqw 0.3cqw;
  box-shadow: 0 0.3cqw 1cqw rgba(0, 0, 0, 0.5);
}
.bwiz-embedded-card .ms-label { color: #6a6a6a; font-size: 2.2cqw; }
.bwiz-embedded-card .ms-value { font-size: 4.2cqw; line-height: 1.25; }

/* Skills: boxed tags directly under stats; no heading, no underline, no commas */
.bwiz-embedded-card .modal-skills {
  flex: 0 0 auto;
  padding: 1cqw 2.5cqw 2cqw;
  border-bottom: none;
  max-height: none;
  min-height: 0;
  overflow: hidden;
  background: #F2F2F2;
}
.bwiz-embedded-card .skills-label { display: none; }
.bwiz-embedded-card .skills-text {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2cqw;
  font-size: 3cqw;
  line-height: 1.35;
}
.bwiz-embedded-card .skill-sep { display: none; }
.bwiz-embedded-card .skill-link {
  font-weight: 700;
  color: var(--tc-primary, #2a4a8a);
  background: color-mix(in srgb, var(--tc-primary, #2a4a8a) 10%, #fff);
  border: 0.2cqw solid color-mix(in srgb, var(--tc-primary, #2a4a8a) 45%, transparent);
  border-radius: 1.3cqw;
  padding: 0.5cqw 1.6cqw;
}
.bwiz-embedded-card .skill-link:hover,
.bwiz-embedded-card .skill-link:focus-visible {
  border-color: var(--tc-primary, #2a4a8a);
  background: color-mix(in srgb, var(--tc-primary, #2a4a8a) 20%, #fff);
}
.bwiz-embedded-card .no-skills { font-size: 3cqw; }

/* Flavor: always visible, clamp to 2 lines, scales with the card */
.bwiz-embedded-card .modal-fact {
  flex: 0 0 auto;
  padding: 2cqw 3cqw;
  font-size: 3.2cqw;
  line-height: 1.4;
  border-top: 1px solid #D8D8D8;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.8em;
}

/* ════════════════════════════════════════════════════════
   TURN TRACKING — players who already acted this turn stay
   visible in wizard pickers but cannot be selected.
   ════════════════════════════════════════════════════════ */
.wps-player-btn.wps-acted,
.pwiz-player-pick-card.wps-acted {
  opacity: 0.45;
  cursor:  not-allowed;
  filter:  saturate(0.4);
}
.player-status-badge.status-acted {
  background: rgba(120, 130, 150, 0.25);
  color:      rgba(200, 210, 230, 0.8);
  border:     1px solid rgba(150, 160, 180, 0.35);
}
