/* Lightweight FullCalendar theming (local, no CDN). */
/* Scope to .fc to avoid global leakage. */

/* Base */
.fc {
  --fc-border-color: #e5e7eb; /* gray-200 */
  --fc-page-bg-color: #ffffff;
  --fc-neutral-bg-color: #f9fafb; /* gray-50 */
  --fc-today-bg-color: #eef2ff; /* indigo-50 */
  --fc-event-bg: #2563eb; /* blue-600 */
  --fc-event-border: #1d4ed8; /* blue-700 */
  --fc-event-text: #ffffff;
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Arial, sans-serif;
  color: #111827; /* gray-900 */
}

.fc a { color: inherit; text-decoration: none; }

/* Toolbar */
.fc .fc-toolbar { display:flex; align-items:center; gap:8px; padding:8px 6px; }
.fc .fc-toolbar-title { font-weight:600; font-size: 1rem; }
.fc .fc-button {
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  background: #f8fafc; /* gray-50 */
  color: #111827;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.fc .fc-button:hover { background:#f3f4f6; }
.fc .fc-button:active { transform: translateY(0.5px); }
.fc .fc-button-primary { background:#2563eb; border-color:#1d4ed8; color:#fff; }
.fc .fc-button-primary:hover { background:#1d4ed8; }
.fc .fc-button:disabled { opacity:.6; }

/* Grid chrome */
.fc-theme-standard .fc-scrollgrid,
.fc .fc-list {
  border: 1px solid var(--fc-border-color);
  border-radius: 10px;
  overflow: hidden;
}
.fc .fc-scrollgrid-section > * { border-color: var(--fc-border-color); }

/* Day header */
.fc .fc-col-header-cell { background:#f9fafb; font-weight:600; font-size: 0.85rem; padding: 6px 0; }
.fc .fc-col-header-cell-cushion { padding: 8px 6px; }

/* DayGrid cells */
.fc-daygrid-day { background:#ffffff; }
.fc-daygrid-day-number { font-weight:600; font-size:.85rem; padding: 6px 8px; }
.fc-daygrid-day.fc-day-today { background: var(--fc-today-bg-color); }
.fc-daygrid-day.fc-day-other { opacity: .55; }
.fc .fc-day-sun .fc-daygrid-day-number,
.fc .fc-day-sat .fc-daygrid-day-number { color:#6b7280; }

/* DayGrid events */
.fc-daygrid-event { border-radius: 8px; padding: 2px 6px; border:1px solid var(--fc-event-border); background: var(--fc-event-bg); color: var(--fc-event-text); }
.fc-daygrid-block-event .fc-event-time { font-weight:600; margin-right: 4px; }
.fc-daygrid-event:hover { filter: brightness(0.98); box-shadow: 0 2px 6px rgba(0,0,0,.08); }
.fc .fc-more-link { color:#2563eb; font-weight:600; }

/* TimeGrid */
.fc-timegrid .fc-timegrid-axis { background:#f9fafb; color:#6b7280; font-size: .8rem; }
.fc-timegrid-slot { height: 2.5rem; }
.fc-timegrid .fc-timegrid-slot-minor { border-top-style: dotted; }
.fc-timegrid-event { border-radius: 10px; border:1px solid var(--fc-event-border); background: var(--fc-event-bg); color: var(--fc-event-text); box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.fc-timegrid-event .fc-event-time { font-weight:600; }
.fc-timegrid-event .fc-event-title { font-weight:500; }

/* List view */
.fc .fc-list-day { background:#f9fafb; font-weight:600; padding:6px 10px; }
.fc .fc-list-event { padding:8px 10px; border-top:1px solid var(--fc-border-color); }
.fc .fc-list-event:hover { background:#f3f4f6; }

/* Selection ring */
.fc .fc-highlight { background: rgba(37,99,235,0.1); }

/* Today ring accent for better contrast */
.fc .fc-daygrid-day.fc-day-today .fc-daygrid-day-number {
  background: rgba(37,99,235,0.08);
  border-radius: 8px;
}

/* Event colors by status (relies on classNames from mapAppointmentsToEvents) */
.fc .bg-green-100, .fc .text-green-800 { background:#10b981 !important; color:#fff !important; border-color:#059669 !important; }
.fc .bg-yellow-100, .fc .text-yellow-800 { background:#f59e0b !important; color:#111827 !important; border-color:#d97706 !important; }
.fc .bg-red-100, .fc .text-red-800 { background:#ef4444 !important; color:#fff !important; border-color:#dc2626 !important; }

/* Compact popover */
.fc-popover { border-radius: 10px; border-color: var(--fc-border-color); box-shadow: 0 10px 24px rgba(0,0,0,.12); }
.fc-popover .fc-popover-header { background:#f9fafb; font-weight:600; }

/* Drag and resize handles */
.fc .fc-hEvent .fc-event-resizer-start,
.fc .fc-hEvent .fc-event-resizer-end,
.fc .fc-vEvent .fc-event-resizer-start,
.fc .fc-vEvent .fc-event-resizer-end {
  width: 6px;
}