.tbt-booking {
  --tbt-primary: #0156b3;
  --tbt-primary-dark: #003f86;
  --tbt-accent: #ff9f00;
  --tbt-border: #dbe3ec;
  --tbt-muted: #64748b;
  --tbt-danger: #b91c1c;
  --tbt-radius: 14px;
  max-width: 820px;
  margin: 32px auto;
  color: #172033;
  font-family: inherit;
}

.tbt-booking *, .tbt-booking *::before, .tbt-booking *::after { box-sizing: border-box; }
.tbt-booking [hidden] { display: none !important; }
.tbt-booking__zalo-widget { width:100%; margin:22px 0 0; padding:16px; overflow:hidden; color:var(--tbt-text-color); background:#f8fbff; border:1px solid var(--tbt-form-border); border-radius:var(--tbt-input-radius); }
.tbt-booking__zalo-widget-heading { display:flex; max-width:500px; margin:0 auto 13px; flex-direction:column; gap:4px; line-height:1.45; }
.tbt-booking__zalo-widget-heading strong { color:var(--tbt-heading-color); font-size:15px; }
.tbt-booking__zalo-widget-heading span { color:var(--tbt-help-color); font-size:var(--tbt-help-font-size); }
.tbt-booking__zalo-widget > .zalo-consent-widget { position:relative !important; inset:auto !important; bottom:auto !important; right:auto !important; display:block !important; width:min(100%,500px) !important; height:320px; max-width:100%; margin:0 auto; overflow:hidden; visibility:visible !important; opacity:1 !important; line-height:0; }
.tbt-booking__zalo-widget > .zalo-consent-widget iframe { display:block; width:100% !important; max-width:100%; height:320px !important; border:0; }
.tbt-booking__zalo-widget.is-zalo-initializing > .zalo-consent-widget { visibility:hidden !important; pointer-events:none; }
.tbt-booking__zalo-widget-fallback { display:flex; min-height:180px; padding:24px; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:var(--tbt-text-color); text-align:center; line-height:1.5; }
.tbt-booking__zalo-widget-fallback[hidden] { display:none !important; }
.tbt-booking__zalo-widget-fallback strong { color:var(--tbt-heading-color); font-size:15px; }
.tbt-booking__zalo-widget-fallback span { max-width:420px; color:var(--tbt-help-color); font-size:var(--tbt-help-font-size); }
.tbt-booking__zalo-widget-fallback button { display:inline-flex; min-height:42px; margin:6px 0 0; padding:9px 16px; align-items:center; justify-content:center; color:#fff; background:var(--tbt-primary); border:0; border-radius:var(--tbt-button-radius); font:inherit; font-weight:700; line-height:1.2; cursor:pointer; }
.tbt-booking__zalo-care-consent { display:flex; max-width:500px; margin:13px auto 0; align-items:flex-start; gap:9px; color:var(--tbt-text-color); font-size:13px; line-height:1.45; cursor:pointer; }
.tbt-booking__zalo-care-consent input { width:18px; height:18px; margin:1px 0 0; flex:0 0 auto; accent-color:var(--tbt-primary); }
.tbt-booking__zalo-widget.is-zalo-fallback > .zalo-consent-widget { display:none !important; }
@media (max-width:900px) {
  .tbt-booking__zalo-widget > .zalo-consent-widget,
  .tbt-booking__zalo-widget > .zalo-consent-widget iframe { height:360px !important; }
}
@media (max-width:640px) {
  .tbt-booking__zalo-widget { width:calc(100vw - 40px); max-width:500px; margin-left:50%; padding:12px 0; transform:translateX(-50%); }
  .tbt-booking__zalo-widget-heading { padding:0 12px; margin-bottom:10px; }
	.tbt-booking__zalo-widget > .zalo-consent-widget,
	.tbt-booking__zalo-widget > .zalo-consent-widget iframe { height:400px !important; }
	.tbt-booking__zalo-widget-fallback { min-height:210px; padding:20px 14px; }
	.tbt-booking__zalo-widget-fallback button { width:100%; }
}
.tbt-booking__form, .tbt-booking__success { padding: clamp(18px, 4vw, 36px); background: #fff; border: 1px solid var(--tbt-border); border-radius: var(--tbt-radius); box-shadow: 0 14px 40px rgba(15, 23, 42, .08); }
.tbt-booking__header { margin-bottom: 28px; }
.tbt-booking__header h2 { margin: 3px 0 8px; font-size: clamp(26px, 4vw, 36px); }
.tbt-booking__header p { margin: 0; color: var(--tbt-muted); }
.tbt-booking__eyebrow { color: var(--tbt-primary) !important; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.tbt-booking__section { padding: 24px 0; border-top: 1px solid var(--tbt-border); }
.tbt-booking__section h3 { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; font-size: 18px; }
.tbt-booking__section h3 > span { display: inline-grid; width: 28px; height: 28px; place-items: center; color: #fff; background: var(--tbt-primary); border-radius: 50%; font-size: 13px; }
.tbt-booking__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; }
.tbt-booking__field { display: flex; flex-direction: column; gap: 7px; margin-top: 14px; }
.tbt-booking__grid > [data-field] { grid-column: span var(--tbt-field-span-desktop, 6); min-width: 0; }
.tbt-booking__grid .tbt-booking__field { margin-top: 0; }
.tbt-booking__field--full { grid-column: 1 / -1; }
.tbt-booking label { font-size: 14px; font-weight: 600; }
.tbt-booking label b { color: var(--tbt-danger); }
.tbt-booking input:not([type="radio"]):not([type="checkbox"]), .tbt-booking select, .tbt-booking textarea { width: 100%; margin: 0; padding: 11px 13px; color: #172033; background: #fff; border: 1px solid var(--tbt-border); border-radius: 9px; font: inherit; line-height: 1.4; }
.tbt-booking input:focus, .tbt-booking select:focus, .tbt-booking textarea:focus { outline: 3px solid rgba(1, 86, 179, .13); border-color: var(--tbt-primary); }
.tbt-booking__modes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.tbt-booking__mode { cursor: pointer; }
.tbt-booking__mode input { position: absolute; opacity: 0; pointer-events: none; }
.tbt-booking__mode span { display: grid; min-height: 72px; padding: 12px; place-items: center; text-align: center; border: 1px solid var(--tbt-border); border-radius: 10px; }
.tbt-booking__mode input:checked + span { color: var(--tbt-primary); background: #eef6ff; border-color: var(--tbt-primary); box-shadow: inset 0 0 0 1px var(--tbt-primary); }
.tbt-booking__slots { display: flex; flex-wrap: wrap; gap: 8px; min-height: 42px; align-items: center; color: var(--tbt-muted); }
.tbt-booking__slot { min-width: 74px; margin: 0; padding: 9px 12px; color: var(--tbt-primary); background: #fff; border: 1px solid var(--tbt-border); border-radius: 8px; cursor: pointer; }
.tbt-booking__slot:hover:not(:disabled), .tbt-booking__slot.is-selected { color: #fff; background: var(--tbt-primary); border-color: var(--tbt-primary); }
.tbt-booking__slot:disabled { color: #94a3b8; background: #f1f5f9; cursor: not-allowed; text-decoration: line-through; }
.tbt-booking__consent { display: grid; grid-template-columns: auto 1fr; gap: 9px; align-items: start; cursor: pointer; }
.tbt-booking__consent input { margin-top: 3px; }
.tbt-booking__consent .tbt-booking__error { grid-column: 2; }
.tbt-booking__error { min-height: 0; color: var(--tbt-danger); font-size: 12px; }
.tbt-booking__help { color: var(--tbt-muted); font-size: 12px; font-weight: 400; line-height: 1.5; }
.tbt-booking select[multiple] { min-height: 112px; padding-block: 7px; }
.tbt-booking__select-search { margin-bottom: 6px !important; }
.tbt-booking__input-wrap { display: flex; width: 100%; align-items: stretch; }
.tbt-booking__input-wrap > input, .tbt-booking__input-wrap > textarea { flex: 1 1 auto; min-width: 0; }
.tbt-booking__input-wrap > .tbt-booking__affix { display: inline-flex; padding: 0 12px; align-items: center; color: var(--tbt-muted); background: #f4f7fa; border: 1px solid var(--tbt-border); font-size: 13px; white-space: nowrap; }
.tbt-booking__input-wrap > .tbt-booking__affix:first-child { border-right: 0; border-radius: 9px 0 0 9px; }
.tbt-booking__input-wrap > .tbt-booking__affix:first-child + input, .tbt-booking__input-wrap > .tbt-booking__affix:first-child + textarea { border-radius: 0 9px 9px 0; }
.tbt-booking__input-wrap > input:not(:last-child), .tbt-booking__input-wrap > textarea:not(:last-child) { border-radius: 9px 0 0 9px; }
.tbt-booking__input-wrap > .tbt-booking__affix:last-child { border-left: 0; border-radius: 0 9px 9px 0; }
.tbt-booking__label--hidden > label:first-child { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.tbt-booking__label--bottom > label:first-child { order: 2; }
.tbt-booking__label--bottom > input, .tbt-booking__label--bottom > select, .tbt-booking__label--bottom > textarea, .tbt-booking__label--bottom > .tbt-booking__input-wrap, .tbt-booking__label--bottom > .tbt-booking__custom-options, .tbt-booking__label--bottom > .tbt-booking__file-control { order: 1; }
.tbt-booking__label--bottom > .tbt-booking__help { order: 3; }
.tbt-booking__label--bottom > .tbt-booking__error { order: 4; }
.tbt-booking__label--left, .tbt-booking__label--right { display: grid; grid-template-columns: minmax(110px, 32%) minmax(0, 1fr); align-items: center; column-gap: 12px; }
.tbt-booking__label--left > input, .tbt-booking__label--left > select, .tbt-booking__label--left > textarea, .tbt-booking__label--left > .tbt-booking__input-wrap, .tbt-booking__label--left > .tbt-booking__custom-options, .tbt-booking__label--left > .tbt-booking__file-control { grid-column: 2; grid-row: 1; }
.tbt-booking__label--left > .tbt-booking__help, .tbt-booking__label--left > .tbt-booking__error, .tbt-booking__label--right > .tbt-booking__help, .tbt-booking__label--right > .tbt-booking__error { grid-column: 2; }
.tbt-booking__label--left > .tbt-booking__help--below-label { grid-column: 1; }
.tbt-booking__label--right { grid-template-columns: minmax(0, 1fr) minmax(110px, 32%); }
.tbt-booking__label--right > label:first-child { grid-column: 2; grid-row: 1; }
.tbt-booking__label--right > .tbt-booking__help--below-label { grid-column: 2; }
.tbt-booking__label--right > input, .tbt-booking__label--right > select, .tbt-booking__label--right > textarea, .tbt-booking__label--right > .tbt-booking__input-wrap, .tbt-booking__label--right > .tbt-booking__custom-options, .tbt-booking__label--right > .tbt-booking__file-control { grid-column: 1; grid-row: 1; }
.tbt-booking .has-error input, .tbt-booking .has-error select, .tbt-booking .has-error textarea, .tbt-booking .has-error .tbt-booking__mode span { border-color: var(--tbt-danger); }
.tbt-booking__notice { margin: 0 0 16px; padding: 12px 14px; color: #991b1b; background: #fef2f2; border: 1px solid #fecaca; border-radius: 9px; }
.tbt-booking__submit { width: 100%; margin: 0; padding: 14px 20px; color: #fff; background: var(--tbt-primary); border: 0; border-radius: 10px; font: inherit; font-weight: 700; cursor: pointer; }
.tbt-booking__submit:hover { background: var(--tbt-primary-dark); }
.tbt-booking__submit:disabled { opacity: .65; cursor: wait; }
.tbt-booking__success { text-align: center; }
.tbt-booking__success-icon { display: grid; width: 64px; height: 64px; margin: 0 auto 18px; place-items: center; color: #fff; background: #059669; border-radius: 50%; font-size: 32px; }
.tbt-booking__success strong { display: inline-block; margin-top: 10px; padding: 10px 16px; color: var(--tbt-primary); background: #eef6ff; border-radius: 8px; font-size: 20px; }
.tbt-booking-message { padding: 14px; border-left: 4px solid var(--tbt-accent, #ff9f00); background: #fff8e8; }

.tbt-booking__documents { margin: 18px 0; padding: 13px 18px; background: #fff; border: 1px dashed #2780da; border-radius: 4px; }
.tbt-booking__documents > strong { display: inline-block; margin-bottom: 7px; color: #174c7b; }
.tbt-booking__documents ul { margin: 0; padding-left: 21px; }
.tbt-booking__documents li { margin: 5px 0; color: #1766c1; }
.tbt-booking__documents a { color: #1766c1; text-decoration: none; }
.tbt-booking__documents a:hover { text-decoration: underline; }
.tbt-booking__privacy-note { margin: 24px 10px 0; color: #1762ba; font-size: 14px; font-style: italic; text-align: center; }

.tbt-booking__progress { margin: 0 0 20px; }
.tbt-booking__progress-track { height: 7px; overflow: hidden; background: #e4edf6; border-radius: 10px; }
.tbt-booking__progress-track span { display: block; width: var(--tbt-progress, 0%); height: 100%; background: var(--tbt-primary); border-radius: inherit; transition: width .2s; }
.tbt-booking__progress-label { display: flex; margin-bottom: 8px; justify-content: space-between; color: var(--tbt-muted); font-size: 12px; }
.tbt-booking__progress-label.is-title-hidden { justify-content: flex-end; }
.tbt-booking__step > h3 { align-items: flex-start; }
.tbt-booking__step > h3 small { display: block; margin-top: 3px; color: var(--tbt-muted); font-size: 12px; font-weight: 400; }
.tbt-booking__step-group { margin: 18px 0 24px; }
.tbt-booking__step-group h4 { margin: 0 0 13px; color: var(--tbt-text); font-size: 15px; }
.tbt-booking__step-actions { display: flex; margin-top: 22px; justify-content: space-between; gap: 12px; }
.tbt-booking__step-actions button { min-width: 120px; padding: 11px 18px; border: 1px solid var(--tbt-border); border-radius: 9px; background: #fff; cursor: pointer; }
.tbt-booking__step-actions button[data-step-next] { margin-left: auto; color: #fff; background: var(--tbt-primary); border-color: var(--tbt-primary); }
.tbt-booking.is-multi-step .tbt-booking__submit { width: min(260px, 100%); margin-left: auto; }

@media (max-width: 900px) {
  .tbt-booking__grid > [data-field] { grid-column: span var(--tbt-field-span-tablet, 12); }
}

@media (max-width: 640px) {
	.tbt-booking__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
	.tbt-booking__grid > [data-field] { grid-column: span var(--tbt-field-span-mobile, 12); }
	.tbt-booking__label--left, .tbt-booking__label--right { display: flex; }
	.tbt-booking__custom-options--columns-3, .tbt-booking__custom-options--columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tbt-booking__modes { grid-template-columns: 1fr; }
  .tbt-booking__mode span { min-height: 52px; }
}

.tbt-booking__honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.tbt-booking__custom-options { display:flex; flex-wrap:wrap; gap:10px 18px; padding:10px 0; }
.tbt-booking__custom-options--vertical { flex-direction:column; align-items:flex-start; }
.tbt-booking__custom-options--horizontal { flex-direction:row; }
.tbt-booking__custom-options--columns-2,.tbt-booking__custom-options--columns-3,.tbt-booking__custom-options--columns-4 { display:grid; width:100%; }
.tbt-booking__custom-options--columns-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.tbt-booking__custom-options--columns-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.tbt-booking__custom-options--columns-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.tbt-booking__custom-options label,.tbt-booking__custom-check { display:inline-flex; align-items:center; gap:7px; }
.tbt-booking__other-option { flex-wrap:wrap; }
.tbt-booking__other-option [data-other-text] { flex:1 1 150px; min-height:36px !important; padding:7px 10px !important; }
.tbt-booking__custom-options input,.tbt-booking__custom-check input { width:auto; min-height:0; margin:0; }
.tbt-booking__consent-field .tbt-booking__custom-check { cursor:pointer; }
.tbt-booking__consent-field .tbt-booking__custom-check span { line-height:1.5; }
.tbt-booking__field--heading,.tbt-booking__field--paragraph,.tbt-booking__field--divider { align-self:center; }
.tbt-booking__custom-heading { margin:8px 0 2px; color:var(--tbt-primary); font-size:1.35em; }
.tbt-booking__custom-paragraph p { margin:5px 0; }
.tbt-booking__custom-divider { width:100%; margin:12px 0; border:0; border-top:1px solid rgba(20,100,200,.22); }

/* Design tokens shared with the visual Builder. Inline variables on each form
 * keep different forms independent when several shortcodes share one page. */
.tbt-booking {
  --tbt-page-background: #f8fafc;
  --tbt-form-background: #fff;
  --tbt-form-border: #dbe3ec;
  --tbt-header-background: #eff7ff;
  --tbt-header-text: #172033;
  --tbt-section-background: #fff;
  --tbt-heading-color: #172033;
  --tbt-text-color: #64748b;
  --tbt-label-color: #30425a;
  --tbt-input-background: #fff;
  --tbt-input-text: #172033;
  --tbt-input-border: #dbe3ec;
  --tbt-input-focus-border: var(--tbt-primary);
  --tbt-input-focus-ring: var(--tbt-primary);
  --tbt-placeholder: #8794a6;
  --tbt-button-background: var(--tbt-primary);
  --tbt-button-text: #fff;
  --tbt-button-hover: var(--tbt-primary-dark);
  --tbt-help-color: #64748b;
  --tbt-error-color: #b91c1c;
  --tbt-progress-background: #e4edf6;
  --tbt-progress-color: var(--tbt-primary);
  --tbt-font-family: inherit;
  --tbt-base-font-size: 14px;
  --tbt-title-font-size: 32px;
  --tbt-input-font-size: 14px;
  --tbt-input-border-width: 1px;
  --tbt-input-focus-ring-width: 3px;
  --tbt-label-font-size: 14px;
  --tbt-label-font-weight: 600;
  --tbt-label-gap: 7px;
  --tbt-button-padding-x: 20px;
  --tbt-button-font-size: 14px;
  --tbt-button-font-weight: 700;
  --tbt-form-border-width: 1px;
  --tbt-form-shadow: 0 14px 40px rgba(15,23,42,.10);
  --tbt-form-radius: 14px;
  --tbt-input-radius: 9px;
  --tbt-header-radius: 9px;
  --tbt-section-radius: 9px;
  --tbt-button-radius: 10px;
  --tbt-help-font-size: 12px;
  --tbt-error-font-size: 12px;
  --tbt-progress-height: 7px;
  --tbt-navigation-button-padding-x: 18px;
  --tbt-form-max-width: 820px;
  --tbt-form-padding: var(--tbt-form-padding-desktop, 36px);
  --tbt-section-padding: var(--tbt-section-padding-desktop, 24px);
  --tbt-field-gap: var(--tbt-field-gap-desktop, 16px);
  --tbt-input-height: var(--tbt-input-height-desktop, 44px);
  --tbt-textarea-min-height: var(--tbt-textarea-min-height-desktop, 110px);
  --tbt-input-padding-y: var(--tbt-input-padding-y-desktop, 11px);
  --tbt-input-padding-x: var(--tbt-input-padding-x-desktop, 13px);
  --tbt-button-height: var(--tbt-button-height-desktop, 48px);
  --tbt-header-padding: var(--tbt-header-padding-desktop, 20px);
  --tbt-header-margin-bottom: var(--tbt-header-margin-bottom-desktop, 24px);
  --tbt-navigation-button-height: var(--tbt-navigation-button-height-desktop, 44px);
  width: 100%;
  max-width: var(--tbt-form-max-width);
  padding: clamp(8px, 1.4vw, 16px);
  box-sizing: border-box;
  color: var(--tbt-text-color);
  background: var(--tbt-page-background);
  border-radius: calc(var(--tbt-form-radius) + 6px);
  font-family: var(--tbt-font-family);
  font-size: var(--tbt-base-font-size);
}
.tbt-booking__form, .tbt-booking__success {
  padding: var(--tbt-form-padding);
  color: var(--tbt-text-color);
  background: var(--tbt-form-background);
  border: var(--tbt-form-border-width) solid var(--tbt-form-border);
  border-radius: var(--tbt-form-radius);
  box-shadow: var(--tbt-form-shadow);
}
.tbt-booking__header {
  margin-bottom: var(--tbt-header-margin-bottom);
  padding: var(--tbt-header-padding);
  color: var(--tbt-header-text);
  background: var(--tbt-header-background);
  border-radius: var(--tbt-header-radius);
}
.tbt-booking__header h2 { color: var(--tbt-header-text); font-size: var(--tbt-title-font-size); }
.tbt-booking__header p, .tbt-booking__eyebrow { color: var(--tbt-header-text) !important; }
.tbt-booking__header p { opacity: .88; }
.tbt-booking__section {
  margin-top: 10px;
  padding: var(--tbt-section-padding);
  background: var(--tbt-section-background);
  border-color: var(--tbt-input-border);
  border-radius: var(--tbt-section-radius);
}
.tbt-booking__section h3, .tbt-booking__step-group h4, .tbt-booking__custom-heading { color: var(--tbt-heading-color); }
.tbt-booking__section h3 > span { color: var(--tbt-button-text); background: var(--tbt-primary); }
.tbt-booking__grid { gap: var(--tbt-field-gap); }
.tbt-booking__field { gap:var(--tbt-label-gap); }
.tbt-booking label { color: var(--tbt-label-color); font-size:var(--tbt-label-font-size); font-weight:var(--tbt-label-font-weight); }
.tbt-booking input:not([type="radio"]):not([type="checkbox"]), .tbt-booking select, .tbt-booking textarea {
  min-height:var(--tbt-input-height);
  padding:var(--tbt-input-padding-y) var(--tbt-input-padding-x);
  color: var(--tbt-input-text);
  background: var(--tbt-input-background);
  border:var(--tbt-input-border-width) solid var(--tbt-input-border);
  border-radius: var(--tbt-input-radius);
  font-size:var(--tbt-input-font-size);
}
.tbt-booking input:not([type="radio"]):not([type="checkbox"]), .tbt-booking select:not([multiple]) { height:var(--tbt-input-height); }
.tbt-booking textarea { min-height:var(--tbt-textarea-min-height); }
.tbt-booking select[multiple] { min-height:max(112px,var(--tbt-input-height)); }
.tbt-booking input:focus, .tbt-booking select:focus, .tbt-booking textarea:focus { border-color:var(--tbt-input-focus-border); outline:0; box-shadow:0 0 0 var(--tbt-input-focus-ring-width) rgba(20,100,200,.16); box-shadow:0 0 0 var(--tbt-input-focus-ring-width) color-mix(in srgb,var(--tbt-input-focus-ring) 18%,transparent); }
.tbt-booking label b { color:var(--tbt-error-color); }
.tbt-booking .has-error input, .tbt-booking .has-error select, .tbt-booking .has-error textarea, .tbt-booking .has-error .tbt-booking__mode span { border-color:var(--tbt-error-color); }
.tbt-booking input::placeholder, .tbt-booking textarea::placeholder { color: var(--tbt-placeholder); opacity: 1; }
.tbt-booking__input-wrap > .tbt-booking__affix { color: var(--tbt-text-color); border-color: var(--tbt-input-border); }
.tbt-booking__mode span, .tbt-booking__slot, .tbt-booking__step-actions button {
  color: var(--tbt-input-text);
  background: var(--tbt-input-background);
  border-color: var(--tbt-input-border);
  border-radius: var(--tbt-input-radius);
}
.tbt-booking__mode input:checked + span { color: var(--tbt-primary); }
.tbt-booking__slot:hover:not(:disabled), .tbt-booking__slot.is-selected,
.tbt-booking__step-actions button[data-step-next] { color: var(--tbt-button-text); background: var(--tbt-primary); border-color: var(--tbt-primary); }
.tbt-booking__help { color:var(--tbt-help-color); font-size:var(--tbt-help-font-size); }
.tbt-booking__error { color:var(--tbt-error-color); font-size:var(--tbt-error-font-size); }
.tbt-booking__slots, .tbt-booking__progress-label,
.tbt-booking__step > h3 small, .tbt-booking__privacy-note { color: var(--tbt-text-color); }
.tbt-booking__submit {
  min-height:var(--tbt-button-height);
  padding-right:var(--tbt-button-padding-x);
  padding-left:var(--tbt-button-padding-x);
  color: var(--tbt-button-text);
  background: var(--tbt-button-background);
  border-radius: var(--tbt-button-radius);
  font-size:var(--tbt-button-font-size);
  font-weight:var(--tbt-button-font-weight);
}
.tbt-booking__submit:hover, .tbt-booking__step-actions button[data-step-next]:hover { color: var(--tbt-button-text); background: var(--tbt-button-hover); }

.tbt-booking__progress-track { height:var(--tbt-progress-height); background:var(--tbt-progress-background); }
.tbt-booking__progress-track span { background:var(--tbt-progress-color); }
.tbt-booking__step-actions button { min-height:var(--tbt-navigation-button-height); padding-right:var(--tbt-navigation-button-padding-x); padding-left:var(--tbt-navigation-button-padding-x); font-size:var(--tbt-button-font-size); font-weight:var(--tbt-button-font-weight); }
.tbt-booking__step-actions button[data-step-next] { background:var(--tbt-button-background); border-color:var(--tbt-button-background); }

/* Field Settings > Kiểu trường: chỉ ghi đè field đã bật, các field khác tiếp tục kế thừa style chung. */
.tbt-booking .tbt-booking__field.has-custom-style label { color:var(--tbt-field-label-color); font-size:var(--tbt-field-label-font-size); }
.tbt-booking .tbt-booking__field.has-custom-style input:not([type="radio"]):not([type="checkbox"]),.tbt-booking .tbt-booking__field.has-custom-style select,.tbt-booking .tbt-booking__field.has-custom-style textarea { padding:var(--tbt-field-input-padding-y) var(--tbt-field-input-padding-x); color:var(--tbt-field-input-text); border-color:var(--tbt-field-input-border); border-radius:var(--tbt-field-input-radius); background:var(--tbt-field-input-background); font-size:var(--tbt-field-input-font-size); }
.tbt-booking .tbt-booking__field.has-custom-style .tbt-booking__mode span,.tbt-booking .tbt-booking__field.has-custom-style .tbt-booking__slot,.tbt-booking .tbt-booking__field.has-custom-style .tbt-booking__documents,.tbt-booking .tbt-booking__field.has-custom-style .tbt-booking__file-visual { padding:var(--tbt-field-input-padding-y) var(--tbt-field-input-padding-x); color:var(--tbt-field-input-text); border-color:var(--tbt-field-input-border); border-radius:var(--tbt-field-input-radius); background:var(--tbt-field-input-background); font-size:var(--tbt-field-input-font-size); }
.tbt-booking .tbt-booking__field.has-custom-style .tbt-booking__input-wrap > .tbt-booking__affix { color:var(--tbt-field-input-text); border-color:var(--tbt-field-input-border); background:var(--tbt-field-input-background); }
.tbt-booking .tbt-booking__field.has-custom-style .tbt-booking__mode input:checked + span,.tbt-booking .tbt-booking__field.has-custom-style .tbt-booking__slot:hover:not(:disabled),.tbt-booking .tbt-booking__field.has-custom-style .tbt-booking__slot.is-selected { color:var(--tbt-button-text); border-color:var(--tbt-primary); background:var(--tbt-primary); box-shadow:inset 0 0 0 1px var(--tbt-primary); }

@media (max-width: 900px) {
  .tbt-booking {
    --tbt-form-padding: var(--tbt-form-padding-tablet, 24px);
    --tbt-section-padding: var(--tbt-section-padding-tablet, 20px);
    --tbt-field-gap: var(--tbt-field-gap-tablet, 14px);
    --tbt-input-height:var(--tbt-input-height-tablet, 44px);
    --tbt-textarea-min-height:var(--tbt-textarea-min-height-tablet, 104px);
    --tbt-input-padding-y:var(--tbt-input-padding-y-tablet, 11px);
    --tbt-input-padding-x:var(--tbt-input-padding-x-tablet, 13px);
    --tbt-button-height:var(--tbt-button-height-tablet, 48px);
    --tbt-header-padding:var(--tbt-header-padding-tablet, 18px);
    --tbt-header-margin-bottom:var(--tbt-header-margin-bottom-tablet, 20px);
    --tbt-navigation-button-height:var(--tbt-navigation-button-height-tablet, 44px);
  }
}
@media (max-width: 640px) {
  .tbt-booking {
    --tbt-form-padding: var(--tbt-form-padding-mobile, 18px);
    --tbt-section-padding: var(--tbt-section-padding-mobile, 16px);
    --tbt-field-gap: var(--tbt-field-gap-mobile, 12px);
    --tbt-input-height:var(--tbt-input-height-mobile, 48px);
    --tbt-textarea-min-height:var(--tbt-textarea-min-height-mobile, 96px);
    --tbt-input-padding-y:var(--tbt-input-padding-y-mobile, 12px);
    --tbt-input-padding-x:var(--tbt-input-padding-x-mobile, 12px);
    --tbt-button-height:var(--tbt-button-height-mobile, 50px);
    --tbt-header-padding:var(--tbt-header-padding-mobile, 16px);
    --tbt-header-margin-bottom:var(--tbt-header-margin-bottom-mobile, 16px);
    --tbt-navigation-button-height:var(--tbt-navigation-button-height-mobile, 46px);
    margin: 18px auto;
    padding: 6px;
  }
}

/* Per-field responsive sizing from Builder resize handles. */
.tbt-booking [data-field][style*="--tbt-field-height"] { --tbt-field-height: var(--tbt-field-height-desktop, auto); }
.tbt-booking [data-field][style*="--tbt-field-height"] input:not([type="radio"]):not([type="checkbox"]),
.tbt-booking [data-field][style*="--tbt-field-height"] select,
.tbt-booking [data-field][style*="--tbt-field-height"] textarea { height:var(--tbt-field-height); min-height:var(--tbt-field-height); }
.tbt-booking [data-field][style*="--tbt-field-height"] .tbt-booking__modes .tbt-booking__mode span,
.tbt-booking [data-field][style*="--tbt-field-height"] .tbt-booking__custom-options,
.tbt-booking [data-field][style*="--tbt-field-height"] .tbt-booking__documents { min-height:var(--tbt-field-height); }
@media (max-width:900px) {
  .tbt-booking [data-field][style*="--tbt-field-height"] { --tbt-field-height:var(--tbt-field-height-tablet, var(--tbt-field-height-desktop, auto)); }
}
@media (max-width:640px) {
  .tbt-booking [data-field][style*="--tbt-field-height"] { --tbt-field-height:var(--tbt-field-height-mobile, var(--tbt-field-height-tablet, var(--tbt-field-height-desktop, auto))); }
}

/* Responsive position and width controls for the form header and submit button. */
.tbt-booking {
  --tbt-submit-default-width: 100%;
  --tbt-header-align: var(--tbt-header-align-desktop, left);
  --tbt-header-width: var(--tbt-header-width-desktop, 100%);
  --tbt-header-margin-left: var(--tbt-header-margin-left-desktop, 0);
  --tbt-header-margin-right: var(--tbt-header-margin-right-desktop, 0);
  --tbt-submit-justify: var(--tbt-submit-justify-desktop, center);
  --tbt-submit-width: var(--tbt-submit-width-desktop, var(--tbt-submit-default-width));
}
.tbt-booking .tbt-booking__header {
  width: var(--tbt-header-width);
  margin-right: var(--tbt-header-margin-right);
  margin-left: var(--tbt-header-margin-left);
  text-align: var(--tbt-header-align);
}
.tbt-booking__submit-row { display:flex; width:100%; margin-top:22px; justify-content:var(--tbt-submit-justify); }
.tbt-booking .tbt-booking__submit,
.tbt-booking.is-multi-step .tbt-booking__submit {
  width: var(--tbt-submit-width);
  margin: 0;
}
@media (max-width:900px) {
  .tbt-booking {
    --tbt-header-align: var(--tbt-header-align-tablet, var(--tbt-header-align-desktop, left));
    --tbt-header-width: var(--tbt-header-width-tablet, var(--tbt-header-width-desktop, 100%));
    --tbt-header-margin-left: var(--tbt-header-margin-left-tablet, var(--tbt-header-margin-left-desktop, 0));
    --tbt-header-margin-right: var(--tbt-header-margin-right-tablet, var(--tbt-header-margin-right-desktop, 0));
    --tbt-submit-justify: var(--tbt-submit-justify-tablet, var(--tbt-submit-justify-desktop, center));
    --tbt-submit-width: var(--tbt-submit-width-tablet, var(--tbt-submit-width-desktop, var(--tbt-submit-default-width)));
  }
}

/* Native dropdown indicator, applied last so presets cannot hide it. */
.tbt-booking select:not([multiple]) {
	padding-right:38px !important;
	-webkit-appearance:none;
	appearance:none;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235e7188' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
	background-repeat:no-repeat !important;
	background-position:right 12px center !important;
	background-size:16px 16px !important;
	cursor:pointer;
}
.tbt-booking select:not([multiple]):hover,
.tbt-booking select:not([multiple]):focus { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231464c8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important; }
.tbt-booking select:not([multiple]):disabled { cursor:not-allowed; opacity:.65; }
.tbt-booking select[multiple] { background-image:none !important; }

.tbt-booking .tbt-booking__section--ungrouped,
.tbt-booking__step-group--ungrouped { margin:0 0 18px; }
@media (max-width:640px) {
  .tbt-booking {
    --tbt-header-align: var(--tbt-header-align-mobile, var(--tbt-header-align-tablet, left));
    --tbt-header-width: var(--tbt-header-width-mobile, var(--tbt-header-width-tablet, 100%));
    --tbt-header-margin-left: var(--tbt-header-margin-left-mobile, var(--tbt-header-margin-left-tablet, 0));
    --tbt-header-margin-right: var(--tbt-header-margin-right-mobile, var(--tbt-header-margin-right-tablet, 0));
    --tbt-submit-justify: var(--tbt-submit-justify-mobile, var(--tbt-submit-justify-tablet, center));
    --tbt-submit-width: var(--tbt-submit-width-mobile, var(--tbt-submit-width-tablet, 100%));
  }
}
.tbt-booking__field--visually-hidden{display:none!important}
.tbt-booking__rating{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px}.tbt-booking__rating input{position:absolute;opacity:0;pointer-events:none}.tbt-booking__rating label{cursor:pointer;margin:0}.tbt-booking__rating label span[aria-hidden="true"]{font-size:30px;line-height:1;color:#cbd5e1;transition:color .15s ease}.tbt-booking__rating label:hover span[aria-hidden="true"],.tbt-booking__rating label:hover~label span[aria-hidden="true"],.tbt-booking__rating label:has(input:checked) span[aria-hidden="true"],.tbt-booking__rating label:has(input:checked)~label span[aria-hidden="true"]{color:#f59e0b}.tbt-booking__custom-html{width:100%}
.tbt-booking__file-control { position:relative; width:100%; min-height:max(76px,var(--tbt-field-height,0px)); }
.tbt-booking__file-control > input[type="file"] { position:absolute; z-index:2; inset:0; width:100%; height:100%!important; min-height:100%!important; margin:0; padding:0; opacity:0; cursor:pointer; }
.tbt-booking__file-visual { display:grid; width:100%; min-height:max(76px,var(--tbt-field-height,0px)); padding:12px 13px; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; gap:11px; color:var(--tbt-input-text); border:var(--tbt-input-border-width) dashed var(--tbt-input-border); border-radius:var(--tbt-input-radius); background:var(--tbt-input-background); transition:border-color .15s,background-color .15s,box-shadow .15s; }
.tbt-booking__file-visual > i { display:grid; width:38px; height:38px; place-items:center; color:var(--tbt-primary); border-radius:10px; background:color-mix(in srgb,var(--tbt-primary) 10%,#fff); font-style:normal; }
.tbt-booking__file-visual > i::before { content:"↑"; font-size:23px; font-weight:700; line-height:1; }
.tbt-booking__file-visual > span { min-width:0; }
.tbt-booking__file-visual strong,.tbt-booking__file-visual small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tbt-booking__file-visual strong { color:var(--tbt-input-text); font-size:var(--tbt-input-font-size); }
.tbt-booking__file-visual small { margin-top:4px; color:var(--tbt-help-color); font-size:var(--tbt-help-font-size); font-weight:400; }
.tbt-booking__file-visual > b { padding:8px 11px; color:var(--tbt-primary); border:1px solid var(--tbt-input-border); border-color:color-mix(in srgb,var(--tbt-primary) 28%,var(--tbt-input-border)); border-radius:max(5px,calc(var(--tbt-input-radius) - 2px)); background:#fff; font-size:12px; white-space:nowrap; }
.tbt-booking__file-control:hover .tbt-booking__file-visual,.tbt-booking__file-control:focus-within .tbt-booking__file-visual { border-color:var(--tbt-input-focus-border); background:color-mix(in srgb,var(--tbt-primary) 3%,var(--tbt-input-background)); box-shadow:0 0 0 var(--tbt-input-focus-ring-width) color-mix(in srgb,var(--tbt-input-focus-ring) 14%,transparent); }
.tbt-booking__file-control.is-dragging .tbt-booking__file-visual { border-color:var(--tbt-primary); background:color-mix(in srgb,var(--tbt-primary) 7%,var(--tbt-input-background)); box-shadow:inset 0 0 0 1px var(--tbt-primary); }
.tbt-booking__file-control.has-file .tbt-booking__file-visual > i { color:#148257; background:#eaf8f2; }
.tbt-booking__file-control.has-file .tbt-booking__file-visual > i::before { content:"✓"; font-size:19px; }
.tbt-booking .has-error .tbt-booking__file-visual { border-color:var(--tbt-error-color); }
@media(max-width:640px){.tbt-booking__file-visual{grid-template-columns:38px minmax(0,1fr);padding:12px}.tbt-booking__file-visual>b{grid-column:1/-1;width:100%;text-align:center}}
@media(max-width:480px){.tbt-booking__file-visual{grid-template-columns:36px minmax(0,1fr);padding:11px}.tbt-booking__file-visual>b{grid-column:1/-1;text-align:center}.tbt-booking__file-visual>i{width:34px;height:34px}}
.tbt-booking .tbt-zalo-recovery { width:100%; box-sizing:border-box; padding:14px; margin-top:12px; border:1px solid #dbe7f3; border-radius:10px; background:#f8fbff; }
.tbt-booking .tbt-zalo-recovery p { margin:0 0 10px; font-size:14px; line-height:1.6; }
.tbt-booking .tbt-zalo-recovery button,.tbt-booking .tbt-zalo-recovery a { display:inline-flex; align-items:center; justify-content:center; padding:9px 12px; border:1px solid #b9d2ee; border-radius:7px; background:#fff; color:#1464c8; font:inherit; font-size:14px; text-decoration:none; cursor:pointer; }
.tbt-booking .tbt-zalo-recovery button:disabled { opacity:.6; cursor:wait; }
.tbt-booking .tbt-zalo-recovery__content { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:10px; }
.tbt-booking .tbt-zalo-recovery__content code { padding:8px; font-size:15px; overflow-wrap:anywhere; }
.tbt-booking .tbt-zalo-recovery__status { margin-top:10px; color:#294b70; }
