/* Mobile app shell: retain the full desktop navigation in an accessible drawer. */
#sales-open-whatsapp[aria-disabled=true]{opacity:.5;pointer-events:none}#copy-message-pix[hidden],#pix-message-help[hidden]{display:none}
.professional-thumb,.professional-picture{display:grid;place-items:center;overflow:hidden;border-radius:50%;background:var(--surface-soft);color:var(--muted);font-weight:700}.professional-thumb{width:48px;height:48px;flex:0 0 48px}.professional-picture{width:160px;height:160px;max-width:100%;margin:auto;font-size:32px}.professional-thumb img,.professional-picture img{width:100%;height:100%;object-fit:cover;filter:none;mix-blend-mode:normal}.professional-thumb [hidden],.professional-picture [hidden]{display:none}.professional-choice{gap:12px}.professional-choice>strong{flex:1;min-width:0;text-align:left}.professional-choice>span{flex:0 1 auto}.row:has(>.professional-thumb)>div:not(.professional-thumb):not(.actions){flex:1}.row:has(>.professional-thumb)>.actions{flex:0 1 auto;width:auto}#professional-photo-file{width:100%;max-width:100%}
@media(max-width:760px){.row:has(>.professional-thumb)>.actions{flex-basis:100%;justify-content:flex-end}}
.workspace-switch{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:24px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.workspace-switch>span{font-size:12px;font-weight:600;color:var(--muted)}.workspace-switch>div{display:flex;gap:10px;flex-wrap:wrap}.workspace-switch button{white-space:normal}.workspace-switch [aria-pressed=true]{box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--muted)}
@media(max-width:760px){.workspace-switch{align-items:flex-start;flex-direction:column}.workspace-switch>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.workspace-switch button{width:100%;min-width:0}}
[data-sales-client-row][hidden]{display:none}
.product-search{margin:0 0 20px;max-width:480px}.catalog>[hidden],#product-search-empty[hidden]{display:none}.product .pill{margin-bottom:10px}.order-progress{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:16px 0}.order-progress li{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;border:1px solid var(--line);padding:8px;border-radius:8px}.order-progress li>span{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:50%;background:var(--surface-soft)}.order-progress .reached{color:var(--text);border-color:var(--muted)}.order-progress [aria-current=step]{font-weight:700;background:var(--surface-soft)}.order-cancelled{color:var(--muted)}
@media(max-width:760px){.order-progress{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.order-progress li{min-width:0;overflow-wrap:anywhere}.product-search{max-width:100%}}
/* Constrain native WebKit date/time controls within their actual grid cells. */
label,.two,.day-config,.fields{min-width:0}
input[type=date],input[type=time],input[type=datetime-local],input[type=month]{display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-inline-size:0;-webkit-appearance:none;appearance:none;overflow:hidden}
input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value,input[type=datetime-local]::-webkit-date-and-time-value,input[type=month]::-webkit-date-and-time-value{min-width:0;text-align:left}
input::-webkit-datetime-edit{min-width:0;padding:0}
.toolbar>label{min-width:0;flex:1 1 180px}
@media(max-width:760px){.toolbar:has(>label){display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.toolbar>label{width:100%;max-width:100%}.day-config input[type=time]{min-height:46px}.day-config .two{width:100%;max-width:100%}}
.mobile-app-header,.mobile-menu-backdrop{display:none}
.install-app{margin-top:8px;min-height:44px}.install-dialog{max-width:440px;width:calc(100% - 32px);padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--text)}.install-dialog p{font-size:14px;line-height:1.65}.install-dialog::backdrop{background:#0009}
@media(max-width:760px){
 html{scroll-padding-top:90px}body{padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left)}
 .shell{display:block;min-height:100dvh}.shell>section{min-width:0}.mobile-app-header{display:flex;position:sticky;top:0;z-index:24;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);border-bottom:1px solid var(--line);padding:10px 16px;min-height:66px}.mobile-app-header .brand{font-size:18px}.mobile-app-header button{min-height:44px}
 .shell>.sidebar{display:none;position:fixed;left:env(safe-area-inset-left);top:calc(66px + env(safe-area-inset-top));bottom:0;width:min(330px,87vw);overflow-y:auto;overscroll-behavior:contain;z-index:23;background:var(--surface);padding:22px 18px calc(24px + env(safe-area-inset-bottom));border-right:1px solid var(--line)}
 .shell>.sidebar>.brand{display:none}.mobile-menu-open{overflow:hidden}.mobile-menu-open .shell>.sidebar{display:flex}.mobile-menu-open .mobile-menu-backdrop{display:block;position:fixed;inset:0;z-index:22;background:#0008;border-radius:0;width:100%;height:100%;padding:0}
 .sidebar .nav{display:grid;grid-template-columns:1fr;overflow:visible}.sidebar .nav button{min-height:46px;width:100%;white-space:normal}.sidebar .sidebottom{display:block;margin-top:6px}.sidebar-controls{grid-template-columns:1fr!important}.sidebar-controls .notification-panel{z-index:30;top:80px!important}.sidebar-controls .notification-list{max-height:calc(100dvh - 300px)}
 .main{width:100%;padding:22px 16px calc(28px + env(safe-area-inset-bottom))}.intro{align-items:flex-start;flex-wrap:wrap;gap:14px}h1{font-size:25px}.intro>button{min-height:44px}.store{padding-bottom:calc(28px + env(safe-area-inset-bottom))}.storehead{padding:24px 20px}.storetabs{position:sticky;top:0;z-index:3;background:var(--page);padding:10px 0}.cart-float{bottom:calc(16px + env(safe-area-inset-bottom))}.store:has(.cart-float){padding-bottom:calc(100px + env(safe-area-inset-bottom))}
 input,select,textarea{font-size:16px!important}button{touch-action:manipulation;min-height:44px}.slotgrid button{min-height:48px}.check{min-height:44px}.check input{min-width:20px;min-height:20px}.toolbar input,.toolbar select{max-width:100%;min-height:44px}.tablewrap{overflow-x:auto;overscroll-behavior-x:contain}.login{width:calc(100% - 32px);margin:28px auto}.checkout-dialog{max-height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));width:calc(100% - 16px)}.checkout-content{padding-bottom:calc(16px + env(safe-area-inset-bottom))}.footer{flex-wrap:wrap;gap:8px}
}
@media(display-mode:standalone){body{overscroll-behavior-y:none}.install-app{display:none}}

