/**
 * Modern Buttons - Estilo Uniforme
 * Botões com bordas e visual clean
 */

/* ==================== BOTÕES BASE ==================== */
.btn,
button:not(.modal-close):not(.user-dropdown-trigger),
a.btn,
input[type="submit"],
input[type="button"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    padding: 0.625rem 1.25rem !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    border-radius: 0.5rem !important;
    border: 1px solid var(--border-medium, #d1d5db) !important;
    background: var(--bg-primary, #ffffff) !important;
    color: var(--text-primary, #111827) !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    line-height: 1.5 !important;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
}

.btn:hover,
button:not(.modal-close):not(.user-dropdown-trigger):hover,
a.btn:hover {
    background: var(--bg-hover, #f5f5f5) !important;
    border-color: var(--gray-900, #171717) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1) !important;
}

.btn:active,
button:not(.modal-close):not(.user-dropdown-trigger):active,
a.btn:active {
    transform: translateY(0) !important;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
}

/* ==================== VARIANTES DE COR ==================== */

/* Primary - Preto/Escuro */
.btn-primary,
.btn.primary,
button.primary {
    background: var(--gray-900, #171717) !important;
    color: white !important;
    border-color: var(--gray-900, #171717) !important;
}

.btn-primary:hover,
.btn.primary:hover,
button.primary:hover {
    background: var(--gray-800, #262626) !important;
    border-color: var(--gray-800, #262626) !important;
}

/* Success - Verde */
.btn-success,
.btn.success,
button.success {
    background: #10b981 !important;
    color: white !important;
    border-color: #10b981 !important;
}

.btn-success:hover,
.btn.success:hover,
button.success:hover {
    background: #059669 !important;
    border-color: #059669 !important;
}

/* Danger - Vermelho */
.btn-danger,
.btn.danger,
button.danger {
    background: #ef4444 !important;
    color: white !important;
    border-color: #ef4444 !important;
}

.btn-danger:hover,
.btn.danger:hover,
button.danger:hover {
    background: #dc2626 !important;
    border-color: #dc2626 !important;
}

/* Warning - Amarelo */
.btn-warning,
.btn.warning,
button.warning {
    background: #f59e0b !important;
    color: white !important;
    border-color: #f59e0b !important;
}

.btn-warning:hover,
.btn.warning:hover,
button.warning:hover {
    background: #d97706 !important;
    border-color: #d97706 !important;
}

/* Info - Azul */
.btn-info,
.btn.info,
button.info {
    background: #3b82f6 !important;
    color: white !important;
    border-color: #3b82f6 !important;
}

.btn-info:hover,
.btn.info:hover,
button.info:hover {
    background: #2563eb !important;
    border-color: #2563eb !important;
}

/* Outline - Transparente com borda */
.btn-outline,
.btn.outline,
button.outline {
    background: transparent !important;
    color: var(--text-primary, #111827) !important;
    border: 1.5px solid var(--gray-300, #d4d4d4) !important;
}

.btn-outline:hover,
.btn.outline:hover,
button.outline:hover {
    background: var(--bg-hover, #f5f5f5) !important;
    border-color: var(--gray-900, #171717) !important;
}

/* Ghost - Sem borda/background */
.btn-ghost,
.btn.ghost,
button.ghost {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

.btn-ghost:hover,
.btn.ghost:hover,
button.ghost:hover {
    background: var(--bg-hover, #f5f5f5) !important;
    border-color: transparent !important;
}

/* ==================== TAMANHOS ==================== */

/* Small */
.btn-sm,
.btn.sm,
button.sm {
    padding: 0.375rem 0.875rem !important;
    font-size: 0.8125rem !important;
}

/* Large */
.btn-lg,
.btn.lg,
button.lg {
    padding: 0.875rem 1.75rem !important;
    font-size: 1rem !important;
}

/* ==================== ESTADOS ==================== */

/* Disabled */
.btn:disabled,
.btn[disabled],
button:disabled,
button[disabled],
.btn-disabled {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    transform: none !important;
}

/* Loading */
.btn.loading,
button.loading {
    position: relative !important;
    color: transparent !important;
    pointer-events: none !important;
}

.btn.loading::after,
button.loading::after {
    content: '' !important;
    position: absolute !important;
    width: 16px !important;
    height: 16px !important;
    top: 50% !important;
    left: 50% !important;
    margin-left: -8px !important;
    margin-top: -8px !important;
    border: 2px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 50% !important;
    border-top-color: currentColor !important;
    animation: spin 0.8s linear infinite !important;
}

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

/* ==================== GRUPOS DE BOTÕES ==================== */

.btn-group {
    display: inline-flex !important;
    gap: 0 !important;
}

.btn-group .btn,
.btn-group button {
    border-radius: 0 !important;
    margin-left: -1px !important;
}

.btn-group .btn:first-child,
.btn-group button:first-child {
    border-top-left-radius: 0.5rem !important;
    border-bottom-left-radius: 0.5rem !important;
    margin-left: 0 !important;
}

.btn-group .btn:last-child,
.btn-group button:last-child {
    border-top-right-radius: 0.5rem !important;
    border-bottom-right-radius: 0.5rem !important;
}

/* ==================== BOTÕES ESPECIAIS ==================== */

/* Botão com ícone apenas */
.btn-icon,
button.btn-icon {
    width: 40px !important;
    height: 40px !important;
    padding: 0 !important;
    justify-content: center !important;
}

.btn-icon.sm,
button.btn-icon.sm {
    width: 32px !important;
    height: 32px !important;
}

.btn-icon.lg,
button.btn-icon.lg {
    width: 48px !important;
    height: 48px !important;
}

/* Botão full-width */
.btn-block,
button.btn-block {
    width: 100% !important;
    display: flex !important;
}

/* ==================== LINKS COMO BOTÕES ==================== */

a[href*="/streams"],
a[href*="/recordings"],
a[href*="/relays"],
a[href*="/users"],
a[href*="/logs"],
a[href*="/admin"],
a[href*="Gerenciar"],
a[href*="Ver Todas"],
a[href*="Ver Todos"],
a[href*="Criar"],
a:not(.nav-link):not(.dropdown-item):not([class*="logo"]) {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    padding: 0.5rem 1rem !important;
    border: 1px solid var(--border-medium, #d1d5db) !important;
    border-radius: 0.5rem !important;
    background: var(--bg-primary, #ffffff) !important;
    color: var(--text-primary, #111827) !important;
    text-decoration: none !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    transition: all 0.2s ease !important;
}

a[href*="/streams"]:hover,
a[href*="/recordings"]:hover,
a[href*="Gerenciar"]:hover,
a[href*="Ver"]:hover,
a[href*="Criar"]:hover {
    background: var(--bg-hover, #f5f5f5) !important;
    border-color: var(--gray-900, #171717) !important;
    transform: translateY(-1px) !important;
}

/* ==================== BOTÕES DE AÇÃO (Cards) ==================== */

.card-actions,
.actions,
.action-buttons {
    display: flex !important;
    gap: 0.75rem !important;
    flex-wrap: wrap !important;
}

/* ==================== RESPONSIVE ==================== */

@media (max-width: 768px) {
    .btn,
    button,
    a.btn {
        padding: 0.625rem 1rem !important;
        font-size: 0.875rem !important;
    }
    
    .btn-sm,
    button.sm {
        padding: 0.375rem 0.75rem !important;
        font-size: 0.75rem !important;
    }
}

/* ==================== FIX PARA BOTÕES ESPECÍFICOS ==================== */

/* Botão "Sair" no header */
button[onclick*="logout"],
a[onclick*="logout"] {
    background: transparent !important;
    border: 1.5px solid var(--gray-300, #d4d4d4) !important;
    color: var(--text-primary, #111827) !important;
}

button[onclick*="logout"]:hover,
a[onclick*="logout"]:hover {
    background: var(--bg-hover, #f5f5f5) !important;
    border-color: var(--gray-900, #171717) !important;
}

/* Botões de modal */
.modal-footer .btn,
.modal-footer button {
    min-width: 100px !important;
}

/* Botões de filtro */
button[onclick*="applyFilter"],
button[onclick*="clearFilter"] {
    height: 40px !important;
}

