/* 18.4.3 shared layout rules. Loaded after the public or admin presentation layer. */
.pbsmp-widget,.pbsmp-admin{box-sizing:border-box;font-size:16px;line-height:1.5}
.pbsmp-widget *,.pbsmp-widget *::before,.pbsmp-widget *::after,
.pbsmp-admin *,.pbsmp-admin *::before,.pbsmp-admin *::after{box-sizing:border-box}
.pbsmp-widget :is(p,h1,h2,h3,small,dt,dd,label),.pbsmp-admin :is(p,h1,h2,h3,small,label){overflow-wrap:anywhere}
.pbsmp-widget :is(button,input,select,textarea),.pbsmp-admin :is(button,input,select,textarea){font-family:inherit}
.pbsmp-widget :is(input[type=radio],input[type=checkbox]){flex:none;min-height:0!important;padding:0!important}
.pbsmp-widget input[type=hidden],.pbsmp-admin input[type=hidden]{display:none!important}
.pbsmp-widget.pbsmp-client-booking-v2 [hidden]{display:none!important}

/* Booking rows have the full panel width; their text no longer competes with a second card. */
.pbsmp-client-booking-v2 .pbsmp-service-list{grid-template-columns:minmax(0,1fr)}
.pbsmp-client-booking-v2 .pbsmp-booking-card{container:pbsmp-panel / inline-size}
.pbsmp-client-booking-v2 .pbsmp-client-stage{--pbp-gutter:28px}
.pbsmp-client-booking-v2 :is(.pbsmp-booking-card-head,.pbsmp-wizard-body,.pbsmp-wizard-actions){min-width:0}
.pbsmp-client-booking-v2 .pbsmp-option-copy b{font-size:16px;line-height:1.4}
.pbsmp-client-booking-v2 .pbsmp-client-copy h2{color:#fff!important}
.pbsmp-client-booking-v2 .pbsmp-client-copy p,.pbsmp-client-booking-v2 .pbsmp-client-contact a{color:rgba(255,255,255,.92)!important}
.pbsmp-client-booking-v2 .pbsmp-client-visual{background-image:linear-gradient(180deg,rgba(14,58,49,.3),rgba(10,43,37,.9)),url("booking-hero-v2.jpg")!important}
.pbsmp-client-booking-v2 .pbsmp-option-copy small{font-size:14px;line-height:1.5}
.pbsmp-client-booking-v2 .pbsmp-option-category{white-space:normal;overflow-wrap:anywhere;line-height:1.4}
.pbsmp-client-booking-v2 .pbsmp-option-price{font-size:16px;white-space:normal;overflow-wrap:anywhere}
.pbsmp-client-booking-v2 .pbsmp-option-side{min-width:0;flex-wrap:wrap}
.pbsmp-client-booking-v2 .pbsmp-service-option>.pbsmp-option-copy{align-self:center}
.pbsmp-client-booking-v2 .pbsmp-service-option>.pbsmp-option-side{justify-content:center}
.pbsmp-client-booking-v2 .pbsmp-service-option>.pbsmp-option-photo{aspect-ratio:1}
.pbsmp-client-booking-v2 .pbsmp-service-search input[type=search],
.pbsmp-client-booking-v2 .pbsmp-service-sort select,
.pbsmp-client-booking-v2 .pbsmp-form input:not([type=radio]):not([type=checkbox]),
.pbsmp-client-booking-v2 .pbsmp-form textarea{font-size:16px!important;line-height:1.5!important}
.pbsmp-client-booking-v2 .pbsmp-form .pbsmp-service-search input[type=search]{padding-left:42px!important}
.pbsmp-client-booking-v2 .pbsmp-native-radio{min-height:0!important;min-width:0!important;margin:0!important;padding:0!important;border:0!important}
.pbsmp-client-booking-v2 .pbsmp-policy-row input{min-height:22px!important;height:22px!important;align-self:start}
.pbsmp-client-booking-v2 :is(.pbsmp-booking-option,.pbsmp-payment-method-option):has(input:focus-visible){outline:3px solid var(--pbp-primary);outline-offset:3px}
.pbsmp-client-booking-v2 .pbsmp-stepper button{width:44px;height:44px;min-width:44px;min-height:44px;font-size:14px;line-height:1}
.pbsmp-client-booking-v2 .pbsmp-step-labels{font-size:12px;line-height:1.4}
.pbsmp-client-booking-v2 .pbsmp-step-labels span{line-height:1.4}
.pbsmp-client-booking-v2 .pbsmp-time-heading{align-items:start;flex-wrap:wrap}
.pbsmp-client-booking-v2 .pbsmp-selected-date{text-align:left}
.pbsmp-client-booking-v2 .pbsmp-slots{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))!important}
.pbsmp-client-booking-v2 .pbsmp-slots>:not(button){grid-column:1/-1}
.pbsmp-client-booking-v2 .pbsmp-slot{font-size:14px!important}
.pbsmp-client-booking-v2 :is(.pbsmp-calendar-day,.pbsmp-calendar-weekdays){font-size:14px}
.pbsmp-client-booking-v2 .pbsmp-calendar-head strong{font-size:16px;line-height:1.4;text-align:center}
.pbsmp-client-booking-v2 .pbsmp-visible-label{font-size:14px;line-height:1.5}
.pbsmp-client-booking-v2 .pbsmp-details-grid{gap:16px}
.pbsmp-client-booking-v2 .pbsmp-coupon-box{margin:16px 0 0!important;padding:16px!important}
.pbsmp-client-booking-v2 .pbsmp-coupon-row{gap:12px!important;align-items:stretch}
.pbsmp-client-booking-v2 .pbsmp-apply-coupon{min-height:50px;font-size:14px}
.pbsmp-client-booking-v2 .pbsmp-review :is(dt,dd){font-size:14px!important;line-height:1.5}
.pbsmp-client-booking-v2 .pbsmp-review h3{font-size:18px}
.pbsmp-client-booking-v2 .pbsmp-review-service-copy strong{font-size:16px}
.pbsmp-client-booking-v2 .pbsmp-policy-row{font-size:14px!important;line-height:1.5!important}
.pbsmp-client-booking-v2 .pbsmp-wizard-actions{align-items:center;gap:12px}
.pbsmp-client-booking-v2 :is(.pbsmp-step-back,.pbsmp-step-next,.pbsmp-submit){font-size:16px;line-height:1.4;min-height:50px!important;margin:0!important;white-space:normal}
.pbsmp-client-booking-v2 .pbsmp-payment-method-option{align-items:start}
.pbsmp-client-booking-v2 .pbsmp-payment-method-option>span:last-child{min-width:0}
.pbsmp-client-booking-v2 .pbsmp-payment-method-option b{font-size:14px}
.pbsmp-client-booking-v2 .pbsmp-zelle-row{grid-template-columns:64px minmax(0,1fr) auto;font-size:14px;align-items:start}
.pbsmp-client-booking-v2 .pbsmp-copy-zelle{min-height:44px;font-size:12px;white-space:normal}
.pbsmp-client-booking-v2 .pbsmp-success-summary :is(dt,dd){min-width:0;font-size:14px;overflow-wrap:anywhere}
.pbsmp-client-booking-v2 .pbsmp-booking-success-card{font-weight:400}
.pbsmp-client-booking-v2 :is(.pbsmp-option-copy b,.pbsmp-option-price,.pbsmp-step-next,.pbsmp-step-back,.pbsmp-submit){font-weight:700}
.pbsmp-client-booking-v2 .pbsmp-payment-primary{font-size:16px!important;line-height:1.4!important}

