.wulfi-kalender-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.wulfi-kalender-table th,
.wulfi-kalender-table td { border: 1px solid #ddd; vertical-align: top; padding: 4px; width: 14.28%; }
.wulfi-kalender-tag-nummer { font-weight: bold; font-size: 0.9em; color: #666; }
.wulfi-kalender-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }

.wulfi-kalender-table-woche td { height: 220px; }
.wulfi-kalender-woche-datum { display: block; font-size: 0.8em; font-weight: normal; color: #666; }

.wulfi-kalender-mehr { display: block; font-size: 0.75em; color: #666; margin-top: 2px; }
.wulfi-kalender-legende { font-size: 0.85em; font-weight: bold; margin-top: 6px; }

/* Kompakte, farbige Termin-Kartuschen (Outlook-artig) */
.wulfi-chip {
	position: relative;
	display: block;
	margin-bottom: 3px;
	padding: 2px 5px;
	border-radius: 3px;
	background: var( --wulfi-farbe, #607d8b );
	color: #fff;
	font-size: 0.78em;
	line-height: 1.4;
	text-decoration: none;
	cursor: pointer;
}
.wulfi-chip-text {
	display: block;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.wulfi-chip--cancelled {
	background: #ccc;
	color: #666;
	text-decoration: line-through;
}
.wulfi-chip:focus { outline: 2px solid #000; outline-offset: 1px; }

/* Eigenes gestaltetes Tooltip mit vollständigem Namen bei Hover/Fokus */
.wulfi-chip::after {
	content: attr( data-tooltip );
	position: absolute;
	left: 0;
	top: 100%;
	z-index: 100;
	margin-top: 4px;
	padding: 5px 8px;
	max-width: 240px;
	width: max-content;
	background: var( --wulfi-farbe, #333 );
	color: #fff;
	white-space: normal;
	border-radius: 4px;
	box-shadow: 0 2px 8px rgba( 0, 0, 0, 0.25 );
	font-size: 0.95em;
	line-height: 1.3;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.1s ease-in-out;
	pointer-events: none;
}
.wulfi-chip:hover::after,
.wulfi-chip:focus::after {
	opacity: 1;
	visibility: visible;
}

.wulfi-rsvp-liste { list-style: none; margin: 0; padding: 0; }
.wulfi-rsvp-liste li { display: flex; align-items: center; gap: 8px; padding: 4px 0; border-bottom: 1px solid #eee; }
.wulfi-rsvp-status { font-size: 0.85em; padding: 2px 6px; border-radius: 3px; background: #eee; }
.wulfi-rsvp-status-zusage { background: #d4edda; }
.wulfi-rsvp-status-absage { background: #f8d7da; }
.wulfi-rsvp-status-vielleicht { background: #fff3cd; }
.wulfi-rsvp-btn { cursor: pointer; }
.wulfi-status-entfaellt,
.wulfi-status-verschoben { color: #c00; font-weight: bold; }

.wulfi-naechste-events,
.wulfi-naechste-events li { list-style: none !important; margin: 0; padding: 0; }
.wulfi-naechste-events-item { margin-bottom: 18px; }
.wulfi-naechste-events-item a { display: flex; align-items: center; gap: 8px; text-decoration: none; }
.wulfi-naechste-events-thumb { width: 30px; height: 30px; object-fit: cover; border-radius: 3px; flex-shrink: 0; }
.wulfi-naechste-events-text { display: flex; flex-direction: column; line-height: 1.3; }
.wulfi-naechste-events-datum { font-size: 0.8em; color: #666; }

.wulfi-trainingsort-beschreibung { font-size: 0.9em; color: #555; margin: 4px 0 10px; }
.wulfi-trainingsort-karte { width: 100%; max-width: 600px; height: 300px; border: 0; display: block; }
