[hidden] {
  display: none !important;
}

.location-field,
.contact-field {
  grid-column: span 2;
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}

.location-actions,
.contact-options {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.location-hint {
  margin-top: 8px;
  color: #66736f;
  font-size: 12px;
}

.location-map {
  height: 210px;
  margin-top: 10px;
  border-radius: 14px;
  overflow: hidden;
  background: #e7efec;
}

.place-search-row { display: grid; grid-template-columns: 1fr 52px; gap: 8px; }
.place-search-button { background: #087a5b; border-color: #087a5b; color: #fff; font-size: 25px; padding: 6px; }
.place-search-results { margin-top: 10px; border: 1px solid #dce6e2; border-radius: 13px; overflow: hidden; background: #fff; }
.place-result { width: 100%; display: grid; grid-template-columns: 44px 1fr auto; gap: 10px; align-items: center; padding: 11px 12px; border: 0; border-bottom: 1px solid #edf2f0; border-radius: 0; text-align: left; }
.place-result:last-child { border-bottom: 0; }
.place-result:hover { background: #f3faf7; }
.place-result-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 10px; background: #e6f5ef; font-size: 21px; }
.place-result-copy { min-width: 0; }
.place-result-copy strong, .place-result-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.place-result-copy small { margin-top: 4px; color: #66736f; font-weight: 500; }
.place-result-source { color: #087a5b; font-size: 10px; }
.booking-agreement { display: flex; gap: 9px; align-items: flex-start; margin: 14px 0; color: #66736f; font-size: 13px; line-height: 1.5; }
.booking-agreement input { width: 19px; height: 19px; flex: 0 0 auto; margin-top: 1px; }
.booking-review { margin-top: 14px; padding: 16px; border: 2px solid #087a5b; border-radius: 15px; background: #f6fcf9; }
.review-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-bottom: 14px; }
.review-list div { padding: 10px; border-radius: 10px; background: #fff; border: 1px solid #dce6e2; }
.review-list span { display: block; color: #66736f; font-size: 11px; }
.review-list strong { display: block; margin-top: 3px; overflow-wrap: anywhere; }
.field-error { border-color: #c74343 !important; box-shadow: 0 0 0 3px rgba(199,67,67,.1); }
@media (max-width:520px) { .review-list { grid-template-columns: 1fr; } }
.offer-board { display: grid; gap: 10px; }
.offer-card { display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 14px; border: 1px solid #dce6e2; border-radius: 14px; background: #fff; }
.offer-card p { margin: 5px 0 0; color: #66736f; font-size: 12px; }
.offer-actions { display: flex; align-items: center; gap: 7px; }
.offer-state { font-weight: 900; color: #087a5b; }
.assignment-row.pending { border-color: #f2b84b; background: #fffaf0; }
.assignment-row.accepted { border-color: #12a778; background: #f1fbf7; }
.assignment-row.rejected { opacity: .55; }
@media (max-width:520px) { .offer-card { grid-template-columns: 1fr; } }
.booking-link-button { margin: 0 0 12px; color: #087a5b; border-color: #9ed4c3; background: #f3fbf8; }
.customer-language-card{border-color:#8fd9c1!important;background:#edfbf6!important}.customer-language-card strong{color:#087a5b;font-size:15px}
.language-banner{margin:-4px 0 12px;padding:10px 12px;border-radius:10px;background:#edfbf6;color:#087a5b;font-weight:900}
.message-meta{display:block;margin-top:4px;color:#7a8783;font-size:10px;text-align:right}.message.mine .message-meta{color:#4f7f70}
.owner-language-setting{display:flex;align-items:center;gap:10px;margin:-8px 0 12px;color:#66736f;font-weight:800}.owner-language-setting select{width:auto;min-width:130px}
.contact-verification { margin-top: 14px; padding-top: 14px; border-top: 1px dashed #9ed4c3; }
.contact-verification h4 { margin: 0 0 10px; }
.verification-intro { margin: 0 0 12px; color: #53635e; font-size: 13px; line-height: 1.55; }
.contact-options .contact-option { flex: 1 1 calc(25% - 8px); min-width: 92px; }
.contact-options .secondary-contact { flex-basis: 100%; color: #53635e; background: #fff; }
.verification-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 9px; }
.verification-code-box p { margin: 10px 0 0; color: #087a5b; font-size: 13px; }
.button-link { display: inline-flex; align-items: center; justify-content: center; border: 1px solid #087a5b; border-radius: 12px; padding: 11px 15px; color: #087a5b; text-decoration: none; font-weight: 800; }
@media (max-width:520px) { .verification-row { grid-template-columns: 1fr; } }

body.shared-role .role-tabs { display:none; }body.shared-role .app-header{display:flex;min-height:auto;padding:8px 12px;background:#087a5b}body.shared-role .app-header>div:first-child{display:none}body.shared-role .header-actions{margin-left:auto}
.header-actions{display:flex;gap:8px;align-items:center}.header-language{display:grid;gap:3px;color:#d8f5ec;font-size:10px;font-weight:800}.header-language select{min-width:116px;padding:9px 28px 9px 10px;border-color:#83cdb7;background:#fff;color:#17211e;font-size:13px}
body.shared-customer.has-booking .booking-panel { display:none; }
body.shared-owner main { max-width:1400px; }
body.shared-owner #ownerView { grid-template-columns:minmax(320px,.7fr) minmax(560px,1.3fr); align-items:start; }
body.shared-owner #ownerView>.panel { min-height:420px; }
@media(max-width:760px){
  .app-header{padding:12px 14px;display:flex;align-items:center}.app-header h1{font-size:20px;margin:4px 0}.app-header p{display:none}.app-header #resetDemo{display:none}.header-actions{margin:0 0 0 auto}.header-language span{display:none}.header-language select{min-width:105px;padding:8px 24px 8px 8px}
  main{padding:8px}.panel{padding:13px;border-radius:13px;box-shadow:none}.panel-title{margin-bottom:12px}.panel-title h2{font-size:20px}
  .form-grid{gap:9px}.quote-box{margin:10px 0;padding:12px}.quote-box strong{font-size:20px}
  button,.photo-button,.receipt-upload{min-height:46px;padding:10px 12px}.location-map{height:260px}
  .customer-progress .summary-grid,.progress-panel .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.shared-owner #ownerView{display:grid;grid-template-columns:1fr}body.shared-owner main{padding:10px}
  body.shared-therapist main,body.shared-customer main{padding:0}body.shared-therapist .panel,body.shared-customer .panel{border-radius:0;border-left:0;border-right:0}
  .timeline div{min-width:92px}.timeline{margin:10px 0}.chat-messages{min-height:80px}
}
@media(max-width:520px){.contact-options .contact-option{min-width:calc(50% - 8px);flex-basis:calc(50% - 8px)}}

.contact-field legend {
  margin-bottom: 7px;
  color: #66736f;
  font-size: 13px;
  font-weight: 800;
}

.contact-option.active {
  border-color: #087a5b;
  background: #087a5b;
  color: white;
}

.contact-field input {
  margin-top: 8px;
}

@media (max-width: 760px) {
  body {
    background: #fff;
  }

  .app-header {
    min-height: auto;
  }

  main {
    max-width: 560px;
    margin: 0 auto;
  }

  .location-field,
  .contact-field {
    grid-column: 1 / -1;
  }
}

@media (max-width: 520px) {
  .form-grid {
    grid-template-columns: 1fr;
  }

  .location-field,
  .contact-field {
    grid-column: 1;
  }

  .panel-title {
    gap: 8px;
  }
}
.travel-fee-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 12px 0;
  padding: 14px;
  border: 1px solid #f0c36a;
  border-radius: 14px;
  background: #fff8e8;
}

.travel-fee-box[hidden] {
  display: none;
}

.travel-fee-box div {
  min-width: 0;
}

.travel-fee-box small,
.travel-fee-box strong,
.travel-fee-box p {
  display: block;
}

.travel-fee-box small {
  color: #8b5d00;
  font-weight: 800;
  letter-spacing: .04em;
}

.travel-fee-box strong {
  margin-top: 3px;
}

.travel-fee-box p {
  margin: 4px 0 0;
  color: #5f5135;
  line-height: 1.4;
}

.travel-fee-box button {
  flex: 0 0 auto;
}

.summary-grid strong,
.travel-fee-box p {
  overflow-wrap: anywhere;
}

.panel,
.view,
.summary-grid,
.summary-grid > div {
  min-width: 0;
}

.gender-choice input {
  width: 1px;
  height: 1px;
}

@media (max-width: 640px) {
  .travel-fee-box {
    align-items: stretch;
    flex-direction: column;
  }

  .travel-fee-box button {
    width: 100%;
    min-height: 46px;
  }
}
.therapist-promo-policy {
  display: grid;
  gap: 10px;
  margin: 0 0 14px;
  padding: 15px;
  border: 2px solid #e3ac36;
  border-radius: 15px;
  background: #fff9e8;
  color: #5d430b;
}

.therapist-promo-policy small,
.therapist-promo-policy strong {
  display: block;
}

.therapist-promo-policy small {
  color: #9b6800;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .12em;
}

.therapist-promo-policy strong {
  margin-top: 3px;
  font-size: 16px;
}

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

.promo-benefits span {
  padding: 11px;
  border-radius: 11px;
  background: #fff;
  font-size: 12px;
  line-height: 1.45;
}

.promo-benefits b {
  display: block;
  color: #087a5b;
}

.therapist-promo-policy p {
  margin: 0;
  font-size: 11px;
  line-height: 1.5;
}

.therapist-promo-policy label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.45;
}

.therapist-promo-policy input {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  margin: 0;
}

@media (max-width: 520px) {
  .promo-benefits {
    grid-template-columns: 1fr;
  }
}
.preference-toggle{grid-column:1/-1;min-height:48px;border:1px solid #cbded7;background:#f5fbf8;color:#075f4a;font-weight:800;border-radius:12px}.assigned-therapists{margin:14px 0;padding:14px;border:1px solid #cfe8df;border-radius:16px;background:#f7fcfa}.assigned-therapists .panel-title{margin-bottom:10px}.assigned-profile button{display:none}
@media(max-width:680px){.preference-toggle{width:100%}.assigned-therapists{padding:12px;margin:12px 0}.assigned-therapists .profile-card{grid-template-columns:76px 1fr}.assigned-therapists .profile-card img{width:76px;height:96px}}
/* Count selectors are touch-friendly buttons on mobile and desktop. */
.count-choice{border:0;padding:0;margin:0;min-width:0}.count-choice legend{font-weight:800;margin-bottom:7px}.count-options{display:flex;gap:7px;flex-wrap:wrap}.count-options label{margin:0}.count-options input{position:absolute;opacity:0;pointer-events:none}.count-options span{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:42px;padding:0 12px;border:1px solid #c8ddd6;border-radius:11px;background:#fff;color:#143d33;font-weight:800;cursor:pointer}.count-options input:checked+span{background:#087b61;color:#fff;border-color:#087b61}.count-options span:active{transform:scale(.97)}
.gender-count-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gender-count-grid label{display:flex;flex-direction:column;gap:6px;margin:0;color:#143d33;font-weight:800}.gender-count-grid select{width:100%;min-height:44px;border:1px solid #c8ddd6;border-radius:11px;background:#fff;color:#143d33;font:inherit;font-weight:800;padding:0 10px}.gender-count-hint{display:block;margin-top:7px;color:#4d6a62;font-size:.85rem;font-weight:700}
.assignment-choice{grid-column:1/-1;border:0;padding:0;margin:0;min-width:0}.assignment-choice legend{margin-bottom:8px;color:#111;font-weight:900}.assignment-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.assignment-options button{min-height:50px;padding:9px 10px;border-color:#b9d8ce;background:#fff;color:#153d33;font-size:.95rem;font-weight:900;line-height:1.25}.assignment-options button.active{border-color:#087b61;background:#087b61;color:#fff;box-shadow:0 5px 14px rgba(8,123,97,.18)}.assignment-choice small{display:block;margin-top:8px;color:#4d6a62;font-weight:700}.previous-therapist-picker{grid-column:1/-1;margin-top:0}.previous-therapist-picker h3{margin:2px 0 4px;font-size:1rem}.previous-therapist-picker p{margin:0 0 10px;color:#4d6a62;font-size:.9rem;font-weight:700}.previous-therapist-picker .profile-card.selected{border:2px solid #087b61;background:#ecfaf4}.previous-therapist-picker .profile-card button{min-height:40px}
@media (max-width:560px){.gender-count-grid{gap:8px}.gender-count-grid select{min-height:48px}.gender-count-hint{font-size:.8rem}}
@media (max-width:560px){.assignment-options{grid-template-columns:1fr}.assignment-options button{min-height:48px;font-size:1rem}.assignment-choice small{font-size:.82rem}}
/* Urgent assignment offer: compact, high-contrast customer control. */
.urgent-bonus-panel{margin:14px 0;padding:16px;border:2px solid #c98618;border-radius:14px;background:#fff8e8;color:#111}
.urgent-bonus-panel strong{display:block;font-size:1.15rem;font-weight:800}
.urgent-bonus-panel p{margin:7px 0 12px;line-height:1.5}
.urgent-bonus-row{display:flex;gap:8px;align-items:center}
.urgent-bonus-row select{flex:1;min-height:44px;padding:8px;border:1px solid #8d6a2c;border-radius:8px;background:#fff;color:#111;font-weight:700}
.urgent-bonus-row button{min-height:44px;white-space:nowrap}
.urgent-bonus-panel small{display:block;margin-top:8px;color:#4b3b1d}
@media (max-width:520px){.urgent-bonus-row{flex-direction:column;align-items:stretch}.urgent-bonus-row button{width:100%}}