/* Respond to the form's available space, including narrow page-builder columns. */
@container pbsmp-panel (max-width:660px){
  .pbsmp-client-booking-v2 :is(.pbsmp-date-layout,.pbsmp-details-layout,.pbsmp-service-tools){grid-template-columns:minmax(0,1fr)}
  .pbsmp-client-booking-v2 .pbsmp-service-sort{grid-template-columns:44px minmax(0,1fr);font-size:14px}
}
@container pbsmp-root (max-width:620px){
  .pbsmp-client-booking-v2 .pbsmp-client-stage{--pbp-gutter:18px}
  .pbsmp-client-booking-v2 .pbsmp-booking-card{min-height:0}
  .pbsmp-client-booking-v2 .pbsmp-staff-option{grid-template-columns:20px 58px minmax(0,1fr)!important;gap:10px!important}
  .pbsmp-client-booking-v2 .pbsmp-staff-option .pbsmp-available-badge{grid-column:3;justify-self:start;white-space:normal}
  .pbsmp-client-booking-v2 .pbsmp-option-select{min-width:0;min-height:40px}
  .pbsmp-client-booking-v2 .pbsmp-service-option>.pbsmp-option-side{justify-content:space-between}
  .pbsmp-client-booking-v2 .pbsmp-payment-method-options{grid-template-columns:1fr}
  .pbsmp-client-booking-v2 .pbsmp-wizard-actions{position:static}
}
@container pbsmp-root (max-width:390px){
  .pbsmp-client-booking-v2 .pbsmp-client-stage{--pbp-gutter:14px}
  .pbsmp-client-booking-v2 .pbsmp-service-option{grid-template-columns:20px 52px minmax(0,1fr)!important;column-gap:8px!important}
  .pbsmp-client-booking-v2 .pbsmp-service-option>.pbsmp-option-photo{width:52px;height:52px}
  .pbsmp-client-booking-v2 .pbsmp-zelle-row{grid-template-columns:1fr auto}
  .pbsmp-client-booking-v2 .pbsmp-zelle-row>span{grid-column:1/-1}
  .pbsmp-client-booking-v2 .pbsmp-coupon-row{grid-template-columns:1fr}
  .pbsmp-client-booking-v2 .pbsmp-success-summary>div{grid-template-columns:1fr;gap:4px}
  .pbsmp-client-booking-v2 .pbsmp-success-summary dd{text-align:left}
}

