/* Small native utility layer (issue #113 — drop Bulma).
 *
 * Filled the gap left by Bulma's helper classes. Loaded after pages.css
 * via head_base.html so utilities win the cascade when a component CSS
 * rule and a utility class collide on the same element.
 *
 * Keep this file deliberately small. New utilities go here only when a
 * pattern is repeated across two or more partials; one-offs belong in
 * component CSS.
 */

.is-hidden { display: none !important; }

.is-flex-row { display: flex; }

.is-flex-between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.is-flex-end {
    display: flex;
    justify-content: flex-end;
}

.is-flex-grow-1 { flex-grow: 1; }
.is-flex-1     { flex: 1; }

.is-full-width { width: 100%; }
.is-no-padding { padding: 0; }

.is-text-right { text-align: right; }

/* .is-text-center: empty-state table cells, toast bodies. Never on
 * <h1>/<h2>/<h3> — see slice 117 for the headline left-alignment rule. */
.is-text-center { text-align: center; }

.modal-grid-2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}

.modal-grid-3col {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1.5rem;
}

.has-mt-1 { margin-top: var(--space-1); }
.has-mt-2 { margin-top: var(--space-2); }
.has-mt-3 { margin-top: var(--space-3); }
.has-mt-4 { margin-top: var(--space-4); }
.has-mt-5 { margin-top: var(--space-5); }
.has-mt-6 { margin-top: var(--space-6); }

.has-mb-1 { margin-bottom: var(--space-1); }
.has-mb-2 { margin-bottom: var(--space-2); }
.has-mb-3 { margin-bottom: var(--space-3); }
.has-mb-4 { margin-bottom: var(--space-4); }
.has-mb-5 { margin-bottom: var(--space-5); }
.has-mb-6 { margin-bottom: var(--space-6); }
