/* === Brand tokens (optional) === */
:root{
  --ggps-dark: #171F1F;
  --ggps-accent: #8CCAAF;
  --ggps-accent-deep: #3B8763; /* keeps your existing tone for continuity */
  --ggps-border: rgba(0,0,0,0.15);
  --ggps-shadow: 0 1px 2px rgba(0,0,0,0.06);
}

/* Improve selected state visibility (grid + list) */
.ggps-selected-event {
  outline: 2px solid var(--ggps-accent-deep);
  border-radius: 8px;
}

/* Available / unavailable badges in FC grid */
.ggps-mini-calendar .ggps-available {
  border-left: 3px solid var(--ggps-accent-deep);
}
.ggps-mini-calendar .ggps-unavailable {
  opacity: .55;
  filter: grayscale(0.2);
}

/* Status + helper bars (loading / next available) */
.ggps-mini-calendar .ggps-status,
.ggps-mini-calendar .ggps-next-available {
  font-size: 0.92rem;
  color: #444;
  background: #fff;
  border: 1px solid var(--ggps-border);
  border-radius: 10px;
  padding: .4rem .6rem;
  box-shadow: var(--ggps-shadow);
}
.ggps-mini-calendar .ggps-next-available button {
  background: #fff;
  border: 1px solid var(--ggps-border);
  border-radius: 10px;
  padding: .35rem .6rem;
  cursor: pointer;
}
.ggps-mini-calendar .ggps-next-available button:hover,
.ggps-mini-calendar .ggps-next-available button:focus {
  border-color: var(--ggps-accent-deep);
  box-shadow: 0 0 0 3px rgba(140,202,175,.25);
  outline: none;
}

/* A11y focus ring for any interactive element we add */
.ggps-mini-calendar [tabindex], 
.ggps-mini-calendar .fc a, 
.ggps-mobile-slotlist .ggps-slotbtn,
.ggps-mini-calendar .fc-button {
  outline: none;
}
.ggps-mini-calendar [tabindex]:focus,
.ggps-mini-calendar .fc a:focus,
.ggps-mobile-slotlist .ggps-slotbtn:focus,
.ggps-mini-calendar .fc-button:focus {
  box-shadow: 0 0 0 3px rgba(140,202,175,.35);
}

/* Mobile slot list (appears under the calendar) */
.ggps-mobile-slotlist {
  margin-top: .5rem;
}
.ggps-mobile-slotlist .ggps-slotlist-day {
  color: var(--ggps-dark);
}
.ggps-mobile-slotlist .ggps-slotlist-wrap {
  display: grid;
  grid-template-columns: repeat( auto-fit, minmax(120px, 1fr) );
  gap: .5rem;
}
.ggps-mobile-slotlist .ggps-slotbtn {
  appearance: none;
  background: #fff;
  border: 1px solid var(--ggps-border);
  border-radius: 12px;
  padding: .6rem .8rem;
  font-size: .95rem;
  text-align: center;
  color: var(--ggps-dark);
  box-shadow: var(--ggps-shadow);
  transition: border-color .15s ease, transform .05s ease;
  cursor: pointer;
}
.ggps-mobile-slotlist .ggps-slotbtn:hover {
  border-color: var(--ggps-accent-deep);
}
.ggps-mobile-slotlist .ggps-slotbtn:active {
  transform: translateY(1px);
}
.ggps-mobile-slotlist .ggps-slotbtn.ggps-selected-event {
  border-color: var(--ggps-accent-deep);
  box-shadow: 0 0 0 3px rgba(140,202,175,.25);
}

/* Tighten FC list view dots to match accent */
.fc .fc-list-event-dot {
    border: calc(var(--fc-list-event-dot-width) / 2) solid var(--ggps-accent-deep);
    border-radius: calc(var(--fc-list-event-dot-width) / 2);
    box-sizing: content-box;
    display: inline-block;
    height: 0px;
    width: 0px;
    margin-right: 3px; /* restore spacing */
}


/* Buttons (keeps your palette, slightly softened) */
.fc .fc-button-primary {
  background-color: #2F4F4F;
  border-color: var(--ggps-dark);
  color: var(--fc-button-text-color);
}
.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active {
  background-color: var(--ggps-dark);
  border-color: var(--ggps-dark);
}
.fc .fc-button-primary:hover {
  filter: brightness(0.95);
}

/* Calendar event padding for better tap targets */
@media (max-width: 767px) {
  .ggps-mini-calendar .fc-event,
  .ggps-mini-calendar .fc-list-event {
    padding: 8px 10px;
    border-radius: 8px;
  }
  .ggps-mini-calendar .fc .fc-header-toolbar {
    flex-wrap: wrap;
    gap: 6px;
  }
}

/* Subtle note text under picker */
.ggps-slot-picker .description { 
  font-size: .9em; 
  color: #666; 
}

/* Optional: refine list event colors */
.fc .fc-list-event-title a { color: var(--ggps-dark); text-decoration: none; }
td.fc-list-event-time { color:#2F4F4F; }
