/* Bloquear scroll mientras carga */
body.loading {
overflow: hidden;
}

/* Modal fullscreen */
.modal-de-carga {
position: fixed; /*evitar posible scroll desplazado en un segundo refresh */
top: 0;
left: 0;
width: 105vw;
height: 110vh;
background: white;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 99999;
transition: opacity 0.4s ease, visibility 0.4s ease;
/*sin scroll */
overflow: hidden;
}

/* Oculto al terminar */
.modal-de-carga.oculto {
opacity: 0;
visibility: hidden;
pointer-events: none;
}

/* Spinner */
.spinner {
width: 50px;
height: 50px;
border: 4px solid rgba(0,0,0,0.15);
border-top: 4px solid black;
border-radius: 50%;
animation: spin 0.8s linear infinite;
margin-bottom: 12px;
}

@keyframes spin {
to {
    transform: rotate(360deg);
}
}

/* Texto */
.modal-de-carga p {
font-family: system-ui, sans-serif;
font-size: 1rem;
color: #333;
}