/* ---- Stiva de acțiunilor apelului (action-stack.js) ------------------------
   Gazda INLINE a formularului unic (action-form.js): carduri în coloana fișei,
   sub/peste pasul de identificare. FIȘIER PROPRIU, rupt din styles-workspace.css
   când lucrarea stivei l-a trecut de plafonul de 600 de rânduri; legătura din
   index.html stă imediat după el, ca regulile să-și păstreze exact poziția din
   cascadă. Mișcarea consumă tokenii --motion-* din capul styles-workspace.css
   (singura lor definiție); fiecare animație are rezerva ei „doar estompare" sub
   prefers-reduced-motion, iar restrângerea e o TRANZIȚIE pe grid-template-rows
   — întreruptibilă, spre deosebire de un keyframe care ar reporni de la zero. */
/* Stiva stă în corpul panoului (`.booking-body`, styles-booking.css), care
   derulează el; stiva nu mai derulează separat și nu mai are plafon propriu. */
.action-stack {
  display: flex;
  flex-direction: column;
  gap: var(--se-space-8);
  min-height: 0;
  flex: 0 0 auto;
  margin-bottom: var(--se-space-12);
}
.action-stack[hidden] {
  display: none; /* aceeași capcană ca .card-outer[hidden] — display bate atributul */
}
.action-cards {
  display: flex;
  flex-direction: column;
  gap: var(--se-space-8);
}
.action-card {
  background: var(--se-color-bg-surface);
  border: 1px solid var(--se-color-border-default);
  border-left: 3px solid var(--se-color-primary-60);
  border-radius: var(--se-radius-lg);
  padding: var(--se-space-8) var(--se-space-12);
}
.action-card[hidden] {
  display: none; /* cardurile liniei în așteptare (action-stack.js stackSetActive) */
}
.action-card.saved {
  border-left-color: var(--se-color-status-success);
}
.action-card-head {
  display: flex;
  align-items: center;
  gap: var(--se-space-8);
  min-height: 28px;
}
.action-card-title {
  font-size: var(--se-type-bodysb-size);
  line-height: var(--se-type-bodysb-line);
  font-weight: var(--se-type-bodysb-weight);
  color: var(--se-color-text-title);
  white-space: nowrap;
}
.action-card-sum {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--se-type-captionreg-size);
  line-height: var(--se-type-captionreg-line);
  color: var(--se-color-text-description);
  font-variant-numeric: tabular-nums;
}
.action-card-when {
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
  font-size: var(--se-type-microreg-size);
  line-height: var(--se-type-microreg-line);
  color: var(--se-color-text-muted);
  white-space: nowrap;
}
.action-card-when:empty {
  display: none;
}
.action-card-toggle {
  margin-left: auto;
  flex: none;
}
/* Bifa chitanței: ascunsă cât timp cardul e viu; la salvare intră cu arcul mic
   al sistemului (check morph). */
.action-card-check {
  display: none;
  width: 18px;
  height: 18px;
  flex: none;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--se-color-badge-green-100);
  color: var(--se-color-badge-green-600);
  font-size: var(--se-type-microreg-size);
  line-height: 1;
}
.action-card.saved .action-card-check {
  display: flex;
}
/* Restrângerea: 1fr → 0fr pe un rând de grilă — animatabil, întreruptibil.
   Cardul restrâns și chitanța nestrânsă arată doar antetul. */
.action-card-collapse {
  display: grid;
  grid-template-rows: 1fr;
  transition: grid-template-rows var(--motion-dur-base) var(--motion-ease-out);
}
.action-card-collapse > .action-card-body {
  min-height: 0;
  overflow: hidden;
}
.action-card.minimized .action-card-collapse,
.action-card.saved:not(.expanded) .action-card-collapse {
  grid-template-rows: 0fr;
}
.action-card.minimized .action-card-head,
.action-card.saved .action-card-head {
  cursor: pointer;
}
/* Chitanța redeschisă e doar-de-citit: câmpurile sunt dezactivate din cod
   (setDisabled), aici doar se stinge apăsatul. */
.action-card.saved .action-form {
  pointer-events: none;
  opacity: 0.75;
}
.action-card.leave {
  opacity: 0;
  transition: opacity var(--motion-dur-fast) var(--motion-ease-out);
}
.action-card.leave .action-card-collapse {
  grid-template-rows: 0fr;
}

/* Coada intențiilor: ce așteaptă ca operatorul să termine cardul deschis.
   Chenarul punctat roz e vocabularul propunerilor (.draft); apăsarea deschide
   ACUM. */
.action-queue {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.action-queue[hidden] {
  display: none;
}
.action-queue-item {
  display: flex;
  align-items: center;
  gap: var(--se-space-8);
  padding: 6px var(--se-space-12);
  background: var(--se-color-secondary-20);
  border: 1px dashed var(--se-color-accent-pink);
  border-radius: var(--se-radius-lg);
  font-size: var(--se-type-captionreg-size);
  line-height: var(--se-type-captionreg-line);
  color: var(--se-color-text-title);
  text-align: left;
}
.action-queue-dot {
  width: 8px;
  height: 8px;
  flex: none;
  border-radius: 50%;
  background: var(--se-color-accent-pink);
}
.action-queue-label {
  font-weight: var(--se-type-captionmed-weight);
}
.action-queue-note {
  margin-left: auto;
  color: var(--se-color-text-muted);
  font-size: var(--se-type-microreg-size);
}
/* Intrările: card + blocuri în cascadă (stagger 40ms, sub 400ms cap-coadă),
   bifa cu arc, pulsul cozii — toate o singură dată, la apariție, și toate cu
   rezerva „doar estompare" când omul a cerut mișcare puțină. */
@keyframes action-card-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes action-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes action-check-pop {
  from {
    opacity: 0;
    transform: scale(0.5);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes action-queue-pulse {
  0% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.02);
  }
  100% {
    transform: scale(1);
  }
}
@media (prefers-reduced-motion: no-preference) {
  .action-card.enter {
    animation: action-card-in var(--motion-dur-base) var(--motion-ease-out);
  }
  .action-card.enter .booking-block,
  .action-card.enter .setari-field,
  .action-card.enter .modal-actions {
    animation: action-card-in var(--motion-dur-base) var(--motion-ease-out) backwards;
    animation-delay: calc(var(--i, 0) * 40ms);
  }
  .action-card.saved .action-card-check {
    animation: action-check-pop var(--motion-dur-base) var(--motion-ease-spring);
  }
  .action-queue-item {
    animation: action-queue-pulse var(--motion-dur-pulse) var(--motion-ease-out);
  }
}
@media (prefers-reduced-motion: reduce) {
  .action-card.enter,
  .action-card.saved .action-card-check,
  .action-queue-item {
    animation: action-fade-in var(--motion-dur-fast) ease-out;
  }
  .action-card-collapse,
  .action-card.leave {
    transition: none;
  }
}
