/* Core */
.ga-booking{border:1px solid #ddd;padding:16px;border-radius:12px}
.ga-btn{display:inline-block;padding:10px 12px;border:1px solid #333;border-radius:10px;text-decoration:none;background:#f7f7f7;cursor:pointer;line-height:1.2;color:#111}
.ga-btn.disabled{opacity:.45;cursor:not-allowed}
.ga-btn.ga-primary{background:#eaeaea;color:#111}
.ga-cal-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.ga-alert{margin:8px 0;padding:8px;border-radius:8px;background:#fffbe6;border:1px solid #ffe58f}
.ga-cal-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.ga-calendar{width:100%;border-collapse:collapse;min-width:640px;margin-top:8px}
.ga-calendar th,.ga-calendar td{border:1px solid #e5e5e5;padding:6px;vertical-align:top;width:calc(100%/7);height:120px}
.ga-calendar td .ga-day-num{font-weight:700;margin-bottom:6px;font-size:14px}
.ga-calendar td.empty{background:#fafafa}
.ga-calendar td.disabled-day{background:#f7f7f7;color:#999}
/* Past days (disabled) must appear grey, overriding any status color */
.ga-calendar td.disabled-day,
.ga-calendar td.disabled-day.day-free,
.ga-calendar td.disabled-day.day-partial,
.ga-calendar td.disabled-day.day-full { background:#eeeeee !important; color:#888 !important; }

.ga-calendar td.day-free{background:#f6fff6}
.ga-calendar td.day-partial{background:#fffbea}
.ga-calendar td.day-full{background:#ffecec}
.ga-names{font-size:12px;color:#333;margin:6px 0;padding-left:16px}
.ga-names li{margin:4px 0;list-style:disc}
.ga-names .ga-btn{padding:6px 8px;font-size:12px;margin-left:6px}
.ga-time{opacity:.8}
.ga-day-panel,.ga-form-panel,.ga-month-panel{margin-top:12px;padding:12px;border:1px dashed #ccc;border-radius:10px}
.ga-slots .ga-slot{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #eee;padding:8px 0;gap:10px}
.ga-slots .ga-slot:last-child{border-bottom:none}
.ga-slots .ga-badge{font-size:12px;padding:2px 6px;border:1px solid #999;border-radius:6px;white-space:nowrap}
.ga-slot.free{background:#f6fff6}
.ga-slot.partial{background:#fffbea}
.ga-slot.full{background:#ffecec}
.ga-msg{margin-top:8px;font-weight:600}
.ga-guests{margin:8px 0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ga-guests .ga-guest{margin-bottom:0}
.muted{opacity:.7}
.ga-agenda{display:none}
.ga-agenda .ga-agenda-day{border-bottom:1px solid #eee;padding:8px 0}
.ga-agenda .ga-agenda-day.day-free{background:#f6fff6}
.ga-agenda .ga-agenda-day.day-partial{background:#fffbea}
.ga-agenda .ga-agenda-day.day-full{background:#ffecec}
.ga-agenda .ga-agenda-head{margin-bottom:4px}
.ga-month-list{overflow-x:auto}
.ga-month-list table{width:100%;table-layout:fixed;border-collapse:collapse}
.ga-month-list th,.ga-month-list td{white-space:normal;word-break:break-word;padding:6px;border:1px solid #e5e5e5}
.ga-month-cards{display:none;gap:10px}
.ga-month-card{border:1px solid #e5e5e5;border-radius:10px;padding:10px}
.ga-month-card .row{display:flex;justify-content:space-between;margin:4px 0}
.ga-month-card .label{opacity:.7;margin-right:8px}
.ga-month-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 12px}
.ga-month-controls select,.ga-month-controls input{padding:8px;border:1px solid #ccc;border-radius:8px}
@media (min-width:900px){.ga-cal-wrap{overflow-x:visible}.ga-calendar{min-width:0;width:100%}}
@media (max-width:520px){
  .ga-cal-wrap{display:none}
  .ga-agenda{display:block}
  .ga-guests{grid-template-columns:1fr}
  .ga-month-list table{display:none}
  .ga-month-cards{display:grid}
}
@media (prefers-color-scheme: dark){
  .ga-booking{border-color:#444;background:#111;color:#e6e6e6}
  .ga-btn{background:#1b1b1b;border-color:#666;color:#e6e6e6}
  .ga-btn.ga-primary{background:#2a2a2a;color:#fff}
  .ga-calendar th,.ga-calendar td{border-color:#333}
  .ga-calendar td.empty{background:#161616}
  .ga-calendar td.disabled-day{background:#191919;color:#888}
  .ga-names{color:#ddd}
  .ga-day-panel,.ga-form-panel,.ga-month-panel{border-color:#333}
  .ga-slots .ga-badge{border-color:#777;color:#ddd}
  .ga-calendar td.day-free{background:#0e1a0e}
  .ga-calendar td.day-partial{background:#1a160a}
  .ga-calendar td.day-full{background:#1a0e0e}
  .ga-slot.free{background:#0e1a0e}
  .ga-slot.partial{background:#1a160a}
  .ga-slot.full{background:#1a0e0e}
  .ga-agenda .ga-agenda-day.day-free{background:#0e1a0e}
  .ga-agenda .ga-agenda-day.day-partial{background:#1a160a}
  .ga-agenda .ga-agenda-day.day-full{background:#1a0e0e}
  .ga-month-card{border-color:#333}
  /* Past days grey in dark mode */
  .ga-calendar td.disabled-day,
  .ga-calendar td.disabled-day.day-free,
  .ga-calendar td.disabled-day.day-partial,
  .ga-calendar td.disabled-day.day-full { background:#222222 !important; color:#aaa !important; }

  .ga-month-controls select,.ga-month-controls input{background:#1b1b1b;border-color:#555;color:#e6e6e6}
}


/* Agenda: past days greyed out */
.ga-agenda .ga-agenda-day.disabled-day { background:#eeeeee !important; color:#888 !important; }
@media (prefers-color-scheme: dark){
  .ga-agenda .ga-agenda-day.disabled-day { background:#222222 !important; color:#aaa !important; }
}


/* Calendar header hidden; weekday now in each cell */
.ga-calendar thead{ display:none; }

/* Weekday badge inside cell */
.ga-day-num .ga-wd{
  display:inline-block;
  font-weight:700;
  opacity:.75;
  margin-right:6px;
  font-size:12px;
  text-transform:none;
}


/* ===== Month overview (desktop) balanced sizing ===== */
@media (min-width: 900px){
  .ga-month-list .ga-overview{ width:100%; table-layout:fixed; border-collapse:collapse; }
  .ga-month-list .ga-overview th,
  .ga-month-list .ga-overview td{
    padding:6px 8px;
    font-size:1em;
    line-height:1.25;
    vertical-align:top;
    white-space:normal;
    word-break:break-word;
    border:1px solid #e5e5e5;
  }
}
@media (prefers-color-scheme: dark){
  .ga-month-list .ga-overview th,
  .ga-month-list .ga-overview td{ border-color:#333; }
}

/* Ensure mobile behavior stays as in 1.9.20 (cards on small screens) */
@media (max-width:520px){
  .ga-month-list table{ display:none; }
  .ga-month-cards{ display:grid; }
}


/* --- Mobile Month Overview Accordion --- */
@media (max-width:520px){
  .ga-month-cards.ga-accordion-ready .ga-acc-day{ border:1px solid #e5e5e5; border-radius:10px; overflow:hidden; margin-bottom:8px; }
  .ga-acc-head{ width:100%; text-align:left; padding:10px 12px; background:#f7f7f7; border:0; display:flex; justify-content:space-between; align-items:center; font-weight:600; }
  .ga-acc-body{ display:none; padding:8px; background:#fff; }
  .ga-acc-day.open .ga-acc-body{ display:block; }
  .ga-acc-day .chev{ transform:rotate(-90deg); transition:transform .15s ease; }
  .ga-acc-day.open .chev{ transform:rotate(0deg); }
}
@media (prefers-color-scheme: dark){
  @media (max-width:520px){
    .ga-month-cards.ga-accordion-ready .ga-acc-day{ border-color:#333; }
    .ga-acc-head{ background:#1b1b1b; color:#e6e6e6; }
    .ga-acc-body{ background:#111; }
  }
}


/* --- Mobile Agenda Accordion (Calendar) --- */
@media (max-width:520px){
  .ga-agenda.ga-acc-ready .ga-agenda-day{ border:1px solid #e5e5e5; border-radius:10px; overflow:hidden; margin-bottom:8px; }
  .ga-agenda .ga-acc-head{ width:100%; text-align:left; padding:10px 12px; background:#f7f7f7; border:0; display:flex; justify-content:space-between; align-items:center; font-weight:600; }
  .ga-agenda .ga-acc-body{ display:none; padding:8px; background:#fff; }
  .ga-agenda .ga-agenda-day.open .ga-acc-body{ display:block; }
  .ga-agenda .chev{ transform:rotate(-90deg); transition:transform .15s ease; }
  .ga-agenda .ga-agenda-day.open .chev{ transform:rotate(0deg); }
  /* keep status colors subtly visible */
  .ga-agenda .ga-agenda-day.day-free .ga-acc-head{ background:#eef9ee; }
  .ga-agenda .ga-agenda-day.day-partial .ga-acc-head{ background:#fff7e6; }
  .ga-agenda .ga-agenda-day.day-full .ga-acc-head{ background:#ffecec; }
  .ga-agenda .ga-agenda-day.disabled-day .ga-acc-head{ background:#f1f1f1; color:#666; }
}
@media (prefers-color-scheme: dark){
  @media (max-width:520px){
    .ga-agenda.ga-acc-ready .ga-agenda-day{ border-color:#333; }
    .ga-agenda .ga-acc-head{ background:#1b1b1b; color:#e6e6e6; }
    .ga-agenda .ga-acc-body{ background:#111; }
    .ga-agenda .ga-agenda-day.day-free .ga-acc-head{ background:#0e1a0e; }
    .ga-agenda .ga-agenda-day.day-partial .ga-acc-head{ background:#1a160a; }
    .ga-agenda .ga-agenda-day.day-full .ga-acc-head{ background:#1a0e0e; }
    .ga-agenda .ga-agenda-day.disabled-day .ga-acc-head{ background:#222; color:#aaa; }
  }
}


/* ===== Booking overview table (desktop): tasteful compact ===== */
@media (min-width: 900px){
  .ga-month-list .ga-overview{
    width:100%; table-layout:fixed; border-collapse:collapse;
  }
  .ga-month-list .ga-overview thead th{
    font-size:12.5px; line-height:1.2; padding:6px 8px; font-weight:600; background:#fafafa;
  }
  .ga-month-list .ga-overview tbody td{
    font-size:12.5px; line-height:1.22; padding:5px 8px; vertical-align:top; white-space:normal; word-break:break-word;
    border:1px solid #e5e5e5;
  }
}
@media (prefers-color-scheme: dark){
  .ga-month-list .ga-overview thead th{ background:#161616; }
  .ga-month-list .ga-overview tbody td{ border-color:#333; }
}


/* ---- Today button style (align with controls) ---- */
.ga-cal-controls .ga-today{ margin-left:6px; }

/* ---- Desktop Month Overview Accordion ---- */
@media (min-width:900px){
  .ga-ov-accordion .ga-ov-day{ border:1px solid #e5e5e5; border-radius:10px; overflow:hidden; margin-bottom:10px; }
  .ga-ov-head{ width:100%; text-align:left; padding:10px 12px; background:#f7f7f7; border:0; display:flex; justify-content:space-between; align-items:center; font-weight:600; }
  .ga-ov-body{ display:none; padding:8px; background:#fff; }
  .ga-ov-day.open .ga-ov-body{ display:block; }
  .ga-ov-day .chev{ transform:rotate(-90deg); transition:transform .15s ease; }
  .ga-ov-day.open .chev{ transform:rotate(0deg); }
}
@media (prefers-color-scheme: dark){
  @media (min-width:900px){
    .ga-ov-accordion .ga-ov-day{ border-color:#333; }
    .ga-ov-head{ background:#1b1b1b; color:#e6e6e6; }
    .ga-ov-body{ background:#111; }
  }
}


/* ==== Book now button styles ==== */
.ga-btn.ga-booknow{
  background:#8ecf88;
  color:#fff;
  border:1px solid #6fb66a;
  border-radius:10px;
  padding:10px 14px;
  font-weight:600;
  box-shadow:0 1px 0 rgba(0,0,0,0.05);
  transition:background .15s ease, box-shadow .15s ease, transform .05s ease;
}
.ga-btn.ga-booknow:hover{ background:#7bbf70; box-shadow:0 2px 6px rgba(0,0,0,0.08); transform:translateY(-1px); }
.ga-btn.ga-booknow:active{ transform:translateY(0); }
.ga-btn.ga-booknow.disabled,
.ga-btn.ga-booknow:disabled{
  background:#cccccc;
  color:#888888;
  border-color:#bbbbbb;
  cursor:not-allowed;
  box-shadow:none;
}

/* ==== Floating back-to-top button ==== */
.ga-back-to-top{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:9999;
  display:none;
  padding:12px 14px;
  border-radius:999px;
  background:#f0f0f0;
  border:1px solid #d0d0d0;
  box-shadow:0 2px 8px rgba(0,0,0,0.12);
  font-weight:700;
  cursor:pointer;
}
.ga-back-to-top:hover{ box-shadow:0 4px 14px rgba(0,0,0,0.15); }

@media (prefers-color-scheme: dark){
  .ga-btn.ga-booknow{ background:#4f8f4b; border-color:#3f7d3a; }
  .ga-btn.ga-booknow:hover{ background:#3f7d3a; box-shadow:0 2px 6px rgba(0,0,0,0.35); }
  .ga-btn.ga-booknow.disabled, .ga-btn.ga-booknow:disabled{ background:#333; color:#888; border-color:#444; }
  .ga-back-to-top{ background:#1b1b1b; border-color:#333; color:#e6e6e6; }
}


/* v1.10.6 enforce Book now button styles */
.ga-btn.ga-booknow{
  background:#8ecf88;
  color:#fff;
  border:1px solid #6fb66a;
  border-radius:10px;
  padding:10px 14px;
  font-weight:600;
  box-shadow:0 1px 0 rgba(0,0,0,0.05);
  transition:background .15s ease, box-shadow .15s ease, transform .05s ease;
}
.ga-btn.ga-booknow:hover{ background:#7bbf70; box-shadow:0 2px 6px rgba(0,0,0,0.08); transform:translateY(-1px); }
.ga-btn.ga-booknow:active{ transform:translateY(0); }
.ga-btn.ga-booknow.disabled, .ga-btn.ga-booknow:disabled{
  background:#cccccc;
  color:#888888;
  border-color:#bbbbbb;
  cursor:not-allowed;
  box-shadow:none;
}


/* ===== v1.10.7: Desktop calendar cells with bottom-aligned, slim Book now buttons ===== */
@media (min-width: 900px){
  /* Turn day cells into vertical flex containers */
  .ga-calendar td{
    display:flex;
    flex-direction:column;
  }
  /* Ensure names/content stack above and don't force extra bottom space */
  .ga-calendar td .ga-names{ margin-bottom:8px; }
  /* Slim one-line Book now button aligned to bottom */
  .ga-calendar td .ga-btn.ga-booknow{
    margin-top:auto;           /* push to bottom */
    align-self:stretch;        /* full width within cell */
    padding:6px 10px;          /* slimmer */
    font-size:12px;
    line-height:1.1;
    border-radius:8px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}


/* === Floating Back-to-Top (circular) === */
.ga-back-to-top{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:9999;
  display:none;
  width:46px;
  height:46px;
  border-radius:50%;
  background:#f2f2f2;
  border:1px solid #d4d4d4;
  box-shadow:0 6px 18px rgba(0,0,0,0.12);
  font-weight:800;
  font-size:18px;
  line-height:46px;
  text-align:center;
  cursor:pointer;
}
.ga-back-to-top:hover{ box-shadow:0 8px 22px rgba(0,0,0,0.16); background:#ececec; }
@media (prefers-color-scheme: dark){
  .ga-back-to-top{ background:#1b1b1b; border-color:#333; color:#e6e6e6; box-shadow:0 6px 18px rgba(0,0,0,0.35); }
  .ga-back-to-top:hover{ background:#212121; box-shadow:0 10px 26px rgba(0,0,0,0.5); }
}


/* === v1.10.9 Hotfix: calendar layout restore === */
@media (min-width: 900px){
  /* Revert potential flex on cells */
  .ga-calendar td{ display:table-cell; position:relative; vertical-align:top; }
  /* Ensure content spacing at bottom so button doesn't overlap */
  .ga-calendar td{ padding-bottom:38px; } /* reserve space for 1-line button */
  /* Bottom-align Book now via absolute positioning */
  .ga-calendar td .ga-btn.ga-booknow{
    position:absolute; left:6px; right:6px; bottom:6px;
    margin:0; width:auto; padding:6px 10px; font-size:12px; line-height:1.1; border-radius:8px;
  }
  /* Keep names above */
  .ga-calendar td .ga-names{ margin-bottom:6px; }
}


/* ===== v1.10.10: Button readability & elevated hourly slots ===== */

/* Make Book now readable: full width, slightly smaller font if needed, no ellipsis */
@media (min-width: 900px){
  .ga-calendar td{ position:relative; padding-bottom:42px; } /* reserve space */
  .ga-calendar td .ga-btn.ga-booknow{
    position:absolute; left:6px; right:6px; bottom:6px;
    width:auto;
    padding:8px 10px;
    font-size:12px;         /* slightly smaller for readability */
    line-height:1.2;
    white-space:nowrap;     /* keep to one line */
    text-overflow:clip;     /* show full text */
    overflow:visible;       /* allow full label */
    border-radius:10px;
  }
}

/* On mobile & other areas, ensure Book now buttons are at least readable */
.ga-btn.ga-booknow{
  min-height:36px;
  font-size:1em;
  border-radius:10px;
}

/* Elevated hourly slots (cards) */
.ga-slots .ga-slot{
  border:1px solid #e5e5e5;
  border-radius:12px;
  background:#fff;
  padding:10px 12px;
  margin:8px 0;
  display:flex; align-items:center; justify-content:space-between;
  box-shadow:0 2px 8px rgba(0,0,0,0.06);
  transition:transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.ga-slots .ga-slot:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 16px rgba(0,0,0,0.10);
}

/* Subtle status accent (left border) */
.ga-slots .ga-slot.free{ border-left:4px solid #67c26b; }
.ga-slots .ga-slot.partial{ border-left:4px solid #e2b15b; }
.ga-slots .ga-slot.full{ border-left:4px solid #d26767; background:#fafafa; }

/* Slot content text sizing */
.ga-slots .ga-slot > div:first-child{ font-weight:600; }
.ga-slots .ga-slot .ga-badge{ margin-right:8px; }

/* Mobile tweaks: tighter but touch-friendly */
@media (max-width: 520px){
  .ga-slots .ga-slot{ padding:10px; margin:6px 0; }
  .ga-slots .ga-slot > div:first-child{ font-size:14px; }
  .ga-btn.ga-booknow{ font-size:14px; min-height:38px; }
}

/* Dark mode adjustments */
@media (prefers-color-scheme: dark){
  .ga-slots .ga-slot{ background:#151515; border-color:#2a2a2a; box-shadow:0 2px 10px rgba(0,0,0,0.35); }
  .ga-slots .ga-slot:hover{ box-shadow:0 8px 24px rgba(0,0,0,0.5); }
  .ga-slots .ga-slot.full{ background:#121212; }
}


/* ===== v1.10.11: Desktop calendar equal columns + tight button height ===== */
@media (min-width:900px){
  /* Force equal widths across 7 columns */
  .ga-calendar{ table-layout:fixed; width:100%; }
  .ga-calendar th, .ga-calendar td{ width:14.2857% !important; } /* 100/7 */
  /* Restore normal cell layout (already absolute btn uses reserved space) */
  .ga-calendar td{ position:relative; padding-bottom:34px; }

  /* Book now: height ~= text height, one line */
  .ga-calendar td .ga-btn.ga-booknow{
    position:absolute; left:6px; right:6px; bottom:6px;
    padding:4px 8px;
    font-size:11.5px;
    line-height:1.05;
    height:auto;
    border-radius:8px;
    white-space:nowrap;
    overflow:visible;
    text-overflow:clip;
  }
  /* Keep names content spaced from button */
  .ga-calendar td .ga-names{ margin-bottom:6px; }
}


/* v1.10.12: replace delete button with trash icon after the name in the calendar list */
.ga-names .ga-trash{display:inline-block;margin-left:6px;cursor:pointer;vertical-align:middle;line-height:1;font-size:1em;opacity:.8}
.ga-names .ga-trash:hover{opacity:1;transform:scale(1.05)}
.ga-names .ga-trash[aria-disabled="true"]{opacity:.4;cursor:not-allowed;transform:none}


/* v1.10.13: Slimmer "Book now" in calendar & agenda only */
.ga-calendar .ga-open-day,
.ga-agenda .ga-open-day {
  padding: 4px 8px;
  line-height: 1.2;
  font-size: 0.9em;
  height: auto;
  min-height: 0;
}


/* v1.10.18: hide trash for past calendar days (web) */
.ga-calendar td.disabled-day .ga-trash{ display:none !important; }


/* v1.10.19-neutral: Neutral "Book now" button (web + mobile) */
.ga-btn.ga-open-day{
  background:#fff !important;
  color:#111 !important;
  border:1px solid #111 !important;
}
.ga-btn.ga-open-day:hover{ filter:brightness(0.96); }



/* v1.10.20-gray3d: subtle gray + 3D "Book now" (web + mobile) */
.ga-btn.ga-open-day{
  background: linear-gradient(#f5f5f5, #e6e6e6) !important;
  color:#111 !important;
  border:1px solid #9a9a9a !important;
  box-shadow: 0 1px 0 #ffffff inset, 0 2px 0 rgba(0,0,0,.03), 0 2px 6px rgba(0,0,0,.04);
  border-radius: 10px;
}
.ga-btn.ga-open-day:hover{
  background: linear-gradient(#f2f2f2, #e0e0e0) !important;
  box-shadow: 0 1px 0 #ffffff inset, 0 3px 0 rgba(0,0,0,.03), 0 3px 8px rgba(0,0,0,.06);
}
.ga-btn.ga-open-day:active{
  background: linear-gradient(#e6e6e6, #dcdcdc) !important;
  transform: translateY(1px);
  box-shadow: 0 0 0 #ffffff inset, 0 2px 0 rgba(0,0,0,.04) inset;
}
.ga-btn.ga-open-day:focus{
  outline: none;
  box-shadow: 0 0 0 2px #111, 0 0 0 4px #fff;
}



/* v1.10.21-gray3d-text: subtler gray label for "Book now" */
.ga-btn.ga-open-day{
  color:#555 !important; /* subtler text color */
}
.ga-btn.ga-open-day:hover{
  color:#444 !important;
}
.ga-btn.ga-open-day:active{
  color:#333 !important;
}
.ga-btn.ga-open-day:focus{
  color:#444 !important;
}

