/* ===== Pack 140 FullCalendar Theme ===== */
:root {
  --pack-navy:   #003f87;   /* shirts/branding */
  --pack-gold:   #fcd116;   /* scout yellow */
  --forest:      #2e7d32;   /* accent green */
  --trail:       #f2efe6;   /* light background */
  --ink:         #1b1b1b;   /* text */
  --muted:       #6b7280;   /* secondary text */
  --card:        #ffffff;   /* surfaces */
  --shadow:      0 6px 20px rgba(0,0,0,.08);
}

/* Container */
.calendar-root .fc {
  background: var(--card);
  border-radius: 16px;
  box-shadow: var(--shadow);
  overflow: hidden;
}

/* Toolbar */
.calendar-root .fc-toolbar.fc-header-toolbar {
  padding: .75rem 1rem;
  background: linear-gradient(180deg, var(--pack-navy), #002b5c);
  color: #fff;
}
.calendar-root .fc-toolbar-title {
  font-weight: 800;
  letter-spacing: .3px;
  text-transform: uppercase;
}

/* Buttons */
.calendar-root .fc .fc-button {
  border: none;
  box-shadow: none;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: .3px;
  border-radius: 999px;
  padding: .5rem .9rem;
}
.calendar-root .fc .fc-button-primary {
  background: var(--pack-gold);
  color: #1a1a1a;
}
.calendar-root .fc .fc-button-primary:hover,
.calendar-root .fc .fc-button-primary:focus {
  filter: brightness(0.92);
}
.calendar-root .fc .fc-button-primary:disabled {
  opacity: .6;
}

/* Day headers */
.calendar-root .fc .fc-col-header-cell {
  background: #f7fafc;
  border: none;
  padding: .4rem 0;
  color: var(--muted);
  text-transform: uppercase;
  font-size: .78rem;
  letter-spacing: .05em;
  border-bottom: 1px solid #eaecef;
}

/* Grid cells */
.calendar-root .fc .fc-daygrid-day {
  border-color: #eef1f4;
}
.calendar-root .fc .fc-daygrid-day-number {
  color: var(--muted);
  font-weight: 600;
  padding: .35rem .5rem;
}

/* Today highlight */
.calendar-root .fc .fc-day-today {
  background: linear-gradient(180deg, rgba(252,209,22,.18), rgba(252,209,22,.08));
}
.calendar-root .fc .fc-day-today .fc-daygrid-day-number {
  color: #000;
  background: var(--pack-gold);
  border-radius: 8px;
}

/* Weekends (subtle) */
.calendar-root .fc .fc-day-sat,
.calendar-root .fc .fc-day-sun {
  background-color: #fafafa;
}

/* DayGrid events (box style) */
.calendar-root .fc .fc-daygrid-event {
  border: none;
  border-left: 4px solid var(--pack-navy);
  background: #f4f8ff;
  color: #0f172a;
  padding: .25rem .5rem;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0,0,0,.05);
}
.calendar-root .fc .fc-event:hover {
  filter: brightness(0.98);
}

/* TimeGrid events */
.calendar-root .fc .fc-timegrid-event {
  border: 1px solid rgba(0,0,0,.06);
  background: #eef6ff;
  color: #0f172a;
  border-left: 4px solid var(--pack-navy);
  border-radius: 10px;
}

/* List view styling */
.calendar-root .fc .fc-list {
  border: none;
}
.calendar-root .fc .fc-list-day-cushion {
  background: var(--trail);
  color: var(--ink);
  font-weight: 800;
  text-transform: uppercase;
}
.calendar-root .fc .fc-list-event {
  border-left: 4px solid var(--pack-navy);
}

/* --- Optional: event "categories" via classNames from your JSON --- */
/* Pack meeting (navy) */
.calendar-root .fc .fc-event.pack-meeting {
  background: #e9f1ff;
  border-left-color: var(--pack-navy);
}
/* Outdoor activity (forest) */
.calendar-root .fc .fc-event.outdoor {
  background: #eef7f0;
  border-left-color: var(--forest);
}
/* Fundraiser (gold) */
.calendar-root .fc .fc-event.fundraiser {
  background: #fff9e0;
  border-left-color: var(--pack-gold);
}
/* Leadership/admin (muted) */
.calendar-root .fc .fc-event.leadership {
  background: #f6f7f9;
  border-left-color: #9aa3af;
}

/* Modal polish (your #cal-modal) */
.cal-modal {
  border: none;
  border-radius: 16px;
  padding: 1.2rem 1.4rem;
  box-shadow: var(--shadow);
}
.cal-modal::backdrop { background: rgba(0,0,0,.35); }
.cal-modal .btn {
  background: var(--pack-navy);
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: .5rem .9rem;
}

/* Mobile tweaks */
/* ----- FullCalendar mobile polish ----- */

/* Give the header permission to wrap on small screens */
.fc .fc-toolbar.fc-header-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem;
}

/* Make each chunk (prev/title/next | view buttons) stack vertically */
@media (max-width: 640px) {
  .fc .fc-toolbar-chunk {
    flex: 1 1 100%;
    display: flex;
    align-items: center;
    justify-content: space-between; /* prev/title/next on one line */
    gap: .25rem;
  }

  /* Keep the title from pushing buttons off-screen */
  .fc .fc-toolbar-title {
    font-size: 1rem;     /* smaller title */
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 70%;
  }

  /* Let button groups wrap instead of overflowing */
  .fc .fc-button-group {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    max-width: 100%;
  }

  /* Tighten buttons a bit */
  .fc .fc-button {
    padding: .25rem .5rem;
    font-size: .85rem;
  }

  /* Prevent any accidental horizontal scroll */
  .fc, .fc .fc-view-harness {
    overflow-x: hidden;
  }
}