:root{--hhb-gold:#b48a3a;--hhb-text:#25211d;--hhb-soft:#f8f5ef;--hhb-line:#d8d2c7;--hhb-booked:#e4e4e4;--hhb-booked2:#d5d5d5}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--hhb-text);font-family:Georgia,'Times New Roman',serif;font-size:18px}.hhb-wrap{max-width:1180px;margin:0 auto;padding:24px 18px 48px}.hhb-header{text-align:center;margin-bottom:24px}.hhb-logo{font-size:44px;letter-spacing:.08em;color:var(--hhb-gold);line-height:1}.hhb-header h1{font-size:46px;font-weight:400;margin:18px 0 8px}.hhb-header p{max-width:760px;margin:0 auto;line-height:1.45;color:#5d5852}.notice{border:1px solid var(--hhb-line);border-radius:6px;padding:14px 16px;margin:14px 0}.notice.ok{background:#f3fbf1}.notice.error{background:#fff1ee}.calendar-shell{border:1px solid var(--hhb-line);background:#fff}.calendar-toolbar{display:grid;grid-template-columns:44px 90px 1fr 44px;gap:8px;align-items:center;padding:12px}.calendar-toolbar h2{text-align:center;font-weight:400;margin:0;font-size:30px}.calendar-toolbar button,.booking-form button,.admin-button,button{font:inherit;border:1px solid var(--hhb-line);background:#fff;border-radius:5px;padding:8px 12px;cursor:pointer}.calendar-toolbar button:hover,.booking-form button:hover,.admin-button:hover{border-color:var(--hhb-gold)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--hhb-line)}.dow,.day{border-right:1px solid var(--hhb-line);border-bottom:1px solid var(--hhb-line)}.dow{padding:8px;text-align:center;font-weight:700;background:#fafafa}.day{min-height:104px;padding:8px;position:relative;background:#fff}.day:nth-child(7n){border-right:0}.day.out{color:#8d8d8d;background:#fafafa}.day.booked{background:linear-gradient(135deg,var(--hhb-booked),var(--hhb-booked2))}.day.pending{background:linear-gradient(135deg,#fff 0 49%,var(--hhb-gold) 50% 100%)}.day button{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;text-align:left;vertical-align:top;padding:8px;font-weight:700}.day .status{position:absolute;left:8px;right:8px;bottom:8px;font-size:14px;font-family:Arial,sans-serif;background:rgba(255,255,255,.76);padding:3px 5px;border-radius:3px}.mobile-agenda{display:none}.below-grid{display:grid;grid-template-columns:1.6fr .65fr .95fr;gap:22px;margin-top:22px;align-items:start}.booking-form,.legend-card,.contact-card{border:1px solid var(--hhb-line);border-radius:6px;padding:20px;background:#fff}.booking-form h2,.legend-card h2,.contact-card h2{font-size:22px;margin:0 0 14px}.date-row,.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.date-row{align-items:end}.date-row label{display:flex;flex-direction:column;justify-content:flex-end;min-height:0}.date-row label.compact{justify-content:flex-end}.form-grid{grid-template-columns:repeat(3,1fr)}label{display:block;font-weight:700}input,textarea,select{width:100%;font:18px Arial,sans-serif;border:1px solid var(--hhb-line);border-radius:5px;padding:10px;margin-top:6px}textarea{resize:vertical}.wide{grid-column:1/-1}.primary{background:var(--hhb-gold)!important;color:#fff!important;border-color:var(--hhb-gold)!important;padding:12px 20px!important}.swatch{display:inline-block;width:26px;height:26px;border:1px solid var(--hhb-line);vertical-align:middle;margin-right:10px;border-radius:3px}.swatch.booked{background:linear-gradient(135deg,var(--hhb-booked),var(--hhb-booked2))}.swatch.pending{background:linear-gradient(135deg,#fff 0 49%,var(--hhb-gold) 50% 100%)}.swatch.free{background:#fff}.admin-wrap{max-width:1100px;margin:0 auto;padding:24px 16px;font-family:Arial,sans-serif}.admin-wrap h1{font-family:Georgia,'Times New Roman',serif;font-weight:400}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{border:1px solid #ddd;padding:8px;text-align:left;vertical-align:top}.admin-table th{background:#f5f5f5}.admin-actions{display:flex;gap:6px;flex-wrap:wrap}.admin-edit{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.admin-edit .wide{grid-column:1/-1}@media(max-width:1024px){.hhb-header h1{font-size:40px}.below-grid{grid-template-columns:1fr 1fr}.booking-form{grid-column:1/-1}.day{min-height:92px}.date-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){body{font-size:17px}.hhb-wrap{padding:16px 10px 36px}.hhb-header h1{font-size:34px}.calendar-grid{display:none}.mobile-agenda{display:block;border-top:1px solid var(--hhb-line)}.agenda-day{padding:12px;border-bottom:1px solid var(--hhb-line)}.agenda-date{font-weight:700;margin-bottom:8px}.agenda-slot{display:block;width:100%;text-align:left;border:1px solid var(--hhb-line);border-radius:6px;padding:13px;background:#fff;margin:6px 0}.agenda-slot.booked{background:var(--hhb-booked)}.agenda-slot.pending{background:linear-gradient(135deg,#fff 0 49%,var(--hhb-gold) 50% 100%)}.calendar-toolbar{grid-template-columns:44px 1fr 44px}.calendar-toolbar #todayBtn{display:none}.calendar-toolbar h2{font-size:24px}.below-grid,.form-grid,.date-row{grid-template-columns:1fr}.legend-card,.contact-card{padding:16px}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td,.admin-table th{display:block}.admin-table thead{display:none}.admin-table tr{margin-bottom:12px;border:1px solid #ddd}.admin-table td{border:0;border-bottom:1px solid #eee}.admin-edit{grid-template-columns:1fr}}

.hp-field {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.admin-calendar-panel{
  border:1px solid #ddd;
  border-radius:6px;
  background:#fff;
  padding:14px;
  margin:18px 0 24px;
}
.admin-calendar-toolbar{
  display:grid;
  grid-template-columns:120px 1fr 120px;
  gap:10px;
  align-items:center;
  margin-bottom:10px;
}
.admin-calendar-toolbar h2{
  margin:0;
  text-align:center;
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
}
.admin-calendar-legend{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  margin:8px 0 12px;
  font-size:14px;
}
.admin-dot{
  display:inline-block;
  width:12px;
  height:12px;
  border-radius:50%;
  margin-right:6px;
  vertical-align:-1px;
  border:1px solid #bbb;
}
.admin-dot.approved{background:#dcdcdc}
.admin-dot.pending{background:var(--hhb-gold)}
.admin-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  border-top:1px solid #ddd;
  border-left:1px solid #ddd;
}
.admin-cal-dow{
  background:#f5f5f5;
  font-weight:700;
  text-align:center;
  padding:8px;
  border-right:1px solid #ddd;
  border-bottom:1px solid #ddd;
}
.admin-cal-day{
  min-height:118px;
  padding:6px;
  border-right:1px solid #ddd;
  border-bottom:1px solid #ddd;
  background:#fff;
}
.admin-cal-day.out{background:#fafafa;color:#777}
.admin-cal-date{
  font-weight:700;
  margin-bottom:6px;
}
.admin-cal-booking{
  display:block;
  text-decoration:none;
  color:#222;
  border:1px solid #ccc;
  border-left:5px solid #999;
  border-radius:4px;
  padding:5px 6px;
  margin:5px 0;
  background:#f8f8f8;
  font-size:13px;
  line-height:1.25;
}
.admin-cal-booking strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-cal-booking.approved{border-left-color:#777;background:#eeeeee}
.admin-cal-booking.pending{border-left-color:var(--hhb-gold);background:#fff8ec}
.admin-cal-booking:hover{border-color:var(--hhb-gold)}
@media(max-width:800px){
  .admin-calendar-toolbar{grid-template-columns:1fr;}
  .admin-calendar-grid{display:block;border-left:0;}
  .admin-cal-dow{display:none;}
  .admin-cal-day{min-height:auto;border-left:1px solid #ddd;}
  .admin-cal-day.out:not(.has-bookings){display:none;}
}

.day.disabled{background:#f2f2f2;color:#aaa}
.day.disabled button,.agenda-slot.disabled{cursor:not-allowed;color:#999}
.day.disabled .status{background:rgba(255,255,255,.65)}
.agenda-slot.disabled{background:#f2f2f2}
.booking-window-note{font-size:15px;line-height:1.45;color:#5d5852;margin:-6px 0 18px}
.calendar-toolbar button:disabled{opacity:.45;cursor:not-allowed}


.contact-required-note{
  margin:-4px 0 14px;
  font-size:15px;
  line-height:1.45;
  color:#5d5852;
  background:var(--hhb-soft);
  border-left:4px solid var(--hhb-gold);
  padding:10px 12px;
}
.contact-required-note.is-satisfied{
  opacity:.72;
}
.booking-form button.primary:disabled{
  background:#d6d6d6!important;
  color:#777!important;
  border-color:#c8c8c8!important;
  cursor:not-allowed;
}
.booking-form button.primary.is-ready:not(:disabled){
  background:var(--hhb-gold)!important;
  color:#fff!important;
  border-color:var(--hhb-gold)!important;
  cursor:pointer;
}


.manual-booking-panel{
  margin:18px 0 24px;
}
.manual-booking-panel .admin-help{
  margin:0 0 14px;
  color:#5d5852;
  line-height:1.45;
}


.admin-cal-day[role="button"]{
  cursor:pointer;
}
.admin-cal-day[role="button"]:hover{
  outline:2px solid var(--hhb-gold);
  outline-offset:-2px;
}
.admin-cal-day.selected-for-manual{
  outline:3px solid var(--hhb-gold);
  outline-offset:-3px;
  background:#fff8ec;
}
.manual-date-help{
  border-left:4px solid var(--hhb-gold);
  padding:10px 12px;
  background:var(--hhb-soft);
}
.manual-date-help.selected{
  font-weight:700;
}
