.swal2-container .swal2-title {
    color: var(--bs-heading-color, #343a40);
    font-size: 24px;
    font-weight: 500;
    letter-spacing: 0;
}

.swal2-container .swal2-html-container,
.swal2-container .swal2-content {
    color: var(--bs-body-color, #495057);
    font-size: 16px;
}

.swal2-container .swal2-popup {
    background-color: var(--bs-secondary-bg, #fff);
    color: var(--bs-body-color, #495057);
}

.swal2-container .swal2-icon.swal2-question {
    border-color: var(--bs-info, #038edc);
    color: var(--bs-info, #038edc);
}

.swal2-container .swal2-icon.swal2-warning {
    border-color: var(--bs-warning, #f1b44c);
    color: var(--bs-warning, #f1b44c);
}

.swal2-container .swal2-icon.swal2-success [class^="swal2-success-line"] {
    background-color: var(--bs-success, #51d28c);
}

.swal2-container .swal2-icon.swal2-success .swal2-success-ring {
    border-color: rgba(81, 210, 140, 0.3);
}

.swal2-container .swal2-actions {
    gap: 0.5rem;
}

.swal2-container .swal2-styled:focus {
    box-shadow: none;
}

.swal2-container .app-swal-input:focus {
    border-color: var(--bs-primary, #038edc);
    box-shadow: none;
}

.swal2-container .app-swal-toast {
    width: min(360px, calc(100vw - 2rem));
    padding: 0.85rem 1rem;
    border: 1px solid var(--bs-border-color, #e9ecef);
    border-radius: 6px;
    box-shadow: 0 0.75rem 1.5rem rgba(15, 23, 42, 0.14);
    transform-origin: top right;
}

.swal2-container .swal2-popup.swal2-toast.app-swal-toast.swal2-show {
    animation: app-swal-toast-show 220ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.swal2-container .swal2-popup.swal2-toast.app-swal-toast.swal2-hide {
    animation: app-swal-toast-hide 150ms ease-in both;
}

.swal2-container .app-swal-toast .swal2-icon {
    width: 2em;
    height: 2em;
    min-width: 2em;
    margin: 0 0.5em 0 0;
}

.swal2-container .app-swal-toast .swal2-icon .swal2-icon-content {
    font-size: 1.8em;
}

.swal2-container .app-swal-toast .app-swal-toast-title {
    margin: 0;
    color: var(--bs-body-color, #343a40);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
    text-align: left;
}

.swal2-container .app-swal-toast .app-swal-toast-text {
    margin: 0.15rem 0 0;
    color: var(--bs-secondary-color, #74788d);
    font-size: 13px;
    line-height: 1.4;
    text-align: left;
}

.swal2-container .app-swal-toast .swal2-timer-progress-bar {
    background: rgba(81, 210, 140, 0.42);
}

.swal2-container.swal2-top-end {
    top: calc(env(safe-area-inset-top, 0px) + 1rem);
    right: calc(env(safe-area-inset-right, 0px) + 1rem);
}

.app-flash-toast-fallback-container {
    position: fixed;
    z-index: 1095;
    top: calc(env(safe-area-inset-top, 0px) + 1rem);
    right: calc(env(safe-area-inset-right, 0px) + 1rem);
    width: min(360px, calc(100vw - 2rem));
    pointer-events: none;
}

.app-flash-toast-fallback {
    pointer-events: auto;
    position: relative;
    display: flex;
    align-items: center;
    min-height: 3rem;
    margin: 0 0 0.75rem;
    padding: 0.85rem 2.75rem 0.85rem 1rem;
    border: 1px solid transparent;
    border-radius: 6px;
    box-shadow: 0 0.75rem 1.5rem rgba(15, 23, 42, 0.14);
    line-height: 1.35;
    animation: app-swal-toast-show 220ms cubic-bezier(0.16, 1, 0.3, 1) both;
    transform-origin: top right;
}

.app-flash-toast-fallback.alert-success {
    color: #0f5132;
    background-color: #d1e7dd;
    border-color: #badbcc;
}

.app-flash-toast-fallback.alert-danger {
    color: #842029;
    background-color: #f8d7da;
    border-color: #f5c2c7;
}

.app-flash-toast-fallback.alert-warning {
    color: #664d03;
    background-color: #fff3cd;
    border-color: #ffecb5;
}

.app-flash-toast-fallback.alert-info {
    color: #055160;
    background-color: #cff4fc;
    border-color: #b6effb;
}

.app-flash-toast-fallback-close {
    position: absolute;
    top: 0.65rem;
    right: 0.75rem;
    width: 1rem;
    height: 1rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: currentColor;
    font-size: 1.25rem;
    line-height: 1;
    opacity: 0.65;
}

.app-flash-toast-fallback-close::before {
    content: "\00d7";
}

.app-flash-toast-fallback-close:hover,
.app-flash-toast-fallback-close:focus {
    opacity: 1;
}

html[data-app-theme="dark"] .swal2-container .app-swal-toast,
body[data-bs-theme="dark"] .swal2-container .app-swal-toast,
html[data-app-theme="dark"] .app-flash-toast-fallback,
body[data-bs-theme="dark"] .app-flash-toast-fallback {
    box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.32);
}

html[data-app-theme="dark"] .app-flash-toast-fallback.alert-success,
body[data-bs-theme="dark"] .app-flash-toast-fallback.alert-success {
    color: #d1e7dd;
    background-color: #0f2e20;
    border-color: #1e4c36;
}

html[data-app-theme="dark"] .app-flash-toast-fallback.alert-danger,
body[data-bs-theme="dark"] .app-flash-toast-fallback.alert-danger {
    color: #f8d7da;
    background-color: #3a1117;
    border-color: #68202b;
}

html[data-app-theme="dark"] .app-flash-toast-fallback.alert-warning,
body[data-bs-theme="dark"] .app-flash-toast-fallback.alert-warning {
    color: #fff3cd;
    background-color: #332701;
    border-color: #664d03;
}

html[data-app-theme="dark"] .app-flash-toast-fallback.alert-info,
body[data-bs-theme="dark"] .app-flash-toast-fallback.alert-info {
    color: #cff4fc;
    background-color: #032830;
    border-color: #055160;
}

@keyframes app-swal-toast-show {
    from {
        opacity: 0;
        transform: translate3d(10px, -6px, 0) scale(0.985);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale(1);
    }
}

@keyframes app-swal-toast-hide {
    from {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale(1);
    }

    to {
        opacity: 0;
        transform: translate3d(8px, -4px, 0) scale(0.985);
    }
}

@media (prefers-reduced-motion: reduce) {
    .swal2-container .swal2-popup.swal2-toast.app-swal-toast.swal2-show,
    .swal2-container .swal2-popup.swal2-toast.app-swal-toast.swal2-hide,
    .app-flash-toast-fallback {
        animation: none;
    }
}

@media (max-width: 575.98px) {
    .swal2-container.swal2-top-end {
        top: calc(env(safe-area-inset-top, 0px) + 0.75rem);
        right: 0.75rem;
        left: 0.75rem;
        align-items: stretch;
    }

    .swal2-container .app-swal-toast,
    .app-flash-toast-fallback-container {
        width: calc(100vw - 1.5rem);
    }

    .app-flash-toast-fallback-container {
        top: calc(env(safe-area-inset-top, 0px) + 0.75rem);
        right: 0.75rem;
    }
}
