/* Kalender */
.calendar-shell {
  border: 1px solid var(--tblr-border-color);
  border-radius: 12px;
  padding: 1rem;
  background: var(--tblr-bg-surface);
}

.calendar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.calendar-legend .badge {
  font-size: 0.75rem;
}

.calendar-feedback {
  margin-bottom: 0.75rem;
}

/* FullCalendar: Header- und Tageslinks nicht als blaue Standard-Links */
.calendar-shell .fc .fc-col-header-cell-cushion,
.calendar-shell .fc .fc-daygrid-day-number {
  color: var(--tblr-secondary);
  text-decoration: none;
  font-weight: 500;
}

.calendar-shell .fc .fc-col-header-cell-cushion:hover,
.calendar-shell .fc .fc-daygrid-day-number:hover {
  color: var(--tblr-secondary);
  text-decoration: none;
}

.calendar-shell .fc .fc-day-today .fc-daygrid-day-number {
  color: var(--tblr-body-color);
  font-weight: 600;
}

/* FullCalendar: kompaktere Termine im Monatsraster */
.calendar-shell .fc .fc-daygrid-event {
  border-radius: 4px;
  border-width: 1px;
  box-shadow: none;
  margin-top: 2px;
}

.calendar-shell .fc .fc-daygrid-block-event .fc-event-main {
  padding: 0.15rem 0.35rem;
}

.calendar-shell .fc .fc-daygrid-event .fc-event-time {
  font-size: 0.6875rem;
  font-weight: 600;
  margin-right: 0.25rem;
  color: inherit;
}

.calendar-shell .fc .fc-daygrid-event .fc-event-title {
  font-size: 0.75rem;
  font-weight: 500;
  color: inherit;
}

.calendar-shell .fc .fc-daygrid-event .fc-event-main,
.calendar-shell .fc .fc-daygrid-event .fc-event-main-frame,
.calendar-shell .fc .fc-daygrid-event .fc-event-title-container,
.calendar-shell .fc .fc-daygrid-event .fc-event-title-container .fc-event-title,
.calendar-shell .fc .fc-daygrid-event .fc-event-time,
.calendar-shell .fc .fc-daygrid-event .fc-event-title {
  color: inherit !important;
}

.calendar-shell .fc .fc-daygrid-dot-event {
  --fc-daygrid-event-dot-width: 0.3125rem;
  padding: 0.15rem 0.25rem;
  align-items: center;
}

.calendar-shell .fc .fc-daygrid-dot-event .fc-event-title,
.calendar-shell .fc .fc-daygrid-dot-event .fc-event-time {
  color: inherit;
}

.calendar-shell .fc .fc-daygrid-event-dot {
  width: 0.3125rem;
  min-width: 0.3125rem;
  height: 0.3125rem;
  border-width: 0;
  border-radius: 999px;
  margin: 0 0.375rem 0 0.125rem;
  background-color: color-mix(in srgb, currentColor 55%, transparent);
}

.calendar-shell .fc .fc-more-link {
  color: var(--tblr-secondary);
  text-decoration: none;
  font-weight: 500;
}
.alert {
  border-width: 1px;
  border-style: solid;
}

[data-bs-theme="dark"] .alert {
  border-color: var(--tblr-border-color);
  color: var(--tblr-light);
}

[data-bs-theme="dark"] .alert.alert-success {
  background-color: rgba(45, 206, 137, 0.18);
  border-color: rgba(45, 206, 137, 0.5);
  color: #d8ffe8;
}

[data-bs-theme="dark"] .alert.alert-warning {
  background-color: rgba(251, 99, 64, 0.2);
  border-color: rgba(251, 99, 64, 0.55);
  color: #ffe7dc;
}

[data-bs-theme="dark"] .alert.alert-danger {
  background-color: rgba(244, 54, 54, 0.2);
  border-color: rgba(244, 54, 54, 0.55);
  color: #ffe3e3;
}

[data-bs-theme="dark"] .alert.alert-info {
  background-color: rgba(17, 205, 239, 0.2);
  border-color: rgba(17, 205, 239, 0.55);
  color: #ddf9ff;
}

[data-bs-theme="dark"] .alert .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
  opacity: 0.85;
}

[data-bs-theme="dark"] .alert .btn-close:hover {
  opacity: 1;
}