/* Self-contained booking UI, aligned with the site's navy/lime Manrope design. */
.jzb-booking {
  --jzb-navy: #101620;
  --jzb-lime: #e8ee57;
  --jzb-ink: #19202a;
  --jzb-muted: #586575;
  --jzb-line: #d9dfe6;
  --jzb-paper: #f4f6f8;
  width: 100%;
  min-width: 0;
  color: var(--jzb-ink);
  font-family: Manrope, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.65;
  margin: 0 0 32px;
}
.jzb-booking *, .jzb-booking *::before, .jzb-booking *::after { box-sizing: border-box; }
.jzb-booking [hidden] { display: none !important; }
.jzb-booking h2, .jzb-booking h3 { color: inherit; margin: 0 0 14px; line-height: 1.25; letter-spacing: -.035em; }
.jzb-booking h2 { font-size: clamp(25px, 2.3vw, 34px); font-weight: 600; }
.jzb-booking h3 { font-size: 18px; font-weight: 700; }
.jzb-booking p { margin: 0 0 16px; }
.jzb-booking a { color: var(--jzb-navy); text-decoration: underline; text-underline-offset: 4px; }
.jzb-booking a:hover { color: #405473; }
.jzb-booking button, .jzb-booking input, .jzb-booking select, .jzb-booking textarea { font-family: inherit; }
.jzb-booking button { touch-action: manipulation; }
.jzb-booking :where(a, button, input, select, textarea):focus-visible { outline: 3px solid #32789a; outline-offset: 3px; }
.jzb-booking button:disabled { cursor: not-allowed; }
.jzb-booking [aria-busy=true] { cursor: progress; }
.jzb-booking .jzb-sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.jzb-booking .jzb-form-lock { display: block; min-width: 0; width: 100%; margin: 0; padding: 0; border: 0; }
.jzb-booking .jzb-form-lock:disabled { opacity: .72; }
.jzb-booking .jzb-panel { min-width: 0; background: #fff; border: 1px solid var(--jzb-line); border-radius: 20px; padding: 30px; }
.jzb-booking .jzb-section-label { margin: 0 0 15px; color: var(--jzb-muted); font-size: 10px; font-weight: 700; letter-spacing: .13em; line-height: 1.5; }
.jzb-booking .jzb-muted { color: var(--jzb-muted); font-size: 13px; line-height: 1.8; }
.jzb-booking .jzb-hint { color: var(--jzb-muted); font-size: 12px; line-height: 1.7; margin: 10px 0 0; }
.jzb-booking .jzb-process { display: flex; flex-wrap: wrap; gap: 18px 32px; padding: 0 0 24px; }
.jzb-booking .jzb-process > span { display: flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 600; }
.jzb-booking .jzb-process b { display: grid; place-items: center; width: 29px; height: 29px; border: 1px solid #bbc5d0; border-radius: 50%; font-size: 10px; }
.jzb-booking .jzb-callout { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 25px 30px; background: var(--jzb-navy); color: #fff; border-radius: 18px; margin-bottom: 24px; }
.jzb-booking .jzb-callout strong { font-size: 17px; font-weight: 600; }
.jzb-booking .jzb-callout p { color: #c3ccd8; font-size: 12px; margin: 7px 0 0; max-width: 62ch; }
.jzb-booking .jzb-callout a { color: #c3ccd8; text-decoration: none; white-space: nowrap; font-size: 11px; }
.jzb-booking .jzb-callout b { display: block; color: var(--jzb-lime); font-size: 19px; margin-top: 4px; }
.jzb-booking .jzb-public-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); gap: 24px; align-items: start; }
.jzb-booking .jzb-duration { border: 0; padding: 0; margin: 25px 0 28px; min-width: 0; }
.jzb-booking .jzb-duration legend { padding: 0; margin-bottom: 12px; font-size: 13px; font-weight: 700; }
.jzb-booking .jzb-duration-options { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.jzb-booking .jzb-duration-options label { position: relative; cursor: pointer; min-width: 0; }
.jzb-booking .jzb-duration-options input { position: absolute; width: 1px; height: 1px; padding: 0; opacity: 0; }
.jzb-booking .jzb-duration-options span { display: grid; place-items: center; min-height: 44px; padding: 8px 2px; border: 1px solid #bac4cf; border-radius: 10px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.jzb-booking .jzb-duration-options input:checked + span { color: var(--jzb-lime); background: var(--jzb-navy); border-color: var(--jzb-navy); }
.jzb-booking .jzb-duration-options input:focus-visible + span { outline: 3px solid #32789a; outline-offset: 3px; }
.jzb-booking .jzb-calendar-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 21px; }
.jzb-booking .jzb-calendar-nav h3 { font-size: 18px; text-align: center; margin: 0; text-transform: capitalize; line-height: 1.35; }
.jzb-booking .jzb-icon-button { display: inline-grid; place-items: center; width: 42px; height: 42px; min-width: 42px; padding: 0; border: 1px solid #b9c3ce; border-radius: 50%; background: transparent; color: var(--jzb-navy); font-size: 21px; line-height: 1; }
.jzb-booking .jzb-icon-button:hover:not(:disabled) { background: var(--jzb-lime); border-color: var(--jzb-lime); }
.jzb-booking .jzb-icon-button:disabled { opacity: .35; }
.jzb-booking .jzb-weekdays, .jzb-booking .jzb-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.jzb-booking .jzb-weekdays { text-align: center; color: var(--jzb-muted); font-size: 10px; margin-bottom: 8px; }
.jzb-booking .jzb-day { min-width: 0; min-height: 58px; padding: 9px 2px 7px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; border: 1px solid #cbd4de; border-radius: 10px; background: #fff; color: var(--jzb-ink); font-size: 16px; line-height: 1.1; font-weight: 600; position: relative; }
.jzb-booking .jzb-day:hover:not(:disabled) { background: #f3f6bf; border-color: #a1ae48; }
.jzb-booking .jzb-day[aria-current=date] .jzb-day-number { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
.jzb-booking .jzb-day:disabled { background: #f5f6f8; color: #8b96a4; border-color: #e7ebef; }
.jzb-booking .jzb-day[aria-pressed=true] { background: var(--jzb-navy); border-color: var(--jzb-navy); color: var(--jzb-lime); box-shadow: 0 0 0 1px var(--jzb-navy); }
.jzb-booking .jzb-day[aria-pressed=true]:hover { background: #273649; border-color: #273649; }
.jzb-booking .jzb-availability-dot { display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: #516120; flex-shrink: 0; }
.jzb-booking .jzb-day[aria-pressed=true] .jzb-availability-dot { background: var(--jzb-lime); }
.jzb-booking .jzb-calendar-key { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; color: var(--jzb-muted); font-size: 10px; margin: 17px 0 15px; }
.jzb-booking .jzb-key-selected { width: 12px; height: 12px; margin-left: 9px; border-radius: 3px; background: var(--jzb-navy); }
.jzb-booking .jzb-calendar-status { font-size: 12px; line-height: 1.7; color: var(--jzb-muted); min-height: 21px; }
.jzb-booking .jzb-text-button { border: 0; background: transparent; padding: 8px 0; min-height: 40px; font-size: 12px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; color: var(--jzb-navy); text-align: left; }
.jzb-booking .jzb-text-button:hover { color: #50627c; }
.jzb-booking .jzb-text-button:disabled { opacity: .45; }
.jzb-booking .jzb-time-section { border-top: 1px solid var(--jzb-line); margin-top: 19px; padding-top: 23px; }
.jzb-booking .jzb-time-section h3 { font-size: 15px; line-height: 1.6; text-transform: capitalize; }
.jzb-booking .jzb-times { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.jzb-booking .jzb-times > p { grid-column: 1 / -1; margin: 0; }
.jzb-booking .jzb-time { min-height: 44px; background: #fff; border: 1px solid #b9c4cf; border-radius: 9px; color: var(--jzb-ink); font-size: 13px; font-weight: 600; padding: 8px 3px; }
.jzb-booking .jzb-time:hover { background: #f3f6bf; border-color: #a1ae48; }
.jzb-booking .jzb-time[aria-pressed=true] { background: var(--jzb-lime); border: 2px solid var(--jzb-navy); font-weight: 800; padding: 7px 2px; }
.jzb-booking .jzb-selection { background: var(--jzb-paper); border: 1px solid var(--jzb-line); border-radius: 12px; margin-top: 22px; padding: 15px 17px; font-size: 12px; line-height: 1.8; color: var(--jzb-muted); }
.jzb-booking .jzb-selection.is-selected { border-color: #c7cf6b; background: #f5f8d8; color: #333e15; }
.jzb-booking .jzb-field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.jzb-booking .jzb-field { display: flex; flex-direction: column; align-items: stretch; gap: 8px; min-width: 0; margin: 0 0 20px; font-size: 12px; font-weight: 700; }
.jzb-booking .jzb-field input, .jzb-booking .jzb-field select, .jzb-booking .jzb-field textarea { display: block; width: 100%; min-width: 0; max-width: 100%; min-height: 48px; padding: 11px 12px; background: #fff; border: 1px solid #b7c2cf; border-radius: 9px; color: var(--jzb-ink); font-size: 16px; font-weight: 400; line-height: 1.5; box-shadow: none; }
.jzb-booking .jzb-field textarea { resize: vertical; min-height: 102px; }
.jzb-booking .jzb-field input::placeholder, .jzb-booking .jzb-field textarea::placeholder { color: #737f8e; opacity: 1; font-size: 13px; }
.jzb-booking .jzb-field :where(input, select, textarea):focus { border-color: #32789a; }
.jzb-booking .jzb-field small, .jzb-booking .jzb-check small { display: block; color: var(--jzb-muted); font-size: 11px; line-height: 1.7; font-weight: 400; }
.jzb-booking .jzb-check { display: flex; align-items: flex-start; gap: 11px; font-size: 12px; line-height: 1.8; margin: 0 0 22px; cursor: pointer; }
.jzb-booking .jzb-check input { width: 19px; height: 19px; margin: 3px 0 0; flex-shrink: 0; accent-color: var(--jzb-navy); }
.jzb-booking .jzb-check strong { font-size: 12px; font-weight: 700; }
.jzb-booking .jzb-help-option { border: 1px solid var(--jzb-line); background: var(--jzb-paper); border-radius: 11px; padding: 16px; margin: 3px 0 22px; }
.jzb-booking .jzb-help-option small { margin-top: 4px; }
.jzb-booking .jzb-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.jzb-booking .jzb-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.jzb-booking .jzb-button { display: inline-flex; justify-content: center; align-items: center; gap: 16px; min-height: 46px; border: 1px solid transparent; border-radius: 999px; padding: 12px 21px; font-size: 12px; line-height: 1.5; font-weight: 700; text-decoration: none; color: var(--jzb-navy); white-space: normal; text-align: center; transition: background .2s, border-color .2s; }
.jzb-booking .jzb-button-primary { background: var(--jzb-lime); color: var(--jzb-navy); }
.jzb-booking .jzb-button-primary:hover:not(:disabled) { background: #f1f683; color: var(--jzb-navy); border-color: #a3aa34; }
.jzb-booking .jzb-button-outline { background: transparent; border-color: #afbbc8; }
.jzb-booking .jzb-button-outline:hover:not(:disabled) { background: var(--jzb-paper); border-color: #697b91; color: var(--jzb-navy); }
.jzb-booking .jzb-button:disabled { opacity: .5; }
.jzb-booking .jzb-submit { width: 100%; min-height: 54px; justify-content: space-between; padding: 16px 24px; font-size: 13px; }
.jzb-booking .jzb-submit-note { text-align: center; margin-top: 15px; font-size: 11px; }
.jzb-booking .jzb-error, .jzb-booking .jzb-notice, .jzb-booking .jzb-manager-feedback { padding: 16px 20px; border-radius: 12px; margin: 0 0 20px; font-size: 13px; line-height: 1.8; overflow-wrap: anywhere; }
.jzb-booking .jzb-error { color: #872e2e; background: #fff1ef; border: 1px solid #e3b9b3; }
.jzb-booking .jzb-notice { color: #694d16; background: #fff6dc; border: 1px solid #e6d5a6; }
.jzb-booking .jzb-notice p { margin: 6px 0; }
.jzb-booking .jzb-manager-feedback { color: #20513c; background: #edf7ee; border: 1px solid #aecaaf; }
.jzb-booking .jzb-success { max-width: 790px; padding: 44px; }
.jzb-booking .jzb-success-icon { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--jzb-lime); font-size: 28px; margin-bottom: 26px; }
.jzb-booking .jzb-success h2 { font-size: clamp(30px, 4vw, 46px); }
.jzb-booking .jzb-success-lead { font-size: 20px; line-height: 1.5; font-weight: 600; }
.jzb-booking .jzb-reference { border-top: 1px solid var(--jzb-line); padding-top: 20px; margin: 25px 0; font-size: 13px; }
.jzb-booking .jzb-reference strong { display: inline-block; margin-left: 5px; }

/* Owner workspace. */
.jzb-booking .jzb-manager-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 25px; margin-bottom: 21px; }
.jzb-booking .jzb-manager-heading h2 { font-size: clamp(25px, 3vw, 37px); }
.jzb-booking .jzb-manager-heading .jzb-muted { max-width: 77ch; }
.jzb-booking .jzb-private-badge { white-space: nowrap; font-size: 10px; font-weight: 700; letter-spacing: .05em; border-radius: 999px; border: 1px solid #b9c5d3; padding: 7px 12px; }
.jzb-booking .jzb-manager-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 25px; flex-wrap: wrap; padding: 0 0 25px; }
.jzb-booking .jzb-manager-stats { display: flex; flex-wrap: wrap; gap: 24px; }
.jzb-booking .jzb-manager-stats > span { color: var(--jzb-muted); font-size: 10px; line-height: 1.6; }
.jzb-booking .jzb-manager-stats b { display: block; color: var(--jzb-navy); font-size: 27px; line-height: 1.5; font-weight: 600; letter-spacing: -.04em; }
.jzb-booking .jzb-manager-grid { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.jzb-booking .jzb-calendar-meta { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 10px; color: var(--jzb-muted); margin: -12px 0 13px; }
.jzb-booking .jzb-calendar-meta .jzb-text-button { font-size: 11px; min-height: 35px; }
.jzb-booking .jzb-manager-day { min-height: 88px; padding: 8px 4px; justify-content: flex-start; }
.jzb-booking .jzb-day-markers { display: flex; justify-content: center; flex-wrap: wrap; gap: 3px; width: 100%; }
.jzb-booking .jzb-day-count { padding: 3px 4px; font-size: 9px; line-height: 1; font-weight: 700; border-radius: 3px; white-space: nowrap; }
.jzb-booking .is-pending { color: #735210; background: #fff0c4; }
.jzb-booking .is-confirmed { color: #17533d; background: #dff2e6; }
.jzb-booking .is-blocked { color: #2f405b; background: #e7ebf2; }
.jzb-booking .is-completed { color: #485867; background: #edf0f3; }
.jzb-booking .is-cancelled { color: #823a3a; background: #f8e7e7; }
.jzb-booking .jzb-status-key { display: flex; flex-wrap: wrap; gap: 7px 13px; padding: 18px 0 0; margin: 0 0 15px; font-size: 10px; color: var(--jzb-muted); }
.jzb-booking .jzb-status-key b { font-weight: 800; color: var(--jzb-ink); }
.jzb-booking .jzb-segmented { display: grid; grid-template-columns: 1fr 1fr; padding: 4px; border-radius: 11px; background: #eef1f5; margin-bottom: 24px; gap: 4px; }
.jzb-booking .jzb-segmented button { border: 1px solid transparent; background: transparent; padding: 10px 7px; min-height: 44px; border-radius: 8px; color: #566578; font-size: 12px; font-weight: 700; }
.jzb-booking .jzb-segmented button[aria-pressed=true] { background: #fff; color: var(--jzb-ink); border-color: #dbe2eb; box-shadow: 0 3px 8px #10162009; }
.jzb-booking .jzb-segmented span { display: inline-block; min-width: 21px; background: #e2e7c7; color: #3c4b21; font-size: 10px; border-radius: 99px; padding: 1px 5px; margin-left: 3px; }
.jzb-booking .jzb-agenda > h3 { font-size: 18px; text-transform: capitalize; }
.jzb-booking .jzb-agenda > .jzb-hint { margin-top: 0; margin-bottom: 20px; }
.jzb-booking .jzb-booking-list { display: flex; flex-direction: column; gap: 11px; max-height: 610px; overflow-y: auto; overflow-x: hidden; padding: 3px; margin: -3px; scrollbar-width: thin; scrollbar-color: #a9b6c7 #eff2f5; }
.jzb-booking .jzb-booking-row { width: 100%; min-width: 0; text-align: left; background: #fff; color: var(--jzb-ink); border: 1px solid #cdd5df; border-radius: 12px; padding: 15px 17px; }
.jzb-booking .jzb-booking-row:hover { background: #f8fadd; border-color: #aab751; }
.jzb-booking .jzb-booking-row[aria-pressed=true] { background: #f5f7db; border-color: #798826; box-shadow: inset 3px 0 0 #798826; }
.jzb-booking .jzb-row-top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 12px; margin-bottom: 9px; }
.jzb-booking .jzb-status { display: inline-block; width: fit-content; padding: 3px 8px; border-radius: 5px; font-size: 10px; font-weight: 700; }
.jzb-booking .jzb-row-reference { font-size: 9px; color: var(--jzb-muted); }
.jzb-booking .jzb-row-time { display: block; font-size: 17px; line-height: 1.7; font-weight: 700; }
.jzb-booking .jzb-row-name { display: block; font-size: 13px; font-weight: 600; margin-top: 1px; overflow-wrap: anywhere; }
.jzb-booking .jzb-row-route { display: block; color: var(--jzb-muted); font-size: 11px; line-height: 1.7; margin-top: 4px; overflow-wrap: anywhere; }
.jzb-booking .jzb-empty-state { border: 1px dashed #c0cad6; background: var(--jzb-paper); border-radius: 12px; padding: 28px 20px; color: var(--jzb-muted); font-size: 12px; }
.jzb-booking .jzb-empty-state strong { display: block; color: var(--jzb-ink); font-size: 14px; margin-bottom: 7px; }
.jzb-booking .jzb-empty-state p { margin: 0; }
.jzb-booking .jzb-editor { margin-top: 24px; scroll-margin-top: 122px; }
.jzb-booking .jzb-editor-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 15px; }
.jzb-booking .jzb-editor-top h2 { margin-bottom: 0; }
.jzb-booking .jzb-record-details { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 20px 35px; margin: 25px 0 0; padding: 25px; border: 1px solid var(--jzb-line); background: var(--jzb-paper); border-radius: 14px; }
.jzb-booking .jzb-record-details > div { min-width: 0; overflow-wrap: anywhere; }
.jzb-booking .jzb-record-details > div > span:first-child { color: var(--jzb-muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; display: block; margin-bottom: 7px; }
.jzb-booking .jzb-record-details > div > strong { display: block; font-size: 18px; margin-bottom: 5px; }
.jzb-booking .jzb-record-details a { font-size: 14px; font-weight: 600; }
.jzb-booking .jzb-record-details p { font-size: 13px; margin: 0 0 5px; white-space: pre-wrap; }
.jzb-booking .jzb-record-cargo { grid-column: 1 / -1; padding-top: 18px; border-top: 1px solid var(--jzb-line); }
.jzb-booking [data-record-notification] { margin: 13px 0 26px; }
.jzb-booking .jzb-new-customer { margin: 27px 0; padding-bottom: 7px; border-bottom: 1px solid var(--jzb-line); }
.jzb-booking .jzb-new-customer h3 { margin-bottom: 20px; }
.jzb-booking .jzb-schedule-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr) minmax(0, .8fr) minmax(0, 1.3fr); gap: 16px; margin-top: 25px; }
.jzb-booking .jzb-schedule-fields .jzb-field { margin-bottom: 10px; }
.jzb-booking .jzb-end-time { margin: 0 0 9px; font-size: 13px; font-weight: 700; color: #3e531b; }
.jzb-booking .jzb-end-time.is-invalid { color: #872e2e; }
.jzb-booking .jzb-editor-notes { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 25px; margin-top: 25px; }
.jzb-booking .jzb-editor-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; padding-top: 20px; border-top: 1px solid var(--jzb-line); margin-top: 10px; }
.jzb-booking .jzb-danger { color: #953b38; }
.jzb-booking .jzb-danger:hover { color: #651e1c; }
.jzb-booking [data-editor-reload] { margin-bottom: 20px; }

@media (max-width: 1050px) {
  .jzb-booking .jzb-public-grid, .jzb-booking .jzb-manager-grid { gap: 18px; }
  .jzb-booking .jzb-panel { padding: 23px; }
  .jzb-booking .jzb-schedule-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jzb-booking .jzb-manager-toolbar .jzb-actions { gap: 8px; }
}
@media (max-width: 850px) {
  .jzb-booking .jzb-public-grid, .jzb-booking .jzb-manager-grid { grid-template-columns: minmax(0, 1fr); }
  .jzb-booking .jzb-public-grid { gap: 24px; }
  .jzb-booking .jzb-calendar-panel .jzb-calendar, .jzb-booking .jzb-calendar-panel .jzb-calendar-key { max-width: 560px; margin-left: auto; margin-right: auto; }
  .jzb-booking .jzb-day { min-height: 62px; }
  .jzb-booking .jzb-manager-day { min-height: 91px; }
  .jzb-booking .jzb-times { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .jzb-booking .jzb-manager-heading { display: block; }
  .jzb-booking .jzb-private-badge { display: inline-block; margin: 1px 0 15px; }
  .jzb-booking .jzb-booking-list { max-height: 510px; }
  .jzb-booking .jzb-editor-notes { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .jzb-booking .jzb-editor { scroll-margin-top: 98px; }
}
@media (max-width: 580px) {
  .jzb-booking .jzb-process { gap: 9px 16px; padding-bottom: 20px; }
  .jzb-booking .jzb-process > span { font-size: 10px; gap: 7px; }
  .jzb-booking .jzb-process b { width: 24px; height: 24px; font-size: 9px; }
  .jzb-booking .jzb-callout { display: block; padding: 23px; border-radius: 15px; }
  .jzb-booking .jzb-callout strong { font-size: 16px; }
  .jzb-booking .jzb-callout a { display: block; padding-top: 15px; margin-top: 16px; border-top: 1px solid #ffffff26; }
  .jzb-booking .jzb-callout b { font-size: 21px; }
  .jzb-booking .jzb-panel { padding: 21px; border-radius: 16px; }
  .jzb-booking .jzb-field-row, .jzb-booking .jzb-record-details { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .jzb-booking .jzb-record-details { gap: 22px; padding: 19px; }
  .jzb-booking .jzb-record-cargo { grid-column: auto; }
  .jzb-booking .jzb-times { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .jzb-booking .jzb-calendar-nav { gap: 8px; }
  .jzb-booking .jzb-calendar-nav h3 { font-size: 17px; }
  .jzb-booking .jzb-manager-stats { gap: 24px; }
  .jzb-booking .jzb-manager-toolbar { gap: 20px; }
  .jzb-booking .jzb-manager-toolbar > .jzb-actions { display: grid; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jzb-booking .jzb-manager-toolbar [data-new-manual] { grid-column: 1 / -1; }
  .jzb-booking .jzb-manager-day { min-height: 83px; }
  .jzb-booking .jzb-editor-top h2 { font-size: 25px; }
  .jzb-booking .jzb-editor-actions > .jzb-actions { width: 100%; align-items: stretch; }
  .jzb-booking .jzb-editor-actions .jzb-button { flex: 1 1 140px; }
  .jzb-booking .jzb-success { padding: 28px 23px; }
  .jzb-booking .jzb-success .jzb-actions { flex-direction: column; align-items: stretch; }
  .jzb-booking .jzb-success-lead { font-size: 18px; }
}
@media (max-width: 380px) {
  .jzb-booking .jzb-panel { padding: 16px; }
  .jzb-booking .jzb-callout { padding: 20px; }
  .jzb-booking .jzb-duration-options { gap: 4px; }
  .jzb-booking .jzb-duration-options span { font-size: 10px; border-radius: 7px; }
  .jzb-booking .jzb-weekdays, .jzb-booking .jzb-days { gap: 3px; }
  .jzb-booking .jzb-weekdays { font-size: 9px; }
  .jzb-booking .jzb-day { min-height: 48px; font-size: 14px; border-radius: 7px; padding-left: 2px; padding-right: 2px; }
  .jzb-booking .jzb-manager-day { min-height: 76px; }
  .jzb-booking .jzb-day-count { padding: 2px; font-size: 8px; }
  .jzb-booking .jzb-times { gap: 6px; }
  .jzb-booking .jzb-time { font-size: 12px; }
  .jzb-booking .jzb-calendar-nav h3 { font-size: 16px; }
  .jzb-booking .jzb-icon-button { width: 36px; height: 40px; min-width: 36px; }
  .jzb-booking .jzb-segmented button { font-size: 10px; padding: 9px 4px; }
  .jzb-booking .jzb-manager-stats { gap: 17px; }
  .jzb-booking .jzb-schedule-fields { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .jzb-booking .jzb-help-option { padding: 12px; }
  .jzb-booking .jzb-check { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .jzb-booking *, .jzb-booking *::before, .jzb-booking *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Public booking: a short, guided flow. Owner styles remain independent. */
.jzb-public{max-width:980px;margin:0 auto 24px;font-size:16px}
.jzb-public .jzb-pending-note{display:flex;gap:10px;align-items:center;color:#34432e;background:#edf3df;border-radius:10px;padding:12px 16px;font-size:14px;line-height:1.5;margin:0 0 22px}
.jzb-public .jzb-pending-note>span{font-weight:800}
.jzb-public .jzb-stepper{display:flex;list-style:none;padding:0;margin:0 0 20px;gap:12px}
.jzb-public .jzb-stepper li{flex:1;display:flex;align-items:center;gap:10px;margin:0;color:#67717b;font-size:16px;font-weight:700;padding:0 0 14px;border-bottom:3px solid #dde2e6}
.jzb-public .jzb-stepper li>span{display:grid;place-items:center;flex:none;width:32px;height:32px;background:#e6eaee;border-radius:50%;font-size:14px;color:#424e5a}
.jzb-public .jzb-stepper [aria-current=step]{color:#101620;border-color:#101620}
.jzb-public .jzb-stepper [aria-current=step]>span,.jzb-public .jzb-stepper .is-done>span{background:#e8ee57;color:#101620}
.jzb-public .jzb-panel{padding:30px;border-radius:18px;box-shadow:0 6px 24px #10162005}
.jzb-public .jzb-step-heading{margin-bottom:24px}
.jzb-public .jzb-step-heading .jzb-section-label{font-size:12px;color:#4d5c6a;margin:0 0 8px;letter-spacing:.08em}
.jzb-public .jzb-step-heading h2{font-size:30px;margin:0 0 8px;font-weight:700;scroll-margin-top:110px}
.jzb-public .jzb-step-heading>p:last-child{font-size:16px;line-height:1.6;color:#465361;margin:0}
.jzb-public .jzb-term-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}
.jzb-public .jzb-calendar-nav{margin-bottom:16px}
.jzb-public .jzb-calendar-nav h3{font-size:20px}
.jzb-public .jzb-weekdays{font-size:12px;color:#4b5866}
.jzb-public .jzb-day{min-height:46px;font-size:17px;padding:9px 2px;gap:4px;border-radius:8px}
.jzb-public .jzb-day[aria-pressed=true]{background:#e8ee57;border-color:#101620;color:#101620}
.jzb-public .jzb-day[aria-pressed=true] .jzb-availability-dot{background:#101620}
.jzb-public .jzb-key-selected{background:#e8ee57;border:1px solid #101620}
.jzb-public .jzb-calendar-key{font-size:12px;gap:7px;margin:13px 0 7px}
.jzb-public .jzb-calendar-status{font-size:13px;line-height:1.5}
.jzb-public .jzb-text-button{font-size:14px;min-height:44px;padding:10px 0}
.jzb-public .jzb-time-section{border:0;margin:0;padding:0;max-width:100%}
.jzb-public .jzb-time-section>.jzb-section-label{font-size:11px;margin:0 0 8px}
.jzb-public .jzb-time-section h3{font-size:18px;margin:0 0 16px;line-height:1.5;scroll-margin-top:110px}
.jzb-public .jzb-periods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:14px}
.jzb-public .jzb-periods button{display:block;border:1px solid #b8c3ce;background:#fff;color:#263547;font-size:13px;font-weight:700;border-radius:9px;padding:10px 5px;min-height:59px}
.jzb-public .jzb-periods small{display:block;font-size:12px;font-weight:400;margin-top:1px}
.jzb-public .jzb-periods button[aria-pressed=true]{background:#101620;color:#fff;border-color:#101620}
.jzb-public .jzb-periods button:disabled{opacity:.45}
.jzb-public .jzb-times{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.jzb-public .jzb-time{font-size:16px;min-height:47px}
.jzb-public .jzb-hint{font-size:14px;line-height:1.6;color:#4f5e6c}
.jzb-public .jzb-duration-disclosure{margin-top:22px;border-top:1px solid #d9dfe6;padding-top:6px}
.jzb-public .jzb-duration-disclosure summary{cursor:pointer;font-size:14px;line-height:1.6;padding:13px 0;display:list-item}
.jzb-public .jzb-duration-disclosure summary>span{float:right;text-decoration:underline;font-weight:700;margin-left:12px}
.jzb-public .jzb-duration{margin:12px 0 20px}
.jzb-public .jzb-duration legend{font-size:15px}
.jzb-public .jzb-duration-options span{font-size:14px}
.jzb-public .jzb-selection{font-size:15px;line-height:1.6;margin-top:14px;padding:14px 17px}
.jzb-public .jzb-selection.needs-selection{background:#fff1dc;border-color:#c39438;color:#64430b}
.jzb-public .jzb-step-actions{display:flex;align-items:center;justify-content:space-between;gap:22px;border-top:1px solid #d9dfe6;margin-top:24px;padding-top:20px}
.jzb-public .jzb-step-actions>p{font-size:13px;line-height:1.6;max-width:32ch;margin:0;color:#4f5e6c}
.jzb-public .jzb-button{min-height:52px;font-size:16px;padding:13px 24px;border-radius:12px}
.jzb-public .jzb-button-primary{background:#101620;color:#e8ee57;border:1px solid #101620}
.jzb-public .jzb-button-primary:hover:not(:disabled){background:#26364b;color:#f4f795;border-color:#26364b}
.jzb-public .jzb-submit{width:auto;justify-content:center}
.jzb-public .jzb-field-row{gap:22px}
.jzb-public .jzb-field{font-size:16px;gap:9px;margin-bottom:24px}
.jzb-public .jzb-field input,.jzb-public .jzb-field textarea{font-size:17px;min-height:54px;padding:13px 14px}
.jzb-public .jzb-field input::placeholder,.jzb-public .jzb-field textarea::placeholder{font-size:15px;color:#647180}
.jzb-public .jzb-field small,.jzb-public .jzb-check small{font-size:14px;line-height:1.6}
.jzb-public .jzb-check{font-size:15px;line-height:1.7;gap:13px}
.jzb-public .jzb-check input{width:23px;height:23px}
.jzb-public .jzb-check strong{font-size:16px}
.jzb-public .jzb-help-option{padding:18px}
.jzb-public .jzb-scope-note{font-size:14px;line-height:1.7;color:#4f5e6c}
.jzb-public .jzb-review{border:1px solid #d7dfe5;background:#f5f7f9;padding:20px 24px;border-radius:12px;margin:4px 0 25px}
.jzb-public .jzb-review h3{font-size:20px;margin:0 0 14px}
.jzb-public .jzb-review>div{padding:12px 0;border-top:1px solid #dae0e6}
.jzb-public .jzb-review>div>span{display:block;font-size:12px;color:#546171;margin-bottom:5px}
.jzb-public .jzb-review strong,.jzb-public .jzb-review p{font-size:15px;line-height:1.7;overflow-wrap:anywhere;white-space:pre-wrap;display:block;margin:0}
.jzb-public .jzb-review .jzb-text-button{min-height:35px;padding:4px 0;font-size:13px}
.jzb-public .jzb-error{margin-top:20px;font-size:15px}
.jzb-public .jzb-success{max-width:none}
.jzb-public .jzb-success p{font-size:16px}
.jzb-public .jzb-submit-note{margin:18px 0 0}
@media(max-width:700px){
 .jzb-public .jzb-panel{padding:20px 17px;border-radius:14px}
 .jzb-public .jzb-step-heading h2{font-size:25px}
 .jzb-public .jzb-step-heading>p:last-child{font-size:15px}
 .jzb-public .jzb-step-heading{margin-bottom:22px}
 .jzb-public .jzb-stepper{gap:8px;margin-bottom:16px}
 .jzb-public .jzb-stepper li{font-size:13px;gap:6px;padding-bottom:11px}
 .jzb-public .jzb-stepper li>span{width:26px;height:26px;font-size:12px}
 .jzb-public .jzb-term-grid{grid-template-columns:1fr;gap:23px}
 .jzb-public .jzb-time-section{border-top:1px solid #d9dfe6;padding-top:20px}
 .jzb-public .jzb-time-section:not(:has([data-periods]:not([hidden]))){display:none}
 .jzb-public .jzb-day{min-height:44px}
 .jzb-public .jzb-day-gap{min-height:44px}
 .jzb-public .jzb-day .jzb-availability-dot{display:none}
 .jzb-public .jzb-calendar-key{font-size:12px}
 .jzb-public .jzb-duration-disclosure summary{font-size:13px}
 .jzb-public .jzb-duration-options{gap:4px}
 .jzb-public .jzb-duration-options span{font-size:12px}
 .jzb-public .jzb-step-actions{flex-direction:column;align-items:stretch;gap:14px}
 .jzb-public .jzb-step-actions .jzb-button{width:100%;order:-1}
 .jzb-public .jzb-step-actions .jzb-text-button{text-align:center}
 .jzb-public .jzb-step-actions>p{text-align:center;max-width:none}
 .jzb-public .jzb-field-row{grid-template-columns:1fr;gap:0}
 .jzb-public .jzb-review{padding:17px}
 .jzb-public .jzb-pending-note{font-size:13px;padding:12px;margin-bottom:17px}
}
.jzb-public .jzb-time-section h3{text-transform:none}
