/* ===========================================================================
   StayIn utilities — small single-purpose helpers.
   =========================================================================== */

.u-stack-sm   > * + * { margin-block-start: var(--space-2); }
.u-stack      > * + * { margin-block-start: var(--space-4); }
.u-stack-lg   > * + * { margin-block-start: var(--space-6); }

.u-row        { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; }
.u-row--between { justify-content: space-between; }
.u-row--end     { justify-content: flex-end; }

.u-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-4); }
.u-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-4); }

@media (max-width: 860px) {
    .u-grid-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 520px) {
    .u-grid-2, .u-grid-4 { grid-template-columns: 1fr; }
}

.u-text-muted { color: var(--text-muted); }
.u-text-faint { color: var(--text-faint); }
.u-text-sm    { font-size: var(--text-sm); }
.u-text-xs    { font-size: var(--text-xs); }
.u-bold       { font-weight: 700; }

.u-mt-0 { margin-block-start: 0; }
.u-mb-0 { margin-block-end: 0; }
.u-mt-2 { margin-block-start: var(--space-2); }
.u-mt-4 { margin-block-start: var(--space-4); }
.u-mt-6 { margin-block-start: var(--space-6); }
.u-mb-2 { margin-block-end: var(--space-2); }
.u-mb-4 { margin-block-end: var(--space-4); }

.u-hide-mobile { display: initial; }
@media (max-width: 720px) {
    .u-hide-mobile { display: none !important; }
}

.u-measure { max-width: 65ch; }
.u-tabular { font-variant-numeric: tabular-nums; }
.u-text-balance { text-wrap: balance; }
