:root {
    --app-swal-font: 'Inter', 'Urbanist', 'Segoe UI', sans-serif;
    --app-swal-surface: rgba(255, 255, 255, 0.97);
    --app-swal-surface-strong: #ffffff;
    --app-swal-ink: #142033;
    --app-swal-muted: #5b677a;
    --app-swal-border: rgba(15, 23, 42, 0.08);
    --app-swal-shadow:
        0 30px 80px rgba(15, 23, 42, 0.18),
        0 10px 28px rgba(15, 23, 42, 0.10);
    --app-swal-confirm: #2563eb;
    --app-swal-confirm-hover: #1d4ed8;
    --app-swal-confirm-shadow: rgba(37, 99, 235, 0.22);
    --app-swal-cancel: #eef2f7;
    --app-swal-cancel-hover: #e2e8f0;
    --app-swal-cancel-ink: #233247;
    --app-swal-danger: #dc2626;
    --app-swal-danger-hover: #b91c1c;
    --app-swal-success: #16a34a;
    --app-swal-warning: #d97706;
    --app-swal-error: #dc2626;
    --app-swal-info: #0284c7;
    --app-swal-overlay: rgba(15, 23, 42, 0.52);
}

.swal-overlay,
.swal2-container {
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.swal-overlay {
    background: var(--app-swal-overlay) !important;
}

.swal-modal,
.swal2-popup {
    border: 1px solid var(--app-swal-border) !important;
    border-radius: 26px !important;
    background:
        radial-gradient(circle at top right, rgba(37, 99, 235, 0.10), transparent 34%),
        linear-gradient(180deg, var(--app-swal-surface-strong), var(--app-swal-surface)) !important;
    box-shadow: var(--app-swal-shadow) !important;
    color: var(--app-swal-ink) !important;
    font-family: var(--app-swal-font) !important;
}

.swal-modal {
    width: min(540px, calc(100vw - 24px)) !important;
    padding: 30px 28px 24px !important;
}

.swal-title,
.swal2-title {
    margin: 2px 0 8px !important;
    padding: 0 !important;
    color: var(--app-swal-ink) !important;
    font-family: var(--app-swal-font) !important;
    font-size: 29px !important;
    font-weight: 800 !important;
    line-height: 1.16 !important;
    letter-spacing: -0.04em !important;
}

.swal-text,
.swal2-html-container {
    margin: 0 auto !important;
    padding: 0 !important;
    max-width: 100% !important;
    color: var(--app-swal-muted) !important;
    font-family: var(--app-swal-font) !important;
    font-size: 15px !important;
    line-height: 1.72 !important;
    letter-spacing: 0.01em !important;
    text-align: center !important;
    white-space: pre-line !important;
}

.swal-content,
.swal2-html-container {
    margin-top: 16px !important;
}

.swal-content table,
.swal-content .table,
.swal2-html-container table,
.swal2-html-container .table {
    width: 100%;
    font-size: 13px;
}

.swal-content__input,
.swal-content__textarea,
.swal2-input,
.swal2-textarea,
.swal2-select {
    border: 1px solid rgba(148, 163, 184, 0.45) !important;
    border-radius: 16px !important;
    background: rgba(248, 250, 252, 0.96) !important;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.03);
    color: var(--app-swal-ink) !important;
    font-family: var(--app-swal-font) !important;
    font-size: 14px !important;
    padding: 13px 15px !important;
}

.swal-content__input:focus,
.swal-content__textarea:focus,
.swal2-input:focus,
.swal2-textarea:focus,
.swal2-select:focus {
    border-color: rgba(37, 99, 235, 0.55) !important;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12) !important;
}

.swal-footer,
.swal2-actions {
    margin: 24px 0 0 !important;
    padding: 0 !important;
    border-top: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
}

.swal-button-container {
    margin: 0 !important;
}

.swal-button,
.swal2-styled {
    min-width: 132px !important;
    padding: 13px 22px !important;
    border: 1px solid transparent !important;
    border-radius: 16px !important;
    font-family: var(--app-swal-font) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        background-color 0.18s ease,
        border-color 0.18s ease !important;
    box-shadow: none !important;
}

.swal-button:focus,
.swal2-styled:focus {
    outline: 0 !important;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.14) !important;
}

