:root {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #2b2022;
  background: #fffaf7;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  --rose: #c9586c;
  --rose-dark: #a94356;
  --rose-soft: #f6dfe2;
  --blush: #fff1ed;
  --cream: #fffaf7;
  --ink: #2b2022;
  --muted: #71676a;
  --line: #eadfdb;
  --paper: #ffffff;
  --shadow: 0 14px 42px rgba(79, 45, 51, .08);
  --radius: 22px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: var(--cream); }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { border: 0; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid rgba(201,88,108,.28); outline-offset: 2px; }

.brand { display: inline-grid; line-height: .82; align-items: center; min-width: 112px; }
.brand-script { font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-size: 32px; color: var(--rose); letter-spacing: -2px; }
.brand-sub { font-size: 9px; letter-spacing: 3px; color: #8d656c; margin-left: 16px; margin-top: 4px; }
.brand.compact .brand-script { font-size: 28px; }

.button { display: inline-flex; gap: 10px; align-items: center; justify-content: center; min-height: 46px; padding: 0 20px; border-radius: 14px; background: var(--rose); color: white; font-weight: 750; cursor: pointer; transition: transform .18s ease, background .18s ease, box-shadow .18s ease; box-shadow: 0 8px 20px rgba(201,88,108,.18); }
.button:hover:not(:disabled) { background: var(--rose-dark); transform: translateY(-1px); }
.button.secondary { background: white; color: var(--rose-dark); border: 1px solid #e8bfc6; box-shadow: none; }
.button.small { min-height: 39px; padding: 0 15px; font-size: 13px; border-radius: 12px; }
.button:disabled { opacity: .48; cursor: not-allowed; box-shadow: none; }
.inline-button { width: fit-content; }
.text-link { font-size: 13px; font-weight: 700; color: var(--rose-dark); }
.icon-button { width: 38px; height: 38px; border-radius: 12px; background: #f8eeeb; cursor: pointer; color: var(--ink); }

.public-site { min-height: 100vh; }
.public-header { position: sticky; top: 0; z-index: 50; height: 76px; padding: 0 max(24px, calc((100vw - 1240px)/2)); display: grid; grid-template-columns: auto 1fr auto; gap: 34px; align-items: center; background: rgba(255,250,247,.92); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(234,223,219,.7); }
.public-header nav { display: flex; justify-content: center; gap: 32px; font-size: 13px; }
.public-header nav a { color: #51484a; }
.public-header nav a:hover { color: var(--rose); }
.header-actions { display: flex; align-items: center; gap: 10px; }
.brand-link { display: flex; }

.public-site main { max-width: 1240px; margin: 0 auto; }
.hero { margin: 28px 24px 0; min-height: 520px; border-radius: 34px; overflow: hidden; background: linear-gradient(125deg, #fff8f5 0%, #fbe9e4 60%, #f1d8d4 100%); box-shadow: var(--shadow); }
.minimal-hero { display: grid; grid-template-columns: 1.04fr .96fr; }
.hero-copy { padding: clamp(48px, 7vw, 88px); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.eyebrow { margin: 0 0 10px; color: #a76772; font-size: 11px; font-weight: 800; letter-spacing: 3px; }
.hero h1, .public-section h2, .page-title h1, .client-shell h1 { font-family: Georgia, 'Times New Roman', serif; font-weight: 500; letter-spacing: -1.7px; }
.hero h1 { font-size: clamp(46px, 5.1vw, 76px); line-height: .98; margin: 0; max-width: 690px; }
.hero-subtitle { font-size: 18px; line-height: 1.55; color: #655b5d; max-width: 600px; margin: 22px 0 30px; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.hero-rules { display: flex; gap: 36px; margin-top: 34px; }
.hero-rules > div { display: flex; align-items: center; gap: 12px; }
.hero-rules span:last-child { display: grid; }
.hero-rules small { color: var(--muted); }
.hero-rules strong { font-size: 14px; }
.mini-icon { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #e8bec5; border-radius: 12px; color: var(--rose); background: rgba(255,255,255,.58); font-size: 20px; }
.hero-art { position: relative; display: grid; place-items: center; overflow: hidden; min-height: 430px; }
.hero-orb { position: absolute; border-radius: 50%; filter: blur(2px); }
.hero-orb.one { width: 430px; height: 430px; background: radial-gradient(circle at 32% 25%, #fff 0%, #edc8c4 40%, #d79598 76%, #c66678 100%); }
.hero-orb.two { width: 260px; height: 260px; right: -50px; bottom: -35px; background: rgba(255,255,255,.45); backdrop-filter: blur(10px); }
.hero-mark { position: relative; z-index: 2; font-family: Georgia, serif; font-style: italic; font-size: 180px; color: rgba(255,255,255,.94); text-shadow: 0 8px 35px rgba(118,58,70,.12); }
.hero-art p { position: absolute; z-index: 3; bottom: 48px; font-size: 12px; letter-spacing: 4px; font-weight: 800; color: white; text-transform: uppercase; }

.public-section { padding: 80px 24px 0; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 24px; }
.section-heading h2, .location-section h2 { margin: 0; font-size: 38px; }
.section-heading > span { color: var(--muted); font-size: 13px; }
.service-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.service-card { border-radius: var(--radius); overflow: hidden; background: white; border: 1px solid var(--line); min-height: 230px; transition: transform .18s ease, box-shadow .18s ease; }
.service-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.service-image { height: 166px; background: linear-gradient(135deg,#fde9e5,#f7d8db); background-position: center; background-size: cover; display: grid; place-items: center; font-size: 34px; color: #bf7782; }
.service-meta { display: flex; align-items: end; justify-content: space-between; gap: 16px; padding: 16px 17px; }
.service-meta h3 { margin: 4px 0 0; font-size: 16px; }
.service-meta small { color: var(--muted); }
.service-meta > span { white-space: nowrap; font-weight: 800; color: var(--rose-dark); }
.promo-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.promo-card { border-radius: var(--radius); overflow: hidden; min-height: 260px; position: relative; padding: 26px; background: linear-gradient(135deg,#f8dadd,#efd0ca); display: flex; align-items: flex-end; }
.promo-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .38; }
.promo-card > div { position: relative; z-index: 2; }
.promo-card h3 { font-family: Georgia,serif; font-size: 30px; margin: 8px 0; }
.promo-card p { max-width: 340px; color: #574b4d; }
.gallery-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.gallery-grid figure { margin: 0; border-radius: 18px; overflow: hidden; background: white; border: 1px solid var(--line); }
.gallery-grid img { display: block; width: 100%; aspect-ratio: 1/1; object-fit: cover; }
.gallery-grid figcaption { padding: 10px 12px; font-size: 12px; color: var(--muted); }
.location-section { margin: 80px 24px 70px; padding: 38px; border-radius: 28px; background: #2d2527; color: white; display: grid; grid-template-columns: 1fr .82fr; gap: 50px; }
.location-section .eyebrow { color: #eebac2; }
.location-copy > p { color: #d9cdcf; max-width: 600px; line-height: 1.55; }
.contact-row { display: flex; flex-wrap: wrap; gap: 20px; margin: 20px 0; }
.contact-row a { color: #f7cbd1; }
.hours-card { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.13); border-radius: 20px; padding: 20px; }
.hours-card h3 { margin-top: 0; }
.hours-card > div { display: flex; justify-content: space-between; gap: 20px; padding: 8px 0; color: #ded5d7; border-bottom: 1px solid rgba(255,255,255,.08); font-size: 13px; }
.hours-card strong { color: white; }
.public-footer { max-width: 1192px; margin: 0 auto; padding: 22px 24px 40px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 24px; color: var(--muted); font-size: 12px; }
.public-footer button { background: transparent; color: var(--rose-dark); cursor: pointer; }
.public-footer .footer-links { display: flex; align-items: center; justify-content: flex-end; gap: 14px; flex-wrap: wrap; }
.public-footer .footer-links a { color: var(--rose-dark); text-decoration: none; font-weight: 700; }
.public-footer .footer-links a:hover { text-decoration: underline; }
.content-error, .info-banner { margin: 24px; padding: 14px 16px; border-radius: 12px; background: #fff1e7; color: #764d32; border: 1px solid #f2d2bd; }

.card { background: white; border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; box-shadow: 0 3px 14px rgba(86,52,59,.03); }
.card h2, .card h3 { margin-top: 0; }
.empty-state { min-height: 210px; border: 1px dashed #dbc9c5; border-radius: var(--radius); display: grid; place-items: center; align-content: center; text-align: center; padding: 30px; background: rgba(255,255,255,.55); }
.empty-state h3 { margin: 10px 0 4px; }
.empty-state p { margin: 0 0 18px; max-width: 480px; color: var(--muted); line-height: 1.5; }
.empty-icon { font-size: 32px; color: #c78993; }
.skeleton { min-height: 210px; border-radius: var(--radius); background: linear-gradient(90deg,#f5e9e5,#fff,#f5e9e5); background-size: 200% 100%; animation: shimmer 1.35s infinite; }
.promo-skeleton { min-height: 260px; }
@keyframes shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }

.center-page { min-height: 100vh; display: grid; place-items: center; align-content: center; gap: 16px; padding: 24px; background: var(--cream); }
.spinner { width: 34px; height: 34px; border-radius: 50%; border: 3px solid #f1d9dd; border-top-color: var(--rose); animation: spin .75s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.compact-card { max-width: 460px; text-align: center; }

.internal-shell { min-height: 100vh; display: grid; grid-template-columns: 250px 1fr; background: #f8f4f2; }
.internal-sidebar { position: sticky; top: 0; height: 100vh; padding: 24px 18px; background: #251e20; color: #f7eff0; display: flex; flex-direction: column; }
.sidebar-label { color: #9d888d; font-size: 9px; letter-spacing: 2.6px; font-weight: 800; margin: 40px 10px 13px; }
.internal-sidebar nav { display: grid; gap: 4px; }
.internal-sidebar nav a { padding: 11px 12px; border-radius: 10px; font-size: 13px; color: #cfbec2; }
.internal-sidebar nav a:hover, .internal-sidebar nav a.active { color: white; background: #3a2d31; }
.sidebar-bottom { margin-top: auto; display: grid; gap: 8px; }
.sidebar-bottom a, .sidebar-bottom button { text-align: left; padding: 9px 12px; color: #b9a6aa; background: transparent; cursor: pointer; font-size: 12px; }
.internal-main { min-width: 0; }
.internal-header { height: 70px; padding: 0 28px; background: rgba(255,255,255,.88); backdrop-filter: blur(14px); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 20; }
.internal-header > div { display: grid; }
.internal-header small { color: var(--muted); }
.role-pills { display: flex; gap: 6px; }
.role-pills em { font-style: normal; font-size: 10px; padding: 5px 8px; border-radius: 999px; background: #f5e5e8; color: #934455; text-transform: uppercase; }
.internal-content { padding: 32px; max-width: 1440px; margin: 0 auto; }
.page-title { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 26px; }
.page-title h1 { margin: 0; font-size: 40px; }
.page-title p:not(.eyebrow) { color: var(--muted); max-width: 760px; margin: 8px 0 0; line-height: 1.5; }
.admin-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.admin-grid .card p { color: var(--muted); line-height: 1.5; }
.admin-grid .card a { color: var(--rose-dark); font-weight: 800; font-size: 13px; }
.split-admin { display: grid; grid-template-columns: 280px minmax(0,1fr); gap: 16px; align-items: start; }
.grow { min-width: 0; }
.card-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.card-head > span { color: var(--muted); font-size: 12px; }
.inline-form { display: flex; gap: 8px; }
.inline-form .input { min-width: 0; }
.tag-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
.tag-list span { background: #f8eeee; color: #784851; border-radius: 999px; padding: 6px 9px; font-size: 11px; }
.admin-list { display: grid; }
.admin-row { display: grid; grid-template-columns: 54px minmax(0,1fr) auto auto; align-items: center; gap: 14px; padding: 13px 0; border-bottom: 1px solid #eee6e3; }
.admin-row:last-child { border-bottom: 0; }
.thumb { width: 54px; height: 54px; border-radius: 13px; background: #f7e8e8; display: grid; place-items: center; color: var(--rose); overflow: hidden; }
.thumb img { width: 100%; height: 100%; object-fit: cover; }
.row-main { display: grid; min-width: 0; }
.row-main small, .row-main span { color: var(--muted); font-size: 11px; }
.row-main strong { margin: 2px 0 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.row-actions { display: flex; gap: 4px; flex-wrap: wrap; justify-content: flex-end; }
.row-actions button { color: #7d5159; background: #fbf2f1; padding: 7px 9px; border-radius: 9px; font-size: 11px; cursor: pointer; }
.status-chip { display: inline-flex; width: fit-content; align-items: center; padding: 5px 8px; border-radius: 999px; font-size: 10px; font-weight: 800; text-transform: uppercase; background: #eee9e8; color: #645b5d; }
.status-chip.success { background: #e5f4ea; color: #37734c; }
.status-chip.warning { background: #fff0d8; color: #946429; }
.status-chip.danger { background: #fbe4e3; color: #9c403d; }
.field { display: grid; gap: 7px; align-content: start; }
.field-label { font-size: 12px; font-weight: 800; color: #574c4f; }
.field small { color: var(--muted); font-size: 10px; }
.input { width: 100%; min-height: 44px; border: 1px solid #ded2cf; background: white; color: var(--ink); border-radius: 11px; padding: 9px 11px; }
.textarea { resize: vertical; min-height: 82px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-grid .field:has(textarea), .form-grid .full { grid-column: 1/-1; }
.check-field { min-width: 0; border: 1px solid #e5d9d6; border-radius: 12px; padding: 10px 12px; display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.check-field legend { padding: 0 5px; font-weight: 800; font-size: 11px; color: #66575a; }
.check-field label { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; }
.check-field input { accent-color: var(--rose); }
.modal-backdrop { position: fixed; inset: 0; z-index: 100; padding: 24px; background: rgba(36,26,29,.46); backdrop-filter: blur(7px); display: grid; place-items: center; }
.modal { width: min(760px,100%); max-height: min(860px, calc(100vh - 48px)); overflow: auto; border-radius: 22px; background: white; padding: 22px; box-shadow: 0 32px 80px rgba(38,23,28,.26); }
.modal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.modal-head h2 { margin: 0; font-size: 22px; }
.modal-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 6px; }
.toast { position: fixed; z-index: 150; right: 22px; top: 88px; max-width: 380px; padding: 12px 15px; border-radius: 12px; background: #245c3a; color: white; box-shadow: var(--shadow); font-size: 13px; }
.toast.danger { background: #923e43; }
.media-admin-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.media-admin-card { background: white; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; }
.media-admin-card > img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.media-admin-card > div { padding: 15px; }
.media-admin-card h3 { margin: 10px 0 4px; }
.media-admin-card p { color: var(--muted); font-size: 12px; }
.business-form { display: grid; gap: 16px; }
.hours-grid { display: grid; gap: 8px; }
.hour-row { display: grid; grid-template-columns: 120px 70px 130px 24px 130px; gap: 9px; align-items: center; padding: 7px 0; border-bottom: 1px solid #f0e9e7; }
.hour-row label { font-size: 12px; }
.sticky-save { position: sticky; bottom: 18px; display: flex; justify-content: flex-end; pointer-events: none; }
.sticky-save .button { pointer-events: auto; }
.audit-table { padding: 0; overflow: hidden; }
.audit-head, .audit-row { display: grid; grid-template-columns: 190px 170px 1fr 130px; gap: 14px; align-items: center; padding: 12px 16px; }
.audit-head { background: #f5ece9; font-size: 11px; font-weight: 800; }
.audit-row { border-top: 1px solid #eee7e4; font-size: 12px; }
.muted { color: var(--muted)!important; }

.staff-placeholder { min-height: 100vh; background: #f8f4f2; }
.staff-placeholder header { height: 72px; padding: 0 30px; background: white; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.staff-placeholder header > div { display: flex; gap: 14px; align-items: center; }
.staff-placeholder header button { background: transparent; cursor: pointer; color: var(--rose-dark); }
.staff-placeholder main { max-width: 980px; margin: 0 auto; padding: 70px 24px; }
.staff-placeholder h1 { font: 500 48px/1.05 Georgia,serif; margin: 0 0 12px; }
.staff-placeholder main > p:not(.eyebrow) { color: var(--muted); line-height: 1.6; max-width: 750px; }

.client-shell { min-height: 100dvh; max-width: 520px; margin: 0 auto; background: #fffaf7; position: relative; padding-bottom: 86px; box-shadow: 0 0 70px rgba(86,50,58,.1); }
.client-shell header { height: 76px; display: flex; justify-content: space-between; align-items: center; padding: 0 20px; }
.client-shell main { padding: 44px 22px; }
.client-shell h1 { font-size: 50px; margin: 0; }
.client-lead { color: var(--muted); font-size: 16px; line-height: 1.6; }
.client-action-stack { display: grid; gap: 10px; margin: 28px 0; }
.client-preview-card { background: linear-gradient(145deg,#f7dfe0,#feece7); border-radius: 24px; padding: 24px; min-height: 200px; display: flex; flex-direction: column; justify-content: flex-end; }
.client-preview-card small { letter-spacing: 2px; color: #a15764; font-weight: 800; }
.client-preview-card h2 { font: 500 30px/1.06 Georgia,serif; margin: 8px 0; }
.client-preview-card p { color: #725b60; line-height: 1.5; }
.client-bottom-nav { position: fixed; bottom: 0; width: min(520px,100vw); height: 74px; background: rgba(255,255,255,.94); backdrop-filter: blur(16px); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(5,1fr); padding-bottom: env(safe-area-inset-bottom); }
.client-bottom-nav span { display: grid; place-items: center; align-content: center; gap: 3px; color: #8f8587; font-size: 19px; }
.client-bottom-nav span.active { color: var(--rose); }
.client-bottom-nav small { font-size: 9px; }

@media (max-width: 900px) {
  .public-header { grid-template-columns: auto 1fr; padding: 0 16px; height: 68px; }
  .public-header nav { display: none; }
  .header-actions { justify-content: end; }
  .header-actions .secondary, .header-actions .text-link { display: none; }
  .minimal-hero { grid-template-columns: 1fr; }
  .hero { margin: 14px 12px 0; min-height: auto; }
  .hero-copy { padding: 42px 28px 30px; }
  .hero h1 { font-size: clamp(44px,12vw,64px); }
  .hero-subtitle { font-size: 15px; }
  .hero-actions { display: grid; width: 100%; }
  .hero-rules { width: 100%; gap: 12px; display: grid; grid-template-columns: 1fr 1fr; }
  .hero-rules > div { background: rgba(255,255,255,.55); padding: 12px; border-radius: 14px; }
  .hero-art { min-height: 240px; }
  .hero-orb.one { width: 290px; height: 290px; }
  .hero-mark { font-size: 126px; }
  .hero-art p { bottom: 30px; }
  .public-section { padding: 58px 16px 0; }
  .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .promo-grid { grid-template-columns: 1fr; }
  .gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .location-section { margin: 58px 16px 44px; padding: 25px; grid-template-columns: 1fr; gap: 22px; }
  .public-footer { margin: 0 16px; padding-inline: 0; flex-wrap: wrap; }
  .internal-shell { grid-template-columns: 1fr; }
  .internal-sidebar { position: static; height: auto; padding: 14px 16px; flex-direction: row; align-items: center; overflow-x: auto; }
  .internal-sidebar .brand, .sidebar-label, .sidebar-bottom { display: none; }
  .internal-sidebar nav { display: flex; gap: 6px; }
  .internal-sidebar nav a { white-space: nowrap; }
  .internal-header { top: 0; height: 62px; padding: 0 16px; }
  .internal-content { padding: 20px 14px 40px; }
  .page-title { align-items: flex-start; flex-direction: column; }
  .page-title h1 { font-size: 34px; }
  .admin-grid, .media-admin-grid { grid-template-columns: 1fr; }
  .split-admin { grid-template-columns: 1fr; }
  .admin-row { grid-template-columns: 48px minmax(0,1fr) auto; }
  .admin-row .row-actions { grid-column: 2/-1; justify-content: flex-start; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid .field:has(textarea), .form-grid .full { grid-column: auto; }
  .hour-row { grid-template-columns: 1fr 70px; }
  .hour-row .input, .hour-row > span { grid-column: auto; }
  .audit-table { overflow-x: auto; }
  .audit-head, .audit-row { min-width: 760px; }
}

@media (max-width: 520px) {
  .header-actions .button { padding: 0 12px; font-size: 12px; }
  .hero-copy { padding: 36px 20px 24px; }
  .hero h1 { font-size: 44px; }
  .hero-rules strong { font-size: 12px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-image { height: 190px; }
  .section-heading h2, .location-section h2 { font-size: 32px; }
}

@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto!important; transition: none!important; animation-duration: .001ms!important; animation-iteration-count: 1!important; } }
.role-editor { display: grid; gap: 14px; }
.role-checkboxes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.role-checkboxes label { display: flex; gap: 9px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 12px; text-transform: capitalize; }
.role-checkboxes label.disabled { opacity: .45; }
.role-checkboxes input { accent-color: var(--rose); }

/* ---------- Stage 2 client app / booking / queue ---------- */
.client-app-shell { min-height:100dvh; width:min(560px,100%); margin:0 auto; background:#fffaf8; box-shadow:0 0 70px rgba(86,50,58,.10); padding-bottom:86px; position:relative; }
.client-app-header { height:72px; padding:0 18px; display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:20; background:rgba(255,250,248,.92); backdrop-filter:blur(18px); border-bottom:1px solid rgba(226,214,211,.8); }
.client-head-right { display:flex; align-items:center; gap:12px; font-size:12px; color:var(--muted); }
.client-head-right button { background:none; color:var(--rose-dark); cursor:pointer; font-weight:700; }
.client-app-main { padding:24px 18px 28px; }
.client-page { display:grid; gap:18px; }
.client-page h1 { margin:0; font:500 clamp(36px,10vw,52px)/1.02 Georgia,serif; letter-spacing:-.03em; }
.client-page h2 { margin:0 0 8px; font:500 26px/1.1 Georgia,serif; }
.client-page > section > p:not(.eyebrow) { color:var(--muted); line-height:1.55; }
.client-greeting { padding:14px 4px 0; }
.client-home-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.client-priority-card { border-color:#ecd3d3; background:linear-gradient(145deg,#fff,#fff5f4); }
.client-priority-card.called, .card.called { background:linear-gradient(145deg,#fff4e9,#fff); border-color:#f0d6b9; }
.queue-countdown { display:block; font-size:42px; letter-spacing:.04em; font-variant-numeric:tabular-nums; margin:12px 0; }
.client-bottom-nav { left:50%; transform:translateX(-50%); z-index:40; }
.client-bottom-nav a { text-decoration:none; display:grid; place-items:center; align-content:center; gap:3px; color:#8f8587; font-size:19px; }
.client-bottom-nav a.active { color:var(--rose); font-weight:700; }
.client-bottom-nav a small { font-size:9px; }
.card-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.button-row { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:12px; }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.service-check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.service-check { display:grid; grid-template-columns:auto 1fr; column-gap:9px; row-gap:3px; padding:13px; border:1px solid var(--line); border-radius:14px; cursor:pointer; background:white; }
.service-check input { grid-row:1/3; accent-color:var(--rose); margin-top:3px; }
.service-check strong { font-size:13px; }
.service-check small { font-size:10px; color:var(--muted); }
.service-check.selected { border-color:#cb717e; box-shadow:0 0 0 2px rgba(203,113,126,.12); background:#fff8f8; }
.slot-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:14px 0; }
.slot { border:1px solid var(--line); border-radius:12px; background:#fff; padding:12px; cursor:pointer; display:grid; gap:2px; text-align:left; }
.slot small { color:var(--muted); font-size:9px; }
.slot.selected { background:#fbe5e5; border-color:var(--rose); }
.notice-card { background:#fff7ef; border-color:#f1d8c1; }
.client-list { display:grid; gap:10px; }
.profile-line { display:flex; justify-content:space-between; gap:20px; padding:10px 0; border-bottom:1px solid #f1e9e7; font-size:12px; }
.profile-line:last-child { border-bottom:0; }
.profile-line span { color:var(--muted); }
.reward-hero { display:flex; align-items:flex-end; gap:10px; }
.reward-hero strong { font:500 56px/1 Georgia,serif; }
.placeholder-calendar { display:grid; grid-template-columns:repeat(7,1fr); gap:5px; margin:18px 0; }
.placeholder-calendar span { background:#f7efec; border-radius:9px; padding:9px 2px; font-size:9px; text-align:center; }
.success-note { color:#296141; background:#eaf6ee; padding:10px 12px; border-radius:10px; }
.form-error { color:#9b3d42; background:#fff0ef; padding:10px 12px; border-radius:10px; font-size:12px; }

.walkin-public { min-height:100dvh; background:#fff8f5; padding:24px; }
.walkin-public > .brand { margin-bottom:28px; }
.walkin-public > header { max-width:760px; margin:0 auto 22px; display:flex; justify-content:space-between; align-items:center; }
.walkin-public > header button { background:none; color:var(--rose-dark); cursor:pointer; }
.walkin-public > main, .walkin-public > .card { max-width:760px; margin:0 auto; }
.walkin-public main { display:grid; gap:18px; }
.walkin-public h1 { font:500 48px/1.05 Georgia,serif; margin:0; }

.page-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px; }
.page-heading h1 { margin:0; font:500 38px/1.05 Georgia,serif; }
.page-heading p:not(.eyebrow) { color:var(--muted); max-width:760px; }
.admin-section { margin-top:28px; }
.compact-list { display:grid; border:1px solid var(--line); background:white; border-radius:16px; overflow:hidden; }
.compact-row { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:12px 14px; border-bottom:1px solid #f0e8e6; }
.compact-row:last-child { border-bottom:0; }
.compact-row > div:first-child { display:grid; gap:3px; }
.compact-row small { color:var(--muted); }
.queue-admin-tools { display:grid; grid-template-columns:minmax(260px,.8fr) 1.2fr; gap:22px; align-items:start; }
.queue-admin-tools > div { display:grid; gap:10px; }
.qr-image { width:min(280px,100%); border-radius:16px; border:1px solid var(--line); background:white; }
.break-all { overflow-wrap:anywhere; color:var(--muted); }
.queue-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:20px; }
.queue-columns > section { min-width:0; }
.queue-columns > section > h3 { text-transform:capitalize; font-size:13px; color:#66585b; }
.queue-entry-card { padding:14px; margin-bottom:9px; }
.staff-current { background:linear-gradient(145deg,#f3fff7,#fff); border-color:#cde4d4; }
.schedule-grid { display:grid; gap:6px; margin:16px 0; }
.schedule-row { display:grid; grid-template-columns:56px 86px repeat(4,minmax(100px,1fr)); gap:8px; align-items:center; }
.schedule-row label { display:flex; gap:5px; font-size:11px; align-items:center; }

@media (max-width:900px){
  .queue-columns { grid-template-columns:1fr 1fr; }
  .queue-admin-tools { grid-template-columns:1fr; }
  .schedule-row { grid-template-columns:52px 80px 1fr 1fr; }
  .schedule-row .input:nth-of-type(3), .schedule-row .input:nth-of-type(4) { grid-column:auto; }
}
@media (max-width:600px){
  .client-home-grid,.two-col,.service-check-grid { grid-template-columns:1fr; }
  .slot-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .queue-columns { grid-template-columns:1fr; }
  .page-heading { flex-direction:column; }
  .schedule-row { grid-template-columns:50px 78px 1fr 1fr; padding-bottom:8px; border-bottom:1px solid var(--line); }
  .client-app-main { padding-inline:14px; }
  .walkin-public { padding:18px 14px; }
}

.notice-text { margin: .65rem 0; padding: .75rem .85rem; border-radius: .9rem; background: rgba(184,91,108,.08); color: var(--ink); font-size: .92rem; line-height: 1.45; }

/* Stage 3 verified operations */
.ops-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:20px;align-items:start}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}.camera-capture{display:grid;gap:10px;margin:12px 0 20px}.camera-frame{position:relative;overflow:hidden;border-radius:18px;background:#151515;aspect-ratio:4/3;border:1px solid var(--line)}.camera-frame.selfie{aspect-ratio:3/4;max-width:380px}.camera-frame video{width:100%;height:100%;object-fit:cover;display:block}.camera-frame.selfie video{transform:scaleX(-1)}.camera-guide{position:absolute;inset:auto 12px 12px;background:rgba(0,0,0,.65);color:white;padding:9px 12px;border-radius:10px;text-align:center;font-size:.85rem}.notice.success{border-color:#a7d7ba;background:#f2fbf5}.notice.error{border-color:#efb1b1;background:#fff5f5;color:#8a3131}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:10px 0 16px}.check{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);border-radius:11px;background:white}.check input{width:auto!important}.pos-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:24px}.catalog-card{border:1px solid var(--line);background:white;border-radius:15px;padding:16px;text-align:left;display:grid;gap:7px;cursor:pointer}.catalog-card:hover{border-color:var(--rose);box-shadow:0 8px 24px rgba(90,50,50,.08)}.catalog-card:disabled{opacity:.45;cursor:not-allowed}.catalog-card span{font-size:.84rem;color:var(--muted)}.cart{position:sticky;top:88px}.cart-total{display:flex;justify-content:space-between;padding:15px 0;border-top:1px solid var(--line);font-size:1.15rem}.review-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:20px}.review-item{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:14px 4px;display:flex;justify-content:space-between;text-align:left;gap:10px;cursor:pointer}.review-item.active{background:var(--blush);padding-inline:12px;border-radius:12px}.review-item small{display:block;color:var(--muted);margin-top:4px}.evidence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.evidence-grid figure{margin:0}.evidence-grid img{width:100%;aspect-ratio:4/3;object-fit:contain;background:#f6f2ef;border-radius:14px;border:1px solid var(--line)}.evidence-grid figcaption{font-size:.8rem;color:var(--muted);margin-top:5px}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px}.field-card{border:1px solid var(--line);border-radius:12px;padding:11px;display:grid;gap:3px}.field-card small,.field-card em{color:var(--muted);font-style:normal}.summary-box{display:flex;gap:18px;justify-content:flex-end;padding:16px;margin-top:14px;background:var(--blush);border-radius:13px}.metric{background:white;border:1px solid var(--line);border-radius:16px;padding:12px 18px;display:grid}.metric span{color:var(--muted);font-size:.8rem}.metric strong{font-size:1.35rem}.negative{color:#bd3f4d!important}.table-wrap{overflow:auto}.table-wrap table{min-width:760px}.list-row small{display:block;color:var(--muted);margin-top:3px}.list-row>span{white-space:nowrap}.empty-state{text-align:center;padding:60px 30px}.danger{background:#fff;border:1px solid #d66875;color:#a72939;border-radius:10px;padding:10px 15px}.link-button{border:0;background:transparent;color:var(--rose);cursor:pointer}.action-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media(max-width:900px){.ops-grid,.pos-layout,.review-layout{grid-template-columns:1fr}.cart{position:static}.evidence-grid{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr}.two-col{grid-template-columns:1fr}}

/* Stage 4 relationship + intelligence UI */
.care-progress-card{overflow:hidden}.care-progress{height:8px;border-radius:999px;background:var(--surface-soft,#f6eded);overflow:hidden;margin-top:14px}.care-progress i{display:block;height:100%;background:var(--accent,#ca5e6d);border-radius:inherit;transition:width .2s ease}.care-task-list{display:grid;gap:10px}.care-task{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;text-align:left;padding:14px 16px;border:1px solid var(--border,#eadede);border-radius:16px;background:#fff;color:inherit}.care-task span{font-size:1.4rem}.care-task small{color:var(--muted,#746d6d)}.care-task.done{background:#f6fbf7;border-color:#cee4d3}.care-task.done strong{text-decoration:line-through;color:#667168}.reward-wallet{background:linear-gradient(135deg,#fff,#fbf1f2)}.reward-grid,.visit-grid,.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.visit-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px;margin-bottom:12px}.metric-big{font-size:2rem;font-weight:750;line-height:1.1;margin:.45rem 0}.metric-big small{font-size:.9rem;font-weight:500;color:var(--muted,#746d6d)}.section-mini-title{font-size:1.05rem;margin:18px 0 10px}.positive{color:#26804a}.negative{color:#b33a45}.profile-line span small{display:block;color:var(--muted,#746d6d);font-weight:400;margin-top:2px}
@media(max-width:680px){.care-task{grid-template-columns:auto 1fr}.care-task small{grid-column:2}.analytics-grid,.reward-grid,.visit-grid{grid-template-columns:1fr}}

/* RC6 — refined responsive client booking experience */
.client-app-shell {
  min-height: 100dvh;
  width: 100%;
  max-width: none;
  margin: 0;
  background:
    radial-gradient(circle at 12% 4%, rgba(221,149,159,.11), transparent 30%),
    radial-gradient(circle at 92% 12%, rgba(240,198,187,.16), transparent 26%),
    #fffaf8;
  box-shadow: none;
  padding-bottom: 110px;
}
.client-app-header {
  height: 82px;
  padding: 0 24px;
  position: sticky;
  top: 0;
  z-index: 30;
  background: rgba(255,250,248,.88);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(226,214,211,.72);
}
.client-app-header-inner {
  width: min(1120px,100%);
  height: 100%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.client-brand-link { display:flex; align-items:center; }
.client-head-right { display:flex; align-items:center; gap:14px; font-size:13px; color:var(--muted); }
.client-greeting { padding-right: 2px; }
.client-signout { background:transparent; color:var(--rose-dark); cursor:pointer; font-weight:750; padding:9px 11px; border-radius:10px; }
.client-signout:hover { background:rgba(201,88,108,.07); }
.client-app-main { width:min(1120px,100%); margin:0 auto; padding:42px 24px 48px; }
.client-page { gap:24px; }
.client-page h1 { font:500 clamp(42px,5vw,68px)/.98 Georgia,serif; letter-spacing:-.045em; }
.client-page h2 { font:500 28px/1.05 Georgia,serif; letter-spacing:-.025em; }

.client-bottom-nav {
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  width:min(610px,calc(100vw - 36px));
  height:72px;
  border:1px solid rgba(226,214,211,.95);
  border-radius:23px;
  background:rgba(255,255,255,.93);
  box-shadow:0 20px 55px rgba(76,42,50,.13);
  padding:7px;
  padding-bottom:calc(7px + env(safe-area-inset-bottom));
  overflow:hidden;
}
.client-bottom-nav a {
  min-width:0;
  border-radius:16px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  color:#94898b;
  font-size:0;
  transition:background .18s ease,color .18s ease,transform .18s ease;
}
.client-bottom-nav a:hover { background:#fff6f4; color:#6f5c60; }
.client-bottom-nav a.active { color:var(--rose-dark); background:#fff0f1; font-weight:800; }
.client-bottom-nav a svg { display:block; }
.client-bottom-nav a small { font-size:10px; line-height:1; font-weight:700; }

.book-page { gap:30px; }
.book-hero {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:42px;
  padding:8px 4px 12px;
}
.book-hero > div:first-child { max-width:720px; }
.book-hero h1 { margin:0; max-width:680px; }
.book-hero > div:first-child > p:not(.eyebrow) { color:var(--muted); line-height:1.6; max-width:650px; font-size:15px; margin:16px 0 0; }
.booking-steps { display:flex; align-items:center; gap:8px; padding-bottom:8px; }
.booking-steps span { display:grid; justify-items:center; gap:6px; color:#a09395; min-width:54px; }
.booking-steps span b { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; border:1px solid #dfd1ce; background:white; font-size:12px; }
.booking-steps span small { font-size:9px; font-weight:800; letter-spacing:.04em; }
.booking-steps span.active,.booking-steps span.done { color:var(--rose-dark); }
.booking-steps span.active b { background:var(--rose); color:white; border-color:var(--rose); box-shadow:0 7px 18px rgba(201,88,108,.18); }
.booking-steps span.done b { background:#fff0f2; border-color:#e6aab4; }
.booking-steps i { width:34px; height:1px; background:#ded1cf; margin-top:-18px; }

.book-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(330px,.72fr); gap:22px; align-items:start; }
.book-primary,.book-sidebar { display:grid; gap:18px; }
.book-sidebar { position:sticky; top:106px; }
.book-section-card { border-radius:26px; padding:24px; box-shadow:0 14px 40px rgba(76,42,50,.055); }
.book-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:20px; }
.book-card-heading > div:first-child { display:flex; gap:12px; align-items:flex-start; }
.book-card-heading > div:first-child > span { width:30px; height:30px; flex:0 0 auto; display:grid; place-items:center; border-radius:10px; background:#fff0f1; color:var(--rose-dark); font-size:10px; font-weight:900; }
.book-card-heading small { display:block; color:#a66d77; font-size:9px; letter-spacing:.16em; font-weight:850; margin-bottom:4px; }
.book-card-heading h2 { margin:0; }
.book-card-heading > strong { font-size:11px; color:var(--rose-dark); padding:7px 10px; background:#fff2f3; border-radius:999px; }

.service-check-grid.book-services { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.book-services .service-check {
  position:relative;
  grid-template-columns:1fr auto;
  align-items:start;
  min-height:104px;
  padding:17px 17px 15px;
  border-radius:18px;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease;
}
.book-services .service-check:hover { transform:translateY(-1px); border-color:#deb7bd; box-shadow:0 10px 26px rgba(75,42,50,.06); }
.book-services .service-check input { position:absolute; opacity:0; pointer-events:none; }
.service-check-copy { display:grid; gap:6px; padding-right:18px; }
.book-services .service-check strong { font-size:14px; line-height:1.3; color:#3e3033; }
.book-services .service-check small { font-size:11px; line-height:1.35; }
.book-services .service-check > b { font-size:13px; color:var(--rose-dark); white-space:nowrap; }
.service-check-mark { position:absolute; right:14px; bottom:13px; width:24px; height:24px; border-radius:50%; display:grid; place-items:center; background:#eee7e5; color:white; font-size:12px; transform:scale(.8); opacity:.35; transition:.18s ease; }
.book-services .service-check.selected { border-color:#d7818f; background:linear-gradient(145deg,#fff9f9,#fff2f3); box-shadow:0 0 0 2px rgba(201,88,108,.08); }
.book-services .service-check.selected .service-check-mark { background:var(--rose); transform:scale(1); opacity:1; }

.notification-strip {
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:12px;
  align-items:center;
  padding:15px 16px;
  border:1px solid #ead6cf;
  border-radius:19px;
  background:rgba(255,248,241,.88);
  box-shadow:0 8px 28px rgba(82,49,46,.035);
}
.notification-icon { width:36px; height:36px; display:grid; place-items:center; border-radius:12px; background:#fff0e5; color:#a66a45; }
.notification-icon span { font-weight:900; }
.notification-strip strong { display:block; font-size:13px; color:#4a3739; }
.notification-strip p { margin:3px 0 0; color:var(--muted); font-size:11px; line-height:1.4; }
.notification-strip small { display:block; margin-top:5px; color:#826a6d; font-size:10px; line-height:1.35; }
.notification-strip .notification-note { color:#9a6446; }
.notification-strip .button { min-height:38px; padding:0 13px; font-size:11px; box-shadow:none; }

.booking-details-card { display:grid; gap:14px; }
.booking-details-card .book-card-heading { margin-bottom:2px; }
.booking-details-card .input { min-height:48px; border-radius:13px; background:#fffefd; }
.booking-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; padding:12px; border-radius:15px; background:#fbf5f3; border:1px solid #efe4e1; }
.booking-summary > div { display:grid; gap:4px; min-width:0; }
.booking-summary span { color:var(--muted); font-size:9px; }
.booking-summary strong { font-size:12px; color:#433437; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.book-primary-action { width:100%; min-height:50px; border-radius:15px; }
.booking-footnote { margin:0; text-align:center; color:var(--muted); font-size:10px; line-height:1.4; }
.book-error { margin:0; }

.book-empty { min-height:92px; display:flex; align-items:center; gap:14px; padding:18px; border:1px dashed #dfceca; border-radius:18px; background:#fffcfa; }
.book-empty > span { width:36px; height:36px; flex:0 0 auto; border-radius:50%; display:grid; place-items:center; background:#f8eeeb; color:#a86d77; font-size:16px; }
.book-empty > div { display:grid; gap:4px; }
.book-empty strong { font-size:13px; color:#493a3d; }
.book-empty small { color:var(--muted); font-size:11px; line-height:1.45; }
.book-empty.compact { min-height:78px; }

.availability-card .slot-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin:6px 0 18px; }
.availability-card .slot { min-height:66px; border-radius:14px; padding:12px; text-align:center; align-content:center; }
.availability-card .slot strong { font-size:13px; }
.availability-card .slot small { font-size:9px; }
.availability-card .slot.selected { background:#fff0f2; box-shadow:0 0 0 2px rgba(201,88,108,.08); }

.book-appointments { margin-top:8px; padding-top:28px; border-top:1px solid var(--line); }
.section-title-row { display:flex; justify-content:space-between; align-items:end; margin-bottom:14px; }
.section-title-row h2 { margin:0; }
.appointment-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.appointment-card { padding:16px 18px; border-radius:18px; box-shadow:none; }

@media (max-width: 920px) {
  .client-app-main { padding:32px 18px 42px; }
  .book-hero { grid-template-columns:1fr; gap:22px; }
  .booking-steps { justify-content:flex-start; }
  .book-layout { grid-template-columns:1fr; }
  .book-sidebar { position:static; }
  .notification-strip { order:2; }
  .booking-details-card { order:1; }
  .availability-card .slot-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width: 620px) {
  .client-app-shell { padding-bottom:94px; }
  .client-app-header { height:68px; padding:0 14px; }
  .client-app-header .brand-script { font-size:27px; }
  .client-app-header .brand-sub { font-size:8px; }
  .client-greeting { display:none; }
  .client-signout { font-size:11px; padding:8px 9px; }
  .client-app-main { padding:25px 14px 30px; }
  .client-page h1 { font-size:42px; }
  .client-page h2 { font-size:25px; }
  .book-page { gap:22px; }
  .book-hero { padding-inline:3px; }
  .book-hero > div:first-child > p:not(.eyebrow) { font-size:13px; margin-top:12px; }
  .booking-steps { width:100%; justify-content:space-between; gap:4px; }
  .booking-steps span { min-width:46px; }
  .booking-steps i { flex:1; width:auto; }
  .book-section-card { padding:18px; border-radius:21px; }
  .book-card-heading { margin-bottom:16px; }
  .service-check-grid.book-services { grid-template-columns:1fr; }
  .book-services .service-check { min-height:88px; }
  .notification-strip { grid-template-columns:auto 1fr; align-items:start; }
  .notification-strip .button { grid-column:2; width:max-content; }
  .booking-summary { grid-template-columns:1fr; gap:9px; }
  .booking-summary > div { grid-template-columns:1fr auto; align-items:center; }
  .availability-card .slot-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .appointment-grid { grid-template-columns:1fr; }
  .client-bottom-nav { bottom:0; width:100%; max-width:none; height:76px; border-radius:20px 20px 0 0; border-left:0; border-right:0; border-bottom:0; padding:7px 6px calc(7px + env(safe-area-inset-bottom)); box-shadow:0 -8px 28px rgba(76,42,50,.08); }
  .client-bottom-nav a { border-radius:13px; }
  .client-bottom-nav a small { font-size:9px; }
}

/* ========================================================================== */
/* RC9 — premium pink lifestyle mobile UI                                    */
/* Clean cards, soft shadows, pill chips, spacious white surfaces.            */
/* Applies only to authenticated client surfaces. Admin/public remain intact. */
/* ========================================================================== */
:root {
  --premium-pink:#ef5f91;
  --premium-pink-deep:#d94679;
  --premium-pink-strong:#c93469;
  --premium-pink-soft:#ffe4ee;
  --premium-pink-pale:#fff5f8;
  --premium-bg:#f7f7fb;
  --premium-surface:#ffffff;
  --premium-ink:#2f3148;
  --premium-muted:#8e90a3;
  --premium-line:#ececf3;
  --premium-shadow:0 12px 32px rgba(59,54,83,.08);
  --premium-shadow-hover:0 18px 42px rgba(59,54,83,.12);
  --premium-radius:24px;
  --premium-pill:999px;
}

body:has(.client-app-shell) {
  background:linear-gradient(135deg,#f4f5fb 0%,#fdf7fa 48%,#f3f5fb 100%);
}
.client-app-shell.glow-app-shell {
  min-height:100dvh;
  width:min(1180px,100%);
  max-width:1180px;
  margin:0 auto;
  padding-bottom:108px;
  background:#fbfbfd;
  color:var(--premium-ink);
  position:relative;
  box-shadow:0 28px 90px rgba(55,50,80,.10);
  overflow:clip;
}
.client-app-shell .card {
  background:var(--premium-surface);
  border:1px solid var(--premium-line);
  border-radius:var(--premium-radius);
  box-shadow:var(--premium-shadow);
}

/* Top bar */
.glow-topbar {
  position:sticky;
  top:0;
  z-index:45;
  height:82px;
  padding:0 30px;
  background:rgba(251,251,253,.92);
  border-bottom:1px solid rgba(236,236,243,.85);
  backdrop-filter:blur(18px) saturate(1.1);
}
.glow-topbar-inner {
  max-width:1080px;
  margin:0 auto;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.glow-topbar-copy { display:grid; gap:3px; }
.glow-topbar-copy small {
  color:var(--premium-pink);
  font-size:9px;
  line-height:1;
  font-weight:850;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.glow-topbar-copy strong {
  color:var(--premium-ink);
  font-size:18px;
  line-height:1.15;
  font-weight:800;
}
.glow-head-actions { display:flex; align-items:center; gap:10px; }
.glow-icon-button,.glow-avatar {
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:14px;
  border:1px solid var(--premium-line);
  background:white;
  color:var(--premium-pink-deep);
  box-shadow:0 6px 18px rgba(53,49,73,.06);
  transition:transform .18s ease,box-shadow .18s ease;
}
.glow-icon-button:hover,.glow-avatar:hover { transform:translateY(-1px); box-shadow:0 10px 24px rgba(53,49,73,.10); }
.glow-avatar {
  border-radius:50%;
  background:linear-gradient(145deg,#ff9cbc,#ee5e90);
  color:#fff;
  border:0;
  font-size:13px;
  font-weight:900;
}

.glow-main.client-app-main {
  max-width:1080px;
  margin:0 auto;
  padding:32px 30px 42px;
}
.client-page {
  color:var(--premium-ink);
  gap:22px;
}
.client-page h1,.client-page h2,.client-page h3,.client-app-shell h1 {
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  color:var(--premium-ink);
  letter-spacing:-.035em;
}
.client-page h1 { font-weight:850; }
.client-page h2,.client-page h3 { font-weight:800; }
.client-page .eyebrow,.glow-overline {
  color:var(--premium-pink-deep);
  font-size:9px;
  font-weight:900;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.client-page .button {
  min-height:46px;
  border-radius:16px;
  background:linear-gradient(135deg,var(--premium-pink),var(--premium-pink-deep));
  box-shadow:0 10px 22px rgba(217,70,121,.20);
  font-weight:800;
}
.client-page .button:hover:not(:disabled) {
  background:linear-gradient(135deg,#f56d9b,#d84075);
  box-shadow:0 14px 28px rgba(217,70,121,.24);
}
.client-page .button.secondary {
  background:#fff;
  color:var(--premium-pink-deep);
  border:1px solid #f0d9e2;
  box-shadow:none;
}
.client-page .input {
  min-height:48px;
  border:1px solid #e4e4ec;
  border-radius:15px;
  background:#fff;
  color:var(--premium-ink);
  padding-inline:14px;
}
.client-page .input:focus {
  border-color:#f0a0bc;
  box-shadow:0 0 0 4px rgba(239,95,145,.09);
}
.client-page .field-label { color:#4d4f68; }
.client-page .field small { color:var(--premium-muted); }
.client-page .status-chip {
  border-radius:var(--premium-pill);
  text-transform:none;
  letter-spacing:0;
  padding:6px 10px;
  font-size:9px;
}

/* Bottom navigation — clean equal tabs like a premium marketplace app */
.client-bottom-nav.glow-bottom-nav {
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  bottom:18px;
  z-index:60;
  width:min(760px,calc(100vw - 34px));
  height:76px;
  padding:8px 12px;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  align-items:stretch;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(232,232,240,.95);
  border-radius:26px;
  box-shadow:0 16px 42px rgba(52,49,73,.14);
  backdrop-filter:blur(18px);
}
.glow-bottom-nav a {
  min-width:0;
  display:grid;
  place-items:center;
  align-content:center;
  gap:5px;
  border-radius:18px;
  color:#a0a1af;
  transition:background .18s ease,color .18s ease,transform .18s ease;
}
.glow-bottom-nav a svg { width:19px; height:19px; }
.glow-bottom-nav a small { font-size:9px; line-height:1; font-weight:750; }
.glow-bottom-nav a:hover { color:var(--premium-pink-deep); background:#fff6f9; }
.glow-bottom-nav a.active {
  color:var(--premium-pink-deep);
  background:linear-gradient(180deg,#fff5f8,#ffedf3);
  font-weight:850;
}
.glow-bottom-nav a.active svg { stroke-width:2.2; }

/* Home */
.glow-home-page { display:grid; gap:24px; }
.glow-greeting-row {
  display:grid;
  grid-template-columns:1fr auto;
  gap:24px;
  align-items:center;
  padding:4px 2px 0;
}
.glow-greeting-row h1 {
  margin:5px 0 8px;
  font-size:clamp(34px,4.2vw,52px);
  line-height:1.02;
}
.glow-greeting-row p {
  margin:0;
  max-width:620px;
  color:var(--premium-muted);
  font-size:13px;
  line-height:1.55;
}
.glow-sparkle-art {
  width:78px;
  height:78px;
  display:grid;
  place-items:center;
  border-radius:24px;
  background:linear-gradient(145deg,#ffe2ec,#fff7fa);
  color:var(--premium-pink);
  border:1px solid #f8dfe8;
  box-shadow:var(--premium-shadow);
  transform:none;
}
.glow-sparkle-art svg { width:38px; height:38px; }

/* Main feature card: white editorial card with a pink visual panel */
.glow-feature-card {
  min-height:224px;
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(250px,.7fr);
  gap:22px;
  align-items:stretch;
  padding:0;
  overflow:hidden;
  border-radius:30px;
  background:#fff;
  color:var(--premium-ink);
  border:1px solid var(--premium-line);
  box-shadow:var(--premium-shadow-hover);
  position:relative;
}
.glow-feature-card::before { display:none; }
.glow-feature-copy {
  padding:30px 8px 30px 30px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
}
.glow-feature-copy > span {
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 11px;
  border-radius:var(--premium-pill);
  background:#fff0f5;
  color:var(--premium-pink-deep);
  font-size:9px;
  letter-spacing:.08em;
  font-weight:900;
}
.glow-feature-copy h2 {
  margin:13px 0 7px;
  font-size:clamp(24px,3.1vw,34px);
  color:var(--premium-ink);
}
.glow-feature-copy p {
  margin:0 0 20px;
  max-width:520px;
  color:var(--premium-muted);
  font-size:12px;
  line-height:1.55;
}
.glow-feature-button {
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:42px;
  padding:0 15px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--premium-pink),var(--premium-pink-deep));
  color:white;
  font-size:11px;
  font-weight:850;
  box-shadow:0 8px 18px rgba(217,70,121,.18);
}
.glow-feature-orb {
  width:auto;
  height:auto;
  min-height:224px;
  position:relative;
  justify-self:stretch;
  border-radius:0;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 24% 24%,rgba(255,255,255,.92) 0 7%,transparent 8%),
    radial-gradient(circle at 74% 24%,rgba(255,255,255,.40) 0 13%,transparent 14%),
    linear-gradient(145deg,#ffbad0 0%,#f875a1 48%,#e24d80 100%);
  box-shadow:none;
}
.glow-feature-orb::before {
  content:"";
  width:142px;
  height:142px;
  border-radius:40px;
  transform:rotate(-9deg);
  background:linear-gradient(145deg,#fff,#ffe5ee);
  box-shadow:0 18px 34px rgba(117,38,68,.17);
}
.glow-feature-orb::after {
  content:"";
  position:absolute;
  width:58px;
  height:58px;
  right:22px;
  bottom:18px;
  border-radius:20px;
  background:rgba(255,255,255,.32);
  border:1px solid rgba(255,255,255,.54);
}
.glow-feature-orb span {
  position:absolute;
  z-index:2;
  font-family:Georgia,serif;
  font-style:italic;
  font-size:29px;
  color:var(--premium-pink-deep);
  transform:rotate(-9deg);
}
.glow-feature-orb i { display:none; }

.glow-soft-alert {
  padding:12px 15px;
  border-radius:16px;
  color:#9b6680;
  background:#fff7fa;
  border:1px solid #f5dce5;
  font-size:11px;
}
.glow-section-block { display:grid; gap:13px; }
.glow-section-head {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  padding:0 2px;
}
.glow-section-head h2 { margin:4px 0 0; font-size:21px; }
.glow-section-head a {
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 11px;
  border-radius:var(--premium-pill);
  color:var(--premium-pink-deep);
  background:#fff0f5;
  font-size:9px;
  font-weight:850;
}
.glow-routine-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.glow-routine-card {
  min-height:154px;
  display:grid;
  align-content:end;
  gap:5px;
  padding:18px;
  border-radius:24px;
  border:1px solid var(--premium-line);
  background:white!important;
  box-shadow:var(--premium-shadow);
  position:relative;
  overflow:hidden;
  transition:transform .18s ease,box-shadow .18s ease;
}
.glow-routine-card::before {
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:70px;
  background:linear-gradient(135deg,#ffe2ec,#fff5f8);
}
.glow-routine-card.lilac::before { background:linear-gradient(135deg,#f3e8ff,#fff7fc); }
.glow-routine-card.butter::before { background:linear-gradient(135deg,#fff0d7,#fff8ef); }
.glow-routine-card:hover { transform:translateY(-3px); box-shadow:var(--premium-shadow-hover); }
.glow-routine-icon {
  position:absolute;
  left:18px;
  top:18px;
  z-index:2;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:14px;
  color:var(--premium-pink-deep);
  background:white;
  border:1px solid rgba(235,228,235,.9);
  box-shadow:0 7px 16px rgba(54,49,73,.07);
}
.glow-routine-card strong { font-size:13px; color:var(--premium-ink); }
.glow-routine-card small { color:var(--premium-muted); font-size:9.5px; line-height:1.4; }

.glow-status-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.glow-status-card {
  padding:16px 18px;
  border-radius:22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background:white;
}
.glow-status-card small { font-size:8px; font-weight:900; letter-spacing:.1em; color:var(--premium-pink-deep); }
.glow-status-card strong { font-size:13px; color:var(--premium-ink); }
.glow-status-card > div:last-child { display:flex; align-items:center; gap:7px; }
.glow-time-pill {
  display:inline-flex;
  padding:6px 9px;
  border-radius:var(--premium-pill);
  background:#fff0f5;
  color:var(--premium-pink-deep);
  font-size:9px;
  font-weight:850;
}
.glow-tip-card {
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:14px;
  align-items:center;
  padding:16px 18px;
  border-radius:22px;
  background:white;
  border:1px solid var(--premium-line);
  box-shadow:var(--premium-shadow);
}
.glow-tip-heart {
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:#fff0f5;
  color:var(--premium-pink-deep);
}
.glow-tip-card strong { font-size:11px; }
.glow-tip-card p { margin:3px 0 0; color:var(--premium-muted); font-size:9.5px; line-height:1.45; }
.glow-tip-card > a { color:var(--premium-pink-deep); font-size:24px; }

/* Booking — application/form style */
.book-page { gap:24px; }
.book-hero {
  padding:4px 2px 0;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:18px;
}
.book-hero h1 {
  margin:6px 0 8px;
  font-size:clamp(34px,4.5vw,52px);
  line-height:1.02;
}
.book-hero > div:first-child > p:not(.eyebrow) {
  max-width:700px;
  margin:0;
  color:var(--premium-muted);
  font-size:12px;
  line-height:1.55;
}
.booking-steps {
  display:flex;
  gap:5px;
  padding:5px;
  border-radius:17px;
  background:#f1f1f6;
}
.booking-steps i { display:none; }
.booking-steps span {
  min-width:76px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:7px 10px;
  border-radius:13px;
  color:#9697a6;
}
.booking-steps span b {
  width:20px;
  height:20px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:#fff;
  font-size:9px;
}
.booking-steps span small { font-size:8px; letter-spacing:0; font-weight:800; }
.booking-steps span.active,.booking-steps span.done {
  background:#fff;
  color:var(--premium-pink-deep);
  box-shadow:0 5px 14px rgba(55,51,75,.07);
}
.book-layout {
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
  gap:18px;
  align-items:start;
}
.book-primary,.book-sidebar { display:grid; gap:14px; }
.book-sidebar { position:sticky; top:100px; }
.book-section-card {
  border-radius:26px;
  padding:22px;
  background:#fff;
  border:1px solid var(--premium-line);
  box-shadow:var(--premium-shadow);
}
.book-card-heading { margin-bottom:16px; }
.book-card-heading > div:first-child { display:flex; gap:12px; align-items:flex-start; }
.book-card-heading > div:first-child > span {
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#fff0f5;
  color:var(--premium-pink-deep);
  font-size:10px;
  font-weight:900;
}
.book-card-heading small { color:#a8a8b5; font-size:8px; letter-spacing:.12em; }
.book-card-heading h2 { margin:2px 0 0; font-size:20px; }
.book-card-heading > strong {
  align-self:flex-start;
  padding:6px 10px;
  border-radius:var(--premium-pill);
  background:#fff0f5;
  color:var(--premium-pink-deep);
  font-size:9px;
}
.service-check-grid.book-services { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.book-services .service-check {
  min-height:94px;
  padding:14px;
  border-radius:19px;
  border:1px solid #e8e8ef;
  background:#fff;
  box-shadow:none;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.book-services .service-check:hover {
  transform:translateY(-2px);
  border-color:#f1b8ca;
  box-shadow:0 11px 24px rgba(59,54,83,.08);
}
.book-services .service-check.selected {
  background:linear-gradient(145deg,#fff7fa,#fff0f5);
  border-color:#efafc4;
  box-shadow:0 0 0 2px rgba(239,95,145,.06);
}
.book-services .service-check-copy strong { font-size:12px; color:var(--premium-ink); }
.book-services .service-check-copy small { font-size:9px; color:var(--premium-muted); }
.book-services .service-check > b {
  padding:5px 8px;
  border-radius:var(--premium-pill);
  background:#fff0f5;
  color:var(--premium-pink-deep);
  font-size:10px;
}
.service-check-mark { background:var(--premium-pink); }

.notification-strip {
  grid-template-columns:auto 1fr auto;
  padding:13px 14px;
  gap:10px;
  border-radius:18px;
  border:1px solid #f2dce4;
  background:#fff8fa;
  box-shadow:none;
}
.notification-icon {
  width:34px;
  height:34px;
  border-radius:12px;
  background:#fff0f5;
  color:var(--premium-pink-deep);
  border:0;
}
.notification-strip strong { font-size:10px; color:var(--premium-ink); }
.notification-strip p,.notification-strip small { font-size:8.5px; color:var(--premium-muted); line-height:1.4; }
.notification-note { color:#a86b82!important; }
.booking-details-card { gap:11px; }
.booking-details-card .input { min-height:46px; border-radius:14px; font-size:11px; }
.booking-details-card label,.booking-details-card .field-label { font-size:9px; }
.booking-summary {
  border:0;
  background:#f7f7fb;
  border-radius:18px;
  padding:12px;
}
.booking-summary span { color:var(--premium-muted); font-size:8px; }
.booking-summary strong { color:var(--premium-ink); font-size:10px; }
.book-primary-action { min-height:46px; border-radius:15px; }
.booking-footnote { color:var(--premium-muted); font-size:8.5px; }
.availability-card .slot {
  min-height:62px;
  border-radius:16px;
  border:1px solid #e9e9f0;
  background:#fff;
}
.availability-card .slot:hover { border-color:#f0b3c8; }
.availability-card .slot.selected {
  background:#fff0f5;
  border-color:#efa6bf;
  box-shadow:0 0 0 2px rgba(239,95,145,.06);
}
.appointment-card { border-radius:20px; background:#fff; }
.book-empty {
  border:1px dashed #dedee8;
  background:#fafafe;
  border-radius:18px;
}

/* Care / Rewards / Profile */
.care-progress-card,.reward-wallet,.client-page > .card { border-radius:24px; }
.care-progress-card {
  background:#fff;
  position:relative;
  overflow:hidden;
}
.care-progress-card::before {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(#f88aaf,#df4f81);
}
.care-progress { height:8px; border-radius:var(--premium-pill); background:#f0f0f5; overflow:hidden; }
.care-progress i { height:100%; display:block; border-radius:inherit; background:linear-gradient(90deg,#f88aaf,#df4f81); }
.care-task-list { gap:10px; }
.care-task {
  min-height:70px;
  border-radius:20px;
  border:1px solid var(--premium-line);
  background:#fff;
  box-shadow:0 8px 20px rgba(59,54,83,.05);
}
.care-task.done { background:#fff5f8; border-color:#f2d7e1; }
.reward-wallet {
  background:linear-gradient(135deg,#f67da5,#dd4f82);
  color:#fff;
  border:0!important;
  box-shadow:0 18px 38px rgba(218,74,126,.20)!important;
  position:relative;
  overflow:hidden;
}
.reward-wallet::after {
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  border-radius:50%;
  right:-45px;
  top:-90px;
  background:rgba(255,255,255,.13);
}
.reward-wallet p { color:rgba(255,255,255,.84); }
.reward-hero strong { color:#fff; }
.reward-grid { gap:12px; }
.reward-grid .card { background:#fff; border-radius:22px; }
.profile-line { border-color:#eeeeF4; }
.client-page > .success-note {
  border-radius:14px;
  background:#effaf4;
  color:#3b7756;
}

@media (max-width:900px){
  .client-app-shell.glow-app-shell { max-width:none; box-shadow:none; }
  .glow-main.client-app-main { padding:28px 20px 38px; }
  .book-layout { grid-template-columns:1fr; }
  .book-sidebar { position:static; }
}

@media (max-width:720px){
  body:has(.client-app-shell) { background:#fbfbfd; }
  .client-app-shell.glow-app-shell { padding-bottom:98px; }
  .glow-topbar { height:68px; padding:0 16px; }
  .glow-topbar-copy small { font-size:8px; }
  .glow-topbar-copy strong { font-size:15px; }
  .glow-icon-button,.glow-avatar { width:35px; height:35px; border-radius:12px; }
  .glow-avatar { border-radius:50%; }
  .glow-main.client-app-main { padding:22px 14px 28px; }
  .client-page h1 { font-size:32px; }
  .glow-greeting-row { grid-template-columns:1fr 62px; gap:12px; }
  .glow-greeting-row h1 { font-size:31px; }
  .glow-greeting-row p { font-size:11px; }
  .glow-sparkle-art { width:58px; height:58px; border-radius:19px; }
  .glow-sparkle-art svg { width:30px; height:30px; }
  .glow-feature-card { grid-template-columns:1fr 108px; min-height:190px; border-radius:26px; }
  .glow-feature-copy { padding:22px 0 22px 20px; }
  .glow-feature-copy h2 { font-size:23px; }
  .glow-feature-copy p { font-size:10px; }
  .glow-feature-orb { min-height:190px; }
  .glow-feature-orb::before { width:86px; height:86px; border-radius:26px; }
  .glow-feature-orb span { font-size:20px; }
  .glow-routine-grid { grid-template-columns:repeat(3,1fr); gap:8px; }
  .glow-routine-card { min-height:126px; padding:13px 11px; border-radius:19px; }
  .glow-routine-card::before { height:58px; }
  .glow-routine-icon { left:12px; top:12px; width:32px; height:32px; border-radius:11px; }
  .glow-routine-card strong { font-size:11px; }
  .glow-routine-card small { font-size:8px; }
  .glow-status-list { grid-template-columns:1fr; }
  .glow-bottom-nav.client-bottom-nav {
    bottom:0;
    width:100%;
    height:72px;
    border-radius:24px 24px 0 0;
    border-left:0;
    border-right:0;
    border-bottom:0;
    padding:6px 7px calc(6px + env(safe-area-inset-bottom));
    box-shadow:0 -10px 30px rgba(52,49,73,.10);
  }
  .glow-bottom-nav a { border-radius:15px; }
  .book-hero { grid-template-columns:1fr; gap:12px; }
  .booking-steps { width:100%; }
  .booking-steps span { flex:1; min-width:0; }
  .book-section-card { padding:18px; border-radius:22px; }
  .service-check-grid.book-services { grid-template-columns:1fr; }
  .notification-strip { order:2; }
  .booking-details-card { order:1; }
  .availability-card .slot-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:410px){
  .glow-feature-card { grid-template-columns:1fr 88px; }
  .glow-feature-copy { padding-left:17px; }
  .glow-feature-copy > span { font-size:8px; }
  .glow-feature-button { min-height:38px; padding:0 12px; }
  .glow-routine-card small { display:none; }
  .glow-routine-card { min-height:105px; }
  .glow-tip-card p { font-size:8.5px; }
  .glow-bottom-nav a small { font-size:8px; }
}

/* RC12 — built-in Cale calendar */
.cale-calendar-heading{align-items:center;gap:24px}.calendar-source-pill{display:inline-flex;align-items:center;gap:9px;padding:10px 14px;border:1px solid #f3c8d7;background:#fff7fa;border-radius:999px;color:#9f3f63;font-weight:800;font-size:.8rem;white-space:nowrap}.calendar-source-pill span{color:#36b37e;font-size:.8rem}.cale-calendar-card{padding:18px!important;overflow:hidden}.cale-calendar-toolbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;margin-bottom:16px}.cale-calendar-toolbar h2{text-align:center;margin:0;font-size:1.2rem}.calendar-nav,.calendar-toolbar-actions{display:flex;align-items:center;gap:8px}.calendar-toolbar-actions select{min-width:150px}.calendar-view-switch{display:flex;padding:3px;background:#f8edf2;border-radius:12px}.calendar-view-switch button{border:0;background:transparent;padding:8px 11px;border-radius:9px;text-transform:capitalize;font:inherit;font-size:.78rem;font-weight:800;color:#8b6d78;cursor:pointer}.calendar-view-switch button.active{background:#fff;color:#c64270;box-shadow:0 4px 14px rgba(117,50,75,.1)}.cale-month-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;margin:0 1px 7px}.cale-month-weekdays span{text-align:center;font-size:.68rem;font-weight:900;letter-spacing:.08em;color:#9d7e89;text-transform:uppercase}.cale-calendar-grid{display:grid;gap:10px}.cale-calendar-grid.week,.cale-calendar-grid.month{grid-template-columns:repeat(7,minmax(0,1fr))}.cale-calendar-grid.day{grid-template-columns:1fr}.cale-calendar-day{min-width:0;border:1px solid #f0e0e6;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 8px 26px rgba(77,46,57,.05)}.cale-calendar-grid.month .cale-calendar-day{min-height:150px;border-radius:14px;box-shadow:none}.cale-calendar-day.outside{opacity:.42;background:#fbf9fa}.cale-calendar-day.today{border-color:#ef8faf;box-shadow:0 0 0 2px rgba(239,95,145,.09)}.cale-calendar-day>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 12px;border-bottom:1px solid #f6e9ed;background:linear-gradient(180deg,#fff,#fff9fb)}.cale-calendar-day>header button,.cale-calendar-day>header>div{border:0;background:transparent;padding:0;display:flex;align-items:center;gap:8px;color:inherit;font:inherit;cursor:pointer}.cale-calendar-day>header span{font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:#a27d8a}.cale-calendar-day>header strong{font-size:1rem}.cale-calendar-day>header small{font-size:.64rem;color:#ab8a96}.cale-calendar-events{padding:9px;display:flex;flex-direction:column;gap:7px}.cale-cal-event,.cale-cal-block{display:flex;align-items:center;gap:8px;border-radius:12px;padding:8px;border:1px solid #f4dfe6;background:#fff9fb;min-width:0}.cale-cal-event{border-left:4px solid #ef5f91}.cale-cal-event.status-requested,.cale-cal-event.status-pending_confirmation{border-left-color:#f4b740}.cale-cal-event.status-checked_in,.cale-cal-event.status-in_service{border-left-color:#7b61ff}.cale-cal-event-time{font-weight:900;font-size:.72rem;color:#a43f65;white-space:nowrap}.cale-cal-event-copy{min-width:0;flex:1;display:flex;flex-direction:column}.cale-cal-event-copy strong{font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cale-cal-event-copy small{font-size:.62rem;color:#9b7f89;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cale-cal-event .status-chip{font-size:.56rem;padding:4px 6px}.cale-cal-block{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:#f5f3ff;border-color:#e2ddff;border-left:4px solid #8067d7}.cale-cal-block span{font-size:.65rem;font-weight:900;color:#6f5bb6}.cale-cal-block strong{font-size:.7rem}.cale-cal-block small{font-size:.62rem;color:#887da5}.cale-calendar-empty{padding:18px 6px;color:#b399a2;font-size:.72rem;text-align:center}.calendar-more{border:0;background:#fff0f5;color:#b7466d;font:inherit;font-size:.68rem;font-weight:900;border-radius:10px;padding:7px;cursor:pointer}.calendar-settings-grid{grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr)!important;margin-top:16px}.calendar-side-stack{display:grid;gap:16px}.calendar-google-optional{background:linear-gradient(145deg,#fff,#fff7fa)}
@media(max-width:1180px){.cale-calendar-grid.week,.cale-calendar-grid.month{grid-template-columns:repeat(2,minmax(0,1fr))}.cale-month-weekdays{display:none}.calendar-settings-grid{grid-template-columns:1fr!important}.cale-calendar-toolbar{grid-template-columns:1fr}.cale-calendar-toolbar h2{text-align:left;order:-1}.calendar-toolbar-actions{flex-wrap:wrap}}
@media(max-width:720px){.cale-calendar-heading{align-items:flex-start}.calendar-source-pill{white-space:normal}.cale-calendar-card{padding:10px!important}.cale-calendar-grid.week,.cale-calendar-grid.month{grid-template-columns:1fr}.cale-calendar-toolbar{gap:10px}.calendar-nav,.calendar-toolbar-actions{width:100%;justify-content:space-between}.calendar-toolbar-actions select{flex:1}.cale-calendar-grid.month .cale-calendar-day{min-height:0}.cale-calendar-day.outside{display:none}.schedule-row{grid-template-columns:54px 1fr!important}.schedule-row .input{min-width:0}.cale-cal-event{align-items:flex-start;flex-wrap:wrap}.cale-cal-event .status-chip{margin-left:auto}}

/* ========================================================================== 
   RC15 — Admin console + POS responsive redesign
   ========================================================================== */
.admin-shell-v2 {
  --admin-sidebar: 264px;
  grid-template-columns: var(--admin-sidebar) minmax(0,1fr);
  background: #f7f7fa;
}
.admin-sidebar-v2 {
  width: var(--admin-sidebar);
  padding: 22px 16px 18px;
  background: #21191d;
  border-right: 1px solid rgba(255,255,255,.05);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.14) transparent;
}
.admin-sidebar-head { min-height: 46px; display:flex; align-items:center; justify-content:space-between; padding:0 7px; }
.admin-sidebar-v2 .brand-script { color:#ff7da9; }
.admin-sidebar-v2 .brand-sub { color:#bfaeb4; }
.admin-drawer-close { display:none; width:38px; height:38px; border-radius:12px; background:rgba(255,255,255,.07); color:white; padding:9px; cursor:pointer; }
.admin-drawer-close svg, .admin-menu-button svg, .admin-sidebar-bottom svg { width:100%; height:100%; display:block; }
.admin-sidebar-v2 .sidebar-label { margin:28px 10px 14px; color:#826f76; letter-spacing:2.2px; }
.admin-nav-groups { display:grid!important; gap:20px!important; }
.admin-nav-group { display:grid; gap:7px; }
.admin-nav-group-label { padding:0 10px; color:#76646b; font-size:9px; letter-spacing:1.8px; text-transform:uppercase; font-weight:800; }
.admin-nav-group > div { display:grid; gap:3px; }
.admin-sidebar-v2 .admin-nav-group a { display:flex; align-items:center; min-height:40px; padding:0 11px; border-radius:11px; color:#cdbec3; font-size:12px; font-weight:650; transition:background .16s ease,color .16s ease,transform .16s ease; }
.admin-sidebar-v2 .admin-nav-group a:hover { background:rgba(255,255,255,.06); color:white; transform:translateX(1px); }
.admin-sidebar-v2 .admin-nav-group a.active { background:linear-gradient(135deg,#ff6f9f,#da557f); color:#fff; box-shadow:0 8px 22px rgba(218,85,127,.22); }
.admin-sidebar-bottom { margin-top:26px; padding-top:14px; border-top:1px solid rgba(255,255,255,.08); gap:4px; }
.admin-sidebar-bottom a, .admin-sidebar-bottom button { min-height:38px; display:flex; align-items:center; justify-content:space-between; gap:10px; border-radius:10px; padding:0 10px; color:#a9969d; }
.admin-sidebar-bottom a:hover, .admin-sidebar-bottom button:hover { background:rgba(255,255,255,.06); color:white; }
.admin-sidebar-bottom svg { width:16px; height:16px; }
.admin-header-v2 { height:76px; padding:0 clamp(18px,2.5vw,34px); background:rgba(255,255,255,.92); border-bottom:1px solid #ececf1; box-shadow:0 1px 0 rgba(20,20,30,.02); }
.admin-header-left { display:flex!important; align-items:center; gap:12px; }
.admin-menu-button { display:none; width:42px; height:42px; border-radius:13px; background:#fff; border:1px solid #e8e8ef; color:#2e2934; padding:10px; cursor:pointer; box-shadow:0 5px 18px rgba(40,32,45,.05); }
.admin-page-context { display:grid; gap:2px; }
.admin-page-context small { font-size:9px; letter-spacing:1.7px; color:#e65384; font-weight:850; }
.admin-page-context strong { font-size:15px; color:#292533; }
.admin-account { display:flex; align-items:center; gap:11px; }
.admin-account-copy { display:grid; text-align:right; gap:2px; }
.admin-account-copy strong { font-size:12px; color:#2c2833; }
.admin-account-copy span { font-size:9px; color:#948b98; text-transform:uppercase; letter-spacing:.8px; }
.admin-avatar { width:38px; height:38px; border-radius:50%; display:grid; place-items:center; color:white; background:linear-gradient(135deg,#fa8ab1,#e14d83); font-size:12px; font-weight:850; box-shadow:0 8px 20px rgba(225,77,131,.18); }
.admin-content-v2 { width:100%; max-width:1560px; padding:clamp(24px,3vw,44px); }
.admin-drawer-backdrop { display:none; }

/* POS */
.pos-page-v2 { width:100%; }
.pos-page-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:24px; }
.pos-page-head h1 { margin:4px 0 6px; color:#252230; font:800 clamp(32px,3vw,48px)/1.02 Inter,ui-sans-serif,system-ui,sans-serif; letter-spacing:-1.6px; }
.pos-page-head p { margin:0; max-width:660px; color:#7d7581; line-height:1.55; font-size:14px; }
.pos-kicker { display:inline-flex; color:#e65082; font-size:10px; letter-spacing:1.9px; font-weight:850; }
.pos-head-stat { min-width:110px; display:grid; grid-template-columns:1fr auto; align-items:end; column-gap:10px; padding:13px 16px; background:#fff; border:1px solid #ece9ee; border-radius:18px; box-shadow:0 8px 26px rgba(35,27,40,.05); }
.pos-head-stat span { grid-column:1/-1; color:#8e8491; font-size:9px; text-transform:uppercase; letter-spacing:1.2px; font-weight:800; }
.pos-head-stat strong { color:#2d2833; font-size:26px; line-height:1; }
.pos-head-stat small { color:#9a919d; font-size:10px; padding-bottom:2px; }
.pos-feedback { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:18px; padding:12px 14px; border-radius:14px; font-size:12px; border:1px solid transparent; }
.pos-feedback.success { background:#eefaf2; border-color:#d0ead9; color:#2e7148; }
.pos-feedback.error { background:#fff2f3; border-color:#f1ced4; color:#934354; }
.pos-feedback button { padding:7px 10px; border-radius:9px; background:#fff; color:inherit; border:1px solid currentColor; cursor:pointer; font-weight:750; }
.pos-layout-v2 { grid-template-columns:minmax(0,1fr) minmax(340px,390px); gap:24px; align-items:start; }
.pos-catalog-panel { min-width:0; display:grid; gap:26px; }
.pos-toolbar { position:sticky; top:88px; z-index:8; display:flex; align-items:center; gap:12px; padding:10px; margin:-4px -4px 0; border:1px solid rgba(230,228,235,.9); background:rgba(247,247,250,.92); backdrop-filter:blur(16px); border-radius:17px; }
.pos-search { flex:1; min-width:180px; height:46px; display:flex; align-items:center; gap:9px; padding:0 13px; border:1px solid #e3e1e8; background:#fff; border-radius:13px; color:#a39ba6; }
.pos-search svg { width:18px; height:18px; flex:0 0 auto; }
.pos-search input { min-width:0; width:100%; border:0; outline:0; background:transparent; color:#2a2630; font-size:13px; }
.pos-search input::placeholder { color:#aaa2ac; }
.pos-tabs { display:flex; gap:4px; padding:4px; background:#ebe9ef; border-radius:12px; }
.pos-tabs button { min-height:36px; padding:0 13px; border-radius:9px; background:transparent; color:#77707c; cursor:pointer; font-size:11px; font-weight:750; }
.pos-tabs button.active { background:#fff; color:#2d2833; box-shadow:0 3px 10px rgba(38,31,43,.08); }
.pos-section { display:grid; gap:12px; }
.pos-section-head { display:flex; align-items:center; justify-content:space-between; padding:0 2px; }
.pos-section-head > div { display:flex; align-items:baseline; gap:10px; }
.pos-section-head h2 { margin:0; color:#2b2732; font-size:18px; }
.pos-section-head span { color:#a49ba7; font-size:10px; }
.pos-catalog-grid { grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:12px; margin:0; }
.pos-catalog-card { min-height:150px; position:relative; align-content:start; gap:8px; padding:17px; border-radius:19px; border:1px solid #ece8ee; box-shadow:0 4px 18px rgba(41,31,46,.035); transition:transform .16s ease, box-shadow .16s ease,border-color .16s ease; }
.pos-catalog-card:hover:not(:disabled) { transform:translateY(-2px); border-color:#f1b6ca; box-shadow:0 13px 28px rgba(80,39,55,.08); }
.pos-catalog-card strong { min-height:42px; color:#302a35; font-size:13px; line-height:1.4; padding-right:4px; }
.pos-catalog-card strong small { color:#918793; font-weight:650; }
.catalog-type { width:fit-content; padding:4px 7px; border-radius:999px; background:#fff0f5; color:#d74c7c!important; font-size:8px!important; text-transform:uppercase; letter-spacing:.8px; font-weight:850; }
.catalog-price { color:#27232d!important; font-size:18px!important; font-weight:850; }
.catalog-add { position:absolute; right:12px; bottom:12px; color:#e14e80!important; font-size:10px!important; font-weight:850; }
.stock-pill { width:fit-content; max-width:calc(100% - 48px); padding:4px 7px; border-radius:999px; background:#eef8f1; color:#4b835d!important; font-size:8px!important; font-weight:800; }
.stock-pill.out { background:#f7eeee; color:#a76872!important; }
.pos-empty { min-height:128px; display:grid; place-items:center; align-content:center; text-align:center; gap:4px; border:1px dashed #ded9e1; border-radius:18px; background:rgba(255,255,255,.55); color:#9a919c; }
.pos-empty strong { color:#625b67; font-size:13px; }
.pos-empty span { font-size:11px; }
.pos-loading-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:12px; }
.pos-loading-grid span { height:150px; border-radius:19px; background:linear-gradient(90deg,#eeeeF2,#fff,#eeeeF2); background-size:200% 100%; animation:shimmer 1.25s infinite; }

.pos-cart-v2 { position:sticky; top:94px; padding:0; overflow:hidden; border:1px solid #ebe7ed; border-radius:24px; background:#fff; box-shadow:0 15px 45px rgba(38,28,43,.07); }
.pos-cart-head { min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; border-bottom:1px solid #f0edf1; }
.pos-cart-head > div { display:flex; align-items:center; gap:11px; }
.pos-cart-head h2 { margin:0; color:#2a2630; font-size:16px; }
.pos-cart-head small { display:block; color:#9c929e; margin-top:2px; font-size:9px; }
.cart-icon { width:40px; height:40px; display:grid; place-items:center; border-radius:13px; background:#fff0f5; color:#df4f7f; }
.cart-icon svg { width:20px; height:20px; }
.clear-cart { background:transparent; color:#d15378; cursor:pointer; font-size:10px; font-weight:750; }
.pos-field { display:grid; gap:7px; padding:16px 18px 14px; }
.pos-field span { color:#5f5762; font-size:10px; font-weight:800; }
.pos-field input { width:100%; min-height:44px; padding:0 12px; border:1px solid #e4e0e6; border-radius:12px; background:#faf9fb; color:#302a35; outline:0; }
.pos-field input:focus { border-color:#eeaac1; box-shadow:0 0 0 3px rgba(238,170,193,.14); background:#fff; }
.pos-cart-lines { max-height:min(38vh,380px); overflow:auto; border-top:1px solid #f4f1f4; border-bottom:1px solid #f1edf1; }
.pos-cart-empty { min-height:215px; display:grid; place-items:center; align-content:center; text-align:center; padding:28px; color:#9b929e; }
.cart-empty-icon { width:54px; height:54px; display:grid; place-items:center; border-radius:18px; background:#faf0f4; color:#dc6b92; margin-bottom:10px; }
.cart-empty-icon svg { width:24px; height:24px; }
.pos-cart-empty strong { color:#5f5863; font-size:13px; }
.pos-cart-empty p { margin:5px 0 0; max-width:220px; line-height:1.45; font-size:10px; }
.pos-cart-line { display:grid; gap:11px; padding:14px 18px; border-bottom:1px solid #f2eff2; }
.pos-cart-line:last-child { border-bottom:0; }
.pos-line-main { min-width:0; display:grid; gap:3px; }
.pos-line-main strong { color:#312c36; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pos-line-main small { color:#958b97; font-size:9px; }
.pos-line-type { width:fit-content; color:#d34f79; font-size:8px; text-transform:uppercase; letter-spacing:.8px; font-weight:850; }
.pos-line-actions { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.pos-line-actions > strong { color:#302b34; font-size:12px; }
.qty-stepper { display:grid; grid-template-columns:30px 34px 30px; align-items:center; border:1px solid #e8e4e9; border-radius:10px; overflow:hidden; background:#faf9fb; }
.qty-stepper button { width:30px; height:30px; display:grid; place-items:center; padding:8px; background:transparent; color:#756d78; cursor:pointer; }
.qty-stepper button:hover { background:#f2edf0; color:#d54d7b; }
.qty-stepper svg { width:100%; height:100%; }
.qty-stepper span { text-align:center; font-size:10px; font-weight:800; }
.pos-total-row { display:flex; align-items:center; justify-content:space-between; padding:16px 18px 10px; }
.pos-total-row span { color:#716974; font-size:11px; font-weight:750; }
.pos-total-row strong { color:#221f27; font-size:25px; letter-spacing:-.8px; }
.payment-picker { margin:0; padding:8px 18px 16px; border:0; display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.payment-picker legend { margin-bottom:8px; color:#625a65; font-size:10px; font-weight:800; }
.payment-picker label { min-height:38px; display:grid; place-items:center; border:1px solid #e7e2e8; border-radius:10px; background:#fff; color:#817783; cursor:pointer; font-size:9px; font-weight:750; }
.payment-picker label.active { border-color:#f09ab7; background:#fff0f5; color:#d64476; }
.payment-picker input { position:absolute; opacity:0; pointer-events:none; }
.pos-checkout { margin:0 18px 18px; min-height:52px; padding:0 16px; border-radius:14px; display:flex; align-items:center; justify-content:space-between; gap:16px; background:linear-gradient(135deg,#f06b99,#d94e7d); color:#fff; cursor:pointer; box-shadow:0 11px 26px rgba(217,78,125,.23); }
.pos-checkout span { font-size:12px; font-weight:850; }
.pos-checkout strong { font-size:14px; }
.pos-checkout:disabled { background:#e5dfe2; color:#aaa1a7; box-shadow:none; cursor:not-allowed; }

@media (max-width: 1100px) {
  .admin-shell-v2 { grid-template-columns:1fr; }
  .admin-sidebar-v2 { position:fixed!important; inset:0 auto 0 0; z-index:100; width:min(310px,88vw); height:100dvh!important; transform:translateX(-104%); transition:transform .22s ease; padding:18px 14px; flex-direction:column!important; align-items:stretch!important; overflow-y:auto!important; box-shadow:24px 0 60px rgba(24,17,21,.28); }
  .admin-sidebar-v2.open { transform:translateX(0); }
  .admin-sidebar-v2 .brand, .admin-sidebar-v2 .sidebar-label, .admin-sidebar-v2 .sidebar-bottom { display:flex; }
  .admin-sidebar-v2 .sidebar-label { display:block; }
  .admin-sidebar-v2 nav { display:grid!important; }
  .admin-sidebar-v2 .admin-nav-group > div { display:grid!important; }
  .admin-sidebar-v2 nav a { white-space:normal!important; }
  .admin-drawer-close { display:grid; place-items:center; }
  .admin-drawer-backdrop { position:fixed; inset:0; z-index:90; width:100%; height:100%; border:0; background:rgba(30,22,27,.42); backdrop-filter:blur(2px); opacity:0; pointer-events:none; display:block; transition:opacity .2s ease; }
  .admin-drawer-backdrop.open { opacity:1; pointer-events:auto; }
  .admin-menu-button { display:grid; place-items:center; }
  .admin-header-v2 { height:68px; padding:0 16px; }
  .admin-content-v2 { padding:24px 18px 40px; }
  .pos-layout-v2 { grid-template-columns:minmax(0,1fr) 340px; gap:18px; }
  .pos-catalog-grid { grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); }
}

@media (max-width: 820px) {
  .admin-account-copy { display:none; }
  .admin-content-v2 { padding:20px 14px 36px; }
  .pos-page-head { align-items:flex-start; }
  .pos-head-stat { min-width:94px; }
  .pos-layout-v2 { grid-template-columns:1fr; }
  .pos-cart-v2 { position:relative; top:auto; }
  .pos-cart-lines { max-height:300px; }
  .pos-toolbar { top:80px; }
}

@media (max-width: 560px) {
  body { background:#f7f7fa; }
  .admin-header-v2 { padding:0 12px; }
  .admin-page-context small { display:none; }
  .admin-page-context strong { font-size:14px; }
  .admin-avatar { width:35px; height:35px; }
  .admin-content-v2 { padding:18px 12px 34px; }
  .pos-page-head { margin-bottom:16px; gap:12px; }
  .pos-page-head h1 { font-size:32px; letter-spacing:-1px; }
  .pos-page-head p { font-size:12px; }
  .pos-head-stat { padding:10px 12px; border-radius:15px; min-width:82px; }
  .pos-head-stat strong { font-size:22px; }
  .pos-toolbar { position:static; display:grid; gap:8px; padding:0; border:0; background:transparent; backdrop-filter:none; }
  .pos-search { height:44px; }
  .pos-tabs { width:100%; }
  .pos-tabs button { flex:1; }
  .pos-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .pos-catalog-card { min-height:142px; padding:13px; border-radius:16px; }
  .pos-catalog-card strong { font-size:11px; min-height:38px; }
  .catalog-price { font-size:16px!important; }
  .catalog-add { right:10px; bottom:10px; }
  .pos-cart-v2 { border-radius:19px; }
  .pos-cart-head { min-height:68px; padding:13px 14px; }
  .pos-field { padding:13px 14px; }
  .pos-cart-line { padding:12px 14px; }
  .pos-total-row { padding:14px 14px 8px; }
  .payment-picker { padding:8px 14px 14px; grid-template-columns:repeat(2,1fr); }
  .pos-checkout { margin:0 14px 14px; min-height:50px; }
}

@media (max-width: 380px) {
  .pos-catalog-grid { grid-template-columns:1fr; }
  .pos-head-stat { display:none; }
}

/* ========================================================================== 
   RC16 — Premium Pink UI/UX system polish
   Clean modern app UI · rounded cards · soft shadows · spacious white surfaces
   ========================================================================== */
:root{
  --ui-pink:#ee5f91;
  --ui-pink-deep:#d84478;
  --ui-pink-soft:#fff0f5;
  --ui-pink-wash:#fff7fa;
  --ui-bg:#f7f7fb;
  --ui-panel:#ffffff;
  --ui-ink:#2b2835;
  --ui-muted:#847c89;
  --ui-border:#ece9ef;
  --ui-shadow:0 14px 40px rgba(48,37,53,.065);
  --ui-shadow-hover:0 20px 48px rgba(63,39,51,.105);
  --ui-radius:22px;
  --ui-radius-sm:14px;
}

/* Shared surfaces and controls */
.internal-shell{background:var(--ui-bg);color:var(--ui-ink)}
.internal-content{max-width:1600px}
.card{border:1px solid var(--ui-border);border-radius:20px;background:var(--ui-panel);box-shadow:0 7px 24px rgba(50,37,55,.045);padding:22px}
.card:hover{border-color:#e7dfe5}
.page-title,.page-heading{margin-bottom:26px;align-items:flex-end}
.page-title h1,.page-heading h1{font-family:Inter,ui-sans-serif,system-ui,sans-serif!important;font-size:clamp(30px,3vw,44px)!important;font-weight:850!important;line-height:1.02!important;letter-spacing:-1.45px!important;color:var(--ui-ink)}
.page-title p:not(.eyebrow),.page-heading p:not(.eyebrow){max-width:720px;color:var(--ui-muted);font-size:13px;line-height:1.65;margin-top:9px}
.eyebrow{color:var(--ui-pink-deep);font-size:9px;letter-spacing:1.75px;font-weight:900}
.button{min-height:44px;border-radius:13px;background:linear-gradient(135deg,#f0719d,var(--ui-pink-deep));font-weight:800;box-shadow:0 9px 22px rgba(216,68,120,.18)}
.button:hover:not(:disabled){background:linear-gradient(135deg,#e85b8c,#ca386d);box-shadow:0 13px 27px rgba(216,68,120,.24)}
.button.secondary{background:#fff;color:#594f5b;border:1px solid #e4dfe6;box-shadow:0 4px 12px rgba(45,35,48,.035)}
.button.secondary:hover:not(:disabled){background:#fff7fa;color:var(--ui-pink-deep);border-color:#efc1d1}
.button.small{min-height:38px;border-radius:11px}
.input{min-height:46px;border-radius:13px;border:1px solid #e4e0e7;background:#fff;color:var(--ui-ink);padding:10px 13px;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.input:hover{border-color:#dcd5df}
.input:focus{border-color:#eeaac1;box-shadow:0 0 0 4px rgba(238,95,145,.09);outline:none;background:#fff}
.field-label{font-size:10px;letter-spacing:.02em;color:#625a66;font-weight:850}
.field small{font-size:9px;color:#9a929d}
.status-chip{padding:6px 9px;border-radius:999px;font-size:8px;letter-spacing:.04em;background:#f1eff3;color:#6e6672}
.status-chip.success{background:#eaf7ee;color:#39744d}.status-chip.warning{background:#fff2dc;color:#8b622d}.status-chip.danger{background:#fff0f1;color:#a44150}
.modal-backdrop{background:rgba(31,24,34,.45);backdrop-filter:blur(8px)}
.modal{border:1px solid rgba(255,255,255,.8);border-radius:24px;box-shadow:0 34px 90px rgba(32,22,36,.25)}
.toast{display:flex;align-items:center;gap:9px;border-radius:14px;background:#2e6444;box-shadow:0 18px 42px rgba(28,45,35,.18)}
.toast-dot{width:7px;height:7px;border-radius:50%;background:#99e1b2;box-shadow:0 0 0 4px rgba(153,225,178,.16)}
.toast.danger .toast-dot{background:#ffc4cc}
.empty-state{min-height:190px;border-color:#ded9e1;background:rgba(255,255,255,.68);padding:34px}
.empty-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:var(--ui-pink-soft);color:var(--ui-pink-deep);font-size:0}
.empty-icon svg{width:24px;height:24px}
.empty-state h3{font-size:15px;color:#514a55}.empty-state p{font-size:11px;color:#938a96}
.form-error{border:1px solid #f3d2d8;background:#fff4f5;border-radius:13px;padding:11px 13px}
.info-banner,.notice{border-radius:14px}

/* Tables / data-heavy views */
.table-wrap{border:1px solid var(--ui-border);border-radius:18px;background:#fff;overflow:auto;box-shadow:0 6px 22px rgba(42,33,47,.035)}
.table-wrap table{width:100%;border-collapse:separate;border-spacing:0;min-width:760px}
.table-wrap th{position:sticky;top:0;z-index:1;padding:12px 14px;background:#faf9fb;border-bottom:1px solid #ece9ef;color:#8c8390;font-size:9px;text-align:left;text-transform:uppercase;letter-spacing:.08em}
.table-wrap td{padding:13px 14px;border-bottom:1px solid #f1eef2;color:#514a55;font-size:11px}
.table-wrap tr:last-child td{border-bottom:0}.table-wrap tbody tr:hover td{background:#fffafb}
.audit-table{border-radius:18px;border:1px solid var(--ui-border);box-shadow:0 6px 22px rgba(42,33,47,.035)}
.audit-head{background:#faf9fb;color:#8b828e}.audit-row{background:#fff}
.compact-list{border:1px solid var(--ui-border);border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 6px 22px rgba(42,33,47,.035)}
.compact-row{padding:14px 16px}.compact-row:hover{background:#fffafb}
.admin-row{padding:14px 2px}.row-actions button{background:#fff6f9;color:#8b5668;border:1px solid #f1dce4}.row-actions button:hover{background:#ffeef4;color:var(--ui-pink-deep)}

/* Admin shell v3 — light, premium and highly scannable */
.admin-shell-v3{--admin-sidebar:276px;grid-template-columns:var(--admin-sidebar) minmax(0,1fr);background:linear-gradient(145deg,#f8f8fb 0%,#faf7f9 100%)}
.admin-sidebar-v3{width:var(--admin-sidebar);padding:20px 14px 16px;background:rgba(255,255,255,.96);color:var(--ui-ink);border-right:1px solid var(--ui-border);box-shadow:10px 0 36px rgba(53,42,57,.035);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#e9dce2 transparent}
.admin-sidebar-v3 .brand-script,.staff-sidebar-v3 .brand-script{color:var(--ui-pink-deep)}
.admin-sidebar-v3 .brand-sub,.staff-sidebar-v3 .brand-sub{color:#a17f8b}
.admin-brand-note{margin:8px 9px 24px;color:#a098a3;font-size:9px;letter-spacing:.02em}
.admin-sidebar-v3 .admin-nav-groups{gap:21px!important}
.admin-sidebar-v3 .admin-nav-group-label,.staff-sidebar-v3 .admin-nav-group-label{padding:0 10px;color:#a098a3;font-size:8px;letter-spacing:1.55px;font-weight:900}
.admin-sidebar-v3 .admin-nav-group>div{gap:3px}
.admin-sidebar-v3 .admin-nav-group a,.staff-nav-v3 a{min-height:42px;display:flex;align-items:center;gap:10px;padding:0 10px;border-radius:13px;color:#716875;font-size:11px;font-weight:720;transition:background .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}
.admin-nav-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;color:#9a909d;background:transparent;transition:inherit;flex:0 0 auto}
.admin-nav-icon svg{width:17px;height:17px}
.admin-sidebar-v3 .admin-nav-group a:hover,.staff-nav-v3 a:hover{background:#fbf6f8;color:#4c444f;transform:translateX(1px)}
.admin-sidebar-v3 .admin-nav-group a.active,.staff-nav-v3 a.active{background:linear-gradient(135deg,#fff1f6,#ffe8f0);color:var(--ui-pink-deep);box-shadow:inset 0 0 0 1px #f5d4df,0 7px 18px rgba(224,83,132,.07)}
.admin-sidebar-v3 .admin-nav-group a.active .admin-nav-icon,.staff-nav-v3 a.active .admin-nav-icon{background:#fff;color:var(--ui-pink-deep);box-shadow:0 5px 12px rgba(96,55,72,.08)}
.admin-sidebar-bottom{border-top:1px solid #f0edf1;margin-top:26px;padding-top:12px}
.admin-sidebar-bottom a,.admin-sidebar-bottom button{color:#938995;border-radius:11px}
.admin-sidebar-bottom a:hover,.admin-sidebar-bottom button:hover{background:#fff6f9;color:var(--ui-pink-deep)}
.admin-sidebar-bottom svg{color:#aaa1ad}
.admin-header-v3{height:74px;padding:0 clamp(16px,2.4vw,32px);background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(236,233,239,.92);box-shadow:0 1px 0 rgba(41,31,45,.02)}
.admin-page-context small{color:var(--ui-pink-deep);font-size:8px;letter-spacing:1.6px}.admin-page-context strong{color:#3a3440;font-size:14px;font-weight:800}
.admin-account{padding:5px 6px 5px 12px;border:1px solid #eeeaf0;border-radius:999px;background:#fff;box-shadow:0 5px 16px rgba(44,34,48,.035)}
.admin-account-copy strong{font-size:11px}.admin-account-copy span{font-size:8px;color:#9e94a1}
.admin-avatar{width:36px;height:36px;background:linear-gradient(135deg,#fa8ab1,#dc467a);box-shadow:none}
.admin-content-v3{width:100%;max-width:1580px;padding:clamp(24px,3.1vw,46px)}
.admin-menu-button{border:1px solid #ebe7ed;background:#fff;color:#5f5662;box-shadow:0 5px 16px rgba(41,32,45,.04)}
.admin-drawer-close{background:#fff4f8;color:#8a5b6b;border:1px solid #f0dce3}

/* Admin overview */
.admin-overview-v3{display:grid;gap:28px}
.admin-welcome-card{min-height:226px;display:grid;grid-template-columns:minmax(0,1fr) 250px;overflow:hidden;border:1px solid #f1d9e2;border-radius:28px;background:linear-gradient(135deg,#fff 0%,#fff8fb 47%,#ffeaf2 100%);box-shadow:var(--ui-shadow)}
.admin-welcome-card>div:first-child{padding:clamp(28px,4vw,50px);align-self:center}.admin-overline{display:block;color:var(--ui-pink-deep);font-size:9px;font-weight:900;letter-spacing:1.8px;margin-bottom:10px}
.admin-welcome-card h1{margin:0;font-size:clamp(34px,4vw,56px);line-height:1;letter-spacing:-2px;color:#282431}.admin-welcome-card p{max-width:600px;margin:14px 0 0;color:#807783;font-size:13px;line-height:1.65}
.admin-welcome-mark{position:relative;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 55% 45%,#fff 0 12%,#ffdce8 35%,#f6a7c1 72%,#ef7ca4 100%)}
.admin-welcome-mark::before,.admin-welcome-mark::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.34)}.admin-welcome-mark::before{width:180px;height:180px;right:-80px;top:-65px}.admin-welcome-mark::after{width:130px;height:130px;left:-55px;bottom:-35px}.admin-welcome-mark span{position:relative;z-index:1;color:#fff;font:italic 700 110px/1 Georgia,serif;text-shadow:0 10px 32px rgba(155,67,98,.15)}
.admin-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:-14px}.admin-section-heading>div{display:grid;gap:4px}.admin-section-heading span{color:#a097a2;font-size:8px;letter-spacing:1.7px;font-weight:900}.admin-section-heading h2{margin:0;color:#37313d;font-size:22px;letter-spacing:-.55px}.admin-section-heading p{margin:0;color:#978e99;font-size:10px}.admin-management-heading{margin-top:4px}
.admin-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.admin-quick-card{position:relative;min-height:172px;display:grid;grid-template-columns:48px 1fr;align-content:start;gap:15px;padding:19px;border:1px solid var(--ui-border);border-radius:22px;background:#fff;box-shadow:0 7px 24px rgba(45,35,50,.04);transition:transform .17s ease,border-color .17s ease,box-shadow .17s ease}.admin-quick-card:hover{transform:translateY(-3px);border-color:#f0cad7;box-shadow:var(--ui-shadow-hover)}
.admin-quick-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;font-size:19px;font-weight:900}.admin-quick-card.pink .admin-quick-icon{background:#fff0f5;color:#d94779}.admin-quick-card.lilac .admin-quick-icon{background:#f3efff;color:#7761ce}.admin-quick-card.blue .admin-quick-icon{background:#edf5ff;color:#4c7fbd}.admin-quick-card.mint .admin-quick-icon{background:#eef9f3;color:#41815c}
.admin-quick-card strong{display:block;margin:2px 0 6px;color:#37313d;font-size:13px}.admin-quick-card p{margin:0;color:#928995;font-size:10px;line-height:1.55}.admin-card-arrow{position:absolute;right:16px;bottom:15px;width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:#faf8fb;color:#a69ca8}.admin-card-arrow svg,.admin-management-card>span svg{width:17px;height:17px}
.admin-management-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.admin-management-card{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 19px;border:1px solid var(--ui-border);border-radius:19px;background:#fff;box-shadow:0 5px 18px rgba(45,35,50,.03);transition:background .16s ease,border-color .16s ease,transform .16s ease}.admin-management-card:hover{background:#fffafb;border-color:#f0cbd8;transform:translateY(-1px)}.admin-management-card strong{color:#423b46;font-size:12px}.admin-management-card p{margin:5px 0 0;color:#9a919c;font-size:9.5px;line-height:1.48}.admin-management-card>span{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#fff2f6;color:var(--ui-pink-deep);flex:0 0 auto}
.admin-role-note{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid #eadff0;border-radius:16px;background:#fbf8fd}.admin-role-note span{padding:5px 8px;border-radius:999px;background:#f2eafa;color:#775890;font-size:8px;font-weight:900;text-transform:uppercase}.admin-role-note p{margin:0;color:#827a88;font-size:10px}

/* Staff workspace uses the same premium shell */
.staff-shell-v3{grid-template-columns:250px minmax(0,1fr);background:linear-gradient(145deg,#f8f8fb,#faf7f9)}
.staff-sidebar-v3{width:250px;padding:20px 14px 16px;background:#fff;color:var(--ui-ink);border-right:1px solid var(--ui-border);box-shadow:10px 0 36px rgba(53,42,57,.035);overflow-y:auto}
.staff-nav-v3{display:grid;gap:4px;margin-top:9px}.staff-sidebar-v3 .sidebar-bottom{margin-top:auto}

/* Existing admin grids/forms become calmer and more consistent */
.admin-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.admin-grid>.card{min-height:150px;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.admin-grid>.card:hover{transform:translateY(-2px);border-color:#f0d0dc;box-shadow:var(--ui-shadow-hover)}.admin-grid .card h3{color:#413b46;font-size:14px}.admin-grid .card p{font-size:10.5px;color:#918995}.admin-grid .card a{font-size:10px;color:var(--ui-pink-deep)}
.split-admin{gap:18px}.card-head{padding-bottom:4px}.card-head h2,.card-head h3{font-size:15px;color:#413b46}.tag-list span{background:#fff2f6;color:#9e536d;border:1px solid #f4dbe3}.check-field{border-color:#e9e4eb;border-radius:14px;background:#fcfbfc}.thumb{border-radius:15px;background:#fff0f5;color:var(--ui-pink-deep)}
.media-admin-card{border-color:var(--ui-border);border-radius:20px;box-shadow:0 6px 22px rgba(42,33,47,.035)}
.metric{border-color:var(--ui-border);border-radius:18px;box-shadow:0 6px 20px rgba(43,33,48,.035)}.summary-box{background:#fff7fa;border:1px solid #f3e2e8;border-radius:16px}

/* POS polish on top of RC15 */
.pos-page-head h1{font-size:clamp(34px,3.3vw,50px);letter-spacing:-1.8px}.pos-page-head p{color:#8c838f}.pos-toolbar{border-color:#e8e4ea;background:rgba(248,248,251,.92);box-shadow:0 9px 26px rgba(43,34,48,.04)}
.pos-tabs{background:#f0edf2}.pos-tabs button.active{color:var(--ui-pink-deep);box-shadow:0 4px 13px rgba(49,36,54,.07)}.pos-catalog-card{background:linear-gradient(180deg,#fff,#fffefe);border-color:#ebe7ed}.pos-catalog-card:hover:not(:disabled){border-color:#f0b8cb}.pos-cart-v2{border-color:#e8e4eb;box-shadow:0 18px 52px rgba(42,31,47,.075)}

/* Client app: keep premium mobile language but tighten visual consistency */
.client-app-shell.glow-app-shell{background:linear-gradient(180deg,#fff9fb 0,#fff 28%,#fff 100%)}
.glow-topbar{border-bottom-color:#f1e9ee}.glow-bottom-nav.client-bottom-nav{border:1px solid #eee8ed;box-shadow:0 14px 44px rgba(65,47,59,.12)}
.glow-bottom-nav a.active{color:var(--ui-pink-deep)}

/* Public site polish */
.public-header{background:rgba(255,252,250,.9);border-bottom-color:rgba(237,229,232,.82)}
.hero{border:1px solid #f2e2e4;box-shadow:0 24px 72px rgba(98,61,68,.08)}
.service-card,.promo-card,.gallery-grid figure{border-color:#eee5e7;box-shadow:0 7px 24px rgba(82,54,60,.035)}
.service-card:hover{box-shadow:0 18px 46px rgba(92,54,65,.09)}

@media(max-width:1280px){.admin-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-management-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1100px){
  .admin-shell-v3,.staff-shell-v3{grid-template-columns:1fr}
  .admin-sidebar-v3,.staff-sidebar-v3{position:fixed!important;inset:0 auto 0 0;z-index:100;width:min(310px,88vw);height:100dvh!important;transform:translateX(-104%);transition:transform .22s ease;padding:18px 14px;overflow-y:auto;box-shadow:24px 0 60px rgba(24,17,21,.18)}
  .admin-sidebar-v3.open,.staff-sidebar-v3.open{transform:translateX(0)}
  .admin-sidebar-v3 .admin-nav-group>div,.staff-nav-v3{display:grid!important}.admin-drawer-close,.admin-menu-button{display:grid;place-items:center}
}
@media(max-width:820px){
  .admin-content-v3{padding:20px 15px 36px}.admin-welcome-card{grid-template-columns:1fr 150px}.admin-welcome-mark span{font-size:82px}.admin-management-grid{grid-template-columns:1fr}.page-title,.page-heading{align-items:flex-start}
}
@media(max-width:620px){
  body{background:#f8f8fb}.admin-content-v3{padding:18px 12px 32px}.admin-header-v3{height:66px;padding:0 11px}.admin-account{padding:3px;border:0;background:transparent;box-shadow:none}.admin-account-copy{display:none}.admin-avatar{width:36px;height:36px}.admin-page-context small{display:none}.admin-page-context strong{font-size:13px}.admin-menu-button{width:38px;height:38px;border-radius:12px}
  .admin-welcome-card{grid-template-columns:1fr;min-height:0;border-radius:23px}.admin-welcome-card>div:first-child{padding:25px 22px}.admin-welcome-card h1{font-size:36px;letter-spacing:-1.4px}.admin-welcome-card p{font-size:11px}.admin-welcome-mark{display:none}
  .admin-section-heading{align-items:flex-start}.admin-section-heading>p{display:none}.admin-quick-grid{grid-template-columns:1fr 1fr;gap:9px}.admin-quick-card{min-height:158px;grid-template-columns:1fr;padding:15px;border-radius:18px}.admin-quick-icon{width:40px;height:40px;border-radius:13px;font-size:16px}.admin-quick-card strong{font-size:11px}.admin-quick-card p{font-size:8.5px}.admin-card-arrow{right:12px;bottom:12px;width:28px;height:28px}
  .admin-management-card{min-height:92px;padding:15px;border-radius:17px}.admin-role-note{align-items:flex-start;flex-direction:column;gap:7px}
  .page-title h1,.page-heading h1{font-size:30px!important}.page-title p:not(.eyebrow),.page-heading p:not(.eyebrow){font-size:11px}.card{padding:17px;border-radius:18px}.admin-grid{grid-template-columns:1fr}.split-admin{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .field:has(textarea),.form-grid .full{grid-column:auto}.button-row{gap:6px}.button-row .button{flex:1;min-width:105px}
  .compact-row{align-items:flex-start;flex-direction:column}.compact-row>.button-row{width:100%}.admin-row{grid-template-columns:46px minmax(0,1fr)}.admin-row>:nth-child(n+3){grid-column:2}.row-actions{justify-content:flex-start}
  .toast{left:12px;right:12px;top:78px;max-width:none}
}
@media(max-width:390px){.admin-quick-grid{grid-template-columns:1fr}.admin-quick-card{min-height:132px;grid-template-columns:44px 1fr}.admin-quick-card p{font-size:9px}.admin-quick-icon{width:44px;height:44px}}

/* ========================================================================== 
   RC17 — premium pink app-style UI system
   ========================================================================== */
:root {
  --v17-pink: #ef6a9a;
  --v17-pink-dark: #d94d82;
  --v17-pink-soft: #ffe8f0;
  --v17-pink-pale: #fff6f9;
  --v17-ink: #24212f;
  --v17-muted: #747080;
  --v17-line: #eee8ee;
  --v17-bg: #f7f7fb;
  --v17-lilac: #eee9ff;
  --v17-peach: #fff0e7;
  --v17-shadow: 0 24px 70px rgba(38, 30, 50, .10);
  --v17-card-shadow: 0 10px 30px rgba(43, 33, 52, .07);
}
body { background: var(--v17-bg); color: var(--v17-ink); }
.button { border-radius: 15px; background: var(--v17-pink); box-shadow: 0 10px 24px rgba(239,106,154,.22); font-weight: 800; letter-spacing: -.01em; }
.button:hover:not(:disabled) { background: var(--v17-pink-dark); }
.button.secondary { color: var(--v17-ink); border-color: #eadfe5; background: #fff; box-shadow: 0 7px 18px rgba(41,33,48,.05); }
.brand { min-width: 104px; }
.brand-script { font-family: ui-rounded, "SF Pro Rounded", Inter, ui-sans-serif, system-ui, sans-serif; font-style: normal; font-weight: 900; font-size: 27px; letter-spacing: -1.4px; color: var(--v17-ink); }
.brand-sub { color: var(--v17-pink); font-weight: 800; letter-spacing: 2.6px; font-size: 8px; margin-left: 1px; }
.brand.compact .brand-script { font-size: 25px; }

.public-site-v17 { min-height:100vh; background:linear-gradient(180deg,#fff 0,#fff 31%,#f8f7fb 70%,#fff 100%); padding-bottom:0; }
.v17-header { height:76px; position:sticky; top:0; z-index:60; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:32px; padding:0 max(24px,calc((100vw - 1240px)/2)); background:rgba(255,255,255,.88); backdrop-filter:blur(22px); border-bottom:1px solid rgba(238,232,238,.85); }
.v17-brand-link { display:flex; align-items:center; }
.v17-header nav { display:flex; justify-content:center; gap:30px; }
.v17-header nav a { font-size:13px; font-weight:700; color:#706b79; transition:.18s ease; }
.v17-header nav a:hover { color:var(--v17-pink-dark); }
.v17-header-actions { display:flex; align-items:center; gap:10px; }
.v17-ghost-link { border:0; background:transparent; padding:10px 12px; color:#6f6978; font-size:13px; font-weight:750; cursor:pointer; border-radius:12px; }
.v17-ghost-link:hover { background:#faf7f9; color:var(--v17-ink); }
.v17-header-cta { min-height:42px; padding-inline:18px; }
.v17-main { width:min(1240px,calc(100% - 36px)); margin:0 auto; }

.v17-hero { display:grid; grid-template-columns:minmax(0,1.03fr) minmax(420px,.97fr); gap:24px; padding-top:28px; align-items:stretch; }
.v17-hero-copy { min-height:610px; padding:72px 68px; border-radius:34px; background:#fff; border:1px solid var(--v17-line); box-shadow:var(--v17-card-shadow); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.v17-kicker { display:inline-flex; align-items:center; gap:8px; color:#a05372; font-size:11px; font-weight:850; letter-spacing:2.2px; margin-bottom:24px; }
.v17-kicker span { width:30px; height:30px; border-radius:10px; background:var(--v17-pink-soft); color:var(--v17-pink-dark); display:grid; place-items:center; }
.v17-hero h1 { margin:0; max-width:650px; font-family:ui-rounded,"SF Pro Rounded",Inter,system-ui,sans-serif; font-size:clamp(48px,4.8vw,72px); line-height:.98; letter-spacing:-.055em; font-weight:900; color:var(--v17-ink); }
.v17-hero-copy > p { max-width:590px; color:var(--v17-muted); font-size:17px; line-height:1.65; margin:24px 0 30px; }
.v17-hero-actions { display:flex; flex-wrap:wrap; gap:10px; }
.v17-feature-pills { display:flex; flex-wrap:wrap; gap:8px; margin-top:34px; }
.v17-feature-pills span { display:inline-flex; align-items:center; gap:7px; border:1px solid #eee8ee; background:#fbfafc; padding:9px 12px; border-radius:999px; font-size:11px; font-weight:750; color:#6f6979; }

.v17-experience { min-height:610px; position:relative; overflow:hidden; border-radius:34px; padding:54px 46px; background:linear-gradient(145deg,#ffe6ef 0%,#fbd8e5 46%,#f6cfe0 100%); box-shadow:var(--v17-card-shadow); isolation:isolate; display:grid; place-items:center; }
.v17-experience-glow { position:absolute; border-radius:50%; filter:blur(4px); opacity:.8; z-index:-1; }
.v17-experience-glow.one { width:310px; height:310px; top:-90px; right:-80px; background:rgba(255,255,255,.75); }
.v17-experience-glow.two { width:260px; height:260px; bottom:-110px; left:-80px; background:rgba(255,255,255,.42); }
.v17-phone-card { width:min(420px,100%); background:rgba(255,255,255,.96); border:1px solid rgba(255,255,255,.85); border-radius:29px; padding:20px; box-shadow:0 30px 70px rgba(108,48,75,.17); }
.v17-phone-head { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:17px; }
.v17-phone-head > div { display:grid; gap:2px; }
.v17-phone-head small { font-size:8px; letter-spacing:2px; font-weight:900; color:#bb6b89; }
.v17-phone-head strong { font-size:18px; letter-spacing:-.02em; }
.v17-avatar { width:38px; height:38px; display:grid; place-items:center; border-radius:13px; background:linear-gradient(145deg,#f681ac,#e85b91); color:#fff; font-weight:900; box-shadow:0 9px 18px rgba(232,91,145,.24); }
.v17-date-card { display:grid; grid-template-columns:auto 1fr; gap:13px; padding:16px; border-radius:19px; background:linear-gradient(135deg,#fff5f8,#fff); border:1px solid #f5e4eb; }
.v17-date-icon { width:45px; height:45px; border-radius:15px; background:var(--v17-pink); color:#fff; display:grid; place-items:center; }
.v17-date-card > div:last-child { display:grid; gap:3px; }
.v17-date-card small { color:#8d8490; font-size:9px; }
.v17-date-card strong { font-size:15px; }
.v17-date-card span { color:#8d8490; font-size:10px; line-height:1.45; }
.v17-mini-title { display:flex; justify-content:space-between; align-items:center; gap:14px; margin:18px 2px 10px; }
.v17-mini-title span { font-size:12px; font-weight:850; }
.v17-mini-title small { color:#9b929e; font-size:9px; }
.v17-mini-services { display:grid; gap:8px; }
.v17-mini-service { min-width:0; display:grid; grid-template-columns:44px minmax(0,1fr) auto; gap:10px; align-items:center; padding:9px; border:1px solid #f0e9ef; border-radius:15px; background:#fff; }
.v17-mini-service-image { width:44px; height:44px; border-radius:13px; display:grid; place-items:center; color:#c85785; background:linear-gradient(145deg,#ffe7ef,#f9dce8); background-position:center; background-size:cover; }
.v17-mini-service > div:nth-child(2) { min-width:0; display:grid; gap:2px; }
.v17-mini-service strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
.v17-mini-service small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#9b929e; font-size:8px; }
.v17-mini-service > span { color:#c44f7b; font-weight:850; font-size:10px; }
.v17-mini-service.placeholder { grid-template-columns:44px minmax(0,1fr); }
.v17-phone-button { width:100%; margin-top:14px; min-height:44px; }
.v17-floating-card { position:absolute; z-index:3; display:flex; align-items:center; gap:10px; border:1px solid rgba(255,255,255,.9); background:rgba(255,255,255,.94); backdrop-filter:blur(14px); box-shadow:0 18px 42px rgba(84,40,61,.13); border-radius:17px; padding:11px 13px; color:var(--v17-ink); }
.v17-floating-card > span { width:34px; height:34px; border-radius:11px; display:grid; place-items:center; background:var(--v17-pink-soft); color:var(--v17-pink-dark); }
.v17-floating-card div { display:grid; text-align:left; gap:1px; }
.v17-floating-card small { color:#968b95; font-size:8px; }
.v17-floating-card strong { font-size:10px; }
.v17-floating-card.walk { left:16px; bottom:56px; cursor:pointer; }
.v17-floating-card.reward { right:17px; top:66px; }

.v17-quick-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:22px 0 0; }
.v17-quick-grid article { display:grid; grid-template-columns:auto 1fr; gap:15px; align-items:flex-start; padding:22px; background:#fff; border:1px solid var(--v17-line); border-radius:24px; box-shadow:0 8px 24px rgba(43,33,52,.045); }
.v17-icon-bubble { width:46px; height:46px; border-radius:15px; display:grid; place-items:center; }
.v17-icon-bubble.pink { background:var(--v17-pink-soft); color:var(--v17-pink-dark); }
.v17-icon-bubble.lilac { background:var(--v17-lilac); color:#7461c9; }
.v17-icon-bubble.peach { background:var(--v17-peach); color:#cf7c52; }
.v17-quick-grid small { color:#a69eaa; font-size:8px; letter-spacing:1.2px; font-weight:850; }
.v17-quick-grid h3 { margin:4px 0 5px; font-size:16px; letter-spacing:-.025em; }
.v17-quick-grid p { margin:0; color:var(--v17-muted); font-size:11px; line-height:1.55; }

.v17-section { padding-top:82px; }
.v17-section-head { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:24px; }
.v17-section-head > div { max-width:700px; }
.v17-overline { display:block; color:#bf6587; font-size:9px; font-weight:900; letter-spacing:2.2px; margin-bottom:9px; }
.v17-section h2,.v17-location h2 { margin:0; font-family:ui-rounded,"SF Pro Rounded",Inter,system-ui,sans-serif; font-size:clamp(34px,3.1vw,48px); line-height:1.05; letter-spacing:-.045em; font-weight:900; }
.v17-section-head p { margin:10px 0 0; color:var(--v17-muted); font-size:13px; line-height:1.6; }
.v17-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.v17-service-card { overflow:hidden; background:#fff; border:1px solid var(--v17-line); border-radius:25px; box-shadow:0 8px 24px rgba(43,33,52,.045); transition:transform .2s ease,box-shadow .2s ease; }
.v17-service-card:hover { transform:translateY(-4px); box-shadow:0 18px 42px rgba(43,33,52,.09); }
.v17-service-photo { height:220px; position:relative; display:grid; place-items:center; background:linear-gradient(145deg,#ffe8f0,#f3e9ff); color:#cc638a; background-size:cover; background-position:center; }
.v17-service-photo > span { width:56px; height:56px; border-radius:19px; display:grid; place-items:center; background:rgba(255,255,255,.68); backdrop-filter:blur(8px); }
.v17-service-photo em { position:absolute; left:14px; top:14px; padding:7px 10px; border-radius:999px; background:rgba(255,255,255,.9); box-shadow:0 5px 15px rgba(44,34,49,.05); font-style:normal; color:#766d78; font-size:9px; font-weight:800; }
.v17-service-body { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px 17px 18px; }
.v17-service-body h3 { margin:0; font-size:15px; letter-spacing:-.02em; }
.v17-service-body small { display:block; margin-top:4px; color:#99909d; font-size:9px; }
.v17-service-body > strong { flex:0 0 auto; color:#c94f7c; font-size:13px; }

.v17-promo-feature { min-height:390px; position:relative; overflow:hidden; border-radius:30px; background:linear-gradient(135deg,#f8dfe8,#edc6d8); box-shadow:var(--v17-card-shadow); }
.v17-promo-feature img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.v17-promo-feature::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(36,27,39,.64) 0%,rgba(36,27,39,.32) 48%,rgba(36,27,39,.05) 100%); }
.v17-promo-overlay { position:relative; z-index:2; width:min(530px,100%); padding:56px; color:#fff; }
.v17-promo-overlay > span { font-size:9px; letter-spacing:2px; font-weight:900; opacity:.86; }
.v17-promo-overlay h3 { margin:11px 0; font-size:clamp(34px,4vw,54px); line-height:1; letter-spacing:-.04em; }
.v17-promo-overlay p { line-height:1.6; color:rgba(255,255,255,.86); }
.v17-promo-skeleton { min-height:390px; }

.v17-gallery { display:grid; grid-template-columns:1.35fr repeat(2,1fr); grid-template-rows:repeat(2,220px); gap:14px; }
.v17-gallery figure { margin:0; position:relative; overflow:hidden; border-radius:24px; background:#fff; border:1px solid var(--v17-line); }
.v17-gallery figure.featured { grid-row:1/3; }
.v17-gallery img { width:100%; height:100%; display:block; object-fit:cover; }
.v17-gallery figcaption { position:absolute; left:12px; right:12px; bottom:12px; padding:9px 11px; border-radius:12px; background:rgba(255,255,255,.9); backdrop-filter:blur(10px); color:#5d5662; font-size:10px; }

.v17-location { margin:82px 0 70px; padding:34px; display:grid; grid-template-columns:1.1fr .9fr; gap:28px; border-radius:32px; background:linear-gradient(145deg,#27222e,#352a38); color:#fff; box-shadow:var(--v17-shadow); }
.v17-location-copy { padding:24px; align-self:center; }
.v17-location-copy .v17-overline { color:#f1a9c4; }
.v17-location-copy > p { max-width:620px; color:#cfc8d1; line-height:1.7; }
.v17-contact-pills { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0; }
.v17-contact-pills a { padding:9px 12px; border-radius:999px; background:rgba(255,255,255,.08); color:#f6dbe5; border:1px solid rgba(255,255,255,.09); font-size:11px; }
.v17-location-actions { display:flex; flex-wrap:wrap; gap:9px; }
.v17-location .button.secondary { background:rgba(255,255,255,.08); color:#fff; border-color:rgba(255,255,255,.18); }
.v17-hours-card { padding:22px; border-radius:24px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.1); }
.v17-hours-head { display:flex; gap:12px; align-items:center; margin-bottom:14px; }
.v17-hours-head > div { display:grid; gap:2px; }
.v17-hours-head small { color:#bcb2bf; font-size:8px; letter-spacing:1.5px; font-weight:900; }
.v17-hours-head strong { font-size:16px; }
.v17-hour-row { display:flex; justify-content:space-between; gap:18px; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.08); color:#cfc7d1; font-size:11px; }
.v17-hour-row strong { color:#fff; }
.v17-content-error { margin-top:22px; padding:14px 16px; border:1px solid #f2d5df; border-radius:16px; background:#fff3f7; color:#8f4763; }
.v17-footer { width:min(1240px,calc(100% - 36px)); margin:0 auto; padding:28px 0 46px; border-top:1px solid var(--v17-line); display:grid; grid-template-columns:1fr auto auto; gap:30px; align-items:center; color:#8d8591; }
.v17-footer > div:first-child p { max-width:380px; margin:8px 0 0; font-size:11px; line-height:1.5; }
.v17-footer-links { display:flex; gap:14px; }
.v17-footer-links a,.v17-footer-links button { border:0; background:transparent; padding:0; color:#665e6a; font-size:11px; font-weight:750; cursor:pointer; }
.v17-footer > small { font-size:10px; }
.v17-mobile-dock { display:none; }

/* RC17 shared app polish */
.internal-shell { background:#f7f7fb; }
.internal-sidebar { background:#fff; color:var(--v17-ink); border-right:1px solid var(--v17-line); box-shadow:none; }
.internal-sidebar .sidebar-label { color:#b2a9b3; }
.internal-sidebar nav a { color:#746d79; border-radius:13px; font-weight:700; }
.internal-sidebar nav a:hover { color:var(--v17-ink); background:#faf7fa; }
.internal-sidebar nav a.active { color:#c54574; background:#ffe9f1; }
.sidebar-bottom a,.sidebar-bottom button { color:#807783; }
.internal-header { background:rgba(255,255,255,.9); border-color:var(--v17-line); }
.internal-content { padding:30px; }
.page-title h1,.page-heading h1,.client-page h1,.client-page h2,.staff-placeholder h1 { font-family:ui-rounded,"SF Pro Rounded",Inter,system-ui,sans-serif; font-weight:900; letter-spacing:-.045em; }
.card { border-color:var(--v17-line); border-radius:22px; box-shadow:0 8px 24px rgba(43,33,52,.045); }
.input { min-height:47px; border-radius:13px; border-color:#e5dfe5; background:#fff; }
.input:focus { border-color:#ed95b5; box-shadow:0 0 0 4px rgba(239,106,154,.10); outline:0; }
.status-chip { border-radius:999px; }
.client-app-shell,.client-shell { background:#f8f7fb; box-shadow:none; }
.client-app-header { background:rgba(255,255,255,.94); border-color:var(--v17-line); }
.client-bottom-nav { height:70px; bottom:12px; border:1px solid var(--v17-line); border-radius:22px; box-shadow:0 16px 38px rgba(43,33,52,.12); width:min(500px,calc(100vw - 24px)); overflow:hidden; }
.service-check { border-radius:18px; }
.service-check.selected { background:#fff1f6; border-color:#f09abd; box-shadow:0 0 0 3px rgba(239,106,154,.10); }

@media (max-width: 980px) {
  .v17-header { grid-template-columns:auto 1fr; padding:0 18px; }
  .v17-header nav { display:none; }
  .v17-header-actions { justify-content:flex-end; }
  .v17-ghost-link { display:none; }
  .v17-main { width:min(100% - 24px,760px); }
  .v17-hero { grid-template-columns:1fr; }
  .v17-hero-copy { min-height:auto; padding:48px 40px; }
  .v17-experience { min-height:560px; }
  .v17-quick-grid { grid-template-columns:1fr; }
  .v17-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v17-gallery { grid-template-columns:1fr 1fr; grid-template-rows:300px 210px 210px; }
  .v17-gallery figure.featured { grid-column:1/3; grid-row:auto; }
  .v17-location { grid-template-columns:1fr; }
  .v17-footer { grid-template-columns:1fr; gap:16px; }
}

@media (max-width: 680px) {
  .public-site-v17 { padding-bottom:92px; }
  .v17-header { height:66px; }
  .v17-header-actions .button { min-height:39px; padding:0 13px; font-size:12px; }
  .v17-main { width:calc(100% - 20px); }
  .v17-hero { padding-top:10px; gap:10px; }
  .v17-hero-copy { border-radius:26px; padding:34px 24px 30px; }
  .v17-kicker { font-size:9px; margin-bottom:18px; }
  .v17-hero h1 { font-size:clamp(40px,12vw,54px); }
  .v17-hero-copy > p { font-size:14px; margin:18px 0 23px; }
  .v17-hero-actions { display:grid; grid-template-columns:1fr; width:100%; }
  .v17-hero-actions .button { width:100%; }
  .v17-feature-pills { margin-top:24px; }
  .v17-experience { min-height:520px; border-radius:26px; padding:38px 18px; }
  .v17-phone-card { border-radius:24px; padding:15px; }
  .v17-floating-card.walk { left:8px; bottom:26px; }
  .v17-floating-card.reward { right:8px; top:26px; }
  .v17-quick-grid { gap:10px; padding-top:10px; }
  .v17-quick-grid article { border-radius:20px; padding:18px; }
  .v17-section { padding-top:58px; }
  .v17-section-head { align-items:flex-start; flex-direction:column; }
  .v17-section h2,.v17-location h2 { font-size:34px; }
  .v17-service-grid { grid-template-columns:1fr; gap:12px; }
  .v17-service-photo { height:205px; }
  .v17-promo-feature { min-height:420px; }
  .v17-promo-overlay { padding:30px 22px; position:absolute; left:0; bottom:0; }
  .v17-gallery { grid-template-columns:1fr 1fr; grid-template-rows:250px 170px 170px; gap:9px; }
  .v17-gallery figure { border-radius:18px; }
  .v17-location { margin:58px 0 24px; padding:14px; border-radius:26px; }
  .v17-location-copy { padding:20px 14px; }
  .v17-footer { width:calc(100% - 30px); padding-bottom:26px; }
  .v17-mobile-dock { position:fixed; z-index:80; left:12px; right:12px; bottom:10px; height:68px; display:grid; grid-template-columns:1fr 1fr 58px 1fr 1fr; align-items:center; padding:5px 9px; border-radius:23px; border:1px solid var(--v17-line); background:rgba(255,255,255,.94); backdrop-filter:blur(20px); box-shadow:0 18px 45px rgba(43,33,52,.16); }
  .v17-mobile-dock a,.v17-mobile-dock > button:not(.v17-mobile-book) { height:100%; display:grid; place-items:center; align-content:center; gap:2px; color:#9a929e; background:transparent; border:0; }
  .v17-mobile-dock small { font-size:8px; font-weight:700; }
  .v17-mobile-book { width:52px; height:52px; margin-top:-25px; border-radius:17px; display:grid; place-items:center; background:var(--v17-pink); color:#fff; box-shadow:0 11px 24px rgba(239,106,154,.32); cursor:pointer; }
  .internal-content { padding:18px 12px 32px; }
  .client-bottom-nav { bottom:8px; }
}

/* RC21 — wall-QR-only walk-in entry */
.walkin-direct-only{min-height:100vh;background:linear-gradient(180deg,#fff9fb 0%,#fff 60%);padding:0 20px 40px}
.walkin-direct-only>header{max-width:760px;margin:0 auto;padding:20px 0 14px;border-bottom:1px solid #f2e6eb}
.walkin-direct-only>main{max-width:620px;margin:64px auto 0}
.walkin-direct-only .card{text-align:center;padding:clamp(26px,5vw,44px);border-radius:28px}
.walkin-direct-only h1{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;font-size:clamp(2rem,5vw,3.2rem)!important;font-weight:900!important;letter-spacing:-.045em;line-height:1!important;color:#252134;margin:12px 0 18px!important}
.walkin-direct-only p:not(.eyebrow){color:#746a73;line-height:1.7;margin:0 auto 24px;max-width:500px}
.glow-feature-button.is-static{cursor:pointer}
@media(max-width:680px){.walkin-direct-only{padding:0 12px 28px}.walkin-direct-only>main{margin-top:28px}.walkin-direct-only .card{border-radius:24px}}

/* ========================================================================== */
/* RC22 — SIMPLE CLEAN UI                                                     */
/* Inspired by the restrained People/Role dialog: white space, fine borders, */
/* one pink accent, minimal decoration, predictable controls.                 */
/* ========================================================================== */
:root{
  --clean-bg:#f7f7f8;
  --clean-surface:#ffffff;
  --clean-ink:#2f2d38;
  --clean-muted:#77727c;
  --clean-line:#e9e7ea;
  --clean-pink:#ea5f91;
  --clean-pink-dark:#cf4d7b;
  --clean-pink-soft:#fff0f5;
  --clean-green:#31724d;
  --clean-radius:16px;
  --clean-shadow:0 8px 28px rgba(35,31,42,.055);
}
html,body,#root{background:var(--clean-bg)!important;color:var(--clean-ink)}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}

/* Core controls */
.button{min-height:42px;padding:0 17px;border-radius:12px;background:var(--clean-pink);box-shadow:none;font-weight:750}
.button:hover:not(:disabled){background:var(--clean-pink-dark);transform:none}
.button.secondary{background:#fff;border:1px solid var(--clean-line);color:var(--clean-ink);box-shadow:none}
.button.secondary:hover:not(:disabled){background:#faf9fa;border-color:#dedbe0}
.icon-button{background:#f8f6f7;border:1px solid var(--clean-line);border-radius:11px}
.input{min-height:42px;border:1px solid #dedbe0;border-radius:10px;background:#fff;padding:9px 11px;box-shadow:none}
.input:focus{border-color:#e7a9bf;box-shadow:0 0 0 3px rgba(234,95,145,.08)}
.card{background:#fff;border:1px solid var(--clean-line);border-radius:16px;box-shadow:none;padding:20px}
.status-chip{border-radius:999px;background:#f3f1f3;color:#68636d;font-size:9px;letter-spacing:.02em}
.status-chip.success{background:#edf7f0;color:#3b7652}.status-chip.warning{background:#fff5e6;color:#8b632a}.status-chip.danger{background:#fff0f1;color:#9a444d}
.empty-state{border:1px dashed #dcd8dd;border-radius:16px;background:#fff;min-height:180px}
.toast{top:20px;right:20px;border-radius:12px;box-shadow:0 12px 32px rgba(35,31,42,.14);font-weight:650}

/* Modal: intentionally very close to the requested clean reference. */
.modal-backdrop{background:rgba(36,34,41,.42);backdrop-filter:blur(4px);padding:20px}
.modal{width:min(680px,100%);padding:22px;border:1px solid #ece9ed;border-radius:18px;box-shadow:0 24px 70px rgba(35,31,42,.18)}
.modal-head{margin-bottom:16px}.modal-head h2{font-size:20px;letter-spacing:-.02em}.modal-head .icon-button{width:38px;height:38px}
.modal-actions{padding-top:12px;gap:8px}.modal-actions .button{min-width:110px}
.role-editor-clean{gap:18px}
.role-person-head{display:flex;align-items:center;gap:12px;padding:0 0 14px;border-bottom:1px solid var(--clean-line)}
.role-person-head>div:last-child{display:grid;gap:2px}.role-person-head strong{font-size:14px}.role-person-head span{font-size:12px;color:var(--clean-muted)}
.simple-avatar{width:44px;height:44px;border-radius:50%;background:var(--clean-pink-soft);color:var(--clean-pink-dark);font-weight:850}
.simple-avatar.small{width:38px;height:38px;flex:0 0 auto}
.role-checkboxes-clean{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.role-checkboxes-clean label{position:relative;display:grid;grid-template-columns:18px 1fr;align-items:start;gap:10px;padding:13px;border:1px solid var(--clean-line);border-radius:12px;background:#fff;cursor:pointer;transition:border-color .14s ease,background .14s ease}
.role-checkboxes-clean label:hover:not(.disabled){border-color:#dfcbd3;background:#fffdfd}
.role-checkboxes-clean label.selected{border-color:#efbfd0;background:#fff9fb}
.role-checkboxes-clean label.disabled{opacity:.45;cursor:not-allowed}
.role-checkboxes-clean input{width:15px;height:15px;margin:2px 0 0;accent-color:var(--clean-pink)}
.role-copy{display:grid;gap:3px}.role-copy strong{font-size:13px;font-weight:750}.role-copy small{font-size:10px;line-height:1.45;color:var(--clean-muted)}
.role-note{margin:0;color:var(--clean-muted);font-size:11px}
.clean-modal-actions{border-top:1px solid var(--clean-line);padding-top:16px}

/* People list */
.simple-page-title{margin-bottom:18px}.simple-page-title .eyebrow{margin-bottom:5px;color:var(--clean-pink-dark);letter-spacing:1.8px;font-size:9px}.simple-page-title h1{font-family:inherit;font-size:30px;letter-spacing:-.035em;font-weight:800}.simple-page-title p:not(.eyebrow){margin-top:5px;font-size:13px}
.simple-people-list{padding:4px 18px}.simple-person-row{grid-template-columns:44px minmax(0,1fr) auto auto;min-height:68px;padding:11px 0;border-color:#f0eef1}.simple-person-row .row-main strong{font-size:13px}.simple-person-row .row-main span{font-size:10px}.simple-edit-role{background:transparent!important;color:var(--clean-pink-dark)!important;border:1px solid #f0d7e1!important;border-radius:9px!important;padding:7px 10px!important;font-weight:700}.simple-edit-role:hover{background:var(--clean-pink-soft)!important}

/* Admin and staff — calm workspace rather than decorative dashboard. */
.admin-shell-v3,.staff-shell-v3{background:var(--clean-bg)!important}
.admin-sidebar-v3,.staff-sidebar-v3{background:#fff!important;border-right:1px solid var(--clean-line)!important;box-shadow:none!important}
.admin-sidebar-v3 .brand-script,.staff-sidebar-v3 .brand-script{color:var(--clean-ink)!important}.admin-sidebar-v3 .brand-sub,.staff-sidebar-v3 .brand-sub{color:var(--clean-pink)!important}
.admin-brand-note{color:#aaa5ad!important}
.admin-sidebar-v3 .admin-nav-group-label,.staff-sidebar-v3 .admin-nav-group-label{color:#a39ea6!important;letter-spacing:1.4px!important}
.admin-sidebar-v3 .admin-nav-group a,.staff-nav-v3 a{border-radius:10px!important;color:#6d6871!important;min-height:40px!important;font-weight:650!important}
.admin-sidebar-v3 .admin-nav-group a:hover,.staff-nav-v3 a:hover{background:#f8f7f8!important;color:var(--clean-ink)!important;transform:none!important}
.admin-sidebar-v3 .admin-nav-group a.active,.staff-nav-v3 a.active{background:var(--clean-pink-soft)!important;color:var(--clean-pink-dark)!important;box-shadow:none!important}
.admin-nav-icon,.staff-nav-icon{background:transparent!important;box-shadow:none!important}
.internal-header,.admin-header-v3,.staff-header-v3{background:rgba(255,255,255,.96)!important;border-bottom:1px solid var(--clean-line)!important;backdrop-filter:blur(12px);box-shadow:none!important}
.internal-content,.admin-content-v3,.staff-content-v3{max-width:1320px;padding:26px 28px 48px!important}
.page-title{margin-bottom:20px}.page-title h1{font-family:inherit!important;font-size:31px!important;letter-spacing:-.035em!important;font-weight:800!important}.page-title p:not(.eyebrow){font-size:13px;color:var(--clean-muted)}
.admin-grid{gap:12px}.admin-grid .card{min-height:unset}
.admin-row{border-color:#efedf0}.row-actions button{background:#faf8f9;color:#655f68;border:1px solid #ebe7eb;border-radius:9px}.row-actions button:hover{background:#f5f2f4}
.thumb{border-radius:12px;background:#faf0f4;color:var(--clean-pink-dark)}

/* Public site — remove the over-designed mockup feeling. */
.public-site-v17{background:#fff!important}
.v17-header{height:68px;background:rgba(255,255,255,.97)!important;border-bottom:1px solid var(--clean-line)!important;backdrop-filter:blur(10px)}
.v17-header nav a,.v17-ghost-link{font-weight:600!important;color:#6f6a73!important}.v17-header nav a:hover,.v17-ghost-link:hover{color:var(--clean-pink-dark)!important;background:transparent!important}
.v17-main{width:min(1120px,calc(100% - 32px))!important}
.v17-hero{grid-template-columns:1fr 430px!important;gap:16px!important;padding-top:20px!important}
.v17-hero-copy{min-height:500px!important;padding:56px!important;border-radius:20px!important;border:1px solid var(--clean-line)!important;box-shadow:none!important}
.v17-kicker{margin-bottom:18px!important;letter-spacing:1.7px!important;font-size:9px!important;color:#9f6680!important}.v17-kicker span{border-radius:9px!important;background:var(--clean-pink-soft)!important}
.v17-hero h1{max-width:560px!important;font-size:clamp(42px,4.2vw,60px)!important;line-height:1.02!important;letter-spacing:-.045em!important}
.v17-hero-copy>p{font-size:15px!important;line-height:1.6!important;margin:20px 0 24px!important;color:var(--clean-muted)!important}
.v17-feature-pills{margin-top:26px!important}.v17-feature-pills span{background:#fff!important;border:1px solid var(--clean-line)!important;border-radius:10px!important;padding:8px 10px!important;font-weight:650!important}
.v17-experience{min-height:500px!important;border-radius:20px!important;padding:32px!important;background:#fff7fa!important;border:1px solid #f3e1e8!important;box-shadow:none!important}
.v17-experience-glow,.v17-floating-card{display:none!important}
.v17-phone-card{width:100%!important;border-radius:18px!important;border:1px solid #eee7eb!important;box-shadow:var(--clean-shadow)!important;padding:18px!important;background:#fff!important}
.v17-avatar{border-radius:50%!important;background:var(--clean-pink)!important;box-shadow:none!important}
.v17-date-card{background:#fff!important;border-color:var(--clean-line)!important;border-radius:14px!important}.v17-date-icon{background:var(--clean-pink)!important;border-radius:12px!important}
.v17-mini-service{border-radius:12px!important}.v17-mini-service-image{border-radius:10px!important;background:var(--clean-pink-soft)!important}
.v17-quick-grid{gap:10px!important}.v17-quick-grid article{border-radius:16px!important;box-shadow:none!important;border:1px solid var(--clean-line)!important;background:#fff!important}
.v17-section{padding-top:64px!important}.v17-section h2,.v17-location h2{font-size:clamp(30px,3vw,40px)!important;letter-spacing:-.035em!important}
.v17-service-grid{gap:12px!important}.v17-service-card{border-radius:16px!important;box-shadow:none!important}.v17-service-card:hover{transform:none!important;box-shadow:var(--clean-shadow)!important}.v17-service-photo{background:#faf7f9!important;height:200px!important}.v17-service-photo>span{background:#fff!important;border:1px solid var(--clean-line)!important;border-radius:12px!important}
.v17-promo-feature{border-radius:18px!important;box-shadow:none!important}.v17-gallery figure{border-radius:14px!important}
.v17-location{background:#fff!important;color:var(--clean-ink)!important;border:1px solid var(--clean-line)!important;border-radius:18px!important;box-shadow:none!important}.v17-location-copy .v17-overline{color:var(--clean-pink-dark)!important}.v17-location-copy>p,.v17-hour-row{color:var(--clean-muted)!important}.v17-contact-pills a{background:#f8f6f8!important;color:#625c66!important;border-color:var(--clean-line)!important}.v17-location .button.secondary{background:#fff!important;color:var(--clean-ink)!important;border-color:var(--clean-line)!important}.v17-hours-card{background:#faf9fa!important;border-color:var(--clean-line)!important}.v17-hours-head small{color:#99939c!important}.v17-hour-row{border-color:#ebe8ec!important}.v17-hour-row strong,.v17-hours-head strong{color:var(--clean-ink)!important}
.v17-footer{border-color:var(--clean-line)!important}

/* Client app — clean white surfaces with the same restrained accent. */
.client-app-shell.glow-app-shell,.client-shell{background:var(--clean-bg)!important;box-shadow:none!important}
.glow-topbar,.client-app-header{background:rgba(255,255,255,.97)!important;border-bottom:1px solid var(--clean-line)!important}
.glow-feature-card{background:#fff!important;border:1px solid var(--clean-line)!important;box-shadow:none!important;border-radius:18px!important}.glow-feature-card::before,.glow-feature-card::after{display:none!important}.glow-feature-orb{background:var(--clean-pink-soft)!important}.glow-feature-orb::before{background:#f8c9d9!important;box-shadow:none!important}.glow-feature-copy h2{letter-spacing:-.03em!important}.glow-routine-card{border-radius:14px!important;box-shadow:none!important;border:1px solid var(--clean-line)!important;background:#fff!important}.glow-routine-card::before{display:none!important}.glow-routine-icon{background:var(--clean-pink-soft)!important;color:var(--clean-pink-dark)!important}.glow-tip-card,.glow-status-card{border:1px solid var(--clean-line)!important;box-shadow:none!important;border-radius:16px!important;background:#fff!important}.glow-bottom-nav.client-bottom-nav{border-radius:18px!important;box-shadow:0 8px 26px rgba(35,31,42,.10)!important}

@media (max-width: 900px){
  .v17-hero{grid-template-columns:1fr!important}.v17-hero-copy{min-height:auto!important;padding:40px 30px!important}.v17-experience{min-height:auto!important;padding:22px!important}
}
@media (max-width: 640px){
  .internal-content,.admin-content-v3,.staff-content-v3{padding:20px 14px 36px!important}.page-title h1,.simple-page-title h1{font-size:27px!important}
  .modal{padding:18px;border-radius:16px}.role-checkboxes-clean{grid-template-columns:1fr}.clean-modal-actions{display:grid;grid-template-columns:1fr 1fr}.clean-modal-actions .button{width:100%;min-width:0}
  .simple-person-row{grid-template-columns:40px minmax(0,1fr) auto}.simple-person-row .status-chip{display:none}.simple-person-row .row-actions{grid-column:2/4;justify-content:flex-start;margin-top:-3px}
  .v17-main{width:calc(100% - 20px)!important}.v17-hero-copy{padding:30px 22px!important}.v17-hero h1{font-size:42px!important}.v17-feature-pills{gap:6px!important}.v17-experience{padding:12px!important}.v17-phone-card{padding:14px!important}
}
