:root {
  --tsb-blue: #1769e8;
  --tsb-blue-50: #eef5ff;
  --tsb-green: #208a49;
  --tsb-green-50: #edf9f1;
  --tsb-amber: #d97706;
  --tsb-amber-50: #fff7e8;
  --tsb-red: #c93434;
  --tsb-red-50: #fff1f1;
  --tsb-ink: #27354a;
  --tsb-muted: #6f7c8f;
  --tsb-line: #dde4ec;
  --tsb-soft: #f7f9fc;
  --tsb-white: #fff;
}

.tsb-shell,
.tsb-shell * {
  box-sizing: border-box;
}

.tsb-shell {
  color: var(--tsb-ink);
  background: var(--tsb-white);
  font-family: "Noto Sans Thai", "Leelawadee UI", Tahoma, sans-serif;
  font-size: 15px;
  line-height: 1.55;
  width: 100%;
}

.tsb-app {
  min-height: 720px;
}

.tsb-shell h1,
.tsb-shell h2,
.tsb-shell p {
  margin-top: 0;
}

.tsb-shell h1 {
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.18;
  letter-spacing: -0.02em;
  margin-bottom: 10px;
}

.tsb-shell h2 {
  font-size: 20px;
  margin-bottom: 18px;
}

.tsb-kicker {
  color: var(--tsb-blue);
  display: block;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-bottom: 8px;
  text-transform: uppercase;
}

.tsb-public-header,
.tsb-portal-header {
  align-items: center;
  border-bottom: 1px solid var(--tsb-line);
  display: flex;
  justify-content: space-between;
  padding: 28px 32px;
}

.tsb-public-header p {
  color: var(--tsb-muted);
  margin: 0;
}

.tsb-portal-header a {
  color: var(--tsb-ink);
  font-size: 18px;
  font-weight: 800;
  text-decoration: none;
}

.tsb-portal-header span {
  color: var(--tsb-muted);
}

.tsb-progress {
  align-items: center;
  border-bottom: 1px solid var(--tsb-line);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  list-style: none;
  margin: 0;
  padding: 20px 32px;
}

.tsb-progress li {
  align-items: center;
  color: #a0a9b7;
  display: flex;
  gap: 10px;
  min-width: 0;
  position: relative;
}

.tsb-progress li:not(:last-child)::after {
  background: var(--tsb-line);
  content: "";
  height: 1px;
  left: 48%;
  position: absolute;
  right: 10%;
  top: 16px;
}

.tsb-progress span {
  align-items: center;
  background: #fff;
  border: 1px solid #cfd7e2;
  border-radius: 50%;
  display: inline-flex;
  font-size: 13px;
  height: 32px;
  justify-content: center;
  min-width: 32px;
  position: relative;
  z-index: 1;
}

.tsb-progress b {
  font-size: 14px;
  white-space: nowrap;
}

.tsb-progress .is-active,
.tsb-progress .is-done {
  color: var(--tsb-blue);
}

.tsb-progress .is-active span,
.tsb-progress .is-done span {
  background: var(--tsb-blue);
  border-color: var(--tsb-blue);
  color: #fff;
}

.tsb-form-layout {
  display: grid;
  gap: 36px;
  grid-template-columns: minmax(0, 1fr) 360px;
  margin: 0 auto;
  max-width: 1280px;
  padding: 38px 32px 72px;
}

.tsb-form-main,
.tsb-form-aside,
.tsb-waiting,
.tsb-quote,
.tsb-confirmed,
.tsb-payment,
.tsb-summary,
.tsb-chat,
.tsb-schedule {
  background: #fff;
  border: 1px solid var(--tsb-line);
  border-radius: 10px;
}

.tsb-form-main,
.tsb-waiting,
.tsb-quote,
.tsb-confirmed,
.tsb-payment,
.tsb-schedule {
  padding: 30px;
}

.tsb-form-aside,
.tsb-summary {
  align-self: start;
  padding: 26px;
  position: sticky;
  top: 24px;
}

