/* ==========================================================================
   utilities.css  —  .u-* single-purpose helpers (v1.0.0)
   Loaded LAST so a utility can intentionally win the cascade.
   ========================================================================== */

/* visibility */
.u-hidden { display: none !important; }
.u-sr-only {
  position: absolute !important; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
@media (max-width: 1024px) { .u-hide-mobile { display: none !important; } }
@media (min-width: 1025px) { .u-hide-desktop { display: none !important; } }

/* text */
.u-text-center { text-align: center; }
.u-text-muted  { color: var(--color-text-muted); }
.u-text-subtle { color: var(--color-text-subtle); }
.u-text-brand  { color: var(--brand-strong); }
.u-text-danger { color: var(--status-danger); }
.u-text-sm { font-size: var(--fs-sm); }
.u-text-xs { font-size: var(--fs-xs); }
.u-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.u-semibold { font-weight: var(--fw-semibold); }

/* spacing helpers (gap/margin owned by layout, but occasional one-offs) */
.u-mt-2 { margin-top: var(--space-2); }
.u-mt-4 { margin-top: var(--space-4); }
.u-mt-5 { margin-top: var(--space-5); }
.u-mb-4 { margin-bottom: var(--space-4); }

/* layout one-offs */
.u-flex { display: flex; }
.u-flex-1 { flex: 1; }
.u-items-center { align-items: center; }
.u-gap-2 { gap: var(--space-2); }
.u-gap-3 { gap: var(--space-3); }
.u-ml-auto { margin-left: auto; }
.u-full { width: 100%; }

/* surface helpers */
.u-rounded { border-radius: var(--radius-md); }
.u-bg-surface-2 { background: var(--color-surface-2); }
