/* Standardized Button System - MYSECUR.IT */

/* ===== BASE BUTTON STYLES ===== */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--btn-padding);
    font-size: var(--btn-font-size);
    font-weight: var(--btn-font-weight);
    border-radius: var(--btn-border-radius);
    border: 1px solid transparent;
    text-decoration: none;
    cursor: pointer;
    transition: var(--btn-transition);
    box-sizing: border-box;
    white-space: nowrap;
}

.btn:focus {
    outline: 2px solid var(--color-primary-20);
    outline-offset: 2px;
}

/* ===== BUTTON SIZES ===== */
.btn-sm {
    padding: var(--btn-padding-sm);
    font-size: 0.75rem;
}

.btn-lg {
    padding: var(--btn-padding-lg);
    font-size: 1rem;
    font-weight: 600;
}

/* ===== PRIMARY BUTTON ===== */
.btn-primary {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: white;
    box-shadow: var(--shadow-component-card);
}

.btn-primary:hover {
    background: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    transform: var(--btn-transform-hover);
    box-shadow: 0 6px 20px var(--color-primary-20);
}

/* ===== BRAND CYAN BUTTON ===== */
.btn-brand {
    background: var(--color-brand-cyan);
    border-color: var(--color-brand-cyan);
    color: white;
    box-shadow: var(--shadow-component-card);
}

.btn-brand:hover {
    background: var(--color-brand-cyan-dark);
    border-color: var(--color-brand-cyan-dark);
    transform: var(--btn-transform-hover);
    box-shadow: 0 6px 20px var(--color-brand-cyan-20);
}

/* ===== OUTLINE BUTTONS ===== */
.btn-outline-primary {
    background: transparent;
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.btn-outline-primary:hover {
    background: var(--color-primary);
    color: white;
    transform: var(--btn-transform-hover);
    box-shadow: 0 6px 20px var(--color-primary-20);
}

.btn-outline-brand {
    background: transparent;
    border-color: var(--color-brand-cyan);
    color: var(--color-brand-cyan);
}

.btn-outline-brand:hover {
    background: var(--color-brand-cyan);
    color: white;
    transform: var(--btn-transform-hover);
    box-shadow: 0 6px 20px var(--color-brand-cyan-20);
}

/* ===== SECONDARY BUTTON ===== */
.btn-secondary {
    background: var(--color-gray-600);
    border-color: var(--color-gray-600);
    color: white;
    box-shadow: var(--shadow-component-card);
}

.btn-secondary:hover {
    background: var(--color-gray-700);
    border-color: var(--color-gray-700);
    transform: var(--btn-transform-hover);
    box-shadow: 0 6px 20px var(--color-gray-300);
}

/* ===== SUCCESS BUTTON ===== */
.btn-success {
    background: var(--color-success);
    border-color: var(--color-success);
    color: white;
    box-shadow: var(--shadow-component-card);
}

.btn-success:hover {
    background: var(--color-success-dark);
    border-color: var(--color-success-dark);
    transform: var(--btn-transform-hover);
    box-shadow: 0 6px 20px var(--color-success-20);
}

/* ===== WARNING BUTTON ===== */
.btn-warning {
    background: var(--color-warning);
    border-color: var(--color-warning);
    color: white;
    box-shadow: var(--shadow-component-card);
}

.btn-warning:hover {
    background: var(--color-warning-dark);
    border-color: var(--color-warning-dark);
    transform: var(--btn-transform-hover);
    box-shadow: 0 6px 20px var(--color-warning-20);
}

/* ===== BUTTON WITH ICON ===== */
.btn-icon {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.btn-icon svg {
    width: 1.25rem;
    height: 1.25rem;
    flex-shrink: 0;
}

.btn-sm.btn-icon svg {
    width: 1rem;
    height: 1rem;
}

.btn-lg.btn-icon svg {
    width: 1.5rem;
    height: 1.5rem;
}

/* ===== DISABLED STATE ===== */
.btn:disabled,
.btn.disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none !important;
    box-shadow: none !important;
}

.btn:disabled:hover,
.btn.disabled:hover {
    transform: none;
    box-shadow: var(--shadow-component-card);
}

/* ===== LOADING STATE ===== */
.btn-loading {
    position: relative;
    color: transparent !important;
}

.btn-loading::after {
    content: '';
    position: absolute;
    width: 1rem;
    height: 1rem;
    border: 2px solid transparent;
    border-top: 2px solid currentColor;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    color: white;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* ===== RESPONSIVE ADJUSTMENTS ===== */
@media (max-width: 767px) {
    .btn {
        padding: 0.625rem 1.25rem;
        font-size: 0.8rem;
    }
    
    .btn-sm {
        padding: 0.5rem 0.875rem;
        font-size: 0.7rem;
    }
    
    .btn-lg {
        padding: 0.875rem 1.75rem;
        font-size: 0.9rem;
    }
}