.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 10px 20px; font-size: 0.875rem; font-weight: 500;
  border: 1px solid transparent; border-radius: var(--radius-sm);
  transition: all 0.2s var(--transition); white-space: nowrap;
  -webkit-tap-highlight-color: transparent;
}
.btn:active { transform: scale(0.97); }
.btn-primary { background: linear-gradient(135deg, var(--primary), var(--primary-accent)); color: #fff; }
.btn-primary:hover { box-shadow: 0 0 30px rgba(99, 102, 241, 0.3); }
.btn-success { background: var(--success); color: #fff; }
.btn-success:hover { box-shadow: 0 0 20px rgba(16, 185, 129, 0.3); }
.btn-danger { background: var(--danger); color: #fff; }
.btn-danger:hover { box-shadow: 0 0 20px rgba(239, 68, 68, 0.3); }
.btn-ghost { background: transparent; border: 1px solid var(--border); color: var(--text); }
.btn-ghost:hover { border-color: var(--primary); color: var(--primary); }
.btn-sm { padding: 6px 14px; font-size: 0.813rem; }
.btn-lg { padding: 14px 28px; font-size: 1rem; }
.btn-block { width: 100%; }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }
