.calendar-container
  :where(
    .fc-theme-standard .fc-scrollgrid,
    .fc-theme-standard td,
    .fc-theme-standard th
  ) {
  border-color: rgb(229 231 235);
}

.dark
  .calendar-container
  :where(
    .fc-theme-standard .fc-scrollgrid,
    .fc-theme-standard td,
    .fc-theme-standard th
  ) {
  border-color: rgb(55 65 81);
}

.calendar-container .fc-toolbar-title {
  color: rgb(17 24 39);
}

.dark .calendar-container .fc-toolbar-title {
  color: rgb(255 255 255);
}

.calendar-container .fc-button {
  background-color: rgb(255 255 255);
  color: rgb(55 65 81);
  border-color: rgb(209 213 219);
}

.calendar-container .fc-button:hover {
  background-color: rgb(249 250 251);
}

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

.dark .calendar-container .fc-button:hover {
  background-color: rgb(75 85 99);
}

.calendar-container .fc-button-primary:not(:disabled).fc-button-active,
.calendar-container .fc-button-primary:not(:disabled):active {
  background-color: rgb(30 119 89);
  border-color: rgb(22 89 67);
  color: rgb(255 255 255);
}

.calendar-container .fc-daygrid-day-number {
  color: rgb(17 24 39);
}

.dark .calendar-container .fc-daygrid-day-number {
  color: rgb(209 213 219);
}

/* Google Calendar Events */
.google-calendar-events {
  --event-bg-color: rgb(66 133 244);
  --event-border-color: rgb(48 97 179);
  --event-text-color: white;
}

.google-calendar-events.fc-event {
  background-color: var(--event-bg-color);
  border-color: var(--event-border-color);
  color: var(--event-text-color);
}

.google-calendar-events .fc-event-title,
.google-calendar-events .fc-event-time {
  color: var(--event-text-color);
}

.dark .google-calendar-events {
  --event-bg-color: rgb(48 97 179);
  --event-border-color: rgb(66 133 244);
}

.calendar-container .fc-col-header {
  background-color: rgb(255 255 255);
}

.dark .calendar-container .fc-col-header {
  background-color: rgb(31 41 55);
}

.calendar-container .fc-col-header-cell {
  color: rgb(55 65 81);
}

.dark .calendar-container .fc-col-header-cell {
  color: rgb(209 213 219);
}

.calendar-container .fc-day-today {
  background-color: rgba(242, 249, 246, 0.5) !important;
}

.dark .calendar-container .fc-day-today {
  background-color: rgba(31, 41, 55, 0.5) !important;
}

.calendar-container .fc-event {
  background-color: rgb(30 119 89);
  border-color: rgb(22 89 67);
}

/* Mobile optimizations */
@media (max-width: 768px) {
  .fc .fc-toolbar {
    flex-direction: column;
    gap: 1px;
  }

  .fc .fc-toolbar-title {
    font-size: 1rem;
    margin: 0 !important;
  }

  .fc .fc-button {
    padding: 1px;
    font-size: 0.8em;
    margin: 0 1px !important;
  }

  .fc .fc-view-harness {
    min-height: 300px;
  }

  /* Reduce calendar cell padding */
  .fc td,
  .fc th {
    padding: 0 !important;
  }

  /* Adjust day cell height */
  .fc .fc-daygrid-day-frame {
    min-height: 3.5em;
    padding: 0 !important;
  }

  .fc .fc-daygrid-day-top {
    padding: 1px !important;
  }

  .fc .fc-daygrid-day-number {
    padding: 0 !important;
    font-size: 0.75em;
  }

  /* Make events more compact */
  .fc-daygrid-event {
    padding: 1px !important;
    font-size: 0.7em;
    margin: 0 !important;
  }

  /* Better spacing for list view */
  .fc-list-event td {
    padding: 1px !important;
  }

  .fc-list-event-title {
    font-size: 0.8em;
  }

  .fc-list-day-cushion {
    padding: 1px !important;
  }

  /* Increase max events visible */
  .fc-daygrid-more-link {
    font-size: 0.7em;
    margin: 0 !important;
    padding: 0 !important;
  }
}

/* Dark mode adjustments */
.dark .fc-theme-standard .fc-list-day-cushion {
  background-color: rgb(31 41 55);
}

.dark .fc-theme-standard .fc-list-event:hover td {
  background-color: rgb(55 65 81);
}

.dark .fc .fc-list-event-dot {
  border-color: rgb(156 163 175);
}
