.btn-primary {
  background: var(--color-primary);
  border-color: var(--color-primary);
  font-weight: 600;
  border-radius: var(--radius-control);
  padding: 0.5rem 0.875rem;
  transition: background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.btn-primary:hover {
  background: var(--color-primary-hover);
  border-color: var(--color-primary-hover);
}

.btn-outline-primary {
  border-color: var(--color-primary);
  color: var(--color-primary-text);
  font-weight: 500;
  border-radius: var(--radius-control);
}

.btn-outline-primary:hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

.btn-outline-dark {
  border-color: var(--gray-300);
  color: var(--gray-700);
  font-weight: 500;
  border-radius: var(--radius-control);
}

.btn-outline-dark:hover {
  background: var(--brand-black);
  border-color: var(--brand-black);
  color: #fff;
}

.btn:focus, .btn:active:focus, .form-control:focus, .form-check-input:focus, .form-select:focus {
  box-shadow: var(--focus-ring);
  border-color: var(--brand-blue-light);
}

.btn-pulse {
  animation: pulse 1.5s infinite;
}

@keyframes pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(82, 113, 255, 0.4); }
  50% { box-shadow: 0 0 0 8px rgba(82, 113, 255, 0); }
}
