/* QueroPet — linguagem única para todos os diálogos SweetAlert2. */
.swal2-container {
    padding: 18px !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

/* SweetAlert adiciona esta classe apenas quando o diálogo pede backdrop.
   O estado inicial transparente evita qualquer flash nos toasts. */
.swal2-container.swal2-backdrop-show:not(.qp-favorite-toast-container):not(.qp-location-container) {
    background: rgba(4, 42, 52, .46) !important;
    backdrop-filter: blur(7px) !important;
    -webkit-backdrop-filter: blur(7px) !important;
}

.swal2-popup {
    width: min(100%, 540px) !important;
    padding: 34px 38px 30px !important;
    overflow: hidden !important;
    border: 1px solid rgba(5, 154, 162, .18) !important;
    border-radius: 26px !important;
    background: #fff !important;
    box-shadow: 0 28px 72px rgba(1, 41, 52, .28) !important;
    color: #143d47 !important;
    font-family: 'Titillium Web', Arial, sans-serif !important;
}

.swal2-icon {
    width: 68px !important;
    height: 68px !important;
    margin: 0 auto 17px !important;
    border-width: 3px !important;
}

.swal2-icon.swal2-info,
.swal2-icon.swal2-question {
    border-color: #08b7d8 !important;
    color: #08b7d8 !important;
}

.swal2-icon.swal2-success [class^='swal2-success-line'] {
    background-color: #00b987 !important;
}

.swal2-icon.swal2-success .swal2-success-ring {
    border-color: rgba(0, 185, 135, .28) !important;
}

/* O SweetAlert calcula o check para um ícone de 80px; como a interface usa 68px,
   reposicionamos as hastes para manter a marca de sucesso contínua e simétrica. */
.swal2-icon.swal2-success .swal2-success-line-tip {
    top: 38px !important;
    left: 11px !important;
    width: 21px !important;
    height: 5px !important;
    border-radius: 4px !important;
    transform: rotate(45deg) !important;
}

.swal2-icon.swal2-success .swal2-success-line-long {
    top: 31px !important;
    right: 7px !important;
    width: 39px !important;
    height: 5px !important;
    border-radius: 4px !important;
    transform: rotate(-45deg) !important;
}

.swal2-icon.swal2-warning {
    border-color: #f3a23b !important;
    color: #f3a23b !important;
}

.swal2-icon.swal2-error {
    border-color: #ec6f6a !important;
    color: #ec6f6a !important;
}

.swal2-title {
    padding: 0 !important;
    color: #12414b !important;
    font-family: 'Baloo 2', 'Titillium Web', Arial, sans-serif !important;
    font-size: clamp(1.72rem, 4vw, 2.18rem) !important;
    font-weight: 800 !important;
    line-height: 1.12 !important;
    letter-spacing: -.025em !important;
}

.swal2-html-container {
    margin: 14px 0 0 !important;
    padding: 0 !important;
    color: #71818f !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
    line-height: 1.72 !important;
}

.swal2-html-container p {
    margin: 0 0 12px !important;
}

.swal2-html-container p:last-child {
    margin-bottom: 0 !important;
}

.swal2-actions {
    width: 100% !important;
    margin: 26px 0 0 !important;
    gap: 10px !important;
}

.swal2-styled {
    min-height: 50px !important;
    margin: 0 !important;
    padding: 10px 21px !important;
    border: 1px solid transparent !important;
    border-radius: 13px !important;
    font-family: 'Titillium Web', Arial, sans-serif !important;
    font-size: .98rem !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    box-shadow: 0 12px 24px rgba(6, 144, 150, .18) !important;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease !important;
}

.swal2-styled:hover {
    transform: translateY(-2px) !important;
}

.swal2-confirm {
    background: linear-gradient(135deg, #00cbb2, #009cab) !important;
    color: #fff !important;
}

.swal2-confirm:hover {
    box-shadow: 0 15px 28px rgba(0, 161, 168, .29) !important;
}

.swal2-cancel {
    background: #71808b !important;
    color: #fff !important;
    box-shadow: none !important;
}

.swal2-cancel:hover {
    background: #586b77 !important;
}

.swal2-deny {
    background: #fff2f0 !important;
    border-color: #f4cbc7 !important;
    color: #b84c48 !important;
    box-shadow: none !important;
}

.swal2-input,
.swal2-textarea,
.swal2-select {
    width: 100% !important;
    min-height: 54px !important;
    margin: 22px 0 0 !important;
    padding: 12px 15px !important;
    border: 2px solid #a8d7ea !important;
    border-radius: 10px !important;
    color: #173e49 !important;
    font-family: 'Titillium Web', Arial, sans-serif !important;
    font-size: 1rem !important;
    box-shadow: inset 0 1px 2px rgba(14, 67, 77, .04) !important;
}

.swal2-textarea {
    min-height: 118px !important;
}

.swal2-input:focus,
.swal2-textarea:focus,
.swal2-select:focus {
    border-color: #00afbb !important;
    box-shadow: 0 0 0 4px rgba(0, 183, 192, .14) !important;
}

.swal2-validation-message {
    margin: 12px 0 0 !important;
    padding: 10px 12px !important;
    border-radius: 9px !important;
    background: #fff3f1 !important;
    color: #b74b46 !important;
    font-weight: 700 !important;
}

.swal2-close {
    width: 36px !important;
    height: 36px !important;
    margin: 10px 10px 0 0 !important;
    border-radius: 50% !important;
    color: #6b7f86 !important;
    font-size: 2rem !important;
    transition: background .2s ease, color .2s ease !important;
}

.swal2-close:hover {
    background: #edf7f7 !important;
    color: #008d98 !important;
}

/* Fluxo de localização: variante explícita para não depender de estilos de cada página. */
.swal2-popup.qp-location-dialog,
.swal2-popup.qp-cep-dialog {
    position: relative !important;
    border-color: #b7e9e4 !important;
    background: linear-gradient(145deg, #ffffff 0%, #f8ffff 100%) !important;
}

.swal2-popup.qp-location-dialog::before,
.swal2-popup.qp-cep-dialog::before {
    position: absolute;
    top: 0;
    right: 12%;
    left: 12%;
    height: 5px;
    border-radius: 0 0 9px 9px;
    background: linear-gradient(90deg, #00cdb6, #02a9c0);
    content: '';
}

.swal2-popup.qp-location-dialog .swal2-title,
.swal2-popup.qp-cep-dialog .swal2-title {
    color: #073f49 !important;
    font-family: 'Baloo 2', 'Titillium Web', Arial, sans-serif !important;
}

.swal2-popup.qp-location-dialog .swal2-html-container,
.swal2-popup.qp-cep-dialog .swal2-html-container {
    max-width: 430px;
    margin-right: auto !important;
    margin-left: auto !important;
}

.swal2-popup .qp-swal-button {
    display: inline-flex !important;
    min-height: 50px !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    margin: 0 !important;
    padding: 10px 20px !important;
    border: 1px solid transparent !important;
    border-radius: 13px !important;
    font-family: 'Titillium Web', Arial, sans-serif !important;
    font-size: .98rem !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease !important;
}

.swal2-popup .qp-swal-button:hover {
    transform: translateY(-2px) !important;
}

.swal2-popup .qp-swal-button--primary {
    background: linear-gradient(135deg, #00cfb7, #009eaa) !important;
    color: #fff !important;
    box-shadow: 0 14px 25px rgba(0, 157, 166, .24) !important;
}

.swal2-popup .qp-swal-button--secondary {
    border-color: #c9dadd !important;
    background: #f2f8f8 !important;
    color: #42636c !important;
    box-shadow: none !important;
}

/* A decisão de localização mantém a superfície clara, com os círculos da identidade QueroPet. */
.swal2-popup.qp-location-dialog {
    isolation: isolate;
    overflow: hidden !important;
    border-color: #a9e1dc !important;
    background: linear-gradient(145deg, #ffffff 0%, #f2fcfa 100%) !important;
    box-shadow: 0 30px 80px rgba(0, 63, 73, .28) !important;
    color: #123f48 !important;
}

.swal2-popup.qp-location-dialog::before {
    z-index: 0;
    top: -108px;
    right: -72px;
    left: auto;
    width: 270px;
    height: 270px;
    border: 1px solid rgba(0, 161, 168, .18);
    border-radius: 50%;
    background: transparent;
    box-shadow: 0 0 0 46px rgba(0, 184, 178, .05), 0 0 0 92px rgba(0, 184, 178, .035);
}

.swal2-popup.qp-location-dialog > * {
    position: relative;
    z-index: 1;
}

.swal2-popup.qp-location-dialog .swal2-icon.swal2-info {
    border-color: #00a8af !important;
    background: #e8fbf8 !important;
    color: #008f98 !important;
}

.swal2-popup.qp-location-dialog .swal2-title {
    color: #073f49 !important;
}

.swal2-popup.qp-location-dialog .swal2-html-container {
    color: #6b7f8b !important;
}

.swal2-popup.qp-location-dialog .qp-swal-button--primary {
    background: linear-gradient(135deg, #00c8b4, #009ca7) !important;
    color: #fff !important;
    box-shadow: 0 14px 28px rgba(0, 140, 151, .22) !important;
}

.swal2-popup.qp-location-dialog .qp-swal-button--secondary {
    border-color: #b8dedb !important;
    background: #f1faf9 !important;
    color: #1f6870 !important;
}

/* Sem backdrop: nem bloqueio visual, nem piscada antes de o estilo do modal ser aplicado. */
.swal2-container.qp-location-container {
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.swal2-popup.swal2-toast.qp-favorite-toast {
    width: min(100%, 390px) !important;
    padding: 13px 16px !important;
    border-color: #bfe9e3 !important;
    border-radius: 17px !important;
    background: linear-gradient(135deg, #ffffff, #effcf9) !important;
    box-shadow: 0 18px 42px rgba(4, 72, 81, .2) !important;
}

/* Toasts informativos nunca devem bloquear nem escurecer a página. */
.swal2-container.qp-favorite-toast-container {
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    pointer-events: none !important;
}

.swal2-container.qp-favorite-toast-container .swal2-popup {
    pointer-events: auto !important;
}

.swal2-popup.swal2-toast.qp-favorite-toast .swal2-icon {
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
    margin: 0 10px 0 0 !important;
}

.swal2-popup.swal2-toast.qp-favorite-toast .swal2-title {
    margin: 0 !important;
    color: #094752 !important;
    font-family: 'Titillium Web', Arial, sans-serif !important;
    font-size: 1rem !important;
    font-weight: 900 !important;
    letter-spacing: 0 !important;
}

.swal2-popup.swal2-toast.qp-favorite-toast .swal2-html-container {
    margin: 2px 0 0 !important;
    color: #698088 !important;
    font-size: .84rem !important;
    line-height: 1.35 !important;
}

.swal2-popup.swal2-toast.qp-favorite-toast .swal2-timer-progress-bar {
    background: linear-gradient(90deg, #00cab4, #00a2aa) !important;
}

@media (max-width: 575px) {
    .swal2-container {
        padding: 12px !important;
    }

    .swal2-popup {
        width: min(100%, 520px) !important;
        padding: 28px 22px 24px !important;
        border-radius: 22px !important;
    }

    .swal2-icon {
        width: 60px !important;
        height: 60px !important;
        margin-bottom: 14px !important;
    }

    .swal2-actions {
        flex-direction: column-reverse !important;
        margin-top: 22px !important;
    }

    .swal2-styled {
        width: 100% !important;
    }

    .swal2-popup .qp-swal-button {
        width: 100% !important;
    }
}
