/* NestMint v149.314 — shared interaction, accessibility, and component rules. */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.sr-only:focus {
  position: fixed !important;
  width: auto !important;
  height: auto !important;
  clip: auto !important;
  margin: 0 !important;
  overflow: visible !important;
}

.btn, button, [role="button"] { min-height: 40px; }
.btn-sm { min-height: 38px; }
button[aria-label]:not(.btn), .icon-button { min-width: 40px; min-height: 40px; }
.btn:disabled, button:disabled { cursor: not-allowed; opacity: 0.55; transform: none !important; }

.nm-ui-icon { display: inline-flex; width: 20px; height: 20px; flex: 0 0 20px; align-items: center; justify-content: center; }
.nm-ui-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.nm-ui-icon[aria-hidden="true"] { pointer-events: none; }

[data-theme="dark"] body { background: var(--color-bg); color: var(--color-text); }
[data-theme="dark"] .app-header { background: color-mix(in srgb, var(--color-bg) 88%, transparent); border-color: var(--color-divider); }
[data-theme="dark"] input,
[data-theme="dark"] select,
[data-theme="dark"] textarea { background: var(--color-surface); color: var(--color-text); border-color: var(--color-border); }

@media (pointer: coarse) {
  .btn, .btn-sm, button, [role="button"], input, select { min-height: 44px; }
  button[aria-label]:not(.btn), .icon-button { min-width: 44px; min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
