/* Requires tokens.css. A small control vocabulary, not a layout framework. */
.ah-action {
  display: inline-flex; align-items: center; justify-content: center; gap: 1rem;
  min-height: var(--ah-control-height); padding: .75rem 1rem;
  border: 1px solid transparent; border-radius: var(--ah-radius-control);
  font-family: var(--ah-font); font-size: 1rem; font-weight: var(--ah-weight-action);
  line-height: 1.4; text-decoration: none; cursor: pointer;
  transition: background-color var(--ah-duration-fast) var(--ah-ease), border-color var(--ah-duration-fast) var(--ah-ease);
}
.ah-action-primary { background: var(--ah-emerald); color: var(--ah-ink); }
.ah-action-secondary { background: transparent; color: inherit; border-color: var(--ah-control-border); }
.ah-link { color: var(--ah-link); text-underline-offset: .22em; font-weight: var(--ah-weight-action); }
.ah-dark .ah-link { color: var(--ah-emerald); }
.ah-field {
  box-sizing: border-box; width: 100%; min-height: var(--ah-control-height);
  padding: .75rem 1rem; font: 400 1rem/1.4 var(--ah-font);
  color: var(--ah-ink); background: var(--ah-surface);
  border: 1px solid var(--ah-control-border); border-radius: var(--ah-radius-control);
}
.ah-field[aria-invalid="true"] { border-color: var(--ah-error); }
.ah-field[readonly] { background: var(--ah-bone); }
.ah-field:disabled, .ah-action:disabled { opacity: .55; cursor: not-allowed; }
.ah-action:focus-visible, .ah-field:focus-visible, .ah-link:focus-visible {
  outline: 3px solid var(--ah-focus); outline-offset: 4px;
}
.ah-action-primary:active:not(:disabled) { background: var(--ah-action-pressed); }
@media (hover: hover) {
  .ah-action-primary:hover:not(:disabled) { background: var(--ah-action-hover); }
  .ah-action-secondary:hover:not(:disabled) { border-color: currentColor; }
}
@media (prefers-reduced-motion: reduce) {
  .ah-action { transition: none; }
}