/* Reflow the actual controls; do not hide overflowing content. */
@media(max-width:760px){
 .main,.store,.cardbody,.modalbody,.checkout-content{min-width:0}
 .main *,.store *,dialog *{min-width:0;overflow-wrap:anywhere}
 .tablewrap{overflow:visible}
 .tablewrap table,.tablewrap tbody,.tablewrap tr,.tablewrap td{display:block;width:100%;white-space:normal}
 .tablewrap thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .tablewrap tr{padding:16px 18px;border-bottom:1px solid var(--line)}
 .tablewrap td{padding:8px 0;border:0}
 .tablewrap td::before{content:attr(data-label);display:block;font-size:11px;font-weight:700;color:var(--muted);margin-bottom:7px}
 .tablewrap td .actions{display:grid;grid-template-columns:1fr;width:100%}
 .modules,.cardhead,.toolbar,.booksteps,.storetabs{flex-wrap:wrap}
 .cardhead>*,.toolbar>*,.intro>*{max-width:100%}
 .toolbar input,.toolbar select{flex:1 1 100%;width:100%;max-width:none}
 .row{flex-wrap:wrap;align-items:flex-start}
 .row>div{max-width:100%}
 .row>.actions{width:100%}
 .actions>button,.actions>a{white-space:normal;max-width:100%}
 .two{grid-template-columns:minmax(0,1fr)!important}
 .modalhead{padding:18px;gap:12px}.modalbody{padding:18px}
 .modalhead>button{flex-shrink:0}.modalfoot{flex-wrap:wrap}.modalfoot button{flex:0 1 auto}
 .option{gap:12px;white-space:normal}.option>span{min-width:0}
 .cartline{flex-wrap:wrap}.cartline>div:first-child{flex:1 1 100%}
 .companyname .square{flex-shrink:0}.companyname>div{min-width:0}
 .statvalue{font-size:clamp(19px,5.5vw,26px)}
 .agenda-week{gap:3px;padding:12px 8px}.agenda-week button{font-size:11px;padding:9px 2px}
 .agenda-event{grid-template-columns:56px minmax(0,1fr);gap:10px}.agenda-event time{font-size:16px}
 .check input{flex-shrink:0}img,svg{max-width:100%}
}
@media(max-width:380px){.catalog,.stats{grid-template-columns:minmax(0,1fr)}.storehead h1{font-size:25px}.cardbody{padding:15px}}

