.cocarpi-alert-container {
    padding: 1rem;
    font-family: "Barlow", Arial, sans-serif;
    backdrop-filter: blur(3px);
}

.cocarpi-alert-popup {
    position: relative;
    width: min(100%, 430px);
    overflow: hidden;
    padding: 2rem 1.75rem 1.5rem;
    border: 1px solid #e0e6ec;
    border-radius: 1.25rem;
    color: #263b52;
    background: #fff;
    box-shadow: 0 1.5rem 4rem rgba(9, 28, 48, .26);
}

.cocarpi-alert-popup::before {
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: #315f86;
    content: "";
}

.cocarpi-alert-popup.is-success::before { background: #2b8060; }
.cocarpi-alert-popup.is-error::before { background: #b52e34; }
.cocarpi-alert-popup.is-warning::before { background: #c27a22; }
.cocarpi-alert-popup.is-info::before { background: #3379aa; }
.cocarpi-alert-popup.is-question::before { background: #315f86; }

.cocarpi-alert-icon.swal2-icon {
    width: 3.8rem;
    height: 3.8rem;
    margin: 0 auto 1rem;
    border-width: 2px;
    font-size: .9rem;
}

.cocarpi-alert-popup .swal2-success { border-color: #8bc5ad; color: #277456; }
.cocarpi-alert-popup .swal2-success [class^="swal2-success-line"] { height: .2rem; background-color: #277456; }
.cocarpi-alert-popup .swal2-success .swal2-success-ring { border-color: rgba(39, 116, 86, .2); }
.cocarpi-alert-popup .swal2-error { border-color: #dc999c; color: #ae2b31; }
.cocarpi-alert-popup .swal2-error [class^="swal2-x-mark-line"] { height: .2rem; background-color: #ae2b31; }
.cocarpi-alert-popup .swal2-warning { border-color: #dab171; color: #a76517; }
.cocarpi-alert-popup .swal2-info { border-color: #8eb7d2; color: #2e709e; }
.cocarpi-alert-popup .swal2-question { border-color: #8ba8bf; color: #315f86; }

.cocarpi-alert-title {
    padding: 0;
    color: #173554;
    font-family: "Barlow Semi Condensed", "Arial Narrow", sans-serif;
    font-size: clamp(1.35rem, 4vw, 1.7rem);
    font-weight: 700;
    letter-spacing: -.012em;
    line-height: 1.12;
}

.cocarpi-alert-content {
    margin: .55rem 0 0;
    padding: 0;
    color: #6c7a8b;
    font-size: .9rem;
    line-height: 1.55;
}

.cocarpi-alert-actions {
    display: flex;
    gap: .65rem;
    width: 100%;
    margin: 1.35rem 0 0;
}

.cocarpi-alert-button {
    display: inline-flex;
    flex: 1 1 0;
    align-items: center;
    justify-content: center;
    min-height: 2.9rem;
    margin: 0;
    padding: .65rem 1rem;
    border-radius: .72rem;
    font-family: "Barlow", Arial, sans-serif;
    font-size: .84rem;
    font-weight: 600;
    outline: 0;
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease;
}

.cocarpi-alert-confirm,
.cocarpi-alert-confirm.btn-success,
.cocarpi-alert-confirm.btn-danger {
    border: 1px solid #c32f30;
    color: #fff;
    background: #c32f30;
    box-shadow: 0 .45rem 1rem rgba(195, 47, 48, .2);
}

.cocarpi-alert-confirm:hover,
.cocarpi-alert-confirm:focus,
.cocarpi-alert-confirm.btn-success:hover,
.cocarpi-alert-confirm.btn-danger:hover {
    border-color: #a82629;
    color: #fff;
    background: #a82629;
    box-shadow: 0 .55rem 1.2rem rgba(195, 47, 48, .25);
    transform: translateY(-1px);
}

.cocarpi-alert-deny {
    border: 1px solid #173554;
    color: #fff;
    background: #173554;
    box-shadow: 0 .45rem 1rem rgba(23, 53, 84, .2);
}

.cocarpi-alert-deny:hover,
.cocarpi-alert-deny:focus {
    border-color: #0f2944;
    color: #fff;
    background: #0f2944;
    box-shadow: 0 .55rem 1.2rem rgba(23, 53, 84, .25);
    transform: translateY(-1px);
}

.cocarpi-alert-cancel,
.cocarpi-alert-cancel.btn-danger,
.cocarpi-alert-cancel.btn-success {
    border: 1px solid #d5dde5;
    color: #536274;
    background: #fff;
    box-shadow: none;
}

.cocarpi-alert-cancel:hover,
.cocarpi-alert-cancel:focus,
.cocarpi-alert-cancel.btn-danger:hover {
    border-color: #b9c6d1;
    color: #354a61;
    background: #f3f6f8;
}

.cocarpi-alert-popup .swal2-close {
    width: 2.25rem;
    height: 2.25rem;
    color: #8290a0;
    font-family: Arial, sans-serif;
    font-size: 1.6rem;
}

.cocarpi-alert-popup .swal2-close:hover { color: #c32f30; }
.cocarpi-alert-loader { border-color: #c32f30 transparent #c32f30 transparent; }

.cocarpi-alert-toast-container {
    padding: 1rem;
    backdrop-filter: none;
}

.cocarpi-alert-toast.swal2-popup {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    column-gap: .75rem;
    width: min(calc(100vw - 2rem), 390px);
    padding: .9rem 1rem;
    border-color: #d7e5dd;
    border-radius: .95rem;
    background: #fff;
    box-shadow: 0 1rem 2.5rem rgba(9, 28, 48, .18);
}

.cocarpi-alert-toast::before { inset: 0 auto 0 0; width: 4px; height: auto; }
.cocarpi-alert-toast .cocarpi-alert-icon.swal2-icon { grid-row: 1 / span 2; width: 2.4rem; height: 2.4rem; margin: 0; font-size: .58rem; }
.cocarpi-alert-toast .cocarpi-alert-title { grid-column: 2; align-self: end; margin: 0; text-align: left; font-size: 1.02rem; }
.cocarpi-alert-toast .cocarpi-alert-content { grid-column: 2; align-self: start; margin: .08rem 0 0; text-align: left; font-size: .76rem; line-height: 1.3; }
.cocarpi-alert-toast .swal2-close { position: static; grid-column: 3; grid-row: 1 / span 2; align-self: center; }
.cocarpi-alert-toast .swal2-timer-progress-bar { background: #4a9b77; }

.cocarpi-alert-enter { animation: cocarpi-alert-in .22s ease-out both; }
.cocarpi-alert-leave { animation: cocarpi-alert-out .16s ease-in both; }

@keyframes cocarpi-alert-in {
    from { opacity: 0; transform: translateY(.75rem) scale(.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes cocarpi-alert-out {
    from { opacity: 1; transform: translateY(0) scale(1); }
    to { opacity: 0; transform: translateY(.4rem) scale(.985); }
}

@media (max-width: 575.98px) {
    .cocarpi-alert-container { padding: .65rem; }
    .cocarpi-alert-popup { width: min(100%, 410px); padding: 1.6rem 1.1rem 1.1rem; border-radius: 1rem; }
    .cocarpi-alert-actions { flex-direction: column-reverse; }
    .cocarpi-alert-button { flex-basis: auto; width: 100%; }
    .cocarpi-alert-toast-container { padding: .65rem; }
    .cocarpi-alert-toast.swal2-popup { width: calc(100vw - 1.3rem); }
}

@media (prefers-reduced-motion: reduce) {
    .cocarpi-alert-enter,
    .cocarpi-alert-leave { animation: none; }
    .cocarpi-alert-button { transition: none; }
}
