/* ══════════════════════════════════════════════════════════════
   v0.23 Movement Phase — Overrides
   All shared styles are in ../../../shared/components/*.css
   This file contains ONLY movement-phase-specific styles.
══════════════════════════════════════════════════════════════ */

/* ── Movement ghost circles (start-position ghosts) ── */
.move-ghost { pointer-events: none; fill: none; stroke-dasharray: 4 3; opacity: .3; }

/* ── Movement zone circles ── */
.move-zone { pointer-events: none; stroke-dasharray: 6 4; }
/* active-faction: move-zone is the moving (active) player's range */
.move-zone.zone-move    { fill: color-mix(in srgb, var(--active-faction) 4%, transparent); stroke: color-mix(in srgb, var(--active-faction) 20%, transparent); stroke-width: 1.5; }
.move-zone.zone-advance { fill: rgba(204,136,0,.04); stroke: rgba(204,136,0,.2); stroke-width: 1.5; }

/* ── Ruler lines ── */
.move-ruler       { pointer-events: none; stroke-width: 1; stroke-dasharray: 4 3; fill: none; opacity: .6; }
.move-ruler-label { pointer-events: none; font: 600 9px/1 'Rajdhani', sans-serif; fill: rgba(224,232,240,.45); }

/* ── Wall collision warning highlight on individual model bases ── */
.model-base.wall-collision > :first-child {
  stroke: var(--action) !important;
  stroke-width: 3 !important;
  filter: drop-shadow(0 0 8px color-mix(in srgb, var(--action) 90%, transparent)) drop-shadow(0 0 16px var(--action-glow)) !important;
}
.model-base.wall-collision > g {
  color: var(--action) !important;
}

/* ── Model overlap warning highlight (yellow glow) ── */
.model-base.model-overlap > :first-child {
  stroke: #e6c400 !important;
  stroke-width: 3 !important;
  filter: drop-shadow(0 0 8px rgba(230,196,0,0.9)) drop-shadow(0 0 16px rgba(230,196,0,0.5)) !important;
}
.model-base.model-overlap > g {
  color: #e6c400 !important;
}

/* ── Mode label states ── */
/* Override shoot-specific flex/visibility from shared action-bar.css */
#status-label {
  font: 700 9px/1 'Rajdhani', sans-serif; letter-spacing: 2px; text-transform: uppercase;
  color: var(--text-dis); padding: 0 4px; min-width: 90px; text-align: center;
  flex: 0; /* override shared flex:1 (shoot-specific) */
}
/* active-faction: mode label tracks the moving player */
#status-label.active-move    { color: var(--active-faction); }
#status-label.active-advance { color: var(--strat); }

/* ── Shake on blocked confirm ── */
@keyframes shake-err { 0%,100%{transform:translateX(0)} 20%{transform:translateX(-6px)} 40%{transform:translateX(6px)} 60%{transform:translateX(-4px)} 80%{transform:translateX(4px)} }
.shake-error { animation: shake-err 0.4s ease; }

/* ── Advance D6 Dice Overlay ── */
#advance-dice-overlay {
  position: fixed; inset: 0; display: none;
  align-items: center; justify-content: center;
  z-index: 500; background: rgba(8,12,16,0.75); backdrop-filter: blur(4px);
}
#advance-dice-overlay.visible { display: flex; }
.dice-panel { text-align: center; }
.die-advance {
  width: 72px;
  height: 72px;
  margin: 0 auto 16px;
  font: 400 38px/1 'Anton', sans-serif;
  border-width: 2px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 6px 20px rgba(0,0,0,.6);
}
/* active-faction: advance die belongs to the moving player */
.die-advance.rolling {
  animation: die-roll-in .4s cubic-bezier(.34,1.56,.64,1) both;
  color: var(--active-faction);
  border-color: var(--active-faction);
  background: linear-gradient(135deg, #101c24, var(--bg-surface));
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--active-faction) 19%, transparent), 0 0 24px color-mix(in srgb, var(--active-faction) 35%, transparent), 0 6px 20px rgba(0,0,0,.6);
}
/* active-faction */
.dice-result-label {
  font: 700 12px/1 'Rajdhani', sans-serif; letter-spacing: 3px; text-transform: uppercase;
  color: var(--active-faction);
}
.dice-total-label {
  font: 600 11px/1 'Rajdhani', sans-serif; letter-spacing: 2px;
  color: var(--text-muted); margin-top: 6px;
}

/* ── Version badge ── */
.v23-badge {
  position: absolute; top: 32px; right: 12px; z-index: 50;
  font: 600 9px/1 'Rajdhani', sans-serif; letter-spacing: 2px; text-transform: uppercase;
  color: var(--text-dis); padding: 3px 8px;
  /* active-faction: badge is decorative for active turn */
  border: 1px solid color-mix(in srgb, var(--active-faction) 6%, transparent);
}

/* ── Cohesion banner positioning ── */
/* Full-width banner handled by battlefield.css */

/* ── Hide card range toggles (replaced by auto-drawn per-model SVG rings) ── */
/* card-ranges visible — shared buildCard populates MOVE/AVG ADV/AVG CHRG toggles */

/* ── DS range circle + label ── */
.rc-ds { border: 1.5px dotted rgba(186,126,255,.6); }
.rl-ds { color: rgba(186,126,255,.9); }

/* ── DS card button active state (phase-local override) ── */
#unit-card .range-toggle.active.ds {
  background: rgba(186,126,255,.1);
  border-color: rgba(186,126,255,.42);
  color: #ba7eff;
}
