.swal2-popup.swal2-show {
    animation: nx-swal-fade-in 180ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.swal2-popup.swal2-hide {
    animation: nx-swal-fade-out 140ms ease-in forwards !important;
}

.swal2-toast.swal2-show {
    animation: nx-swal-toast-fade-in 180ms cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.swal2-toast.swal2-hide {
    animation: nx-swal-toast-fade-out 140ms ease-in forwards !important;
}

.swal2-popup,
.swal2-toast {
    will-change: opacity, transform;
}

@keyframes nx-swal-fade-in {
    from {
        opacity: 0;
        transform: translateY(10px) scale(0.985);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes nx-swal-fade-out {
    from {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
    to {
        opacity: 0;
        transform: translateY(8px) scale(0.985);
    }
}

@keyframes nx-swal-toast-fade-in {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes nx-swal-toast-fade-out {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(6px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .swal2-popup.swal2-show,
    .swal2-popup.swal2-hide,
    .swal2-toast.swal2-show,
    .swal2-toast.swal2-hide {
        animation: none !important;
    }
}