@media(max-width:760px){
 .main .actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
 .main .actions>button,.main .actions>a{flex:0 1 auto;text-align:center;min-height:44px}
 .main .request-controls,.main .professional-actions{flex-basis:100%;width:100%}
 .main .request-controls,.main .professional-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:12px}
 .main .request-controls>button,.main .professional-actions>button{width:auto}
 .main .request-controls>select{min-height:46px}
 .main .row>button{flex:0 0 auto;max-width:100%;margin:0}
 .main .cardhead>button{flex:0 1 auto;max-width:100%}
 .modalfoot{gap:12px}.modalfoot>button{flex:0 1 auto;min-height:44px}
 .dash-controls .actions{align-items:flex-end;justify-content:flex-start}
 .dash-controls .actions>label{flex:1 1 150px}
 .dash-controls .actions>button{flex:0 0 auto}
 .tablewrap td .actions{display:flex;flex-wrap:wrap;gap:12px}
 .sidebar .nav{gap:8px}.sidebar-controls{gap:12px}
}

.push-device-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.push-device-actions>button{width:100%;min-height:44px;line-height:1.4;white-space:normal;text-align:center}

/* Native iOS month controls must never share a shrinking flex row with actions. */
.month-controls>label{min-width:0;max-width:100%}
.month-controls input[type=month]{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-inline-size:0}
.reschedule-form,.reschedule-form>label{min-width:0;width:100%;max-width:100%}
.reschedule-form input[type=date]{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-inline-size:0;-webkit-appearance:none;appearance:none;min-height:46px;overflow:hidden}
.reschedule-form input[type=date]::-webkit-date-and-time-value{min-width:0;text-align:left}
.reschedule-form input[type=date]::-webkit-datetime-edit{padding:0;min-width:0}
@media(max-width:760px){
 .main .actions.month-controls{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;justify-items:start;gap:14px;width:100%}
 .main .actions.month-controls>label{width:100%;max-width:100%}
 .main .actions.month-controls>button{justify-self:start;align-self:start;max-width:100%}
 .month-controls input[type=month]{-webkit-appearance:none;appearance:none;min-height:46px}
 .month-controls input[type=month]::-webkit-date-and-time-value{text-align:left;min-width:0}
 .month-controls input[type=month]::-webkit-datetime-edit{padding:0;min-width:0}
}

