.htb-app{--htb-border:#e7e2d9;--htb-bg:#fbfaf7;--htb-ink:#251f1a;--htb-soft:#6e655e;max-width:1100px;margin:24px auto;font-family:inherit;color:var(--htb-ink)}
.htb-hero{padding:32px;border:1px solid var(--htb-border);border-radius:24px;background:linear-gradient(135deg,#fbfaf7,#f0e9dc);margin-bottom:18px}.htb-hero h2,.htb-section-head h3{margin:.15em 0}.htb-kicker{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--htb-soft)}
.htb-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.htb-choice{appearance:none;border:1px solid var(--htb-border);background:var(--htb-choice-bg,#fff);color:var(--htb-choice-text,inherit);border-radius:20px;padding:22px;text-align:right;cursor:pointer;transition:.18s;display:flex;flex-direction:column;gap:5px;}.htb-choice:hover,.htb-choice.active{background:var(--htb-choice-hover,#fbfaf7);transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.08)}.htb-choice b{font-size:26px}.htb-choice span{font-weight:800;font-size:17px}.htb-choice small,.htb-muted{color:var(--htb-soft)}
.htb-panel-public,.htb-calendar-section{margin-top:18px;border:1px solid var(--htb-border);border-radius:22px;background:#fff;padding:24px}.htb-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.htb-app label{display:flex;flex-direction:column;gap:6px;font-weight:600}.htb-app input,.htb-app textarea{border:1px solid var(--htb-border);border-radius:12px;padding:11px 12px;font:inherit}.htb-app textarea{min-height:70px}.htb-primary,.htb-secondary{border:0;border-radius:var(--htb-button-radius,999px);padding:11px 18px;font:inherit;font-weight:800;cursor:pointer}.htb-primary{background:var(--htb-primary,#251f1a);color:var(--htb-primary-text,#fff);margin-top:12px;transition:.18s}.htb-primary:hover{background:var(--htb-primary-hover,#3a3028)}.htb-secondary{background:var(--htb-secondary,#eee9e1);color:var(--htb-secondary-text,#251f1a);transition:.18s}.htb-secondary:hover{filter:brightness(.96)}.htb-secondary:disabled{opacity:.5}.htb-form-message{margin-top:10px;font-weight:700}
.htb-activities{display:grid;gap:10px}.htb-activity-card{display:flex;justify-content:space-between;align-items:center;gap:15px;border:1px solid var(--htb-border);border-radius:16px;padding:16px}.htb-activity-card h4{margin:7px 0}.htb-activity-card p{margin:0 0 5px}.htb-date-pill{display:inline-block;background:#f1ede7;border-radius:999px;padding:4px 9px;font-size:12px}
.htb-section-head{display:flex;justify-content:space-between;align-items:center;gap:14px}.htb-month-nav{display:flex;align-items:center;gap:10px}.htb-month-nav button{width:36px;height:36px;border-radius:50%;border:1px solid var(--htb-border);background:#fff;font-size:22px;cursor:pointer}.htb-weekdays,.htb-days{display:grid;grid-template-columns:repeat(7,1fr)}.htb-weekdays{margin-top:18px;color:var(--htb-soft);font-size:12px;text-align:center}.htb-day{min-height:115px;border-top:1px solid var(--htb-border);border-left:1px solid var(--htb-border);padding:8px;overflow:hidden}.htb-day:nth-child(7n+1){border-right:1px solid var(--htb-border)}.htb-day b{font-size:13px}.htb-event{width:100%;border:0;border-radius:8px;margin-top:5px;padding:5px 6px;text-align:right;font-size:11px;background:#f2eee8;color:inherit}.htb-event.activity,.htb-event.event{background:#ece8ff}.htb-event.dnd{background:#f8e6e6}.htb-event span{font-weight:800;margin-left:4px}.htb-event small{opacity:.65}.htb-toast{position:fixed;left:20px;bottom:20px;z-index:9999;background:#251f1a;color:#fff;padding:12px 18px;border-radius:999px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}.htb-toast.show{opacity:1;transform:none}
@media(max-width:760px){.htb-choice-grid,.htb-form-grid{grid-template-columns:1fr}.htb-hero,.htb-panel-public,.htb-calendar-section{padding:18px}.htb-calendar{overflow-x:auto}.htb-weekdays,.htb-days{min-width:680px}.htb-section-head{align-items:flex-start;flex-direction:column}.htb-day{min-height:95px}}

/* Compact calendar: intended for home-page modules and narrow sections. */
.htb-calendar-compact{max-width:760px;margin:14px auto}.htb-calendar-compact .htb-calendar-section{padding:14px;border-radius:16px;margin-top:0}.htb-calendar-compact .htb-section-head h3{font-size:18px}.htb-calendar-compact .htb-month-nav{gap:6px}.htb-calendar-compact .htb-month-nav button{width:30px;height:30px;font-size:18px}.htb-calendar-compact .htb-weekdays{margin-top:10px;font-size:11px}.htb-calendar-compact .htb-day{min-height:66px;padding:4px}.htb-calendar-compact .htb-day>b{font-size:11px}.htb-calendar-compact .htb-event{margin-top:2px;padding:3px 4px;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}.htb-calendar-compact .htb-event span{font-size:9px}.htb-calendar-compact .htb-event small{display:none}.htb-more-events{font-size:9px;color:var(--htb-soft);padding:2px 3px;font-weight:700}
@media(max-width:760px){.htb-calendar-compact .htb-calendar{overflow:visible}.htb-calendar-compact .htb-weekdays,.htb-calendar-compact .htb-days{min-width:0}.htb-calendar-compact .htb-day{min-height:56px}.htb-calendar-compact .htb-event{font-size:0;text-align:center;padding:2px}.htb-calendar-compact .htb-event span{font-size:8px;margin:0}.htb-calendar-compact .htb-more-events{text-align:center;font-size:8px;padding:1px}.htb-calendar-compact .htb-section-head{flex-direction:row;align-items:center}}

/* Calendar theme variables (v0.3). */
.htb-calendar-section{background:var(--htb-calendar-bg,#fff);color:var(--htb-calendar-text,#251f1a);border-color:var(--htb-calendar-border,#e5dfd7)}
.htb-calendar-section .htb-weekdays{color:var(--htb-calendar-weekday,#756b63)}
.htb-calendar-section .htb-day{border-color:var(--htb-calendar-border,#e5dfd7)}
.htb-calendar-section .htb-month-nav button{background:var(--htb-calendar-nav-bg,#fff);color:var(--htb-calendar-text,#251f1a);border-color:var(--htb-calendar-border,#e5dfd7)}
.htb-calendar-section .htb-event.activity,.htb-calendar-section .htb-event.event{background:var(--htb-calendar-activity-bg,#ece8ff);color:var(--htb-calendar-activity-text,#251f1a)}
.htb-calendar-section .htb-event.dnd{background:var(--htb-calendar-dnd-bg,#f8e6e6);color:var(--htb-calendar-dnd-text,#251f1a)}
.htb-calendar-section .htb-event.regular{background:var(--htb-calendar-regular-bg,#f2eee8);color:var(--htb-calendar-regular-text,#251f1a)}
.htb-booking-summary{display:inline-block;margin:0 0 16px;padding:7px 11px;border-radius:10px;background:#f7f4ef;font-weight:700;font-size:13px}

.htb-calendar-section .htb-event.service{background:var(--htb-event-bg,#f2eee8);color:var(--htb-event-text,#251f1a)}

/* Calendar typography & background image (v0.5). */
.htb-calendar-section{font-family:var(--htb-calendar-font,inherit);position:relative;overflow:hidden;isolation:isolate}
.htb-calendar-section::before{content:"";position:absolute;inset:0;background-image:var(--htb-calendar-bg-image,none);background-size:cover;background-position:center;background-repeat:no-repeat;opacity:var(--htb-calendar-bg-opacity,0);z-index:0;pointer-events:none}.htb-calendar-section>*{position:relative;z-index:1}
.htb-calendar-section .htb-section-head h3,.htb-calendar-section [data-cal-title]{font-size:var(--htb-calendar-title-size,22px)}
.htb-calendar-section .htb-weekdays{font-size:var(--htb-calendar-weekday-size,12px)}
.htb-calendar-section .htb-day>b{font-size:var(--htb-calendar-day-size,13px)}
.htb-calendar-section .htb-event{font-size:var(--htb-calendar-event-size,11px)}
.htb-calendar-compact .htb-section-head h3,.htb-calendar-compact [data-cal-title]{font-size:calc(var(--htb-calendar-title-size,22px) * .82)}
.htb-calendar-compact .htb-weekdays{font-size:calc(var(--htb-calendar-weekday-size,12px) * .92)}
.htb-calendar-compact .htb-day>b{font-size:calc(var(--htb-calendar-day-size,13px) * .88)}
.htb-calendar-compact .htb-event{font-size:calc(var(--htb-calendar-event-size,11px) * .82)}

.htb-calendar-section .htb-event.holiday{background:var(--htb-calendar-holiday-bg,#fff3cd);color:var(--htb-calendar-holiday-text,#5f4700);cursor:default}.htb-calendar-section .htb-event.holiday-closed{background:var(--htb-calendar-closed-bg,#f8d7da);color:var(--htb-calendar-closed-text,#721c24);cursor:not-allowed}.htb-day.htb-closed-day{background:color-mix(in srgb,var(--htb-calendar-closed-bg,#f8d7da) 18%,transparent)}

/* Next event ticker (v0.7). */
.htb-event-ticker{width:100%;overflow:hidden;background:var(--htb-ticker-bg,#251f1a);color:var(--htb-ticker-text,#fff);font-family:var(--htb-ticker-font,inherit);font-size:var(--htb-ticker-font-size,15px);border-radius:14px}
.htb-event-ticker .htb-ticker-track{display:flex;align-items:center;width:max-content;min-width:100%;padding:8px 0}
.htb-event-ticker .htb-ticker-group{display:flex;align-items:center;gap:26px;flex:none;padding-inline:18px}
.htb-event-ticker .htb-ticker-item{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;line-height:1.4}
.htb-event-ticker .htb-ticker-label{opacity:.82}
.htb-event-ticker .htb-ticker-sep{opacity:.55}
.htb-event-ticker .htb-ticker-button{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;margin-inline-start:4px;border-radius:var(--htb-button-radius,999px);background:var(--htb-ticker-button-bg,#fff);color:var(--htb-ticker-button-text,#251f1a);text-decoration:none;font-weight:700;transition:opacity .2s ease,transform .2s ease}
.htb-event-ticker .htb-ticker-button:hover{opacity:.9;transform:translateY(-1px)}
.htb-ticker-scroll .htb-ticker-track{animation:htbTicker var(--htb-ticker-speed,24s) linear infinite}
.htb-ticker-scroll:hover .htb-ticker-track{animation-play-state:paused}
.htb-ticker-static .htb-ticker-track{width:100%;padding-inline:16px;justify-content:center;flex-wrap:wrap;gap:14px}
.htb-ticker-static .htb-ticker-group{flex-wrap:wrap;justify-content:center}
@keyframes htbTicker{from{transform:translateX(0)}to{transform:translateX(50%)}}
@media (prefers-reduced-motion:reduce){.htb-ticker-scroll .htb-ticker-track{animation:none;transform:none}.htb-ticker-scroll{overflow-x:auto}}
@media(max-width:640px){.htb-event-ticker{border-radius:10px;font-size:calc(var(--htb-ticker-font-size,15px) * .9)}.htb-event-ticker .htb-ticker-track{padding:6px 0}.htb-event-ticker .htb-ticker-button{padding:5px 9px}}