.tsb-grid-2 {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tsb-form-main label {
  color: var(--tsb-ink);
  display: block;
  font-size: 14px;
  font-weight: 650;
  margin-bottom: 18px;
}

.tsb-form-main input,
.tsb-form-main select,
.tsb-form-main textarea,
.tsb-chat-form textarea {
  background: #fff;
  border: 1px solid #cfd8e3;
  border-radius: 7px;
  color: var(--tsb-ink);
  display: block;
  font: inherit;
  margin-top: 7px;
  min-height: 44px;
  outline: none;
  padding: 10px 12px;
  width: 100%;
}

.tsb-form-main input:focus,
.tsb-form-main select:focus,
.tsb-form-main textarea:focus,
.tsb-chat-form textarea:focus {
  border-color: var(--tsb-blue);
  box-shadow: 0 0 0 3px rgba(23, 105, 232, 0.12);
}

.tsb-form-main hr {
  border: 0;
  border-top: 1px solid var(--tsb-line);
  margin: 28px 0;
}

.tsb-inline-inputs {
  align-items: center;
  display: flex;
  gap: 8px;
}

.tsb-inline-inputs input {
  min-width: 0;
}

.tsb-check {
  align-items: flex-start;
  display: flex !important;
  gap: 10px;
}

.tsb-check input {
  height: 18px;
  margin-top: 2px;
  min-height: 0;
  width: 18px;
}

.tsb-explain-list {
  display: grid;
  gap: 18px;
  list-style: none;
  margin: 0 0 28px;
  padding: 0;
}

.tsb-explain-list li {
  align-items: flex-start;
  display: flex;
  gap: 12px;
}

.tsb-explain-list li > span {
  align-items: center;
  background: var(--tsb-blue-50);
  border-radius: 50%;
  color: var(--tsb-blue);
  display: inline-flex;
  font-weight: 800;
  height: 30px;
  justify-content: center;
  min-width: 30px;
}

.tsb-explain-list small {
  color: var(--tsb-muted);
  display: block;
  margin-top: 3px;
}

.tsb-button {
  align-items: center;
  background: #fff;
  border: 1px solid #cfd8e3;
  border-radius: 7px;
  color: var(--tsb-ink);
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-weight: 750;
  justify-content: center;
  min-height: 46px;
  padding: 10px 18px;
  text-decoration: none;
}

.tsb-button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.tsb-button--primary {
  background: var(--tsb-blue);
  border-color: var(--tsb-blue);
  color: #fff;
}

.tsb-button--full {
  width: 100%;
}

.tsb-notice {
  border-radius: 7px;
  margin: 14px 0;
  padding: 12px 14px;
}

.tsb-notice--error {
  background: var(--tsb-red-50);
  color: var(--tsb-red);
}

.tsb-success,
.tsb-empty-page {
  margin: 0 auto;
  max-width: 680px;
  padding: 100px 24px;
  text-align: center;
}

.tsb-success-icon {
  align-items: center;
  background: var(--tsb-green-50);
  border-radius: 50%;
  color: var(--tsb-green);
  display: inline-flex;
  font-size: 32px;
  height: 70px;
  justify-content: center;
  margin-bottom: 18px;
  width: 70px;
}

.tsb-portal-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) 380px;
  margin: 0 auto;
  max-width: 1180px;
  padding: 36px 28px 64px;
}

.tsb-status {
  border-radius: 999px;
  display: inline-flex;
  font-size: 13px;
  font-weight: 800;
  margin-bottom: 16px;
  padding: 6px 10px;
}

.tsb-status--pending,
.tsb-status--hold {
  background: var(--tsb-amber-50);
  color: var(--tsb-amber);
}

.tsb-brief,
.tsb-summary dl {
  border-top: 1px solid var(--tsb-line);
  margin: 24px 0 0;
}

.tsb-brief div,
.tsb-summary dl div {
  align-items: flex-start;
  border-bottom: 1px solid var(--tsb-line);
  display: flex;
  justify-content: space-between;
  gap: 22px;
  padding: 13px 0;
}

.tsb-brief dt,
.tsb-summary dt {
  color: var(--tsb-muted);
}

.tsb-brief dd,
.tsb-summary dd {
  font-weight: 750;
  margin: 0;
  text-align: right;
}

.tsb-chat {
  display: flex;
  flex-direction: column;
  min-height: 520px;
  overflow: hidden;
}

.tsb-chat header {
  align-items: flex-start;
  border-bottom: 1px solid var(--tsb-line);
  display: flex;
  justify-content: space-between;
  padding: 18px;
}

.tsb-chat header small {
  color: var(--tsb-muted);
  display: block;
  margin-top: 2px;
}

.tsb-online {
  color: var(--tsb-green);
  font-size: 12px;
}

.tsb-chat-body {
  background: var(--tsb-soft);
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 10px;
  max-height: 560px;
  overflow: auto;
  padding: 18px;
}

