/* ─── FullCalendar overrides ───────────────────────────────────────── */
#calendar {
  background: var(--white);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  border: 1px solid var(--gray-200);
  padding: 24px;
  margin-bottom: 80px;
}

.fc .fc-toolbar-title {
  font-family: 'Playfair Display', serif;
  font-size: 1.5rem;
  color: var(--ocean-dk);
}

.fc .fc-button {
  background: transparent;
  border: 1px solid var(--gray-200);
  color: var(--gray-600);
  font-family: 'Inter', sans-serif;
  font-size: .85rem;
  border-radius: 8px;
  padding: 6px 12px;
  transition: all .15s;
}
.fc .fc-button:hover {
  background: var(--gray-100);
  color: var(--gray-800);
  border-color: var(--gray-200);
}
.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active {
  background: var(--ocean-lt);
  color: var(--ocean-dk);
  border-color: var(--ocean-lt);
}
.fc .fc-button:focus { box-shadow: 0 0 0 2px var(--ocean-lt); }

.fc .fc-col-header-cell-cushion {
  font-size: .8rem;
  font-weight: 600;
  color: var(--gray-400);
  text-transform: uppercase;
  letter-spacing: .06em;
  text-decoration: none;
  padding: 10px 4px;
}

.fc .fc-daygrid-day-number {
  font-size: .85rem;
  color: var(--gray-600);
  text-decoration: none;
  padding: 6px 8px;
}
.fc .fc-day-today .fc-daygrid-day-number {
  background: var(--ocean);
  color: var(--white);
  border-radius: 50%;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 4px;
}
.fc .fc-day-today { background: rgba(14,116,144,.04) !important; }

/* Event styles */
.fc-event {
  border: none !important;
  border-radius: 6px !important;
  font-size: .8rem;
  font-weight: 500;
  padding: 2px 6px;
}
.fc-event.cat-travel   { background: var(--ocean) !important; }
.fc-event.cat-activity { background: var(--coral) !important; }
.fc-event.cat-dining   { background: var(--gold) !important; color: var(--gray-800) !important; }
.fc-event.cat-rest     { background: #6ee7b7 !important; color: var(--gray-800) !important; }
.fc-event.cat-other    { background: var(--gray-400) !important; }

.fc .fc-timegrid-slot { height: 40px; }
.fc .fc-timegrid-axis-cushion { font-size: .75rem; color: var(--gray-400); }
.fc-scrollgrid { border-radius: 8px; overflow: hidden; }
.fc-scrollgrid, .fc-scrollgrid-section-header td,
.fc-scrollgrid-section-body td { border-color: var(--gray-200) !important; }

/* Resort labels */
.fc-event.cat-resort-1 { background: var(--gold) !important; color: var(--gray-800) !important; font-size: .7rem !important; opacity: .7; }
.fc-event.cat-resort-2 { background: var(--ocean) !important; font-size: .7rem !important; opacity: .7; }

/* Tentative events — striped + slightly faded */
.fc-event.tentative {
  opacity: .65 !important;
  background-image: repeating-linear-gradient(
    45deg,
    transparent,
    transparent 4px,
    rgba(255,255,255,.18) 4px,
    rgba(255,255,255,.18) 8px
  ) !important;
  border: 1.5px dashed rgba(255,255,255,.6) !important;
}

/* Conflict highlight */
.fc-event.conflict {
  box-shadow: 0 0 0 2.5px #ef4444 !important;
  animation: conflict-pulse 2s ease-in-out infinite;
  z-index: 5 !important;
}
@keyframes conflict-pulse {
  0%, 100% { box-shadow: 0 0 0 2.5px #ef4444, 0 0 6px rgba(239,68,68,.3); }
  50%       { box-shadow: 0 0 0 2.5px #ef4444, 0 0 14px rgba(239,68,68,.6); }
}

/* Trip range highlight */
.fc .fc-day-trip { background: rgba(14,116,144,.06) !important; }

/* ─── Conflict panel ───────────────────────────────────────────────── */
.conflict-panel {
  border-radius: var(--radius);
  margin-top: 32px;
  overflow: hidden;
  display: none;
}
.conflict-panel.has-conflicts,
.conflict-panel.all-clear { display: block; }

.conflict-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  font-weight: 600;
  font-size: .9rem;
}
.conflict-panel.has-conflicts .conflict-header {
  background: #fef2f2;
  color: #991b1b;
  border: 1px solid #fecaca;
  border-bottom: none;
  border-radius: var(--radius) var(--radius) 0 0;
}
.conflict-panel.all-clear .conflict-header {
  background: #f0fdf4;
  color: #166534;
  border: 1px solid #bbf7d0;
  border-radius: var(--radius);
}
.conflict-panel.has-conflicts .conflict-icon::before { content: '⚠'; }
.conflict-panel.all-clear   .conflict-icon::before  { content: '✓'; }

.conflict-list {
  border: 1px solid #fecaca;
  border-top: none;
  border-radius: 0 0 var(--radius) var(--radius);
  background: #fff;
}
.conflict-item {
  display: flex;
  gap: 14px;
  padding: 12px 18px;
  border-bottom: 1px solid #fef2f2;
  font-size: .85rem;
  line-height: 1.5;
  align-items: baseline;
}
.conflict-item:last-child { border-bottom: none; }
.conflict-item.tentative-conflict { background: #fffbeb; }
.conflict-day {
  font-weight: 700;
  color: #991b1b;
  white-space: nowrap;
  min-width: 80px;
}
.conflict-desc { color: var(--gray-600); }
.conflict-desc strong { color: var(--gray-800); }
.conflict-note {
  display: block;
  font-size: .78rem;
  color: var(--gray-400);
  font-style: italic;
  margin-top: 2px;
}
