/* ============================================================================
 * V15 · Aurora Noir — Utilities (atomic helpers)
 * ==========================================================================*/
/* layout */
.u-flex { display: flex; }
.u-iflex { display: inline-flex; }
.u-col { flex-direction: column; }
.u-center { align-items: center; justify-content: center; }
.u-aic { align-items: center; }
.u-jcb { justify-content: space-between; }
.u-jce { justify-content: flex-end; }
.u-wrap { flex-wrap: wrap; }
.u-1 { flex: 1; min-width: 0; }
.u-shrink0 { flex-shrink: 0; }
.u-rel { position: relative; }
.u-hidden { display: none !important; }
.u-block { display: block; }

/* gaps */
.u-g1 { gap: 4px; } .u-g2 { gap: 8px; } .u-g3 { gap: 12px; } .u-g4 { gap: 16px; }

/* spacing */
.u-mt1 { margin-top: 4px; } .u-mt2 { margin-top: 8px; } .u-mt3 { margin-top: 12px; } .u-mt4 { margin-top: 16px; } .u-mt6 { margin-top: 24px; }
.u-mb2 { margin-bottom: 8px; } .u-mb3 { margin-bottom: 12px; } .u-mb4 { margin-bottom: 16px; }
.u-mx4 { margin-left: 16px; margin-right: 16px; }
.u-p4 { padding: 16px; } .u-p5 { padding: 20px; }
.u-px4 { padding-left: 16px; padding-right: 16px; }

/* text */
.u-txt { color: var(--v15-txt); } .u-txt2 { color: var(--v15-txt-2); } .u-txt3 { color: var(--v15-txt-3); }
.u-a1 { color: var(--v15-a1); } .u-a2 { color: var(--v15-a2); } .u-a3 { color: var(--v15-a3); }
.u-up { color: var(--v15-up); } .u-down { color: var(--v15-down); } .u-gold { color: var(--v15-gold); }
.u-grad { background: var(--v15-aurora); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.u-center-t { text-align: center; }
.u-right { text-align: right; }
.u-bold { font-weight: 800; }
.u-w700 { font-weight: 700; }
.u-fs-xs { font-size: var(--v15-fs-xs); } .u-fs-sm { font-size: var(--v15-fs-sm); } .u-fs-lg { font-size: var(--v15-fs-lg); } .u-fs-xl { font-size: var(--v15-fs-xl); } .u-fs-2xl { font-size: var(--v15-fs-2xl); }
.u-up-case { text-transform: uppercase; letter-spacing: 0.6px; }
.u-tnum { font-variant-numeric: tabular-nums; }
.u-ellip { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.u-clamp2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* surface helpers */
.u-card-line { border: 1px solid var(--v15-line); border-radius: var(--v15-r-md); }
.u-divider { height: 1px; background: var(--v15-line); margin: 16px 0; }
.u-divider-dash { height: 1px; background: repeating-linear-gradient(90deg, var(--v15-line) 0 6px, transparent 6px 12px); margin: 14px 0; }
