.fc .dyn-day-status {
  color: #fff;
  font-weight: 700;
}

.fc .dyn-day-status-running {
  border-color: var(--dyn-running);
  background: var(--dyn-running);
}

.fc .dyn-day-status-paused {
  border-color: var(--dyn-interruption);
  background: var(--dyn-interruption);
}

.fc .dyn-day-status-planned {
  border-color: var(--dyn-upcoming);
  background: var(--dyn-upcoming);
  color: var(--tblr-body-color);
}

.fc .dyn-day-status .fc-event-main,
.fc .dyn-day-status .fc-event-title {
  color: #fff;
}

.fc .dyn-day-status-planned .fc-event-main,
.fc .dyn-day-status-planned .fc-event-title {
  color: var(--tblr-body-color);
}

/* Month summaries retain their semantic color while sharing one hover treatment. */
.calendar-view .fc .fc-daygrid-event.dyn-calendar-event {
  --dyn-month-event-bg: #333;
  --dyn-month-event-fg: #fff;
}
.calendar-view .fc .fc-daygrid-event.dyn-day-result {
  --dyn-month-event-bg: var(--dyn-complete);
  --dyn-month-event-fg: #fff;
}
.calendar-view .fc .fc-daygrid-event.dyn-day-status-running {
  --dyn-month-event-bg: var(--dyn-running);
  --dyn-month-event-fg: #fff;
}
.calendar-view .fc .fc-daygrid-event.dyn-day-status-paused {
  --dyn-month-event-bg: var(--dyn-interruption);
  --dyn-month-event-fg: #fff;
}
.calendar-view .fc .fc-daygrid-event.dyn-day-status-planned {
  --dyn-month-event-bg: var(--dyn-upcoming);
  --dyn-month-event-fg: var(--tblr-body-color);
}
.calendar-view .fc .fc-daygrid-event:is(.dyn-calendar-event, .dyn-day-result, .dyn-day-status):hover {
  border-color: color-mix(in srgb, var(--dyn-month-event-bg) 55%, var(--dyn-month-event-fg));
  background: color-mix(in srgb, var(--dyn-month-event-bg) 82%, var(--dyn-month-event-fg));
  color: var(--dyn-month-event-fg);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--dyn-month-event-fg) 22%, transparent), 0 .2rem .55rem color-mix(in srgb, #111827 22%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--dyn-month-event-fg) 20%, transparent);
}
.calendar-view .fc .fc-daygrid-event:is(.dyn-calendar-event, .dyn-day-result, .dyn-day-status):hover .fc-event-main,
.calendar-view .fc .fc-daygrid-event:is(.dyn-calendar-event, .dyn-day-result, .dyn-day-status):hover .fc-event-title {
  color: var(--dyn-month-event-fg);
}

@media (max-width: 767.98px) {
  .calendar-view .fc .fc-daygrid-event.dyn-day-status-running { background: var(--dyn-running); }
  .calendar-view .fc .fc-daygrid-event.dyn-day-status-paused { background: var(--dyn-interruption); }
  .calendar-view .fc .fc-daygrid-event.dyn-day-status-planned { background: var(--dyn-upcoming); }
}

/* The current date badge communicates the day's state without borrowing the
   active orange when no schedule exists. */
.calendar-view .fc .fc-day-today.dyn-month-today-empty .fc-daygrid-day-number {
  background: var(--tblr-primary);
  color: var(--tblr-primary-fg);
}
.calendar-view .fc .fc-day-today.dyn-month-today-running .fc-daygrid-day-number {
  background: var(--dyn-running);
  color: #fff;
}
.calendar-view .fc .fc-day-today.dyn-month-today-paused .fc-daygrid-day-number {
  background: var(--dyn-interruption);
  color: #fff;
}
.calendar-view .fc .fc-day-today.dyn-month-today-complete .fc-daygrid-day-number {
  background: var(--dyn-complete);
  color: #fff;
}
.calendar-view .fc .fc-day-today.dyn-month-today-planned .fc-daygrid-day-number {
  background: var(--dyn-upcoming);
  color: var(--tblr-body-color);
}
