/* GTB Booking — front-end calendar. Uses theme tokens with fallbacks. */
.gtb-bk{
  --g:var(--lb-primary,#84BD3F); --gd:var(--lb-primary-dark,#699A2F);
  --acc:var(--lb-accent,#4F7A24); --soft:var(--lb-accent-soft,#EAF3DB);
  --ink:var(--lb-ink,#232B22); --muted:var(--lb-muted,#5C665A);
  --line:var(--lb-line,#E2E0D5); --surface:var(--lb-surface,#fff);
  --radius:var(--lb-radius,14px);
  --hf:var(--lb-font-heading,'Poppins',system-ui,sans-serif);
  --bf:var(--lb-font-body,'Open Sans',system-ui,sans-serif);
  font-family:var(--bf); color:var(--ink); max-width:920px; margin:0 auto;
}
.gtb-bk *{ box-sizing:border-box; }
.gtb-bk__grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; align-items:start; }
@media (max-width:768px){ .gtb-bk__grid{ grid-template-columns:1fr; } }

.gtb-bk__cal, .gtb-bk__panel{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.25rem;
}
.gtb-bk__calhead{ display:flex; align-items:center; justify-content:space-between; margin-bottom:.75rem; }
.gtb-bk__month{ font-family:var(--hf); font-size:1.05rem; }
.gtb-bk__nav{
  width:36px; height:36px; border-radius:9px; border:1px solid var(--line); background:#fff;
  cursor:pointer; font-size:1.2rem; line-height:1; color:var(--ink); transition:all .15s ease;
}
.gtb-bk__nav:hover:not(:disabled){ border-color:var(--g); color:var(--gd); }
.gtb-bk__nav:disabled{ opacity:.35; cursor:not-allowed; }
.gtb-bk__dow{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-bottom:4px; }
.gtb-bk__dow span{ text-align:center; font-size:.72rem; font-weight:700; color:var(--muted); text-transform:uppercase; }
.gtb-bk__days{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.gtb-bk__day{
  aspect-ratio:1/1; border:1px solid transparent; border-radius:9px; background:var(--lb-bg,#FAF9F5);
  color:var(--ink); font-family:var(--bf); font-size:.9rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition:all .12s ease;
}
.gtb-bk__day:hover:not(:disabled){ border-color:var(--g); color:var(--gd); }
.gtb-bk__day:disabled{ color:#c3c3bd; background:transparent; cursor:not-allowed; }
.gtb-bk__day.is-empty{ background:transparent; border:none; cursor:default; }
.gtb-bk__day.is-today{ box-shadow:inset 0 0 0 1px var(--g); }
.gtb-bk__day.is-selected{ background:var(--g); color:#fff; border-color:var(--g); font-weight:700; }
.gtb-bk__hours{ font-size:.78rem; color:var(--muted); margin:.9rem 0 0; text-align:center; }

.gtb-bk__pick{ color:var(--muted); font-size:.95rem; }
.gtb-bk__slots{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1rem; }
.gtb-bk__slot{
  border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:8px;
  padding:.5rem .7rem; font-size:.85rem; font-weight:600; cursor:pointer; transition:all .12s ease;
}
.gtb-bk__slot:hover:not(:disabled){ border-color:var(--g); color:var(--gd); }
.gtb-bk__slot.is-selected{ background:var(--g); border-color:var(--g); color:#fff; }
.gtb-bk__slot:disabled{ opacity:.4; text-decoration:line-through; cursor:not-allowed; }

.gtb-bk__chosen{ background:var(--soft); color:var(--acc); border-radius:9px; padding:.6rem .8rem;
  font-weight:600; font-size:.9rem; margin-bottom:1rem; }
.gtb-bk__label{ display:block; font-family:var(--hf); font-weight:600; font-size:.82rem; margin:.6rem 0 .35rem; }
.gtb-bk__field{
  width:100%; font-family:var(--bf); font-size:.92rem; color:var(--ink); background:var(--lb-bg,#FAF9F5);
  border:1px solid var(--line); border-radius:9px; padding:.6rem .8rem;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.gtb-bk__field:focus{ outline:none; border-color:var(--g); box-shadow:0 0 0 3px rgba(132,189,63,.18); background:#fff; }
select.gtb-bk__field{ cursor:pointer; }
textarea.gtb-bk__field{ resize:vertical; }
.gtb-bk__row{ display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
@media (max-width:480px){ .gtb-bk__row{ grid-template-columns:1fr; } }
.gtb-bk__hp{ position:absolute; left:-9999px; opacity:0; height:0; width:0; }

.gtb-bk__submit{
  width:100%; margin-top:1.1rem; cursor:pointer; border:none; color:#fff; font-family:var(--hf);
  font-weight:700; font-size:1rem; border-radius:10px; padding:.85rem 1.5rem;
  background:linear-gradient(135deg,var(--g),var(--gd)); box-shadow:0 10px 24px rgba(105,154,47,.28);
  transition:transform .15s ease, box-shadow .15s ease;
}
.gtb-bk__submit:hover:not(:disabled){ transform:translateY(-2px); box-shadow:0 14px 28px rgba(105,154,47,.35); }
.gtb-bk__submit:disabled{ opacity:.7; cursor:not-allowed; }
.gtb-bk__status{ font-size:.86rem; color:var(--muted); margin:.6rem 0 0; min-height:1.1em; }
.gtb-bk__status.ok{ color:var(--gd); font-weight:600; }
.gtb-bk__status.err{ color:var(--lb-danger,#C6503D); }

.gtb-bk__done{ text-align:center; padding:1.5rem .5rem; }
.gtb-bk__done-ic{ width:60px; height:60px; border-radius:50%; background:var(--g); color:#fff;
  display:inline-flex; align-items:center; justify-content:center; margin-bottom:.9rem; }
.gtb-bk__done-ic svg{ width:30px; height:30px; }
.gtb-bk__done h3{ font-family:var(--hf); margin:0 0 .4rem; }
.gtb-bk__done-msg{ color:var(--muted); }

@media (prefers-reduced-motion:reduce){ .gtb-bk *{ transition:none !important; } }
