:root {
    --u-breakpoint-md: 768px;
    --u-breakpoint-lg: 1200px;
}

.u-flex {
    display: flex;
}

.u-flex-col {
    display: flex;
    flex-direction: column;
}

.u-wrap {
    flex-wrap: wrap;
}

.u-inline-flex {
    display: inline-flex;
}

.u-justify-between { justify-content: space-between; }
.u-justify-center { justify-content: center; }
.u-justify-start { justify-content: flex-start; }
.u-justify-end { justify-content: flex-end; }
.u-items-center { align-items: center; }
.u-items-start { align-items: flex-start; }
.u-items-baseline { align-items: baseline; }

.u-gap-3xs { gap: var(--space-3xs); }
.u-gap-2xs { gap: var(--space-2xs); }
.u-gap-xs { gap: var(--space-xs); }
.u-gap-sm { gap: var(--space-sm); }
.u-gap-md { gap: var(--space-md); }
.u-gap-lg { gap: var(--space-lg); }

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

.u-w-full { width: 100%; }
.u-min-w-full { min-width: 100%; }

.u-overflow-auto { overflow: auto; }
.u-overflow-x-auto { overflow-x: auto; }
.u-border-collapse { border-collapse: collapse; }
.u-border-t { border-top: 1px solid var(--color-border); }

.u-text-2xl {
    font-size: 2.5rem;
    line-height: 1.2;
}

.u-grid {
    display: grid;
    gap: var(--space-md);
}

.u-grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }

@media (min-width: 768px) {
    .u-grid-cols-2-md { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1200px) {
    .u-grid-cols-3-lg { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .u-grid-cols-4-lg { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.u-grid-auto-fit-220 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--space-sm);
}