.tsb-message {
  align-self: flex-start;
  background: #fff;
  border: 1px solid var(--tsb-line);
  border-radius: 8px 8px 8px 2px;
  max-width: 86%;
  padding: 10px 12px;
}

.tsb-message.is-customer {
  align-self: flex-end;
  background: var(--tsb-blue-50);
  border-color: #d6e5fb;
  border-radius: 8px 8px 2px 8px;
}

.tsb-message p {
  margin: 0 0 4px;
}

.tsb-message time {
  color: var(--tsb-muted);
  font-size: 11px;
}

.tsb-empty-chat {
  color: var(--tsb-muted);
  margin: auto;
}

.tsb-chat-form {
  align-items: flex-end;
  border-top: 1px solid var(--tsb-line);
  display: flex;
  gap: 8px;
  padding: 12px;
}

.tsb-chat-form textarea {
  margin: 0;
  resize: none;
}

.tsb-quote-amount {
  align-items: end;
  background: var(--tsb-blue-50);
  border-radius: 8px;
  display: flex;
  justify-content: space-between;
  margin: 24px 0;
  padding: 24px;
}

.tsb-quote-amount strong {
  color: var(--tsb-blue);
  font-size: 34px;
}

.tsb-quote-facts {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(3, 1fr);
  margin-bottom: 24px;
}

.tsb-quote-facts > div {
  background: var(--tsb-soft);
  padding: 16px;
}

.tsb-quote-facts small,
.tsb-quote-facts b {
  display: block;
}

.tsb-quote-facts small {
  color: var(--tsb-muted);
  margin-bottom: 4px;
}

.tsb-schedule-layout,
.tsb-payment-layout {
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(540px, 1fr) 320px 340px;
  margin: 0 auto;
  max-width: 1480px;
  padding: 26px 26px 110px;
}

.tsb-schedule-heading {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
  gap: 24px;
}

.tsb-duration-note {
  background: var(--tsb-blue-50);
  border-radius: 8px;
  padding: 14px 16px;
}

.tsb-duration-note b,
.tsb-duration-note small {
  display: block;
}

.tsb-duration-note small {
  color: var(--tsb-muted);
  margin-top: 3px;
}

.tsb-slot-list {
  border-top: 1px solid var(--tsb-line);
  display: grid;
  gap: 0;
  margin-top: 24px;
}

.tsb-slot {
  align-items: center;
  background: #fff;
  border: 0;
  border-bottom: 1px solid var(--tsb-line);
  color: var(--tsb-ink);
  cursor: pointer;
  display: grid;
  font: inherit;
  grid-template-columns: 1fr 190px 160px;
  padding: 18px 8px;
  text-align: left;
}

.tsb-slot:hover,
.tsb-slot.is-selected {
  background: var(--tsb-blue-50);
}

.tsb-slot.is-selected {
  box-shadow: inset 3px 0 var(--tsb-blue);
}

.tsb-slot strong {
  font-size: 16px;
}

.tsb-slot small {
  color: var(--tsb-green);
  text-align: right;
}

.tsb-slot small i {
  background: var(--tsb-green);
  border-radius: 50%;
  display: inline-block;
  height: 7px;
  width: 7px;
}

.tsb-lock-help,
.tsb-policy {
  background: var(--tsb-amber-50);
  border-radius: 8px;
  margin-top: 22px;
  padding: 14px;
}

.tsb-lock-help p,
.tsb-policy p {
  color: var(--tsb-muted);
  margin: 3px 0 0;
}

.tsb-summary .tsb-selected dd {
  color: var(--tsb-blue);
}

.tsb-sticky-action {
  align-items: center;
  background: rgba(255, 255, 255, 0.96);
  border-top: 1px solid var(--tsb-line);
  bottom: 0;
  display: flex;
  justify-content: space-between;
  left: 0;
  padding: 16px 32px;
  position: fixed;
  right: 0;
  z-index: 20;
}

.tsb-sticky-action small,
.tsb-sticky-action strong {
  display: block;
}

.tsb-countdown {
  background: var(--tsb-amber-50);
  border-radius: 8px;
  margin: 22px 0;
  padding: 20px;
  text-align: center;
}

.tsb-countdown small,
.tsb-countdown strong {
  display: block;
}

.tsb-countdown strong {
  color: var(--tsb-amber);
  font-size: 38px;
}

.tsb-payment-methods {
  border: 0;
  display: grid;
  gap: 10px;
  margin: 0 0 20px;
  padding: 0;
}

