/* Bid2Stay 28.14.4 — Platform Form & Control Integrity Lock */

/* Shared form geometry */
form{
  min-width:0;
}

form .field,
form .form-field,
form .form-group,
form label{
  min-width:0;
}

form input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]),
form select{
  box-sizing:border-box;
  min-height:46px;
  height:46px;
  max-width:100%;
  padding:0 13px;
  border:1px solid #d9e0e7;
  border-radius:11px;
  background:#fff;
  color:#172033;
  -webkit-text-fill-color:#172033;
  font-size:14px;
  line-height:1.2;
  opacity:1;
}

form textarea{
  box-sizing:border-box;
  min-height:100px;
  max-width:100%;
  padding:11px 13px;
  border:1px solid #d9e0e7;
  border-radius:11px;
  background:#fff;
  color:#172033;
  -webkit-text-fill-color:#172033;
  font-size:14px;
  line-height:1.42;
  opacity:1;
}

form input::placeholder,
form textarea::placeholder{
  color:#98a2b3!important;
  -webkit-text-fill-color:#98a2b3!important;
  opacity:1!important;
}

form label,
form .form-label,
form .field-label,
form legend{
  color:#344054;
  -webkit-text-fill-color:#344054;
  font-size:12px;
  line-height:1.2;
  font-weight:900;
  opacity:1;
}

form .help,
form .helper,
form .hint,
form .help-text,
form .form-help,
form small{
  color:#667085;
  -webkit-text-fill-color:#667085;
  opacity:1;
}

form button,
form .btn,
form input[type="submit"],
form input[type="button"]{
  box-sizing:border-box;
  min-height:44px;
  height:auto;
  max-width:100%;
  padding:9px 13px;
  border-radius:10px;
  font-size:13px;
  line-height:1.15;
  font-weight:900;
  white-space:normal;
  overflow-wrap:anywhere;
}

/* Dark form/card contexts need explicit light labels */
.b2s-auth-card,
.b2s-login-card,
.b2s-contact-form,
.dark-panel form,
.navy-panel form,
[class*="dark"] form{
  color:#fff;
}

.b2s-auth-card label,
.b2s-login-card label,
.b2s-contact-form label,
.dark-panel form label,
.navy-panel form label,
[class*="dark"] form label{
  color:#dbe3ec!important;
  -webkit-text-fill-color:#dbe3ec!important;
}

.b2s-auth-card p,
.b2s-login-card p,
.b2s-contact-form p,
.dark-panel form p,
.navy-panel form p,
[class*="dark"] form p{
  color:#b7c1ce;
  -webkit-text-fill-color:#b7c1ce;
}

/* Light cards must never inherit white text */
.auth-card,
.login-card,
.register-card,
.form-card,
.card,
.panel,
.admin-edit-shell,
[data-review-detail],
[data-review-host]{
  min-width:0;
}

.auth-card:not(.b2s-auth-card),
.login-card:not(.b2s-login-card),
.register-card,
.form-card{
  color:#172033;
}

/* Buttons: visible active/inactive state */
button:disabled,
.btn:disabled,
input[type="submit"]:disabled{
  opacity:.58!important;
  cursor:not-allowed!important;
}

/* Prevent spill */
form label,
form button,
form .btn,
form p,
form span,
form small{
  overflow-wrap:anywhere;
}

/* Tables containing form controls */
.table-wrap,
.admin-table-wrap,
.responsive-table{
  max-width:100%;
  overflow-x:auto;
}

/* Mobile */
@media(max-width:900px){
  form input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]),
  form select{
    min-height:44px!important;
    height:44px!important;
    padding:0 11px!important;
    border-radius:10px!important;
    font-size:15px!important;
  }

  form textarea{
    min-height:88px!important;
    padding:10px 11px!important;
    border-radius:10px!important;
    font-size:15px!important;
  }

  form button,
  form .btn,
  form input[type="submit"],
  form input[type="button"]{
    min-height:42px!important;
    padding:9px 11px!important;
    font-size:13px!important;
  }

  form label,
  form .form-label,
  form .field-label,
  form legend{
    font-size:12px!important;
  }

  .form-grid,
  .field-grid,
  .admin-edit-grid,
  .detail-grid{
    min-width:0!important;
    gap:9px!important;
  }
}

/* FIND: canonical stay-type selector visual lock */
body.b2s30-discovery-page #b2s2039Search .b2s28414-stay-choice,
body.b2s30-discovery-page #b2s2039Search .b2s2039-stay-choice{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  width:100%!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}

body.b2s30-discovery-page #b2s2039Search .b2s28414-stay-choice label,
body.b2s30-discovery-page #b2s2039Search .b2s2039-stay-choice label{
  display:block!important;
  margin:0!important;
  padding:0!important;
  cursor:pointer!important;
}

body.b2s30-discovery-page #b2s2039Search .b2s28414-stay-choice input,
body.b2s30-discovery-page #b2s2039Search .b2s2039-stay-choice input{
  position:absolute!important;
  opacity:0!important;
  pointer-events:none!important;
  width:1px!important;
  height:1px!important;
}

body.b2s30-discovery-page #b2s2039Search .b2s28414-stay-choice span,
body.b2s30-discovery-page #b2s2039Search .b2s2039-stay-choice span{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:44px!important;
  padding:0 12px!important;
  border:1px solid #d9e0e7!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#475467!important;
  -webkit-text-fill-color:#475467!important;
  font-size:13px!important;
  line-height:1.15!important;
  font-weight:900!important;
  text-align:center!important;
}

body.b2s30-discovery-page #b2s2039Search .b2s28414-stay-choice input:checked + span,
body.b2s30-discovery-page #b2s2039Search .b2s2039-stay-choice input:checked + span,
body.b2s30-discovery-page #b2s2039Search .b2s28414-stay-choice label:has(input:checked) span,
body.b2s30-discovery-page #b2s2039Search .b2s2039-stay-choice label:has(input:checked) span{
  background:#111923!important;
  border-color:#111923!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

@media(max-width:760px){
  body.b2s30-discovery-page #b2s2039Search .b2s28414-stay-choice,
  body.b2s30-discovery-page #b2s2039Search .b2s2039-stay-choice{
    gap:5px!important;
  }
  body.b2s30-discovery-page #b2s2039Search .b2s28414-stay-choice span,
  body.b2s30-discovery-page #b2s2039Search .b2s2039-stay-choice span{
    min-height:40px!important;
    padding:0 8px!important;
    font-size:11.5px!important;
  }
}
