/* =====================================================================
   CCRM — Thème SweetAlert2
   S'appuie sur les jetons de app.css (couleurs, rayons, ombres, polices) :
   le mode sombre et les contrastes suivent donc automatiquement.
   Chargé APRÈS vendor/sweetalert2/sweetalert2.min.css.
   ===================================================================== */

/* ------------------------------------------------------ Fond */
.ccrm-swal-container.swal2-backdrop-show {
    background: rgba(15, 23, 42, .48);
    backdrop-filter: blur(2px);
}

/* ------------------------------------------------ Boîte */
.swal2-popup.ccrm-swal {
    width: min(440px, calc(100vw - 32px));
    padding: var(--space-6) var(--space-5) var(--space-5);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    color: var(--color-foreground);
    box-shadow: var(--shadow-lg);
    font-family: var(--font-body);
}
.swal2-popup.ccrm-swal--danger { border-top: 4px solid var(--color-destructive); }

.ccrm-swal .ccrm-swal__title {
    margin: var(--space-2) 0 0; padding: 0;
    font-family: var(--font-heading); font-size: 1.25rem; font-weight: 700;
    letter-spacing: -.01em; color: var(--color-foreground);
}
.ccrm-swal .ccrm-swal__text {
    margin: var(--space-2) 0 0; padding: 0;
    font-size: .95rem; line-height: 1.55; color: var(--color-muted-fg);
}
.ccrm-swal .ccrm-swal__actions {
    width: 100%; margin: var(--space-5) 0 0; gap: var(--space-3);
    justify-content: center; flex-wrap: wrap;
}
.ccrm-swal .ccrm-swal__actions .btn { min-width: 128px; margin: 0; }

/* Icônes : plus compactes, aux couleurs CCRM */
.ccrm-swal .swal2-icon { margin: 0 auto; transform: scale(.72); transform-origin: center; }
.ccrm-swal .swal2-icon.swal2-question,
.ccrm-swal .swal2-icon.swal2-info     { border-color: var(--color-primary); color: var(--color-primary); }
.ccrm-swal .swal2-icon.swal2-warning  { border-color: var(--color-accent); color: var(--color-accent); }
.ccrm-swal--danger .swal2-icon.swal2-warning { border-color: var(--color-destructive); color: var(--color-destructive); }
.ccrm-swal .swal2-icon.swal2-error    { border-color: var(--color-destructive); color: var(--color-destructive); }
.ccrm-swal .swal2-icon.swal2-error [class^='swal2-x-mark-line'] { background-color: var(--color-destructive); }
.ccrm-swal .swal2-icon.swal2-success  { border-color: var(--color-success); color: var(--color-success); }
.ccrm-swal .swal2-icon.swal2-success .swal2-success-ring { border-color: color-mix(in srgb, var(--color-success) 30%, transparent); }
.ccrm-swal .swal2-icon.swal2-success [class^='swal2-success-line'] { background-color: var(--color-success); }
/* Masques de l'animation « succès » : ils doivent prendre la couleur du fond */
.ccrm-swal .swal2-icon.swal2-success [class^='swal2-success-circular-line'],
.ccrm-swal .swal2-icon.swal2-success .swal2-success-fix { background-color: var(--color-surface); }

/* Animation d'ouverture sobre (désactivée par prefers-reduced-motion dans app.css) */
.ccrm-swal--in  { animation: ccrm-pop-in 200ms cubic-bezier(.2, .8, .2, 1) both; }
.ccrm-swal--out { animation: ccrm-pop-out 130ms ease-in both; }
@keyframes ccrm-pop-in  { from { opacity: 0; transform: translateY(8px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes ccrm-pop-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: scale(.98); } }

/* ------------------------------------------ Notifications */
.ccrm-toast-container.swal2-top-end,
.ccrm-toast-container.swal2-top-right {
    /* sous la barre supérieure fixe de l'application */
    padding-top: calc(var(--topbar-h, 0px) + var(--space-3)) !important;
    padding-right: var(--space-4) !important;
}

.swal2-popup.swal2-toast.ccrm-toast {
    width: min(400px, calc(100vw - 32px));
    padding: var(--space-3) var(--space-3) var(--space-3) var(--space-4);
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--toast-color, var(--color-primary));
    border-radius: var(--radius);
    background: var(--color-surface);
    color: var(--color-foreground);
    box-shadow: var(--shadow-lg);
    font-family: var(--font-body);
    column-gap: var(--space-3);
}
.ccrm-toast--success { --toast-color: var(--color-success); }
.ccrm-toast--error   { --toast-color: var(--color-destructive); }
.ccrm-toast--warning { --toast-color: var(--color-accent); }
.ccrm-toast--info    { --toast-color: var(--color-primary); }

.ccrm-toast .ccrm-toast__title {
    margin: 0; padding: 0; text-align: left;
    font-size: .9rem; font-weight: 600; line-height: 1.45; color: var(--color-foreground);
}
.ccrm-toast .swal2-icon { margin: 0; border-color: var(--toast-color); color: var(--toast-color); }
.ccrm-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'] { background-color: var(--toast-color); }
.ccrm-toast .swal2-icon.swal2-success .swal2-success-ring { border-color: color-mix(in srgb, var(--toast-color) 30%, transparent); }
.ccrm-toast .swal2-icon.swal2-success [class^='swal2-success-line'] { background-color: var(--toast-color); }
.ccrm-toast .swal2-icon.swal2-success [class^='swal2-success-circular-line'],
.ccrm-toast .swal2-icon.swal2-success .swal2-success-fix { background-color: var(--color-surface); }

.ccrm-toast .ccrm-toast__close {
    width: 28px; height: 28px; margin: 0; font-size: 1.3rem;
    color: var(--color-muted-fg); border-radius: var(--radius-sm);
}
.ccrm-toast .ccrm-toast__close:hover { color: var(--color-foreground); background: var(--color-muted); }
.ccrm-toast .ccrm-toast__close:focus-visible { box-shadow: 0 0 0 3px var(--color-ring); }
.ccrm-toast .ccrm-toast__progress { height: 3px; background: var(--toast-color); opacity: .7; }

.ccrm-toast--in  { animation: ccrm-toast-in 220ms cubic-bezier(.2, .8, .2, 1) both; }
.ccrm-toast--out { animation: ccrm-toast-out 160ms ease-in both; }
@keyframes ccrm-toast-in  { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: none; } }
@keyframes ccrm-toast-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateX(16px); } }

@media (max-width: 720px) {
    .ccrm-toast-container.swal2-top-end,
    .ccrm-toast-container.swal2-top-right { padding-right: var(--space-2) !important; padding-left: var(--space-2) !important; }
    .swal2-popup.swal2-toast.ccrm-toast { width: calc(100vw - 16px); }
}

@media print {
    .swal2-container { display: none !important; }
}
