/* =============================================================================
   Estado visual de botón "loading" tras submit.
   ============================================================================= */

/* Botón en estado loading */
.btn.is-loading,
button.is-loading,
input[type="submit"].is-loading {
    position: relative;
    cursor: progress;
    opacity: 0.85;
    padding-left: calc(28px + 14px); /* espacio para el spinner */
}

/* Spinner accesible (decorativo, lectores lo ignoran porque aria-busy ya avisa) */
.btn.is-loading::before,
button.is-loading::before,
input[type="submit"].is-loading::before {
    content: "";
    position: absolute;
    left: 14px;
    top: 50%;
    width: 18px;
    height: 18px;
    margin-top: -9px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: flr-spin 0.8s linear infinite;
}

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

/* Respeta prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    .btn.is-loading::before,
    button.is-loading::before,
    input[type="submit"].is-loading::before {
        animation: none;
        border-top-color: currentColor;
        opacity: 0.6;
    }
}
