/* The one button. Near-black primary; mint is never an action colour. Hover
   lifts 1px and gains shadow, press settles back. */

.button {
  font-family: var(--font-sans);
  font-size: var(--text-base);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-tight);
  line-height: 1;
  padding: 11px 18px;
  border: var(--border-width) solid transparent;
  border-radius: var(--radius);
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  white-space: nowrap;
  transition: var(--transition-control);
}

.button--sm {
  padding: 7px 12px;
  font-size: var(--text-sm);
  border-radius: var(--radius-sm);
}

.button--lg {
  padding: 14px 22px;
  font-size: var(--text-md);
}

.button--primary {
  background: var(--action-primary-bg);
  color: var(--action-primary-fg);
  box-shadow: var(--shadow-sm);
}

.button--primary:hover {
  background: var(--action-primary-bg-hover);
  color: var(--action-primary-fg);
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}

.button--secondary {
  background: var(--action-secondary-bg);
  color: var(--action-secondary-fg);
  border-color: var(--border-strong);
  box-shadow: var(--shadow-xs);
}

.button--secondary:hover {
  border-color: var(--border-selected);
  box-shadow: var(--shadow-sm);
  transform: translateY(-1px);
}

.button--ghost {
  background: transparent;
  color: var(--action-ghost-fg);
}

.button--ghost:hover {
  background: var(--surface-hover);
  color: var(--text-primary);
}

.button--destructive {
  background: transparent;
  color: var(--action-ghost-fg);
}

.button--destructive:hover {
  background: var(--surface-loss);
  color: var(--action-destructive-fg);
}

.button:active:not(:disabled) {
  transform: translateY(0);
  box-shadow: var(--shadow-xs);
}

.button:disabled,
.button--disabled {
  cursor: not-allowed;
  opacity: var(--opacity-disabled);
  box-shadow: none;
  pointer-events: none;
}
