.bbo-extra-services{min-width:0;margin:20px 0;padding:18px;border:1px solid #d5dfdc;border-radius:16px;background:#f8faf9;color:#172033}.bbo-extra-services legend{padding:0 7px;font-size:18px;font-weight:700}.bbo-extra-services>p{margin:0 0 14px;color:#50615c;font-size:14px;line-height:1.55}.bbo-extra-service-list{display:grid;gap:8px;max-height:240px;overflow:auto;overscroll-behavior:contain;padding:3px}.bbo-extra-service{display:flex!important;align-items:flex-start;gap:12px;padding:12px;background:#fff;border:1px solid #dce5e1;border-radius:12px;cursor:pointer;text-align:left}.bbo-extra-service[hidden]{display:none!important}.bbo-extra-service:has(input:checked){border-color:#527365;background:#edf5f0}.bbo-extra-service input[type=checkbox]{width:20px!important;height:20px!important;min-width:20px;margin:3px 0 0!important;accent-color:#315b48;flex:0 0 20px}.bbo-extra-service>span{min-width:0;display:grid;gap:3px}.bbo-extra-service strong{font-size:15px;line-height:1.4;font-weight:700}.bbo-extra-service small{font-size:13px;color:#50615c}.bbo-extra-description{font-size:13px;line-height:1.55;white-space:pre-line;overflow-wrap:anywhere}.bbo-visit-summary{margin-top:14px;padding:14px;background:#eaf1ed;border-radius:12px;font-size:15px;font-weight:600;line-height:1.6;overflow-wrap:anywhere}.bbo-combined-times{margin:16px 0;padding:16px;background:#f6f8fa;border:1px solid #d5dfe9;border-radius:14px;max-height:280px;overflow:auto}.bbo-combined-times p{margin:0 0 12px}.bbo-combined-times>strong{display:block;margin-top:14px;font-size:14px}.bbo-combined-time-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;margin-top:8px}.bbo-combined-time-grid button{min-height:44px;padding:8px;border:1px solid #a8beb3;background:white;color:#213f32;border-radius:10px;font:inherit;cursor:pointer}.bbo-combined-time-grid button:hover{background:#eaf1ed}.bbo-combined-time-grid button:focus-visible,.bbo-extra-service:focus-within{outline:3px solid #92b3a2;outline-offset:2px}#customer-booking-modal .sw-modal-content{max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}#customer-booking-modal .sw-modal-actions{position:sticky;bottom:0;background:#fff;padding-top:12px;z-index:2}.bbo-booking-help{font-size:15px;color:#50615c;margin:0 0 18px;line-height:1.6}@media(max-width:600px){.bbo-extra-services{padding:13px;margin:16px 0}.bbo-extra-service-list{max-height:210px}#customer-booking-modal .sw-modal-content{max-height:calc(100dvh - 16px)}.bbo-visit-summary{font-size:14px}}

#customer-booking-modal .bbo-extra-services{background:var(--swfd-cream,#f8faf9);border-color:var(--swfd-border,#d5dfdc);font-family:var(--swfd-body,inherit)}#customer-booking-modal .bbo-extra-service:has(input:checked){border-color:var(--swfd-primary-dark,#527365)}#customer-booking-modal .bbo-extra-service input[type=checkbox]{accent-color:var(--swfd-primary-dark,#315b48)}#customer-booking-modal .bbo-combined-time-grid button{font-family:var(--swfd-body,inherit)}
/* 12.5.14: readable full-width groups and correct touch controls in salon theme. */
#customer-booking-modal #customer-form .bbo-extra-services,
#customer-booking-modal #customer-form .bbo-combined-times,
#customer-booking-modal #customer-form #sw-selected-service-description{grid-column:1/-1!important;width:100%;box-sizing:border-box;min-width:0}
#customer-booking-modal #customer-form .bbo-extra-services{margin:0}
#customer-booking-modal #customer-form input[type=hidden]{display:none!important}
#customer-booking-modal #customer-form .bbo-extra-service input[type=checkbox]{display:block!important;width:22px!important;min-width:22px!important;max-width:22px!important;height:22px!important;min-height:22px!important;max-height:22px!important;padding:0!important;margin:2px 0 0!important;flex:0 0 22px!important;border-radius:5px!important;box-shadow:none!important;appearance:auto!important;-webkit-appearance:checkbox!important}
.bbo-service-search-label{display:grid;gap:6px;margin:0 0 12px;font-size:13px;font-weight:600}.bbo-service-search{box-sizing:border-box;width:100%;min-height:48px;border:1px solid #cbd8d2;border-radius:11px;padding:11px 13px;font-size:16px;background:white;color:#172033}.bbo-service-search-empty{font-size:14px;color:#50615c;padding:10px 0}.bbo-service-search-empty[hidden]{display:none!important}
.bbo-extra-service{box-sizing:border-box;min-height:56px;padding:14px;touch-action:manipulation}.bbo-extra-service-list{-webkit-overflow-scrolling:touch;scrollbar-width:thin;scroll-padding:8px}.bbo-extra-service strong{overflow-wrap:anywhere}.bbo-footer-total{flex:1 1 100%;font-size:15px;font-weight:700;color:#293e33;line-height:1.5}
#customer-booking-modal #booking-step-form>.sw-modal-actions{flex-wrap:wrap!important}
#customer-booking-modal .bbo-booking-help{box-sizing:border-box;margin:0;padding:14px 36px;background:#fffdf9;color:#50615c;font-size:14px;line-height:1.6}
#customer-booking-modal #customer-form .form-group:has(#service-select),#customer-booking-modal #customer-form .form-group:has(#practitioner-select){grid-column:1/-1!important}
#customer-booking-modal .bbo-combined-time-grid button{min-height:48px;touch-action:manipulation}
@media(max-width:600px){
 #customer-booking-modal #customer-form{grid-template-columns:minmax(0,1fr)!important;gap:16px!important}
 #customer-booking-modal #customer-form .form-group{grid-column:1/-1!important}
 #customer-booking-modal .bbo-booking-help{padding:12px 22px}
 #customer-booking-modal .bbo-extra-services legend{font-size:17px;line-height:1.4}
 #customer-booking-modal .bbo-extra-service-list{max-height:260px}
 #customer-booking-modal .bbo-extra-service{padding:12px;gap:11px}
 #customer-booking-modal .bbo-visit-summary{font-size:14px;line-height:1.65;padding:12px}
 #customer-booking-modal #booking-step-form>.sw-modal-actions{padding-bottom:max(16px,env(safe-area-inset-bottom))!important;gap:8px!important}
 #customer-booking-modal .bbo-footer-total{font-size:15px}
 #customer-booking-modal .sw-modal-actions #confirm-booking{flex:1 1 auto!important;min-height:50px!important;padding:12px 16px!important;letter-spacing:0!important;text-transform:none!important;font-size:15px!important}
 #customer-booking-modal .sw-modal-actions .secondary{min-height:50px!important;padding:12px 13px!important;letter-spacing:0!important;text-transform:none!important;font-size:14px!important}
}
@media(max-width:360px){#customer-booking-modal #customer-form{padding-left:16px!important;padding-right:16px!important}#customer-booking-modal .bbo-booking-help{padding-left:16px;padding-right:16px}}

@media(max-width:600px){#customer-booking-modal #booking-step-form>.sw-modal-actions{display:grid!important;grid-template-columns:minmax(0,.8fr) minmax(0,1.7fr)!important;align-items:center!important}#customer-booking-modal .bbo-footer-total{grid-column:1/-1!important}#customer-booking-modal .sw-modal-actions .sw-modal-btn{width:100%!important;box-sizing:border-box!important}}
@media(max-width:600px){#customer-booking-modal .bbo-footer-total{grid-row:1!important}#customer-booking-modal .sw-modal-actions .secondary{grid-row:2!important;grid-column:1!important}#customer-booking-modal .sw-modal-actions #confirm-booking{grid-row:2!important;grid-column:2!important}}
#customer-booking-modal .sw-modal-content{scroll-padding-bottom:130px!important;scroll-padding-top:16px!important}
#customer-booking-modal #customer-form .bbo-service-search:focus{outline:2px solid #8fab9c!important;outline-offset:2px!important}
/* 12.5.15 – compact add action using the salon's existing palette. */
.bbo-extra-services{background:#fffdf9;border-color:#e5dacb;color:#252b20}.bbo-add-treatment{margin-top:8px}.bbo-add-treatment>summary{display:flex;align-items:center;gap:8px;box-sizing:border-box;min-height:50px;padding:12px 16px;border:1px solid #e5dacb;border-radius:13px;background:#f4efe7;color:#252b20;font:inherit;font-size:15px;font-weight:600;line-height:1.4;cursor:pointer;list-style:none;touch-action:manipulation}.bbo-add-treatment>summary::-webkit-details-marker{display:none}.bbo-add-treatment>summary:after{content:'⌄';margin-left:auto;font-size:20px}.bbo-add-treatment[open]>summary:after{content:'⌃'}.bbo-add-treatment>p{margin:14px 0;font-size:14px;line-height:1.55;color:#706b61}.bbo-add-treatment>summary:focus-visible,.bbo-done-extras:focus-visible,.bbo-treatment-chip button:focus-visible{outline:3px solid #aa8251;outline-offset:3px}.bbo-done-extras{width:100%;min-height:48px;margin-top:12px;border:1px solid #e5dacb;border-radius:12px;background:#f4efe7;color:#252b20;font:inherit;font-size:15px;font-weight:600;line-height:1.4;cursor:pointer}.bbo-selected-extras{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.bbo-selected-extras[hidden]{display:none}.bbo-treatment-chip{display:flex;align-items:center;gap:8px;max-width:100%;padding:3px 4px 3px 12px;border-radius:12px;background:#f4efe7;border:1px solid #e5dacb;color:#252b20;font-size:14px}.bbo-treatment-chip span{min-width:0;overflow-wrap:anywhere}.bbo-treatment-chip button{flex:0 0 40px;width:40px;height:40px;border:0;border-radius:9px;background:transparent;color:inherit;font-size:24px;cursor:pointer}.bbo-extra-service{border-color:#e5dacb}.bbo-extra-service:has(input:checked){background:#f4efe7;border-color:#93714d}.bbo-visit-summary{background:#faf5ec;color:#252b20}.bbo-combined-times{background:#faf5ec;border-color:#e5dacb}.bbo-combined-time-grid button{border-color:#e5dacb;color:#252b20}.bbo-combined-time-grid button:hover{background:#f4efe7}
#customer-booking-modal .bbo-extra-services{background:#fffdf9;border-color:#e5dacb;color:var(--swfd-text,#252b20)}#customer-booking-modal .bbo-add-treatment>summary,#customer-booking-modal .bbo-done-extras,#customer-booking-modal .bbo-treatment-chip{background:#f4efe7;color:var(--swfd-text,#252b20);border-color:#e5dacb;font-family:var(--swfd-body,Arial,sans-serif)}#customer-booking-modal .bbo-extra-service:has(input:checked){background:#f4efe7;border-color:var(--swfd-primary-dark,#93714d)}#customer-booking-modal .bbo-visit-summary{background:#faf5ec;color:var(--swfd-text,#252b20)}#customer-booking-modal .bbo-footer-total{color:var(--swfd-text,#252b20)}#customer-booking-modal .bbo-add-treatment>p,#customer-booking-modal .bbo-extra-service small{color:var(--swfd-muted,#706b61)}
.bbo-staff-page .bbo-extra-services{background:#f8fafc;border-color:#cbd6e2;color:#172a46}.bbo-staff-page .bbo-add-treatment>summary,.bbo-staff-page .bbo-done-extras,.bbo-staff-page .bbo-treatment-chip,.bbo-staff-page .bbo-visit-summary{background:#edf2f7;color:#172a46;border-color:#cbd6e2}

#customer-booking-modal #customer-form .bbo-service-search{border-color:#d8d2c8!important;color:var(--swfd-text,#252b20)!important;font-weight:500!important}#customer-booking-modal #customer-form .bbo-service-search:focus{outline-color:var(--swfd-primary-dark,#93714d)!important}#customer-booking-modal .bbo-booking-help{color:var(--swfd-muted,#706b61)}
.bbo-treatment-chip button{flex-basis:44px;width:44px;height:44px;touch-action:manipulation}

/* 12.5.16: one continuous scroll area and a lighter mobile layout. */
#customer-booking-modal .bbo-extra-service-list,#customer-booking-modal .bbo-combined-times{max-height:none!important;overflow:visible!important;overscroll-behavior:auto!important}
.bbo-alternative-day{display:grid;gap:7px;margin:12px 0;font-size:14px;font-weight:600}.bbo-alternative-day select{width:100%;min-height:50px;padding:12px;border:1px solid #d8d2c8;border-radius:12px;background:white;color:#252b20;font-size:16px}
@media(max-width:600px){
 #customer-booking-modal #customer-form .bbo-extra-services{border:0!important;background:transparent!important;border-radius:0!important;padding:0!important}
 #customer-booking-modal .bbo-extra-services legend{padding:0!important;margin-bottom:8px;font-size:16px}
 #customer-booking-modal .bbo-add-treatment>summary{border-radius:12px;min-height:50px}
 #customer-booking-modal .bbo-extra-service-list{gap:0;padding:0!important}
 #customer-booking-modal .bbo-extra-service{margin:0!important;padding:14px 4px!important;border:0!important;border-bottom:1px solid #e5dacb!important;border-radius:0!important;background:transparent!important}
 #customer-booking-modal .bbo-extra-service:has(input:checked){background:#faf5ec!important;border-radius:8px!important;padding-left:10px!important;padding-right:10px!important}
 #customer-booking-modal .bbo-combined-times{border:0!important;background:transparent!important;border-radius:0!important;padding:0!important;margin:0!important}
 #customer-booking-modal .bbo-visit-summary{border-radius:10px;font-weight:600}
}
