/* One action family across modals, forms and lists. Do not mix with legacy .btn classes. */
.ncrm-button,
.ncrm-button:visited {
  --_button-bg: var(--button-secondary-bg);
  --_button-hover: var(--button-secondary-hover);
  --_button-active: var(--button-secondary-active);
  --_button-text: var(--button-secondary-text);
  --_button-border: var(--button-secondary-border);
  /* Keep the secondary outline visible over its pale interactive surfaces. */
  --_button-hover-border: var(--button-secondary-border);
  --_button-active-border: var(--button-secondary-border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  box-sizing: border-box;
  min-height: 36px;
  max-width: 100%;
  padding: 6px 12px;
  border: 1px solid var(--_button-border);
  border-radius: 999px;
  background: var(--_button-bg);
  color: var(--_button-text);
  font: 400 14px/1.4 var(--font-sans);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease;
}

.ncrm-button--primary,
.ncrm-button--primary:visited {
  --_button-bg: var(--button-primary-bg);
  --_button-hover: var(--button-primary-hover);
  --_button-active: var(--button-primary-active);
  --_button-text: var(--button-primary-text);
  --_button-border: var(--button-primary-bg);
  --_button-hover-border: var(--button-primary-hover);
  --_button-active-border: var(--button-primary-active);
}

.ncrm-button--danger,
.ncrm-button--danger:visited {
  --_button-bg: var(--button-danger-bg);
  --_button-hover: var(--button-danger-hover);
  --_button-active: var(--button-danger-active);
  --_button-text: var(--button-danger-text);
  --_button-border: var(--button-danger-bg);
  --_button-hover-border: var(--button-danger-hover);
  --_button-active-border: var(--button-danger-active);
}

/* Secondary is the quiet default; its explicit modifier documents the action's role. */
.ncrm-button:hover {
  color: var(--_button-text);
  text-decoration: none;
}
.ncrm-button:hover:not(:disabled):not([aria-disabled="true"]):not(.is-loading) {
  background: var(--_button-hover);
  border-color: var(--_button-hover-border);
}
.ncrm-button:active:not(:disabled):not([aria-disabled="true"]):not(.is-loading) {
  background: var(--_button-active);
  border-color: var(--_button-active-border);
}
.ncrm-button:focus-visible {
  outline: 2px solid var(--button-focus-ring);
  outline-offset: 3px;
}
.ncrm-button:disabled:not(.is-loading),
.ncrm-button[aria-disabled="true"]:not(.is-loading) {
  background: var(--button-disabled-bg);
  border-color: var(--button-disabled-border);
  color: var(--button-disabled-text);
  cursor: not-allowed;
  opacity: 1;
  box-shadow: none;
  transition: none;
}
.ncrm-button.is-loading { cursor: wait; }
.ncrm-button > .ui-icon { flex-shrink: 0; }
/* Author-level flex display must not reveal actions hidden by their controller. */
.ncrm-button[hidden] { display: none; }

@media (prefers-reduced-motion: reduce) {
  .ncrm-button { transition: none; }
}
