/* FullCalendar Custom Styles */

/* Calendar container */
.fc {
  --fc-border-color: rgb(229 231 235);
  --fc-button-bg-color: rgb(107 114 128);
  --fc-button-border-color: rgb(107 114 128);
  --fc-button-hover-bg-color: rgb(75 85 99);
  --fc-button-hover-border-color: rgb(75 85 99);
  --fc-button-active-bg-color: rgb(55 65 81);
  --fc-button-active-border-color: rgb(55 65 81);
  --fc-today-bg-color: rgb(239 246 255);
  --fc-page-bg-color: transparent;
  --fc-neutral-bg-color: rgb(249 250 251);
  --fc-list-event-hover-bg-color: rgb(243 244 246);
}

/* Dark mode */
.dark .fc {
  --fc-border-color: rgb(55 65 81);
  --fc-today-bg-color: rgb(30 58 138 / 0.2);
  --fc-neutral-bg-color: rgb(31 41 55);
  --fc-list-event-hover-bg-color: rgb(55 65 81);
  --fc-page-bg-color: transparent;
}

.dark .fc .fc-daygrid-day-number,
.dark .fc .fc-col-header-cell-cushion {
  color: rgb(229 231 235);
}

.dark .fc .fc-button {
  background-color: rgb(55 65 81);
  border-color: rgb(75 85 99);
}

.dark .fc .fc-button:hover {
  background-color: rgb(75 85 99);
  border-color: rgb(107 114 128);
}

.dark .fc .fc-button-active {
  background-color: rgb(79 70 229);
  border-color: rgb(79 70 229);
}

/* Header toolbar styling */
.fc .fc-toolbar-title {
  font-size: 1.25rem;
  font-weight: 600;
}

.fc .fc-button {
  padding: 0.375rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  border-radius: 0.375rem;
}

.fc .fc-button-group .fc-button {
  border-radius: 0;
}

.fc .fc-button-group .fc-button:first-child {
  border-radius: 0.375rem 0 0 0.375rem;
}

.fc .fc-button-group .fc-button:last-child {
  border-radius: 0 0.375rem 0.375rem 0;
}

/* Event styling by status */
.fc-event {
  cursor: pointer;
  border-radius: 0.25rem;
  padding: 2px 4px;
  font-size: 0.75rem;
}

.fc-event-accepted {
  background-color: rgb(34 197 94);
  border-color: rgb(34 197 94);
}

.fc-event-maybe {
  background-color: rgb(234 179 8);
  border-color: rgb(234 179 8);
}

.fc-event-declined {
  background-color: rgb(156 163 175);
  border-color: rgb(156 163 175);
  opacity: 0.6;
}

.fc-event-pending {
  background-color: rgb(79 70 229);
  border-color: rgb(79 70 229);
}

/* Day grid specific */
.fc-daygrid-day-frame {
  min-height: 80px;
}

.fc-daygrid-event {
  margin: 1px 2px;
}

/* Time grid specific */
.fc-timegrid-slot {
  height: 2.5rem;
}

/* Column header */
.fc .fc-col-header-cell {
  padding: 0.5rem 0;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.75rem;
}

/* Day number */
.fc .fc-daygrid-day-number {
  padding: 0.5rem;
  font-size: 0.875rem;
}

/* More link */
.fc .fc-daygrid-more-link {
  font-size: 0.75rem;
  color: rgb(79 70 229);
}

.fc .fc-daygrid-more-link:hover {
  color: rgb(67 56 202);
}

/* Popover */
.fc .fc-popover {
  border-radius: 0.5rem;
  box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}

.dark .fc .fc-popover {
  background-color: rgb(31 41 55);
  border-color: rgb(55 65 81);
}

.fc .fc-popover-header {
  padding: 0.5rem 0.75rem;
  background-color: rgb(243 244 246);
}

.dark .fc .fc-popover-header {
  background-color: rgb(55 65 81);
  color: rgb(229 231 235);
}

/* Nav links */
.fc .fc-daygrid-day-number,
.fc .fc-col-header-cell-cushion {
  text-decoration: none;
}

.fc .fc-daygrid-day-number:hover,
.fc .fc-col-header-cell-cushion:hover {
  color: rgb(79 70 229);
}
