/* Appointment pages only. Global header, footer, typography and background come from base.html. */
.booking-page {
  --booking-brand: var(--theme-color, #971b26);
  --booking-brand-soft: rgba(151, 27, 38, .07);
  --booking-green: #23845a;
  --booking-green-soft: #eff9f4;
  --booking-text: var(--text-main, #444);
  --booking-muted: var(--text-muted, #777);
  --booking-border: #e3e5e8;
  color: var(--booking-text);
  padding: 0 18px 10px;
}

.booking-page *, .booking-page *::before, .booking-page *::after { box-sizing: border-box; }
.booking-page a { text-decoration: none; }
.booking-smart-header { margin-top: 5px; }
.booking-container { width: min(1180px, 100%); margin: 18px auto 0; }

.booking-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin: 0 auto 18px;
  padding: 10px;
  max-width: 700px;
}
.booking-step { display: flex; align-items: center; color: #8b8f93; font-size: .84rem; white-space: nowrap; }
.booking-step:not(:last-child)::after { content: ''; width: 58px; height: 2px; background: #dfe1e4; margin: 0 12px; }
.booking-step b {
  display: inline-grid; place-items: center; width: 29px; height: 29px; margin-left: 7px;
  border-radius: 50%; background: #e7e8ea; color: #74787c; font-size: .8rem;
}
.booking-step.is-active { color: var(--booking-brand); font-weight: 800; }
.booking-step.is-active b { background: var(--booking-brand); color: #fff; box-shadow: 0 4px 10px rgba(151, 27, 38, .24); }
.booking-step.is-done { color: var(--booking-green); }
.booking-step.is-done b { color: #fff; background: var(--booking-green); }

.booking-card {
  background: rgba(255, 255, 255, .95);
  border: 1px solid rgba(0, 0, 0, .06);
  border-radius: 15px;
  box-shadow: var(--glass-shadow, 0 8px 32px rgba(0, 0, 0, .08));
  padding: 23px;
  margin-bottom: 18px;
}
.booking-intro-card { border-top: 4px solid var(--booking-brand); }
.booking-section-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 14px; }
.booking-section-title { display: flex; align-items: center; gap: 12px; }
.booking-section-title h2 { margin: 0 0 3px; font-size: 1.08rem; color: #3f4245; }
.booking-section-title p { margin: 0; color: var(--booking-muted); font-size: .82rem; }
.booking-title-icon {
  flex: 0 0 42px; width: 42px; height: 42px; display: grid; place-items: center;
  border-radius: 12px; color: var(--booking-brand); background: var(--booking-brand-soft); font-size: 1.1rem;
}
.booking-status-pill {
  flex: 0 0 auto; padding: 6px 13px; border-radius: 30px; color: var(--booking-brand);
  background: var(--booking-brand-soft); border: 1px solid rgba(151, 27, 38, .12); font-size: .76rem; font-weight: 700;
}

.consultation-types { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; margin-top: 19px; }
.consultation-type {
  position: relative; display: flex; align-items: center; gap: 13px; min-height: 82px;
  padding: 14px 16px; border: 2px solid var(--booking-border); border-radius: 13px;
  color: var(--booking-text); background: #fff; transition: .2s ease;
}
.consultation-type:hover, .consultation-type:focus-visible { border-color: rgba(151, 27, 38, .5); transform: translateY(-1px); }
.consultation-type.is-selected { border-color: var(--booking-brand); background: var(--booking-brand-soft); }
.consultation-type-icon {
  flex: 0 0 48px; width: 48px; height: 48px; display: grid; place-items: center;
  border-radius: 12px; color: var(--booking-brand); background: #fff; font-size: 1.25rem;
  border: 1px solid rgba(151, 27, 38, .12);
}
.consultation-type-copy { display: flex; flex-direction: column; min-width: 0; }
.consultation-type-copy strong { font-size: .95rem; color: #3e4144; }
.consultation-type-copy small { color: var(--booking-muted); margin-top: 2px; line-height: 1.65; }
.consultation-check {
  margin-right: auto; flex: 0 0 23px; width: 23px; height: 23px; display: grid; place-items: center;
  color: transparent; background: #fff; border: 1px solid #cfd2d5; border-radius: 50%; font-size: .7rem;
}
.consultation-type.is-selected .consultation-check { color: #fff; border-color: var(--booking-brand); background: var(--booking-brand); }
.booking-note {
  display: flex; gap: 9px; align-items: flex-start; margin-top: 15px; padding: 10px 13px;
  border-radius: 10px; color: #5e6266; background: #f7f7f8; border-right: 3px solid var(--booking-brand); font-size: .8rem;
}
.booking-note i { color: var(--booking-brand); margin-top: 4px; }

.booking-days { border-top: 1px solid #eceef0; }
.booking-day { display: grid; grid-template-columns: 225px 1fr; gap: 18px; align-items: center; padding: 15px 3px; border-bottom: 1px solid #eceef0; }
.booking-day:last-child { border-bottom: 0; }
.booking-day-heading { display: flex; gap: 10px; align-items: center; }
.booking-day-heading > i { color: var(--booking-brand); font-size: 1.08rem; }
.booking-day-heading strong, .booking-day-heading small { display: block; }
.booking-day-heading strong { color: #45484b; font-size: .88rem; }
.booking-day-heading small { color: #92969a; font-size: .72rem; }
.booking-slots { display: flex; flex-wrap: wrap; gap: 8px; }
.booking-slot {
  min-width: 128px; display: flex; align-items: center; justify-content: space-between; gap: 7px;
  padding: 9px 11px; border: 1px solid #b9dacb; border-radius: 9px;
  color: #216d50; background: var(--booking-green-soft); font-size: .78rem; font-weight: 700; transition: .2s ease;
}
.booking-slot:hover, .booking-slot:focus-visible { color: #fff; background: var(--booking-green); border-color: var(--booking-green); }
.booking-slot .fa-chevron-left { font-size: .62rem; opacity: .65; }
.booking-empty { padding: 35px 15px; text-align: center; color: var(--booking-muted); }
.booking-empty > i { color: #b4b7ba; font-size: 2.4rem; }
.booking-empty h3 { color: #55585b; margin: 9px 0 2px; }
.booking-empty p { margin: 0; font-size: .82rem; }
.booking-help { display: flex; justify-content: center; align-items: center; gap: 8px; color: #74787c; font-size: .8rem; }
.booking-help i, .booking-help a { color: var(--booking-brand); font-weight: 700; }

.booking-consultation-info { border-top: 4px solid var(--booking-brand); }
.booking-info-content { margin-top: 18px; color: #5f6367; font-size: .82rem; line-height: 2; }
.booking-info-content p { margin: 0 0 9px; }
.booking-info-content p:last-child { margin-bottom: 0; }
.booking-info-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; margin-top: 17px; }
.booking-info-box { padding: 16px; border: 1px solid #e2e5e8; border-radius: 12px; background: #fafbfc; }
.booking-info-box h3 { margin: 0 0 8px; color: #484c50; font-size: .9rem; }
.booking-info-box h3 i { color: var(--booking-brand); margin-left: 5px; }
.booking-info-box p { margin: 0 0 8px; color: #686c70; font-size: .78rem; line-height: 1.95; }
.booking-info-box p:last-child { margin-bottom: 0; }
.booking-policy-list { margin: 18px 0 0; padding-right: 21px; color: #606469; font-size: .8rem; line-height: 2; }
.booking-policy-list li { margin-bottom: 8px; padding-right: 3px; }
.booking-policy-list li::marker { color: var(--booking-brand); }
.booking-policy-list strong { color: #474b4f; }
.booking-policy-contact { display: flex; align-items: center; gap: 8px; margin: 15px 0 0; padding: 11px 13px; border-radius: 10px; color: #5f6367; background: var(--booking-brand-soft); font-size: .8rem; }
.booking-policy-contact i, .booking-policy-contact a { color: var(--booking-brand); font-weight: 800; }

.booking-layout { display: grid; grid-template-columns: minmax(0, 1fr) 335px; gap: 18px; align-items: start; }
.booking-form-card { border-top: 4px solid var(--booking-brand); }
.booking-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 19px 0 8px; }
.booking-field.is-wide { grid-column: 1 / -1; }
.booking-field label { display: block; margin-bottom: 5px; color: #505357; font-size: .8rem; font-weight: 700; }
.booking-field .required { color: #b62531; margin-right: 2px; }
.booking-field small { display: block; margin-top: 4px; color: #96999c; font-size: .7rem; }
.booking-field .field-input {
  display: block; width: 100%; min-height: 43px; padding: 9px 11px; border: 1px solid #d6d8db;
  border-radius: 9px; color: #3f4245; background: #fff; font-family: inherit; font-size: .84rem; outline: 0; transition: .2s;
}
.booking-field textarea.field-input { min-height: 92px; resize: vertical; }
.booking-field .field-input:focus { border-color: var(--booking-brand); box-shadow: 0 0 0 3px rgba(151, 27, 38, .09); }
.booking-field-error { display: block; margin-top: 4px; color: #ac2833; font-size: .73rem; }
.discount-check-row { min-height: 52px; margin: 6px 0 13px; }
.booking-text-button {
  border: 0; padding: 6px 0; color: var(--booking-brand); background: transparent;
  font-family: inherit; font-size: .78rem; font-weight: 700; cursor: pointer;
}
.booking-text-button:disabled { opacity: .55; cursor: wait; }
.booking-quote { min-height: 23px; color: #666; font-size: .78rem; }
.booking-quote.is-success { color: var(--booking-green); font-weight: 700; }
.booking-quote.is-error { color: #a62b35; }

.booking-primary-button, .booking-secondary-button {
  display: inline-flex; justify-content: center; align-items: center; gap: 8px; min-height: 43px;
  padding: 9px 18px; border-radius: 9px; border: 1px solid transparent; font-family: inherit;
  font-size: .82rem; font-weight: 700; cursor: pointer; transition: .2s ease;
}
.booking-primary-button { color: #fff !important; background: var(--booking-brand); box-shadow: 0 4px 11px rgba(151, 27, 38, .18); }
.booking-primary-button:hover, .booking-primary-button:focus-visible { background: #7d1620; transform: translateY(-1px); }
.booking-primary-button.is-full { width: 100%; }
.booking-secondary-button { color: #5f6367 !important; background: #fff; border-color: #d8dade; }
.booking-secondary-button:hover { background: #f4f5f6; }

.booking-summary { position: sticky; top: 12px; padding: 19px; }
.booking-summary h2 { margin: 0 0 12px; color: #484b4e; font-size: .98rem; }
.booking-summary h2 i { color: var(--booking-brand); margin-left: 5px; }
.booking-summary dl { margin: 0; }
.booking-summary dl > div { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px dashed #e2e4e6; font-size: .77rem; }
.booking-summary dt { color: #7d8185; }
.booking-summary dd { margin: 0; color: #46494c; font-weight: 700; text-align: left; }
.booking-summary .booking-price-row dd { color: var(--booking-brand); }
.booking-summary-note { display: flex; gap: 7px; margin-top: 12px; padding: 9px; border-radius: 8px; color: #666a6e; background: #f6f6f7; font-size: .72rem; }
.booking-summary-note i { color: var(--booking-brand); margin-top: 4px; }
.booking-small-note { color: #898d91; font-size: .72rem; line-height: 1.8; }
.booking-back-link { display: inline-flex; align-items: center; gap: 6px; color: var(--booking-brand) !important; font-size: .74rem; font-weight: 700; }

.booking-centered-card { width: min(560px, 100%); margin: 0 auto 20px; padding: 27px; text-align: center; border-top: 4px solid var(--booking-brand); }
.booking-centered-card h1, .booking-centered-card h2 { margin: 8px 0 3px; color: #46494d; }
.booking-centered-card h1 { font-size: 1.25rem; }
.booking-centered-card h2 { font-size: 1.12rem; }
.booking-centered-card > p { margin: 0; color: var(--booking-muted); font-size: .82rem; }
.booking-result-icon { width: 60px; height: 60px; display: grid; place-items: center; margin: 0 auto; border-radius: 50%; font-size: 1.55rem; }
.booking-result-icon.is-info { color: #2b6f89; background: #eaf4f8; }
.booking-result-icon.is-success { color: #217b4b; background: #e7f5ed; }
.booking-result-icon.is-warning { color: #a87413; background: #fff5dc; }
.booking-result-icon.is-error { color: #a52b35; background: #fbeaec; }
.booking-confirm-summary { margin: 18px 0; padding: 5px 15px; border-radius: 10px; background: #f8f8f9; text-align: right; }
.booking-confirm-summary > div { display: flex; justify-content: space-between; gap: 14px; padding: 8px 0; border-bottom: 1px dashed #dfe1e3; font-size: .77rem; }
.booking-confirm-summary > div:last-child { border-bottom: 0; }
.booking-confirm-summary span { color: #7c8084; }
.booking-confirm-summary strong { color: #46494c; text-align: left; }
.booking-confirm-summary .is-discount strong { color: var(--booking-green); }
.booking-confirm-summary .is-total { margin: 0 -15px -5px; padding: 11px 15px; border-radius: 0 0 10px 10px; background: var(--booking-brand-soft); }
.booking-confirm-summary .is-total strong { color: var(--booking-brand); font-size: .9rem; }
.booking-verify-form { width: min(350px, 100%); margin: 0 auto; }
.booking-verify-form label { display: block; text-align: right; color: #55585b; font-size: .77rem; font-weight: 700; }
.booking-code-input { width: 100%; margin: 5px 0 12px; padding: 8px; border: 1px solid #d2d5d8; border-radius: 9px; text-align: center; direction: ltr; letter-spacing: .28em; font-size: 1.2rem; outline: 0; }
.booking-code-input:focus { border-color: var(--booking-brand); box-shadow: 0 0 0 3px rgba(151, 27, 38, .09); }
.booking-alert { display: flex; align-items: flex-start; gap: 7px; margin: 13px 0; padding: 9px 11px; border-radius: 9px; text-align: right; font-size: .75rem; }
.booking-alert ul { margin: 0; padding-right: 17px; }
.booking-alert.is-error { color: #972d36; background: #fbeaec; border: 1px solid #f0c9cd; }
.booking-result-wrap { padding-top: 30px; }
.booking-result-card { border-top-width: 0; }
.booking-result-actions { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 9px; margin-top: 16px; }
.booking-result-actions form { margin: 0; }
.booking-reference { margin: 15px 0; padding: 9px; color: #5d6165; background: #f6f6f7; border-radius: 8px; font-size: .78rem; }
.booking-code-value { word-break: break-all; font-size: .68rem; }

.booking-page a:focus-visible, .booking-page button:focus-visible, .booking-page input:focus-visible, .booking-page textarea:focus-visible {
  outline: 3px solid rgba(151, 27, 38, .18); outline-offset: 2px;
}

@media (max-width: 820px) {
  .booking-page { padding-inline: 10px; }
  .booking-container { margin-top: 12px; }
  .booking-step:not(:last-child)::after { width: 25px; margin-inline: 7px; }
  .booking-day { grid-template-columns: 1fr; gap: 9px; }
  .booking-layout { display: flex; flex-direction: column; }
  .booking-layout > * { width: 100%; }
  .booking-summary { position: static; order: -1; }
  .booking-summary .booking-small-note { display: none; }
}

@media (max-width: 600px) {
  .booking-smart-header { margin-inline: 0; }
  .booking-smart-header .smart-badges { width: 100%; }
  .booking-smart-header .info-pill:nth-child(n+2) { display: none; }
  .booking-card { padding: 15px; border-radius: 12px; }
  .booking-steps { justify-content: space-between; padding-inline: 0; }
  .booking-step { font-size: .68rem; }
  .booking-step b { width: 24px; height: 24px; margin-left: 4px; }
  .booking-step:not(:last-child)::after { width: 11px; margin-inline: 5px; }
  .booking-section-head { align-items: flex-start; }
  .booking-section-title h2 { font-size: .93rem; }
  .booking-section-title p { font-size: .73rem; }
  .booking-title-icon { flex-basis: 37px; width: 37px; height: 37px; }
  .consultation-types { grid-template-columns: 1fr; gap: 8px; }
  .consultation-type { min-height: 70px; padding: 10px 12px; }
  .consultation-type-icon { flex-basis: 42px; width: 42px; height: 42px; }
  .booking-status-pill { display: none; }
  .booking-slots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking-slot { min-width: 0; padding: 9px 8px; }
  .booking-form-grid { grid-template-columns: 1fr; gap: 10px; }
  .booking-field.is-wide { grid-column: auto; }
  .booking-centered-card { padding: 20px 14px; }
  .booking-confirm-summary > div { font-size: .72rem; }
  .booking-result-actions { flex-direction: column; }
  .booking-result-actions > *, .booking-result-actions form, .booking-result-actions button { width: 100%; }
}

@media (max-width: 370px) {
  .booking-step span { display: none; }
  .booking-step:not(:last-child)::after { width: 55px; }
}

/* Manager pages and the shared calendar status colors. */
.booking-slot.is-reserved, .booking-slot.is-reserved:hover {
  color: #81551c; background: #fff4e3; border-color: #ebc995;
}
.booking-slot.is-reserved small { font-size: .68rem; }
.booking-slot-legend { display: flex; flex-wrap: wrap; gap: 12px 20px; margin: 15px 0; color: #697078; font-size: .78rem; }
.booking-slot-legend > span { display: inline-flex; align-items: center; gap: 7px; }
.booking-slot-legend i { width: 11px; height: 11px; border-radius: 3px; }
.booking-slot-legend .is-available { background: #23845a; }
.booking-slot-legend .is-manual { background: #ac3546; }
.booking-slot-legend .is-reserved { background: #c68a38; }
.booking-slot-legend .is-closed { background: #b0b5bc; }
.booking-manager-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.booking-manager-nav a { padding: 9px 15px; border: 1px solid var(--booking-border); border-radius: 9px; color: #555d65; background: #fff; font-size: .82rem; font-weight: 700; }
.booking-manager-nav a.is-active { background: var(--booking-brand); border-color: var(--booking-brand); color: #fff; }
.booking-manager-section-heading { margin-bottom: 15px; }
.booking-manager-page .booking-day { scroll-margin-top: 15px; }
.booking-manager-page .booking-alert.is-success { background: #eff9f4; border: 1px solid #bddfcd; color: #216d50; }
.booking-manager-slots { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.booking-manager-slot-form { margin: 0; min-width: 0; }
.booking-manager-slot { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 4px; min-width: 0; width: 100%; min-height: 91px; border: 1px solid; border-radius: 10px; padding: 10px 5px; font-family: inherit; text-align: center; }
.booking-manager-slot strong { font-size: .83rem; }
.booking-manager-slot span { font-size: .77rem; font-weight: 700; }
.booking-manager-slot small { font-size: .66rem; opacity: .85; }
button.booking-manager-slot { cursor: pointer; transition: background .15s ease, box-shadow .15s ease; }
.booking-manager-slot.is-available { background: #eff9f4; color: #216d50; border-color: #b9dacb; }
button.booking-manager-slot.is-available:hover { background: #dcefe4; box-shadow: 0 3px 10px rgba(35, 132, 90, .1); }
.booking-manager-slot.is-manual { background: #fcebee; color: #993043; border-color: #eab9c3; }
button.booking-manager-slot.is-manual:hover { background: #f8dce3; }
.booking-manager-slot.is-customer { background: #fff4e3; color: #81551c; border-color: #ebc995; }
.booking-manager-slot.is-closed { background: #f3f4f6; color: #808791; border-color: #e0e3e7; }
.booking-manager-slot-actions { display: grid; gap: 4px; width: 100%; margin-top: 3px; }
.booking-manager-slot-actions form { margin: 0; }
.booking-slot-action { width: 100%; min-height: 25px; padding: 3px 5px; border: 1px solid currentColor; border-radius: 6px; color: #216d50; background: rgba(255, 255, 255, .78); font-family: inherit; font-size: .62rem; font-weight: 700; cursor: pointer; }
.booking-slot-action:hover { background: #fff; box-shadow: 0 2px 7px rgba(0, 0, 0, .08); }
.booking-slot-action.is-danger { color: #993043; }
.booking-manager-slot.is-closed .booking-slot-action { color: #58636d; }
.booking-manager-resend-form { margin: 0; }
.booking-manager-resend-form .booking-text-button { padding: 2px 0; font-size: .65rem; }
.booking-manager-discount-form .booking-form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.booking-manager-discount-form .booking-primary-button { margin-top: 10px; }
.booking-manager-coupons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.booking-manager-coupons > .booking-empty { grid-column: 1 / -1; }
.booking-manager-coupon { padding: 16px; border: 1px solid var(--booking-border); border-radius: 12px; background: #fafbfc; min-width: 0; }
.booking-manager-coupon-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.booking-manager-coupon-top strong { display: block; font-size: .94rem; color: var(--booking-brand); }
.booking-manager-coupon-top small { display: block; margin-top: 3px; font-size: .75rem; color: #777; }
.booking-manager-coupon-status { padding: 4px 8px; border-radius: 20px; background: #eceff3; color: #555d65; font-size: .69rem; white-space: nowrap; }
.booking-manager-code-row { display: flex; gap: 8px; margin: 14px 0 11px; }
.booking-manager-code-row input { flex: 1; min-width: 0; width: 100%; border: 1px dashed #bdc3cc; background: #fff; border-radius: 8px; padding: 8px 10px; font-family: monospace; font-size: .95rem; letter-spacing: .04em; }
.booking-manager-code-row button { flex: 0 0 auto; }
.booking-manager-code-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.booking-manager-code-actions .booking-primary-button,
.booking-manager-code-actions .booking-secondary-button { min-height: 39px; padding: 8px 12px; font-size: .76rem; }
.booking-manager-coupon-details { display: flex; flex-wrap: wrap; gap: 5px 14px; color: #6d747c; font-size: .73rem; }
.booking-manager-coupon-bottom { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 12px; padding-top: 8px; border-top: 1px solid #e4e7eb; }
.booking-manager-coupon-bottom small { font-size: .7rem; color: #777; }
.booking-manager-coupon-bottom form { margin: 0; }
.booking-manager-coupon-bottom button { font-size: .73rem; }
.booking-manager-coupon-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.booking-manager-pagination { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 18px; margin-top: 20px; color: #777; font-size: .8rem; }
.booking-manager-pagination a { color: var(--booking-brand); }

body.booking-modal-open { overflow: hidden; }
.booking-modal[hidden] { display: none; }
.booking-modal { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; padding: 18px; }
.booking-modal-backdrop { position: absolute; inset: 0; background: rgba(25, 29, 33, .62); backdrop-filter: blur(3px); }
.booking-modal-dialog {
  position: relative; z-index: 1; width: min(820px, 100%); max-height: calc(100vh - 36px); overflow-y: auto;
  padding: 22px; border-radius: 16px; background: #fff; box-shadow: 0 24px 70px rgba(0, 0, 0, .25);
}
.booking-modal-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 15px; padding-bottom: 13px; border-bottom: 1px solid #e7e9ec; }
.booking-modal-head h2 { margin: 0; color: #3f4347; font-size: 1.1rem; }
.booking-modal-head p { margin: 3px 0 0; color: var(--booking-muted); font-size: .78rem; }
.booking-modal-close { width: 34px; height: 34px; border: 0; border-radius: 50%; color: #60656a; background: #f1f2f4; font: 1.5rem/1 inherit; cursor: pointer; }
.booking-modal-section { padding: 16px 0; border-bottom: 1px solid #eceef0; }
.booking-modal-section h3 { margin: 0 0 12px; color: #4b4f53; font-size: .9rem; }
.booking-modal-section .booking-form-grid { margin: 12px 0 0; }
.booking-modal-checks { display: flex; flex-wrap: wrap; gap: 10px 25px; }
.booking-check-label { display: inline-flex; align-items: center; gap: 8px; color: #53585d; font-size: .8rem; font-weight: 700; cursor: pointer; }
.booking-check-label input { width: 18px; height: 18px; accent-color: var(--booking-brand); }
.booking-modal-actions { display: flex; align-items: center; gap: 9px; padding-top: 17px; }
.booking-contact-results { display: grid; gap: 5px; margin-top: 5px; }
.booking-contact-result { width: 100%; padding: 9px 11px; border: 1px solid #e0e3e6; border-radius: 8px; color: #454a4e; background: #fff; font-family: inherit; text-align: right; cursor: pointer; }
.booking-contact-result:hover { border-color: var(--booking-brand); background: var(--booking-brand-soft); }
.booking-contact-empty { padding: 8px 2px; color: #858a8f; font-size: .74rem; }
.booking-selected-contact { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 9px; padding: 10px 12px; border-radius: 9px; color: #216d50; background: #eff9f4; font-size: .8rem; font-weight: 700; }
.booking-manager-list-head { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 16px; }
.booking-manager-search { display: flex; gap: 7px; width: min(390px, 100%); }
.booking-manager-search .field-input { flex: 1; min-width: 0; padding: 9px 11px; border: 1px solid #d6d8db; border-radius: 9px; font-family: inherit; }
.booking-contact-list { display: grid; gap: 9px; }
.booking-contact-card { display: grid; grid-template-columns: minmax(180px, 1fr) auto auto; align-items: center; gap: 16px; padding: 13px 15px; border: 1px solid #e1e4e7; border-radius: 11px; background: #fafbfc; }
.booking-contact-card.is-inactive { opacity: .62; }
.booking-contact-card strong, .booking-contact-card small { display: block; }
.booking-contact-card strong { color: #45494d; }
.booking-contact-card a { color: var(--booking-brand); font-size: .78rem; }
.booking-contact-card small { margin-top: 3px; color: #84898e; font-size: .7rem; }
.booking-contact-stats { display: flex; flex-wrap: wrap; gap: 5px; }
.booking-contact-stats span { padding: 4px 8px; border-radius: 20px; color: #667078; background: #eef1f3; font-size: .68rem; }
.booking-contact-actions { display: flex; align-items: center; gap: 12px; }
.booking-contact-actions form { margin: 0; }
@media (max-width: 820px) {
  .booking-info-grid { grid-template-columns: 1fr; }
  .booking-manager-slots { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .booking-contact-card { grid-template-columns: 1fr auto; }
  .booking-contact-stats { grid-column: 1 / -1; grid-row: 2; }
  .booking-manager-discount-form .booking-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking-manager-coupons { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .booking-manager-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking-manager-nav a { padding: 8px 10px; font-size: .74rem; }
  .booking-manager-discount-form .booking-form-grid { grid-template-columns: 1fr; }
  .booking-manager-slot { min-height: 84px; }
  .booking-manager-code-row { align-items: stretch; flex-direction: column; }
  .booking-manager-code-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking-manager-coupon-bottom { flex-wrap: wrap; }
  .booking-modal { padding: 0; align-items: end; }
  .booking-modal-dialog { width: 100%; max-height: 94vh; padding: 16px; border-radius: 16px 16px 0 0; }
  .booking-modal-actions { display: grid; grid-template-columns: 1fr; }
  .booking-modal-actions > * { width: 100%; }
  .booking-manager-list-head { align-items: stretch; flex-direction: column; }
  .booking-manager-search { width: 100%; }
  .booking-contact-card { grid-template-columns: 1fr; gap: 8px; }
  .booking-contact-stats { grid-column: auto; grid-row: auto; }
  .booking-contact-actions { justify-content: space-between; }
}
