/* FullCalendar v6 – minimal self-hosted styles (avoids CDN MIME issues). Variables + base layout. */
:root {
  --fc-small-font-size: 0.85em;
  --fc-page-bg-color: #fff;
  --fc-neutral-bg-color: rgba(208, 208, 208, 0.3);
  --fc-neutral-text-color: #808080;
  --fc-border-color: #ddd;
  --fc-button-text-color: #fff;
  --fc-button-bg-color: #2c3e50;
  --fc-button-border-color: #2c3e50;
  --fc-button-hover-bg-color: #1e2b37;
  --fc-button-hover-border-color: #1a252f;
  --fc-button-active-bg-color: #1a252f;
  --fc-button-active-border-color: #151e27;
  --fc-event-bg-color: #3788d8;
  --fc-event-border-color: #3788d8;
  --fc-event-text-color: #fff;
  --fc-event-selected-overlay-color: rgba(0, 0, 0, 0.25);
  --fc-more-link-bg-color: #d0d0d0;
  --fc-more-link-text-color: inherit;
  --fc-non-business-color: rgba(215, 215, 215, 0.3);
  --fc-today-bg-color: rgba(255, 220, 40, 0.15);
  --fc-now-indicator-color: red;
}

.fc {
  direction: ltr;
  font-size: 1em;
}

.fc,
.fc *,
.fc *::before,
.fc *::after {
  box-sizing: border-box;
}

.fc table {
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 1em;
}

.fc th,
.fc td {
  vertical-align: top;
  padding: 0;
}

.fc-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  margin-bottom: 1em;
}

.fc-toolbar-title {
  font-size: 1.75em;
  font-weight: 400;
}

.fc-button {
  padding: 0.4em 0.65em;
  font-size: 1em;
  border-radius: 0.25em;
  border: 1px solid var(--fc-button-border-color);
  background: var(--fc-button-bg-color);
  color: var(--fc-button-text-color);
  cursor: pointer;
}

.fc-button:hover {
  background: var(--fc-button-hover-bg-color);
  border-color: var(--fc-button-hover-border-color);
}

.fc-button-group {
  display: inline-flex;
  gap: 0;
}

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

.fc-button-group .fc-button:first-child {
  border-top-left-radius: 0.25em;
  border-bottom-left-radius: 0.25em;
}

.fc-button-group .fc-button:last-child {
  border-top-right-radius: 0.25em;
  border-bottom-right-radius: 0.25em;
}

.fc-scrollgrid {
  border: 1px solid var(--fc-border-color);
}

.fc-scrollgrid td,
.fc-scrollgrid th {
  border: 1px solid var(--fc-border-color);
}

.fc-col-header-cell {
  padding: 0.5em;
  background: var(--fc-neutral-bg-color);
  font-weight: 500;
}

.fc-daygrid-day {
  min-height: 4em;
}

.fc-daygrid-day-number {
  padding: 0.25em 0.5em;
  font-size: var(--fc-small-font-size);
  color: var(--fc-neutral-text-color);
}

.fc-day-today {
  background: var(--fc-today-bg-color);
}

.fc-event {
  padding: 0.2em 0.4em;
  margin: 1px 2px;
  border-radius: 2px;
  border: 1px solid var(--fc-event-border-color);
  background: var(--fc-event-bg-color);
  color: var(--fc-event-text-color);
  font-size: var(--fc-small-font-size);
  overflow: hidden;
}

.fc-event-main {
  overflow: hidden;
}

.fc-daygrid-event {
  white-space: nowrap;
}

.fc-timegrid-slot {
  height: 1.5em;
  border-bottom: 1px solid var(--fc-border-color);
}

.fc-timegrid-axis {
  padding: 0 0.5em;
  color: var(--fc-neutral-text-color);
  font-size: var(--fc-small-font-size);
}

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

.fc .fc-view-harness-active > * {
  position: relative;
  min-height: 100%;
}

.fc-theme-standard .fc-scrollgrid {
  border: 1px solid var(--fc-border-color);
}

.fc-highlight {
  background: var(--fc-highlight-color, rgba(188, 232, 241, 0.3));
}
