/* Small single-purpose helpers and global focus/selection styles. */

/* Visible, consistent focus for keyboard users everywhere. */
:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

::selection { background: var(--color-accent-wash); color: var(--color-accent-strong); }

/* Screen-reader-only text. */
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

.text-muted { color: var(--color-ink-muted); }
.text-soft  { color: var(--color-ink-soft); }
.text-sm    { font-size: var(--text-sm); }
.text-center { text-align: center; }

.stack > * + * { margin-top: var(--space-sm); }
.stack-lg > * + * { margin-top: var(--space-md); }

.mt-0 { margin-top: 0; }
.mt-sm { margin-top: var(--space-sm); }
.mt-md { margin-top: var(--space-md); }
.mt-lg { margin-top: var(--space-lg); }
.mb-0 { margin-bottom: 0; }

.flex { display: flex; }
.flex-wrap { flex-wrap: wrap; }
.gap-sm { gap: var(--space-sm); }
.items-center { align-items: center; }

.full-bleed-divider { border: none; border-top: var(--border-hairline); }
