/* =========================
   Buttons (vereinheitlicht)
   ========================= */

.fwe-ical-addbtn,
.fwe-ical-choicebtn,
.fwe-ical-action,
.fwe-ical-copybtn,
.fwe-ical-openinvite{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:42px;
	padding:10px 16px;
	border-radius:999px !important;
	border:1px solid rgba(11,58,115,.22);
	background: rgba(11,58,115,.08);
	color: var(--fwe-blue) !important;
	transform:none !important;
	font-weight:900 !important;
	line-height:1;
	text-decoration:none !important;
	box-shadow: 0 8px 18px rgba(0,0,0,.05);
	transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease, opacity .15s ease, color .15s ease;
	cursor:pointer;
}

/* Hover / Focus */
.fwe-ical-addbtn:hover,
.fwe-ical-addbtn:focus,
.fwe-ical-choicebtn:hover,
.fwe-ical-choicebtn:focus,
.fwe-ical-action:hover,
.fwe-ical-action:focus,
.fwe-ical-copybtn:hover,
.fwe-ical-copybtn:focus,
.fwe-ical-openinvite:hover,
.fwe-ical-openinvite:focus{
	transform: translateY(-1px) !important;
	box-shadow: 0 12px 24px rgba(0,0,0,.07);
	border-color: rgba(11,58,115,.30);
	background: rgba(11,58,115,.12);
	color: var(--fwe-blue) !important;
	text-decoration:none !important;
}

.fwe-ical-wrap{ max-width: 1100px; margin: 0 auto; }

.fwe-ical-card{
	background:#fff;
	border:1px solid var(--fwe-border);
	border-radius:var(--fwe-radius);
	box-shadow:var(--fwe-shadow);
	overflow:hidden;
	color: var(--fwe-text);
}

.fwe-ical-head{
	padding:18px 18px 10px;
	border-bottom: 1px solid var(--fwe-border);
}
.fwe-ical-title{
	font-weight:900;
	font-size:18px;
	color: var(--fwe-blue);
	letter-spacing:-.2px;
}

.fwe-ical-rows{ display:flex; flex-direction:column; }

.fwe-ical-row{
	display:grid;
	grid-template-columns: 170px 1fr 220px;
	gap:14px;
	padding:14px 18px;
	border-top:1px solid var(--fwe-border);
}

.fwe-ical-row:hover{
	background: rgba(11,58,115,.04);
}

.fwe-ical-left{ line-height:1.15; }
.fwe-ical-date{ font-weight:900; }
.fwe-ical-time{ color: var(--fwe-muted); margin-top:2px; font-weight:700; }
.fwe-ical-time2{ color: var(--fwe-muted); margin-top:2px; font-weight:700; opacity:.92; }

.fwe-ical-mid{ min-width:0; }
.fwe-ical-eventtitle{
	font-weight:900;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
.fwe-ical-loc{
	margin-top:6px;
	color: var(--fwe-muted);
	font-weight:700;
}

.fwe-ical-right{
	display:flex;
	justify-content:flex-end;
	align-items:center;
	gap:10px;
}

.fwe-ical-badge{
	--fwe-ical-badge: var(--fwe-blue);
	display:inline-flex;
	align-items:center;
	padding:8px 12px;
	border-radius:999px;
	border:1px solid rgba(11,58,115,.18);
	background: rgba(11,58,115,.06);
	font-weight:900;
	color: var(--fwe-text);
	line-height:1;
	white-space:nowrap;
}
.fwe-ical-badge:before{
	content:"";
	width:8px;
	height:8px;
	border-radius:999px;
	background: var(--fwe-ical-badge);
	display:inline-block;
	margin-right:8px;
}

.fwe-ical-row--compact{
	grid-template-columns: 160px minmax(0,1fr);
	align-items:start;
}

.fwe-ical-c-when{ line-height:1.15; }
.fwe-ical-c-date{ font-weight:900; }
.fwe-ical-c-time{
	margin-top:2px;
	color: var(--fwe-muted);
	font-weight:700;
}

.fwe-ical-c-main{
	min-width:0;
}

.fwe-ical-eventtitle--compact{
	white-space:normal;
	overflow:visible;
	text-overflow:clip;
}

.fwe-ical-loc--compact{
	margin-top:6px;
	color: var(--fwe-muted);
	font-weight:700;
}

.fwe-ical-c-actions{
	display:flex;
	align-items:center;
	justify-content:flex-start;
	gap:10px;
	flex-wrap:wrap;
	margin-top:10px;
}

.fwe-ical-badge--compact{
	padding:7px 10px;
	font-size:12px;
}

.fwe-ical-addicon{
	fill: currentColor;
	display:block;
}

.fwe-ical-filter{
	padding:12px 18px 14px;
	border-top:1px solid var(--fwe-border);
	background: rgba(0,0,0,.01);
}
.fwe-ical-filterlabel{
	font-weight:900;
	margin-bottom:10px;
	color: var(--fwe-text);
}
.fwe-ical-filterchips{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
}
.fwe-ical-chip{
	--fwe-ical-chip: var(--fwe-blue);
	display:inline-flex;
	align-items:center;
	gap:8px;
	padding:9px 12px;
	border-radius:999px;
	border:1px solid rgba(11,58,115,.18);
	background: rgba(11,58,115,.06);
	font-weight:900;
	cursor:pointer;
}
.fwe-ical-chip.is-off{
	opacity:.55;
	filter:saturate(.55);
}
.fwe-ical-chip--ghost{
	background: transparent;
}
.fwe-ical-chipdot{
	width:9px;
	height:9px;
	border-radius:999px;
	background: var(--fwe-ical-chip);
	display:inline-block;
}
.fwe-ical-chiptext{ white-space:nowrap; }

.fwe-ical-modal{
	position:fixed;
	inset:0;
	z-index:99999;
	display:none;
}
.fwe-ical-modal.is-open{ display:block; }

.fwe-ical-modal__backdrop{
	position:absolute;
	inset:0;
	background: rgba(0,0,0,.45);
}

.fwe-ical-modal__panel{
	position:relative;
	max-width:560px;
	margin: min(10vh, 80px) auto 0;
	background:#fff;
	border:1px solid var(--fwe-border);
	border-radius: var(--fwe-radius);
	box-shadow: var(--fwe-shadow);
	overflow:hidden;
}

.fwe-ical-modal__head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:14px 16px;
	border-bottom:1px solid var(--fwe-border);
}
.fwe-ical-modal__title{
	font-weight:900;
	color: var(--fwe-blue);
}
.fwe-ical-modal__x{
	width:36px;
	height:36px;
	border-radius:999px;
	border:1px solid var(--fwe-border);
	background: #fff;
	cursor:pointer;
	font-size:22px;
	line-height:1;
}

