.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
  padding: 10px 18px; border-radius: var(--radius-sm); font-weight: 600; font-size: var(--fs-sm);
  transition: background var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
  white-space: nowrap;
}
.btn:active { transform: translateY(1px); }
.btn-primary { background: var(--color-navy-800); color: #fff; box-shadow: 0 1px 2px rgba(6, 35, 29, 0.18); }
.btn-primary:hover { background: var(--color-navy-900); box-shadow: 0 4px 10px rgba(6, 35, 29, 0.28); }
.btn-accent { background: linear-gradient(180deg, var(--color-teal-500), var(--color-teal-600)); color: #fff; box-shadow: 0 1px 2px rgba(14, 156, 121, 0.25); }
.btn-accent:hover { box-shadow: 0 6px 16px rgba(14, 156, 121, 0.35); filter: brightness(1.03); }
.btn-outline { background: transparent; border: 1px solid var(--color-border); color: var(--color-text-primary); }
.btn-outline:hover { background: var(--color-bg); border-color: var(--color-teal-500); }
.btn-danger { background: var(--color-critical); color: #fff; }
.btn-danger:hover { filter: brightness(1.08); }
.btn-ghost { background: transparent; color: var(--color-text-secondary); }
.btn-ghost:hover { background: var(--color-bg); }
.btn-sm { padding: 6px 12px; font-size: var(--fs-xs); }
.btn-icon { padding: 8px; border-radius: var(--radius-sm); }
.btn-icon svg { width: 18px; height: 18px; }
.btn:disabled { opacity: 0.5; pointer-events: none; }
