/*
 * Retours d'action et confirmations : une seule grammaire visuelle.
 *
 * References :
 *  - succes / echec : le toast Noty de custom-toast.css (vert #009688, rouge #e53935) ;
 *  - confirmation   : la fenetre « Archiver » des e-mails (users-delete-popup).
 *
 * Ce fichier ne change que l'habillage. Contenu, boutons, durees, fermeture et
 * comportements restent ceux de chaque appel (SweetAlert2, jquery-confirm).
 * Les selecteurs sont volontairement plus specifiques que le CSS injecte par
 * sweetalert2.all.js (ajoute en fin de <head>, donc apres ce fichier) ; les
 * !important ne servent qu'a battre les couleurs posees en style inline
 * (confirmButtonColor, cancelButtonColor).
 */

:root {
    --sm-feedback-success: #009688;
    --sm-feedback-error: #e53935;
    --sm-feedback-text: #f8fafc;
    --sm-feedback-radius: 8px;
    --sm-feedback-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);

    --sm-confirm-radius: 22px;
    --sm-confirm-shadow: 0 24px 60px rgba(15, 23, 42, 0.18);
    --sm-confirm-title: #0f172a;
    --sm-confirm-surface: #ffffff;
    --sm-confirm-btn-radius: 12px;
    --sm-confirm-danger: #dc2626;
    --sm-confirm-danger-hover: #b91c1c;
    --sm-confirm-danger-active: #991b1b;
    --sm-confirm-danger-ring: rgba(220, 38, 38, 0.28);
    --sm-confirm-primary: #0f766e;
    --sm-confirm-primary-hover: #115e59;
    --sm-confirm-primary-active: #134e4a;
    --sm-confirm-primary-ring: rgba(15, 118, 110, 0.28);
    --sm-confirm-cancel-bg: #ffffff;
    --sm-confirm-cancel-hover: #f8fafc;
    --sm-confirm-cancel-text: #334155;
    --sm-confirm-cancel-border: #dbe3ef;
}

:root[data-sm-theme="dark"] {
    --sm-confirm-title: var(--sm-text-strong, #ffffff);
    --sm-confirm-surface: var(--sm-surface-raised, #1d2b3b);
    --sm-confirm-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
    --sm-confirm-cancel-bg: var(--sm-surface, #172332);
    --sm-confirm-cancel-hover: var(--sm-surface-hover, #203043);
    --sm-confirm-cancel-text: var(--sm-text, #edf4fb);
    --sm-confirm-cancel-border: var(--sm-border-strong, #4b637b);
}

@media (prefers-color-scheme: dark) {
    :root[data-sm-theme="system"] {
        --sm-confirm-title: var(--sm-text-strong, #ffffff);
        --sm-confirm-surface: var(--sm-surface-raised, #1d2b3b);
        --sm-confirm-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
        --sm-confirm-cancel-bg: var(--sm-surface, #172332);
        --sm-confirm-cancel-hover: var(--sm-surface-hover, #203043);
        --sm-confirm-cancel-text: var(--sm-text, #edf4fb);
        --sm-confirm-cancel-border: var(--sm-border-strong, #4b637b);
    }
}

/* ------------------------------------------------------------------
 * 1. Fenetres SweetAlert2 (confirmations et alertes modales)
 * Les fenetres a design dedie (symbio-unsub-popup) gardent le leur.
 * ---------------------------------------------------------------- */
body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) {
    /* !important : certains appels posent padding: '2em' en inline. */
    padding: 0 !important;
    border-radius: var(--sm-confirm-radius);
    background: var(--sm-confirm-surface);
    box-shadow: var(--sm-confirm-shadow);
    font-family: inherit;
}

body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-title {
    margin: 0;
    padding: 22px 22px 0;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--sm-confirm-title);
}

body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-html-container {
    margin: 0;
    padding: 14px 22px 6px;
}

body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-actions {
    margin: 20px 0 0;
    padding: 14px 22px 22px;
    gap: 12px;
}

body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-styled {
    min-width: 132px;
    height: 46px;
    margin: 0;
    padding: 0 20px;
    border-radius: var(--sm-confirm-btn-radius);
    font-size: 14px;
    font-weight: 700;
    box-shadow: none;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

/* Bouton principal : rouge pour les fenetres d'avertissement ou d'erreur (comme
 * « Archiver »), sarcelle des autres confirmations (users-delete-confirm). */
body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-confirm.swal2-styled {
    background: var(--sm-confirm-primary) !important;
    border: 1px solid var(--sm-confirm-primary) !important;
    color: #ffffff !important;
}

body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-confirm.swal2-styled:hover:not(:disabled) {
    background: var(--sm-confirm-primary-hover) !important;
    border-color: var(--sm-confirm-primary-hover) !important;
}

body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-confirm.swal2-styled:active:not(:disabled) {
    background: var(--sm-confirm-primary-active) !important;
    border-color: var(--sm-confirm-primary-active) !important;
}

body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-confirm.swal2-styled:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--sm-confirm-primary-ring) !important;
}

body .swal2-container .swal2-popup.swal2-modal.swal2-icon-warning:not(.symbio-unsub-popup) .swal2-confirm.swal2-styled,
body .swal2-container .swal2-popup.swal2-modal.swal2-icon-error:not(.symbio-unsub-popup) .swal2-confirm.swal2-styled,
body .swal2-container .swal2-popup.swal2-modal .swal2-confirm.swal2-styled.tasks-archive-confirm {
    background: var(--sm-confirm-danger) !important;
    border-color: var(--sm-confirm-danger) !important;
}

body .swal2-container .swal2-popup.swal2-modal.swal2-icon-warning:not(.symbio-unsub-popup) .swal2-confirm.swal2-styled:hover:not(:disabled),
body .swal2-container .swal2-popup.swal2-modal.swal2-icon-error:not(.symbio-unsub-popup) .swal2-confirm.swal2-styled:hover:not(:disabled),
body .swal2-container .swal2-popup.swal2-modal .swal2-confirm.swal2-styled.tasks-archive-confirm:hover:not(:disabled) {
    background: var(--sm-confirm-danger-hover) !important;
    border-color: var(--sm-confirm-danger-hover) !important;
}

body .swal2-container .swal2-popup.swal2-modal.swal2-icon-warning:not(.symbio-unsub-popup) .swal2-confirm.swal2-styled:active:not(:disabled),
body .swal2-container .swal2-popup.swal2-modal.swal2-icon-error:not(.symbio-unsub-popup) .swal2-confirm.swal2-styled:active:not(:disabled) {
    background: var(--sm-confirm-danger-active) !important;
    border-color: var(--sm-confirm-danger-active) !important;
}

body .swal2-container .swal2-popup.swal2-modal.swal2-icon-warning:not(.symbio-unsub-popup) .swal2-confirm.swal2-styled:focus-visible,
body .swal2-container .swal2-popup.swal2-modal.swal2-icon-error:not(.symbio-unsub-popup) .swal2-confirm.swal2-styled:focus-visible {
    box-shadow: 0 0 0 3px var(--sm-confirm-danger-ring) !important;
}

/* Bouton secondaire (Annuler) et bouton « refuser » : blanc, liseré gris-bleu. */
body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-cancel.swal2-styled,
body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-deny.swal2-styled {
    background: var(--sm-confirm-cancel-bg) !important;
    border: 1px solid var(--sm-confirm-cancel-border) !important;
    color: var(--sm-confirm-cancel-text) !important;
}

body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-cancel.swal2-styled:hover:not(:disabled),
body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-deny.swal2-styled:hover:not(:disabled) {
    background: var(--sm-confirm-cancel-hover) !important;
}

body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-cancel.swal2-styled:focus-visible,
body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-deny.swal2-styled:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(100, 116, 139, 0.28) !important;
}

@media (max-width: 640px) {
    body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-title {
        padding: 18px 18px 0;
        font-size: 20px;
    }

    body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-html-container {
        padding: 12px 18px 4px;
    }

    body .swal2-container .swal2-popup.swal2-modal:not(.symbio-unsub-popup) .swal2-actions {
        padding: 12px 18px 18px;
    }
}

/* ------------------------------------------------------------------
 * 2. Toasts SweetAlert2 de succes / d'echec : meme pastille que Noty.
 * ---------------------------------------------------------------- */
body .swal2-container .swal2-popup.swal2-toast.swal2-icon-success,
body .swal2-container .swal2-popup.swal2-toast.swal2-icon-error {
    padding: 12px 16px;
    border-radius: var(--sm-feedback-radius);
    box-shadow: var(--sm-feedback-shadow);
    color: var(--sm-feedback-text);
}

body .swal2-container .swal2-popup.swal2-toast.swal2-icon-success {
    background: var(--sm-feedback-success);
}

body .swal2-container .swal2-popup.swal2-toast.swal2-icon-error {
    background: var(--sm-feedback-error);
}

body .swal2-container .swal2-popup.swal2-toast.swal2-icon-success .swal2-title,
body .swal2-container .swal2-popup.swal2-toast.swal2-icon-error .swal2-title,
body .swal2-container .swal2-popup.swal2-toast.swal2-icon-success .swal2-html-container,
body .swal2-container .swal2-popup.swal2-toast.swal2-icon-error .swal2-html-container {
    color: var(--sm-feedback-text);
    font-size: 14px;
    line-height: 1.5;
}

/* L'icone reste, redessinee en blanc sur la pastille. */
body .swal2-container .swal2-popup.swal2-toast.swal2-icon-success .swal2-icon,
body .swal2-container .swal2-popup.swal2-toast.swal2-icon-error .swal2-icon {
    border-color: rgba(255, 255, 255, 0.75);
    color: #ffffff;
}

body .swal2-container .swal2-popup.swal2-toast.swal2-icon-success .swal2-icon [class^="swal2-success-line"],
body .swal2-container .swal2-popup.swal2-toast.swal2-icon-error .swal2-icon [class^="swal2-x-mark-line"] {
    background-color: #ffffff;
}

body .swal2-container .swal2-popup.swal2-toast.swal2-icon-success .swal2-icon .swal2-success-ring {
    border-color: rgba(255, 255, 255, 0.45);
}

body .swal2-container .swal2-popup.swal2-toast.swal2-icon-success .swal2-icon [class^="swal2-success-circular-line"],
body .swal2-container .swal2-popup.swal2-toast.swal2-icon-success .swal2-icon .swal2-success-fix {
    background-color: transparent !important;
}

body .swal2-container .swal2-popup.swal2-toast.swal2-icon-success .swal2-timer-progress-bar,
body .swal2-container .swal2-popup.swal2-toast.swal2-icon-error .swal2-timer-progress-bar {
    background: rgba(255, 255, 255, 0.6);
}

/* Action d'un toast (ex. « Annuler » apres suppression) : bouton discret comme
 * .trash-noty__action. */
body .swal2-container .swal2-popup.swal2-toast.swal2-icon-success .swal2-styled,
body .swal2-container .swal2-popup.swal2-toast.swal2-icon-error .swal2-styled {
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, 0.45) !important;
    border-radius: 6px;
    color: #ffffff !important;
    font-size: 12px;
    font-weight: 600;
    box-shadow: none !important;
}

body .swal2-container .swal2-popup.swal2-toast.swal2-icon-success .swal2-styled:hover,
body .swal2-container .swal2-popup.swal2-toast.swal2-icon-error .swal2-styled:hover {
    background: rgba(255, 255, 255, 0.14) !important;
}

body .swal2-container .swal2-popup.swal2-toast.swal2-icon-success .swal2-close,
body .swal2-container .swal2-popup.swal2-toast.swal2-icon-error .swal2-close {
    color: rgba(255, 255, 255, 0.7);
}

/* ------------------------------------------------------------------
 * 3. Confirmations jquery-confirm (actions legacy data-confirm-*).
 * Le theme (themes/default/css/style.css) pose des !important sur le titre,
 * le texte et les boutons : on les contre ici, et seulement la.
 * ---------------------------------------------------------------- */
body .jconfirm .jc-bs3-row .jconfirm-box-container {
    flex: 0 0 auto;
    float: none;
    width: min(512px, calc(100vw - 32px));
    max-width: none;
    margin-left: auto;
    margin-right: auto;
}

body .jconfirm .jconfirm-box-container .jconfirm-box {
    padding: 0;
    border: 0;
    border-radius: var(--sm-confirm-radius);
    background: var(--sm-confirm-surface);
    box-shadow: var(--sm-confirm-shadow);
    overflow: hidden;
}

body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c {
    padding: 22px 22px 0;
    margin: 0;
    text-align: center;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--sm-confirm-title);
}

body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c .jconfirm-title {
    font-size: inherit;
    font-weight: 800 !important;
    color: var(--sm-confirm-title) !important;
}

body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane {
    margin: 0;
    padding: 14px 22px 6px;
}

body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content {
    margin: 0 !important;
    color: var(--sm-text, #17334a);
    text-align: center;
}

body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content .x-details {
    min-height: 0;
}

body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons {
    float: none;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    padding: 14px 22px 22px;
    margin: 20px 0 0;
    text-align: center;
}

body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn {
    min-width: 132px;
    height: 46px;
    margin: 0;
    padding: 0 20px !important;
    border-radius: var(--sm-confirm-btn-radius);
    font-size: 14px !important;
    font-weight: 700 !important;
    text-transform: none;
    letter-spacing: normal;
    box-shadow: none;
    background: var(--sm-confirm-primary);
    border: 1px solid var(--sm-confirm-primary) !important;
    color: #ffffff;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn:hover {
    background: var(--sm-confirm-primary-hover);
    border-color: var(--sm-confirm-primary-hover) !important;
    color: #ffffff;
}

body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--sm-confirm-primary-ring);
}

body .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red .jconfirm-buttons button.btn,
body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn.btn-outline-danger,
body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn.btn-danger {
    background: var(--sm-confirm-danger);
    border-color: var(--sm-confirm-danger) !important;
}

body .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red .jconfirm-buttons button.btn:hover,
body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn.btn-outline-danger:hover,
body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn.btn-danger:hover {
    background: var(--sm-confirm-danger-hover);
    border-color: var(--sm-confirm-danger-hover) !important;
}

body .jconfirm .jconfirm-box-container .jconfirm-box.jconfirm-type-red .jconfirm-buttons button.btn:focus-visible {
    box-shadow: 0 0 0 3px var(--sm-confirm-danger-ring);
}

/* « Annuler » (btn-outline-secondary / btn-default) : blanc, liseré gris-bleu. */
body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn.btn-outline-secondary,
body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn.btn-default {
    background: var(--sm-confirm-cancel-bg);
    border-color: var(--sm-confirm-cancel-border) !important;
    color: var(--sm-confirm-cancel-text);
}

body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn.btn-outline-secondary:hover,
body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn.btn-default:hover {
    background: var(--sm-confirm-cancel-hover);
    border-color: var(--sm-confirm-cancel-border) !important;
    color: var(--sm-confirm-cancel-text);
}

body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn.btn-outline-secondary:focus-visible,
body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons button.btn.btn-default:focus-visible {
    box-shadow: 0 0 0 3px rgba(100, 116, 139, 0.28);
}

@media (max-width: 640px) {
    body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-title-c {
        padding: 18px 18px 0;
        font-size: 20px;
    }

    body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-content-pane {
        padding: 12px 18px 4px;
    }

    body .jconfirm .jconfirm-box-container .jconfirm-box .jconfirm-buttons {
        padding: 12px 18px 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body .swal2-container .swal2-popup.swal2-modal .swal2-styled,
    body .jconfirm .jconfirm-box .jconfirm-buttons button.btn {
        transition: none;
    }
}
