/* ═══════════════════════════════════════════════════════════════════════════
   VALIDURE ERP — utilities (deliberately small)          owner: UI Designer
   Pages should compose components and layout primitives first. These exist
   for the last 5%: an alignment, a quiet colour, a gap. Utilities win over
   components by design (loaded after them), so use them sparingly.
   ═══════════════════════════════════════════════════════════════════════════ */

/* text alignment */
.text-left { text-align: left !important; }
.text-center { text-align: center !important; }
.text-right { text-align: right !important; }

/* text colour & weight */
.muted { color: var(--e-muted) !important; }
.faint { color: var(--e-faint) !important; }
.text-ok { color: var(--e-ok-fg) !important; }
.text-warn { color: var(--e-warn-fg) !important; }
.text-err { color: var(--e-err-fg) !important; }
.text-info { color: var(--e-info-fg) !important; }.strong { font-weight: var(--fw-semibold) !important; }
.text-sm { font-size: var(--fs-sm) !important; }
.text-xs { font-size: var(--fs-xs) !important; }
.mono { font-family: var(--font-mono) !important; font-size: 0.92em; }
.tabular { font-variant-numeric: tabular-nums !important; }

/* wrapping */
.nowrap { white-space: nowrap !important; }
.truncate { overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; min-width: 0; }

/* gap helpers — for any flex/grid container */
.gap-1 { gap: var(--sp-1) !important; }
.gap-2 { gap: var(--sp-2) !important; }
.gap-3 { gap: var(--sp-3) !important; }
.gap-4 { gap: var(--sp-4) !important; }
.gap-6 { gap: var(--sp-6) !important; }

/* flow spacing reset */
.m-0 { margin: 0 !important; }
.mt-0 { margin-top: 0 !important; }
.ml-auto { margin-left: auto !important; }
.w-full { width: 100% !important; }

/* accessibility */
.visually-hidden:not(:focus):not(:active) {
  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;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
