/* ═══ 7. UTILITIES ═══ */

/* ═══════════════════════════════════════════════════
   UTILITY CLASSES
   Používej v šablonách místo inline style=""
   Hodnoty odkazují na tokeny z tokens.css
   ═══════════════════════════════════════════════════ */

/* ── Flex layout ── */
.flex-row {
	display: flex;
	align-items: center;
}
.flex-col {
	display: flex;
	flex-direction: column;
}
.flex-between {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.flex-center {
	display: flex;
	align-items: center;
	justify-content: center;
}
.flex-end {
	display: flex;
	justify-content: flex-end;
}
.flex-wrap {
	flex-wrap: wrap;
}
.flex-grow {
	flex-grow: 1;
}
.flex-1 {
	flex: 1;
}
.justify-center {
	justify-content: center;
}
.w-full {
	width: 100%;
}
.break-all {
	word-break: break-all;
}

/* ── Gap ── */
.gap-xs {
	gap: var(--space-xs);
}
.gap-sm {
	gap: var(--space-sm);
}
.gap-md {
	gap: var(--space-md);
}
.gap-lg {
	gap: var(--space-lg);
}

/* ── Text alignment ── */
.text-left {
	text-align: left;
}
.text-center {
	text-align: center;
}
.text-right {
	text-align: right;
}

/* ── Margin ── */
.mt-xs {
	margin-top: var(--space-xs);
}
.mt-sm {
	margin-top: var(--space-sm);
}
.mt-md {
	margin-top: var(--space-md);
}
.mt-lg {
	margin-top: var(--space-lg);
}
.mt-xl {
	margin-top: var(--space-xl);
}
.mt-2xl {
	margin-top: var(--space-2xl);
}
.mb-0 {
	margin-bottom: 0;
}
.mb-xs {
	margin-bottom: var(--space-xs);
}
.mb-sm {
	margin-bottom: var(--space-sm);
}
.mb-md {
	margin-bottom: var(--space-md);
}
.mb-lg {
	margin-bottom: var(--space-lg);
}
.mb-xl {
	margin-bottom: var(--space-xl);
}
.mb-2xl {
	margin-bottom: var(--space-2xl);
}
.mx-auto {
	margin-left: auto;
	margin-right: auto;
}

/* ── Font size ── */
.text-sm {
	font-size: var(--text-sm);
}
.text-md {
	font-size: var(--text-md);
}
.text-xl {
	font-size: var(--text-xl);
}

/* ── Font weight ── */
.font-medium {
	font-weight: 500;
}
.text-bold {
	font-weight: 600;
}
.text-underline {
	text-decoration: underline;
}

/* ── Text color ── */
.text-muted {
	color: var(--color-text-muted);
}
.text-primary {
	color: var(--color-primary);
}
.text-danger {
	color: var(--color-red);
}
.text-success {
	color: var(--color-success);
}
.text-steel {
	color: var(--color-steel);
}

/* ── Display ── */
/* Musí přebít i inline style="display:..." */
.hidden {
	display: none !important;
}

/* ── Border ── */
.border-top {
	border-top: 1px solid var(--color-silver);
}

/* ── Width ── */
.w-full {
	width: 100%;
}
.max-w-sm {
	max-width: 400px;
}
.max-w-md {
	max-width: 600px;
}
.max-w-lg {
	max-width: 700px;
}

/* ── Misc ── */
.cursor-pointer {
	cursor: pointer;
}
.whitespace-nowrap {
	white-space: nowrap;
}
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}
