/**
 * Öffentliches Buchungsformular: Kalender-Widget + Formular-Layout.
 * Ergänzt fwb-shared.css (Design-Tokens, Karten, Buttons, Formularfelder).
 */

.fwb-formular {
	max-width: 620px;
	margin: 0 auto;
	padding-bottom: 100px; /* Platz für die fixierte Live-Vorschau-Leiste */
}

.fwb-zeitraum-anzeige {
	text-align: center;
	font-weight: 600;
	color: var( --fwb-text );
	margin-top: -8px;
}

.fwb-trenner {
	border: none;
	border-top: 2px solid var( --fwb-border );
	margin: 28px 0 20px;
}

.fwb-honeypot {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Kalender */

.fwb-kalender-kopf {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-weight: 700;
	margin-bottom: 12px;
}

.fwb-kalender-monate {
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
}

.fwb-kalender-monat {
	flex: 1 1 260px;
	min-width: 260px;
}

.fwb-kalender-monatstitel {
	text-align: center;
	font-weight: 700;
	font-size: 0.9em;
	color: var( --fwb-text-muted );
	margin-bottom: 8px;
}

.fwb-kalender-grid {
	display: grid;
	grid-template-columns: repeat( 7, 1fr );
	gap: 4px;
	text-align: center;
}

.fwb-kalender-wochentag {
	font-size: 0.78em;
	font-weight: 600;
	color: var( --fwb-text-muted );
	padding: 4px 0;
}

.fwb-kalender-tag {
	padding: 8px 0;
	border-radius: 8px;
	cursor: pointer;
	font-size: 0.9em;
	color: var( --fwb-text );
	/* frei = leichter grüner Ton, klar unterscheidbar von gebuchten Tagen */
	background: rgba( 63, 115, 85, 0.08 );
}

.fwb-kalender-tag:not( .leer ):not( .gesperrt ):not( .vergangen ):not( .start ):not( .ende ):not( .im-bereich ):hover {
	background: rgba( 63, 115, 85, 0.18 );
}

.fwb-kalender-tag.leer {
	cursor: default;
	background: none;
}

/* Vergangene Tage: nur nicht mehr wählbar, KEINE "gebucht"-Optik */
.fwb-kalender-tag.vergangen {
	background: none;
	color: var( --fwb-border );
	cursor: not-allowed;
}

.fwb-kalender-tag.gesperrt {
	background: rgba( 178, 58, 46, 0.14 );
	color: var( --fwb-danger );
	text-decoration: line-through;
	cursor: not-allowed;
}

.fwb-kalender-tag.im-bereich {
	background: rgba( 228, 134, 58, 0.22 );
}

.fwb-kalender-tag.start,
.fwb-kalender-tag.ende {
	background: var( --fwb-primary );
	color: #fff;
	font-weight: 700;
}

/* Legende unter dem Kalender */

.fwb-kalender-legende {
	display: flex;
	gap: 18px;
	justify-content: center;
	flex-wrap: wrap;
	margin: 4px 0 16px;
	font-size: 0.82em;
	color: var( --fwb-text-muted );
}

.fwb-legende-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.fwb-legende-swatch {
	display: inline-block;
	width: 12px;
	height: 12px;
	border-radius: 4px;
}

.fwb-legende-swatch.frei {
	background: rgba( 63, 115, 85, 0.35 );
}

.fwb-legende-swatch.gesperrt {
	background: rgba( 178, 58, 46, 0.35 );
}

.fwb-legende-swatch.ausgewaehlt {
	background: var( --fwb-primary );
}