.history-list{display:grid;gap:16px;margin-top:20px}.history-entry{background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:20px}.history-entry-head{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.history-entry h2{font-size:18px}.history-entry p,.history-entry li{font-size:13px;line-height:1.7}.history-entry ul{padding-left:20px}.history-entry>.actions{margin-top:16px}.history-tools{margin-bottom:18px}.history-pages{margin:20px 0}.history-device{margin-top:24px;padding:18px;border:1px solid var(--line);border-radius:12px}.history-device summary{cursor:pointer}
.product-picture{height:180px;overflow:hidden}.product-picture img,.product-thumb img{display:block;width:100%;height:100%;object-fit:contain;filter:none;mix-blend-mode:normal}.product-thumb{width:48px;height:48px;flex:0 0 48px;overflow:hidden;border-radius:8px;display:grid;place-items:center;background:var(--surface-soft);color:var(--muted)}.product-picture [hidden],.product-thumb [hidden]{display:none}.cartline>.product-thumb+span{flex:1;min-width:0}.row:has(>.product-thumb)>div:not(.product-thumb):not(.actions){flex:1}.row:has(>.product-thumb)>.actions{flex:0 1 auto;width:auto}.reschedule-form,.product-picture{max-width:100%}#product-photo-file{width:100%;max-width:100%}
@media(max-width:760px){.product-picture{height:150px}.cartline>.product-thumb+span{flex:1 1 130px}.row:has(>.product-thumb)>.actions{flex-basis:100%;justify-content:flex-end}}
@media(max-width:760px){.storetabs>button{flex:0 1 auto;white-space:normal}.storetabs>[data-customer-history]{flex-basis:auto}.customer-history .actions{gap:12px;align-items:stretch}.customer-history .actions>*{flex:0 1 auto;min-height:44px;white-space:normal;text-align:center}.history-entry{padding:18px}.history-entry-head .pill{max-width:100%}}
.store>footer>.install-app{display:block;margin:18px auto 0;max-width:100%}
/* Preserve every edge of uploaded photos in cards, choices and upload previews. */ .professional-thumb,.professional-picture{border-radius:10px}.professional-thumb img,.professional-picture img,.product-picture img,.product-thumb img{object-fit:contain;object-position:center;min-width:0;min-height:0;max-width:100%;max-height:100%}.product-picture,.product-thumb,.professional-picture,.professional-thumb{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr)}
/* Contact follows the catalog in normal flow, with no negative margin. */ .store>.store-contact{position:static;clear:both;display:flex;justify-content:center;margin:28px 0 12px;padding:0;width:100%;isolation:isolate}.store>.store-contact a{position:static;display:inline-flex;max-width:100%;min-height:54px;padding:14px 22px;box-sizing:border-box}.store>.catalog{margin-bottom:0}@media(max-width:520px){.store>.store-contact{margin-top:24px}.store>.store-contact a{width:100%}}
/* Place the welcome photo below the identity area without cropping it. */ .store-welcome>.store-cover{inset:200px 0 0;width:100%;height:calc(100% - 200px);object-fit:contain;object-position:center bottom}@media(max-width:520px){.store-welcome>.store-cover{inset:190px 0 0;height:calc(100% - 190px)}}
/* Subtle welcome background keeps text and controls readable. */ .store-welcome>.store-cover{opacity:.1}.store-welcome.with-photo:after{background:transparent}
body>#notification-panel{position:fixed;left:256px;right:auto;top:16px;width:min(420px,calc(100vw - 272px));max-height:calc(100dvh - 32px);z-index:60;display:flex;flex-direction:column}body>#notification-panel>header,body>#notification-panel>.notification-tools,body>#notification-panel>footer{flex-shrink:0}body>#notification-panel .notification-list{min-height:0;overflow:auto;max-height:calc(100dvh - 220px)}body>#notification-panel .notification-item{min-width:0;white-space:normal}body>#notification-panel .notice-copy{overflow-wrap:anywhere}body>#notification-panel .notification-tools{flex-wrap:wrap}@media(min-width:761px) and (max-width:1100px){body>#notification-panel{left:217px;width:min(420px,calc(100vw - 233px))}}@media(max-width:760px){body>#notification-panel{left:12px;right:12px;top:calc(78px + env(safe-area-inset-top));width:auto;max-width:calc(100vw - 24px);max-height:calc(100dvh - 94px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}body>#notification-panel .notification-list{max-height:none;flex:1}body>#notification-panel .notification-tools button{white-space:normal;font-size:11px}}
.agenda-event>time,.agenda-event>time small{white-space:nowrap;overflow-wrap:normal;word-break:normal;font-variant-numeric:tabular-nums}
.service-thumb,.service-picture{display:grid;place-items:center;overflow:hidden;border-radius:10px;background:var(--surface-soft);color:var(--muted);grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.service-thumb{width:56px;height:56px;flex:0 0 56px}.service-picture{width:100%;height:180px}.service-thumb img,.service-picture img{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:contain;filter:none;mix-blend-mode:normal}.service-thumb [hidden],.service-picture [hidden]{display:none}.service-choice{gap:12px;min-width:0}.service-choice .service-copy{flex:1;min-width:0;text-align:left}.service-choice>strong{flex-shrink:0;font-size:14px}.row:has(>.service-thumb)>div:not(.service-thumb):not(.actions){flex:1;min-width:0}.row:has(>.service-thumb)>.actions{flex:0 1 auto;width:auto}#service-photo-file{width:100%;max-width:100%}@media(max-width:520px){.service-thumb{width:48px;height:48px;flex-basis:48px}.service-choice{gap:10px;padding:13px}.service-choice>strong{font-size:12px}.service-choice .service-copy strong{font-size:14px}}
/* Larger professional portrait only in the customer booking choices. */ .professional-choice>.professional-thumb{width:80px;height:80px;flex:0 0 80px}.professional-choice{gap:16px}.professional-choice>strong{overflow-wrap:anywhere}@media(max-width:520px){.professional-choice>.professional-thumb{width:72px;height:72px;flex-basis:72px}.professional-choice{gap:12px;padding:14px}.professional-choice>strong{font-size:14px}.professional-choice>span:last-child{font-size:12px}}
#checkout-title:focus,#checkout-title:focus-visible{outline:none;box-shadow:none}
