/**
 * Form Loader - Spinner para botões de submit
 * Compatível com tema Dashmix
 * @version 1.0.0
 */

/* Spinner base - usando border-spinner do Bootstrap */
.btn-loader-spinner {
    display: inline-block;
    width: 1em;
    height: 1em;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: btn-spinner-rotate 0.75s linear infinite;
    vertical-align: middle;
    margin-right: 0.5em;
}

/* Animação de rotação */
@keyframes btn-spinner-rotate {
    to {
        transform: rotate(360deg);
    }
}

/* Variante pequena para botões menores */
.btn-sm .btn-loader-spinner {
    width: 0.875em;
    height: 0.875em;
    border-width: 1.5px;
}

/* Variante grande para botões maiores */
.btn-lg .btn-loader-spinner {
    width: 1.25em;
    height: 1.25em;
    border-width: 2.5px;
}

/* Estado desabilitado do botão com loading */
.btn.btn-loading {
    position: relative;
    pointer-events: none;
    opacity: 0.75;
}

/* Ajuste para manter alinhamento do texto */
.btn.btn-loading .btn-loader-text {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Transição suave para mudança de estado */
.btn {
    transition: opacity 0.15s ease-in-out;
}

/* Spinner alternativo usando ícone Font Awesome (já incluído no Dashmix) */
.btn-loader-fa {
    display: inline-block;
    animation: btn-spinner-rotate 1s linear infinite;
    margin-right: 0.5em;
}

/* Dark mode compatibility */
.dark .btn-loader-spinner {
    border-color: currentColor;
    border-right-color: transparent;
}

/* Ajuste do spinner nativo do Bootstrap para ficar consistente */
.btn .spinner-border-sm {
    width: 1em;
    height: 1em;
    border-width: 0.15em;
}

/* Garantir que o botão não mude de tamanho durante loading */
.btn.btn-loading {
    white-space: nowrap;
}
