:root{--brand-teal:#54a3b1;--brand-teal-dark:#106c7c;--brand-teal-deep:#0b4c58;--brand-teal-mid:#3f94a4;--brand-teal-soft:#e1fafe;--brand-pink:#ec058e;--brand-pink-dark:#c10474;--brand-pink-soft:#fbedf5;--ink:#1a1a26;--ink-2:#232331;--ink-3:#4a4a5a;--ink-soft:#6b6b7b;--ink-5:#9494a4;--line:#e6e8ee;--line-soft:#f0f2f6;--surface:#fff;--surface-2:#f8f9fb;--surface-3:#f1f3f7;--bg:#fafbfc;--ok:#12886a;--ok-soft:#e4f5f0;--warn:#b36b00;--warn-soft:#fdf1df;--err:#d6314a;--err-soft:#fdecef;--gradient-brand:linear-gradient(120deg, #54a3b1 0%, #7b7fc0 45%, #ec058e 100%);--gradient-brand-sm:linear-gradient(120deg, #54a3b1 0%, #ec058e 100%);--gradient-hero:linear-gradient(160deg, #0b4c58 0%, #106c7c 40%, #3f94a4 100%);--shadow-xs:0 1px 2px #1a1a260f;--shadow-sm:0 2px 6px #1a1a260f, 0 1px 2px #1a1a260a;--shadow:0 6px 18px #1a1a2612, 0 2px 6px #1a1a260a;--shadow-md:0 12px 28px #1a1a2617, 0 4px 10px #1a1a260d;--shadow-lg:0 24px 48px #1a1a261f, 0 8px 16px #1a1a260f;--shadow-brand:0 10px 26px #ec058e42;--shadow-teal:0 10px 26px #54a3b147;--radius-sm:10px;--radius:14px;--radius-lg:20px;--radius-xl:28px;--ease:cubic-bezier(.22,.61,.36,1);--dur-fast:.14s;--dur:.22s;--dur-slow:.38s;--font:"Inter Tight", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--header-h:68px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overflow-x:clip}body{background:var(--bg);color:var(--ink-2);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.55}h1,h2,h3,h4{letter-spacing:-.02em;color:var(--ink);margin:0;font-weight:700;line-height:1.15}h1{font-size:clamp(1.75rem,3.4vw,2.25rem)}h2{margin:32px 0 12px;font-size:1.375rem}h3{margin:12px 0 6px;font-size:1.0625rem}p{margin:8px 0}a{color:var(--brand-teal-dark);text-decoration:none}a:hover{color:var(--brand-pink)}img{max-width:100%}button{font:inherit;cursor:pointer;color:inherit}:focus-visible{outline:2px solid var(--brand-teal);outline-offset:2px;border-radius:6px}.container{max-width:1120px;margin:0 auto;padding:0 24px}main.container{min-height:60vh;padding-bottom:64px}.bleed{width:100vw;margin-inline:calc(50% - 50vw)}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spread{justify-content:space-between}.grid{gap:16px;display:grid}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.muted{color:var(--ink-soft);font-size:14px}.error{color:var(--err);font-size:14px}.success{color:var(--ok);font-size:14px}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--brand-teal-dark);font-size:12px;font-weight:700;display:inline-block}.topbar{z-index:100;-webkit-backdrop-filter:saturate(160%)blur(12px);border-bottom:1px solid var(--line);background:#ffffffe0;position:sticky;top:0}.topbar-inner{min-height:var(--header-h);justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{flex-shrink:0;align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-mark{background:var(--gradient-brand-sm);color:#fff;width:38px;height:38px;box-shadow:var(--shadow-teal);transition:transform var(--dur) var(--ease);border-radius:12px;place-items:center;font-size:15px;font-weight:800;display:grid}.brand:hover .brand-mark{transform:rotate(-8deg)scale(1.05)}.brand-name{letter-spacing:-.02em;color:var(--ink);white-space:nowrap;font-size:18px;font-weight:800}.brand-name:after{content:".";color:var(--brand-pink)}.nav{align-items:center;gap:10px;display:flex}.user-menu{position:relative}.user-menu-trigger{color:var(--ink-2);transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:10px;padding:5px 10px 5px 6px;font-size:14px;font-weight:600;display:inline-flex}.user-menu-trigger:hover,.user-menu-trigger[aria-expanded=true]{background:var(--surface-3);border-color:var(--line)}.avatar-fallback{background:var(--gradient-brand-sm);color:#fff;place-items:center;font-size:14px;font-weight:700;display:grid}.chev{color:var(--ink-5);transition:transform var(--dur-fast) var(--ease)}.chev-open{transform:rotate(180deg)}.menu-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:230px;box-shadow:var(--shadow-md);z-index:120;animation:menu-in var(--dur-fast) var(--ease);padding:6px;position:absolute;top:calc(100% + 8px);right:0}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.menu-header{border-bottom:1px solid var(--line-soft);border-radius:var(--radius-sm) var(--radius-sm) 0 0;flex-direction:column;gap:1px;margin-bottom:6px;padding:8px 12px 10px;text-decoration:none;display:flex}.menu-header:hover{background:var(--surface-2)}.menu-header:hover .menu-name{color:var(--brand-teal-deep)}.menu-name{color:var(--ink);font-weight:700}.menu-email{color:var(--ink-soft);text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.menu-item{text-align:left;border-radius:var(--radius-sm);width:100%;color:var(--ink-2);background:0 0;border:0;padding:9px 12px;font-size:14px;font-weight:500;text-decoration:none;display:block}.menu-item:hover{background:var(--brand-teal-soft);color:var(--brand-teal-deep)}.menu-sep{background:var(--line-soft);height:1px;margin:6px 0}.menu-item-danger{color:var(--err)}.menu-item-danger:hover{background:var(--err-soft);color:var(--err)}.btn{background:var(--brand-teal-dark);color:#fff;letter-spacing:-.01em;white-space:nowrap;min-height:42px;box-shadow:var(--shadow-teal);transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur) var(--ease), background-color var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:14.5px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--brand-teal-deep);color:#fff;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.btn-ghost{color:var(--brand-teal-dark);border-color:var(--line);box-shadow:none;background:0 0}.btn-ghost:hover{background:var(--brand-teal-soft);border-color:var(--brand-teal);color:var(--brand-teal-deep)}.btn-accent{background:var(--brand-pink);box-shadow:var(--shadow-brand)}.btn-accent:hover{background:var(--brand-pink-dark)}.btn-danger{background:var(--err);box-shadow:none}.btn-danger:hover{background:#b32038}.btn-sm{min-height:34px;padding:6px 14px;font-size:13.5px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px}a.card{color:inherit;transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);display:block}a.card:hover{color:inherit;box-shadow:var(--shadow-md);border-color:#54a3b166;transform:translateY(-3px)}.listing-card{flex-direction:column;padding:0;display:flex;overflow:hidden}.listing-media{aspect-ratio:16/10;background:linear-gradient(135deg, var(--brand-teal-soft), var(--brand-pink-soft));place-items:center;display:grid;position:relative;overflow:hidden}.listing-media img{object-fit:cover;width:100%;height:100%;transition:transform var(--dur-slow) var(--ease)}a.card:hover .listing-media img{transform:scale(1.05)}.listing-initial{color:var(--brand-teal-dark);opacity:.55;font-size:40px;font-weight:800}.listing-cat{color:var(--brand-teal-dark);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;position:absolute;top:12px;left:12px}.listing-body{flex-direction:column;flex:1;gap:8px;padding:18px 20px 20px;display:flex}.listing-title{letter-spacing:-.02em;color:var(--ink);font-size:17px;font-weight:700}.listing-loc{color:var(--ink-soft);align-items:center;gap:6px;font-size:13.5px;display:flex}.listing-desc{color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;display:-webkit-box;overflow:hidden}.listing-foot{border-top:1px solid var(--line-soft);color:var(--brand-teal-dark);justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:12px;font-size:13px;font-weight:600;display:flex}.hero-home{isolation:isolate;background:var(--gradient-hero);color:#fff;text-align:center;margin-bottom:48px;padding:72px 24px 64px;position:relative;overflow:hidden}.hero-home:before{content:"";z-index:-1;filter:blur(10px);background:radial-gradient(45% 55% at 78% 18%,#ec058e80 0%,#0000 60%),radial-gradient(40% 50% at 12% 78%,#54a3b18c 0%,#0000 62%);height:130%;position:absolute;inset:-30% -10% auto}.hero-home .eyebrow{text-transform:none;letter-spacing:-.01em;color:#ffffffeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff24;border:1px solid #fff3;border-radius:999px;padding:6px 14px;font-size:13px}.hero-home h1{color:#fff;letter-spacing:-.03em;max-width:17ch;margin:20px auto 0;font-size:clamp(2.125rem,5.2vw,3.5rem);font-weight:800;line-height:1.06}.hero-accent{background:linear-gradient(100deg,#ffd1ea 0%,#ff6ec0 45%,#ffb9e1 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-sub{color:#ffffffd1;max-width:52ch;margin:16px auto 0;font-size:16.5px;line-height:1.7}.hero-home .banner{max-width:560px;margin:0 auto 20px}.searchbar{background:var(--surface);max-width:640px;box-shadow:var(--shadow-lg);border-radius:999px;gap:8px;margin:36px auto 0;padding:8px;display:flex}.searchbar input{min-width:0;font:inherit;color:var(--ink-2);background:0 0;border:0;flex:1;padding:10px 18px;font-size:15px}.searchbar input:focus{outline:none}.searchbar select{background:var(--surface-3);font:inherit;color:var(--ink-3);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B6B7B' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;border:0;border-radius:999px;max-width:190px;padding:0 36px 0 16px;font-size:14px;font-weight:600}.searchbar select:focus{outline:none}.hero-stats{flex-wrap:wrap;justify-content:center;gap:40px;margin:44px 0 0;padding:0;display:flex}.hero-stat{text-align:center;flex-direction:column;display:flex}.hero-stat dd{letter-spacing:-.02em;color:#fff;order:1;margin:0 0 2px;font-size:2rem;font-weight:800}.hero-stat dt{letter-spacing:.08em;text-transform:uppercase;color:#fff9;order:2;font-size:12px;font-weight:600}.how{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}.how-step{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px 24px 24px;position:relative}.how-num{color:var(--line);font-size:2rem;font-weight:800;line-height:1;position:absolute;top:18px;right:24px}.how-icon{border-radius:var(--radius);background:var(--gradient-brand-sm);color:#fff;width:48px;height:48px;box-shadow:var(--shadow-teal);place-items:center;font-size:20px;display:grid}.how-step h3{margin:18px 0 6px;font-size:16.5px}.how-step p{color:var(--ink-soft);margin:0;font-size:14px}.cta-band{border-radius:var(--radius-xl);background:var(--gradient-brand);color:#fff;box-shadow:var(--shadow-lg);justify-content:space-between;align-items:center;gap:32px;margin:56px 0 24px;padding:44px 48px;display:flex}.cta-band h2{color:#fff;margin:0;font-size:1.5rem}.cta-band p{color:#ffffffdb;max-width:52ch;margin:10px 0 0}.cta-band .btn{color:var(--brand-pink-dark);box-shadow:var(--shadow-md);background:#fff;flex-shrink:0}.cta-band .btn:hover{color:var(--brand-pink);background:#fff}.hero{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background-image:linear-gradient(var(--surface), var(--surface)), var(--gradient-brand-sm);background-origin:border-box;background-clip:padding-box,border-box;border-top:3px solid #0000;margin:28px 0;padding:28px 28px 24px}.pill{background:var(--brand-teal-soft);color:var(--brand-teal-dark);letter-spacing:-.01em;white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:4px 12px;font-size:12px;font-weight:700;display:inline-flex}.pill-pink{background:var(--brand-pink-soft);color:var(--brand-pink-dark)}.banner{border-radius:var(--radius-sm);border:1px solid #0000;margin:12px 0;padding:12px 16px;font-size:14px}.banner-ok{background:var(--ok-soft);color:var(--ok);border-color:#12886a33}.banner-err{background:var(--err-soft);color:var(--err);border-color:#d6314a33}.list{flex-direction:column;gap:10px;display:flex}label{color:var(--ink-3);margin:12px 0 5px;font-size:13px;font-weight:600;display:block}input,select,textarea{font:inherit;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:44px;color:var(--ink-2);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:10px 14px}textarea{resize:vertical;min-height:110px}input::placeholder,textarea::placeholder{color:var(--ink-5)}input:focus,select:focus,textarea:focus{border-color:var(--brand-teal);outline:none;box-shadow:0 0 0 4px #54a3b129}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--brand-teal-dark)}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:200;background:#1a1a2673;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:90vh;padding:28px;overflow:auto}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;margin:16px 0 20px;display:flex}.tab{color:var(--ink-soft);transition:color var(--dur) var(--ease), background-color var(--dur) var(--ease);background:0 0;border:0;border-radius:8px 8px 0 0;padding:10px 16px;font-size:14.5px;font-weight:600;position:relative}.tab:hover{color:var(--ink);background:var(--surface-3)}.tab.active{color:var(--brand-teal-dark)}.tab.active:after{content:"";background:var(--gradient-brand-sm);border-radius:2px;height:2.5px;position:absolute;bottom:-1px;left:12px;right:12px}.slots{flex-wrap:wrap;gap:8px;display:flex}.slot{border:1px solid var(--line);background:var(--surface);color:var(--ink-3);transition:all var(--dur-fast) var(--ease);border-radius:999px;padding:8px 14px;font-size:13.5px;font-weight:600}.slot:hover{border-color:var(--brand-teal);color:var(--brand-teal-dark);background:var(--brand-teal-soft)}.slot.selected{background:var(--brand-teal-dark);border-color:var(--brand-teal-dark);color:#fff;box-shadow:var(--shadow-teal)}.gallery{scrollbar-width:thin;gap:10px;margin:16px 0 8px;padding:4px 0;display:flex;overflow-x:auto}.gallery img{border-radius:var(--radius);height:200px;box-shadow:var(--shadow-sm);flex-shrink:0}.gallery-admin{flex-wrap:wrap;gap:10px;display:flex}.gallery-admin img{border-radius:var(--radius-sm);height:96px}.thumb{object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0;width:56px;height:56px}.face{object-fit:cover;border:2px solid var(--surface);width:44px;height:44px;box-shadow:var(--shadow-xs);border-radius:999px}.avatar{object-fit:cover;border-radius:999px;width:32px;height:32px}.empty-state{text-align:center;background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:10px;padding:56px 24px;display:flex}.empty-icon{background:var(--brand-teal-soft);width:56px;height:56px;color:var(--brand-teal-dark);border-radius:999px;place-items:center;font-size:22px;display:grid}.site-footer{background:var(--brand-teal-deep);color:#ffffffbf;margin-top:64px}.site-footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:1120px;margin:0 auto;padding:28px 24px;font-size:13.5px;display:flex}.site-footer a{color:#ffffffe6;font-weight:600}.site-footer a:hover{color:#fff}.site-footer .brand-name{color:#fff;font-size:16px}.profile-page h1{margin:28px 0 12px}.profile-card{flex-wrap:wrap;align-items:flex-start;gap:32px;padding:24px;display:flex}.profile-avatar-col{flex-direction:column;flex:0 0 280px;align-items:center;gap:10px;display:flex}.profile-preview{object-fit:cover;border:3px solid var(--surface);width:160px;height:160px;box-shadow:var(--shadow-md);border-radius:999px}.profile-defaults{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.profile-default{transition:transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);background:0 0;border:2px solid #0000;border-radius:999px;padding:0;line-height:0}.profile-default img{object-fit:cover;border-radius:999px;width:44px;height:44px}.profile-default:hover{transform:scale(1.08)}.profile-default.selected{border-color:var(--brand-pink)}.profile-fields{flex:320px;min-width:0}.profile-fields .muted{margin-top:6px;display:block}.profile-actions{margin-top:20px}.appts-page h1{margin:28px 0 4px}.appt-list{gap:12px;display:grid}.appt-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.appt-main{flex-direction:column;gap:2px;min-width:0;display:flex}.appt-shop{color:var(--ink);font-size:15.5px;font-weight:700}.appt-shop:hover{color:var(--brand-pink)}.appt-when{color:var(--ink-3);font-size:14px}.appt-side{align-items:center;gap:12px;display:flex}.status-pill{background:var(--surface-3);color:var(--ink-3);border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:600;display:inline-block}.status-booked,.status-confirmed{background:var(--ok-soft);color:var(--ok)}.status-in_progress{background:var(--warn-soft);color:var(--warn)}.status-cancelled,.status-no_show{background:var(--err-soft);color:var(--err)}@media (width<=720px){:root{--header-h:60px}.container{padding:0 16px}.hero-home{padding:48px 16px 44px}.hero-stats{justify-content:space-around;gap:24px;width:100%}.hero-stat dd{font-size:1.5rem}.searchbar{border-radius:var(--radius-lg);flex-direction:column}.searchbar select{background-color:var(--surface-3);max-width:none;min-height:44px}.cta-band{flex-direction:column;align-items:flex-start;padding:28px 24px}.hide-sm{display:none}.hero{padding:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.btn:hover,a.card:hover{transform:none}}
