/* Styles pour le bouton avec spinner */
.btn-loading {
    position: relative;
    pointer-events: none;
    opacity: 0.8;
}

.btn-loading .btn-text {
    visibility: hidden;
    opacity: 0;
}

.btn-loading::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    top: 50%;
    left: 50%;
    margin-top: -10px;
    margin-left: -10px;
    border: 2px solid #fff;
    border-radius: 50%;
    border-top-color: transparent;
    animation: spinner 0.8s linear infinite;
}

@keyframes spinner {
    to { transform: rotate(360deg); }
}

/* Variante pour les boutons outline */
.btn-outline-loading::after {
    border: 2px solid #000;
    border-top-color: transparent;
}

/* Désactivation du bouton */
button:disabled {
    cursor: not-allowed;
    opacity: 0.7;
}