/* FSV-Kalender – Farben aus theme.json mit Fallback auf die Vereinsfarben. */
.fsvk-liste,
.fsvk-monat,
.fsvk-dialog {
	--fsvk-gruen: var(--wp--preset--color--gruen, #06a784);
	--fsvk-gruen-text: #047a60;
	--fsvk-gelb: var(--wp--preset--color--gelb, #e3a74a);
	--fsvk-text: var(--wp--preset--color--schrift, #242323);
	--fsvk-grau: #5f5955;
	--fsvk-linie: #e6e1dd;
	font-family: var(--wp--preset--font-family--pt-sans, "PT Sans", sans-serif);
	color: var(--fsvk-text);
}

/* Datums-Kachel */
.fsvk-datum {
	flex: none;
	min-width: 44px;
	padding: 4px 2px;
	border-radius: 4px;
	background: var(--fsvk-gruen);
	color: #fff;
	text-align: center;
	line-height: 1.05;
}
.fsvk-datum b {
	display: block;
	font-family: var(--wp--preset--font-family--sarala, "Sarala", sans-serif);
	font-size: 17px;
}
.fsvk-datum small {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.fsvk-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.fsvk-titel {
	font-weight: 700;
	font-size: 14px;
}
.fsvk-meta {
	font-size: 12px;
	color: var(--fsvk-grau);
}

/* Nächste Termine (Kachel) */
.fsvk-liste {
	background: #fff;
	border-radius: 6px;
	padding: 20px 22px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
	text-align: left;
}
.fsvk-liste-titel {
	margin: 0 0 6px;
	font-family: var(--wp--preset--font-family--sarala, "Sarala", sans-serif);
	font-size: 21px;
	color: var(--fsvk-text);
}
.fsvk-liste ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.fsvk-eintrag {
	display: flex;
	gap: 12px;
	align-items: center;
	padding: 9px 0;
	border-bottom: 1px solid #eee8e4;
}
.fsvk-eintrag:last-child {
	border-bottom: 0;
}
.fsvk-alle {
	display: inline-block;
	margin-top: 10px;
	color: var(--fsvk-gruen-text);
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
}
.fsvk-alle:hover,
.fsvk-alle:focus-visible {
	text-decoration: underline;
}

/* Monatsansicht */
.fsvk-leiste {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-bottom: 14px;
}
.fsvk-monatsname {
	margin: 0;
	min-width: 180px;
	text-align: center;
	font-family: var(--wp--preset--font-family--sarala, "Sarala", sans-serif);
	font-size: 22px;
	color: var(--fsvk-text);
}
.fsvk-nav {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border: 1px solid #d9d2cd;
	border-radius: 999px;
	background: #fff;
	color: var(--fsvk-text);
	font-size: 18px;
	cursor: pointer;
}
.fsvk-heute {
	border: 1px solid var(--fsvk-gruen-text);
	border-radius: 999px;
	background: #fff;
	color: var(--fsvk-gruen-text);
	padding: 6px 14px;
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
}
.fsvk-abo {
	margin-left: auto;
	color: var(--fsvk-gruen-text);
	font-size: 13px;
	font-weight: 700;
}
.fsvk-monat[aria-busy="true"] {
	opacity: 0.6;
}

.fsvk-raster {
	border-top: 1px solid var(--fsvk-linie);
	border-left: 1px solid var(--fsvk-linie);
}
.fsvk-kopf,
.fsvk-woche {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
}
.fsvk-kopf span {
	padding: 8px;
	border-right: 1px solid var(--fsvk-linie);
	border-bottom: 1px solid var(--fsvk-linie);
	background: #f6f4f2;
	color: var(--fsvk-grau);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.fsvk-tag {
	min-height: 92px;
	padding: 6px;
	border-right: 1px solid var(--fsvk-linie);
	border-bottom: 1px solid var(--fsvk-linie);
	font-size: 13px;
	min-width: 0;
}
.fsvk-nr {
	display: inline-block;
	font-weight: 700;
}
.fsvk-tag.ist-ausserhalb .fsvk-nr {
	color: #7d746e;
	font-weight: 400;
}
.fsvk-tag.ist-heute .fsvk-nr {
	padding: 1px 7px;
	border-radius: 999px;
	background: var(--fsvk-gruen);
	color: #fff;
}
.fsvk-ev {
	display: block;
	width: 100%;
	margin-top: 4px;
	padding: 2px 6px;
	border: 0;
	border-radius: 3px;
	background: #e6f6f2;
	color: #035c48;
	font: inherit;
	font-size: 12px;
	text-align: left;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	cursor: pointer;
}
.fsvk-ev.ist-ganztags {
	background: #fbf0dd;
	color: #6e4a10;
}
.fsvk-ev:hover,
.fsvk-ev:focus-visible {
	background: var(--fsvk-gruen);
	color: #fff;
}

.fsvk-mliste {
	display: none;
	list-style: none;
	margin: 0;
	padding: 0;
}
.fsvk-mtermin {
	display: flex;
	gap: 12px;
	width: 100%;
	padding: 10px 0;
	border: 0;
	border-bottom: 1px solid #eee8e4;
	background: none;
	font: inherit;
	color: inherit;
	text-align: left;
	cursor: pointer;
}
.fsvk-leer {
	color: var(--fsvk-grau);
}

@media (max-width: 767px) {
	.fsvk-raster {
		display: none;
	}
	.fsvk-mliste {
		display: block;
	}
	.fsvk-leiste {
		justify-content: center;
	}
	.fsvk-monatsname {
		min-width: 0;
		font-size: 18px;
	}
	.fsvk-abo {
		margin-left: 0;
		flex-basis: 100%;
		text-align: center;
	}
}

/* Detail-Dialog */
.fsvk-dialog {
	width: min(360px, calc(100vw - 32px));
	padding: 20px 22px;
	border: 0;
	border-radius: 8px;
	box-shadow: 0 12px 36px rgba(0, 0, 0, 0.22);
}
.fsvk-dialog::backdrop {
	background: rgba(36, 35, 35, 0.35);
}
.fsvk-dialog h3 {
	margin: 0 28px 10px 0;
	font-family: var(--wp--preset--font-family--sarala, "Sarala", sans-serif);
	font-size: 19px;
	color: var(--fsvk-text);
}
.fsvk-schliessen {
	position: absolute;
	top: 10px;
	right: 12px;
	border: 0;
	background: none;
	color: var(--fsvk-grau);
	font-size: 16px;
	cursor: pointer;
}
.fsvk-dialog dl {
	margin: 0;
}
.fsvk-zeile {
	display: flex;
	gap: 8px;
	margin: 6px 0;
	font-size: 14px;
}
.fsvk-zeile[hidden] {
	display: none;
}
.fsvk-zeile dt {
	flex: none;
	width: 64px;
	color: var(--fsvk-gruen-text);
	font-weight: 700;
}
.fsvk-zeile dd {
	margin: 0;
}
.fsvk-beschreibung {
	margin-top: 10px;
	font-size: 13px;
	line-height: 1.5;
	color: #3d3835;
}
.fsvk-beschreibung a {
	color: var(--fsvk-gruen-text);
	word-break: break-word;
}
.fsvk-ics {
	display: inline-block;
	margin-top: 12px;
	color: var(--fsvk-gruen-text);
	font-size: 13px;
	font-weight: 700;
}
.fsvk-ics[hidden] {
	display: none;
}
