/* ===== Page wrapper ===== */
.wrap {
	width: min(calc(100% - var(--page-gutter) - var(--page-gutter)), var(--page-width));
	max-width: var(--page-width);
	margin: 0 auto;
	padding: 20px 0 28px;
}

/* ===== Generic layout grids ===== */
.layout-grid,
.layout-full,
.layout-halves,
.layout-quarters {
	display: grid;
	gap: var(--layout-gap);
}

.layout-full {
	grid-template-columns: minmax(0, 1fr);
}

.layout-halves {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.layout-quarters {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.layout-span-full {
	grid-column: 1 / -1;
}

.layout-span-half {
	grid-column: span 2;
}

.layout-span-quarter {
	grid-column: span 1;
}

/* ===== Section / form cards ===== */
.section-card,
.form-card {
	display: grid;
	gap: 12px;
	margin-bottom: 18px;
}


.section-card h2,
.form-card h2 {
	margin: 0;
	font-size: 1.05rem;
}

.section-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	flex-wrap: wrap;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--line);
}

.section-head h2 {
	margin: 0;
}

/* ===== Form grid ===== */
.form-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 10px;
}

.form-grid label,
.field label,
.editor-field,
.run-timer label {
	display: grid;
	gap: 6px;
	font-size: 0.88rem;
	color: var(--muted);
}

.form-grid input,
.form-grid select {
	width: 100%;
	padding: 8px 10px;
}

/* ===== Responsive ===== */
@media (max-width: 900px) {
	.layout-halves,
	.layout-quarters {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.layout-span-half,
	.layout-span-quarter {
		grid-column: span 1;
	}
}

@media (max-width: 760px) {
	.section-head {
		flex-direction: column;
		align-items: flex-start;
	}
}

@media (max-width: 620px) {
	:root {
		--page-gutter: 12px;
	}

	.layout-halves,
	.layout-quarters {
		grid-template-columns: minmax(0, 1fr);
	}
}
