/**
 * FullCalendar（メイン・ミニ共通）
 * 日曜・土曜は JS の dayCellClassNames / dayHeaderClassNames で jp-col-sun / jp-col-sat を付与
 * （ルートが .jp-cal-fc と .fc の同一要素のため、.jp-cal-fc .fc .子… はマッチしない）
 */

:root {
  --jp-grid: rgba(148, 163, 184, 0.22);
  --jp-text: #f1f5f9;
  --jp-muted: #94a3b8;
  --jp-sun: #d4a0a8;
  --jp-sun-soft: rgba(212, 160, 168, 0.14);
  --jp-sat: #8fb4cc;
  --jp-sat-soft: rgba(143, 180, 204, 0.14);
  --jp-holiday-text: #cfa5ad;
  --jp-rokuyo: #7c8a9e;
}

.jp-cal-fc {
  --fc-border-color: var(--jp-grid);
  --fc-page-bg-color: transparent;
  --fc-neutral-bg-color: rgba(0, 0, 0, 0.25);
  --fc-list-event-hover-bg-color: rgba(148, 163, 184, 0.08);
  --fc-today-bg-color: rgba(250, 204, 21, 0.12);
  --fc-button-bg-color: rgba(0, 0, 0, 0.35);
  --fc-button-border-color: rgba(255, 255, 255, 0.28);
  --fc-button-text-color: var(--jp-text);
  --fc-button-hover-bg-color: rgba(255, 255, 255, 0.12);
  --fc-button-active-bg-color: rgba(96, 165, 250, 0.22);
}

.jp-cal-fc-main {
  font-size: 0.86rem;
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
}

.jp-cal-fc-main .fc-toolbar-title {
  font-size: 1.05em;
}

.jp-cal-fc-main .fc-button {
  font-size: 0.82em;
  padding: 0.28em 0.55em;
}

.jp-cal-fc-mini {
  font-size: 0.72rem;
}

.jp-cal-fc-mini .fc-toolbar-title {
  font-size: 0.95em;
}

.jp-cal-fc-mini .fc-col-header-cell {
  font-size: 0.85em;
}

.jp-cal-fc .fc-toolbar-title {
  color: var(--jp-text);
  font-weight: 600;
  letter-spacing: 0.04em;
}

.jp-cal-fc .fc-col-header-cell-cushion,
.jp-cal-fc .fc-daygrid-day-number {
  color: var(--jp-muted);
}

/* 日曜列（ヘッダー + セル） */
.jp-cal-fc .fc-col-header-cell.jp-col-sun {
  background: var(--jp-sun-soft);
}

.jp-cal-fc .fc-col-header-cell.jp-col-sun .fc-col-header-cell-cushion {
  color: var(--jp-sun);
  font-weight: 500;
}

.jp-cal-fc .fc-daygrid-day.jp-col-sun .fc-daygrid-day-number {
  color: var(--jp-sun);
  font-weight: 500;
}

.jp-cal-fc .fc-daygrid-day.jp-col-sun {
  background: var(--jp-sun-soft);
}

/* 土曜列 */
.jp-cal-fc .fc-col-header-cell.jp-col-sat {
  background: var(--jp-sat-soft);
}

.jp-cal-fc .fc-col-header-cell.jp-col-sat .fc-col-header-cell-cushion {
  color: var(--jp-sat);
  font-weight: 500;
}

.jp-cal-fc .fc-daygrid-day.jp-col-sat .fc-daygrid-day-number {
  color: var(--jp-sat);
  font-weight: 500;
}

.jp-cal-fc .fc-daygrid-day.jp-col-sat {
  background: var(--jp-sat-soft);
}

/* 祝日（平日など） */
.jp-cal-fc .fc-daygrid-day.jp-day-holiday .fc-daygrid-day-number {
  color: var(--jp-sun);
  font-weight: 500;
}

.jp-cal-fc .fc-daygrid-day.jp-col-sun.jp-day-holiday .fc-daygrid-day-number {
  color: var(--jp-sun);
}

.jp-cal-fc .fc-daygrid-day.fc-day-today:not(.jp-col-sun):not(.jp-col-sat) .fc-daygrid-day-number {
  color: #fbbf24;
  font-weight: 700;
}

.jp-cal-fc .fc-daygrid-day.fc-day-today.jp-col-sun .fc-daygrid-day-number,
.jp-cal-fc .fc-daygrid-day.fc-day-today.jp-col-sat .fc-daygrid-day-number {
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.jp-cal-fc.fc-theme-standard td,
.jp-cal-fc.fc-theme-standard th,
.jp-cal-fc .fc-theme-standard td,
.jp-cal-fc .fc-theme-standard th {
  border-color: var(--jp-grid);
}

.jp-cal-fc .fc-scrollgrid {
  border-color: var(--jp-grid);
}

.jp-cal-fc .jp-rokuyo {
  font-size: 0.58rem;
  line-height: 1.25;
  margin-top: 3px;
  padding: 0;
  text-align: center;
  letter-spacing: 0.04em;
  color: var(--jp-rokuyo);
  background: none;
  border: none;
  box-shadow: none;
  font-weight: 500;
}

.jp-cal-fc-mini .jp-rokuyo {
  font-size: 0.5rem;
  margin-top: 2px;
}

.jp-cal-fc .jp-rokuyo.jp-rokuyo-taian {
  color: #86c49a;
}

.jp-cal-fc .jp-rokuyo.jp-rokuyo-butsumetsu {
  color: #c4a5a5;
}

.jp-cal-fc .fc-h-event.jp-holiday-label,
.jp-cal-fc .fc-daygrid-event.jp-holiday-label {
  font-size: 0.68rem;
  padding: 0 2px;
  font-weight: 600;
  color: var(--jp-holiday-text) !important;
  background: transparent !important;
  border: none !important;
}

.jp-cal-fc-mini .fc-daygrid-event.jp-holiday-label {
  font-size: 0.58rem;
}

.jp-cal-fc .fc-daygrid-event.jp-holiday-label .fc-event-title {
  color: var(--jp-holiday-text);
}

@media (max-width: 640px) {
  .jp-cal-fc-main .fc-toolbar {
    flex-direction: column;
    gap: 8px;
  }
  .jp-cal-fc-main .fc-toolbar-chunk {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
  }
  .jp-cal-fc-main .jp-rokuyo {
    font-size: 0.52rem;
  }
}
