/* ==========================================================================
   023 — Dropdown Stagger
   Menu déroulant premium : le panneau se déplie (scaleY origin top + fade),
   les items entrent en stagger rapide (~30 ms), les icônes se teintent au
   survol avec un micro-slide, le chevron tourne. Fermeture plus rapide.
   Racine : .dropdown-stagger — état .is-open piloté par anim.js.
   Le panneau reste CONTENU dans la zone de démo (absolute dans la racine).
   ========================================================================== */

.dropdown-stagger {
  --dds-accent: var(--ml-accent, #7c8cff);

  position: relative;
  width: min(220px, 100%);
  height: 238px;
  color: var(--ml-fg, #e8eaf2);
}

/* --- Déclencheur ---------------------------------------------------------- */

.dropdown-stagger__trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px 9px 16px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  background: var(--ml-surface, #151a24);
  color: var(--ml-fg, #e8eaf2);
  font-family: inherit;
  font-size: 0.84rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition:
    border-color 0.25s ease,
    background 0.25s ease,
    transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}

.dropdown-stagger__trigger:hover {
  border-color: color-mix(in srgb, var(--dds-accent) 45%, transparent);
  background: color-mix(in srgb, var(--ml-surface, #151a24) 92%, white);
}

.dropdown-stagger__trigger:active {
  transform: scale(0.98);
}

.dropdown-stagger__trigger:focus-visible {
  outline: 2px solid var(--dds-accent);
  outline-offset: 3px;
}

.dropdown-stagger.is-open .dropdown-stagger__trigger {
  border-color: color-mix(in srgb, var(--dds-accent) 55%, transparent);
}

.dropdown-stagger__chevron {
  display: block;
  width: 14px;
  height: 14px;
  color: var(--ml-muted, #8b91a3);
  transition:
    transform 0.32s cubic-bezier(0.34, 1.4, 0.5, 1),
    color 0.25s ease;
}

.dropdown-stagger__trigger:hover .dropdown-stagger__chevron {
  color: var(--ml-fg, #e8eaf2);
}

.dropdown-stagger.is-open .dropdown-stagger__chevron {
  transform: rotate(-180deg);
  color: var(--dds-accent);
}

/* --- Panneau : dépliage scaleY + fade -------------------------------------- */

.dropdown-stagger__panel {
  position: absolute;
  top: 46px;
  left: 0;
  z-index: 1;
  width: min(212px, 100%);
  padding: 6px;
  border-radius: 12px;
  background: color-mix(in srgb, var(--ml-surface, #151a24) 90%, white);
  border: 1px solid rgba(255, 255, 255, 0.09);
  box-shadow: 0 18px 36px -14px rgba(0, 0, 0, 0.65);
  transform-origin: top center;
  opacity: 0;
  visibility: hidden;
  transform: scaleY(0.86) translateY(-6px);
  transition:
    opacity 0.16s ease,
    transform 0.18s cubic-bezier(0.55, 0, 0.55, 0.2),
    visibility 0s linear 0.18s; /* infocusable une fois replié */
}

.dropdown-stagger.is-open .dropdown-stagger__panel {
  opacity: 1;
  visibility: visible;
  transform: scaleY(1) translateY(0);
  transition:
    opacity 0.22s ease,
    transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0s;
}

/* --- Items : stagger rapide à l'ouverture ---------------------------------- */

.dropdown-stagger__item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ml-fg, #e8eaf2);
  font-family: inherit;
  font-size: 0.8rem;
  font-weight: 500;
  line-height: 1.2;
  text-align: left;
  cursor: pointer;
  opacity: 0;
  transform: translateY(-7px);
  transition:
    opacity 0.12s ease,
    transform 0.12s ease,
    background 0.18s ease,
    color 0.18s ease; /* fermeture : repli rapide, sans stagger */
}

.dropdown-stagger.is-open .dropdown-stagger__item {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 0.26s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.26s cubic-bezier(0.22, 1, 0.36, 1),
    background 0.18s ease,
    color 0.18s ease;
}

/* Stagger ~30 ms — nth-child inclut le séparateur, la cascade reste régulière */
.dropdown-stagger.is-open .dropdown-stagger__panel > :nth-child(1) { transition-delay: 0.05s; }
.dropdown-stagger.is-open .dropdown-stagger__panel > :nth-child(2) { transition-delay: 0.08s; }
.dropdown-stagger.is-open .dropdown-stagger__panel > :nth-child(3) { transition-delay: 0.11s; }
.dropdown-stagger.is-open .dropdown-stagger__panel > :nth-child(4) { transition-delay: 0.14s; }
.dropdown-stagger.is-open .dropdown-stagger__panel > :nth-child(5) { transition-delay: 0.17s; }
.dropdown-stagger.is-open .dropdown-stagger__panel > :nth-child(6) { transition-delay: 0.2s; }
.dropdown-stagger.is-open .dropdown-stagger__panel > :nth-child(7) { transition-delay: 0.23s; }

/* --- Hover / focus : fond, teinte d'icône, micro-slide --------------------- */

.dropdown-stagger__item:hover,
.dropdown-stagger__item:focus-visible {
  background: rgba(255, 255, 255, 0.06);
}

.dropdown-stagger__item:focus-visible {
  outline: 2px solid var(--dds-accent);
  outline-offset: -2px;
}

.dropdown-stagger__icon {
  display: block;
  width: 15px;
  height: 15px;
  flex: none;
  color: var(--ml-muted, #8b91a3);
  transition:
    color 0.2s ease,
    transform 0.24s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.dropdown-stagger__item:hover .dropdown-stagger__icon,
.dropdown-stagger__item:focus-visible .dropdown-stagger__icon {
  color: var(--dds-accent);
  transform: translateX(2px);
}

.dropdown-stagger__hint {
  margin-left: auto;
  font-size: 0.66rem;
  font-weight: 500;
  color: var(--ml-muted, #8b91a3);
  letter-spacing: 0.04em;
}

/* --- Séparateur + item danger ---------------------------------------------- */

.dropdown-stagger__sep {
  height: 1px;
  margin: 5px 8px;
  background: rgba(255, 255, 255, 0.08);
  opacity: 0;
  transition: opacity 0.12s ease;
}

.dropdown-stagger.is-open .dropdown-stagger__sep {
  opacity: 1;
  transition: opacity 0.26s ease;
}

.dropdown-stagger__item--danger {
  color: color-mix(in srgb, #f87171 82%, var(--ml-fg, #e8eaf2));
}

.dropdown-stagger__item--danger:hover,
.dropdown-stagger__item--danger:focus-visible {
  background: color-mix(in srgb, #f87171 12%, transparent);
}

.dropdown-stagger__item--danger:hover .dropdown-stagger__icon,
.dropdown-stagger__item--danger:focus-visible .dropdown-stagger__icon {
  color: #f87171;
}

.dropdown-stagger__item--danger:focus-visible {
  outline-color: #f87171;
}

/* --- Reduced motion --------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  .dropdown-stagger__trigger,
  .dropdown-stagger__chevron,
  .dropdown-stagger__icon {
    transition-duration: 0.01s;
  }

  .dropdown-stagger__trigger:active {
    transform: none;
  }

  .dropdown-stagger__item:hover .dropdown-stagger__icon,
  .dropdown-stagger__item:focus-visible .dropdown-stagger__icon {
    transform: none;
  }

  .dropdown-stagger__panel,
  .dropdown-stagger.is-open .dropdown-stagger__panel {
    transition-duration: 0.01s;
    transition-delay: 0s;
    transform: scaleY(1) translateY(0);
  }

  .dropdown-stagger__item,
  .dropdown-stagger__sep,
  .dropdown-stagger.is-open .dropdown-stagger__panel > :nth-child(n) {
    transition-duration: 0.01s;
    transition-delay: 0s;
  }
}