/* Customer portal and return-from-payment screens share the same spacing. */
.pbsmp-widget:not(.pbsmp-client-booking-v2){width:100%;min-width:0;padding:clamp(14px,3vw,24px)}
.pbsmp-widget .pbsmp-dashboard{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));align-items:stretch}
.pbsmp-widget .pbsmp-dashboard>:is(.pbsmp-success,.pbsmp-error){grid-column:1/-1}
.pbsmp-widget .pbsmp-dash-card{min-width:0;gap:12px;padding:24px}
.pbsmp-widget .pbsmp-dash-card :is(h3,p){margin:0;line-height:1.5}
.pbsmp-widget .pbsmp-dash-card h3{font-size:20px}
.pbsmp-widget .pbsmp-card-actions{display:flex;flex-wrap:wrap;gap:12px}
.pbsmp-widget:not(.pbsmp-client-booking-v2) :is(.button,.pbsmp-customer-load){display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin:0;padding:10px 16px;border:1px solid var(--pbsmp-border);border-radius:12px;font-size:16px;line-height:1.5;text-align:center;white-space:normal;text-decoration:none}
.pbsmp-widget:not(.pbsmp-client-booking-v2) :is(input:not([type=checkbox]):not([type=radio]),select,textarea){width:100%;max-width:100%;min-width:0;padding:12px;font-size:16px;line-height:1.5;border:1px solid var(--pbsmp-border);border-radius:12px}
.pbsmp-widget .pbsmp-confirmation-state{max-width:720px;margin:auto;padding:clamp(18px,4vw,36px);text-align:center;background:var(--pbsmp-surface);border:1px solid var(--pbsmp-border);border-radius:24px}
.pbsmp-widget .pbsmp-confirm-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 16px;background:var(--pbsmp-primary);color:#fff;border-radius:50%;font-size:28px}
.pbsmp-widget .pbsmp-confirmation-state h2{font-size:32px;line-height:1.2;margin:12px 0}
.pbsmp-widget :is(.pbsmp-confirm-card,.pbsmp-confirm-actions){display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;margin:20px 0}
.pbsmp-widget .pbsmp-confirm-card>div{min-width:0;padding:16px;background:var(--pbsmp-surface-muted);border-radius:12px;text-align:left}
.pbsmp-widget .pbsmp-confirm-card span{display:block;font-size:14px}
.pbsmp-widget .pbsmp-confirm-card strong{display:block;margin-top:4px;font-size:16px}

