:root {
	--page-bg-start: #f4f7fb;
	--page-bg-end: #eef2f7;
	--surface-color: #ffffff;
	--surface-muted: #f8fafc;
	--text-strong: #1f2937;
	--text-muted: #5b6472;
	--border-soft: #d9e2ec;
	--brand-500: #1f6feb;
	--brand-600: #175cc3;
	--focus-ring: rgba(31, 111, 235, 0.2);
	--radius-lg: 1rem;
	--radius-md: 0.75rem;
	--shadow-soft: 0 12px 32px rgba(15, 23, 42, 0.08);
}

body {
	min-height: 100vh;
	color: var(--text-strong);
	background: linear-gradient(160deg, var(--page-bg-start), var(--page-bg-end));
}

.form-wrapper {
	max-width: 48rem;
}

.form-shell {
	background: var(--surface-color);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-soft);
}

.form-section {
	padding: 1rem;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
	background: var(--surface-muted);
}

.form-section-title {
	margin-bottom: 0.875rem;
	color: var(--text-strong);
}

.form-inline-label {
	color: var(--text-muted);
	font-weight: 500;
}

.form-note {
	color: var(--text-muted);
	font-size: 0.925rem;
}

.form-control,
.form-select {
	border-color: var(--border-soft);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
	border-color: var(--brand-500);
	box-shadow: 0 0 0 0.25rem var(--focus-ring);
}

.form-check-input:checked {
	background-color: var(--brand-500);
	border-color: var(--brand-500);
}

.transport-option-note {
	display: none;
	margin-top: 0.45rem;
	padding: 0.5rem 0.65rem;
	margin-left: 1.0rem;
	font-size: 0.9rem;
	line-height: 1.35;
	color: var(--text-muted);
	background-color: #ffffff;
	border: 1px solid var(--border-soft);
	border-radius: 0.5rem;
}

.form-check-input:checked ~ .transport-option-note {
	display: block;
}

.sleep-requirements {
	display: none;
	margin-top: 0.65rem;
	margin-left: 1rem;
  margin-bottom: 0.65rem;
}

#schlafmodus_huettenschlafplatz:checked ~ .sleep-requirements {
	display: block;
}

.btn-primary {
	background-color: var(--brand-500);
	border-color: var(--brand-500);
}

.btn-primary:hover,
.btn-primary:focus-visible {
	background-color: var(--brand-600);
	border-color: var(--brand-600);
}
