/* Categoria: fundamentos. utilities; composição e estados deste módulo. */
/* Utilitários pequenos e composáveis; espaçamentos usam os tokens do projeto. */
.u-mt-0 {
    margin-block-start: 0;
}

.u-mt-1 {
    margin-block-start: var(--space-1);
}

.u-mt-2 {
    margin-block-start: var(--space-2);
}

.u-mt-3 {
    margin-block-start: var(--space-3);
}

.u-mt-4 {
    margin-block-start: var(--space-4);
}

.u-mt-5 {
    margin-block-start: var(--space-5);
}

.u-mt-6 {
    margin-block-start: var(--space-6);
}

.u-mt-8 {
    margin-block-start: var(--space-8);
}

.u-mt-12 {
    margin-block-start: var(--space-12);
}

.u-mt-16 {
    margin-block-start: var(--space-16);
}

.u-mt-24 {
    margin-block-start: var(--space-24);
}

.u-mb-0 {
    margin-block-end: 0;
}

.u-mb-1 {
    margin-block-end: var(--space-1);
}

.u-mb-2 {
    margin-block-end: var(--space-2);
}

.u-mb-3 {
    margin-block-end: var(--space-3);
}

.u-mb-4 {
    margin-block-end: var(--space-4);
}

.u-mb-5 {
    margin-block-end: var(--space-5);
}

.u-mb-6 {
    margin-block-end: var(--space-6);
}

.u-mb-8 {
    margin-block-end: var(--space-8);
}

.u-mb-12 {
    margin-block-end: var(--space-12);
}

.u-mb-16 {
    margin-block-end: var(--space-16);
}

.u-mb-24 {
    margin-block-end: var(--space-24);
}

/* Layout */
.u-grid { display: grid; }
.u-flex { display: flex; }
.u-flex-col { flex-direction: column; }
.u-flex-wrap { flex-wrap: wrap; }
.u-flex-nowrap { flex-wrap: nowrap; }
.u-flex-none { flex: none; }
.u-flex-1 { flex: 1 1 0%; }
.u-items-start { align-items: flex-start; }
.u-items-center { align-items: center; }
.u-items-end { align-items: flex-end; }
.u-content-start { align-content: start; }
.u-justify-start { justify-content: flex-start; }
.u-justify-center { justify-content: center; }
.u-justify-between { justify-content: space-between; }
.u-justify-end { justify-content: flex-end; }
.u-list-none { list-style: none; }
.u-list-disc { list-style: disc; }
.u-grid-cols-1 { grid-template-columns: minmax(0, 1fr); }
.u-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.u-grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.u-grid-auto-fit { grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.u-gap-0 { gap: 0; }
.u-gap-1 { gap: var(--space-1); }
.u-gap-2 { gap: var(--space-2); }
.u-gap-3 { gap: var(--space-3); }
.u-gap-4 { gap: var(--space-4); }
.u-gap-5 { gap: var(--space-5); }
.u-gap-6 { gap: var(--space-6); }

/* Sizing and spacing */
.u-w-full { width: 100%; }
.u-w-auto { width: auto; }
.u-max-w-full { max-width: 100%; }
.u-max-w-wide { max-width: var(--layout-wide); }
.u-max-w-form { max-width: var(--layout-form); }
.u-min-w-0 { min-width: 0; }
.u-mx-auto { margin-inline: auto; }
.u-m-0 { margin: 0; }
.u-p-2 { padding: var(--space-2); }
.u-p-0 { padding: 0; }
.u-p-3 { padding: var(--space-3); }
.u-p-4 { padding: var(--space-4); }
.u-p-5 { padding: var(--space-5); }
.u-px-2 { padding-inline: var(--space-2); }
.u-px-3 { padding-inline: var(--space-3); }
.u-px-4 { padding-inline: var(--space-4); }
.u-pr-2 { padding-inline-end: var(--space-2); }
.u-py-1 { padding-block: var(--space-1); }
.u-py-2 { padding-block: var(--space-2); }
.u-py-3 { padding-block: var(--space-3); }
.u-py-4 { padding-block: var(--space-4); }
.u-pt-2 { padding-block-start: var(--space-2); }
.u-pb-3 { padding-block-end: var(--space-3); }
.u-pb-4 { padding-block-end: var(--space-4); }
.u-min-h-control { min-height: var(--control-height); }
.u-min-h-editor { min-height: var(--editor-min-height); }

/* Surface and borders */
.u-border { border: var(--border-width) solid var(--line); }
.u-border-b { border-block-end: var(--border-width) solid var(--line); }
.u-border-r { border-inline-end: var(--border-width) solid var(--line); }
.u-border-left-emphasis { border-inline-start: var(--border-emphasis-width) solid var(--forest); }
.u-rounded { border-radius: var(--radius); }
.u-rounded-full { border-radius: var(--radius-pill); }
.u-bg-cream { background: var(--cream); }
.u-bg-sand { background: var(--sand); }
.u-bg-sage { background: var(--surface-sage); }
.u-bg-highlight { background: var(--surface-highlight); }
.u-text-ink { color: var(--ink); }
.u-text-muted { color: var(--muted); }
.u-text-forest { color: var(--forest); }
.u-text-white { color: var(--white); }
.u-text-danger { color: var(--action-danger-bg); }

/* Type and text */
.u-font-display { font-family: var(--font-display); }
.u-font-medium { font-weight: 500; }
.u-font-semibold { font-weight: 600; }
.u-font-bold { font-weight: 700; }
.u-text-xs { font-size: var(--text-xs); }
.u-text-sm { font-size: var(--text-sm); }
.u-text-base { font-size: var(--text-base); }
.u-text-lg { font-size: var(--text-lg); }
.u-text-xl { font-size: var(--text-xl); }
.u-text-2xl { font-size: var(--text-2xl); }
.u-leading-normal { line-height: var(--line-height-normal); }
.u-leading-relaxed { line-height: var(--line-height-relaxed); }
.u-text-center { text-align: center; }
.u-text-start { text-align: start; }
.u-text-end { text-align: end; }
.u-text-justify { text-align: justify; }
.u-break-words { overflow-wrap: anywhere; }
.u-no-underline { text-decoration: none; }
.u-nowrap { white-space: nowrap; }
.u-overflow-hidden { overflow: hidden; }
.u-overflow-x-auto { overflow-x: auto; }
.u-focus-ring:focus-visible { outline: var(--focus-width) solid var(--focus-on-light); outline-offset: var(--focus-offset); }

@media (max-width: 700px) {
    .u-sm-grid-cols-1 { grid-template-columns: minmax(0, 1fr); }
    .u-sm-flex { display: flex; }
    .u-sm-flex-col { flex-direction: column; }
    .u-sm-flex-wrap { flex-wrap: wrap; }
    .u-sm-items-start { align-items: flex-start; }
    .u-sm-items-center { align-items: center; }
    .u-sm-justify-start { justify-content: flex-start; }
    .u-sm-overflow-x-auto { overflow-x: auto; }
    .u-sm-basis-full { flex-basis: 100%; }
}
