:root{--bg:#fbf7f5;--card:#fff;--ink:#2b2226;--muted:#8a7d82;--acc:#c2577a;--acc2:#f6e3ea;--line:#eee3e6;--ok:#2f8f5b;--warn:#c98a12;--bad:#c23a3a}
*{box-sizing:border-box}body{margin:0;font:16px/1.45 -apple-system,system-ui,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
.wrap{max-width:560px;margin:0 auto;padding:0 16px 96px}
header.hero{padding:22px 0 8px;display:flex;gap:14px;align-items:center}
.ava{width:68px;height:68px;border-radius:50%;background:linear-gradient(135deg,#f3b5c8,#c2577a);display:grid;place-items:center;color:#fff;font-size:26px;font-weight:700;flex:none}
h1{font-size:22px;margin:0}h2{font-size:18px;margin:26px 0 10px}.muted{color:var(--muted);font-size:14px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:14px;padding:13px 18px;font-size:16px;font-weight:600;background:var(--acc);color:#fff;cursor:pointer;min-height:48px;text-decoration:none}
.btn.sec{background:var(--acc2);color:var(--acc)}.btn.ghost{background:transparent;color:var(--acc);border:1px solid var(--line)}.btn.full{width:100%}.btn.sm{padding:8px 12px;min-height:38px;font-size:14px;border-radius:10px}.btn:disabled{opacity:.45}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px;margin:10px 0}
.row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.price{font-weight:700;white-space:nowrap}.pill{display:inline-block;font-size:12px;padding:3px 9px;border-radius:99px;background:var(--acc2);color:var(--acc);margin:2px 4px 2px 0}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tile{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;cursor:pointer}
.tile img{width:100%;aspect-ratio:34/26;object-fit:cover;display:block}.tile .t{padding:8px 10px;font-size:14px}
.hscroll{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px}.hscroll img{width:180px;height:240px;object-fit:cover;object-position:center;border-radius:14px;flex:none;background:#f3eef0}
nav.tab{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:6px 0 calc(6px + env(safe-area-inset-bottom));z-index:5}
nav.tab a{flex:1;text-align:center;font-size:12px;color:var(--muted);text-decoration:none;padding:4px}nav.tab a.on{color:var(--acc);font-weight:600}nav.tab b{display:block;font-size:20px}
label.chk{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}label.chk input{width:22px;height:22px;flex:none;accent-color:var(--acc)}
input[type=text],input[type=tel],input[type=number],input[type=password],input[type=time],input[type=date],textarea,select{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;font:inherit;background:#fff;margin:4px 0 10px}
.days{display:flex;gap:8px;overflow-x:auto;padding:4px 0 8px}.day{flex:none;width:62px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:center;padding:8px 0;cursor:pointer}
.day.on{background:var(--acc);color:#fff;border-color:var(--acc)}.day.off{opacity:.35}.day small{display:block;font-size:12px}
.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.slot{border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 0;text-align:center;cursor:pointer;font-weight:600}.slot.on{background:var(--acc);color:#fff}
.sum{position:sticky;bottom:64px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px 14px;box-shadow:0 6px 24px #0001;margin-top:14px}
.st{font-size:12px;padding:3px 8px;border-radius:8px;font-weight:600}.st-confirmed{background:#e3f4ea;color:var(--ok)}.st-pending_approval{background:#fff1d6;color:var(--warn)}.st-completed{background:#e8eefc;color:#3557b7}.st-cancelled_by_client,.st-cancelled_by_master,.st-no_show{background:#f8e1e1;color:var(--bad)}
.tryres{position:relative;border-radius:16px;overflow:hidden}.tryres img{width:100%;display:block}.disc{position:absolute;left:0;right:0;bottom:0;background:#000a;color:#fff;font-size:11px;padding:8px 10px;line-height:1.3}
.toast{position:fixed;top:14px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:12px;z-index:9;max-width:90%;font-size:14px}
.spin{width:36px;height:36px;border:4px solid var(--acc2);border-top-color:var(--acc);border-radius:50%;animation:s 1s linear infinite;margin:20px auto}@keyframes s{to{transform:rotate(360deg)}}
.back{color:var(--acc);text-decoration:none;display:inline-block;padding:14px 0 0}
.filters{display:flex;gap:6px;overflow-x:auto;padding:4px 0}.filters button{border:1px solid var(--line);background:#fff;border-radius:99px;padding:6px 12px;font-size:14px;white-space:nowrap}.filters button.on{background:var(--acc);color:#fff;border-color:var(--acc)}

.langbar{position:sticky;top:0;z-index:6;background:#fbf7f5ee;backdrop-filter:blur(6px);display:flex;justify-content:space-between;align-items:center;padding:8px 16px;border-bottom:1px solid var(--line);max-width:560px;margin:0 auto}
.langbar b{font-size:15px}.langbar span{display:flex;gap:4px}.langbar button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 10px;font-weight:600;font-size:13px;color:var(--muted);min-width:40px;min-height:34px}.langbar button.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.langbar b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:8px}.langbar span{flex:none}

/* Cabinet: grouped management, editable galleries and compact month calendar. */
.primary{display:flex!important;gap:4px!important;position:sticky;top:51px;z-index:4;background:var(--bg);padding:10px 0!important}.primary a{flex:1;text-align:center;padding:12px 4px!important}.segments{display:flex;background:#eee6e8;border-radius:99px;padding:4px;margin:8px 0 18px}.segments button{flex:1;border:0;border-radius:99px;padding:8px 2px;background:transparent;font:inherit;font-size:13px;color:var(--ink)}.segments button.on{background:white;box-shadow:0 1px 5px #0001}.management-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.management-tiles>button{border:1px solid var(--line);border-radius:25px;background:#fff;padding:18px;text-align:left;position:relative;color:var(--ink);min-height:120px;font:inherit}.management-tiles b{display:block;margin-top:14px;font-weight:500}.management-tiles strong{float:right;font-size:26px}.menu-icon{display:inline-grid;place-items:center;width:34px;height:34px;background:var(--acc2);color:var(--acc);border-radius:9px;font-size:24px;flex:none}.menu-group{background:#fff;border:1px solid var(--line);border-radius:23px;overflow:hidden;margin:22px 0}.menu-row{border:0;background:white;width:100%;display:flex;align-items:center;gap:12px;font:inherit;padding:15px 16px;text-align:left;color:var(--ink);cursor:pointer}.menu-row+.menu-row{border-top:1px solid var(--line)}.chevron{margin-left:auto;color:#b9adb2;font-size:25px}.messenger-badges{display:flex;float:right;margin-top:8px}.messenger-badges i{font-size:10px;background:var(--acc2);border:2px solid white;border-radius:50%;width:21px;height:21px;display:grid;place-items:center;font-style:normal;color:var(--acc);margin-left:-3px}.month-heading{margin:16px 0}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekday{text-align:center;font-size:12px;font-weight:500;padding:8px 0;background:#fff;border-radius:8px}.month-cell{position:relative;min-height:64px;border:1px solid transparent;border-radius:9px;text-align:left;padding:6px;background:#fff;color:var(--ink);font:inherit;font-size:13px;cursor:pointer}.month-cell.off{background:#ece7e8;color:#9c9095}.month-cell.busy{background:linear-gradient(90deg,var(--acc2) 55%,white 55%)}.month-cell small{position:absolute;bottom:4px;right:6px;color:var(--acc)}.month-cell.today span{border-radius:99px;background:var(--acc);color:white;padding:2px 4px}.month-cell.selected{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}.fab{position:fixed;bottom:25px;right:max(20px,calc((100vw - 540px)/2));border:0;background:var(--acc);color:white;width:56px;height:56px;border-radius:50%;font-size:34px;box-shadow:0 4px 16px #9b3b6060;z-index:5}.photo-strip{display:flex;gap:10px;overflow-x:auto;padding:14px}.photo-add{display:grid;place-items:center;width:105px;height:115px;border:1px dashed var(--muted);border-radius:12px;flex:none;font-size:30px;color:var(--muted);cursor:pointer}.photo-item{position:relative;flex:none}.photo-item img{width:105px;height:115px;object-fit:cover;border-radius:12px}.photo-item button{position:absolute;right:4px;top:4px;background:#51454ba8;color:white;border:0;border-radius:50%;font-size:20px}.profile-fields{padding:16px}.link-edit{display:grid;grid-template-columns:105px minmax(0,1fr) 38px;gap:4px;align-items:center}.link-edit input,.link-edit select{min-width:0;font-size:13px;padding:10px 5px}.share-buttons{display:flex;gap:6px;flex-wrap:wrap}h3{font-size:15px}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--acc);outline-offset:3px}

.event-badge{display:inline-block;min-width:19px;padding:1px 5px;margin-left:4px;border-radius:99px;background:var(--acc);color:white;font-size:11px;vertical-align:middle}.primary a.on .event-badge{background:white;color:var(--acc)}.event-card{display:block;width:100%;text-align:left;font:inherit;color:var(--ink);cursor:pointer}.event-card.unread{border-left:4px solid var(--acc)}.event-card small{color:var(--muted)}.booking-link{display:block;overflow-wrap:anywhere;margin-bottom:14px}.booking-qr{max-width:280px;margin:20px auto}.booking-qr svg{display:block;width:100%;height:auto}

.month-cell.off.busy{background:#ece7e8}

.hero-photo{display:block;width:100%;max-height:460px;object-fit:cover;object-position:center 25%;border-radius:20px;margin-top:12px}
img.ava{object-fit:cover}

/* Reviews: compact summaries, accessible star choices and expandable text. */
[hidden]{display:none!important}
#reviews{scroll-margin-top:70px}
.rating-badge{display:inline-flex;border:1px solid var(--line);border-radius:99px;padding:9px 14px;background:var(--acc2);color:var(--ink);font:inherit;font-size:14px;cursor:pointer;min-height:44px}
.review-summary{font-weight:600;color:var(--acc)}
.review-card{overflow-wrap:anywhere}
.review-toggle{display:block;width:100%;padding:0;margin:10px 0;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.review-text{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}
.review-toggle[aria-expanded="true"] .review-text{display:block}
.review-toggle-label{display:block;color:var(--acc);font-size:13px;padding-top:5px}
.review-toggle-label[hidden]{display:none}
.review-toggle:disabled{cursor:default;opacity:1;color:var(--ink)}
.review-reply{border-left:3px solid var(--line);padding-left:10px;white-space:pre-wrap}
.review-body{white-space:pre-wrap;overflow-wrap:anywhere}
.review-stars{border:0;padding:0;margin:0 0 14px;display:flex;gap:4px}
.review-stars legend{font-size:14px;color:var(--muted);margin-bottom:5px}
.review-stars label{position:relative;margin:0;cursor:pointer}
.review-stars input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.review-stars label>span[aria-hidden]{display:grid;place-items:center;min-width:44px;min-height:48px;font-size:32px;color:var(--muted)}
.review-stars label.selected>span[aria-hidden]{color:var(--acc)}
.review-stars input:focus-visible+span{outline:2px solid var(--acc);border-radius:8px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.review-reply-form{margin-top:14px}

.work-photos button{display:block;flex:none;padding:0;border:0;border-radius:14px;background:transparent;cursor:zoom-in}.work-photos img{display:block}
.work-lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.92);overscroll-behavior:contain}
.work-lightbox-image{display:block;width:auto;height:auto;max-width:100vw;max-height:100vh;object-fit:contain}
.work-lightbox button{position:absolute;display:grid;place-items:center;min-width:52px;min-height:52px;padding:0;border:0;border-radius:50%;background:rgba(0,0,0,.45);color:#fff;font-size:40px;cursor:pointer}
.work-lightbox-close{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}.work-lightbox-prev{left:8px;top:calc(50% - 26px)}.work-lightbox-next{right:8px;top:calc(50% - 26px)}
.work-lightbox-count{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);color:#fff;background:rgba(0,0,0,.45);padding:6px 12px;border-radius:20px;pointer-events:none}

/* Public home: one primary action, with a mobile booking shortcut. */
.public-home .rating-badge{background:transparent}
.home-tryon{margin:20px 0}
.home-tryon a{color:var(--acc);font-size:14px;text-decoration:none;display:inline-block;padding:10px 0}
.home-tryon a:hover{text-decoration:underline}
.home-booking-bar{display:none}
@media(max-width:700px){
 .hero-photo{max-height:45vh;object-fit:cover;object-position:center 25%;margin-top:4px}
 .public-home .wrap{padding-bottom:calc(180px + env(safe-area-inset-bottom))}
 .home-booking-bar{display:block;position:fixed;left:0;right:0;bottom:var(--tab-height,0px);z-index:5;background:var(--bg);border-top:1px solid var(--line);padding:10px max(16px,calc((100vw - 528px)/2)) calc(10px + env(safe-area-inset-bottom))}
}

.booking-calendar{margin-bottom:16px}.calendar-nav{margin-bottom:12px;gap:8px}.calendar-nav b{text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}.calendar-grid .day{width:100%;min-height:44px;padding:8px 0;font:inherit}.calendar-grid small{overflow:hidden;font-size:11px}.calendar-grid .day:disabled{cursor:default}.calendar-nav button:disabled{opacity:.35;cursor:default}

/* Public glam theme. The shared cabinet styles above stay unchanged. */
body.public-site{--bg:#140d0b;--card:rgba(255,255,255,.08);--ink:#f5efe6;--muted:#c7bbb3;--acc:#eedbd0;--acc2:rgba(255,255,255,.09);--line:rgba(255,255,255,.18);--ok:#92d4ac;--warn:#f1c77a;--bad:#f0aaaa;color-scheme:dark;background:radial-gradient(ellipse at 90% 10%,#38231e 0,transparent 50%),#140d0b;font-family:Inter,Arial,sans-serif;font-size:14px;line-height:1.65;min-height:100vh}
.public-site .wrap{max-width:680px;padding:0 22px 120px}
.public-site h1,.public-site h2,.public-site .langbar b{font-family:'Cormorant Garamond','Playfair Display',Georgia,serif;font-style:italic;font-weight:500;line-height:1.1;letter-spacing:-.025em}
.public-site h1{font-size:clamp(36px,9vw,54px)}
.public-site h2{font-size:36px;margin:40px 0 18px}
.public-site h3{font-size:17px}
.public-site a{color:var(--ink);text-underline-offset:4px}
.public-site .muted{color:var(--muted);font-size:13px}
.public-site .langbar{max-width:680px;background:rgba(20,13,11,.84);backdrop-filter:blur(14px);padding:12px 22px;border-color:var(--line)}
.public-site .langbar b{font-size:clamp(20px,5.6vw,26px);padding-block:2px}
.public-site .langbar button{background:transparent;color:var(--muted);border-color:transparent;border-radius:99px;font-size:11px;min-width:38px}
.public-site .langbar button.on{background:var(--acc2);color:var(--ink);border-color:var(--line)}
.public-site .hero-photo{border-radius:0 0 160px 160px;width:calc(100% + 44px);max-width:none;margin:0 -22px 16px;height:38vh;height:38svh;max-height:300px;object-fit:cover;object-position:center 25%;mask-image:linear-gradient(#000 80%,rgba(0,0,0,.65))}
.public-site header.hero{padding:8px 0 16px;gap:16px}
.public-site .hero .ava{width:54px;height:54px;border:1px solid var(--line);padding:3px;background:var(--card)}
.public-site .hero .muted{margin-top:8px}
.public-site .glam-notice{display:flex;align-items:center;gap:12px;width:fit-content;max-width:100%;padding:10px 15px 10px 9px;margin:0 0 20px;border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.08);backdrop-filter:blur(14px);text-decoration:none;font-size:12px;box-shadow:0 8px 28px #0002}
.public-site .notice-icon{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:11px;background:linear-gradient(135deg,#986a61,#511727);font-size:19px}
.public-site .btn{background:#f5efe6;color:#241612;border-radius:99px;padding:14px 24px;font:600 14px/1.4 Inter,Arial,sans-serif;min-height:50px;box-shadow:0 4px 18px #0002}
.public-site #homeBook{width:100%;min-height:62px;padding:12px 20px;gap:14px;margin:0 0 14px;background:linear-gradient(135deg,rgba(130,85,65,.72),rgba(66,39,29,.85));border-color:rgba(238,219,208,.4);font-size:16px;font-weight:600;line-height:1.4;box-shadow:0 8px 28px #0004}
.public-site #homeBook .notice-icon{width:38px;height:38px}
.public-site #homeBook>span:last-child{margin-left:auto}
.public-site .btn.sec,.public-site .btn.ghost{background:var(--card);border:1px solid var(--line);color:var(--ink);box-shadow:none}
.public-site .btn.sm{min-height:40px;padding:9px 16px;font-size:12px}
.public-site .card,.public-site .tile,.public-site .sum{background:var(--card);border:1px solid var(--line);border-radius:20px;backdrop-filter:blur(14px)}
.public-site .card{padding:20px;margin:12px 0}
.public-site .card .row{align-items:baseline;gap:14px}
.public-site .row>*{min-width:0}
.public-site .price{font-size:15px;font-weight:500}
.public-site .pill{background:var(--acc2);color:var(--ink);padding:5px 11px}
.public-site .tile .t{padding:14px}
.public-site .hscroll{gap:14px;scrollbar-width:thin;scrollbar-color:#736058 transparent}
.public-site .hscroll img{width:200px;height:270px;border-radius:20px;background:#1e1512}
.public-site .work-photos button{border-radius:20px}
.public-site nav.tab{background:rgba(20,13,11,.9);backdrop-filter:blur(14px);border-color:var(--line);padding-top:9px}
.public-site nav.tab a{font-size:10px;color:var(--muted)}
.public-site nav.tab b{font-size:22px;line-height:1.3;margin-bottom:3px}
.public-site nav.tab a.on{color:var(--ink)}
.public-site label.chk{padding:16px 0;align-items:center;cursor:pointer}
.public-site input,.public-site textarea,.public-site select{color:var(--ink);background:rgba(255,255,255,.06);border-color:var(--line);border-radius:16px;font-size:16px}
.public-site input::placeholder,.public-site textarea::placeholder{color:#b5a59c;opacity:1}
.public-site input[type=checkbox],.public-site input[type=radio]{accent-color:#7a1f33}
.public-site select option{background:#1e1512;color:var(--ink)}
.public-site .filters button{background:var(--card);border-color:var(--line);color:var(--ink);min-height:40px}
.public-site .filters button.on{background:#7a1f33;border-color:#af6777}
.public-site .booking-calendar{padding:18px 12px;background:var(--card);border:1px solid var(--line);border-radius:20px;backdrop-filter:blur(14px);margin-top:22px}
.public-site .calendar-nav b{font-weight:500;text-transform:capitalize}
.public-site .calendar-grid{gap:6px 4px}
.public-site .calendar-grid .weekday{background:transparent;color:var(--muted);font-size:11px}
.public-site .calendar-grid .day{display:grid;place-items:center;min-height:40px;aspect-ratio:1;width:100%;padding:0;border-radius:50%;background:transparent;color:var(--ink);border:1px solid #b2a69f;font-size:14px}
.public-site .calendar-grid .day.off{border-color:transparent;color:#ab9d94;opacity:.55}
.public-site .calendar-grid .day.on,.public-site .slot.on{background:#7a1f33;border-color:#bd7d8b;color:#fff;opacity:1}
.public-site .slot{background:var(--card);border:1px solid var(--line);border-radius:99px;color:var(--ink);padding:12px 0;font-size:14px;backdrop-filter:blur(14px)}
.public-site .sum{bottom:78px;padding:16px;box-shadow:0 10px 35px #0006;background:rgba(36,25,21,.94)}
.public-site .home-tryon{padding:16px 0;border-bottom:1px solid var(--line)}
.public-site .home-tryon a{font-size:13px;color:var(--ink)}
.public-site .rating-badge{background:var(--card);font-size:12px;border-color:var(--line);color:var(--ink)}
.public-site .review-summary,.public-site .review-toggle-label{color:#eedbd0}
.public-site .review-stars label.selected>span[aria-hidden]{color:#f0c994}
.public-site .toast{background:#f5efe6;color:#241612;border:1px solid #fff5}
.public-site :is(a,button,input,textarea,select):focus-visible{outline:2px solid #f0c994;outline-offset:4px}
.public-site .st{color:#241612}
@media(max-width:700px){
 .public-site .home-booking-bar{background:rgba(30,21,18,.85);backdrop-filter:blur(14px);border-color:var(--line);padding:12px 22px}
 .public-site .home-booking-bar .btn{font-size:16px}
 .public-site.public-home .wrap{padding-bottom:210px}
}
@media(prefers-reduced-motion:reduce){.public-site *{scroll-behavior:auto!important}}
.public-site nav.tab:empty{display:none}

.tryon-picker{margin:8px 0 16px}
.tryon-picker button{border:2px solid transparent;border-radius:12px;padding:3px;background:transparent;flex-shrink:0}
.tryon-picker button[aria-pressed="true"]{border-color:var(--acc)}
.tryon-picker img{width:88px;height:100px;object-fit:cover;border-radius:8px}

.langbar .home-link{color:inherit;font:inherit;text-decoration:none}
.langbar .home-link:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:2px}
.price-note{font-size:12px;line-height:1.5;margin:8px 0 16px}
