/* loading.css — pantalla de carga mientras el servidor valida (Figma 588:4101).

   No lleva tarjeta: el diseño la deja sobre el fondo de página, centrada, a
   diferencia de terminal.css. Por eso no comparten estilos aunque se parezcan. */

.loading-view {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 32px 120px;
}

.loading-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    width: 100%;
    max-width: var(--column-upload);
    text-align: center;
}

/* El SVG ya trae el arco abierto; la vuelta completa la da la animación, como
   pide la nota del diseño ("una vuelta de 360 en la misma línea"). */
.loading-state__spinner {
    display: block;
    width: 48px;
    height: 48px;
    animation: loading-spin 1s linear infinite;
}

@keyframes loading-spin {
    to {
        transform: rotate(360deg);
    }
}

/* Con movimiento reducido el arco se queda quieto. No se pierde información:
   el texto ya dice que la validación está en curso. */
@media (prefers-reduced-motion: reduce) {
    .loading-state__spinner {
        animation: none;
    }
}

.loading-state__text {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* El diseño (588:4103) pide 30px/36px (text-3xl); a pedido se bajó a 24px/32px
   (text-2xl), el mismo tamaño que ya usan upload-intro h1 y terminal-card__title. */
.loading-state__title {
    margin: 0;
    font-size: 24px;
    line-height: 32px;
    font-weight: 600;
    color: var(--text-primary);
}

.loading-state__body {
    margin: 0;
    font-size: 16px;
    line-height: 24px;
    color: var(--text-secondary);
}

/* Solo el espaciado se ajusta en móvil, igual que en upload.css y terminal.css:
   ninguna de las dos reduce el tamaño de su título en este breakpoint. */
@media (max-width: 720px) {
    .loading-view {
        padding: 24px 16px;
    }
}