.tsb-payment-methods legend {
  font-weight: 750;
  margin-bottom: 10px;
}

.tsb-payment-methods label {
  align-items: center;
  border: 1px solid var(--tsb-line);
  border-radius: 7px;
  display: flex;
  gap: 12px;
  padding: 13px;
}

.tsb-payment-methods small {
  color: var(--tsb-muted);
  display: block;
}

.tsb-transfer {
  background: var(--tsb-green-50);
  border-radius: 8px;
  color: var(--tsb-ink);
  margin-top: 16px;
  padding: 16px;
}

.tsb-transfer img {
  display: block;
  margin: 12px auto;
  max-width: 220px;
}

.tsb-booking-date {
  background: var(--tsb-blue-50);
  border-radius: 8px;
  margin: 24px 0;
  padding: 22px;
}

.tsb-booking-date strong,
.tsb-booking-date span {
  display: block;
}

.tsb-booking-date strong {
  font-size: 22px;
}

.tsb-policy-copy,
.tsb-loading,
.tsb-empty {
  color: var(--tsb-muted);
}

.tsb-loading {
  padding: 120px 24px;
  text-align: center;
}

@media (max-width: 1180px) {
  .tsb-schedule-layout,
  .tsb-payment-layout {
    grid-template-columns: minmax(0, 1fr) 320px;
  }
  .tsb-chat-column {
    grid-column: 1 / -1;
  }
  .tsb-chat-column .tsb-chat {
    min-height: 400px;
  }
}

@media (max-width: 820px) {
  .tsb-progress {
    overflow-x: auto;
  }
  .tsb-progress {
    grid-template-columns: repeat(5, minmax(150px, 1fr));
  }
  .tsb-form-layout,
  .tsb-portal-grid,
  .tsb-schedule-layout,
  .tsb-payment-layout {
    grid-template-columns: 1fr;
    padding-inline: 16px;
  }
  .tsb-grid-2 {
    grid-template-columns: 1fr;
  }
  .tsb-form-aside,
  .tsb-summary {
    position: static;
  }
  .tsb-slot {
    align-items: flex-start;
    gap: 5px;
    grid-template-columns: 1fr;
  }
  .tsb-slot small {
    text-align: left;
  }
  .tsb-schedule-heading {
    display: block;
  }
  .tsb-duration-note {
    margin-top: 14px;
  }
}



/* TSB UX refresh 0.1.5 */
body.tsb-booking-page .entry-header,
body.tsb-portal-page .entry-header,
body.tsb-booking-page .wp-block-post-title,
body.tsb-portal-page .wp-block-post-title {
  display: none !important;
}

body.tsb-booking-page .entry-content,
body.tsb-portal-page .entry-content,
body.tsb-booking-page .wp-block-post-content,
body.tsb-portal-page .wp-block-post-content {
  margin-block: 0 !important;
  max-width: none !important;
  padding-block: 0 !important;
  width: 100% !important;
}

