/*
 * Courriel non reçu (09/10/2026) : encart « courrier indésirable » pour tout le monde,
 * fenêtre d'avertissement quand la messagerie de la personne bloque nos courriels
 * (Microsoft : Hotmail, Outlook…), ligne d'avertissement sous un champ d'adresse.
 * Chargé par les pages publiques et d'authentification : tout est sous .mdl-*.
 */

.mdl-help, .mdl-dialog, .mdl-inline-hint, .mdl-confirm {
    --mdl-primary: var(--navbar-bg-color, #2c6873);
    --mdl-text: #273041;
    --mdl-text-2: #4a5468;
    --mdl-border: #E4E6EB;
    --mdl-soft: #F7F9FA;
    --mdl-warn-ink: #7d6300;
    --mdl-warn-soft: #FCF3DC;
    --mdl-danger: #B3261E;
    --mdl-ok: #2D6A4F;
}

/* ── Encart pour tout le monde ── */
.mdl-help { display: flex; gap: 14px; align-items: flex-start; background: #fff; border: 1px solid var(--mdl-border); border-radius: 12px; padding: 14px 16px; margin: 0 0 20px; color: var(--mdl-text); font-size: 15px; line-height: 1.5; text-align: left; }
.mdl-help__icon { color: var(--mdl-primary); font-size: 22px; margin-top: 2px; flex: 0 0 auto; }
.mdl-help__title { font-weight: 700; margin: 0 0 4px; color: var(--mdl-text); }
.mdl-help p { margin: 0 0 6px; color: var(--mdl-text-2); }
.mdl-help p:last-child { margin-bottom: 0; }
.mdl-help__sender { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.mdl-help__sender code { font-size: 14px; color: var(--mdl-text); background: var(--mdl-soft); border: 1px solid var(--mdl-border); border-radius: 6px; padding: 3px 8px; word-break: break-all; }
.mdl-help__risk { background: var(--mdl-warn-soft); color: var(--mdl-warn-ink) !important; border-radius: 8px; padding: 6px 10px; }
.mdl-btn-link { background: none; border: 0; padding: 0; color: var(--mdl-primary); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; font-size: inherit; }
.mdl-btn-link:focus-visible, .mdl-btn:focus-visible, .mdl-close:focus-visible, .mdl-btn-small:focus-visible { outline: 3px solid var(--mdl-primary); outline-offset: 2px; }
.mdl-btn-small { background: #fff; border: 1px solid var(--mdl-border); border-radius: 999px; padding: 3px 12px; font-size: 13px; font-weight: 600; color: var(--mdl-text); cursor: pointer; min-height: 36px; }
@media (pointer: coarse) { .mdl-btn-small { min-height: 44px; } }

/* ── Fenêtre ── */
/* margin: auto rend le centrage natif de <dialog>, annulé par un margin: 0 global du thème (constaté en préprod le 12/10/2026). */
.mdl-dialog { margin: auto; border: 0; padding: 0; border-radius: 16px; width: min(560px, calc(100vw - 32px)); max-height: calc(100vh - 32px); color: var(--mdl-text); box-shadow: 0 20px 60px rgba(0, 0, 0, .25); }
.mdl-dialog::backdrop { background: rgba(23, 28, 38, .55); }
.mdl-dialog__box { padding: 22px 22px 18px; overflow-y: auto; max-height: calc(100vh - 32px); text-align: left; }
.mdl-dialog__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.mdl-dialog .mdl-dialog__title { font-size: 20px; line-height: 1.3; font-weight: 700; margin: 0; color: var(--mdl-text); text-transform: none; letter-spacing: 0; }
.mdl-close { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--mdl-border); background: #fff; color: var(--mdl-text); font-size: 22px; line-height: 1; cursor: pointer; }
.mdl-warn { background: var(--mdl-warn-soft); color: var(--mdl-warn-ink); border-radius: 10px; padding: 10px 12px; margin: 0 0 14px; font-size: 15px; }
.mdl-dialog p { font-size: 15px; color: var(--mdl-text-2); }
.mdl-choice { border: 1px solid var(--mdl-border); border-radius: 12px; padding: 12px 14px; margin: 0 0 10px; }
.mdl-choice__label { display: block; font-weight: 700; color: var(--mdl-text); margin: 0 0 6px; font-size: 15px; }
.mdl-choice__icon { color: var(--mdl-primary); width: 18px; text-align: center; margin-right: 4px; }
.mdl-choice input[type="email"], .mdl-choice input[type="tel"], .mdl-choice input[type="text"] { box-sizing: border-box; width: 100%; min-height: 44px; border: 1px solid #868E9C; border-radius: 8px; padding: 8px 12px; font-size: 16px; color: var(--mdl-text); background: #fff; }
.mdl-choice input:focus { outline: 3px solid rgba(44, 104, 115, .35); border-color: var(--mdl-primary); }
.mdl-choice input[aria-invalid="true"] { border-color: var(--mdl-danger); }
.mdl-choice__hint { display: block; font-size: 13px; color: var(--mdl-text-2); margin-top: 6px; }
.mdl-check { display: flex; gap: 10px; align-items: flex-start; font-weight: 600; color: var(--mdl-text); cursor: pointer; margin: 0; }
.mdl-check input { width: 20px; height: 20px; margin-top: 2px; flex: 0 0 auto; accent-color: var(--mdl-primary); }
.mdl-note { font-size: 13px !important; margin: 4px 0 0; }
.mdl-status { min-height: 1.4em; margin: 8px 0 0; font-size: 14px; color: var(--mdl-text-2); }
.mdl-status.is-error { color: var(--mdl-danger); font-weight: 600; }
.mdl-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 14px; }
.mdl-btn { min-height: 44px; border-radius: 10px; padding: 10px 18px; font-weight: 700; font-size: 15px; cursor: pointer; border: 1px solid var(--mdl-primary); }
.mdl-btn--primary { background: var(--mdl-primary); color: #fff; }
.mdl-btn--primary:disabled { opacity: .6; cursor: wait; }
.mdl-btn--ghost { background: #fff; color: var(--mdl-primary); }
.mdl-done { display: none; }
.mdl-form.is-done .mdl-fields { display: none; }
.mdl-form.is-done .mdl-done { display: block; }
.mdl-done__text { color: var(--mdl-ok) !important; font-weight: 600; background: #EAF4EE; border-radius: 10px; padding: 12px 14px; }

/* ── Ligne sous un champ d'adresse ── */
.mdl-inline-hint { display: block; margin-top: 6px; font-size: 14px; color: var(--mdl-warn-ink); background: var(--mdl-warn-soft); border-radius: 8px; padding: 6px 10px; }
.mdl-inline-hint[hidden], .mdl-done[hidden] { display: none; }
/* Faute de frappe probable dans le domaine (23/10/2026) : une proposition, pas une alerte. */
.mdl-inline-hint--typo { color: var(--mdl-text); background: var(--mdl-soft); border: 1px solid var(--mdl-border); }
/* Le thème met les boutons en capitales : une adresse se montre telle qu'elle sera enregistrée (constaté en préprod le 23/10/2026). */
.mdl-inline-hint--typo .mdl-btn-link { word-break: break-all; text-transform: none; letter-spacing: 0; }

@media (max-width: 575.98px) {
    .mdl-dialog__box { padding: 18px 16px 14px; }
    .mdl-actions .mdl-btn { flex: 1 1 auto; }
}

@media (prefers-reduced-motion: no-preference) {
    .mdl-dialog[open] { animation: mdl-in .18s ease-out; }
    @keyframes mdl-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
}

/* ── Page de confirmation de l'autre adresse ── */
.mdl-confirm { background: var(--mdl-soft); padding: 64px 16px; }
.mdl-confirm__card { max-width: 560px; margin: 0 auto; background: #fff; border: 1px solid var(--mdl-border); border-radius: 16px; padding: 28px 24px; text-align: center; color: var(--mdl-text); }
.mdl-confirm .mdl-confirm__title { font-size: 22px; line-height: 1.3; font-weight: 700; margin: 12px 0 10px; color: var(--mdl-text); text-transform: none; letter-spacing: 0; }
.mdl-confirm p { color: var(--mdl-text-2); font-size: 16px; }
.mdl-confirm .mdl-btn { display: inline-block; text-decoration: none; }

@media print { .mdl-help, .mdl-dialog, .mdl-inline-hint { display: none !important; } }

/* Phrase « lien envoyé » au-dessus de l'encart (page de connexion). */
.mdl-sent { background: #EAF4EE; color: var(--mdl-ok, #2D6A4F); border-radius: 10px; padding: 10px 14px; margin: 0 0 12px; font-weight: 600; font-size: 15px; }
/* Réussite partielle : une demande a abouti, une autre non (le texte dit laquelle). */
.mdl-done__text.is-partial { color: var(--mdl-warn-ink) !important; background: var(--mdl-warn-soft); }

/* Panneau d'identification (12/10/2026) : ouvert par le serveur quand aucun compte ne répond à l'adresse. */
.mdl-identify { display: none; }
.mdl-form.is-identify .mdl-fields { display: none; }
.mdl-form.is-identify .mdl-identify { display: block; }
.mdl-form.is-done .mdl-identify { display: none; }
.mdl-identify__names { display: grid; grid-template-columns: 1fr 1fr; gap: 0 10px; }
.mdl-identify__captcha { border: 1px solid var(--mdl-border); border-radius: 12px; padding: 12px 14px; margin: 0 0 10px; }
.mdl-identify__captcha[hidden] { display: none; }
@media (max-width: 575.98px) {
    .mdl-identify__names { grid-template-columns: 1fr; }
    .mdl-identify__captcha { padding: 10px; }
}

/* Méthodes (12/10/2026) : trois cartes indépendantes, une case chacune ; le champ s'ouvre à la case cochée. */
.mdl-methods { border: 0; padding: 0; margin: 0; min-width: 0; }
.mdl-methods__legend { float: none; width: auto; font-size: 15px; font-weight: 700; color: var(--mdl-text); margin: 0 0 2px; padding: 0; }
.mdl-dialog .mdl-methods__sub { font-size: 14px; margin: 0 0 12px; }
.mdl-method { border: 1px solid var(--mdl-border); border-radius: 12px; margin: 0 0 10px; background: #fff; transition: border-color .15s cubic-bezier(.23, 1, .32, 1), background-color .15s cubic-bezier(.23, 1, .32, 1); }
.mdl-method.is-on { border-color: var(--mdl-primary); background: var(--mdl-soft); }
.mdl-method__head { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 10px 14px; margin: 0; cursor: pointer; font-weight: 700; color: var(--mdl-text); font-size: 15px; }
.mdl-method__head input { width: 20px; height: 20px; margin: 0; flex: 0 0 auto; accent-color: var(--mdl-primary); }
.mdl-method__head:focus-within { outline: 3px solid rgba(44, 104, 115, .35); outline-offset: -3px; border-radius: 12px; }
.mdl-method__icon { color: var(--mdl-primary); width: 20px; text-align: center; font-size: 18px; flex: 0 0 auto; }
.mdl-method__body { display: none; padding: 0 14px 12px 44px; }
.mdl-method.is-on .mdl-method__body { display: block; }
.mdl-method__label { display: block; font-size: 14px; font-weight: 600; color: var(--mdl-text-2); margin: 0 0 4px; }
.mdl-method__body input[type="email"], .mdl-method__body input[type="tel"] { box-sizing: border-box; width: 100%; min-height: 44px; border: 1px solid #868E9C; border-radius: 8px; padding: 8px 12px; font-size: 16px; color: var(--mdl-text); background: #fff; }
.mdl-method__body input:focus { outline: 3px solid rgba(44, 104, 115, .35); border-color: var(--mdl-primary); }
.mdl-method__body input[aria-invalid="true"] { border-color: var(--mdl-danger); }
.mdl-dialog .mdl-method__text { margin: 0; font-size: 14px; }
.mdl-dialog .mdl-methods__count { margin: 2px 0 0; font-size: 14px; font-weight: 600; color: var(--mdl-text-2); }
@media (max-width: 575.98px) { .mdl-method__body { padding-left: 14px; } }

/* Ticket retenu (12/10/2026) : ce qui vient de partir, le décompte, puis les deux choix. */
.mdl-wait { display: none; }
.mdl-form.is-wait .mdl-fields, .mdl-form.is-wait .mdl-identify { display: none; }
.mdl-form.is-wait .mdl-wait { display: block; }
.mdl-form.is-done .mdl-wait { display: none; }
.mdl-dialog .mdl-wait__title { font-size: 18px; font-weight: 700; color: var(--mdl-text); margin: 0 0 8px; text-transform: none; letter-spacing: 0; }
.mdl-wait__title .fas { color: var(--mdl-primary); margin-right: 6px; }
.mdl-dialog .mdl-wait__intro { margin: 0 0 4px; }
.mdl-wait__list { margin: 0 0 12px; padding-left: 22px; color: var(--mdl-text); font-weight: 600; font-size: 15px; }
.mdl-wait__list li { margin: 2px 0; word-break: break-word; }
.mdl-wait__timer { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 6px 12px; padding: 12px 14px; border: 1px solid var(--mdl-border); border-radius: 12px; }
.mdl-wait__clock { font-size: 28px; font-weight: 700; color: var(--mdl-primary); font-variant-numeric: tabular-nums; line-height: 1; }
.mdl-wait__caption { font-size: 14px; color: var(--mdl-text-2); }
.mdl-wait__bar { grid-column: 1 / -1; height: 6px; border-radius: 999px; background: var(--mdl-border); overflow: hidden; }
.mdl-wait__fill { display: block; height: 100%; width: 100%; background: var(--mdl-primary); transform-origin: left center; }
.mdl-wait.is-ready .mdl-wait__timer { display: none; }
/* Même pas que la mise à jour du décompte (250 ms) : la barre suit le chiffre sans retard. Linéaire : c'est du temps qui s'écoule. */
@media (prefers-reduced-motion: no-preference) { .mdl-wait__fill { transition: transform .25s linear; } }

/* Renvoi du code de mot de passe par le plan B (21/10/2026) : trois étapes en tête de la fenêtre. */
.mdl-resend { margin: 0 0 16px; padding-bottom: 14px; border-bottom: 1px solid var(--mdl-border); }
.mdl-resend__step { margin: 12px 0 2px; font-weight: 700; font-size: 15px; color: var(--mdl-text); }
.mdl-resend__step:first-child { margin-top: 0; }
.mdl-resend__btn { width: 100%; margin-top: 10px; font-variant-numeric: tabular-nums; }
/* Bouton en attente : le décompte doit se lire (texte foncé sur fond clair, pas du blanc à demi-opacité),
   et le curseur dit qu'il n'est pas encore cliquable. */
.mdl-resend__btn:disabled { opacity: 1; background: var(--mdl-soft); color: var(--mdl-text-2); border-color: var(--mdl-border); cursor: not-allowed; }
.mdl-resend__btn[aria-busy="true"] { cursor: wait; }
