:root { --sgw-ferienevent: #254677;
--sgw-unterrichtsfrei: #7CBA9F;
--sgw-veranstaltung: #F6B5D3; --event-list-accent-color: #254677;
--event-list-bg-color: #B5C2D6;
--event-list-text-color: #254677;
--event-list-meta-color: #222;
--event-list-border-color: #254677;
} .sgw-calendar {
--sgw-cal-height: 650px; }
.fl-module .sgw-calendar { overflow: visible; }
.fl-col .sgw-calendar { width: 100%; } .sgw-cal-toolbar {
display: flex;
align-items: center;
gap: 0.5rem;
margin-bottom: 0.5rem;
}
.sgw-cal-toolbar .sgw-cal-title {
flex: 1;
text-align: center;
font-weight: 600;
}
.sgw-cal-toolbar button {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0.35rem 0.6rem;
border: 1px solid #ddd;
border-radius: 8px;
background: #fff;
cursor: pointer;
line-height: 1;
font: inherit;
color: inherit;
transition: background-color 0.2s, color 0.2s;
}
.sgw-cal-toolbar button:hover {
color: #254677;
background-color: #7cba9f;
}  .toastui-calendar-layout.toastui-calendar-month {
position: relative !important;
overflow: visible !important;
} .toastui-calendar-floating-layer {
position: absolute !important;
left: 0 !important;
top: 0 !important;
overflow: visible !important;
z-index: 99999;
} .toastui-calendar-popup-overlay {
position: fixed;
inset: 0;
z-index: 99998;
} .toastui-calendar-month-daygrid { overflow-y: hidden; } .toastui-calendar-section-button { display: none !important; } .toastui-calendar-section-detail .toastui-calendar-detail-item { display: none; } .toastui-calendar-month .toastui-calendar-time,
.toastui-calendar-month .toastui-calendar-event-time,
.toastui-calendar-month .toastui-calendar-weekday-event-dot {
display: none !important;
} .toastui-calendar-day-name:nth-child(7),
.toastui-calendar-dayname:nth-child(7),
.toastui-calendar-daygrid .toastui-calendar-grid-column:nth-child(7) .toastui-calendar-date {
color: #e45858;
} .toastui-calendar-grid-cell-date .toastui-calendar-weekday-grid-date.toastui-calendar-weekday-grid-date-decorator {
background-color: #254677;
} .toastui-calendar-event { border-radius: 6px; }
.toastui-calendar-event .toastui-calendar-content,
.toastui-calendar-month .sgw-chip {
font-weight: 500;
white-space: normal !important;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
font-size: 12px;
line-height: 1.25;
}
.toastui-calendar-event,
.toastui-calendar-weekday-event { touch-action: manipulation; }
.toastui-calendar-month .sgw-chip {
display: block;
width: 100%;
box-sizing: border-box;
padding: 2px 6px;
border-radius: 6px;
}
.toastui-calendar-template-time { border-radius: 3px; }
[data-calendar-id="ferien"] .toastui-calendar-template-time {
background-color: var(--sgw-ferienevent);
color: #fff;
}
[data-calendar-id="veranstaltung"] .toastui-calendar-template-time {
background-color: var(--sgw-veranstaltung);
color: #333;
}
[data-calendar-id="unterrichtsfrei"] .toastui-calendar-template-time {
background-color: var(--sgw-unterrichtsfrei);
color: #254677;
} .toastui-calendar-month-daygrid,
.toastui-calendar-weekday-events,
.toastui-calendar-event {
will-change: transform;
transform: translateZ(0);
}  .toastui-calendar-popup-container.sgw-fixed {
position: fixed !important;
z-index: 100000;
pointer-events: auto;
transition: transform 120ms ease, opacity 120ms ease;
transform-origin: top left;
}
@media (prefers-reduced-motion: reduce) {
.toastui-calendar-popup-container.sgw-fixed {
transition: none;
}
} @media (min-width: 769px) {
.sgw-calendar { height: var(--sgw-cal-height, 650px); }
.sgw-calendar > div { height: 100%; min-height: inherit; }
.toastui-calendar-month .toastui-calendar-grid-cell-header { height: 22px !important; }
}
@media (max-width: 992px) {
.sgw-calendar { --sgw-cal-height: 560px; }
}
@media (max-width: 768px) {
.sgw-calendar {
--sgw-cal-height: 520px;
height: auto;
min-height: var(--sgw-cal-height);
display: block;
}
.sgw-calendar > div { height: auto; min-height: inherit; }
.toastui-calendar-month { overflow-y: visible !important; }
.toastui-calendar-month .toastui-calendar-grid-cell-header { height: 31px !important; }
.toastui-calendar-month .sgw-chip { -webkit-line-clamp: 3; }
} .sgw-events-list {
list-style: none;
padding: 0;
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
.sgw-event-item {
display: flex;
align-items: center;
background-color: var(--event-list-bg-color);
padding: 15px;
margin-bottom: 10px;
border-radius: 8px;
border: 1px solid var(--event-list-border-color);
}
.event-date {
flex-shrink: 0;
width: 65px;
height: 65px;
background-color: var(--event-list-accent-color);
color: #fff;
border-radius: 8px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
margin-right: 15px;
font-weight: bold;
}
.event-month { font-size: 14px; line-height: 1; text-transform: uppercase; opacity: 0.9; }
.event-day { font-size: 28px; line-height: 1.1; margin-top: 2px; }
.event-info { display: flex; flex-direction: column; justify-content: center; gap: 6px; }
.event-title { font-size: 1.1em; font-weight: 600; color: var(--event-list-text-color); line-height: 1.3; }
.event-time { font-size: 0.9em; color: var(--event-list-meta-color); display: flex; align-items: center; }
.event-time-icon { margin-right: 6px; flex-shrink: 0; vertical-align: middle; }
.event-category {
display: inline-block;
font-size: 11px;
font-weight: 600;
padding: 3px 8px;
border-radius: 12px;
text-transform: uppercase;
letter-spacing: 0.5px;
line-height: 1;
align-self: flex-start;
}
.event-category-ferien { background-color: var(--sgw-ferienevent); color: #fff; }
.event-category-unterrichtsfrei { background-color: var(--sgw-unterrichtsfrei); color: #254677; }
.event-category-veranstaltung { background-color: var(--sgw-veranstaltung); color: #333; } #sgw-cal-modal { position: fixed; inset: 0; display: none; z-index: 99999; }
#sgw-cal-modal.is-open { display: block; }
#sgw-cal-modal .sgw-cal-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.4); opacity: 0; transition: opacity .15s; }
#sgw-cal-modal.is-visible .sgw-cal-modal__backdrop { opacity: 1; }
#sgw-cal-modal .sgw-cal-modal__dialog {
position: absolute; left: 50%; top: 50%;
transform: translate(-50%, -50%) scale(.95);
background: #fff; border-radius: 12px; max-width: min(720px, 92vw); max-height: 80vh;
overflow: auto; box-shadow: 0 10px 30px rgba(0,0,0,.25); opacity: 0;
transition: opacity .15s, transform .15s; padding: 20px 22px 18px;
}
#sgw-cal-modal.is-visible .sgw-cal-modal__dialog { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.sgw-cal-modal__close {
position: absolute; right: 10px; top: 8px; width: 32px; height: 32px; border: 0; border-radius: 8px;
background: #f3f3f3; cursor: pointer; font-size: 20px; line-height: 32px;
}
.sgw-cal-detail__title { margin: 0 36px 12px 0; font-size: 1.25rem; color: #254677; }
.sgw-cal-detail__meta { display: grid; gap: 6px; margin-bottom: 10px; font-size: .95rem; }
.sgw-cal-detail__desc { margin-top: 8px; line-height: 1.5; }
.sgw-cal-detail--loading, .sgw-cal-detail--error { padding: 24px; text-align: center; }
#sgw-cal-popover {
position: absolute; z-index: 100000; min-width: 260px; max-width: 420px;
background: #fff; border: 1px solid rgba(0,0,0,.12); box-shadow: 0 8px 24px rgba(0,0,0,.18);
border-radius: 10px; padding: 12px 14px; font-size: 14px; line-height: 1.35;
pointer-events: none; display: none;
}
.toastui-calendar-popup-arrow {
display: none !important;
}