.tsb-shell {
  --tsb-blue: #155fcf;
  --tsb-blue-hover: #0f4fad;
  --tsb-focus: rgba(21, 95, 207, 0.24);
  --tsb-ink: #243247;
  --tsb-muted: #637083;
  --tsb-line: #d8e0e9;
  --tsb-soft: #f6f8fb;
  -webkit-font-smoothing: antialiased;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

.tsb-shell :where(button, input, select, textarea, a) {
  font-family: inherit;
}

.tsb-shell :where(a.tsb-button, button.tsb-button),
.tsb-shell :where(a.tsb-button, button.tsb-button):visited {
  background: #fff !important;
  border-color: #c8d2df !important;
  color: var(--tsb-ink) !important;
  font-weight: 750 !important;
  line-height: 1.25;
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.tsb-shell :where(a.tsb-button--primary, button.tsb-button--primary),
.tsb-shell :where(a.tsb-button--primary, button.tsb-button--primary):visited {
  background: var(--tsb-blue) !important;
  border-color: var(--tsb-blue) !important;
  color: #fff !important;
  text-shadow: none !important;
}

.tsb-shell :where(a.tsb-button--primary, button.tsb-button--primary):hover {
  background: var(--tsb-blue-hover) !important;
  border-color: var(--tsb-blue-hover) !important;
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(21, 95, 207, 0.2);
  transform: translateY(-1px);
}

.tsb-shell :where(a.tsb-button, button.tsb-button):focus-visible,
.tsb-shell :where(input, select, textarea):focus-visible,
.tsb-payment-methods label:has(input:focus-visible),
.tsb-slot:focus-visible {
  box-shadow: 0 0 0 4px var(--tsb-focus) !important;
  outline: 2px solid transparent !important;
  outline-offset: 2px;
}

.tsb-shell :where(button.tsb-button):disabled {
  background: #e9edf2 !important;
  border-color: #d8e0e9 !important;
  color: #7c8796 !important;
  opacity: 1;
  transform: none;
}

.tsb-form-main input,
.tsb-form-main select,
.tsb-form-main textarea,
.tsb-chat-form textarea {
  border-radius: 9px;
  min-height: 48px;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}

.tsb-form-main input::placeholder,
.tsb-form-main textarea::placeholder,
.tsb-chat-form textarea::placeholder {
  color: #8792a2;
  opacity: 1;
}

.tsb-form-main input:hover,
.tsb-form-main select:hover,
.tsb-form-main textarea:hover,
.tsb-chat-form textarea:hover {
  border-color: #aebaca;
}

.tsb-form-main,
.tsb-form-aside,
.tsb-waiting,
.tsb-quote,
.tsb-confirmed,
.tsb-payment,
.tsb-summary,
.tsb-chat,
.tsb-schedule {
  border-radius: 14px;
  box-shadow: 0 8px 26px rgba(32, 49, 72, 0.06);
}

.tsb-empty-page {
  background: #fff;
  border: 1px solid var(--tsb-line);
  border-radius: 16px;
  box-shadow: 0 12px 34px rgba(32, 49, 72, 0.07);
  margin: 56px auto;
  padding: 64px 40px;
}

.tsb-empty-page h1 {
  color: var(--tsb-ink);
  font-size: clamp(28px, 4vw, 40px);
  margin-bottom: 12px;
}

.tsb-empty-page p {
  color: var(--tsb-muted);
  font-size: 16px;
  margin-bottom: 24px;
}

.tsb-payment-methods label {
  background: #fff;
  border-radius: 10px;
  cursor: pointer;
  min-height: 64px;
  transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.tsb-payment-methods label:hover {
  background: var(--tsb-blue-50);
  border-color: #9dbce7;
}

.tsb-payment-methods label:has(input:checked) {
  background: var(--tsb-blue-50);
  border-color: var(--tsb-blue);
  box-shadow: inset 3px 0 var(--tsb-blue);
}

.tsb-payment-methods input {
  accent-color: var(--tsb-blue);
  height: 18px;
  width: 18px;
}

.tsb-slot {
  border-radius: 8px;
  margin-block: 2px;
  transition: background-color 150ms ease, box-shadow 150ms ease;
}

.tsb-notice {
  border: 1px solid transparent;
  font-weight: 600;
}

.tsb-notice--error {
  border-color: #f0b8b8;
}

@media (max-width: 820px) {
  .tsb-public-header,
  .tsb-portal-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
    padding: 20px 16px;
  }

  .tsb-progress {
    padding: 16px;
  }

  .tsb-form-main,
  .tsb-waiting,
  .tsb-quote,
  .tsb-confirmed,
  .tsb-payment,
  .tsb-schedule {
    padding: 22px 18px;
  }

  .tsb-empty-page {
    margin: 24px 16px;
    padding: 44px 22px;
  }

  .tsb-sticky-action {
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  }

  .tsb-sticky-action .tsb-button {
    width: 100%;
  }

  .tsb-quote-amount {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
    padding: 18px;
  }

  .tsb-quote-facts {
    grid-template-columns: 1fr;
  }
}


/* TSB compact form 0.1.6 */
body.tsb-booking-page .tsb-shell {
  left: 50%;
  max-width: none !important;
  position: relative;
  transform: translateX(-50%);
  width: min(1440px, calc(100vw - 24px));
}

.tsb-form-layout {
  gap: 20px;
  grid-template-columns: minmax(0, 1fr) 280px;
  max-width: 1400px;
  padding: 24px 20px 48px;
}

.tsb-form-main {
  padding: 24px;
}

.tsb-form-aside {
  padding: 20px;
  top: 16px;
}

.tsb-form-main h2 {
  margin-bottom: 14px;
}

.tsb-grid-2 {
  column-gap: 16px;
  row-gap: 12px;
}

.tsb-grid-2 > label {
  margin-bottom: 0;
}

.tsb-form-main label {
  margin-bottom: 12px;
}

.tsb-form-main input,
.tsb-form-main select {
  margin-top: 5px;
  min-height: 42px;
  padding: 8px 10px;
}

.tsb-form-main textarea {
  margin-top: 5px;
  min-height: 96px;
  padding: 9px 10px;
  resize: vertical;
}

.tsb-form-main hr {
  margin: 20px 0;
}

.tsb-grid-supporting {
  margin-top: 2px;
}

.tsb-check {
  margin-top: 4px;
}

.tsb-explain-list {
  gap: 12px;
  margin-bottom: 18px;
}

.tsb-explain-list li {
  gap: 10px;
}

.tsb-explain-list li > span {
  height: 28px;
  min-width: 28px;
}

.tsb-explain-list small {
  line-height: 1.35;
}

@media (min-width: 900px) {
  .tsb-form-main > .tsb-grid-2:not(.tsb-grid-supporting) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  body.tsb-booking-page .tsb-shell {
    width: calc(100vw - 12px);
  }

  body.tsb-booking-page .tsb-public-header {
  padding: 18px 24px;
}

body.tsb-booking-page .tsb-progress {
  padding: 14px 24px;
}

.tsb-form-layout {
    gap: 12px;
    grid-template-columns: 1fr;
    padding: 12px 6px 28px;
  }

  .tsb-form-main,
  .tsb-form-aside {
    padding: 16px;
  }

  .tsb-form-main h2,
  .tsb-form-aside h2 {
    font-size: 18px;
    margin-bottom: 12px;
  }

  .tsb-form-main label {
    font-size: 13px;
    margin-bottom: 8px;
  }

  .tsb-grid-2 {
    column-gap: 10px;
    row-gap: 10px;
  }

  .tsb-grid-2 > label {
    margin-bottom: 0;
  }

  .tsb-form-main input,
  .tsb-form-main select {
    font-size: 16px;
    margin-top: 4px;
    min-height: 42px;
    padding: 7px 9px;
  }

  .tsb-form-main textarea {
    font-size: 16px;
    min-height: 86px;
  }

  .tsb-form-main hr {
    margin: 16px 0;
  }

  .tsb-progress {
    grid-template-columns: repeat(5, minmax(118px, 1fr));
    padding: 12px 8px;
  }

  .tsb-progress li {
    gap: 7px;
  }

  .tsb-progress span {
    height: 30px;
    min-width: 30px;
  }

  .tsb-progress b {
    font-size: 12px;
  }

  .tsb-form-aside .tsb-explain-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
  }

  .tsb-form-aside .tsb-explain-list li {
    gap: 7px;
  }

  .tsb-form-aside .tsb-explain-list li > span {
    height: 24px;
    min-width: 24px;
  }

  .tsb-form-aside .tsb-explain-list b {
    font-size: 12px;
  }

  .tsb-form-aside .tsb-explain-list small {
    font-size: 11px;
  }
}

@media (min-width: 360px) and (max-width: 820px) {
  .tsb-form-main .tsb-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 359px) {
  .tsb-form-main .tsb-grid-2 {
    grid-template-columns: 1fr;
  }

  .tsb-form-aside .tsb-explain-list {
    grid-template-columns: 1fr 1fr;
  }
}


/* TSB email result 0.1.8 */
.tsb-email-result { border-radius:9px; margin:14px auto; max-width:620px; padding:10px 13px; }
.tsb-email-result.is-sent { background:#eaf7ef; color:#176b3a; }
.tsb-email-result.is-failed { background:#fff4e5; color:#8a4b08; }


/* TSB portal action feedback 0.1.9 */
.tsb-portal-action-error { margin:14px 0; }
.tsb-portal-action-error:empty { display:none; }
.tsb-quote #tsb-portal-action-error { margin-bottom:12px; }


/* TSB customer empty availability 0.2.0 */
.tsb-slot-empty { background:#eef5ff; border:2px solid #9abfeb; border-radius:14px; color:#243247; padding:28px 22px; text-align:center; }
.tsb-slot-empty h2 { color:#172d4b; font-size:23px; margin:12px 0 6px; }
.tsb-slot-empty p { color:#52657e; margin:0 auto 18px; max-width:560px; }
.tsb-slot-empty .tsb-button--secondary { background:#fff !important; border:2px solid #155fcf !important; color:#155fcf !important; font-weight:750; }
.tsb-slot-empty .tsb-button--secondary:hover { background:#e4efff !important; color:#0f4fad !important; }
@media (max-width:600px) { .tsb-slot-empty { padding:22px 16px; } .tsb-slot-empty .tsb-button { width:100%; } }


/* TSB visible payment flow 0.2.2 */
.tsb-payment-flow-note{background:#eef5ff;border:1px solid #b8d2f3;border-radius:12px;display:grid;gap:6px;margin:18px 0;padding:14px 16px}.tsb-payment-flow-note b{color:#172d4b;margin-bottom:2px}.tsb-payment-flow-note span{color:#52657e}.tsb-payment-roadmap{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 18px}.tsb-payment-roadmap span{align-items:center;background:#f4f6f8;border:1px solid #d8e0e9;border-radius:10px;color:#637083;display:flex;font-size:13px;font-weight:700;gap:8px;padding:10px}.tsb-payment-roadmap b{align-items:center;background:#fff;border:1px solid #cfd8e3;border-radius:50%;display:inline-flex;height:26px;justify-content:center;width:26px}.tsb-payment-roadmap .is-active{background:#eef5ff;border-color:#8db7ed;color:#155fcf}.tsb-payment-roadmap .is-active b{background:#155fcf;border-color:#155fcf;color:#fff}.tsb-payment-roadmap .is-done{background:#eaf8ef;border-color:#8bd2a6;color:#15723c}.tsb-payment-roadmap .is-done b{background:#208a49;border-color:#208a49;color:#fff}@media(max-width:600px){.tsb-payment-roadmap{grid-template-columns:1fr}.tsb-sticky-action{align-items:stretch;flex-direction:column}.tsb-sticky-action .tsb-button{width:100%}}


/* TSB professional intake 0.3.0 */
.tsb-form-main label small{color:#637083;display:block;font-size:12px;margin-top:4px}.tsb-check-inline{align-self:end;min-height:46px}.tsb-health-screen{background:#f7f9fc;border:1px solid #d8e0e9;border-radius:12px;margin:14px 0;padding:0}.tsb-health-screen summary{cursor:pointer;display:flex;flex-direction:column;gap:3px;padding:14px 16px}.tsb-health-screen summary span{color:#637083;font-size:12px}.tsb-health-options{border-top:1px solid #d8e0e9;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));padding:14px 16px}.tsb-health-options label{align-items:flex-start;display:flex;font-weight:500;gap:8px}.tsb-health-options input{flex:0 0 auto;margin-top:3px;min-height:0;width:auto}@media(max-width:600px){.tsb-health-options{grid-template-columns:1fr}}


/* TSB policy acceptance 0.3.0 */
.tsb-policy-accept{background:#fff7e8;border:1px solid #f1c77a;border-radius:12px;margin:16px 0;padding:13px}.tsb-policy-accept label{align-items:flex-start;display:flex;gap:10px}.tsb-policy-accept input{flex:0 0 auto;margin-top:4px}.tsb-policy-accept span,.tsb-policy-accept small{display:block}.tsb-policy-accept small{color:#74501b;margin-top:3px}


/* TSB confirmation and aftercare 0.3.0 */
.tsb-confirm-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.tsb-preparation,.tsb-aftercare-form{background:#f7f9fc;border:1px solid #d8e0e9;border-radius:12px;margin:16px 0;padding:15px}.tsb-preparation ul{margin:8px 0 0 20px}.tsb-aftercare-form h2{margin:0 0 5px}.tsb-aftercare-form p{color:#637083}.tsb-aftercare-form textarea{border:1px solid #cfd8e3;border-radius:9px;display:block;margin:10px 0;min-height:90px;padding:10px;width:100%}@media(max-width:600px){.tsb-confirm-actions .tsb-button{width:100%}}


/* TSB test payment 0.3.2 */
.tsb-payment-methods .tsb-test-payment-option{background:#fff4e5;border:2px dashed #d97706}.tsb-test-payment-option b{color:#9a4f05}.tsb-test-payment-success{background:#fff4e5;border:2px solid #d97706;border-radius:12px;color:#7a3d05;margin-top:14px;padding:14px}.tsb-test-payment-success p{margin:5px 0 0}


/* TSB request draft protection 0.3.4 */
.tsb-draft-status{background:#f0f7ff;border:1px solid #c9ddf7;border-radius:8px;color:#24517f;font-size:12px;font-weight:650;margin-bottom:10px;min-height:18px;padding:7px 9px}.tsb-draft-status:empty{display:none}


/* TSB clear payment and verification flow 0.3.5 */
.tsb-inline-action{align-items:center;background:#fff;border:2px solid #1769e8;border-radius:14px;box-shadow:0 10px 30px rgba(23,105,232,.14);display:flex;gap:18px;justify-content:space-between;margin:18px auto 0;max-width:1320px;padding:18px 20px}.tsb-inline-action small,.tsb-inline-action strong{display:block}.tsb-inline-action small{color:#637083;margin-bottom:3px}.tsb-inline-action .tsb-button{background:#1769e8!important;border-color:#1769e8!important;color:#fff!important;min-height:52px;min-width:300px}.tsb-payment>.tsb-button--primary{background:#1769e8!important;border:2px solid #0f57c4!important;box-shadow:0 9px 24px rgba(23,105,232,.25)!important;color:#fff!important;font-size:17px!important;min-height:56px}.tsb-payment>.tsb-button--primary:hover{background:#0f57c4!important}.tsb-payment-methods label:has(input:checked){background:#eaf2ff!important;border:2px solid #1769e8!important;box-shadow:0 0 0 3px rgba(23,105,232,.1)}.tsb-payment-loading{align-items:center;background:#eef5ff;border:1px solid #8db7ed;border-radius:12px;color:#173f73;display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin-top:14px;padding:14px}.tsb-payment-loading span{animation:tsb-spin .8s linear infinite;border:3px solid #c7daf4;border-radius:50%;border-top-color:#1769e8;grid-row:1/3;height:24px;width:24px}.tsb-payment-loading p{margin:0}.tsb-payment-proof-form{background:#fff8e8;border:2px solid #e9ad38;border-radius:14px;display:grid;gap:12px;margin-top:16px;padding:18px}.tsb-payment-proof-form h2{margin:2px 0 4px}.tsb-payment-proof-form p{margin:0}.tsb-payment-proof-form label{display:grid;font-weight:700;gap:6px}.tsb-payment-proof-form :where(input[type=file],textarea){background:#fff;border:1px solid #c7d2df;border-radius:8px;padding:10px;width:100%}.tsb-button--proof{background:#e28309!important;border:2px solid #bd6900!important;color:#fff!important;font-size:16px!important;min-height:52px;width:100%}.tsb-button--proof:hover{background:#bd6900!important}.tsb-existing-payment,.tsb-wait-expectation{background:#eef5ff;border:1px solid #b8d2f3;border-radius:12px;color:#24466e;margin-top:14px;padding:14px}.tsb-existing-payment p,.tsb-wait-expectation p{margin:5px 0 0}.tsb-verification-wait{background:#fff;border:1px solid #d8e0e9;border-radius:14px;padding:28px}.tsb-verification-reference{background:#f5f7fa;border-radius:10px;display:flex;flex-direction:column;margin:18px 0;padding:14px}.tsb-verification-reference strong{font-size:20px}.tsb-chat-file{align-items:center;background:#f3f6fa;border:1px solid #d8e0e9;border-radius:8px;cursor:pointer;display:flex!important;font-size:12px!important;gap:8px;padding:8px 10px}.tsb-chat-file input{font-size:12px;max-width:190px}.tsb-message-attachment{background:#eef5ff;border-radius:7px;color:#155fcf;display:block;margin:6px 0;padding:7px 9px;text-decoration:none}@keyframes tsb-spin{to{transform:rotate(360deg)}}@media(max-width:700px){.tsb-inline-action{align-items:stretch;flex-direction:column;margin:14px 0}.tsb-inline-action .tsb-button{min-width:0;width:100%}.tsb-verification-wait{padding:20px}.tsb-payment-proof-form{padding:14px}}

/* Chat attachment responsive fix 0.3.5 */
.tsb-chat-form{align-items:stretch;flex-wrap:wrap;min-width:0}.tsb-chat-form textarea{flex:1 1 100%;min-width:0;width:100%}.tsb-chat-form .tsb-chat-file{flex:1 1 170px;min-width:0}.tsb-chat-form .tsb-chat-file input{min-width:0;width:100%}.tsb-chat-form>.tsb-button{flex:0 0 auto}.tsb-payment-layout>*,.tsb-schedule-layout>*{min-width:0}@media(max-width:520px){.tsb-chat-form>.tsb-button{width:100%}.tsb-payment-layout,.tsb-schedule-layout{padding-inline:10px}.tsb-payment,.tsb-schedule{min-width:0;width:100%}}
