:root {
    --app-modal-primary: var(--brand-primary, var(--primary, #c5295c));
    --app-modal-primary-dark: var(--brand-primary-dark, var(--primary-dark, #8f183f));
}

body.swal2-height-auto { height: 100% !important; }
.swal2-container { z-index: 20000 !important; padding: 18px !important; }
.app-swal-popup {
    width: min(520px, calc(100vw - 28px)) !important;
    padding: 1.65rem !important;
    border: 1px solid rgba(31, 23, 27, .08) !important;
    border-radius: 22px !important;
    background: #fff !important;
    box-shadow: 0 24px 70px rgba(38, 21, 29, .22) !important;
}
.app-swal-title { padding: .25rem 0 0 !important; color: #261a20 !important; font-size: 1.28rem !important; font-weight: 850 !important; letter-spacing: -.025em !important; }
.app-swal-content { margin: .75rem 0 0 !important; color: #766a70 !important; font-size: .88rem !important; line-height: 1.6 !important; }
.app-swal-actions { width: 100% !important; gap: 10px !important; margin: 1.35rem 0 0 !important; }
.app-swal-button {
    min-height: 44px;
    min-width: 122px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    font-size: .79rem;
    font-weight: 800;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.app-swal-button:hover { transform: translateY(-1px); }
.app-swal-button:focus-visible { outline: 3px solid rgba(197, 41, 92, .18); outline-offset: 2px; }
.app-swal-button--primary { color: #fff; background: var(--app-modal-primary); box-shadow: 0 8px 22px rgba(197, 41, 92, .22); }
.app-swal-button--primary:hover { background: var(--app-modal-primary-dark); }
.app-swal-button--secondary { color: #392d33; border-color: #e2dadd; background: #fff; }
.app-swal-button--secondary:hover { background: #f8f5f6; }
.app-swal-button--danger { color: #fff; background: #b4233e; box-shadow: 0 8px 22px rgba(180, 35, 62, .2); }
.app-swal-button--danger:hover { background: #8f1830; }
.app-swal-error-list { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; text-align: left; }
.app-swal-error-list li { padding: 9px 11px; border-radius: 10px; color: #8d2639; background: #fdecf0; font-size: .78rem; }
.swal2-loader { border-color: var(--app-modal-primary) transparent var(--app-modal-primary) transparent !important; }

@media (max-width: 520px) {
    .swal2-container { padding: 10px !important; }
    .app-swal-popup { padding: 1.3rem !important; border-radius: 18px !important; }
    .app-swal-actions { display: grid !important; grid-template-columns: 1fr; }
    .app-swal-button { width: 100%; margin: 0 !important; }
}
