/* Small utility set - layout glue only, components live in /components */
.u-flex {
    display: flex;
}

.u-items-center {
    align-items: center;
}

.u-justify-between {
    justify-content: space-between;
}

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

.u-grow {
    flex: 1 1 auto;
}

.u-gap-xs { gap: var(--spacing-xs); }
.u-gap-sm { gap: var(--spacing-sm); }
.u-gap-md { gap: var(--spacing-md); }
.u-gap-lg { gap: var(--spacing-lg); }

.u-mt-sm { margin-block-start: var(--spacing-sm); }
.u-mt-md { margin-block-start: var(--spacing-md); }
.u-mt-lg { margin-block-start: var(--spacing-lg); }

.u-text-center {
    text-align: center;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.app-icon {
    flex: none;
    stroke-width: 2;
}

@keyframes app-spin {
    to { transform: rotate(360deg); }
}

.app-icon--spin {
    animation: app-spin 0.9s linear infinite;
}
