/* Page « Email envoyé » : une fenêtre avec un emoji apparaît quelques secondes, puis laisse place au message.
   100 % CSS : sans JavaScript elle disparaît toute seule et ne bloque jamais la page. */
.envoi-modal { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 20px;
  background: rgba(244, 243, 252, .86); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  animation: envoi-fond 3.2s ease forwards; pointer-events: none; }
.envoi-boite { background: var(--white); border: 1px solid #E6E3FA; border-radius: 28px; padding: 34px 44px 30px; text-align: center;
  box-shadow: 0 24px 60px rgba(91, 77, 245, .22); animation: envoi-boite 3.2s ease forwards; }
.envoi-emoji { display: block; font-size: 76px; line-height: 1; animation: envoi-emoji 1.4s ease-out both; }
.envoi-texte { margin-top: 14px; font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 17px; color: var(--deep); }
.simple-card.apparait { animation: envoi-carte .6s ease 2.7s both; }
@keyframes envoi-fond { 0%, 78% { opacity: 1; visibility: visible; } 100% { opacity: 0; visibility: hidden; } }
@keyframes envoi-boite { 0% { transform: scale(.7); opacity: 0; } 14% { transform: scale(1.04); opacity: 1; } 22% { transform: scale(1); } 78% { transform: scale(1); opacity: 1; } 100% { transform: scale(.94); opacity: 0; } }
@keyframes envoi-emoji { 0% { transform: translateY(18px) rotate(-12deg) scale(.6); opacity: 0; } 55% { transform: translateY(-8px) rotate(6deg) scale(1.12); opacity: 1; } 100% { transform: none; opacity: 1; } }
@keyframes envoi-carte { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .envoi-modal { animation-duration: 2s; } .envoi-boite, .envoi-emoji { animation: none; } .simple-card.apparait { animation: none; }
}

/* Pendant l'envoi (page « Mot de passe oublié ») : l'enveloppe s'envole en boucle, trois points qui clignotent */
.envoi-attente { animation: none; visibility: visible; opacity: 1; pointer-events: auto; cursor: progress; }
.envoi-attente[hidden] { display: none; }
.envoi-attente .envoi-boite { animation: envoi-entree .25s ease both; }
.envoi-vol { animation: envoi-vol 1.1s ease-in-out infinite; }
.envoi-points i { font-style: normal; display: inline-block; animation: envoi-point 1.2s ease-in-out infinite; }
.envoi-points i:nth-child(2) { animation-delay: .2s; } .envoi-points i:nth-child(3) { animation-delay: .4s; }
button.envoi-en-cours { opacity: .7; cursor: progress; }
@keyframes envoi-entree { from { transform: scale(.85); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes envoi-vol { 0%, 100% { transform: translate(-14px, 6px) rotate(-8deg); } 50% { transform: translate(14px, -10px) rotate(8deg); } }
@keyframes envoi-point { 0%, 60%, 100% { opacity: .2; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-4px); } }
@media (prefers-reduced-motion: reduce) { .envoi-vol, .envoi-points i { animation: none; } }
