/* Loading button styles */
.btn-loading {
    position: relative;
    pointer-events: none;
    opacity: 0.8;
    cursor: not-allowed !important;
}

.btn-loading:hover {
    opacity: 0.8 !important;
}

/* Spinner animation for loading buttons */
.spinner-border-sm {
    width: 1rem;
    height: 1rem;
    border-width: 0.1em;
}

/* Loading overlay for forms */
.form-loading {
    position: relative;
    opacity: 0.7;
    pointer-events: none;
}

.form-loading::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.8);
    z-index: 10;
    border-radius: 0.375rem;
}

/* Loading state for specific button types */
.btn-primary.btn-loading {
    background-color: #0d6efd;
    border-color: #0d6efd;
}

.btn-success.btn-loading {
    background-color: #198754;
    border-color: #198754;
}

.btn-danger.btn-loading {
    background-color: #dc3545;
    border-color: #dc3545;
}

.btn-warning.btn-loading {
    background-color: #ffc107;
    border-color: #ffc107;
}

/* Pulse animation for loading buttons */
@keyframes loading-pulse {
    0% { opacity: 0.8; }
    50% { opacity: 1; }
    100% { opacity: 0.8; }
}

.btn-loading {
    animation: loading-pulse 1.5s ease-in-out infinite;
}