/* Admin: one control height and a predictable label/control/help rhythm. */
.pbsmp-admin{width:100%;min-width:0;padding:clamp(14px,2.5vw,30px)!important;container:pbsmp-admin / inline-size}
.pbsmp-admin :is(.pbsmp-admin-card,.pbsmp-staff-section,.pbsmp-settings-section){min-width:0;max-width:100%}
.pbsmp-admin h1{font-size:clamp(26px,3vw,34px)!important;line-height:1.2!important}
.pbsmp-admin h2{font-size:22px!important;line-height:1.3!important}
.pbsmp-admin h3{font-size:18px!important;line-height:1.4!important}
.pbsmp-admin :is(p,label,td){font-size:14px;line-height:1.5}
.pbsmp-admin :is(small,.description,.pbsmp-field-help){font-size:12px!important;line-height:1.5!important}
.pbsmp-admin :is(.pbsmp-field-label,.pbsmp-setting-field>span){font-size:14px!important;line-height:1.5}
.pbsmp-admin :is(.pbsmp-admin-grid,.pbsmp-settings-grid,.pbsmp-staff-fields-grid){align-items:start!important;gap:20px!important}
.pbsmp-admin :is(.pbsmp-admin-grid,.pbsmp-settings-grid,.pbsmp-staff-fields-grid)>*{min-width:0}
.pbsmp-admin :is(.pbsmp-admin-grid,.pbsmp-settings-grid){grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))!important}
.pbsmp-admin :is(.pbsmp-setting-field,.pbsmp-admin-grid>label){display:flex;flex-direction:column;gap:8px}
.pbsmp-admin :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=color]),select,textarea){width:100%;max-width:100%;min-width:0;min-height:50px!important;font-size:16px!important;line-height:1.5!important;padding:10px 12px!important;margin:0!important}
.pbsmp-admin textarea{min-height:112px!important;resize:vertical}
.pbsmp-admin .pbsmp-field-control{height:50px;min-height:50px;padding:0 12px;gap:10px}
.pbsmp-admin .pbsmp-field-control :is(input,select){height:48px;min-height:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important}
.pbsmp-admin .pbsmp-field-control .pbsmp-color-input{height:24px;min-height:24px!important}
.pbsmp-admin :is(.pbsmp-field-icon,.pbsmp-btn-icon){display:inline-flex;flex:none;align-items:center;justify-content:center}
.pbsmp-admin :is(.button,.pbsmp-action-btn,.pbsmp-submit-staff){display:inline-flex!important;align-items:center;justify-content:center;gap:8px;min-height:50px!important;height:auto!important;margin:0;padding:10px 16px!important;font-size:14px!important;line-height:1.5!important;white-space:normal!important;text-align:center;max-width:100%}
.pbsmp-admin :is(.pbsmp-staff-submit,.pbsmp-admin-grid>.button){align-self:end}
.pbsmp-admin :is(.pbsmp-section-head,.pbsmp-section-title,.pbsmp-settings-header,.pbsmp-settings-footer,.pbsmp-admin-page-head,.pbsmp-staff-hero,.pbsmp-admin-toolbar){min-width:0;flex-wrap:wrap;gap:16px}
.pbsmp-admin :is(.pbsmp-admin-toolbar-search,.pbsmp-table-search){min-width:0;max-width:100%}
.pbsmp-admin :is(.pbsmp-settings-header,.pbsmp-settings-footer,.pbsmp-staff-hero)>*{min-width:0}
.pbsmp-admin .pbsmp-booking-filters-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:end}
.pbsmp-admin .pbsmp-booking-filter-actions{grid-column:1/3;justify-content:flex-start}
.pbsmp-admin .pbsmp-booking-count{grid-column:3;min-height:50px;border:0;padding:0}
.pbsmp-admin :is(.pbsmp-data-table-wrap,.pbsmp-staff-table-wrap){width:100%;max-width:100%;min-width:0;overflow:auto;overscroll-behavior-inline:contain}
.pbsmp-admin .pbsmp-data-table-wrap{grid-column:1/-1;border:1px solid var(--pbsmp-border);border-radius:16px;margin:16px 0}
.pbsmp-admin .pbsmp-data-table-wrap table{width:100%;min-width:640px;margin:0!important;table-layout:auto}
.pbsmp-admin :is(th,td){vertical-align:middle!important;padding:14px 16px!important}
.pbsmp-admin th{font-size:12px!important;line-height:1.5!important}
.pbsmp-admin :is(.pbsmp-cal-event,.pbsmp-cal-event span,.pbsmp-calendar-weekday){font-size:12px!important;line-height:1.5!important;overflow-wrap:anywhere}
.pbsmp-admin.pbsmp-calendar-admin :is(.pbsmp-cal-event,.pbsmp-cal-block) small{font-size:12px!important}
.pbsmp-admin :is(.pbsmp-booking-actions,.pbsmp-inline-actions,.pbsmp-coupon-actions,.pbsmp-refund-actions){display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pbsmp-admin .pbsmp-bookings-status-badge{white-space:normal;min-width:140px;padding:8px 12px;line-height:1.4}
.pbsmp-admin .pbsmp-availability-form{display:inline-flex;margin:0;padding:0}
.pbsmp-admin .pbsmp-availability-badge{display:inline-flex;align-items:center;min-height:32px;padding:5px 12px;border:1px solid var(--pbsmp-border);border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap}
.pbsmp-admin .pbsmp-availability-badge.is-active{background:var(--pbsmp-primary-soft);color:var(--pbsmp-primary-hover)}
.pbsmp-admin .pbsmp-availability-badge.is-paused{background:#fff5db;color:#754c00;border-color:#e9cf96}
.pbsmp-admin .pbsmp-toggle{flex-direction:row;align-items:flex-start!important}
.pbsmp-admin :is(input[type=checkbox],input[type=radio]){flex:none;width:20px!important;height:20px!important;min-height:20px!important;margin:2px 0 0!important}
@container pbsmp-admin (max-width:1000px){
  .pbsmp-admin .pbsmp-staff-fields-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pbsmp-admin .pbsmp-staff-submit{grid-column:1/-1}
  .pbsmp-admin .pbsmp-dashboard-overview{grid-template-columns:minmax(0,1fr)}
  .pbsmp-admin .pbsmp-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@container pbsmp-admin (max-width:620px){
  .pbsmp-admin :is(.pbsmp-staff-fields-grid,.pbsmp-booking-filters-grid,.pbsmp-saas-status-grid){grid-template-columns:minmax(0,1fr)!important}
  .pbsmp-admin :is(.pbsmp-booking-filter-actions,.pbsmp-booking-count,.pbsmp-staff-submit){grid-column:1/-1;justify-content:flex-start}
  .pbsmp-admin .pbsmp-staff-media-row{flex-direction:column;align-items:flex-start}
  .pbsmp-admin .pbsmp-staff-submit .pbsmp-submit-staff{min-width:0;width:100%}
  .pbsmp-admin .pbsmp-service-card{grid-template-columns:minmax(0,1fr)!important}
  .pbsmp-admin :is(.pbsmp-admin-card,.pbsmp-staff-section,.pbsmp-settings-section){padding:16px!important}
}
@media(max-width:620px){
  .pbsmp-client-booking-v2 :is(.pbsmp-date-layout,.pbsmp-details-layout,.pbsmp-service-tools){grid-template-columns:1fr}
  .pbsmp-widget .pbsmp-dash-card{padding:18px}
}
