/* Modal de carga global (Pages/Shared/_ModalCarga.cshtml + js/modal-carga.js). */

.carga-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    z-index: 2000;   /* sobre navbar, sidebar y modales de Bootstrap (1055) */
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}
.carga-overlay[hidden] { display: none; }

.carga-modal {
    background: #fff;
    border-radius: 16px;
    padding: 36px 40px 32px;
    text-align: center;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.18);
    animation: carga-modal-in .22s cubic-bezier(.34, 1.56, .64, 1);
    min-width: 260px;
    max-width: 100%;
}
@keyframes carga-modal-in {
    from { opacity: 0; transform: scale(.88) translateY(8px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

.carga-spinner {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 3.5px solid var(--bs-border-color, #dee2e6);
    border-top-color: var(--admin-accent, #1F4E79);
    animation: carga-spin .75s linear infinite;
    margin: 0 auto 18px;
}
@keyframes carga-spin { to { transform: rotate(360deg); } }

.carga-titulo {
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--admin-primary, #0D2137);
}
.carga-subtitulo {
    font-size: .875rem;
    color: var(--bs-secondary-color, #6c757d);
    margin-top: 4px;
}
.carga-puntos::after {
    content: "";
    display: inline-block;
    width: 1.2em;
    text-align: left;
    animation: carga-puntos 1.2s steps(4, end) infinite;
}
@keyframes carga-puntos {
    0%  { content: ""; }
    25% { content: "."; }
    50% { content: ".."; }
    75% { content: "..."; }
}

@media (prefers-reduced-motion: reduce) {
    .carga-modal   { animation: none; }
    .carga-spinner { animation-duration: 1.5s; }
}
