
/* ==========================================================
   Bid2Stay 28.8.6 — Production Copy & Button Integrity Lock
   Guest + Provider production-facing polish.
   ========================================================== */

/* Buttons must never appear vertically cut or clip their borders/text. */
body[data-portal-role="guest"] :is(button,.btn,[class*="-btn"],[class*="-button"]),
body[data-portal-role="hotel"] :is(button,.btn,[class*="-btn"],[class*="-button"]),
body[data-portal-role="provider"] :is(button,.btn,[class*="-btn"],[class*="-button"]){
  box-sizing:border-box;
  min-height:46px;
  line-height:1.2;
  padding-top:10px;
  padding-bottom:10px;
  align-items:center;
  justify-content:center;
}

/* Guest Account/Profile: explicit geometry lock. */
body[data-portal-role="guest"] .b2s-account-rc7 .btn,
body[data-portal-role="guest"] #b2sSaveMobile,
body[data-portal-role="guest"] .b2s-account-home-link{
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  line-height:1.2;
  padding:11px 18px;
  white-space:nowrap;
  overflow:visible;
  text-overflow:clip;
  vertical-align:middle;
}

body[data-portal-role="guest"] #b2sSaveMobile{
  width:auto;
  max-width:100%;
}

/* Prevent border clipping inside profile cards/forms. */
body[data-portal-role="guest"] .b2s-account-rc7,
body[data-portal-role="guest"] .b2s-account-rc7 .card,
body[data-portal-role="guest"] .b2s-account-rc7 .form,
body[data-portal-role="guest"] .b2s-account-rc7 .wide{
  overflow:visible;
  min-width:0;
}

/* Rich CTA controls may wrap, but never clip. */
body[data-portal-role="guest"] button:has(small),
body[data-portal-role="hotel"] button:has(small),
body[data-portal-role="provider"] button:has(small){
  height:auto;
  min-height:52px;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  padding-top:11px;
  padding-bottom:11px;
}

/* Short portal actions stay clean on one line. */
body[data-portal-role="guest"] :is(.b2s-mobile-guest-primary,.b2s-guest-account-link,.b2s-guest-logout-link,.b2s-account-home-link),
body[data-portal-role="hotel"] :is(.b2s-mobile-guest-primary),
body[data-portal-role="provider"] :is(.b2s-mobile-guest-primary){
  white-space:nowrap;
  line-height:1.2;
}

/* Form action rows should have enough breathing room for borders and focus rings. */
body[data-portal-role="guest"] form :is(.wide,[class*="-actions"]),
body[data-portal-role="hotel"] form :is(.wide,[class*="-actions"]),
body[data-portal-role="provider"] form :is(.wide,[class*="-actions"]){
  padding-bottom:2px;
}

/* Keyboard/focus visibility without clipping. */
body[data-portal-role="guest"] :is(button,.btn,a):focus-visible,
body[data-portal-role="hotel"] :is(button,.btn,a):focus-visible,
body[data-portal-role="provider"] :is(button,.btn,a):focus-visible{
  outline:3px solid rgba(215,161,0,.28);
  outline-offset:2px;
}

/* Mobile: profile save action is full-width and easy to tap. */
@media (max-width:760px){
  body[data-portal-role="guest"] #b2sSaveMobile{
    width:100%;
    min-height:50px;
    padding:12px 16px;
  }

  body[data-portal-role="guest"] .b2s-account-home-link{
    min-height:44px;
    padding:9px 12px;
  }

  body[data-portal-role="guest"] .b2s-account-rc7 .card{
    padding-bottom:16px;
  }
}

.pill.admin_managed,.b2s2870-status.admin_managed{background:#eef3f8;color:#30445b;border-color:#d9e3ec}

/* 28.8.9.4 Provider Filter */
.b2s2894-provider-filter{padding:18px;margin:16px 0}
.b2s2894-provider-filter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.b2s2894-provider-filter-head h2{margin:3px 0 0;font-size:1.08rem}
.b2s2894-provider-filter-grid{display:grid;grid-template-columns:minmax(220px,1.8fr) repeat(4,minmax(140px,1fr));gap:10px}
.b2s2894-provider-filter-grid label{display:grid;gap:6px}
.b2s2894-provider-filter-grid label>span{font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#667085}
.b2s2894-provider-filter-grid input,.b2s2894-provider-filter-grid select{min-height:44px;border:1px solid #dfe5ec;border-radius:12px;padding:0 11px;background:#fff}
.b2s2894-provider-filter-summary{margin:10px 0 0;color:#667085;font-size:.82rem}
@media(max-width:900px){.b2s2894-provider-filter-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){
  .b2s2894-provider-filter{padding:14px}
  .b2s2894-provider-filter-head{align-items:center}
  .b2s2894-provider-filter-grid{grid-template-columns:1fr}
}
