.cdb-booking {
  --cdb-primary: #1f5d73;
  --cdb-selected: #1f5d73;
  --cdb-busy: #e8eaed;
  --cdb-text: #1f2937;
  --cdb-surface: #ffffff;
  --cdb-border: #d9dee5;
  --cdb-radius: 14px;
  color: var(--cdb-text);
  width: 100%;
}
.cdb-booking *, .cdb-booking *::before, .cdb-booking *::after { box-sizing: border-box; }
.cdb-heading { margin-bottom: 24px; }
.cdb-title { margin: 0 0 8px; line-height: 1.2; }
.cdb-intro { margin: 0; opacity: .78; }
.cdb-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 32px; align-items: start; }
.cdb-calendar-panel, .cdb-form { background: var(--cdb-surface); border: 1px solid var(--cdb-border); border-radius: var(--cdb-radius); padding: clamp(16px, 3vw, 28px); box-shadow: 0 8px 30px rgba(16, 24, 40, .05); }
.cdb-calendar-toolbar { display: grid; grid-template-columns: 42px 1fr 42px; align-items: center; gap: 10px; margin-bottom: 16px; }
.cdb-month-label { text-align: center; font-weight: 700; font-size: 1.08em; text-transform: capitalize; }
.cdb-nav { width: 42px; height: 42px; border: 1px solid var(--cdb-border); border-radius: 10px; background: var(--cdb-surface); color: var(--cdb-text); font-size: 26px; line-height: 1; cursor: pointer; }
.cdb-nav:disabled { opacity: .35; cursor: not-allowed; }
.cdb-weekdays, .cdb-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 7px; }
.cdb-weekdays { margin-bottom: 7px; text-align: center; font-size: .78em; font-weight: 700; opacity: .58; text-transform: uppercase; }
.cdb-day { min-width: 0; aspect-ratio: 1 / .82; min-height: 42px; border: 1px solid var(--cdb-border); border-radius: 10px; background: var(--cdb-surface); color: var(--cdb-text); font: inherit; cursor: pointer; transition: transform .12s ease, border-color .12s ease, background .12s ease, color .12s ease; }
.cdb-day.is-available:hover { transform: translateY(-1px); border-color: var(--cdb-primary); }
.cdb-day.is-selected { background: var(--cdb-selected); border-color: var(--cdb-selected); color: #fff; font-weight: 700; }
.cdb-day.is-busy { background: var(--cdb-busy); color: #7b8490; border-color: transparent; cursor: not-allowed; text-decoration: line-through; opacity: .9; }
.cdb-day-empty { border-color: transparent; background: transparent; }
.cdb-legend { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 18px; font-size: .84em; opacity: .82; }
.cdb-legend span { display: inline-flex; align-items: center; gap: 7px; }
.cdb-dot { width: 11px; height: 11px; border-radius: 50%; border: 1px solid var(--cdb-border); display: inline-block; }
.cdb-dot-available { background: var(--cdb-surface); }
.cdb-dot-selected { background: var(--cdb-selected); border-color: var(--cdb-selected); }
.cdb-dot-busy { background: var(--cdb-busy); border-color: var(--cdb-busy); }
.cdb-selected-summary { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--cdb-border); font-size: .9em; line-height: 1.55; }
.cdb-form { display: grid; gap: 16px; }
.cdb-field label, .cdb-mode-fieldset legend { display: block; font-weight: 650; font-size: .93em; }
.cdb-field label > span, .cdb-mode-fieldset legend > span { color: #b42318; }
.cdb-field input, .cdb-field textarea { width: 100%; margin-top: 7px; border: 1px solid var(--cdb-border); border-radius: 10px; padding: 11px 12px; background: var(--cdb-surface); color: var(--cdb-text); font: inherit; }
.cdb-field input:focus, .cdb-field textarea:focus { outline: 2px solid color-mix(in srgb, var(--cdb-primary) 25%, transparent); border-color: var(--cdb-primary); }
.cdb-mode-fieldset { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 22px; }
.cdb-mode-fieldset legend { width: 100%; margin-bottom: 4px; }
.cdb-mode-fieldset label { display: inline-flex; gap: 7px; align-items: center; cursor: pointer; }
.cdb-submit { border: 0; border-radius: 10px; padding: 13px 18px; background: var(--cdb-primary); color: #fff; font: inherit; font-weight: 700; cursor: pointer; width: 100%; }
.cdb-submit:hover { filter: brightness(.95); }
.cdb-submit:disabled { opacity: .62; cursor: wait; }
.cdb-form-message { min-height: 0; font-size: .9em; }
.cdb-form-message.is-error { color: #b42318; background: #fef3f2; border: 1px solid #fecdca; border-radius: 9px; padding: 10px 12px; }
.cdb-form-message.is-success { color: #067647; background: #ecfdf3; border: 1px solid #abefc6; border-radius: 9px; padding: 10px 12px; }
.cdb-honeypot { position: absolute !important; left: -99999px !important; width: 1px; height: 1px; overflow: hidden; }
.cdb-booking.is-loading .cdb-days { opacity: .55; pointer-events: none; }
@media (max-width: 820px) {
  .cdb-layout { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 480px) {
  .cdb-calendar-panel, .cdb-form { padding: 14px; }
  .cdb-weekdays, .cdb-days { gap: 4px; }
  .cdb-day { min-height: 38px; border-radius: 8px; font-size: .92em; }
  .cdb-calendar-toolbar { grid-template-columns: 38px 1fr 38px; }
  .cdb-nav { width: 38px; height: 38px; }
}
