.booking-portal {
  color-scheme: light;
  font: 16px/1.55 system-ui, sans-serif;
  color: #152c26;
  background: #f5f7f5;
}
.booking-portal * { box-sizing: border-box; }
.booking-portal body { margin: 0; }
.booking-portal .booking-shell {
  max-width: 42rem;
  margin: 2rem auto;
  padding: 1.75rem;
  background: #fff;
  border: 1px solid #d6e2da;
  border-radius: 1rem;
}
.booking-portal :is(h1, h2) { line-height: 1.2; }
.booking-portal h1 { margin: 0 0 1rem; }
.booking-portal :is(p, dl) { margin: .65rem 0 1rem; }
.booking-portal fieldset { border: 0; margin: 0; padding: 0; }
.booking-portal label { display: grid; gap: .25rem; margin: .75rem 0; font-weight: 600; }
.booking-portal label:has(input[type="checkbox"]) { display: flex; align-items: start; gap: .5rem; font-weight: 400; }
.booking-portal :is(input, select, textarea, button) { font: inherit; }
.booking-portal :is(input:not([type="checkbox"]), select, textarea) {
  width: 100%;
  padding: .6rem .75rem;
  border: 1px solid #84968c;
  border-radius: .4rem;
  background: #fff;
  color: inherit;
}
.booking-portal :is(button, .booking-button) {
  display: inline-block;
  padding: .55rem .85rem;
  margin: .25rem .35rem .25rem 0;
  border: 1px solid #225a45;
  border-radius: .45rem;
  color: #153a2b;
  background: #fff;
  cursor: pointer;
}
.booking-portal :is(button[type="submit"], .booking-button) { color: #fff; background: #225a45; text-decoration: none; }
.booking-portal button:disabled { opacity: .55; cursor: wait; }
.booking-portal :focus-visible { outline: 3px solid #2f74b5; outline-offset: 3px; }
.booking-portal .booking-error { color: #8d221d; }
.booking-portal .booking-times { display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); gap: .4rem; }
.booking-portal .booking-times button { margin: 0; }
.booking-portal .booking-times [aria-pressed="true"] { color: #fff; background: #225a45; }
.booking-portal .booking-dim { color: #4e6359; }
@media (max-width: 44rem) {
  .booking-portal .booking-shell { margin: .75rem; padding: 1rem; }
}
