/* SUIVI DU FORMULAIRE - ETATS : RESUME D'ERREURS, CONFIRMATION */

/*
 * Sous-composant en cascade (§4.12) : chaque regle est qualifiee par le bloc
 * racine PLUS l'element, pour peser (0,2,1) et ne rien heriter d'une feuille
 * hote qui ciblerait ses descendants.
 *
 * Couleurs : lues par variables AVEC REPLI, comme `mention-donnees`. Le repli
 * est le cas courant (formulaire sur fond clair) ; un hote sur un autre fond
 * pose la variable sur SON conteneur.
 *
 *   --suivi-formulaire-texte   texte courant          (repli : --black)
 *   --suivi-formulaire-fond    fond des encarts       (repli : lavis de --secondary)
 *   --suivi-formulaire-accent  icone de confirmation  (repli : --primary)
 *   --suivi-formulaire-erreur  resume d'erreurs       (repli : rouge de sens)
 */
.suivi-formulaire {
  /* Rouge d'ERREUR : couleur de sens, pas de charte (§4.1). Un « champ
     manquant » reste rouge sur un site vert. Jamais seul : le texte dit
     toujours quoi corriger. */
  --suivi-formulaire-erreur-sens: #9f2f24;
}

.suivi-formulaire div.suivi-formulaire__confirmation {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  margin: 0 0 1.5rem;
  padding: 1.1rem 1.25rem;
  border: 1px solid color-mix(in srgb, var(--suivi-formulaire-texte, var(--black)) 14%, transparent);
  border-radius: 14px;
  background: var(--suivi-formulaire-fond, color-mix(in srgb, var(--secondary) 14%, var(--white)));
  color: var(--suivi-formulaire-texte, var(--black));
}

.suivi-formulaire div.suivi-formulaire__confirmation:focus-visible {
  outline: 2px solid var(--suivi-formulaire-accent, var(--primary));
  outline-offset: 3px;
}

.suivi-formulaire span.suivi-formulaire__confirmation-icone {
  display: inline-flex;
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  color: var(--suivi-formulaire-accent, var(--primary));
}

.suivi-formulaire span.suivi-formulaire__confirmation-icone svg {
  width: 100%;
  height: 100%;
}

.suivi-formulaire span.suivi-formulaire__confirmation-corps {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.suivi-formulaire span.suivi-formulaire__confirmation-titre {
  color: var(--suivi-formulaire-texte, var(--black));
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1.2;
}

.suivi-formulaire span.suivi-formulaire__confirmation-texte {
  color: var(--suivi-formulaire-texte, var(--black));
  font-family: var(--font-body);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.6;
}

.suivi-formulaire p.suivi-formulaire__statut {
  margin: 0 0 1.25rem;
  padding: 0.85rem 1.1rem;
  border-radius: 12px;
  background: var(--suivi-formulaire-fond, color-mix(in srgb, var(--secondary) 14%, var(--white)));
  color: var(--suivi-formulaire-texte, var(--black));
  font-family: var(--font-body);
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.5;
}

.suivi-formulaire p.suivi-formulaire__statut[hidden] {
  display: none;
}

/* Resume d'erreurs : un filet et une icone ecrite en texte, pas un aplat
   rouge — il doit se lire sans la couleur. */
.suivi-formulaire p.suivi-formulaire__statut--erreur {
  border-left: 3px solid var(--suivi-formulaire-erreur, var(--suivi-formulaire-erreur-sens));
  color: var(--suivi-formulaire-texte, var(--black));
}