.swal-button:hover,
.swal2-styled:hover {
    transform: translateY(-1px);
}

.swal-button--confirm,
.swal-button:not(.swal-button--cancel):not(.swal-button--danger),
.swal2-confirm {
    background: linear-gradient(135deg, var(--app-swal-confirm), #0f8fe8) !important;
    color: #ffffff !important;
    box-shadow: 0 14px 26px var(--app-swal-confirm-shadow) !important;
}

.swal-button--confirm:hover,
.swal-button:not(.swal-button--cancel):not(.swal-button--danger):hover,
.swal2-confirm:hover {
    background: linear-gradient(135deg, var(--app-swal-confirm-hover), #0f79c7) !important;
}

.swal-button--cancel,
.swal2-cancel {
    background: var(--app-swal-cancel) !important;
    border-color: rgba(148, 163, 184, 0.25) !important;
    color: var(--app-swal-cancel-ink) !important;
}

.swal-button--cancel:hover,
.swal2-cancel:hover {
    background: var(--app-swal-cancel-hover) !important;
}

.swal-button--danger,
.swal2-deny {
    background: linear-gradient(135deg, var(--app-swal-danger), #ef4444) !important;
    color: #ffffff !important;
    box-shadow: 0 14px 26px rgba(220, 38, 38, 0.20) !important;
}

.swal-button--danger:hover,
.swal2-deny:hover {
    background: linear-gradient(135deg, var(--app-swal-danger-hover), #dc2626) !important;
}

.swal-icon,
.swal2-icon {
    margin: 2px auto 18px !important;
}

.swal-icon--custom,
.swal2-image {
    display: flex !important;
    align-items: center;
    justify-content: center;
    max-width: min(160px, 42vw) !important;
    max-height: 120px !important;
    margin: 4px auto 18px !important;
}

.swal-icon--custom img,
.swal2-image {
    object-fit: contain;
}

.swal-icon--success,
.swal2-success {
    border-color: rgba(22, 163, 74, 0.16) !important;
}

.swal-icon--success__ring {
    border-color: rgba(22, 163, 74, 0.22) !important;
}

.swal-icon--success__line,
.swal2-success-line-tip,
.swal2-success-line-long {
    background-color: var(--app-swal-success) !important;
}

.swal-icon--success:before,
.swal-icon--success:after {
    background: var(--app-swal-surface-strong) !important;
}

.swal-icon--error,
.swal2-error {
    border-color: rgba(220, 38, 38, 0.18) !important;
}

.swal-icon--error__line,
.swal2-x-mark-line-left,
.swal2-x-mark-line-right {
    background-color: var(--app-swal-error) !important;
}

.swal-icon--warning,
.swal2-warning {
    border-color: rgba(217, 119, 6, 0.18) !important;
}

.swal-icon--warning__body,
.swal-icon--warning__dot,
.swal2-icon.swal2-warning {
    color: var(--app-swal-warning) !important;
}

.swal-icon--info,
.swal2-info {
    border-color: rgba(2, 132, 199, 0.18) !important;
    color: var(--app-swal-info) !important;
}

.swal2-timer-progress-bar,
.swal2-container div:where(.swal2-timer-progress-bar) {
    background: linear-gradient(90deg, rgba(37, 99, 235, 0.18), rgba(14, 165, 233, 0.68)) !important;
}

.swal2-toast {
    border-radius: 18px !important;
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.20) !important;
}

.swal2-popup.swal2-toast .swal2-title,
.swal2-popup.swal2-toast .swal2-html-container {
    text-align: left !important;
}

.swal-overlay--show-modal .swal-modal,
.swal2-show {
    animation: appSwalRise 0.22s ease-out;
}

@keyframes appSwalRise {
    from {
        opacity: 0;
        transform: translateY(12px) scale(0.985);
    }

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

@media (max-width: 575.98px) {
    .swal-modal,
    .swal2-popup {
        width: calc(100vw - 20px) !important;
        margin: 10px auto !important;
        padding: 24px 18px 18px !important;
        border-radius: 22px !important;
    }

    .swal-title,
    .swal2-title {
        font-size: 24px !important;
    }

    .swal-button,
    .swal2-styled {
        width: 100% !important;
        min-width: 0 !important;
    }

    .swal-footer,
    .swal2-actions {
        gap: 10px !important;
    }
}
