/* Botões */
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 12px 20px; border-radius: var(--radius-sm); font-size: 14px;
    font-weight: 600; cursor: pointer; border: 1px solid transparent; transition: var(--transition-fast);
}
.btn:active { transform: scale(0.97); }
.btn:disabled { opacity: 0.6; cursor: not-allowed; }

.btn-primary { background-color: var(--primary); color: white; }
.btn-primary:hover { background-color: var(--primary-hover); transform: translateY(-1px); box-shadow: var(--shadow-md); }
.btn-orange { background-color: var(--orange); color: white; }
.btn-orange:hover { background-color: var(--orange-hover); transform: translateY(-1px); box-shadow: var(--shadow-md); }
.btn-success { background-color: var(--success); color: white; }
.btn-danger { background-color: var(--danger); color: white; }
.btn-secondary { background-color: var(--surface); color: var(--text-secondary); border-color: var(--border-medium); }
.btn-secondary:hover { background-color: var(--surface-hover); color: var(--text-main); }
.btn-sm { padding: 6px 12px; font-size: 12px; }

/* Formulários */
.input-group { margin-bottom: 20px; }
.input-group label { display: block; font-size: 12px; font-weight: 700; color: var(--text-secondary); margin-bottom: 8px; text-transform: uppercase; }
.form-control { 
    width: 100%; padding: 12px 16px; border: 1px solid var(--border-medium); 
    border-radius: var(--radius-sm); font-size: 14px; transition: var(--transition-fast); 
    background: var(--surface); color: var(--text-main);
}
.form-control:focus { border-color: var(--orange); box-shadow: 0 0 0 3px var(--orange-light); }

/* Badges (Etiquetas de Status) */
.badge {
    display: inline-flex; align-items: center; padding: 4px 10px;
    border-radius: 50px; font-size: 11px; font-weight: 700; text-transform: uppercase; white-space: nowrap;
}
.badge::before { content: ''; width: 6px; height: 6px; border-radius: 50%; margin-right: 6px; }
.badge-warning { background: var(--warning-bg); color: #B45309; }
.badge-warning::before { background: var(--warning); }
.badge-info { background: var(--info-bg); color: #1D4ED8; }
.badge-info::before { background: var(--info); }
.badge-success { background: var(--success-bg); color: #047857; }
.badge-success::before { background: var(--success); }
.badge-danger { background: var(--danger-bg); color: #B91C1C; }
.badge-danger::before { background: var(--danger); }
.badge-gray { background: var(--gray-bg); color: var(--text-secondary); border: 1px solid var(--border-dark); }
.badge-gray::before { background: var(--gray); }

/* Toasts (Notificações) */
#toast { 
    position: fixed; top: 20px; left: 50%; transform: translateX(-50%) translateY(-150px); 
    background: var(--text-main); color: white; padding: 14px 24px; border-radius: 50px; 
    font-size: 14px; font-weight: 600; z-index: 100000; transition: 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); 
    display: flex; align-items: center; gap: 10px; box-shadow: var(--shadow-lg); white-space: nowrap;
}
#toast.show { transform: translateX(-50%) translateY(0); }
#toast.toast-error { background: var(--danger); }
#toast svg { width: 20px; height: 20px; fill: currentColor; }

/* Modais */
.modal-overlay {
    position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
    background: rgba(15, 23, 42, 0.75); backdrop-filter: blur(4px); z-index: 10000; 
    display: none; align-items: center; justify-content: center; opacity: 0; transition: 0.3s;
}
.modal-overlay.open { display: flex; opacity: 1; }
.modal-card {
    background: var(--surface); width: 95%; max-width: 600px; border-radius: var(--radius-lg); 
    box-shadow: var(--shadow-modal); display: flex; flex-direction: column; max-height: 90vh;
    transform: scale(0.95); transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.modal-overlay.open .modal-card { transform: scale(1); }