.fwe-ical-modal__body{
	padding:16px;
}
.fwe-ical-modal__hint{
	color: var(--fwe-muted);
	font-weight:700;
	margin-bottom:12px;
}

.fwe-ical-modal__choice{
	display:flex;
	gap:10px;
	margin-bottom:14px;
	flex-wrap:wrap;
}

.fwe-ical-subtitle{
	font-weight:900;
	margin: 2px 0 8px;
}

.fwe-ical-small{
	margin-top:10px;
	color: var(--fwe-muted);
	font-weight:700;
	font-size:13px;
	word-break: break-word;
}

.fwe-ical-copyrow{
	display:flex;
	align-items:center;
	gap:10px;
	margin-top:12px;
	flex-wrap:wrap;
}

.fwe-ical-copystatus{
	color: var(--fwe-muted);
	font-weight:800;
	font-size:13px;
}

@media (max-width: 860px){
	.fwe-ical-row{
		grid-template-columns: 1fr;
		gap:10px;
		padding:14px 14px;
	}
	.fwe-ical-right{
		justify-content:flex-start;
	}
	.fwe-ical-eventtitle{
		white-space:normal;
	}

	.fwe-ical-row--compact{
		grid-template-columns: 1fr;
	}
	.fwe-ical-c-actions{
		margin-top:10px;
	}

	.fwe-ical-modal__panel{
		margin: 10vh 14px 0;
	}
}

.fwe-ical-row--invitation{
	background: linear-gradient(90deg, rgba(194,29,46,.05) 0%, rgba(194,29,46,.02) 100%);
	border-left: 4px solid var(--fwe-red);
}

.fwe-ical-row--invitation:hover{
	background: linear-gradient(90deg, rgba(194,29,46,.10) 0%, rgba(194,29,46,.04) 100%);
}

.fwe-ical-badge--invitation{
	border-color: rgba(194,29,46,.20);
	background: rgba(194,29,46,.08);
	color: var(--fwe-text);
}

.fwe-ical-badge--invitation:before{
	background: var(--fwe-red);
}

.fwe-ical-eventlink{
	color: inherit;
	text-decoration: none;
	font-weight:900;
	border-bottom: none;
}


.fwe-ical-row--compact.fwe-ical-row--invitation{
	border-left: 4px solid var(--fwe-red);
}

@media (max-width: 860px){
	.fwe-ical-openinvite{
		width:100%;
	}
}

/* Einladungstitel exakt wie normale Termine darstellen */
.fwe-ical-eventtitle a.fwe-ical-eventlink,
.fwe-ical-eventtitle--compact a.fwe-ical-eventlink{
	font-weight:900 !important;
	font-size:inherit;
	color:var(--fwe-text);
	text-decoration:none !important;
	border:none !important;
	display:inline;
}

/* Hover nur leicht färben, kein Underline */
.fwe-ical-eventtitle a.fwe-ical-eventlink:hover,
.fwe-ical-eventtitle--compact a.fwe-ical-eventlink:hover{
	color:var(--fwe-blue);
	text-decoration:none !important;
}

.fwe-ical-chip--invitation-filter{
	--fwe-ical-chip: var(--fwe-red);
	border-color: rgba(194,29,46,.18);
	background: rgba(194,29,46,.08);
}

.fwe-ical-chip--invitation-filter.is-off{
	opacity:.55;
	filter:saturate(.55);
}