/* PINKLIST site.css: Chat 3's styles, loaded after style.css (shared rule: new site CSS goes here). */

/* ===== §46 log in: the Terms and Privacy line under the form ============================================ */
.auth-legal{margin:12px 0 0;font-size:13px;line-height:1.5;color:#5a5350}
.auth-legal a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--pink);text-decoration-thickness:3px;text-underline-offset:3px}

/* ===== §46 My account: Manage my plan (the Stripe billing page, replaces the disabled placeholder) ================= */
.subscription-row .subscription-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 18px;border:1.5px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);font-weight:700;text-decoration:none}
.subscription-row .subscription-btn::after{content:"↗";margin-left:8px;font-weight:400}
.subscription-row .subscription-btn:hover{background:var(--pink)}
.subscription-row small{color:#5a5350;font-size:13px;line-height:1.45}

/* ===== §46 #joined: after paying (Stripe returns here) ================================================================= */
#joined{padding:32px 16px 56px;min-height:70vh}
#joined .joined{padding-top:8px}
.joined{max-width:440px;margin:0 auto}
/* h1 size and spacing follow the site's type scale (--fs-h1, style.css §27) */
.joined h1{outline:none}
.joined-lede{font-size:17px;line-height:1.55;margin:0 0 28px;max-width:34ch}
.joined-resend{border-top:1px solid var(--line);padding-top:22px}
.joined-resend h2{font-size:19px;margin:0 0 12px}
.joined-resend label{display:block;font-weight:600;font-size:14px;margin:0 0 6px}
.joined-resend input{display:block;width:100%;min-height:48px;padding:10px 14px;font:inherit;font-size:16px;border:1.5px solid #b3a59f;border-radius:12px;background:#fff;color:var(--ink)}
.joined-resend input:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-color:var(--ink)}
.joined-resend input[aria-invalid=true]{border-color:#b3261e}
.joined-resend .btn{width:100%;margin-top:12px;font-variant-numeric:tabular-nums}
.joined-resend .btn[disabled]{opacity:1;background:#f1ecea;color:#5a5350;border-color:#d8d0cc;cursor:default}
.joined-status{min-height:1.5em;margin:12px 0 0;font-size:15px;line-height:1.5}
.joined-login{margin:28px 0 0;font-size:15px}
.joined-login a{font-weight:700;border-bottom:1.5px solid var(--ink)}
.joined-legal{display:flex;gap:20px;margin:28px 0 0;font-size:13px;color:#5a5350}
.joined-legal a{text-decoration:underline;text-underline-offset:3px}
/* no Join buttons on this page (header and footer) */
body.pink-on-joined [data-join-link],body.pink-on-joined .pink-rejoin-only{display:none!important}

/* ===== §47 lapsed customers ============================================================================== */
/* "Join again" links only show while a signed-in customer's plan is lapsed */
.pink-rejoin-only{display:none!important}
body.pink-lapsed .pink-rejoin-only{display:inline-flex!important}
body.pink-lapsed .sf-links .pink-rejoin-only{display:inline!important}
/* the header stays one line on phones: there, Join again lives on the page and in the bottom bar */
@media(max-width:599px){body.pink-lapsed .site-head .pink-rejoin-only{display:none!important}}
/* the homepage looks the way a signed-out visitor sees it: the bottom bar and the plans come back */
body.pink-signed-in.pink-lapsed .hx-bar{display:flex!important}
body.pink-signed-in.pink-lapsed .hx-join{display:block!important}
body.pink-signed-in.pink-lapsed .hx-plan [data-join-link]{display:inline-flex!important}
body.pink-lapsed .hx-login-line{display:none!important}
@media(min-width:900px){body.pink-signed-in.pink-lapsed .hx-bar{display:none!important}}
.hx-bar .pink-rejoin-only{flex:1;height:var(--hx-btn-sm)}
/* no saving while lapsed (saves already made are kept) */
body.pink-lapsed .save,body.pink-lapsed [data-save],body.pink-lapsed [data-profile-save],body.pink-lapsed .pill-save,body.pink-lapsed .map-preview-save{display:none!important}

/* the lapsed screen (in #access-gate) */
.paid-gate{max-width:520px}
.paid-gate h1{outline:none}
.lapsed-lede{font-size:17px;line-height:1.55;margin:0 0 24px;max-width:38ch}
.lapsed-actions{display:flex;flex-direction:column;align-items:stretch;gap:14px}
.lapsed-actions .btn{width:100%}
.lapsed-manage{align-self:center;font-weight:700;border-bottom:1.5px solid var(--ink);padding:4px 0}
.lapsed-manage::after{content:" ↗";font-weight:400}
.lapsed-recheck{margin:32px 0 0;padding-top:18px;border-top:1px solid var(--line);font-size:14px;color:#5a5350}
.lapsed-recheck .textbutton{font-size:14px;font-weight:700;color:var(--ink);text-decoration:underline;text-underline-offset:3px;padding:6px 2px;min-height:36px}
.lapsed-status{min-height:1.4em;margin:6px 0 0;font-size:14px}
@media(min-width:600px){
 .lapsed-actions{flex-direction:row;align-items:center;gap:24px}
 .lapsed-actions .btn{width:auto}
 .lapsed-manage{align-self:auto}
}
.saved-locked a{font-weight:700;border-bottom:1.5px solid var(--ink)}

/* ===== §47 payment-failed banner (first-steps.js) ========================================================= */
.fs-payment{flex-wrap:wrap}
.fs-payment .btn{color:var(--ink)}
.fs-payment .fs-payment-note{flex-basis:100%;font-size:13px;color:#5a5350}

/* ===== §48 #join: the plan picker (HQ mockup "PINKLIST Plan Picker", 17 Oct) ============================= */
main#join-page{max-width:none!important;width:100%;margin:0!important;padding:0!important;background:#FFFCF8;color:#242220;font-family:'DM Sans',system-ui,sans-serif}
.jp{--jp-ink:#242220;--jp-pink:#FCC9FF;--jp-muted:#6B6560;--jp-line:#ECE4DE;--jp-track:#F3ECE6;--jp-sub:#3D3936;--jp-bg:#FFFCF8;min-height:100%}
.jp a{color:var(--jp-ink)}
.jp-ico{flex:none}
/* phone and tablet: own top bar instead of the site header */
@media(max-width:899px){
 body.pink-on-join{padding-top:0;padding-bottom:calc(var(--jp-dock-h,170px) + 22px)}
 body.pink-on-join .site-head{display:none}
}
.jp-top{position:sticky;top:0;z-index:20;height:60px;padding:0 16px;padding-top:env(safe-area-inset-top);display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--jp-line)}
.jp-back,.jp-top-login,.jp-top-spacer{width:44px;height:44px;display:flex;align-items:center}
.jp-back{justify-content:flex-start;text-decoration:none}
.jp-top-login{justify-content:flex-end;font-size:14px;font-weight:500;text-decoration:underline;text-underline-offset:3px}
.jp-brand{font-weight:700;font-size:18px;letter-spacing:.08em}
.jp-wrap{padding:28px 16px 0;display:flex;flex-direction:column;gap:22px}
.jp-intro{display:flex;flex-direction:column;gap:8px}
.jp h1{margin:0;font-family:'Playfair Display',Georgia,serif;font-weight:600;font-size:40px!important;line-height:1.05!important;letter-spacing:-.01em}
.jp h1 em{font-style:italic;background:linear-gradient(transparent 58%,var(--jp-pink) 58%);padding:0 2px}
.jp-lede{margin:0;font-size:16px;line-height:1.5;color:var(--jp-muted)}
.jp-main{display:flex;flex-direction:column;gap:22px}
.jp-phone{display:flex;flex-direction:column;gap:22px}
.jp .jp-desk,.jp .jp-cards,.jp .jp-summary{display:none}
/* no Join buttons on the plan picker itself (header and footer) */
body.pink-on-join [data-join-link],body.pink-on-join .pink-rejoin-only{display:none!important}
/* segmented control */
.jp-seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;background:var(--jp-track);border-radius:999px}
.jp-seg button{height:44px;min-height:44px;border:0;border-radius:999px;font:700 15px 'DM Sans',system-ui,sans-serif;cursor:pointer;background:transparent;color:var(--jp-muted);box-shadow:none;padding:0 8px}
.jp-seg button[aria-selected=true]{background:#fff;color:var(--jp-ink);box-shadow:0 1px 3px rgba(36,34,32,.18)}
.jp-seg button:focus-visible,.jp-card:focus-visible,.jp-start:focus-visible{outline:2px solid var(--jp-ink);outline-offset:3px}
/* plan card */
.jp-card{border-radius:24px;padding:24px;display:flex;flex-direction:column;gap:18px;background:var(--jp-pink);color:var(--jp-ink)}
.jp-card-stylist{background:var(--jp-ink);color:#fff}
.jp-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;width:100%}
.jp-card-name{display:flex;flex-direction:column;gap:4px}
.jp-who{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.jp-card-stylist .jp-who{color:var(--jp-pink)}
.jp-name{margin:0;font-family:'Playfair Display',Georgia,serif;font-weight:600;font-size:28px;line-height:1.1}
.jp-chip{flex:none;align-self:flex-start;padding:6px 12px;border-radius:999px;background:#fff;color:var(--jp-ink);font-size:12px;font-weight:700;white-space:nowrap}
.jp-card-stylist .jp-chip{background:var(--jp-pink)}
.jp-chip.jp-chip-own{background:var(--jp-ink);color:#fff}
.jp-card-stylist .jp-chip.jp-chip-own{background:#fff;color:var(--jp-ink)}
.jp-price-wrap{display:flex;flex-direction:column;gap:6px}
.jp-price{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.jp-amount{font-family:'Playfair Display',Georgia,serif;font-weight:600;font-size:52px;line-height:1}
.jp-per{font-size:15px;color:var(--jp-sub)}
.jp-extra{font-size:14px;line-height:1.4;color:var(--jp-sub)}
.jp-card-stylist .jp-per,.jp-card-stylist .jp-extra{color:#D9D3CE}
.jp-rows{margin:0;padding:0;list-style:none;border-top:1px solid rgba(36,34,32,.14)}
.jp-rows li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(36,34,32,.14);font-size:15px}
.jp-rows li:last-child{border-bottom:0}
.jp-card-stylist .jp-rows,.jp-card-stylist .jp-rows li{border-color:rgba(255,255,255,.16)}
.jp-card-stylist .jp-rows .jp-ico{color:var(--jp-pink)}
@keyframes jpIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.jp-anim{animation:jpIn .22s ease-out}
@media(prefers-reduced-motion:reduce){.jp-anim{animation:none}}
/* free days timeline */
.jp-time{background:#fff;border:1px solid var(--jp-line);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:14px}
.jp-time h2{margin:0!important;font:700 15px 'DM Sans',system-ui,sans-serif!important;letter-spacing:0}
.jp-steps{display:flex;gap:14px}
.jp-rail{display:flex;flex-direction:column;align-items:center;padding-top:4px}
.jp-dot{width:14px;height:14px;border-radius:999px;background:#fff;border:2px solid #B8AFA8;box-sizing:border-box}
.jp-dot.on{background:var(--jp-pink);border-color:var(--jp-ink)}
.jp-line{width:2px;flex:1;min-height:44px;background:var(--jp-line)}
.jp-steps ol{flex:1;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:18px}
.jp-steps li{display:flex;justify-content:space-between;gap:12px;font-size:15px}
.jp-steps li>div{display:flex;flex-direction:column;gap:2px}
.jp-steps li span{font-size:14px;color:var(--jp-muted)}
.jp-small{margin:0;font-size:13px;line-height:1.5;color:var(--jp-muted)}
/* trust rows */
.jp-trust{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;font-size:14px;color:var(--jp-sub)}
.jp-trust li{display:flex;align-items:center;gap:10px}
.jp-trust li[hidden]{display:none}
/* dock: stays in view at the bottom on phones */
/* fixed, not sticky: the page's scroll container (body, overflow-x hidden) stops sticky from working */
.jp-dock{position:fixed;left:0;right:0;bottom:0;z-index:1100;padding:16px 16px calc(24px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--jp-line);box-shadow:0 -8px 24px rgba(36,34,32,.06);display:flex;flex-direction:column;gap:10px;align-items:stretch}
.jp-start{height:56px;border-radius:999px;background:var(--jp-pink);color:var(--jp-ink)!important;display:flex;align-items:center;justify-content:center;font:700 17px 'DM Sans',system-ui,sans-serif;text-decoration:none;box-shadow:inset 0 0 0 1.5px var(--jp-ink);border:0;padding:0 32px;cursor:pointer;width:100%}
.jp-start.jp-manage{background:#fff}
.jp-start[disabled]{background:#F3ECE6;color:var(--jp-muted)!important;box-shadow:inset 0 0 0 1.5px #D8CFC8;cursor:default}
.jp-secure{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:var(--jp-muted);text-align:center}
.jp-dock-login{text-align:center;font-size:14px;color:var(--jp-sub)}
.jp-dock-login a,.jp-foot a{font-weight:700;text-underline-offset:3px}
@media(min-width:600px) and (max-width:899px){.jp-wrap{max-width:560px;margin:0 auto;padding-inline:24px}.jp-dock{padding-inline:max(16px,calc((100% - 560px)/2))}}
/* desktop */
@media(min-width:900px){
 .jp-top,.jp-phone,.jp-dock{display:none}
 .jp .jp-desk{display:flex}
 .jp-wrap{max-width:1120px;margin:0 auto;padding:56px 24px 64px;flex-direction:row;flex-wrap:wrap;gap:48px;align-items:flex-start}
 .jp-intro{flex:1 1 300px;min-width:0;gap:20px;padding-top:8px}
 .jp h1{font-size:64px!important;line-height:1!important}
 .jp h1 em{padding:0 4px}
 .jp-lede{font-size:18px}
 .jp-trust.jp-desk{flex-direction:column;margin-top:8px;gap:12px;font-size:15px}
 .jp-main{flex:999 1 600px;min-width:0;gap:20px}
 .jp .jp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
 .jp-cards .jp-card{text-align:left;font-family:'DM Sans',system-ui,sans-serif;cursor:pointer;border:0;gap:16px;box-shadow:none;transition:box-shadow .15s}
 .jp-cards .jp-card[aria-checked=true]{box-shadow:0 0 0 3px #FFFCF8,0 0 0 5px var(--jp-ink),0 12px 32px rgba(36,34,32,.14)}
 .jp-cards .jp-amount{font-size:48px}
 .jp-cards .jp-rows{display:flex;flex-direction:column;gap:8px;padding-top:14px}
 .jp-cards .jp-rows li{padding:0;border:0}
 .jp-radio{flex:none;width:24px;height:24px;border-radius:999px;border:2px solid var(--jp-ink);box-sizing:border-box;display:flex;align-items:center;justify-content:center;background:#fff}
 .jp-radio span{width:12px;height:12px;border-radius:999px;background:transparent}
 .jp-card[aria-checked=true] .jp-radio span{background:var(--jp-ink)}
 .jp-card-stylist .jp-radio{border-color:var(--jp-pink);background:var(--jp-ink)}
 .jp-card-stylist[aria-checked=true] .jp-radio span{background:var(--jp-pink)}
 .jp .jp-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;background:#fff;border:1px solid var(--jp-line);border-radius:20px;padding:20px 24px}
 .jp-summary dl{display:flex;flex-wrap:wrap;gap:32px;margin:0}
 .jp-summary dl>div{display:flex;flex-direction:column;gap:2px}
 .jp-summary dt{font-size:13px;color:var(--jp-muted)}
 .jp-summary dd{margin:0;font-size:20px;font-weight:700}
 .jp-summary-go{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:260px}
 .jp-summary .jp-secure{gap:6px}
 .jp .jp-foot{display:block;margin:0;font-size:14px;color:var(--jp-muted)}
}
/* the homepage count stays hidden until it has loaded (no "0 stylists live" flash) */
body:not(.pink-counts-ready) #home :is(a,li,span):has(> span > b[data-home-total]),body:not(.pink-counts-ready) #home a:has(> b[data-home-total]){visibility:hidden}

/* ===== §49 admin Outreach tab (admin-outreach.js) ====================================================== */
.ot{--ot-ink:#242220;--ot-pink:#FCC9FF;--ot-muted:#6B6560;--ot-line:#ECE4DE}
.ot h2{margin-bottom:4px}
.ot-intro{margin:0 0 16px;color:var(--ot-muted);max-width:60ch}
.ot-msg{border:1px solid var(--ot-line);border-radius:16px;background:#fff;margin:0 0 18px}
.ot-msg-toggle{width:100%;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border:0;background:none;font:700 16px 'DM Sans',system-ui,sans-serif;color:var(--ot-ink);cursor:pointer;text-align:left;border-radius:16px}
.ot-msg-toggle[aria-expanded=true] .ot-caret{transform:rotate(180deg)}
.ot-caret{transition:transform .15s}
.ot-msg-body{padding:0 16px 16px;display:flex;flex-direction:column;gap:8px}
.ot-field{font-weight:600;font-size:14px;margin-top:6px}
.ot-msg-body input,.ot-msg-body textarea{width:100%;font:inherit;font-size:16px;padding:10px 12px;border:1.5px solid #b3a59f;border-radius:12px;background:#fff;color:var(--ot-ink)}
.ot-msg-body textarea{min-height:200px;line-height:1.5;resize:vertical}
.ot-msg-body input:focus-visible,.ot-msg-body textarea:focus-visible{outline:2px solid var(--ot-ink);outline-offset:2px}
.ot-chips{display:flex;flex-wrap:wrap;gap:6px}
.ot-chips button{min-height:36px;padding:4px 12px;border-radius:999px;border:1.5px solid var(--ot-ink);background:#fff;font:600 13px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ot-ink);cursor:pointer}
.ot-chips button:hover{background:var(--ot-pink)}
.ot-count{margin:0;font-size:13px;color:var(--ot-muted)}
.ot-count.ot-warn{color:#8a1c14;font-weight:700}
.ot-preview{background:#FFFCF8;border:1px solid var(--ot-line);border-radius:14px;padding:12px}
.ot-preview-h{margin:0 0 8px;font-size:13px;color:var(--ot-muted)}
.ot-bubble{background:#efe9f6;border-radius:18px 18px 18px 6px;padding:10px 14px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.45;max-width:46ch}
.ot-unknown{margin:8px 0 0;font-size:13px;color:#8a1c14;font-weight:600}
.ot-unknown:empty{display:none}
.ot-dirty{margin:0;font-size:13px;color:var(--ot-muted)}
.ot-save-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px}
.ot-saved{font-size:14px}
.ot-filters{display:flex;flex-direction:column;gap:10px;margin:0 0 10px}
.ot-pills{display:flex;flex-wrap:wrap;gap:6px}
.ot-pills button{min-height:40px;padding:6px 14px;border-radius:999px;border:1.5px solid var(--ot-line);background:#fff;font:600 14px 'DM Sans',system-ui,sans-serif;color:var(--ot-ink);cursor:pointer}
.ot-pills button[aria-pressed=true]{background:var(--ot-pink);border-color:var(--ot-ink)}
.ot-search{display:flex;flex-wrap:wrap;gap:8px}
.ot-search input{flex:1 1 220px;min-width:0;min-height:44px;font:inherit;font-size:16px;padding:8px 12px;border:1.5px solid #b3a59f;border-radius:12px}
.ot-search select{flex:0 1 200px;min-width:0;min-height:44px;font:inherit;font-size:16px;padding:8px 10px;border:1.5px solid #b3a59f;border-radius:12px;background:#fff}
.ot-status{margin:0;font-size:14px}
.ot-status:empty{display:none}
.ot-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--ot-line)}
.ot-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:12px 0;border-bottom:1px solid var(--ot-line)}
.ot-who{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 220px}
.ot-name{font-weight:700;overflow-wrap:anywhere}
.ot-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:14px;color:var(--ot-muted)}
.ot-meta a{color:var(--ot-ink);font-weight:600;overflow-wrap:anywhere}
.ot-tags{display:flex;flex-wrap:wrap;gap:6px}
.ot-tags:empty{display:none}
.ot-tag{font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px}
.ot-tag-pending{background:#FFF3C4;color:#5a4300}
.ot-tag-sent{background:#E8F4EC;color:#1d5b33}
.ot-acts{display:flex;align-items:center;gap:8px;flex:none}
.ot-dm{min-height:44px;min-width:88px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 18px;border-radius:999px;border:1.5px solid var(--ot-ink);background:var(--ot-pink);color:var(--ot-ink);font:700 15px 'DM Sans',system-ui,sans-serif;cursor:pointer}
.ot-dm[disabled]{background:#F3ECE6;border-color:#D8CFC8;color:var(--ot-muted);cursor:not-allowed}
.ot-copy{min-height:44px;padding:0 12px;border:0;background:none;font:600 14px 'DM Sans',system-ui,sans-serif;color:var(--ot-ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.ot-copy[disabled]{color:#b3a59f;cursor:not-allowed}
.ot-empty{padding:18px 0;color:var(--ot-muted)}
.ot-toast{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:3000;width:min(560px,calc(100% - 24px));display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-radius:14px;background:var(--ot-ink);color:#fff;font-size:15px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.ot-toast[hidden]{display:none}
.ot-toast button{flex:none;min-height:40px;padding:0 14px;border-radius:999px;border:1.5px solid var(--ot-pink);background:transparent;color:var(--ot-pink);font:700 14px 'DM Sans',system-ui,sans-serif;cursor:pointer}
@media(min-width:768px){.ot-filters{flex-direction:row;align-items:center;justify-content:space-between}.ot-search{flex:0 1 560px}.ot-search input{flex-basis:300px}}
/* §49: the claim line on the signed-out gate for a stylist's own page link */
.gate-claim{margin:18px 0 0;padding-top:14px;border-top:1px solid var(--line,#ECE4DE);font-size:15px}
.gate-claim a{font-weight:700;color:var(--ink,#242220);text-decoration:underline;text-decoration-color:#FCC9FF;text-decoration-thickness:3px;text-underline-offset:3px}

/* ===== §50 "Message on Instagram" on a stylist's profile (profile-dm.js) ================================= */
.profile-dm{margin:14px 0 6px;display:flex;flex-direction:column;gap:6px}
.profile-dm-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;align-self:flex-start;min-height:48px;padding:0 22px;border-radius:999px;background:#FCC9FF;color:#242220!important;font:700 16px 'DM Sans',system-ui,sans-serif;text-decoration:none;box-shadow:inset 0 0 0 1.5px #242220}
.profile-dm-btn:hover{background:#f7b8fb}
.profile-dm-btn:focus-visible{outline:2px solid #242220;outline-offset:3px}
.profile-dm-note{margin:0;font-size:13px;line-height:1.45;color:#6B6560}
@media(max-width:599px){.profile-dm-btn{align-self:stretch}}
body.owner-preview .profile-dm{display:none}

/* ===== §51 My account: welcome for new joiners, and "Find your stylist" (welcome-account.js) ============ */
#account-welcome,#account-find{margin:18px 0 20px}
body.aw-has-welcome #account > p[role="status"]{display:none}
.aw-welcome{position:relative;background:#FCC9FF;color:#242220;border-radius:24px;padding:24px 20px 22px;box-shadow:inset 0 0 0 1.5px #242220}
.aw-welcome .eyebrow{margin:0 0 6px;color:#242220}
.aw-welcome h2{margin:0 44px 8px 0!important;font-family:'Playfair Display',Georgia,serif;font-size:32px!important;line-height:1.1!important}
.aw-lede{margin:0 0 18px;font-size:16px;line-height:1.5;max-width:44ch}
.aw-close{position:absolute;top:12px;right:12px;width:44px;height:44px;border:0;border-radius:999px;background:transparent;color:#242220;font-size:18px;cursor:pointer}
.aw-close:hover{background:rgba(36,34,32,.08)}
.aw-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px}
.aw-actions .btn{width:100%;justify-content:center}
.aw-primary{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 26px;border:0;border-radius:999px;background:#242220;color:#fff!important;font:700 16px 'DM Sans',system-ui,sans-serif;text-decoration:none;cursor:pointer;width:100%}
.aw-primary:hover{background:#000}
.aw-primary:focus-visible,.aw-second:focus-visible,.aw-close:focus-visible{outline:2px solid #242220;outline-offset:3px}
.aw-second{align-self:center;min-height:44px;display:inline-flex;align-items:center;gap:6px;padding:0 4px;border:0;background:none;font:700 15px 'DM Sans',system-ui,sans-serif;color:#242220;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.aw-points{margin:18px 0 0;padding:14px 0 0;border-top:1px solid rgba(36,34,32,.16);list-style:none;display:flex;flex-direction:column;gap:6px;font-size:14px}
.aw-points li::before{content:"✓";font-weight:700;margin-right:8px}
.aw-find{background:#fff;border:1px solid var(--line,#ECE4DE);border-radius:20px;padding:20px 18px}
.aw-find .eyebrow{margin:0 0 4px}
.aw-find h2{margin:0 0 6px!important;font-size:24px!important}
.aw-find>p{margin:0 0 14px;color:#5a5350;max-width:46ch}
.aw-go{width:100%;justify-content:center;gap:8px}
.aw-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.aw-chip{min-height:40px;display:inline-flex;align-items:center;padding:0 14px;border-radius:999px;border:1.5px solid var(--line,#ECE4DE);background:#FFFCF8;font-size:14px;font-weight:600;color:#242220;text-decoration:none}
.aw-chip:hover{border-color:#242220}
.aw-note{margin:12px 0 0;font-size:13px;color:#6B6560}
@media(min-width:600px){
 .aw-welcome{padding:30px 32px 28px}
 .aw-welcome h2{font-size:40px!important}
 .aw-actions{flex-direction:row;align-items:center;gap:20px}
 .aw-actions .btn,.aw-go,.aw-primary{width:auto}
 .aw-points{flex-direction:row;flex-wrap:wrap;gap:6px 22px}
 .aw-find{padding:24px 28px}
}

/* ===== §52 a clearer review section (review-integrity.js) =============================================== */
/* the list: summary card and empty state */
.review-summary-card{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;background:#fff;border:1px solid var(--line,#ECE4DE);border-radius:18px;padding:16px 18px;margin:0 0 16px}
.review-summary-card .review-summary{margin:0;font-weight:700;font-size:16px}
.review-summary-note{flex-basis:100%;margin:0;font-size:13px;color:#6B6560}
.review-avg{display:flex;align-items:center;gap:10px}
.review-avg-num{font-family:'Playfair Display',Georgia,serif;font-size:44px;line-height:1;font-weight:600}
.review-avg .review-stars{font-size:20px;letter-spacing:2px}
.review-empty{background:#fff;border:1px dashed #d8cfc8;border-radius:18px;padding:20px 18px;text-align:left}
.review-empty-title{margin:0 0 4px;font-weight:700;font-size:17px}
.review-empty p:last-child{margin:0;color:#5a5350}
/* "Leave a review" becomes an invite card that opens the form */
.review-write>h3{display:none}
.review-write[data-review-state=note]>h3{display:block}
.review-cta{background:#FCC9FF;border-radius:20px;padding:20px 18px;box-shadow:inset 0 0 0 1.5px #242220}
.review-cta-title{margin:0 0 4px;font-family:'Playfair Display',Georgia,serif;font-size:24px;line-height:1.15;font-weight:600}
.review-cta-text{margin:0 0 14px;font-size:15px;line-height:1.5}
.review-cta-btn{min-height:48px;width:100%;border:0;border-radius:999px;background:#242220;color:#fff;font:700 16px 'DM Sans',system-ui,sans-serif;cursor:pointer}
.review-cta-btn:focus-visible{outline:2px solid #242220;outline-offset:3px}
.review-write.is-open .review-cta-btn{background:#fff;color:#242220;box-shadow:inset 0 0 0 1.5px #242220}
.review-write[data-review-state=form]:not(.is-open) #reviewauth,
.review-write[data-review-state=form]:not(.is-open) #reviewform,
.review-write[data-review-state=form]:not(.is-open) .review-verify-box,
.review-write[data-review-state=username]:not(.is-open) #reviewauth{display:none!important}
.review-write.is-open #reviewauth{margin-top:16px}
@media(min-width:600px){.review-cta-btn{width:auto;padding:0 28px}}
/* the form, top to bottom */
.review-who{margin:0 0 4px;font-size:14px;color:#3D3936}
.review-who-state{display:inline-block;margin-left:6px;padding:2px 10px;border-radius:999px;background:#F3ECE6;font-size:12px;font-weight:700;color:#5a5350}
.review-who-state.is-verified{background:#E8F4EC;color:#1d5b33}
#reviewform{display:flex;flex-direction:column;gap:18px;margin-top:12px;background:#fff;border:1px solid var(--line,#ECE4DE);border-radius:20px;padding:20px 18px}
#reviewform[hidden]{display:none}
#reviewform label,#reviewform legend{font-weight:700;font-size:15px}
#reviewform .optional{font-weight:400;color:#6B6560}
.review-stars-pick{border:0;margin:0;padding:0;display:block!important;min-width:0}
.review-stars-pick legend{padding:0;margin:0 0 8px;font-family:'Playfair Display',Georgia,serif;font-size:22px!important;font-weight:600!important}
.star-row{display:flex;gap:4px}
.review-stars-pick label.star{position:relative;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;cursor:pointer;background:none!important;border:0!important;padding:0!important}
.review-stars-pick .star-input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.review-stars-pick .star-icon svg{fill:#fff;stroke:#242220;stroke-width:1.4;stroke-linejoin:round;transition:transform .12s,fill .12s}
.review-stars-pick label.star.on svg,.review-stars-pick label.star.hover svg{fill:#FCC9FF}
.review-stars-pick label.star.on svg{stroke-width:1.8}
.review-stars-pick label.star:active svg{transform:scale(.9)}
.review-stars-pick label.star:has(.star-input:focus-visible){outline:2px solid #242220;outline-offset:1px}
.star-word{margin:6px 0 0;font-size:14px;color:#6B6560;min-height:1.4em}
.star-word.is-set{color:#242220;font-weight:700}
@media(prefers-reduced-motion:reduce){.review-stars-pick .star-icon svg{transition:none}}
/* the date field fits its column (it ran off the edge on phones) */
#reviewform .review-visit input[type=date]{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;margin-top:8px;min-height:48px;font:inherit;font-size:16px;padding:10px 12px;border:1.5px solid #b3a59f;border-radius:12px;background:#fff;color:#242220;-webkit-appearance:none;appearance:none}
#reviewform textarea{display:block;width:100%;box-sizing:border-box;margin-top:8px;min-height:130px;font:inherit;font-size:16px;padding:12px;border:1.5px solid #b3a59f;border-radius:12px}
#reviewform .review-visit input:focus-visible,#reviewform textarea:focus-visible{outline:2px solid #242220;outline-offset:2px}
#reviewform .consent{font-weight:400!important;font-size:14px!important;line-height:1.5;display:flex;gap:10px;align-items:flex-start}
#reviewform button[type=submit]{min-height:52px;border-radius:999px;background:#242220;color:#fff;font:700 16px 'DM Sans',system-ui,sans-serif;border:0}
#reviewform .review-limits{margin:-8px 0 0;font-size:13px;color:#6B6560}
#reviewform .review-note{margin:-6px 0 0;font-size:13px;line-height:1.5;color:#6B6560}
#reviewform .review-status:empty{display:none}
/* the Verified badge card, under the form and closed */
.review-verify-box{margin-top:12px}
.review-verify{border:1px solid var(--line,#ECE4DE);border-radius:16px;background:#fff}
.review-verify summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:14px 44px 14px 16px;position:relative;font-weight:700;font-size:15px;min-height:48px}
.review-verify summary::-webkit-details-marker{display:none}
.review-verify summary::after{content:"▾";position:absolute;right:16px;top:16px;font-size:14px;transition:transform .15s}
.review-verify[open] summary::after{transform:rotate(180deg)}
.review-verify-hint{font-weight:400;font-size:13px;color:#6B6560}
.review-verify .verify-card{margin:0 12px 12px!important}
/* the old boxed "1 ★" buttons (style.css .stars span) don't apply to the new stars */
#reviewform .review-stars-pick span{display:inline-flex;padding:0!important;border:0!important;border-radius:0;background:none!important;text-align:inherit;font-size:inherit;outline:0}
#reviewform .review-stars-pick span.visually-hidden{display:block}
#reviewform .review-stars-pick{display:block!important}
#reviewform>label,#reviewform>fieldset{margin:0!important}

/* ===== HQ §50 admin Analytics (admin-analytics.js) ===================================================== */
.an-intro,.lv-intro{margin:0 0 14px;color:#6B6560}
.an-range,.lv-range,.pv-toggle{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}
.an-range button,.lv-range button,.pv-toggle button{min-height:40px;padding:0 14px;border-radius:999px;border:1.5px solid var(--line,#ECE4DE);background:#fff;font:600 14px 'DM Sans',system-ui,sans-serif;color:#242220;cursor:pointer}
.an-range button[aria-pressed=true],.lv-range button[aria-pressed=true],.pv-toggle button[aria-pressed=true]{background:#FCC9FF;border-color:#242220}
.an-tiles,.lv-sum{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 8px}
.an-tile,.lv-tile{background:#fff;border:1px solid var(--line,#ECE4DE);border-radius:16px;padding:14px 16px;min-width:0}
.an-label,.lv-label{margin:0;font-size:13px;font-weight:700;color:#3D3936;display:flex;align-items:center;gap:6px}
.an-big,.lv-big{margin:4px 0 2px;font-family:'Playfair Display',Georgia,serif;font-size:34px;line-height:1.1;font-weight:600}
.an-change{font-size:13px;font-weight:700;color:#6B6560}
.an-change.is-up{color:#1d5b33}.an-change.is-down{color:#8a1c14}.an-change.is-new{color:#242220}
.an-tip-btn{width:28px;height:28px;border-radius:999px;border:0;background:#F3ECE6;font-size:14px;cursor:pointer;line-height:1}
.an-tip{margin:0 0 10px;padding:10px 12px;border-radius:12px;background:#FFFCF8;border:1px solid var(--line,#ECE4DE);font-size:13px}
.an-small,.lv-small{margin:0 0 12px;font-size:13px;color:#6B6560}
.an-chart{margin:8px 0 18px;background:#fff;border:1px solid var(--line,#ECE4DE);border-radius:16px;padding:12px 14px}
.an-chart figcaption{font-size:13px;font-weight:700;margin:0 0 6px}
.an-chart svg{width:100%;height:160px;display:block}
.an-chart rect{fill:#FCC9FF;stroke:#242220;stroke-width:.8}
.an-axis{stroke:#ECE4DE;stroke-width:1}
.an-chart-ends{display:flex;justify-content:space-between;font-size:12px;color:#6B6560;margin-top:4px}
.an-sec,.lv-sec{margin:0 0 20px}
.an-sec h3,.lv-sec h3,.lv-reasons h3{margin:0 0 8px;font-size:17px!important}
.an-table-wrap,.lv-table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line,#ECE4DE);border-radius:16px}
.an-table,.lv-table{width:100%;border-collapse:collapse;font-size:14px}
.an-table th,.an-table td,.lv-table th,.lv-table td{padding:10px 12px;border-bottom:1px solid var(--line,#ECE4DE);text-align:left;vertical-align:top}
.an-table thead th,.lv-table thead th{font-size:12px;color:#6B6560;font-weight:700}
.an-table td{text-align:right;white-space:nowrap}.an-table thead th:not(:first-child){text-align:right}
.an-table tr:last-child>*,.lv-table tr:last-child>*{border-bottom:0}
.an-table tbody th{font-weight:600}
.an-pill,.lv-pill{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;background:#F3ECE6;font-size:11px;font-weight:700;color:#5a5350;white-space:nowrap}
.an-pill.is-claimed{background:#E8F4EC;color:#1d5b33}
.lv-pill{background:#FDE8E6;color:#8a1c14}
.an-more{margin-top:8px;min-height:40px;border:0;background:none;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer;color:#242220}
.an-two{display:grid;gap:0 18px}
.an-devices{list-style:none;margin:0;padding:12px 14px;background:#fff;border:1px solid var(--line,#ECE4DE);border-radius:16px;display:flex;flex-direction:column;gap:10px}
.an-devices li{display:grid;grid-template-columns:80px 1fr 44px;align-items:center;gap:10px;font-size:14px}
.an-bar{height:10px;border-radius:999px;background:#F3ECE6;overflow:hidden}.an-bar span{display:block;height:100%;background:#FCC9FF;box-shadow:inset 0 0 0 1px #242220;border-radius:999px}
.an-devices b{text-align:right}
.an-none,.lv-none,.lv-muted{color:#6B6560;font-size:14px}
.an-empty{background:#fff;border:1px dashed #d8cfc8;border-radius:16px;padding:22px 18px}
.an-empty-title{margin:0 0 4px;font-weight:700;font-size:17px}.an-empty p:last-child{margin:0;color:#5a5350}
@media(min-width:900px){.an-two{grid-template-columns:1fr 1fr}.an-tiles,.lv-sum{max-width:560px}}

/* ===== HQ §50 stylist "Profile views" card (profile-views.js) ========================================== */
.pv-card{margin:16px 0;background:#fff;border:1px solid var(--line,#ECE4DE);border-radius:18px;padding:16px 18px}
.pv-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.pv-head h3{margin:0;font-size:17px!important}
.pv-head .pv-toggle{margin:0}
.pv-toggle button{min-height:36px;padding:0 12px;font-size:13px}
.pv-main{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-top:10px}
.pv-big{margin:0;font-family:'Playfair Display',Georgia,serif;font-size:40px;line-height:1;font-weight:600}
.pv-sub{margin:4px 0 2px;font-size:14px;color:#3D3936}
.pv-change{font-size:13px;font-weight:700;color:#6B6560}.pv-change.is-up{color:#1d5b33}.pv-change.is-down{color:#8a1c14}
.pv-spark{width:42%;max-width:200px;height:40px;flex:none}
.pv-line{fill:none;stroke:#242220;stroke-width:1.6;vector-effect:non-scaling-stroke}.pv-area{fill:#FCC9FF;stroke:none}
.pv-note,.pv-zero{margin:10px 0 0;font-size:14px;color:#5a5350}
.pv-copy{margin-top:12px;min-height:44px;padding:0 18px;border-radius:999px;border:1.5px solid #242220;background:#FCC9FF;font:700 14px 'DM Sans',system-ui,sans-serif;color:#242220;cursor:pointer}

/* ===== HQ §51 closing an account: reasons (account-closure.js) ========================================= */
.closure-reasons{border:0;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;min-width:0}
.closure-reasons legend{font-weight:700;font-size:15px;margin:0 0 6px;padding:0}
.closure-reason{display:flex!important;align-items:center;gap:10px;min-height:44px;padding:0 12px;border:1.5px solid var(--line,#ECE4DE);border-radius:12px;background:#fff;font-weight:500!important;cursor:pointer}
.closure-reason:has(input:checked){border-color:#242220;background:#FCC9FF}
.closure-reason input{width:18px!important;height:18px;margin:0;flex:none}
.closure-details{display:block;margin-top:12px;font-weight:700}
.closure-details .optional{font-weight:400;color:#6B6560}
.closure-details textarea{display:block;width:100%;box-sizing:border-box;margin-top:6px}
.closure-count{display:block;text-align:right;font-weight:400;color:#6B6560}
.closure-plan{margin:10px 0 0;padding:10px 12px;border-radius:12px;background:#FFF3C4;font-size:14px}
.closure-sent{margin:0 0 10px;padding:10px 12px;border-radius:12px;background:#E8F4EC;color:#1d5b33;font-weight:600}
.closure-why{margin:4px 0}
.closure-plans{margin:2px 0;font-size:14px}
.closure-mailed{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:#E8F4EC;color:#1d5b33;font-size:12px;font-weight:700}
.closure-wait{display:inline-block;margin-top:4px;padding:2px 10px;border-radius:999px;background:#F3ECE6;font-size:12px;font-weight:700;color:#5a5350}
.closure-wait.is-amber{background:#FFF3C4;color:#5a4300}.closure-wait.is-red{background:#FDE8E6;color:#8a1c14}
.closure-result:empty{display:none}.closure-result{margin:6px 0 0;font-size:14px;font-weight:600;color:#8a1c14}
.closure-done{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:#E8F4EC;color:#1d5b33;font-weight:600}

/* ===== HQ §51 admin Leavers (admin-leavers.js) ========================================================== */
.lv-reasons{display:grid;gap:14px;margin:12px 0 20px}
.lv-top{margin:0;padding:12px 14px;list-style:none;background:#fff;border:1px solid var(--line,#ECE4DE);border-radius:16px;counter-reset:r}
.lv-top li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-size:14px;counter-increment:r}
.lv-top li span::before{content:counter(r) ". ";color:#6B6560}
.lv-words{display:block;font-size:13px;color:#5a5350;margin-top:2px}
@media(min-width:768px){.lv-reasons{grid-template-columns:1fr 1fr}}
/* phones: each table row becomes a card */
@media(max-width:767px){
 .lv-table-wrap{background:none;border:0;overflow:visible}
 .lv-table,.lv-table tbody,.lv-table tr,.lv-table td{display:block;width:100%}
 .lv-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .lv-table tr{background:#fff;border:1px solid var(--line,#ECE4DE);border-radius:14px;padding:8px 12px;margin:0 0 10px}
 .lv-table td{border:0;padding:4px 0;display:grid;grid-template-columns:96px 1fr;gap:8px;overflow-wrap:anywhere}
 .lv-table td::before{content:attr(data-label);font-size:12px;font-weight:700;color:#6B6560}
 .lv-table td:has(> div:empty){display:none}
}
.close-account .closure-reasons .closure-reason{margin:0!important}
.close-account .closure-reason input{margin:0!important;align-self:center}

/* ===== §54 photos and videos (media-kit.js, add-stylist.js, profile-viewer.js) ========================== */
/* hair photos keep the top of the head when no focus is set; a set focus is applied inline and wins */
#cards .card .cardpic>img:not(.card-logo),.cardpic img:not(.card-logo),.profile-gallery .pg-slide img,.profilephoto,.gallery-grid img,
.hx-feature>img,.hx-mini img,.hx-ring img,.pick-photo>img:first-child,.home-pick-photo img:not(.home-pick-logo),.saved-stylist-card img,
.map-preview-photo img:not(.card-logo),.work-media img,.photo-tag-card img,.sp-tile img,.sp-circle img,.admin-gallery img{object-position:50% 25%}
.card-logo,.profile-logo,.home-pick-logo,.pick-logo,.listing-avatar,.logo-preview{object-position:50% 50%}

/* the multi-file uploader */
.bu{display:flex;flex-direction:column;gap:12px}
.bu-tagall{display:flex;flex-direction:column;gap:6px}
.bu-tagall-label{font-weight:700;font-size:14px}
.bu-chips{display:flex;flex-wrap:wrap;gap:6px}
.bu-chips button{min-height:40px;padding:4px 14px;border-radius:999px;border:1.5px solid #ECE4DE;background:#fff;font:600 14px 'DM Sans',system-ui,sans-serif;color:#242220;cursor:pointer}
.bu-chips button[aria-checked=true]{background:#FCC9FF;border-color:#242220}
.bu-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:120px;padding:18px;border:2px dashed #c9bdb6;border-radius:18px;background:#FFFCF8;text-align:center;cursor:pointer}
.bu-drop.is-over{border-color:#242220;background:#fff3fe}
.bu-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.bu-drop:focus-within{outline:2px solid #242220;outline-offset:2px}
.bu-drop-btn{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border-radius:999px;background:#242220;color:#fff;font-weight:700}
.bu-drop-or{color:#6B6560}
.bu-drop small{color:#6B6560;font-size:13px;max-width:46ch}
.bu-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.bu-tile{display:flex;flex-direction:column;gap:6px;min-width:0}
.bu-thumb{position:relative;aspect-ratio:4/5;border-radius:14px;overflow:hidden;background:#F3ECE6}
.bu-thumb img,.bu-thumb video{width:100%;height:100%;object-fit:cover;object-position:50% 25%;display:block}
.bu-badge{position:absolute;left:6px;bottom:6px;padding:2px 8px;border-radius:999px;background:rgba(0,0,0,.65);color:#fff;font-size:12px;font-weight:700}
.bu-prog{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(255,252,248,.55)}
.bu-ring{width:56px;height:56px;transform:rotate(-90deg);position:absolute}
.bu-ring-bg{fill:none;stroke:rgba(36,34,32,.15);stroke-width:4}
.bu-ring-fg{fill:none;stroke:#242220;stroke-width:4;stroke-linecap:round;transition:stroke-dashoffset .2s}
.bu-prog b{position:relative;font-size:13px}
.bu-ok{position:absolute;right:6px;bottom:6px;width:28px;height:28px;border-radius:999px;background:#1d5b33;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.bu-x,.bu-star{position:absolute;top:6px;width:36px;height:36px;border-radius:999px;border:0;background:rgba(255,255,255,.92);color:#242220;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.bu-x{right:6px}
.bu-star{left:6px;color:#b3a59f}
.bu-star.is-on{background:#FCC9FF;color:#242220;box-shadow:inset 0 0 0 1.5px #242220}
.bu-star[disabled]{opacity:.35;cursor:default}
.bu-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.bu-tag{flex:1 1 100%;min-width:0;min-height:40px;font:inherit;font-size:14px;padding:6px 8px;border:1.5px solid #c9bdb6;border-radius:10px;background:#fff}
.bu-adjust,.bu-retry,.bu-copy{min-height:36px;padding:0 12px;border-radius:999px;border:1.5px solid #242220;background:#fff;font:600 13px 'DM Sans',system-ui,sans-serif;cursor:pointer}
.bu-tile.is-error .bu-thumb{outline:2px solid #b3261e}
.bu-err{margin:0;font-size:13px;color:#8a1c14;font-weight:600}
.bu-status{margin:0;font-size:14px}
.bu-status:empty{display:none}
[data-focus-adjust]{min-height:36px}

/* the Adjust dialog */
body.fx-open,body.as-open,body.pv-open{overflow:hidden}
.fx-backdrop{position:fixed;inset:0;z-index:4000;background:rgba(20,16,18,.6);display:flex;align-items:flex-end;justify-content:center}
.fx{background:#fff;width:100%;max-width:720px;max-height:100%;overflow:auto;border-radius:20px 20px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}
.fx-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.fx-head h2{margin:0!important;font-size:20px!important}
.fx-x{width:44px;height:44px;border:0;background:none;font-size:18px;cursor:pointer}
.fx-help{margin:4px 0 10px;font-size:14px;color:#6B6560}
.fx-stage{position:relative;display:block;width:fit-content;max-width:100%;margin:0 auto;touch-action:none;cursor:crosshair;border-radius:12px;overflow:hidden;background:#111}
.fx-stage img{display:block;max-width:100%;max-height:46vh;user-select:none}
.fx-stage:focus-visible{outline:3px solid #242220;outline-offset:2px}
.fx-dot{position:absolute;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:999px;border:3px solid #fff;box-shadow:0 0 0 2px #242220,0 2px 8px rgba(0,0,0,.5);background:rgba(252,201,255,.6);pointer-events:none}
.fx-dot.is-default{background:transparent;border-style:dashed}
.fx-frames{display:flex;gap:14px;justify-content:center;margin:12px 0 0}
.fx-frames figure{margin:0;text-align:center;font-size:12px;color:#6B6560}
.fx-frame{overflow:hidden;border-radius:12px;background:#F3ECE6;border:1.5px solid #242220}
.fx-frame img{width:100%;height:100%;object-fit:cover;display:block}
.fx-45{width:96px;aspect-ratio:4/5}
.fx-11{width:120px;aspect-ratio:1/1}
.fx-status{margin:8px 0 0;font-size:14px;min-height:1.2em}
.fx-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}
.fx-actions button{min-height:46px;padding:0 18px;border-radius:999px;border:1.5px solid #242220;background:#fff;font:700 15px 'DM Sans',system-ui,sans-serif;cursor:pointer}
.fx-actions .fx-save{background:#242220;color:#fff}
.fx-actions .fx-reset{margin-right:auto;border-color:transparent;text-decoration:underline}
@media(min-width:768px){.fx-backdrop{align-items:center;padding:20px}.fx{border-radius:20px;padding:20px 24px}}

/* Add stylist (one screen) */
.as-backdrop{position:fixed;inset:0;z-index:3500;background:rgba(20,16,18,.55);display:flex;justify-content:center;align-items:stretch}
.as{background:#FFFCF8;width:100%;max-width:820px;height:100%;overflow:auto;padding:0 16px calc(24px + env(safe-area-inset-bottom))}
.as-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:14px 0;background:#FFFCF8;border-bottom:1px solid #ECE4DE}
.as-head h2{margin:0!important;font-size:22px!important}
.as-x{width:44px;height:44px;border:0;background:none;font-size:18px;cursor:pointer}
.as-form{display:flex;flex-direction:column;gap:18px;padding-top:16px}
.as-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}
.as-field>span,.as-field legend,.as-label{font-weight:700;font-size:15px;padding:0}
.as-field small{font-weight:400;color:#6B6560}
.as-field input:not([type=radio]):not([type=checkbox]):not([type=file]){min-height:48px;font:inherit;font-size:16px;padding:10px 12px;border:1.5px solid #b3a59f;border-radius:12px;background:#fff;width:100%;box-sizing:border-box}
.as-pills{display:flex;flex-wrap:wrap;gap:6px}
.as-pill{position:relative}
.as-pill input{position:absolute;opacity:0;width:1px;height:1px}
.as-pill span{display:inline-flex;align-items:center;min-height:42px;padding:0 14px;border-radius:999px;border:1.5px solid #ECE4DE;background:#fff;font-weight:600;font-size:14px;cursor:pointer}
.as-pill input:checked+span{background:#FCC9FF;border-color:#242220}
.as-pill input:focus-visible+span{outline:2px solid #242220;outline-offset:2px}
.as-logo-row{display:flex;align-items:center;gap:14px}
.as-logo-prev{width:88px;height:88px;border-radius:999px;border:1.5px dashed #b3a59f;background:#fff;overflow:hidden;padding:0;display:flex;align-items:center;justify-content:center;font-size:28px;color:#b3a59f;cursor:pointer}
.as-logo-prev img{width:100%;height:100%;object-fit:cover}
.as-logo-prev[disabled]{cursor:default}
.as-logo-acts{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.as-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:999px;border:1.5px solid #242220;background:#fff;font:700 15px 'DM Sans',system-ui,sans-serif;color:#242220;cursor:pointer;text-decoration:none}
.as-btn-ghost{border-color:transparent;text-decoration:underline}
.as-link{border:0;background:none;text-decoration:underline;cursor:pointer;min-height:36px;font:inherit}
.as-live{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:16px;background:#fff;border:1px solid #ECE4DE}
.as-switch{display:flex;align-items:center;gap:12px;font-weight:700;cursor:pointer}
.as-switch input{position:absolute;opacity:0;width:1px;height:1px}
.as-track{width:48px;height:28px;border-radius:999px;background:#d8cfc8;position:relative;flex:none;transition:background .15s}
.as-track::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:999px;background:#fff;transition:left .15s}
.as-switch input:checked+.as-track{background:#242220}
.as-switch input:checked+.as-track::after{left:23px}
.as-switch input:disabled+.as-track{opacity:.5}
.as-switch input:focus-visible+.as-track{outline:2px solid #242220;outline-offset:2px}
.as-missing{font-size:14px;color:#5a5350;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.as-chip{min-height:36px;padding:0 12px;border-radius:999px;border:1.5px dashed #242220;background:#FFFCF8;font:600 13px 'DM Sans',system-ui,sans-serif;cursor:pointer}
.as-ok{color:#1d5b33;font-weight:600}
.as-status{margin:0;font-size:14px}
.as-status:empty{display:none}
.as-actions{position:sticky;bottom:0;padding:12px 0;background:#FFFCF8}
.as-save{width:100%;min-height:52px;border:0;border-radius:999px;background:#242220;color:#fff;font:700 16px 'DM Sans',system-ui,sans-serif;cursor:pointer}
.as-save[disabled]{opacity:.6}
.as-done{margin:8px 0 20px;padding:18px;border-radius:18px;background:#FCC9FF;box-shadow:inset 0 0 0 1.5px #242220}
.as-done-title{margin:0 0 4px;font-weight:700;font-size:18px}
.as-done-note{margin:4px 0;font-size:14px}
.as-done-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
@media(min-width:768px){.as-backdrop{align-items:flex-start;padding:24px}.as{height:auto;max-height:calc(100vh - 48px);border-radius:20px;padding:0 28px 24px}.as-save{width:auto;padding:0 40px}}

/* the work grid on a profile: each piece opens the viewer */
.work-tile{display:block;position:relative;width:100%;padding:0;border:0;background:none;cursor:zoom-in;border-radius:inherit;aspect-ratio:1/1;overflow:hidden}
.work-tile img,.work-tile video{width:100%;height:100%;object-fit:cover;display:block}
.work-tile video{object-position:50% 50%}
.work-tile:focus-visible{outline:3px solid #242220;outline-offset:2px}
.work-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:30px;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.6);pointer-events:none}
.profile-gallery .pg-slide img{cursor:zoom-in}

/* the viewer */
.pv{position:fixed;inset:0;z-index:5000;background:#0d0b0c;color:#fff;display:flex;flex-direction:column}
.pv-top{display:flex;align-items:center;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 12px 10px 16px}
.pv-count{font-weight:700;font-variant-numeric:tabular-nums}
.pv-label{flex:1;color:#d9d3ce;font-size:14px}
.pv-x{width:48px;height:48px;border:0;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-size:20px;cursor:pointer}
.pv-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;touch-action:pan-y pinch-zoom;padding:0 0 calc(12px + env(safe-area-inset-bottom))}
.pv-stage img,.pv-stage video{max-width:100%;max-height:100%;object-fit:contain;display:block}
.pv-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border:0;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;font-size:30px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.pv-nav[disabled]{opacity:.25;cursor:default}
.pv-prev{left:10px}.pv-next{right:10px}
.pv-x:focus-visible,.pv-nav:focus-visible{outline:3px solid #FCC9FF;outline-offset:2px}
@media(max-width:599px){.pv-nav{display:none}}
/* Add stylist keeps the town picker simple: the area (and travel radius for mobile); branches and addresses are in the full editor */
.as-town .place-fields>:not([data-town-field]):not([data-travel-field]){display:none!important}
.as-town .place-hint{display:none}
.as-town [data-town-field]>span{display:none}

/* ===== §54b photos and videos inside the admin listing editor (editor-media.js) ======================== */
.em{display:flex;flex-direction:column;gap:14px;margin-top:12px}
.em-live{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;border-radius:14px;background:#fff;border:1px solid #ECE4DE;font-size:14px}
.em-live-state{font-weight:700;color:#6B6560}
.em-live-state.is-live{color:#1d5b33}
.em-make-live{min-height:40px;padding:0 16px;border-radius:999px;border:0;background:#242220;color:#fff;font:700 14px 'DM Sans',system-ui,sans-serif;cursor:pointer}
.em-make-live[disabled]{background:#d8cfc8;color:#6B6560;cursor:default}
.em-miss-label{color:#5a5350}
.em-miss{min-height:36px;padding:0 12px;border-radius:999px;border:1.5px dashed #242220;background:#FFFCF8;font:600 13px 'DM Sans',system-ui,sans-serif;cursor:pointer}
.em-live-msg{flex-basis:100%;color:#8a1c14;font-size:13px}
.em-live-msg:empty{display:none}
.em-sub{margin:4px 0 0;font-size:15px}
.em-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.em-tile{display:flex;flex-direction:column;gap:6px;min-width:0}
.em-thumb{position:relative;aspect-ratio:4/5;border-radius:14px;overflow:hidden;background:#F3ECE6}
.em-thumb img,.em-thumb video{width:100%;height:100%;object-fit:cover;object-position:50% 25%;display:block}
.em-tile.is-cover .em-thumb{box-shadow:0 0 0 3px #FCC9FF,0 0 0 4.5px #242220}
.em-badge{position:absolute;left:6px;top:6px;padding:2px 8px;border-radius:999px;background:rgba(0,0,0,.65);color:#fff;font-size:12px;font-weight:700;pointer-events:none}
.em-star{position:absolute;right:6px;top:6px;width:36px;height:36px;border-radius:999px;border:0;background:rgba(255,255,255,.92);color:#b3a59f;font-size:16px;cursor:pointer}
.em-star.is-on{background:#FCC9FF;color:#242220;box-shadow:inset 0 0 0 1.5px #242220}
.em-star[disabled]{opacity:.35;cursor:default}
.em-tag{min-height:40px;width:100%;font:inherit;font-size:14px;padding:6px 8px;border:1.5px solid #c9bdb6;border-radius:10px;background:#fff}
.em-acts{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.em-acts button{min-height:36px;padding:0 12px;border-radius:999px;border:1.5px solid #242220;background:#fff;font:600 13px 'DM Sans',system-ui,sans-serif;cursor:pointer}
.em-acts .danger-text{border-color:transparent;text-decoration:underline}
.em-empty{color:#6B6560;font-size:14px}
.em-open-photos{align-self:flex-start;font-size:13px}
/* My work: "Add photos and videos" sits straight under the profile picture, above the grid */
#portal-photo-body .add-work{margin:14px 0 20px}
/* inside the admin form, field spans are blocks; keep the drop zone's button compact */
.bu .bu-drop-main{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px}
.bu .bu-drop-btn{display:inline-flex!important;width:auto!important;margin:0!important;color:#fff!important;font-size:15px!important}
.bu .bu-drop-or{display:inline!important;margin:0!important;font-weight:400!important}
.bu .bu-tagall-label{display:block}
.em-open-photos{min-height:40px!important;padding:0 14px!important;font-size:13px!important}

/* ===== §55 stylist page styles (page-themes.js) ===================================================== */
/* HQ's tokens, copied exactly. 'classic' is today's look: the overrides below skip it, so it stays pixel-identical. */
[data-page-theme="classic"],body[data-profile-theme="classic"]{--pt-bg:#FFFFFF;--pt-surface:#FFF6FD;--pt-ink:#242220;--pt-muted:#6B6066;--pt-accent:#FCC9FF;--pt-on:#242220;--pt-edge:#242220;--pt-line:#F1E2EC;--pt-hl:#FCC9FF}
[data-page-theme="blush"],body[data-profile-theme="blush"]{--pt-bg:#FBF4EF;--pt-surface:#FFFFFF;--pt-ink:#2B211C;--pt-muted:#6B5A51;--pt-accent:#EBC4B0;--pt-on:#2B211C;--pt-edge:#2B211C;--pt-line:#EEDFD5;--pt-hl:#EBC4B0}
[data-page-theme="berry"],body[data-profile-theme="berry"]{--pt-bg:#FFF7FA;--pt-surface:#FFFFFF;--pt-ink:#2A1420;--pt-muted:#6C4859;--pt-accent:#9C2A62;--pt-on:#FFFFFF;--pt-edge:#9C2A62;--pt-line:#F3DDE7;--pt-hl:#F4C6DB}
[data-page-theme="lilac"],body[data-profile-theme="lilac"]{--pt-bg:#F8F5FF;--pt-surface:#FFFFFF;--pt-ink:#221B33;--pt-muted:#5E5574;--pt-accent:#D8C7FF;--pt-on:#221B33;--pt-edge:#221B33;--pt-line:#E7E0F7;--pt-hl:#D8C7FF}
[data-page-theme="honey"],body[data-profile-theme="honey"]{--pt-bg:#FFFAF0;--pt-surface:#FFFFFF;--pt-ink:#2A2112;--pt-muted:#6A5B40;--pt-accent:#E8C26A;--pt-on:#2A2112;--pt-edge:#2A2112;--pt-line:#F1E6CC;--pt-hl:#F0D58F}
[data-page-theme="sage"],body[data-profile-theme="sage"]{--pt-bg:#F4F7F2;--pt-surface:#FFFFFF;--pt-ink:#1E2A22;--pt-muted:#536156;--pt-accent:#B5CDB8;--pt-on:#1E2A22;--pt-edge:#1E2A22;--pt-line:#DFE8DF;--pt-hl:#C8DCCB}
[data-page-theme="midnight"],body[data-profile-theme="midnight"]{--pt-bg:#16131A;--pt-surface:#221D27;--pt-ink:#F7EEF5;--pt-muted:#BBAEB8;--pt-accent:#FCC9FF;--pt-on:#16131A;--pt-edge:#FCC9FF;--pt-line:#3A3240;--pt-hl:#5A3557}
[data-page-theme="cocoa"],body[data-profile-theme="cocoa"]{--pt-bg:#23170F;--pt-surface:#2F2118;--pt-ink:#F8EDE3;--pt-muted:#CDBAA8;--pt-accent:#E6B788;--pt-on:#23170F;--pt-edge:#E6B788;--pt-line:#4A3627;--pt-hl:#6A4529}
body[data-profile-theme]:not([data-profile-theme="classic"]){background:var(--pt-bg)}
body[data-profile-theme="midnight"],body[data-profile-theme="cocoa"]{color-scheme:dark}
#profile[data-page-theme]:not([data-page-theme="classic"]){background:var(--pt-bg);color:var(--pt-ink)}
/* text: ink everywhere, muted for the small print */
#profile[data-page-theme]:not([data-page-theme="classic"]) :is(h1,h2,h3,h4,h5,p,span,li,dt,dd,label,legend,small,strong,b,em,i,a,summary,div,figcaption,time,blockquote,th,td,button,select,option,input,textarea){color:var(--pt-ink)!important}
#profile[data-page-theme]:not([data-page-theme="classic"]) :is(small,.small,.muted,.review-summary-note,.review-note,.review-limits,.star-word,.policies-foot,.pt-mood,.place-hint,.review-meta,.optional,.review-verify-hint,.profile-dm-note,.hours-note){color:var(--pt-muted)!important}
#profile[data-page-theme]:not([data-page-theme="classic"]) .eyebrow{color:var(--pt-ink)!important}
/* dividers and outlines */
#profile[data-page-theme]:not([data-page-theme="classic"]) :is(section,div,details,form,ul,li,hr,article,figure){border-color:var(--pt-line)!important}
/* surfaces: cards, panels, pale chips */
#profile[data-page-theme]:not([data-page-theme="classic"]) #reviewform{background:var(--pt-surface)!important;border-color:var(--pt-line)!important}
#profile[data-page-theme]:not([data-page-theme="classic"]) :is(.policy-row,.review-verify,.hours-fact,.hours-summary,.review-summary-card,.verify-card,.review-empty,.facts>div,.fact,.pg-all,.pill-link:not(.dark),.review-who-state,.review-badge.is-unverified,.pg-count,.pink-pill,.kids-badge,.claim-box,.notice,.owner-preview-banner,.review-card,.reviewitem,.pg-arrow){background:var(--pt-surface)!important;border-color:var(--pt-line)!important;box-shadow:none}
#profile[data-page-theme]:not([data-page-theme="classic"]) .pg-dots i{background:var(--pt-line)!important}
#profile[data-page-theme]:not([data-page-theme="classic"]) .pg-dots i.is-on{background:var(--pt-ink)!important}
/* accent fills: the button text colour and the edge rule (a 1.5px ink edge on the pale accents) */
#profile[data-page-theme]:not([data-page-theme="classic"]) :is(.service-pill,.profile-save,.profile-dm-btn,.review-badge.is-verified,.step-num,.pink-pill[aria-pressed="true"],.pink-pill.is-on,.chip-on){background:var(--pt-accent)!important;color:var(--pt-on)!important;border:0!important;box-shadow:inset 0 0 0 1.5px var(--pt-edge)!important}
#profile[data-page-theme]:not([data-page-theme="classic"]) :is(.service-pill,.profile-save,.profile-dm-btn,.review-badge.is-verified,.step-num) *{color:var(--pt-on)!important}
#profile[data-page-theme]:not([data-page-theme="classic"]) .profile-dm-btn svg{stroke:currentColor}
/* panels with words on them use the highlight, never the strong accent */
#profile[data-page-theme]:not([data-page-theme="classic"]) .review-cta{background:var(--pt-hl)!important;box-shadow:inset 0 0 0 1.5px var(--pt-edge)!important}
#profile[data-page-theme]:not([data-page-theme="classic"]) .profile-gallery{background:var(--pt-surface)!important}
/* solid (ink) buttons turn over in the dark styles */
#profile[data-page-theme]:not([data-page-theme="classic"]) :is(.button.dark,.pill-link.dark,.review-cta-btn,#reviewform button[type=submit],.btn-dark){background:var(--pt-ink)!important;color:var(--pt-bg)!important;border-color:var(--pt-ink)!important}
#profile[data-page-theme]:not([data-page-theme="classic"]) :is(.button.dark,.pill-link.dark,.review-cta-btn,#reviewform button[type=submit],.btn-dark) *{color:var(--pt-bg)!important}
#profile[data-page-theme]:not([data-page-theme="classic"]) .review-write.is-open .review-cta-btn{background:var(--pt-surface)!important;color:var(--pt-ink)!important;box-shadow:inset 0 0 0 1.5px var(--pt-edge)!important}
#profile[data-page-theme]:not([data-page-theme="classic"]) :is(.button:not(.dark),.pill-link:not(.dark)){color:var(--pt-ink)!important;border-color:var(--pt-edge)!important}
/* links: ink, underlined in the accent */
#profile[data-page-theme]:not([data-page-theme="classic"]) a:not([class]),#profile[data-page-theme]:not([data-page-theme="classic"]) .ratinglink,#profile[data-page-theme]:not([data-page-theme="classic"]) .textlink{color:var(--pt-ink)!important;text-decoration:underline;text-decoration-color:var(--pt-accent);text-decoration-thickness:2px;text-underline-offset:3px}
/* the review form and other fields */
#profile[data-page-theme]:not([data-page-theme="classic"]) :is(input,textarea,select){background:var(--pt-surface)!important;color:var(--pt-ink)!important;border-color:var(--pt-muted)!important}
#profile[data-page-theme]:not([data-page-theme="classic"]) :is(input,textarea)::placeholder{color:var(--pt-muted)!important;opacity:1}
#profile[data-page-theme]:not([data-page-theme="classic"]) .review-stars-pick .star-icon svg{fill:var(--pt-surface)!important;stroke:var(--pt-ink)!important}
#profile[data-page-theme]:not([data-page-theme="classic"]) .review-stars-pick label.star.on svg,#profile[data-page-theme]:not([data-page-theme="classic"]) .review-stars-pick label.star.hover svg{fill:var(--pt-accent)!important;stroke:var(--pt-edge)!important}
/* focus rings: 2px, visible on the background and the surface */
#profile[data-page-theme]:not([data-page-theme="classic"]) :focus-visible{outline:2px solid var(--pt-edge)!important;outline-offset:2px}
#profile[data-page-theme]:not([data-page-theme="classic"]) .review-stars-pick label.star:has(.star-input:focus-visible){outline:2px solid var(--pt-edge)!important}
/* the verified tick and stars follow the text */
#profile[data-page-theme]:not([data-page-theme="classic"]) :is(.verified-tick,.vtick,.pink-tick,.verified) svg,#profile[data-page-theme]:not([data-page-theme="classic"]) h1 svg{fill:var(--pt-edge);color:var(--pt-edge)}
/* photos keep a fine line so they don't float on the dark styles */
#profile[data-page-theme]:not([data-page-theme="classic"]) :is(.pg-slide img,.gallery-grid img,.work-tile,.profile-logo){outline:1px solid var(--pt-line);outline-offset:-1px}
#profile[data-page-theme]:not([data-page-theme="classic"]) .profile-logo{border-color:var(--pt-surface)!important;background:var(--pt-surface)!important}
/* the picker */
.pt-wrap{margin:0 0 18px}
.pt-card{background:#fff;border:1px solid var(--line,#ECE4DE);border-radius:20px;padding:18px 16px}
.pt-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.pt-head h3{margin:0;font-size:18px}
.pt-see{font-weight:700;font-size:14px;color:#242220;text-decoration:underline;text-decoration-color:#FCC9FF;text-decoration-thickness:3px;text-underline-offset:3px}
.pt-help{margin:4px 0 12px;font-size:14px;color:#5a5350}
.pt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pt-swatch{display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:6px 6px 10px;border:1.5px solid #ECE4DE;border-radius:16px;background:#fff;text-align:left;cursor:pointer;font:inherit;color:#242220;min-width:0}
.pt-swatch.is-on{border-color:#242220;box-shadow:0 0 0 2px #FCC9FF}
.pt-swatch:focus-visible{outline:2px solid #242220;outline-offset:2px}
.pt-mini{position:relative;display:flex;flex-direction:column;gap:6px;height:84px;padding:10px;border-radius:11px;border:1px solid;overflow:hidden;margin-bottom:6px}
.pt-mini-title{font-family:'Playfair Display',Georgia,serif;font-size:20px;line-height:1;font-weight:600}
.pt-mini-line{display:block;width:70%;height:5px;border-radius:3px;opacity:.7}
.pt-mini-btn{align-self:flex-start;margin-top:auto;padding:3px 12px;border-radius:999px;font-size:11px;font-weight:700}
.pt-tick{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:999px;background:#242220;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;box-shadow:0 0 0 2px #fff}
.pt-name{font-weight:700;font-size:14px;padding:0 4px}
.pt-mood{font-size:12.5px;color:#5a5350;padding:0 4px}
.pt-status{margin:10px 0 0;font-size:14px;min-height:1.2em}
@media(min-width:600px){.pt-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* §55 a touch of the stylist's style on directory and Saved cards (card_band, card_pill, card_pill_text, card_pill_edge from page-themes.json).
 Cards stay white; classic cards get no rule at all, so they look exactly like today. */
[data-card-theme="blush"]{--cb:#EBC4B0;--cp:#EBC4B0;--cpt:#2B211C;--cpe:#242220}
[data-card-theme="berry"]{--cb:#9C2A62;--cp:#9C2A62;--cpt:#FFFFFF;--cpe:#9C2A62}
[data-card-theme="lilac"]{--cb:#D8C7FF;--cp:#D8C7FF;--cpt:#221B33;--cpe:#242220}
[data-card-theme="honey"]{--cb:#E8C26A;--cp:#E8C26A;--cpt:#2A2112;--cpe:#242220}
[data-card-theme="sage"]{--cb:#B5CDB8;--cp:#B5CDB8;--cpt:#1E2A22;--cpe:#242220}
[data-card-theme="midnight"]{--cb:#16131A;--cp:#16131A;--cpt:#F7EEF5;--cpe:#16131A}
[data-card-theme="cocoa"]{--cb:#23170F;--cp:#23170F;--cpt:#F8EDE3;--cpe:#23170F}
:is(.card,.saved-stylist-card)[data-card-theme]:not([data-card-theme="classic"]){position:relative}
:is(.card,.saved-stylist-card)[data-card-theme]:not([data-card-theme="classic"])::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--cb);z-index:4;border-radius:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;pointer-events:none}
.card[data-card-theme]:not([data-card-theme="classic"]) .cardbottom a{background:var(--cp)!important;color:var(--cpt)!important;box-shadow:inset 0 0 0 1.5px var(--cpe)!important;border:0!important;border-radius:999px;padding:6px 14px;text-decoration:none!important;font-weight:700}
/* §55.3 the owner's "🎨 Page style" pill and sheet on their own page */
.pt-fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:1200;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 18px;border-radius:999px;border:0;background:#242220;color:#fff;font:700 15px 'DM Sans',system-ui,sans-serif;box-shadow:0 8px 24px rgba(0,0,0,.25);cursor:pointer;transition:opacity .15s,transform .15s}
.pt-fab:focus-visible{outline:3px solid #FCC9FF;outline-offset:3px}
.pt-fab.is-tucked{opacity:0;transform:translateY(12px);pointer-events:none}
body.pv-open .pt-fab,body.pt-sheet-open .pt-fab{display:none}
@media(prefers-reduced-motion:reduce){.pt-fab{transition:none}}
.pt-sheet-back{position:fixed;inset:0;z-index:4500;background:rgba(20,16,18,.35);display:flex;align-items:flex-end;justify-content:center}
.pt-sheet{width:100%;max-height:78vh;overflow:auto;background:#fff;color:#242220;border-radius:22px 22px 0 0;padding:16px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -10px 30px rgba(0,0,0,.2)}
.pt-sheet-head{display:flex;align-items:center;justify-content:space-between}
.pt-sheet-head h2{margin:0!important;font-size:20px!important;color:#242220!important}
.pt-sheet-x{width:44px;height:44px;border:0;background:none;font-size:18px;cursor:pointer;color:#242220}
.pt-sheet .pt-help,.pt-sheet .pt-status{color:#5a5350}
@media(min-width:900px){.pt-sheet-back{align-items:stretch;justify-content:flex-end;background:rgba(20,16,18,.2)}.pt-sheet{width:380px;max-height:none;height:100%;border-radius:0;padding:20px}.pt-sheet .pt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===== §56 Stylist Requests (requests.js, admin-requests.js) ========================================== */
.request-page{padding:calc(var(--header-h,72px) + 16px) 16px 48px}
.rq{max-width:720px;margin:0 auto;color:#242220}
.rq h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(30px,7vw,44px);line-height:1.1;margin:0 0 10px}
.rq h1 em{font-style:italic;background:linear-gradient(transparent 62%,#FCC9FF 62%)}
.rq h2{font-family:'Playfair Display',Georgia,serif;font-size:24px;margin:28px 0 10px}
.rq-lede{margin:0 0 18px;font-size:16px;line-height:1.55;color:#4a4246;max-width:54ch}
.rq-note{background:#FFF3C4;border-radius:12px;padding:10px 14px;font-size:14px}
.rq-form{display:flex;flex-direction:column;gap:16px}
.rq-field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}
.rq-field legend,.rq-label{font-weight:700;font-size:15px;padding:0}
.rq-field small,.rq-label small{font-weight:400;color:#6B6560}
.rq-field input:not([type=checkbox]):not([type=radio]):not([type=range]),.rq-field textarea{width:100%;box-sizing:border-box;min-height:48px;font:inherit;font-size:16px;padding:10px 12px;border:1.5px solid #b3a59f;border-radius:12px;background:#fff;color:#242220}
.rq-field input[readonly]{background:#F3ECE6}
.rq-field textarea{min-height:110px;resize:vertical}
.rq-field :is(input,textarea):focus-visible{outline:2px solid #242220;outline-offset:2px}
.rq-count{align-self:flex-end;font-size:12px}
.rq-pills{display:flex;flex-wrap:wrap;gap:6px}
.rq-pill{position:relative}
.rq-pill input{position:absolute;opacity:0;width:1px;height:1px}
.rq-pill span{display:inline-flex;align-items:center;min-height:42px;padding:0 14px;border-radius:999px;border:1.5px solid #ECE4DE;background:#fff;font-weight:600;font-size:14px;cursor:pointer}
.rq-pill input:checked+span{background:#FCC9FF;border-color:#242220}
.rq-pill input:focus-visible+span{outline:2px solid #242220;outline-offset:2px}
.rq-pill.is-off span{opacity:.45;cursor:default}
.rq-field input[type=range]{width:100%;accent-color:#242220;min-height:32px}
.rq-switch{display:flex;align-items:center;gap:12px;font-weight:700;cursor:pointer;min-height:44px}
.rq-switch input{position:absolute;opacity:0;width:1px;height:1px}
.rq-track{width:48px;height:28px;border-radius:999px;background:#d8cfc8;position:relative;flex:none}
.rq-track::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:999px;background:#fff;transition:left .15s}
.rq-switch input:checked+.rq-track{background:#242220}
.rq-switch input:checked+.rq-track::after{left:23px}
.rq-switch input:focus-visible+.rq-track{outline:2px solid #242220;outline-offset:2px}
.rq-town .place-fields>:not([data-town-field]){display:none!important}
.rq-town .place-hint,.rq-town [data-town-field]>span{display:none}
.rq-row{display:grid;gap:12px}
.rq-price{margin:4px 0 0;font-size:16px}
.rq-member{margin:-8px 0 0;font-size:14px}
.rq-member a,.rq a:not([class]){color:#242220;text-decoration:underline;text-decoration-color:#FCC9FF;text-decoration-thickness:3px;text-underline-offset:3px;font-weight:700}
.rq-go{min-height:54px;border:0;border-radius:999px;background:#242220;color:#fff;font:700 16px 'DM Sans',system-ui,sans-serif;padding:0 26px;cursor:pointer}
.rq-go[disabled]{opacity:.55;cursor:default}
.rq-ghost{min-height:54px;border:1.5px solid #242220;border-radius:999px;background:#fff;color:#242220;font:700 16px 'DM Sans',system-ui,sans-serif;padding:0 22px;cursor:pointer}
.rq-error{margin:0;color:#8a1c14;font-weight:600;font-size:14px}
.rq-error:empty{display:none}
.rq-small{margin:0;font-size:13px;line-height:1.5;color:#6B6560}
.rq-btn{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;border:1.5px solid #242220;background:#fff;color:#242220;font-weight:700;text-decoration:none}
.rq-status{margin:0 0 14px;padding:12px 14px;border-radius:14px;background:#F3ECE6;font-weight:700}
.rq-status.is-paid{background:#E8F4EC;color:#1d5b33}
.rq-status.is-draft{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:#FFF3C4;color:#5a4300}
.rq-sum{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:0 0 12px}
.rq-sum div{background:#fff;border:1px solid #ECE4DE;border-radius:12px;padding:8px 12px}
.rq-sum dt{font-size:12px;color:#6B6560}
.rq-sum dd{margin:0;font-weight:700;overflow-wrap:anywhere}
.rq-details{margin:0 0 12px;padding:12px 14px;border-left:3px solid #FCC9FF;background:#fff;border-radius:0 12px 12px 0;line-height:1.5;overflow-wrap:anywhere}
.rq-empty{color:#5a5350}
.rq-cards{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.rq-card{display:flex;gap:12px;background:#fff;border:1px solid #ECE4DE;border-radius:16px;padding:12px}
.rq-card img,.rq-noimg{width:84px;height:105px;flex:none;border-radius:12px;object-fit:cover;object-position:50% 25%;background:#F3ECE6}
.rq-card-body{min-width:0;display:flex;flex-direction:column;gap:4px}
.rq-card-body p{margin:0}
.rq-card-name{font-weight:700;font-size:16px}
.rq-card-meta{font-size:13px;color:#6B6560}
.rq-card-msg{font-style:italic;overflow-wrap:anywhere}
.rq-card-reach{overflow-wrap:anywhere}
.rq-card-links{display:flex;flex-wrap:wrap;gap:12px;font-size:14px}
.rq-card-links a{color:#242220;font-weight:700;text-decoration:underline;text-decoration-color:#FCC9FF;text-decoration-thickness:3px;text-underline-offset:3px}
.rq-facts{margin:0 0 12px;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.rq-facts li{padding:6px 12px;border-radius:999px;background:#fff;border:1px solid #ECE4DE;font-size:14px}
.rq-answer{margin:16px 0}
.rq-acts{display:flex;flex-wrap:wrap;gap:10px}
.rq-acts>*{flex:1 1 180px}
.rq-reply{margin-top:6px}
.rq-entry{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:16px 0;padding:14px 16px;border-radius:16px;background:#fff;border:1px dashed #c9bdb6;color:#242220}
.rq-entry p{margin:0;font-size:14px;line-height:1.5;flex:1 1 240px}
.rq-entry-btn{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;background:#FCC9FF;color:#242220;font-weight:700;text-decoration:none;box-shadow:inset 0 0 0 1.5px #242220}
.hx-hero .rq-entry,.home-hero .rq-entry{max-width:640px}
.rq-account{margin:8px 0 0;font-size:14px}
.rq-account a{color:#242220;font-weight:700;text-decoration:underline;text-decoration-color:#FCC9FF;text-decoration-thickness:3px;text-underline-offset:3px}
body.pink-on-request .rq-entry{display:none}
@media(min-width:768px){.rq-row{grid-template-columns:1fr 1fr 1fr}.rq-go{align-self:flex-start}}
/* admin */
.arq-intro{color:#6B6560;margin:0 0 12px;max-width:60ch}
.arq-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.arq-pills button{min-height:40px;padding:6px 14px;border-radius:999px;border:1.5px solid #ECE4DE;background:#fff;font:600 14px 'DM Sans',system-ui,sans-serif;cursor:pointer}
.arq-pills button[aria-pressed=true]{background:#FCC9FF;border-color:#242220}
.arq-list,.arq-matches{list-style:none;margin:0;padding:0;border-top:1px solid #ECE4DE}
.arq-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;width:100%;padding:12px 4px;border:0;border-bottom:1px solid #ECE4DE;background:none;text-align:left;font:inherit;color:#242220;cursor:pointer;min-height:56px}
.arq-row:hover{background:#FFFCF8}
.arq-who{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 220px}
.arq-who span{font-size:14px;color:#6B6560}
.arq-side{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.arq-paid{font-size:14px;font-weight:600}
.arq-tag{display:inline-block;padding:1px 8px;border-radius:999px;background:#FCC9FF;font-size:12px;font-weight:700;color:#242220}
.arq-counts{display:flex;flex-wrap:wrap;gap:6px;font-size:12px}
.arq-counts span{padding:2px 8px;border-radius:999px;background:#F3ECE6}
.arq-counts .is-yes{background:#E8F4EC;color:#1d5b33;font-weight:700}
.arq-back{min-height:40px;border:0;background:none;font:700 14px 'DM Sans',system-ui,sans-serif;cursor:pointer;padding:0;margin-bottom:6px}
.arq-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px 14px;margin:0 0 10px}
.arq-facts dt{font-size:12px;color:#6B6560}
.arq-facts dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.arq-details{padding:10px 12px;border-left:3px solid #FCC9FF;background:#fff;margin:0 0 10px;overflow-wrap:anywhere}
.arq-tools,.arq-status-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.arq-tools button,.arq-status-row button,.arq-copy{min-height:40px;padding:0 14px;border-radius:999px;border:1.5px solid #242220;background:#fff;font:600 14px 'DM Sans',system-ui,sans-serif;cursor:pointer}
.arq-tools a{font-weight:700;color:#242220}
.arq-status-row input{flex:1 1 200px;min-height:40px;font:inherit;font-size:16px;padding:6px 10px;border:1.5px solid #b3a59f;border-radius:10px}
.arq-msg{margin:4px 0;font-size:14px;min-height:1.2em}
.arq-match{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;padding:12px 0;border-bottom:1px solid #ECE4DE}
.arq-m-who{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 220px}
.arq-m-who>span{font-size:14px;color:#6B6560}
.arq-m-who a{color:#242220;font-weight:600}
.arq-reasons{display:flex;flex-wrap:wrap;gap:4px}
.arq-reasons span{padding:1px 8px;border-radius:999px;background:#F3ECE6;font-size:12px;color:#3D3936}
.arq-state{font-size:14px;color:#3D3936;max-width:340px}
.arq-state.is-yes b{color:#1d5b33}
.arq-state.is-no{color:#6B6560}
.arq-state p{margin:4px 0 0;font-style:italic;overflow-wrap:anywhere}
.arq-link{border:0;background:none;text-decoration:underline;font:inherit;cursor:pointer;min-height:32px}
.arq-acts{display:flex;gap:8px;align-items:center}
.arq-dm{min-height:44px;display:inline-flex;align-items:center;gap:8px;padding:0 18px;border-radius:999px;border:1.5px solid #242220;background:#FCC9FF;color:#242220;font:700 15px 'DM Sans',system-ui,sans-serif;cursor:pointer}
.arq-empty{color:#6B6560}
.arq-toast{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:3000;width:min(560px,calc(100% - 24px));display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-radius:14px;background:#242220;color:#fff;font-size:15px}
.arq-toast[hidden]{display:none}
.arq-toast button{min-height:40px;padding:0 14px;border-radius:999px;border:1.5px solid #FCC9FF;background:transparent;color:#FCC9FF;font-weight:700;cursor:pointer}
.rqt{margin:0 0 18px;padding:14px;border:1px solid #ECE4DE;border-radius:16px;background:#fff}
.rqt-h{margin:0 0 4px;font-size:17px}
.rqt-sub{margin:0 0 10px;font-size:14px;color:#6B6560}
.rqt-box{border-top:1px solid #ECE4DE;padding:8px 0}
.rqt-box summary{min-height:44px;display:flex;align-items:center;font-weight:700;cursor:pointer}
.rqt-l{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px;margin:8px 0}
.rqt-l input,.rqt-l textarea{font:inherit;font-size:16px;padding:10px 12px;border:1.5px solid #b3a59f;border-radius:12px;width:100%;box-sizing:border-box}
.rqt-ph{font-size:12px;color:#6B6560;line-height:1.8}
.rqt-ph code{background:#F3ECE6;padding:1px 6px;border-radius:6px}
.rqt-prev-h{margin:8px 0 4px;font-size:13px;color:#6B6560}
.rqt-prev{background:#efe9f6;border-radius:14px;padding:10px 12px;margin-bottom:10px}
.rqt-prev-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}
.rqt-prev-subj{margin:0 0 6px}
.rqt-unknown{margin:6px 0 0;color:#8a1c14;font-size:13px;font-weight:600}
.rqt-msg{margin-left:10px;font-size:14px}

/* ===== §57 Photos & tags: "No photo for a hairstyle they offer" (photo-gaps.js) ======================= */
.pgaps{margin:10px 0 14px}
.pgaps-toggle{min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid #242220;background:#fff;font:700 14px 'DM Sans',system-ui,sans-serif;cursor:pointer}
.pgaps-toggle[aria-expanded=true]{background:#FCC9FF}
.pgaps-body{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.pgaps-note{margin:0 0 6px;font-size:14px;color:#5a5350}
.pgaps-group{border:1px solid #ECE4DE;border-radius:14px;background:#fff;padding:0 12px}
.pgaps-group summary{min-height:44px;display:flex;align-items:center;gap:6px;cursor:pointer;font-size:15px}
.pgaps-loose{color:#6B6560;font-size:13px}
.pgaps-group ul{list-style:none;margin:0 0 10px;padding:0}
.pgaps-open{width:100%;min-height:44px;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 4px;border:0;border-top:1px solid #F3ECE6;background:none;font:inherit;color:#242220;text-align:left;cursor:pointer}
.pgaps-open:hover{background:#FFFCF8}
.pgaps-count{flex:none;font-size:13px;font-weight:700;padding:2px 10px;border-radius:999px;background:#FFF3C4;color:#5a4300}
/* §57 the hairstyle a search set, shown under the search box (on phones the filter sits inside "Filters") */
.ss-chip-row{margin:8px 0 0}
.ss-chip{display:inline-flex;align-items:center;gap:6px;padding:0 4px 0 14px;min-height:40px;border-radius:999px;background:#FCC9FF;box-shadow:inset 0 0 0 1.5px #242220;font-size:14px;color:#242220}
.ss-chip button{width:36px;height:36px;border:0;border-radius:999px;background:transparent;font-size:14px;cursor:pointer;color:#242220}
.ss-chip button:focus-visible{outline:2px solid #242220;outline-offset:1px}

/* ===== §58 crop control: the 4:5 card frame everywhere, upload guidance, Thumbnails ========================= */
/* the card photo is 4:5 at every width (it was 1.8:1 on desktop, which kept under a third of a phone portrait) */
#cards .card:not(.is-pink-pick) .cardpic{aspect-ratio:4/5!important;height:auto!important;min-height:0!important;position:relative;overflow:hidden}
#cards .card:not(.is-pink-pick) .cardpic>img:not(.card-logo){position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bu-warn{margin:0;font-size:12.5px;line-height:1.4;color:#8a1c14;font-weight:600;background:#FFF3C4;border-radius:8px;padding:6px 8px}
.fx-actions .fx-find{border-color:#242220;background:#FCC9FF}
/* Thumbnails (admin) */
.thumbs{margin:0 0 14px}
.thumbs-body{margin-top:10px}
.th-run{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:12px;border:1px solid #ECE4DE;border-radius:14px;background:#fff;margin-bottom:10px}
.th-go{min-height:46px;padding:0 20px;border:0;border-radius:999px;background:#242220;color:#fff;font:700 15px 'DM Sans',system-ui,sans-serif;cursor:pointer}
.th-go[disabled]{opacity:.5}
.th-tick{display:flex;align-items:center;gap:8px;font-size:14px;min-height:44px}
.th-progress{display:flex;align-items:center;gap:10px;flex:1 1 220px}
.th-progress progress{flex:1;height:10px;accent-color:#242220}
.th-result{flex-basis:100%;margin:0;font-weight:700}
.th-result:empty{display:none}
.th-filters{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}
.th-pills{display:flex;flex-wrap:wrap;gap:6px}
.th-pills button{min-height:38px;padding:0 12px;border-radius:999px;border:1.5px solid #ECE4DE;background:#fff;font:600 13px 'DM Sans',system-ui,sans-serif;cursor:pointer}
.th-pills button[aria-pressed=true]{background:#FCC9FF;border-color:#242220}
.th-search{display:flex;flex-wrap:wrap;gap:8px}
.th-search select,.th-search input{min-height:44px;font:inherit;font-size:16px;padding:6px 10px;border:1.5px solid #b3a59f;border-radius:10px;background:#fff;flex:1 1 180px;min-width:0}
.th-note{margin:0 0 8px;font-size:13px;color:#6B6560}
.th-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.th-tile{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid #ECE4DE;border-radius:16px;background:#fff;min-width:0}
.th-tile:focus-visible{outline:3px solid #242220;outline-offset:2px}
.th-frames{display:grid;grid-template-columns:4fr 5fr;gap:6px;align-items:start}
.th-f{position:relative;overflow:hidden;border-radius:10px;background:#F3ECE6;cursor:grab;touch-action:none;user-select:none}
.th-f:active{cursor:grabbing}
.th-45{aspect-ratio:4/5}
.th-11{aspect-ratio:1/1}
.th-f img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.th-cap{position:absolute;left:6px;bottom:6px;padding:1px 8px;border-radius:999px;background:rgba(0,0,0,.6);color:#fff;font-size:11px;font-weight:700}
.th-full{position:relative;width:64px;align-self:flex-start;border-radius:8px;overflow:hidden;background:#F3ECE6}
.th-full img{width:100%;display:block}
.th-box{position:absolute;border:2px solid #FCC9FF;box-shadow:0 0 0 1px #242220;border-radius:3px}
.th-dot{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:999px;background:#FCC9FF;box-shadow:0 0 0 1.5px #242220}
.th-name{margin:0;font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.th-name small{color:#6B6560}
.th-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px}
.th-chip{padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700}
.th-chip.is-cut{background:#FDE2DF;color:#8a1c14}
.th-chip.is-noface{background:#FFF3C4;color:#5a4300}
.th-chip.is-none{background:#F3ECE6;color:#3D3936}
.th-chip.is-auto{background:#E8F0FB;color:#1d3d6b}
.th-chip.is-hand{background:#E8F4EC;color:#1d5b33}
.th-acts{display:flex;gap:6px}
.th-acts button{min-height:36px;padding:0 12px;border-radius:999px;border:1.5px solid #242220;background:#fff;font:600 13px 'DM Sans',system-ui,sans-serif;cursor:pointer}
.th-acts button[disabled]{opacity:.4;cursor:default}
.th-more{margin:12px auto 0;display:block;min-height:44px;padding:0 18px;border-radius:999px;border:1.5px solid #242220;background:#fff;font-weight:700;cursor:pointer}
@media(min-width:768px){.th-filters{flex-direction:row;justify-content:space-between;align-items:center}.th-search{flex:0 1 460px}}
