:root {
  --edit-black: #000;
  --edit-near-black: #151515;
  --edit-dark-grey: #303030;
  --edit-mid-grey: #737373;
  --edit-border: #dedede;
  --edit-light-grey: #f5f5f5;
  --edit-white: #fff;
  --edit-radius: 12px;
}

* { box-sizing: border-box; }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--edit-near-black); background: var(--edit-light-grey); }
a { color: inherit; }
.edit-shell { min-height: 100vh; }
.edit-sidebar { width: 252px; min-height: 100vh; background: var(--edit-black); color: var(--edit-white); position: fixed; inset: 0 auto 0 0; padding: 28px 20px; }
.edit-brand { display: block; width: 140px; margin: 0 auto 36px; filter: invert(1); mix-blend-mode: screen; }
.edit-nav a { display: block; padding: 12px 14px; margin: 4px 0; border-radius: 8px; text-decoration: none; color: #d6d6d6; }
.edit-nav a:hover, .edit-nav a.active { background: #222; color: #fff; }
.edit-main { margin-left: 252px; min-height: 100vh; }
.edit-topbar { height: 72px; background: #fff; border-bottom: 1px solid var(--edit-border); display: flex; align-items: center; justify-content: space-between; padding: 0 32px; }
.edit-content { padding: 32px; max-width: 1500px; margin: 0 auto; }
.edit-card { background: #fff; border: 1px solid var(--edit-border); border-radius: var(--edit-radius); padding: 24px; }
.edit-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.edit-stat { font-size: 30px; font-weight: 650; margin: 8px 0 2px; }
.edit-muted { color: var(--edit-mid-grey); }
.edit-button { background: #000; color: #fff; border: 1px solid #000; padding: 12px 18px; border-radius: 8px; font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
.edit-button.secondary { background: #fff; color: #000; border-color: var(--edit-border); }
.edit-hero { background: #fff; min-height: 100vh; display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 60px; padding: 80px max(6vw, 32px); }
.edit-hero h1 { font-size: clamp(44px, 6vw, 86px); letter-spacing: -.055em; line-height: .95; margin: 0 0 28px; }
.edit-hero p { font-size: 20px; color: var(--edit-mid-grey); line-height: 1.6; max-width: 680px; }
.edit-logo-large { width: min(100%, 500px); }
@media (max-width: 900px) {
  .edit-sidebar { display: none; }
  .edit-main { margin-left: 0; }
  .edit-grid { grid-template-columns: 1fr 1fr; }
  .edit-hero { grid-template-columns: 1fr; padding-top: 40px; }
}
@media (max-width: 560px) { .edit-grid { grid-template-columns: 1fr; } .edit-content { padding: 18px; } }

.business-login-page { min-height: 100vh; display: grid; place-items: center; padding: 28px; background: #f2f2f2; }
.business-login-panel { width: min(100%, 460px); background: #fff; border: 1px solid var(--edit-border); border-radius: 16px; padding: 42px; }
.business-login-logo { width: 150px; display: block; margin: 0 auto 34px; }
.business-login-panel h1 { font-size: 38px; letter-spacing: -.04em; margin: 10px 0; }
.business-login-panel .field { margin-top: 18px; }
.business-login-panel label { display: block; font-weight: 650; margin-bottom: 7px; }
.business-login-panel input { width: 100%; min-height: 46px; border: 1px solid var(--edit-border); border-radius: 8px; padding: 10px 12px; font: inherit; }
.business-login-button { width: 100%; margin-top: 24px; cursor: pointer; }
.form-error { background: #f5f5f5; border-left: 3px solid #000; padding: 12px 14px; margin: 18px 0; }
.validation-message { display: block; font-size: 12px; margin-top: 5px; }
.eyebrow { font-size: 12px; font-weight: 750; letter-spacing: .16em; }
.signed-out-card { max-width: 620px; margin: 8vh auto; text-align: center; padding: 48px; }
.signed-out-card h1 { font-size: 42px; letter-spacing: -.04em; margin: 12px 0; }
.topbar-clinic { margin-left: 14px; }
.text-button { border: 0; background: transparent; font: inherit; cursor: pointer; text-decoration: underline; }
.tenant-switcher-card { margin-bottom: 20px; display: flex; align-items: center; gap: 16px; }
.tenant-switcher-card select { min-width: 280px; min-height: 42px; border: 1px solid var(--edit-border); border-radius: 8px; padding: 8px 10px; background: #fff; }
.progress-track { height: 8px; background: #ececec; border-radius: 999px; overflow: hidden; margin-top: 18px; }
.progress-track span { display: block; height: 100%; background: #000; }

.page-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin-bottom:20px; }
.page-heading h1 { margin:8px 0 6px; font-size:38px; letter-spacing:-.04em; }
.progress-summary { min-width:112px; text-align:right; }
.progress-summary strong { display:block; font-size:30px; }
.progress-summary span { color:var(--edit-mid-grey); }
.onboarding-progress { margin-bottom:24px; }
.onboarding-grid { display:grid; grid-template-columns:280px minmax(0, 1fr); gap:22px; align-items:start; }
.onboarding-steps { position:sticky; top:96px; }
.onboarding-steps h2 { margin-top:0; }
.checklist-step { display:flex; align-items:center; gap:11px; padding:11px 0; border-bottom:1px solid #eee; color:var(--edit-mid-grey); }
.checklist-step span { width:28px; height:28px; display:grid; place-items:center; border:1px solid var(--edit-border); border-radius:50%; font-size:12px; }
.checklist-step.complete { color:var(--edit-near-black); }
.checklist-step.complete span { background:#000; color:#fff; border-color:#000; }
.onboarding-content { display:grid; gap:22px; }
.onboarding-section h2 { margin:0; font-size:24px; letter-spacing:-.025em; }
.section-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:8px; }
.section-heading > div { display:flex; align-items:center; gap:12px; }
.step-number { width:36px; height:36px; border-radius:50%; background:#000; color:#fff; display:grid; place-items:center; font-size:12px; font-weight:700; }
.status-badge, .mini-badge { display:inline-flex; padding:5px 9px; border:1px solid var(--edit-border); border-radius:999px; font-size:12px; font-weight:650; background:#f5f5f5; }
.status-badge.complete { background:#000; color:#fff; border-color:#000; }
.form-grid { display:grid; gap:17px; margin:22px 0; }
.form-grid.two-columns { grid-template-columns:repeat(2,minmax(0,1fr)); }
.field.full-width, .full-width { grid-column:1 / -1; }
.field label { display:block; font-weight:650; margin-bottom:7px; }
.field input, .field textarea, .hours-row input { width:100%; min-height:44px; border:1px solid var(--edit-border); border-radius:8px; padding:10px 12px; font:inherit; background:#fff; }
.field textarea { resize:vertical; }
.field-help { color:var(--edit-mid-grey); font-size:12px; margin-top:6px; }
.checkbox-field { display:flex; align-items:center; gap:9px; font-weight:600; }
.checkbox-field input { width:18px; height:18px; }
.checkbox-field.compact { font-size:13px; }
.location-summary { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:16px 0; border-bottom:1px solid #eee; }
.location-summary + form { margin-top:20px; }
.hours-list { display:grid; gap:10px; margin:22px 0; }
.hours-row { display:grid; grid-template-columns:130px 100px 130px 24px 130px; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid #eee; }
.form-success { background:#fff; border-left:3px solid #000; padding:12px 14px; margin:18px 0; }
@media (max-width: 900px) {
  .onboarding-grid { grid-template-columns:1fr; }
  .onboarding-steps { position:static; }
}
@media (max-width: 680px) {
  .form-grid.two-columns { grid-template-columns:1fr; }
  .field.full-width, .full-width { grid-column:auto; }
  .hours-row { grid-template-columns:1fr 90px; }
  .hours-row input { width:100%; }
  .hours-row > span { display:none; }
  .page-heading { flex-direction:column; }
  .progress-summary { text-align:left; }
}

.scheduling-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.scheduling-grid .full-span { grid-column:1 / -1; }
.field select { width:100%; min-height:44px; border:1px solid var(--edit-border); border-radius:8px; padding:10px 12px; font:inherit; background:#fff; }
.assignment-list { margin-top:20px; border-top:1px solid #eee; }
.assignment-list > div { display:flex; justify-content:space-between; gap:20px; padding:12px 0; border-bottom:1px solid #eee; }
.assignment-list span { color:var(--edit-mid-grey); }
@media (max-width: 900px) { .scheduling-grid { grid-template-columns:1fr; } .scheduling-grid .full-span { grid-column:auto; } }

.customer-toolbar { display:flex; align-items:end; gap:12px; margin-bottom:20px; }
.customer-search { flex:1; }
.customer-search input { width:100%; min-height:44px; border:1px solid var(--edit-border); border-radius:8px; padding:10px 12px; font:inherit; }
.customer-form-card { margin-bottom:20px; }
.customer-list-card { padding:0; overflow:hidden; }
.customer-list-header { padding:18px 22px; border-bottom:1px solid var(--edit-border); }
.customer-table-wrap { overflow-x:auto; }
.customer-table { width:100%; border-collapse:collapse; min-width:900px; }
.customer-table th { text-align:left; padding:13px 18px; font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--edit-mid-grey); background:#fafafa; }
.customer-table td { padding:16px 18px; border-top:1px solid #eee; vertical-align:middle; }
.customer-table td strong, .customer-table td span { display:block; }
.customer-table td span { color:var(--edit-mid-grey); font-size:13px; margin-top:3px; }
.empty-state { text-align:center; padding:56px 24px; }
.status-badge.customer-blocked { background:#252525; color:#fff; border-color:#252525; }
.customer-profile-grid { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:22px; align-items:start; }
.customer-profile-side { display:grid; gap:18px; }
.customer-profile-side h2 { margin-top:0; }
.customer-block-banner { display:flex; justify-content:space-between; gap:20px; background:#111; color:#fff; padding:16px 20px; border-radius:10px; margin-bottom:20px; }
.customer-alert-card .form-grid { margin-bottom:14px; }
.customer-alert { display:grid; gap:4px; border-left:3px solid #777; background:#f6f6f6; padding:12px 14px; margin:10px 0; }
.customer-alert span { color:var(--edit-mid-grey); }
.customer-alert.alert-critical { border-left-color:#000; background:#ededed; }
.customer-alert.alert-warning { border-left-color:#555; }
@media (max-width: 1000px) { .customer-profile-grid { grid-template-columns:1fr; } }
@media (max-width: 680px) { .customer-toolbar { align-items:stretch; flex-direction:column; } .customer-toolbar .edit-button { width:100%; } }

/* Phase 8: calendar and appointments */
.calendar-toolbar{display:flex;align-items:end;gap:12px;margin-bottom:20px}.calendar-date-field{min-width:190px}.calendar-date-field label{display:block;font-size:12px;font-weight:700;margin-bottom:6px}.calendar-date-field input{width:100%}.appointment-create-card{margin-bottom:20px}.appointment-form-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px}.full-width{grid-column:1/-1}.calendar-day-card{padding:0;overflow:hidden}.calendar-day-heading{display:flex;justify-content:space-between;align-items:center;padding:24px 28px;border-bottom:1px solid #e5e5e5}.calendar-day-heading h2{margin:4px 0 0}.appointment-timeline{display:flex;flex-direction:column}.appointment-row{display:grid;grid-template-columns:92px minmax(190px,1.5fr) minmax(140px,1fr) 130px 100px 24px;gap:16px;align-items:center;width:100%;padding:18px 28px;border:0;border-bottom:1px solid #ededed;background:#fff;text-align:left;color:#111;cursor:pointer}.appointment-row:hover{background:#f7f7f7}.appointment-row:last-child{border-bottom:0}.appointment-row small{display:block;color:#737373;margin-top:4px}.appointment-time{font-size:18px;font-weight:800}.appointment-time small{font-size:12px;font-weight:500}.appointment-main,.appointment-location,.appointment-money{min-width:0}.appointment-main strong,.appointment-main small,.appointment-location,.appointment-location small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appointment-money{text-align:right;font-weight:800}.appointment-money small{font-size:11px;font-weight:500}.appointment-arrow{font-size:20px}.appointment-status{justify-self:start}.status-warning{background:#f3f3f3;border-color:#bdbdbd}.status-active{background:#111;color:#fff;border-color:#111}.status-completed{background:#e8e8e8;border-color:#777}.status-cancelled{background:#fff;border-style:dashed;color:#555}.appointment-detail-heading{display:flex;justify-content:space-between;align-items:flex-start;margin:8px 0 24px}.appointment-detail-heading h1{margin:5px 0}.back-link{margin-bottom:12px}.appointment-detail-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:20px}.appointment-summary-card{grid-row:span 2}.detail-list{margin:0}.detail-list>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #ededed}.detail-list dt{color:#737373}.detail-list dd{margin:0;font-weight:700;text-align:right}.detail-total{font-size:17px}.appointment-note{margin-top:20px;padding:16px;background:#f5f5f5;border-radius:8px}.appointment-note p{margin:8px 0 0}.appointment-actions-card,.appointment-history-card{margin-top:20px}.appointment-actions{display:flex;flex-wrap:wrap;gap:10px}.danger-button{background:#fff;color:#111;border:1px solid #777}.danger-button:hover{background:#f1f1f1}.cancel-panel{margin-top:18px;padding-top:18px;border-top:1px solid #e5e5e5}.history-list{display:flex;flex-direction:column}.history-row{display:grid;grid-template-columns:14px 1fr auto;gap:14px;padding:14px 0;border-bottom:1px solid #ededed;align-items:start}.history-row:last-child{border-bottom:0}.history-dot{width:10px;height:10px;background:#111;border-radius:50%;margin-top:5px}.history-row p{margin:4px 0 0;color:#737373}.history-row time{color:#737373;font-size:12px}
@media(max-width:1050px){.appointment-row{grid-template-columns:80px 1.4fr 1fr 110px 24px}.appointment-money{display:none}.appointment-detail-grid{grid-template-columns:1fr}.appointment-summary-card{grid-row:auto}}
@media(max-width:700px){.calendar-toolbar{align-items:stretch;flex-wrap:wrap}.calendar-date-field{order:-1;flex:1 0 100%}.appointment-form-footer{align-items:stretch;flex-direction:column}.calendar-day-heading{padding:20px;align-items:flex-start}.appointment-row{grid-template-columns:66px 1fr 24px;padding:16px 18px}.appointment-location,.appointment-status{display:none}.appointment-detail-heading{gap:15px}.appointment-detail-heading .status-badge{flex-shrink:0}.appointment-actions{flex-direction:column}.appointment-actions .edit-button{width:100%}.history-row{grid-template-columns:14px 1fr}.history-row time{grid-column:2}}

.payment-stats{margin-bottom:24px}.payments-summary-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:20px;margin-bottom:24px}.setup-notice{margin-top:18px;padding:16px;background:#f5f5f5;border:1px solid #dedede;border-radius:10px}.setup-notice p{margin:6px 0 0}.payment-entry-card{margin-bottom:24px}.payment-table{display:flex;flex-direction:column}.payment-row{display:grid;grid-template-columns:2fr 1.2fr .8fr .8fr;align-items:center;gap:16px;width:100%;padding:16px 0;border:0;border-bottom:1px solid #e5e5e5;background:transparent;text-align:left;color:inherit;cursor:pointer}.payment-row:last-child{border-bottom:0}.payment-row span{display:flex;flex-direction:column}.payment-row small{margin-top:4px;color:#737373}.payment-row>strong{text-align:right}@media(max-width:900px){.payments-summary-grid{grid-template-columns:1fr}.payment-row{grid-template-columns:1fr auto}.payment-row>:nth-child(2),.payment-row>:nth-child(3){display:none}}

.heading-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.edit-button.secondary { background: #fff; color: #000; border: 1px solid #d9d9d9; }
.clinical-row { cursor: default; grid-template-columns: minmax(220px, 1fr) auto auto; }
.checkbox-row { display: flex; align-items: center; gap: 10px; }
@media (max-width: 820px) { .clinical-row { grid-template-columns: 1fr; gap: 8px; } .heading-actions { width: 100%; } }

/* Clinical visual form builder */
.clinical-builder-card{overflow:hidden}.form-builder-layout{display:grid;grid-template-columns:210px minmax(360px,1fr) 300px;gap:18px;margin-top:22px;align-items:start}.builder-toolbox,.builder-preview{position:sticky;top:18px}.builder-toolbox{display:grid;gap:8px}.builder-tool{display:flex;flex-direction:column;gap:3px;text-align:left;background:#fff;border:1px solid #dedede;border-radius:9px;padding:11px 12px;cursor:pointer}.builder-tool:hover{border-color:#111;background:#f7f7f7}.builder-tool small{color:#737373}.builder-canvas{border:1px solid #e0e0e0;background:#f7f7f7;border-radius:12px;padding:16px;min-height:360px}.builder-canvas-heading{display:flex;justify-content:space-between;margin-bottom:12px}.builder-canvas h3,.form-preview-shell h3{margin:3px 0 0}.builder-field-card{background:#fff;border:1px solid #ddd;border-radius:10px;padding:15px;margin-bottom:12px}.builder-field-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.builder-field-actions,.row-actions{display:flex;align-items:center;gap:10px}.danger-text{color:#8c2222!important}.form-preview-shell{border:1px solid #dedede;border-radius:12px;padding:18px;background:#fff;margin-top:8px}.preview-field{margin-top:16px}.preview-field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.preview-field label span{color:#8c2222}.preview-field input,.preview-field textarea,.preview-field select{width:100%;border:1px solid #ddd;border-radius:7px;min-height:38px;background:#f8f8f8}.preview-field small{display:block;color:#737373;margin-top:5px}.preview-choice{display:flex;gap:16px;font-size:13px;color:#555}.signature-preview{height:64px;border:1px dashed #aaa;border-radius:7px;display:grid;place-items:center;color:#777}.builder-footer{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:18px;border-top:1px solid #e2e2e2}.empty-state.compact{padding:24px 10px}@media(max-width:1180px){.form-builder-layout{grid-template-columns:190px 1fr}.builder-preview{grid-column:1/-1;position:static}.form-preview-shell{max-width:620px}}@media(max-width:760px){.form-builder-layout{grid-template-columns:1fr}.builder-toolbox,.builder-preview{position:static}.builder-toolbox{grid-template-columns:1fr 1fr}.builder-footer{align-items:stretch;flex-direction:column;gap:12px}.builder-field-header{align-items:flex-start;gap:10px;flex-direction:column}.builder-field-actions{flex-wrap:wrap}}

.generated-link-box{margin-top:20px;padding:16px;background:#f5f5f5;border:1px solid #ddd;border-radius:8px}.generated-link-box label,.generated-link-box small{display:block}.generated-link-box input{width:100%;box-sizing:border-box;margin:8px 0;padding:11px;border:1px solid #bbb;border-radius:6px;background:white}

/* v2.7 communications and reporting */
.content-grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}.list-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #e5e5e5;text-decoration:none;color:inherit}.list-row:last-child{border-bottom:0}.list-row div{display:flex;flex-direction:column;gap:4px}.list-row small,.report-row small{display:block;color:#737373}.report-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid #e5e5e5}.report-row:last-child{border-bottom:0}.report-filter-card{margin-bottom:20px}.button-row{display:flex;gap:10px;flex-wrap:wrap}@media(max-width:900px){.content-grid-two{grid-template-columns:1fr}}

/* EDIT v2.8 modern application shell */
:root{--sidebar-width:276px;--topbar-height:76px;--surface:#fff;--canvas:#f6f7f8;--ink:#111214;--muted:#71747a;--line:#e7e8ea;--soft:#f0f1f2;--shadow:0 12px 40px rgba(17,18,20,.06);--radius-lg:18px;--radius-md:13px}
html{background:var(--canvas)}body{background:var(--canvas);color:var(--ink);font-feature-settings:"cv02","cv03","cv04","cv11"}.app-frame{min-height:100vh}.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);z-index:50;background:#090a0b;color:#fff;padding:22px 16px 18px;display:flex;flex-direction:column;overflow-y:auto}.sidebar-brand-row{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 10px}.sidebar-brand{display:flex;align-items:center}.sidebar-brand img{width:118px;max-height:42px;object-fit:contain;filter:invert(1) grayscale(1) brightness(2);mix-blend-mode:screen}.icon-button{border:0;background:transparent;color:inherit;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;cursor:pointer;font:inherit}.icon-button:hover{background:rgba(0,0,0,.05)}.sidebar-close{display:none;color:#fff;font-size:24px}.workspace-card,.platform-badge{margin:18px 4px 20px;padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(255,255,255,.055);display:flex;align-items:center;gap:11px}.workspace-avatar,.platform-badge-icon{width:36px;height:36px;flex:0 0 36px;border-radius:10px;background:#fff;color:#08090a;display:grid;place-items:center;font-size:12px;font-weight:800;letter-spacing:.04em}.workspace-card div,.platform-badge div{min-width:0;display:flex;flex-direction:column;gap:3px}.workspace-card strong,.platform-badge strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workspace-card small,.platform-badge small{font-size:11px;color:#9fa2a7}.sidebar-navigation{display:flex;flex-direction:column;gap:18px}.nav-section{display:flex;flex-direction:column;gap:3px}.nav-label{font-size:10px;font-weight:750;letter-spacing:.14em;color:#777b82;padding:4px 12px 7px;text-transform:uppercase}.sidebar-navigation a{min-height:42px;display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;color:#aaaeb4;text-decoration:none;font-size:13px;font-weight:560;transition:.18s ease}.sidebar-navigation a:hover{background:rgba(255,255,255,.065);color:#fff}.sidebar-navigation a.active{background:#fff;color:#0b0c0d;box-shadow:0 4px 18px rgba(0,0,0,.18)}.nav-icon{width:21px;height:21px;display:grid;place-items:center;font-size:14px;font-weight:700}.sidebar-footer{margin-top:auto;padding:16px 4px 0}.sidebar-help,.environment-card{display:flex;align-items:center;gap:11px;text-decoration:none;color:#c7c9cc;padding:12px;border-top:1px solid rgba(255,255,255,.1)}.sidebar-help>span{width:30px;height:30px;border:1px solid rgba(255,255,255,.2);border-radius:9px;display:grid;place-items:center}.sidebar-help div,.environment-card div{display:flex;flex-direction:column;gap:2px}.sidebar-help strong,.environment-card strong{font-size:12px}.sidebar-help small,.environment-card small{font-size:10px;color:#81858b}.app-main{margin-left:var(--sidebar-width);min-height:100vh}.app-topbar{height:var(--topbar-height);position:sticky;top:0;z-index:40;background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar-left,.topbar-actions,.user-menu{display:flex;align-items:center}.topbar-left{gap:12px}.menu-trigger{display:none;font-size:20px}.topbar-title{display:flex;flex-direction:column;gap:2px}.topbar-title span{font-size:14px;font-weight:750}.topbar-title small{font-size:11px;color:var(--muted)}.topbar-actions{gap:10px}.topbar-search{height:42px;width:min(360px,30vw);border:1px solid var(--line);background:#f7f7f8;border-radius:11px;padding:0 10px 0 13px;display:flex;align-items:center;gap:9px;color:#777b80;cursor:pointer}.topbar-search .search-label{font-size:12px;flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-search kbd{font:600 10px/1 ui-sans-serif;padding:5px 6px;border:1px solid #d9dbde;border-radius:6px;background:#fff;color:#8a8d92}.quick-create{height:42px;padding:0 15px;border-radius:11px;background:#111;color:#fff;text-decoration:none;display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700}.notification-button{position:relative;border:1px solid var(--line);background:#fff}.notification-dot{position:absolute;right:9px;top:8px;width:6px;height:6px;border-radius:50%;background:#111;border:1px solid #fff}.user-menu{gap:9px;border-left:1px solid var(--line);padding-left:14px}.user-avatar{width:36px;height:36px;border-radius:11px;background:#17181a;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800}.user-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.user-copy strong{font-size:12px;white-space:nowrap}.user-copy small{font-size:10px;color:var(--muted)}.signout-link{border:0;background:transparent;color:var(--muted);font-size:11px;cursor:pointer;padding:5px}.signout-link:hover{color:#111}.app-content{padding:34px 34px 56px;max-width:1600px;margin:0 auto}.mobile-scrim{display:none}
.dashboard-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin:2px 0 26px}.dashboard-intro h1{font-size:34px;letter-spacing:-.045em;line-height:1.08;margin:7px 0 8px}.dashboard-intro p{margin:0;color:var(--muted);font-size:14px}.eyebrow{font-size:10px!important;font-weight:800!important;letter-spacing:.16em!important;color:#8a8d92}.heading-actions{display:flex;gap:9px}.edit-button{min-height:42px;border-radius:11px;padding:0 16px;font-size:12px;box-shadow:none;transition:.18s ease}.edit-button:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(0,0,0,.1)}.edit-button.secondary{border-color:var(--line);background:#fff}.workspace-switcher{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;background:#fff;border:1px solid var(--line);border-radius:13px;margin-bottom:18px}.workspace-switcher div{display:flex;flex-direction:column;gap:3px}.workspace-switcher-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.11em}.workspace-switcher strong{font-size:13px}.workspace-switcher select,.period-selector{border:1px solid var(--line);background:#f8f8f9;border-radius:9px;padding:8px 11px;font:600 11px inherit;color:#333}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:19px 20px;min-height:142px;box-shadow:0 1px 1px rgba(0,0,0,.01);display:flex;flex-direction:column}.metric-header{display:flex;align-items:center;justify-content:space-between;color:#777b80;font-size:11px;font-weight:650}.metric-icon{width:31px;height:31px;border-radius:9px;background:#f2f3f4;color:#151618;display:grid;place-items:center;font-weight:750}.metric-card>strong{font-size:29px;letter-spacing:-.035em;margin:15px 0 8px}.metric-card>small{font-size:10.5px;color:var(--muted)}.trend-positive{color:#20663d;background:#eaf5ee;padding:3px 6px;border-radius:999px;font-weight:700}.trend-neutral{color:#555;background:#f0f1f2;padding:3px 6px;border-radius:999px;font-weight:700}.surface-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:21px 22px;box-shadow:0 1px 2px rgba(0,0,0,.015)}.dashboard-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:18px;margin-bottom:18px}.dashboard-side-stack{display:flex;flex-direction:column;gap:18px}.card-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.card-heading-row h2{font-size:17px;letter-spacing:-.025em;margin:5px 0 0}.subtle-link{font-size:11px;font-weight:650;color:#52555a;text-decoration:none}.subtle-link:hover{color:#000}.timeline-empty{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px dashed #d9dbdd;border-radius:14px;margin-top:18px;background:linear-gradient(180deg,#fafafa,#fff)}.empty-icon{width:48px;height:48px;border-radius:14px;background:#f0f1f2;display:grid;place-items:center;font-size:19px}.timeline-empty h3{font-size:15px;margin:13px 0 5px}.timeline-empty p{font-size:12px;color:var(--muted);margin:0 0 16px}.count-pill{min-width:25px;height:25px;padding:0 7px;border-radius:999px;background:#111;color:#fff;font-size:10px;font-weight:750;display:grid;place-items:center}.action-row{display:grid;grid-template-columns:32px 1fr auto;gap:11px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none}.action-row:last-child{border-bottom:0;padding-bottom:0}.action-symbol{width:30px;height:30px;border-radius:9px;background:#f1f2f3;display:grid;place-items:center;font-size:10px;font-weight:800}.action-row div{display:flex;flex-direction:column;gap:3px}.action-row strong{font-size:12px}.action-row small{font-size:10px;color:var(--muted)}.action-row>span:last-child{font-size:18px;color:#9a9da1}.setup-progress-card{display:grid;grid-template-columns:86px 1fr;align-items:center;gap:17px}.setup-ring{--p:calc(var(--progress)*1%);width:82px;height:82px;border-radius:50%;background:conic-gradient(#111 var(--p),#eceeef 0);display:grid;place-items:center;position:relative}.setup-ring:after{content:"";position:absolute;inset:8px;background:#fff;border-radius:50%}.setup-ring span{position:relative;z-index:1;font-size:16px;font-weight:800}.setup-progress-card h3{font-size:14px;margin:5px 0}.setup-progress-card p{font-size:10.5px;color:var(--muted);line-height:1.5;margin:0 0 8px}.setup-progress-card a{font-size:11px;font-weight:750;text-decoration:none}.dashboard-lower-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.chart-placeholder{height:225px;margin-top:20px;display:grid;grid-template-columns:35px 1fr;gap:8px}.chart-y-labels{display:flex;flex-direction:column;justify-content:space-between;color:#9a9da1;font-size:9px;text-align:right;padding:0 0 18px}.chart-grid-lines{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding-bottom:18px}.chart-grid-lines>i{height:1px;background:#eff0f1}.chart-grid-lines svg{position:absolute;inset:0 0 18px;width:100%;height:calc(100% - 18px);color:#151618}.activity-feed{margin-top:12px}.activity-item{display:grid;grid-template-columns:32px 1fr auto;gap:11px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.activity-item:last-child{border-bottom:0}.activity-item>span{width:30px;height:30px;border-radius:9px;background:#f1f2f3;display:grid;place-items:center;font-size:11px}.activity-item div{display:flex;flex-direction:column;gap:3px}.activity-item strong{font-size:11.5px}.activity-item small,.activity-item time{font-size:9.5px;color:var(--muted)}.auth-required-card{max-width:570px;margin:10vh auto;background:#fff;border:1px solid var(--line);border-radius:22px;padding:48px;text-align:center;box-shadow:var(--shadow)}.auth-required-card h1{font-size:31px;letter-spacing:-.04em;margin:9px 0}.auth-required-card p{color:var(--muted);margin:0 0 22px}
.edit-card,.stat-card{border-color:var(--line);border-radius:var(--radius-lg);box-shadow:none}.page-heading h1{font-size:32px}.field input,.field textarea,.field select,.business-login-panel input,.tenant-switcher-card select{border-color:#dfe1e3;border-radius:10px;background:#fbfbfc;transition:.18s ease}.field input:focus,.field textarea:focus,.field select:focus,.business-login-panel input:focus{outline:0;border-color:#111;background:#fff;box-shadow:0 0 0 3px rgba(0,0,0,.07)}.business-login-page{background:radial-gradient(circle at 18% 16%,#fff 0,#f1f2f3 38%,#e8e9eb 100%)}.business-login-panel{border:0;border-radius:24px;padding:44px;box-shadow:0 24px 70px rgba(0,0,0,.11)}.business-login-panel h1{font-size:32px}.business-login-logo{width:132px}.status-badge,.mini-badge{border-radius:999px;background:#f0f1f2;border-color:#e1e2e4;font-style:normal}.loading-card{min-height:180px;display:grid;place-items:center;text-align:center}.loading-spinner{width:30px;height:30px;border:3px solid #e5e6e8;border-top-color:#111;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:1180px){.topbar-search{width:220px}.user-copy{display:none}.dashboard-layout{grid-template-columns:1fr}.dashboard-side-stack{display:grid;grid-template-columns:1fr 1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.app-sidebar{transform:translateX(-104%);box-shadow:20px 0 50px rgba(0,0,0,.18);transition:transform .25s ease}.app-sidebar.is-open{transform:translateX(0)}.sidebar-close,.menu-trigger{display:grid}.app-main{margin-left:0}.mobile-scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.36);z-index:45;opacity:0;pointer-events:none;transition:.2s}.mobile-scrim.is-visible{opacity:1;pointer-events:auto}.app-topbar{padding:0 18px}.quick-create span,.topbar-search,.user-copy{display:none}.app-content{padding:26px 20px 46px}.dashboard-lower-grid{grid-template-columns:1fr}}
@media(max-width:650px){.dashboard-intro{align-items:flex-start;flex-direction:column}.dashboard-intro h1{font-size:29px}.heading-actions{width:100%}.heading-actions .edit-button{flex:1}.metric-grid{grid-template-columns:1fr}.dashboard-side-stack{display:flex}.dashboard-lower-grid{grid-template-columns:1fr}.app-content{padding:22px 14px 40px}.surface-card{padding:18px}.user-menu{padding-left:7px}.signout-link{display:none}.workspace-switcher{align-items:flex-start;flex-direction:column}.workspace-switcher select{width:100%}.setup-progress-card{grid-template-columns:72px 1fr}.setup-ring{width:70px;height:70px}.business-login-panel{padding:30px 24px}}

/* v2.9 modern operations screens */
.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;margin:0 0 22px}.page-heading>div:first-child{min-width:0}.page-heading h1{font-size:32px;line-height:1.08;letter-spacing:-.045em;margin:6px 0 7px}.page-heading p{font-size:13px;margin:0}.page-heading .button-row{display:flex;gap:9px;flex-wrap:wrap}.edit-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 1px 2px rgba(0,0,0,.015);margin-bottom:18px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.section-heading>div{display:flex;align-items:center;gap:10px}.section-heading h2{font-size:17px;letter-spacing:-.025em;margin:0}.step-number{width:28px;height:28px;border-radius:9px;background:#111;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800}.form-grid{display:grid;gap:14px}.form-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:7px}.field label,.checkbox-field{font-size:11px;font-weight:700;color:#45484d}.field input,.field textarea,.field select{width:100%;min-height:42px;padding:10px 12px;border:1px solid #dfe1e3;border-radius:10px;background:#fbfbfc;color:#17181a;font:inherit}.field textarea{min-height:108px;resize:vertical}.field-help{font-size:10px;color:var(--muted);line-height:1.45}.checkbox-field{display:flex;align-items:center;gap:9px}.checkbox-field input{width:16px;height:16px}.form-error,.form-success,.alert{border-radius:12px;padding:12px 14px;font-size:11.5px;margin-bottom:16px}.form-error{background:#fff3f2;border:1px solid #efd0cc;color:#8a332d}.form-success,.alert.success{background:#edf7f0;border:1px solid #d4eadb;color:#24643d}.text-button{border:0;background:transparent;color:#4e5258;font:700 11px inherit;padding:7px 4px;cursor:pointer;text-decoration:none}.text-button:hover{color:#000}.danger-button{background:#8b2d28;border-color:#8b2d28}.empty-state{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px;border:1px dashed #d9dbdd;border-radius:14px;background:linear-gradient(180deg,#fafafa,#fff)}.empty-state h2{font-size:17px;letter-spacing:-.02em;margin:0 0 6px}.signed-out-card{max-width:560px;margin:10vh auto;text-align:center;padding:44px}.customer-toolbar,.calendar-toolbar{display:flex;align-items:flex-end;gap:10px}.customer-toolbar .customer-search{flex:1}.customer-list-card{padding:0;overflow:hidden}.customer-list-header{padding:18px 20px 10px}.customer-table-wrap{overflow:auto}.customer-table{width:100%;border-collapse:collapse}.customer-table th{padding:11px 20px;text-align:left;font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:#8b8e93;background:#fafafa;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.customer-table td{padding:15px 20px;border-bottom:1px solid var(--line);font-size:11.5px;vertical-align:middle}.customer-table tbody tr:hover{background:#fafafa}.customer-table td>strong,.customer-table td>span{display:block}.customer-table td>span{font-size:9.5px;color:var(--muted);margin-top:3px}.status-badge{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:999px;background:#f0f1f2;border:1px solid #e1e2e4;font-size:9.5px;font-weight:700}.customer-blocked,.status-cancelled,.status-no-show{background:#fff2f1;border-color:#f0d2cf;color:#8b332d}.customer-profile-heading{align-items:center}.customer-profile-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:18px}.customer-profile-side{display:flex;flex-direction:column;gap:18px}.customer-profile-main,.customer-alert-card{margin-bottom:0}.detail-list{display:grid;gap:0}.detail-list>div,.detail-list>p{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font-size:11.5px;margin:0}.detail-list>div:last-child,.detail-list>p:last-child{border-bottom:0}.detail-list span{color:var(--muted)}.customer-alert{border-radius:12px;padding:12px 14px;background:#fff8e8;border:1px solid #ead9aa;margin-bottom:10px;font-size:11px}.customer-block-banner{background:#fff2f1;border:1px solid #f0d2cf;color:#8b332d;border-radius:12px;padding:12px 14px;margin-bottom:16px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:8px;min-height:112px}.stat-card span{font-size:10px;color:var(--muted);font-weight:650}.stat-card strong{font-size:24px;letter-spacing:-.03em}.calendar-date-field{min-width:180px}.calendar-day-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.calendar-day-heading h2{font-size:17px;margin:0}.calendar-day-card{padding:20px}.appointment-row{display:grid;grid-template-columns:78px minmax(220px,1.5fr) minmax(160px,1fr) auto 28px;gap:16px;align-items:center;padding:14px 10px;border-bottom:1px solid var(--line);text-decoration:none;border-radius:10px}.appointment-row:hover{background:#f8f8f9}.appointment-row:last-child{border-bottom:0}.appointment-time strong{font-size:12px}.appointment-time span,.appointment-main span,.appointment-location span{display:block;font-size:9.5px;color:var(--muted);margin-top:3px}.appointment-main strong{font-size:12px}.appointment-money{font-size:11px;font-weight:700;text-align:right}.appointment-arrow{font-size:18px;color:#9a9da1}.appointment-create-card{border-left:3px solid #111}.appointment-detail-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.appointment-detail-heading h1{font-size:32px;letter-spacing:-.04em;margin:6px 0}.appointment-detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(290px,.75fr);gap:18px}.appointment-actions-card,.appointment-payment-card,.appointment-customer-card,.appointment-history-card,.appointment-summary-card{margin-bottom:18px}.appointment-actions{display:flex;gap:9px;flex-wrap:wrap}.appointment-note{padding:13px 14px;background:#f7f7f8;border-radius:11px;font-size:11px;line-height:1.5}.detail-total{display:flex;justify-content:space-between;align-items:center;padding-top:14px;margin-top:8px;border-top:1px solid var(--line);font-size:14px}.history-list{display:flex;flex-direction:column}.history-row{display:grid;grid-template-columns:14px 1fr auto;gap:11px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line)}.history-row:last-child{border-bottom:0}.history-dot{width:9px;height:9px;border-radius:50%;background:#111;margin-top:4px;box-shadow:0 0 0 4px #f0f1f2}.history-row strong{font-size:11px}.history-row small,.history-row time{font-size:9.5px;color:var(--muted)}.cancel-panel{padding:16px;background:#fff7f6;border:1px solid #efd8d5;border-radius:13px;margin-top:14px}.scheduling-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px}.hours-list,.assignment-list{display:flex;flex-direction:column;gap:8px}.hours-row,.schedule-row,.list-row{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(120px,1fr) minmax(120px,1fr) auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fbfbfc}.list-row{display:flex;justify-content:space-between;text-decoration:none}.list-row:hover{background:#f5f5f6}.location-summary{padding:14px;border:1px solid var(--line);border-radius:13px;background:#fafafa}.onboarding-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px}.onboarding-steps{position:sticky;top:92px;align-self:start}.checklist-step{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);font-size:11px}.checklist-step:last-child{border-bottom:0}.progress-summary{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px;font-size:11px}.progress-track{height:7px;border-radius:999px;background:#eceeef;overflow:hidden}.progress-track>span{display:block;height:100%;background:#111;border-radius:inherit}.onboarding-content{min-width:0}.onboarding-section{margin-bottom:18px}.onboarding-section.full-span{grid-column:1/-1}.mini-badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#f0f1f2;border:1px solid #e1e2e4;font-size:9px}.button-row{display:flex;gap:9px;flex-wrap:wrap}.appointment-form-footer{display:flex;justify-content:flex-end;gap:9px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
@media(max-width:1100px){.customer-profile-grid,.appointment-detail-grid,.scheduling-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.onboarding-grid{grid-template-columns:1fr}.onboarding-steps{position:static}.appointment-row{grid-template-columns:70px 1fr auto}.appointment-location,.appointment-money{display:none}}
@media(max-width:700px){.page-heading{align-items:flex-start;flex-direction:column}.page-heading>.edit-button,.page-heading>.button-row{width:100%}.page-heading .button-row .edit-button{flex:1}.form-grid.two-columns{grid-template-columns:1fr}.customer-toolbar,.calendar-toolbar{align-items:stretch;flex-direction:column}.customer-table th:nth-child(3),.customer-table th:nth-child(5),.customer-table td:nth-child(3),.customer-table td:nth-child(5){display:none}.customer-table th,.customer-table td{padding-left:14px;padding-right:14px}.stats-grid{grid-template-columns:1fr}.appointment-row{grid-template-columns:58px 1fr 22px;gap:9px;padding-left:0;padding-right:0}.hours-row,.schedule-row{grid-template-columns:1fr 1fr}.hours-row>*:last-child,.schedule-row>*:last-child{grid-column:1/-1}.edit-card{padding:18px}.appointment-detail-heading{flex-direction:column}}

/* v3.0 specialist workspace modernisation */
.specialist-heading{padding:2px 0 4px}.specialist-heading h1{font-size:34px}.specialist-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.specialist-stats,.payment-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.payment-stats .stat-card{position:relative;overflow:hidden;padding:20px;min-height:118px}.payment-stats .stat-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#111}.payment-stats .stat-card span{font-size:10px;text-transform:uppercase;letter-spacing:.08em}.payment-stats .stat-card strong{font-size:28px;margin-top:auto}.specialist-summary-grid,.payments-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.specialist-summary-grid .edit-card,.payments-summary-grid .edit-card{margin-bottom:0;min-height:190px}.setup-notice{margin-top:18px;padding:14px;border-radius:12px;background:#f7f7f8;border:1px solid var(--line)}.setup-notice strong{display:block;font-size:12px}.setup-notice p{font-size:10.5px;line-height:1.55;color:var(--muted);margin:6px 0 0}.specialist-action-card{border-top:3px solid #111}.modern-register{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.modern-register .payment-row{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(150px,.85fr) auto minmax(90px,auto);align-items:center;gap:16px;width:100%;padding:15px 16px;border:0;border-bottom:1px solid var(--line);background:#fff;color:inherit;text-align:left;font:inherit;text-decoration:none}.modern-register .payment-row:last-child{border-bottom:0}.modern-register button.payment-row{cursor:pointer}.modern-register .payment-row:hover{background:#f8f8f9}.modern-register .payment-row>span:first-child strong{display:block;font-size:11.5px}.modern-register .payment-row small{display:block;margin-top:3px;font-size:9.5px;color:var(--muted)}.modern-register .payment-row>strong{font-size:12px;text-align:right}.clinical-row{grid-template-columns:minmax(220px,1.35fr) minmax(180px,1fr) auto auto!important}.generated-link-box{display:grid;grid-template-columns:1fr auto;gap:8px 12px;margin-top:16px;padding:14px;border-radius:12px;background:#f7f7f8;border:1px solid var(--line)}.generated-link-box label,.generated-link-box small{grid-column:1/-1;font-size:10px}.generated-link-box input{min-height:40px;border:1px solid #dfe1e3;border-radius:9px;padding:9px 11px;background:#fff}.modern-builder{display:grid;grid-template-columns:190px minmax(360px,1fr) minmax(250px,.72fr);gap:16px;align-items:start}.builder-toolbox,.builder-preview{position:sticky;top:92px}.builder-toolbox{display:flex;flex-direction:column;gap:8px}.builder-tool{display:flex;flex-direction:column;gap:4px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#fff;text-align:left;cursor:pointer}.builder-tool:hover{border-color:#999;background:#fafafa}.builder-tool strong{font-size:10.5px}.builder-tool small{font-size:9px;color:var(--muted);line-height:1.35}.builder-canvas{min-width:0}.builder-canvas-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.builder-canvas-heading h3{margin:5px 0 0;font-size:17px}.builder-field-card{padding:14px;border:1px solid var(--line);border-radius:13px;background:#fbfbfc;margin-bottom:10px}.builder-field-header{display:flex;justify-content:space-between;gap:12px;align-items:center}.builder-field-actions{display:flex;gap:8px}.builder-preview{padding:15px;border-radius:14px;background:#f4f4f5;border:1px solid var(--line)}.form-preview-shell{margin-top:10px;padding:17px;border-radius:12px;background:#fff;box-shadow:0 8px 28px rgba(0,0,0,.05)}.form-preview-shell h3{font-size:16px;margin:0 0 15px}.preview-field{margin-bottom:13px}.preview-field label{display:block;font-size:10px;font-weight:700;margin-bottom:6px}.preview-field input,.preview-field textarea,.preview-field select{width:100%;min-height:38px;border:1px solid #e1e2e4;border-radius:8px;background:#fafafa}.preview-choice{display:flex;gap:12px;font-size:10px;color:#555}.communications-workspace{grid-template-columns:minmax(320px,.78fr) minmax(420px,1.22fr);align-items:start}.communications-workspace>.edit-card{margin-bottom:0}.communication-row{padding:13px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}.communication-row:last-child{border-bottom:0}.communication-row:hover{background:transparent}.communication-row>div:last-child{text-align:right}.communication-row small{display:block;margin-top:4px;font-size:9.5px;color:var(--muted)}.specialist-filter-bar{padding:14px 16px}.specialist-filter-bar .form-grid{grid-template-columns:repeat(2,minmax(180px,260px));margin:0;align-items:end}.specialist-filter-bar .field{gap:5px}.report-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.report-dashboard-grid>.edit-card{margin-bottom:0}.modern-report-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.modern-report-row:last-child{border-bottom:0}.modern-report-row span{font-size:11px;font-weight:650}.modern-report-row small{display:block;margin-top:3px;font-size:9.5px;color:var(--muted);font-weight:500}.modern-report-row strong{font-size:12px}.report-dashboard-grid .edit-card{position:relative;overflow:hidden}.report-dashboard-grid .edit-card:after{content:"";position:absolute;left:22px;right:22px;top:58px;height:1px;background:var(--line)}.report-dashboard-grid .edit-card h2{margin:6px 0 22px;font-size:18px}.row-actions{display:flex;gap:8px;align-items:center}.danger-text{color:#9a342f!important}.empty-state.compact{min-height:110px;padding:20px}.signature-preview{height:52px;border-bottom:1px solid #aaa;display:flex;align-items:end;padding-bottom:5px;font-family:Georgia,serif;font-style:italic;color:#777}
@media(max-width:1180px){.modern-builder{grid-template-columns:170px minmax(0,1fr)}.builder-preview{position:static;grid-column:1/-1}.communications-workspace{grid-template-columns:1fr}.specialist-summary-grid,.payments-summary-grid{grid-template-columns:1fr}.specialist-summary-grid .edit-card,.payments-summary-grid .edit-card{min-height:0}}
@media(max-width:900px){.payment-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.modern-builder{grid-template-columns:1fr}.builder-toolbox{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.builder-preview{grid-column:auto}.modern-register .payment-row,.clinical-row{grid-template-columns:minmax(0,1fr) auto!important}.modern-register .payment-row>span:nth-child(2){display:none}.report-dashboard-grid{grid-template-columns:1fr}}
@media(max-width:650px){.specialist-actions{width:100%;justify-content:stretch}.specialist-actions .edit-button{flex:1}.payment-stats{grid-template-columns:1fr 1fr}.payment-stats .stat-card{min-height:100px;padding:15px}.payment-stats .stat-card strong{font-size:21px}.modern-register .payment-row{padding:13px 12px;gap:9px}.modern-register .payment-row .status-badge{display:none}.specialist-filter-bar .form-grid{grid-template-columns:1fr 1fr}.builder-toolbox{grid-template-columns:1fr}.generated-link-box{grid-template-columns:1fr}.report-dashboard-grid .edit-card:after{left:18px;right:18px}}

/* v3.2 authentication and onboarding completion */
.auth-support-row{display:flex;justify-content:center;margin-top:1rem;font-size:.9rem}.auth-support-row a{color:var(--edit-ink,#171717);font-weight:650;text-decoration:none}.auth-support-row a:hover{text-decoration:underline}.development-link{margin-top:1rem;padding:1rem;border:1px dashed #b9b9b9;border-radius:14px;background:#f8f8f8;display:grid;gap:.4rem}.development-link a{font-weight:700;overflow-wrap:anywhere}.readiness-panel,.public-page-preview{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;background:#f7f7f7;border:1px solid #e6e6e6;border-radius:16px;margin:1rem 0}.readiness-panel>div,.public-page-preview>div{display:grid;gap:.25rem}.readiness-panel span{color:#6c6c6c;font-size:.9rem}.go-live-checks{display:grid;gap:.65rem;margin:1rem 0}.go-live-check{display:flex;align-items:flex-start;gap:.8rem;padding:.9rem 1rem;border:1px solid #e7e7e7;border-radius:14px}.go-live-check>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#111;color:#fff;font-weight:800}.go-live-check div{display:grid;gap:.15rem}.go-live-check small{color:#6d6d6d}.publish-section{border-color:#d7d7d7}.publish-confirmation{margin:1rem 0}.publish-actions{display:flex;flex-wrap:wrap;gap:.75rem}.edit-button.danger{background:#fff;color:#a32121;border:1px solid #e1bcbc}.edit-button.danger:hover{background:#fff5f5}@media(max-width:760px){.readiness-panel,.public-page-preview{align-items:stretch;flex-direction:column}.readiness-panel .edit-button,.public-page-preview .edit-button,.publish-actions .edit-button{width:100%;justify-content:center}}

.exception-register { margin-top: 1.5rem; border-top: 1px solid var(--edit-border, #e7e7e7); padding-top: 1.25rem; }
.compact-heading { margin-bottom: .75rem; }
.exception-row { display: grid; grid-template-columns: 150px minmax(0,1fr) auto auto; gap: 1rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid var(--edit-border, #ededed); }
.exception-row > div:nth-child(2) { display: grid; gap: .2rem; }
.exception-row span, .exception-row small { color: #6f6f6f; }
.exception-type { font-weight: 700; }
.compact-button { min-height: 36px; padding: .45rem .8rem; }
.empty-inline { padding: 1.1rem; background: #f7f7f7; border-radius: 12px; color: #666; }
@media (max-width: 850px) { .exception-row { grid-template-columns: 1fr auto; } .exception-row .exception-type { grid-column: 1 / -1; } }

/* v3.4 core operations */
.workspace-tabs{display:flex;gap:.4rem;margin:0 0 1rem;border-bottom:1px solid var(--border,#e5e7eb)}
.workspace-tab{border:0;background:transparent;padding:.8rem 1rem;font-weight:700;color:#6b7280;border-bottom:2px solid transparent;cursor:pointer}
.workspace-tab.active{color:#111827;border-color:#111827}.workspace-tab span{margin-left:.35rem;padding:.12rem .42rem;border-radius:999px;background:#f3f4f6;font-size:.75rem}
.page-actions{display:flex;gap:.65rem;align-items:center}.schedule-inheritance-banner{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;margin:1rem 0;border:1px solid #dbeafe;background:#f8fbff;border-radius:14px}.schedule-inheritance-banner div{display:grid;gap:.2rem}.schedule-inheritance-banner span{color:#64748b;font-size:.9rem}
.calendar-view-switch{display:flex;padding:.25rem;background:#f3f4f6;border-radius:10px}.calendar-view-switch button{border:0;background:transparent;padding:.55rem .8rem;border-radius:8px;font-weight:700;color:#6b7280;cursor:pointer}.calendar-view-switch button.active{background:#fff;color:#111827;box-shadow:0 1px 3px rgba(0,0,0,.08)}.calendar-nav{display:flex;align-items:center;gap:.4rem}.calendar-workspace{overflow:hidden}
.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.month-weekday{padding:.65rem;text-align:center;font-size:.76rem;font-weight:800;color:#64748b;background:#f8fafc}.month-cell{min-height:125px;border:0;border-top:1px solid #e5e7eb;border-right:1px solid #e5e7eb;background:#fff;padding:.55rem;text-align:left;display:flex;flex-direction:column;gap:.3rem;cursor:pointer}.month-cell:hover,.month-cell.selected{background:#f8fafc}.month-cell.outside{color:#9ca3af;background:#fafafa}.month-event{display:block;border:0;border-radius:6px;padding:.3rem .4rem;background:#eef2ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.72rem;text-align:left;cursor:pointer}.month-event.status-cancelled{background:#fef2f2}.month-event.status-completed{background:#ecfdf5}
.week-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));overflow:auto;border:1px solid #e5e7eb;border-radius:12px}.week-column{border-right:1px solid #e5e7eb}.week-day-heading{width:100%;border:0;border-bottom:1px solid #e5e7eb;background:#f8fafc;padding:.7rem;display:grid;gap:.1rem;cursor:pointer}.week-slot{position:relative;min-height:72px;padding:.25rem;border-bottom:1px solid #eef2f7;cursor:pointer}.week-slot>span{font-size:.68rem;color:#94a3b8}.week-event{display:grid;width:100%;border:0;border-radius:8px;background:#eef2ff;padding:.45rem;text-align:left;cursor:pointer}.week-event small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.day-grid{display:grid;grid-template-columns:70px 1fr;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.day-time{padding:.8rem;font-size:.76rem;color:#64748b;border-bottom:1px solid #eef2f7;background:#f8fafc}.day-slot{min-height:82px;padding:.35rem;border-bottom:1px solid #eef2f7;cursor:pointer}.day-slot:hover{background:#fafafa}.day-event{width:100%;border:0;border-left:4px solid #111827;background:#f8fafc;border-radius:8px;padding:.65rem;text-align:left;display:grid;grid-template-columns:110px 1fr;gap:.15rem .8rem;cursor:pointer}.day-event strong,.day-event small{grid-column:2}.day-event span{grid-row:1/3;color:#475569;font-weight:700}
.import-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:1rem;align-items:end}.import-summary{display:flex;gap:1rem;justify-content:space-between;padding:.8rem 0}.import-preview{max-height:360px;overflow:auto}
@media(max-width:900px){.calendar-toolbar{align-items:stretch}.calendar-view-switch{overflow:auto}.month-grid{grid-template-columns:repeat(7,minmax(105px,1fr));overflow:auto}.week-grid{grid-template-columns:repeat(7,minmax(220px,1fr))}.import-controls{grid-template-columns:1fr}.page-actions{width:100%;justify-content:flex-end}}

.stripe-status-grid{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;margin:.85rem 0 1rem;color:#5d6168;font-size:.88rem}.photo-set-list{display:grid;gap:1rem}.photo-set-card{border:1px solid #e5e7eb;border-radius:16px;padding:1rem;background:#fff}.photo-set-heading,.photo-slot-heading{display:flex;justify-content:space-between;gap:1rem;align-items:center}.photo-set-heading div{display:grid;gap:.2rem}.photo-set-heading span{color:#6b7280;font-size:.88rem}.before-after-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.photo-slot{border:1px solid #e5e7eb;border-radius:14px;padding:.85rem;background:#fafafa}.photo-placeholder{width:100%;min-height:180px;border:1px dashed #b8bec8;border-radius:12px;background:#fff;display:grid;place-items:center;align-content:center;gap:.4rem;color:#555}.photo-placeholder span{font-size:2rem}.photo-summary{display:grid;gap:.6rem}.photo-preview-button{min-height:150px;border:0;border-radius:12px;background:#f0f2f5;padding:1rem;text-align:left;display:flex;flex-direction:column;justify-content:flex-end;gap:.3rem}.photo-preview-button span{color:#6b7280;font-size:.84rem}.progress-photo-strip{display:flex;gap:.6rem;overflow:auto;margin-top:.85rem;padding-top:.85rem;border-top:1px solid #eee}.progress-photo-item{border:1px solid #e5e7eb;border-radius:10px;background:#fff;padding:.65rem .8rem;display:grid;gap:.2rem;text-align:left;min-width:145px}.progress-photo-item span{font-size:.75rem;color:#6b7280}.clinical-photo-preview{max-width:100%;max-height:620px;object-fit:contain;border-radius:12px;border:1px solid #e0e0e0}.clinical-form-group{padding:1rem 0;border-top:1px solid #eceef1}.clinical-form-group:first-of-type{border-top:0}.clinical-form-group-heading{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:.7rem}.clinical-form-group-heading>div{display:grid;gap:.2rem}.clinical-form-group-heading span{font-size:.83rem;color:#6b7280}.compact-copy{margin:.35rem 0 0}
@media(max-width:760px){.before-after-grid{grid-template-columns:1fr}.photo-set-heading{align-items:flex-start;flex-direction:column}.stripe-status-grid{align-items:flex-start;flex-direction:column}}


/* Treatment journey */
.journey-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:8px 0 24px}.journey-header h1{margin:.25rem 0}.journey-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:24px;align-items:start}.journey-steps{position:sticky;top:92px;display:grid;gap:8px}.journey-step{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--edit-border,#e5e7eb);background:#fff;border-radius:14px;padding:13px;color:inherit;cursor:pointer}.journey-step>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#f1f3f5;font-weight:700;flex:none}.journey-step div{display:grid;gap:2px}.journey-step small{color:#6b7280}.journey-step.active{border-color:#111;background:#f7f7f7}.journey-step.active>span{background:#111;color:#fff}.journey-step.complete>span{background:#e7f7ef;color:#087443}.journey-workspace{min-height:620px}.journey-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.journey-detail-grid>div{padding:18px;border:1px solid #e6e8eb;border-radius:14px;display:grid;gap:5px}.journey-detail-grid span{font-size:.8rem;color:#6b7280;text-transform:uppercase;letter-spacing:.06em}.journey-callout{margin-top:18px;padding:16px 18px;border-radius:14px;background:#f7f7f7}.journey-callout p{margin:.35rem 0 0;color:#6b7280}.journey-form-list{display:grid;gap:10px}.journey-form-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px;border:1px solid #e6e8eb;border-radius:14px}.journey-form-row>div{display:grid;gap:3px}.journey-form-row small{color:#6b7280}.journey-inline-form{margin-top:20px;padding:20px;border:1px solid #d7dade;border-radius:16px;background:#fafafa}.button-row{display:flex;gap:10px;flex-wrap:wrap}.journey-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.journey-photo-slot{border:1px solid #e6e8eb;border-radius:16px;padding:12px}.journey-photo-slot>span{display:block;font-weight:650;margin-bottom:10px}.photo-placeholder{min-height:150px;border:1px dashed #cfd3d8;border-radius:12px;display:grid;place-items:center;color:#8a9099;background:#fafafa}.photo-preview-button{min-height:150px;width:100%;border:0;border-radius:12px;background:#f3f4f6;display:grid;place-items:center;align-content:center;gap:5px;cursor:pointer}.photo-preview-button small{color:#6b7280}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.photo-position-field{max-width:300px;margin-top:16px}.product-entry,.marker-entry{border:1px solid #e6e8eb;border-radius:16px;padding:16px;margin-bottom:12px}.danger-text{color:#b42318}.face-map-section{margin-top:24px;display:grid;grid-template-columns:220px 280px;gap:28px;align-items:center}.face-map{position:relative;width:260px;height:360px;margin:auto;background:#fafafa;border:1px solid #e5e7eb;border-radius:46% 46% 42% 42%}.face-outline{position:absolute;inset:28px 38px;border:2px solid #b8bec6;border-radius:48% 48% 45% 45%}.face-area{position:absolute;width:32px;height:32px;border-radius:50%;border:1px dashed #8e969f;background:rgba(255,255,255,.75);transform:translate(-50%,-50%);cursor:pointer}.face-area:hover{background:#111;border-color:#111}.forehead{left:50%;top:18%}.left-temple{left:30%;top:30%}.right-temple{left:70%;top:30%}.left-cheek{left:34%;top:50%}.right-cheek{left:66%;top:50%}.nose{left:50%;top:48%}.upper-lip{left:50%;top:62%}.lower-lip{left:50%;top:68%}.chin{left:50%;top:80%}.face-marker{position:absolute;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#111;color:#fff;font-size:.75rem;font-weight:700;z-index:2}.review-checklist{display:grid;gap:0;border:1px solid #e6e8eb;border-radius:16px;overflow:hidden;margin-bottom:20px}.review-checklist>div{display:flex;justify-content:space-between;gap:20px;padding:15px 18px;border-bottom:1px solid #e6e8eb}.review-checklist>div:last-child{border-bottom:0}.journey-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:28px;padding-top:18px;border-top:1px solid #e6e8eb}.form-grid.three-column{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1000px){.journey-layout{grid-template-columns:1fr}.journey-steps{position:static;grid-template-columns:repeat(7,minmax(130px,1fr));overflow-x:auto;padding-bottom:6px}.journey-step{min-width:145px}.journey-step small{display:none}}
@media(max-width:700px){.journey-header{display:block}.journey-detail-grid,.journey-photo-grid,.form-grid.three-column,.face-map-section{grid-template-columns:1fr}.journey-footer{flex-wrap:wrap}.journey-form-row{align-items:flex-start;flex-direction:column}.face-map{width:240px;height:330px}}

.editor-section{margin:24px 0;padding:22px;border:1px solid #e5e7eb;border-radius:16px;background:#fafafa}.editor-section h3{margin:0 0 6px}.selection-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-top:16px}.selection-card{padding:14px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;align-items:flex-start}.selection-card span{display:flex;flex-direction:column}.selection-card small{color:#71717a;margin-top:3px}

/* Clinic branding */
.branding-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:24px}.branding-card{display:flex;flex-direction:column;gap:16px}.branding-preview{border:1px dashed #c8c8c8;border-radius:18px;background:#f7f7f7;display:flex;align-items:center;justify-content:center;overflow:hidden}.logo-preview{height:220px}.banner-preview{height:220px}.branding-preview img{width:100%;height:100%;object-fit:contain;background:#fff}.banner-preview img{object-fit:cover}.branding-placeholder{font-weight:700;color:#8b8b8b;text-align:center;padding:32px}.branding-usage-card{margin-top:8px}.branding-usage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}.branding-usage-grid>div{border:1px solid #e5e5e5;border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:6px}.branding-usage-grid span{color:#6c6c6c;font-size:.92rem}.file-button input[type=file]{position:absolute;opacity:0;width:1px;height:1px}.builder-count{margin:12px 0 16px;padding:12px 14px;background:#f5f5f5;border-radius:12px;color:#555}.builder-count strong{color:#111}@media(max-width:900px){.branding-grid,.branding-usage-grid{grid-template-columns:1fr}}

/* Calendar appointment state colours and interactions */
.appointment-booked{background:#dbeafe!important;border-color:#3b82f6!important;color:#123a72!important}
.appointment-deposit{background:#fef3c7!important;border-color:#f59e0b!important;color:#6b4300!important}
.appointment-paid{background:#dcfce7!important;border-color:#22c55e!important;color:#14532d!important}
.appointment-cancelled{background:#fee2e2!important;border-color:#ef4444!important;color:#7f1d1d!important}
.appointment-completed{background:#e5e7eb!important;border-color:#9ca3af!important;color:#374151!important}
.appointment-no-show{background:#7f1d1d!important;border-color:#450a0a!important;color:#fff!important}
.appointment-list-colour{border-left-width:5px!important}
.calendar-heading-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.55rem}
.calendar-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.45rem;font-size:.72rem}
.calendar-legend span{padding:.25rem .5rem;border-radius:999px;border:1px solid transparent;font-weight:700}
.legend-booked{background:#dbeafe;border-color:#3b82f6;color:#123a72}.legend-deposit{background:#fef3c7;border-color:#f59e0b;color:#6b4300}.legend-paid{background:#dcfce7;border-color:#22c55e;color:#14532d}.legend-cancelled{background:#fee2e2;border-color:#ef4444;color:#7f1d1d}.legend-completed{background:#e5e7eb;border-color:#9ca3af;color:#374151}.legend-noshow{background:#7f1d1d;border-color:#450a0a;color:#fff}
.appointment-interactive{position:relative;overflow:visible!important}
.appointment-hover-card{display:none;white-space:pre-line;position:absolute;z-index:80;left:calc(100% + 10px);top:0;width:250px;padding:.85rem;border-radius:12px;background:#111827;color:#fff;text-align:left;font-size:.78rem;line-height:1.45;box-shadow:0 16px 40px rgba(15,23,42,.3);pointer-events:none}
.appointment-interactive:hover .appointment-hover-card{display:block}
.month-cell:nth-child(7n+6) .appointment-hover-card,.month-cell:nth-child(7n+7) .appointment-hover-card,.week-column:nth-last-child(-n+2) .appointment-hover-card{left:auto;right:calc(100% + 10px)}
.appointment-context-menu{position:fixed;z-index:1200;min-width:235px;background:#fff;border:1px solid #d1d5db;border-radius:14px;box-shadow:0 20px 55px rgba(15,23,42,.24);padding:.45rem;overflow:hidden}
.context-menu-heading{display:flex;flex-direction:column;padding:.7rem .75rem;border-bottom:1px solid #e5e7eb;margin-bottom:.3rem}.context-menu-heading small{color:#6b7280;margin-top:.2rem}
.appointment-context-menu button{display:block;width:100%;border:0;background:transparent;text-align:left;padding:.7rem .75rem;border-radius:9px;cursor:pointer;font:inherit}.appointment-context-menu button:hover{background:#f3f4f6}
.edit-modal-backdrop{position:fixed;inset:0;z-index:1100;background:rgba(15,23,42,.52);display:flex;align-items:center;justify-content:center;padding:1rem}
.edit-modal-card{width:min(650px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;padding:1.4rem;box-shadow:0 30px 80px rgba(0,0,0,.28)}
.danger-button{background:#b91c1c!important;border-color:#b91c1c!important;color:#fff!important}

/* Real drawn signatures */
.signature-pad-field{display:flex;flex-direction:column;gap:.45rem;min-width:0}.signature-pad-field>label{font-weight:700}
.signature-pad-shell{position:relative;border:1px solid #cbd5e1;border-radius:14px;background:#fff;overflow:hidden;min-height:165px}
.signature-pad-canvas{display:block;width:100%;height:165px;touch-action:none;cursor:crosshair;background:#fff}
.signature-clear-button{position:absolute;right:.55rem;top:.55rem;border:1px solid #d1d5db;border-radius:999px;background:rgba(255,255,255,.94);padding:.35rem .65rem;font-size:.75rem;font-weight:700;cursor:pointer}
.signature-pad-field small{color:#6b7280}
@media(max-width:800px){.calendar-heading-meta{align-items:flex-start}.calendar-legend{justify-content:flex-start}.appointment-hover-card{display:none!important}.appointment-context-menu{left:1rem!important;right:1rem!important;top:auto!important;bottom:1rem;min-width:0}.calendar-day-heading{align-items:flex-start;flex-direction:column}}

/* Public portal editor */
.portal-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:24px;align-items:start}.portal-editor-form{display:grid;gap:18px}.portal-editor-form .section-heading{margin-top:18px;padding-top:22px;border-top:1px solid #ece9e3}.portal-editor-form .section-heading:first-child{margin-top:0;padding-top:0;border:0}.form-field{display:grid;gap:8px;font-weight:650;font-size:.88rem}.form-field input,.form-field textarea{width:100%;box-sizing:border-box;border:1px solid #dedbd5;border-radius:12px;padding:13px 14px;font:inherit;background:#fff}.portal-toggle-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px;background:#f8f7f4;border-radius:16px}.portal-toggle-grid label{display:flex;gap:9px;align-items:center}.portal-preview-panel{position:sticky;top:94px}.mini-public-preview{margin-top:16px;border:1px solid #dedbd5;border-radius:18px;overflow:hidden;background:#fff}.mini-hero{min-height:230px;background:linear-gradient(135deg,#e7d7c2,#f4eee6);display:flex;flex-direction:column;justify-content:center;padding:30px}.mini-hero span{font-family:Georgia,serif;font-size:30px;line-height:1.05}.mini-hero small{margin:13px 0 18px;line-height:1.5}.mini-hero button{align-self:flex-start;background:#29251f;color:#fff;border:0;border-radius:8px;padding:10px 18px}.mini-trust{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #eee}.mini-trust span{padding:10px;text-align:center;font-size:.7rem}.mini-content{padding:24px}.mini-content h3{font-family:Georgia,serif;font-size:24px;margin:0 0 10px}.mini-content p{color:#6b665e;line-height:1.5}.helper-copy{color:#777168;font-size:.85rem;line-height:1.5}@media(max-width:1050px){.portal-editor-grid{grid-template-columns:1fr}.portal-preview-panel{position:static}}@media(max-width:620px){.portal-toggle-grid{grid-template-columns:1fr}}

/* Face management workspace */
.customer-workspace-tabs{display:flex;gap:24px;overflow:auto;border-bottom:1px solid #e7e4df;margin:0 0 22px;padding:0 2px}.customer-workspace-tabs a,.customer-workspace-tabs span{white-space:nowrap;padding:12px 2px;color:#77716a;text-decoration:none;font-size:.85rem}.customer-workspace-tabs a.active{color:#171512;border-bottom:2px solid #171512;font-weight:700}.face-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}.face-page-heading h1{margin:.3rem 0}.face-management-grid{display:grid;grid-template-columns:250px minmax(420px,1fr) 320px;gap:18px;align-items:start}.face-history-panel{padding:16px}.face-history-item{width:100%;display:flex;gap:10px;text-align:left;background:transparent;border:0;border-bottom:1px solid #eeeae4;padding:14px 4px;cursor:pointer}.face-history-item.active{background:#faf6ef;border-radius:12px;padding:14px 10px}.face-history-item div{display:flex;flex-direction:column;gap:4px}.face-history-item small{color:#837d75}.face-history-dot{width:8px;height:8px;border-radius:50%;background:#d8874d;margin-top:6px;flex:0 0 auto}.face-map-workspace{padding:18px}.face-map-toolbar{display:flex;justify-content:space-between;align-items:center}.segmented-control{display:flex;background:#f3f1ed;border-radius:10px;padding:3px}.segmented-control button{border:0;background:transparent;padding:7px 16px;border-radius:8px}.segmented-control button.active{background:#fff;box-shadow:0 1px 5px #00000012}.clinical-face-canvas{position:relative;max-width:470px;margin:18px auto}.clinical-face-canvas svg{display:block;width:100%;height:auto}.face-outline,.face-line{fill:none;stroke:#b9b3ab;stroke-width:2}.face-line{stroke-width:1.4}.face-marker{position:absolute;transform:translate(-50%,-50%);width:25px;height:25px;border-radius:50%;border:2px solid #fff;background:#d8874d;color:#fff;font-size:.7rem;font-weight:800;box-shadow:0 2px 8px #0003;cursor:pointer}.face-layer-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;font-size:.76rem;color:#706a62}.face-layer-legend span{display:flex;align-items:center;gap:6px}.layer{width:8px;height:8px;border-radius:50%;background:#d8874d}.layer.filler{background:#ba5ca5}.layer.skin{background:#45a6aa}.layer.other{background:#7f8ba4}.face-detail-column{display:grid;gap:18px}.face-photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.face-photo-slot{border:1px solid #e7e4df;border-radius:12px;overflow:hidden;background:#f8f6f2}.face-photo-slot>span{display:block;padding:7px 9px;font-size:.72rem;font-weight:800;text-transform:uppercase}.face-photo-slot img{display:block;width:100%;aspect-ratio:1/1.15;object-fit:cover}.photo-placeholder{display:grid;place-items:center;aspect-ratio:1/1.15;padding:10px;text-align:center;color:#918a81;font-size:.75rem}.face-product-row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #eeeae4}.face-product-row div{display:flex;flex-direction:column}.face-product-row div:last-child{text-align:right}.face-product-row small{color:#8a847c}.marker-details{display:grid;grid-template-columns:85px 1fr;gap:8px;margin:0}.marker-details dt{color:#8b857d}.marker-details dd{margin:0;font-weight:600}.full-width{display:block;width:100%;text-align:center;margin-top:10px}@media(max-width:1200px){.face-management-grid{grid-template-columns:220px 1fr}.face-detail-column{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.face-page-heading{align-items:flex-start;flex-direction:column}.face-management-grid{grid-template-columns:1fr}.face-detail-column{grid-column:auto;grid-template-columns:1fr}.face-history-panel{order:2}.face-map-workspace{order:1}}

/* v4.3.2 - premium appointment face management */
.fm-page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:20px}.fm-page-header h2{font-family:Georgia,'Times New Roman',serif;font-size:2rem;font-weight:500;letter-spacing:-.025em;margin:.25rem 0 .35rem}.fm-page-header p{max-width:760px;margin:0}.fm-dashboard{display:grid;grid-template-columns:minmax(520px,1.45fr) minmax(250px,.72fr) minmax(270px,.78fr);gap:14px;align-items:stretch}.fm-card{background:#fff;border:1px solid #e8e3dc;border-radius:14px;box-shadow:0 7px 24px rgba(40,31,20,.035);overflow:hidden}.fm-map-card{min-height:590px}.fm-card-header,.fm-card-title{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid #eee9e2}.fm-card-title h3{font-family:Georgia,'Times New Roman',serif;font-size:1.05rem;font-weight:600;margin:0}.fm-card-title span,.fm-marker-count{font-size:.72rem;color:#928a80}.fm-view-tabs{background:#f6f0e7}.fm-view-tabs button.active,.fm-photo-tabs button.active{background:#f2e2c8;color:#6c5030;box-shadow:none}.fm-map-body{display:grid;grid-template-columns:128px 1fr;min-height:465px;padding:18px 14px 8px}.fm-layer-panel{display:flex;flex-direction:column;justify-content:center;gap:12px;padding-left:4px;font-size:.72rem;color:#5e5952}.fm-layer-panel strong{font-size:.76rem;color:#26231f;margin-bottom:4px}.fm-layer-panel span{display:flex;align-items:center;gap:8px}.fm-dot{width:9px;height:9px;border-radius:50%;background:#4f94e8;display:inline-block;flex:0 0 auto}.fm-dot.filler{background:#ef9a2d}.fm-dot.skin{background:#e04f9b}.fm-dot.threads{background:#7b9b9d}.fm-dot.other{background:#4ab3b6}.fm-face-canvas{position:relative;width:min(100%,420px);aspect-ratio:420/520;margin:auto;transition:transform .2s ease}.fm-face-canvas.left{transform:perspective(900px) rotateY(7deg)}.fm-face-canvas.right{transform:perspective(900px) rotateY(-7deg)}.fm-face-canvas svg{display:block;width:100%;height:100%}.fm-face-outline{fill:#fffdf9;stroke:#bdb7ae;stroke-width:2}.fm-face-line{fill:none;stroke:#c8c2b9;stroke-width:1.55;stroke-linecap:round}.fm-hit-area{position:absolute;width:34px;height:34px;border-radius:50%;border:1px dashed transparent;background:transparent;transform:translate(-50%,-50%);cursor:crosshair;z-index:2}.fm-hit-area:hover{border-color:#b99b74;background:#f2e2c866}.fm-map-marker{position:absolute;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:50%;border:3px solid #fff;background:#4f94e8;color:#fff;font-size:.66rem;font-weight:800;box-shadow:0 2px 8px #0003;z-index:4;cursor:pointer}.fm-map-marker.filler{background:#ef9a2d}.fm-map-marker.skin{background:#e04f9b}.fm-map-marker.threads{background:#7b9b9d}.fm-map-marker.other{background:#4ab3b6}.fm-map-marker.selected{outline:3px solid #1f1d1a;outline-offset:2px}.fm-map-tools{display:flex;justify-content:center;border-top:1px solid #eee9e2;padding:8px}.fm-map-tools button{min-width:62px;border:0;background:transparent;color:#746d65;padding:7px 10px;border-radius:8px;display:grid;gap:3px;place-items:center;cursor:pointer}.fm-map-tools button span{font-size:.62rem}.fm-map-tools button.active,.fm-map-tools button:hover{background:#f7f2ea;color:#1f1c18}.fm-history-card,.fm-photos-card{min-height:590px}.fm-history-list{padding:12px}.fm-history-item{display:flex;gap:10px;padding:14px;border:1px solid #eee8df;border-radius:11px;background:#fff}.fm-history-item.active{background:#fdfaf5;border-color:#e4d1b8}.fm-history-item>div{display:grid;gap:5px}.fm-history-item span,.fm-history-item small{font-size:.72rem;color:#7f776f;line-height:1.4}.fm-outline-button{width:calc(100% - 24px);margin:10px 12px 14px;border:1px solid #d8c3a6;background:#fff;color:#7c5e3b;border-radius:8px;padding:10px 12px;font-weight:700;cursor:pointer}.fm-outline-button:hover{background:#fbf4e9}.fm-photo-tabs{margin:12px;background:#f8f4ed}.fm-photo-tabs button{flex:1}.fm-photo-pairs{padding:0 12px}.fm-photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.fm-photo-pair>div{border:1px solid #e8e1d8;border-radius:10px;overflow:hidden;background:#faf7f2}.fm-photo-pair>div>span{display:block;padding:6px 8px;font-size:.62rem;font-weight:800;text-transform:uppercase;color:#7f776e}.fm-photo-pair button{width:100%;min-height:150px;border:0;background:linear-gradient(145deg,#efe7dc,#faf7f2);padding:10px;display:grid;place-content:end start;text-align:left;cursor:pointer}.fm-photo-pair button strong{font-size:.75rem}.fm-photo-pair button small{font-size:.65rem;color:#7d756c}.fm-photo-empty{min-height:150px;display:grid;place-items:center;color:#9d958c;font-size:.72rem}.fm-detail-grid{display:grid;grid-template-columns:.85fr 1.15fr 1.1fr;gap:14px;margin-top:14px}.fm-detail-card,.fm-products-card,.fm-notes-card{padding-bottom:14px}.fm-detail-list{display:grid;grid-template-columns:105px 1fr;gap:8px 12px;padding:14px 18px;margin:0;font-size:.78rem}.fm-detail-list dt{color:#8d857c}.fm-detail-list dd{margin:0;font-weight:650}.fm-product-table{padding:0 16px;font-size:.72rem}.fm-product-table>div{display:grid;grid-template-columns:1.25fr 1fr .75fr .65fr;gap:8px;padding:10px 0;border-bottom:1px solid #eee9e2}.fm-product-table .head{color:#928a80;font-size:.65rem;text-transform:uppercase;letter-spacing:.04em}.fm-notes-card .field{padding:0 16px;margin-top:12px}.fm-notes-card textarea{min-height:82px}.fm-marker-editor{margin-top:14px}.fm-marker-editor .form-grid{padding:16px 18px}.form-grid.four-column{grid-template-columns:repeat(4,minmax(0,1fr))}.journey-workspace:has(.fm-dashboard){background:transparent;border:0;box-shadow:none;padding:0}.journey-layout:has(.fm-dashboard){grid-template-columns:220px minmax(0,1fr)}.journey-layout:has(.fm-dashboard) .journey-step{padding:10px 12px;border-radius:10px}.journey-layout:has(.fm-dashboard) .journey-step>span{width:28px;height:28px}.journey-layout:has(.fm-dashboard) .journey-step strong{font-size:.8rem}.journey-layout:has(.fm-dashboard) .journey-step small{font-size:.68rem}.journey-layout:has(.fm-dashboard) .journey-footer{background:#fff;border:1px solid #e8e3dc;border-radius:12px;padding:12px 16px;margin-top:14px}
@media(max-width:1280px){.fm-dashboard{grid-template-columns:minmax(480px,1.4fr) minmax(230px,.7fr)}.fm-photos-card{grid-column:1/-1;min-height:0}.fm-photo-pair{grid-template-columns:repeat(4,1fr)}.fm-detail-grid{grid-template-columns:1fr 1fr}.fm-notes-card{grid-column:1/-1}}
@media(max-width:900px){.fm-page-header{align-items:flex-start;flex-direction:column}.fm-dashboard,.fm-detail-grid{grid-template-columns:1fr}.fm-photos-card{grid-column:auto}.fm-map-body{grid-template-columns:1fr}.fm-layer-panel{order:2;display:grid;grid-template-columns:repeat(3,1fr);padding:12px}.fm-photo-pair{grid-template-columns:1fr 1fr}.form-grid.four-column{grid-template-columns:1fr 1fr}.journey-layout:has(.fm-dashboard){grid-template-columns:1fr}}
@media(max-width:620px){.fm-map-card{min-height:0}.fm-map-body{padding:8px}.fm-layer-panel{grid-template-columns:1fr 1fr}.fm-photo-pair,.form-grid.four-column{grid-template-columns:1fr}.fm-card-header{align-items:flex-start;flex-direction:column}.fm-map-tools{overflow-x:auto;justify-content:flex-start}.fm-page-header h2{font-size:1.55rem}}

/* Free-form clinical face map */
.fm-layer-choice{display:flex;align-items:center;gap:.55rem;width:100%;padding:.55rem .65rem;border:1px solid transparent;background:transparent;border-radius:10px;text-align:left;color:inherit;cursor:pointer}
.fm-layer-choice:hover{background:#f4f4f4}.fm-layer-choice.active{background:#111;color:#fff}.fm-layer-panel small{display:block;margin-top:.65rem;line-height:1.35;color:#777}
.fm-face-canvas{position:relative;touch-action:none;user-select:none}.fm-face-canvas>svg{display:block;width:100%;height:100%;pointer-events:none}.fm-canvas-interaction{position:absolute;inset:0;z-index:6;cursor:crosshair;touch-action:none}
.fm-map-marker{z-index:8}.fm-drawing{stroke-width:4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.fm-drawing.anti,.fm-map-text.anti{stroke:#446ccf;fill:#446ccf}.fm-drawing.filler,.fm-map-text.filler{stroke:#d39b32;fill:#d39b32}.fm-drawing.skin,.fm-map-text.skin{stroke:#3c9c79;fill:#3c9c79}.fm-drawing.threads,.fm-map-text.threads{stroke:#8b62b5;fill:#8b62b5}.fm-drawing.other,.fm-map-text.other{stroke:#444;fill:#444}.fm-map-text{font-size:16px;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:3px}
.fm-map-tools button:disabled{opacity:.35;cursor:not-allowed}

/* Treatment image management */
.treatment-image-field{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:22px;align-items:center;padding:18px;border:1px solid #e5e7eb;border-radius:16px;background:#fafafa}
.treatment-image-controls>label{display:block;font-weight:700;margin-bottom:6px}
.treatment-image-controls p{max-width:680px;margin:0 0 14px;line-height:1.5}
.treatment-image-preview{height:150px;border:1px dashed #cfd3d8;border-radius:14px;background:#fff;display:grid;place-items:center;overflow:hidden;color:#8a9099;font-weight:650;text-align:center}
.treatment-image-preview img{width:100%;height:100%;display:block;object-fit:cover}
@media(max-width:760px){.treatment-image-field{grid-template-columns:1fr}.treatment-image-preview{height:180px}}
.form-grid .form-span{grid-column:1/-1}

/* EDIT Business mobile PWA — premium compact app shell v2.39 */
.mobile-business-dashboard,.mobile-business-calendar,.mobile-clients-page,.mobile-appointment-details,.business-mobile-header,.business-mobile-nav,.mobile-journey-back{display:none}
.desktop-business-page{display:block}
.business-install-prompt{position:fixed;right:20px;bottom:20px;z-index:1000;width:min(430px,calc(100vw - 32px));display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;background:#fff;border:1px solid #e8e2da;border-radius:18px;padding:14px 16px;box-shadow:0 22px 60px rgba(25,20,16,.18);color:#161411}
.business-install-prompt[hidden]{display:none}.business-install-icon{width:44px;height:44px;border-radius:13px;background:#f4eadc;display:grid;place-items:center;font-family:Georgia,'Times New Roman',serif;font-size:25px}.business-install-prompt div{display:grid;gap:3px}.business-install-prompt strong{font-size:14px}.business-install-prompt small{color:#777067;font-size:11px;line-height:1.35}.business-install-button{border:0;background:#111;color:#fff;border-radius:10px;min-height:40px;padding:0 14px;font-weight:750;white-space:nowrap}.business-install-close{position:absolute;right:6px;top:4px;width:24px;height:24px;border:0;background:transparent;color:#8f887f;font-size:18px;cursor:pointer}

@media(max-width:820px){
  :root{--mobile-beige:#f7efe4;--mobile-beige-strong:#ead9c3;--mobile-ink:#11110f;--mobile-muted:#77736e;--mobile-line:#e9e6e2;--mobile-green:#18a957;--mobile-amber:#d99300;--mobile-grey:#9b9b9b}
  html{background:#fff;overscroll-behavior-y:none}body{background:#fff;color:var(--mobile-ink);-webkit-tap-highlight-color:transparent;padding:0;overscroll-behavior-y:contain}
  .app-frame{display:block;min-height:100dvh}.app-sidebar,.app-topbar,.mobile-scrim{display:none!important}.app-main{margin:0!important;min-width:0;width:100%;min-height:100dvh;background:#fff}.app-content{width:100%;max-width:none;margin:0;padding:0 16px calc(104px + env(safe-area-inset-bottom));overflow:visible}
  .desktop-business-page{display:none!important}.mobile-business-dashboard,.mobile-business-calendar,.mobile-clients-page,.mobile-appointment-details{display:block}
  .business-mobile-header{display:flex;align-items:center;justify-content:space-between;height:calc(74px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 18px 0;background:rgba(255,255,255,.97);position:sticky;top:0;z-index:50;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
  .business-mobile-wordmark{font-family:Georgia,'Times New Roman',serif;font-size:34px;letter-spacing:.14em;text-decoration:none;color:#111;font-weight:500;line-height:1}
  .business-mobile-notifications{width:45px;height:45px;border:0;border-radius:50%;background:var(--mobile-beige);display:grid;place-items:center;color:#111;cursor:pointer}.business-mobile-notifications svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .business-mobile-nav{display:grid;position:fixed;left:0;right:0;bottom:0;z-index:70;grid-template-columns:repeat(5,1fr);height:calc(82px + env(safe-area-inset-bottom));padding:8px 8px env(safe-area-inset-bottom);background:rgba(255,255,255,.98);border-top:1px solid #e8e5e1;border-radius:24px 24px 0 0;box-shadow:0 -8px 28px rgba(30,25,20,.08);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
  .business-mobile-nav>a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-decoration:none;color:#77736e;font-size:11px;min-width:0}.business-mobile-nav>a svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.business-mobile-nav>a.active{color:#111}.business-mobile-nav>a.active svg{stroke-width:2.3}.business-mobile-nav .mobile-nav-add{color:#111}.mobile-nav-add-circle{width:48px;height:48px;margin-top:-23px;border-radius:50%;background:#050505;color:#fff;display:grid;place-items:center;font-size:31px;font-weight:300;box-shadow:0 7px 18px rgba(0,0,0,.18)}
  .app-main:has(.mobile-appointment-details) .business-mobile-header,.app-main:has(.mobile-appointment-details) .business-mobile-nav{display:none}.app-main:has(.mobile-appointment-details) .app-content{padding:calc(10px + env(safe-area-inset-top)) 14px calc(24px + env(safe-area-inset-bottom))}

  .mobile-inline-alert,.mobile-inline-success{font-size:12px;line-height:1.4;padding:10px 12px;border-radius:10px;margin:10px 0}.mobile-inline-alert{background:#fff0ed;color:#8c2d20}.mobile-inline-success{background:#e9f7ee;color:#176b37}
  .mobile-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 2px 11px}.mobile-section-heading h2{font-size:18px;margin:0;letter-spacing:-.02em}.mobile-section-heading a,.mobile-section-heading button{color:#9b7955;text-decoration:none;background:transparent;border:0;font:inherit;font-size:12px;font-weight:650;padding:5px 0}.mobile-section-heading a span{font-size:20px;vertical-align:-1px;margin-left:4px}
  .mobile-list-empty{min-height:118px;border:1px solid var(--mobile-line);border-radius:16px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--mobile-muted);font-size:12px;text-align:center;padding:20px}.mobile-list-empty strong{font-size:16px;color:#111}.mobile-list-empty a{margin-top:7px;background:#111;color:#fff;text-decoration:none;border-radius:999px;padding:9px 15px;font-weight:700}

  /* Mobile dashboard */
  .mobile-business-dashboard{padding:8px 0 4px}.mobile-dashboard-welcome{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin:6px 0 20px}.mobile-dashboard-welcome>div>span{color:var(--mobile-muted);font-size:13px}.mobile-dashboard-welcome h1{font-size:25px;line-height:1.05;letter-spacing:-.035em;margin:5px 0 5px}.mobile-dashboard-welcome p{font-size:12px;color:var(--mobile-muted);margin:0}.mobile-takings-pill{min-width:151px;display:grid;grid-template-columns:1fr auto;column-gap:8px;align-items:center;background:linear-gradient(135deg,#fbf6ef,#f1e4d3);border-radius:999px;padding:13px 16px;text-decoration:none}.mobile-takings-pill span{grid-column:1/-1;font-size:10px;color:#6f675f}.mobile-takings-pill strong{font-size:19px;letter-spacing:-.02em}.mobile-takings-pill svg{width:24px;height:24px;fill:none;stroke:#111;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .mobile-dashboard-stats{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--mobile-line);border-radius:18px;box-shadow:0 8px 24px rgba(35,29,22,.045);overflow:hidden;margin-bottom:16px}.mobile-dashboard-stats a{min-width:0;display:flex;flex-direction:column;align-items:center;padding:13px 5px 12px;text-decoration:none;border-right:1px solid var(--mobile-line)}.mobile-dashboard-stats a:last-child{border-right:0}.mobile-stat-icon{width:36px;height:36px;border-radius:50%;background:var(--mobile-beige);display:grid;place-items:center;margin-bottom:5px}.mobile-stat-icon svg{width:19px;height:19px;fill:none;stroke:#111;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mobile-dashboard-stats strong{font-size:17px;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis}.mobile-dashboard-stats small{font-size:8px;color:var(--mobile-muted);text-align:center;white-space:nowrap;margin-top:2px}
  .mobile-today-hero{min-height:190px;display:flex;align-items:flex-start;position:relative;overflow:hidden;border-radius:18px;background:linear-gradient(135deg,#090909,#34302c);background-size:cover;background-position:center;text-decoration:none;color:#fff;padding:22px;box-shadow:0 12px 30px rgba(20,17,14,.14)}.mobile-today-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,5,.92) 0%,rgba(5,5,5,.78) 48%,rgba(5,5,5,.22) 100%)}.mobile-today-hero>div,.mobile-today-icon{position:relative;z-index:1}.mobile-today-icon{width:42px;height:42px;border-radius:50%;background:#fbf4ea;color:#111;display:grid;place-items:center;margin-right:13px;flex:0 0 auto}.mobile-today-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mobile-today-hero small{font-size:12px;font-weight:650}.mobile-today-hero h2{font-size:22px;margin:4px 0 17px}.mobile-today-hero p{font-size:12px;margin:0 0 13px;color:#eee}.mobile-light-button{display:inline-flex;background:#fff;color:#111;border-radius:999px;padding:9px 14px;font-size:11px;font-weight:700}
  .mobile-week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;border:1px solid var(--mobile-line);border-radius:16px;padding:7px;background:#fff;box-shadow:0 7px 20px rgba(35,29,22,.035)}.mobile-week-strip a{height:73px;border-radius:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;gap:2px}.mobile-week-strip a.selected{background:#111;color:#fff}.mobile-week-strip small{font-size:8px}.mobile-week-strip strong{font-size:17px}.mobile-week-strip span{font-size:9px;min-height:12px}
  .mobile-appointment-list{display:grid;gap:8px}.mobile-appointment-list>a,.mobile-appointment-list>button{width:100%;border:1px solid var(--mobile-line);border-radius:15px;background:#fff;display:grid;grid-template-columns:54px minmax(0,1fr) auto 14px;align-items:center;gap:10px;padding:10px 11px;text-decoration:none;color:#111;text-align:left;box-shadow:0 6px 18px rgba(30,25,20,.035)}.mobile-appointment-time{width:49px;height:49px;border-radius:50%;background:var(--mobile-beige);display:flex;flex-direction:column;align-items:center;justify-content:center}.mobile-appointment-time strong{font-size:13px}.mobile-appointment-time small{font-size:8px}.mobile-appointment-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.mobile-appointment-copy strong{font-size:15px}.mobile-appointment-copy small{font-size:11px;color:#625e59;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-appointment-copy span{font-size:9px;color:#918b84;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-payment-pill{font-size:9px;border-radius:999px;padding:6px 9px;white-space:nowrap}.mobile-payment-pill.paid{background:#e1f7e8;color:#12823f}.mobile-payment-pill.deposit{background:#fff1d9;color:#a76b00}.mobile-payment-pill.pending{background:#f0f0f0;color:#666}.mobile-row-chevron{font-size:24px;line-height:1}

  /* Mobile calendar */
  .mobile-business-calendar{padding:8px 0 3px}.mobile-calendar-business-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin:5px 0 18px}.mobile-calendar-business-row>div>span{font-size:12px;color:var(--mobile-muted)}.mobile-calendar-business-row h1{font-size:23px;margin:5px 0 0;letter-spacing:-.03em}.mobile-calendar-business-row>a{min-width:142px;background:var(--mobile-beige);border-radius:999px;padding:11px 16px;text-decoration:none;display:flex;flex-direction:column}.mobile-calendar-business-row>a small{font-size:9px;color:#6e665e}.mobile-calendar-business-row>a strong{font-size:18px}
  .mobile-calendar-toolbar{height:64px;border:1px solid var(--mobile-line);border-radius:16px;display:grid;grid-template-columns:40px minmax(0,1fr) 42px 42px 40px;align-items:center;background:#fff;margin-bottom:16px;box-shadow:0 6px 20px rgba(30,25,20,.035);position:relative}.mobile-calendar-toolbar button{height:44px;border:0;background:transparent;display:grid;place-items:center;font-size:28px;color:#111}.mobile-calendar-toolbar svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mobile-calendar-month{font-size:18px!important;font-weight:700!important;display:flex!important;flex-direction:row!important;gap:7px!important}.mobile-calendar-month span{font-size:14px}.mobile-calendar-next{font-size:28px!important}
  .mobile-month-weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:0 4px 8px}.mobile-month-weekdays span{text-align:center;font-size:8px;color:#5f5a54;font-weight:700}
  .mobile-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--mobile-line);border-radius:16px;overflow:hidden;background:#fff}.mobile-month-cell{min-width:0;min-height:82px;border:0;border-right:1px solid #f0eeeb;border-bottom:1px solid #f0eeeb;background:#fff;padding:6px 3px;display:flex;flex-direction:column;align-items:center;gap:4px;color:#111;overflow:hidden}.mobile-month-cell:nth-child(7n){border-right:0}.mobile-month-cell.outside{color:#c2beb8;background:#fdfcfb}.mobile-month-cell>strong{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:500}.mobile-month-cell.selected>strong{background:#111;color:#fff}.mobile-month-cell>em{font-style:normal;font-size:13px}.mobile-month-chip{width:100%;height:18px;border-radius:999px;background:#fbf0e2;display:flex;align-items:center;justify-content:space-between;gap:2px;padding:0 5px;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#333}.mobile-month-chip i,.mobile-calendar-legend i{width:6px;height:6px;border-radius:50%;display:inline-block;flex:0 0 auto}.mobile-month-chip i.paid,.mobile-calendar-legend i.paid{background:var(--mobile-green)}.mobile-month-chip i.deposit,.mobile-calendar-legend i.deposit{background:var(--mobile-amber)}.mobile-month-chip i.pending,.mobile-calendar-legend i.pending{background:var(--mobile-grey)}.mobile-month-cell>small{font-size:8px;color:#777}
  .mobile-calendar-legend{display:flex;align-items:center;gap:13px;border:1px solid var(--mobile-line);border-radius:13px;margin-top:10px;padding:10px 12px;font-size:9px}.mobile-calendar-legend span{display:flex;align-items:center;gap:5px}.mobile-calendar-legend small{margin-left:auto;color:#9b7955}.mobile-selected-day-heading{margin-top:18px}.mobile-calendar-list{padding-bottom:8px}
  .mobile-sheet-backdrop{position:fixed;inset:0;z-index:84;background:rgba(20,17,14,.34);backdrop-filter:blur(2px)}.mobile-create-sheet{position:fixed;z-index:85;left:0;right:0;bottom:0;max-height:88dvh;overflow:auto;background:#fff;border-radius:24px 24px 0 0;padding:8px 18px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -16px 50px rgba(25,20,16,.18)}.mobile-sheet-handle{width:42px;height:4px;border-radius:999px;background:#d7d2cc;margin:2px auto 13px}.mobile-sheet-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}.mobile-sheet-heading small{font-size:8px;letter-spacing:.16em;color:#9b7955;font-weight:750}.mobile-sheet-heading h2{font-size:25px;margin:3px 0}.mobile-sheet-heading>button{width:39px;height:39px;border:0;border-radius:50%;background:var(--mobile-beige);font-size:23px}.mobile-sheet-fields{display:grid;gap:11px}.mobile-sheet-fields.two{grid-template-columns:1fr 1fr}.mobile-sheet-fields label{font-size:10px;font-weight:700;display:grid;gap:5px}.mobile-sheet-fields label.wide{grid-column:1/-1}.mobile-sheet-fields input,.mobile-sheet-fields select{width:100%;height:45px;border:1px solid #ddd8d2;border-radius:11px;background:#fff;padding:0 11px;font:inherit;font-size:12px}.mobile-sheet-primary{width:100%;height:49px;border:0;border-radius:12px;background:#111;color:#fff;font-weight:750;margin-top:16px}

  /* Mobile clients */
  .mobile-clients-page{padding:9px 0 6px}.mobile-clients-page>h1{font-size:34px;letter-spacing:-.04em;margin:5px 0 18px}.mobile-client-search{height:56px;border:1px solid var(--mobile-line);border-radius:18px;background:#fafafa;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:9px;padding:0 14px;margin-bottom:14px}.mobile-client-search svg{width:24px;height:24px;fill:none;stroke:#333;stroke-width:1.8;stroke-linecap:round}.mobile-client-search input{border:0;outline:0;background:transparent;font:inherit;font-size:14px;min-width:0}.mobile-client-search button{border:0;background:transparent;font-size:22px;color:#777}
  .mobile-add-client-card{width:calc(100% - 24px);min-height:76px;border:1px solid var(--mobile-line);border-radius:17px;background:#fff;display:grid;grid-template-columns:49px 1fr 18px;align-items:center;gap:12px;padding:11px 14px;text-align:left;box-shadow:0 6px 20px rgba(30,25,20,.035);margin-bottom:18px}.mobile-add-client-card>span{width:45px;height:45px;border-radius:50%;background:var(--mobile-beige);display:grid;place-items:center}.mobile-add-client-card svg{width:23px;height:23px;fill:none;stroke:#111;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mobile-add-client-card div{display:flex;flex-direction:column;gap:3px}.mobile-add-client-card strong{font-size:15px}.mobile-add-client-card small{font-size:11px;color:var(--mobile-muted)}.mobile-add-client-card b{font-size:27px;font-weight:400}
  .mobile-client-directory{display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:5px;align-items:start}.mobile-client-groups{display:grid;gap:11px}.mobile-client-groups section{scroll-margin-top:86px}.mobile-client-groups h2{font-size:16px;margin:0 0 7px 3px}.mobile-client-groups section>button{width:100%;min-height:78px;border:1px solid var(--mobile-line);border-radius:16px;background:#fff;display:grid;grid-template-columns:49px minmax(0,1fr) auto 15px;align-items:center;gap:11px;padding:10px 12px;text-align:left;margin-bottom:7px;box-shadow:0 5px 16px rgba(30,25,20,.025)}.mobile-client-avatar{width:46px;height:46px;border-radius:50%;background:var(--mobile-beige);display:grid;place-items:center;font-size:16px}.mobile-client-avatar.large{width:66px;height:66px;font-size:23px}.mobile-client-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.mobile-client-copy strong{font-size:15px}.mobile-client-copy small{font-size:11px;color:#5f5a55}.mobile-client-copy em{font-size:9px;color:#8e8881;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-client-groups button>b{font-size:25px;font-weight:400}.mobile-client-alert{min-width:20px;height:20px;border-radius:999px;background:#111;color:#fff;display:grid;place-items:center;font-size:9px}.mobile-alpha-index{position:sticky;top:84px;display:flex;flex-direction:column;align-items:center;padding-top:3px}.mobile-alpha-index button{border:0;background:transparent;color:#111;font-size:8px;line-height:1;padding:2px 1px;min-height:14px}.mobile-client-sheet{max-height:84dvh}

  /* Mobile appointment details */
  .mobile-appointment-details{padding:0 0 calc(94px + env(safe-area-inset-bottom))}.mobile-appointment-details.is-hidden{display:none}.mobile-appointment-brand-row{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 2px;margin:0 0 2px}.mobile-appointment-logo{display:block;width:128px;height:auto;max-height:44px;object-fit:contain;object-position:left center}.mobile-appointment-brand-row>button{width:44px;height:44px;flex:0 0 44px;border:0;border-radius:50%;background:var(--mobile-beige);color:#111;font-size:27px;line-height:1;display:grid;place-items:center;padding:0 0 3px;cursor:pointer}.mobile-appointment-title{text-align:center;margin:0 0 16px}.mobile-appointment-title small{display:block;font-size:11px;color:var(--mobile-muted);margin-bottom:2px}.mobile-appointment-title h1{font-size:25px;margin:0;letter-spacing:-.03em}
  .mobile-appointment-client-card{min-height:102px;border:1px solid var(--mobile-line);border-radius:17px;background:#fff;display:grid;grid-template-columns:66px minmax(0,1fr) 55px 55px;align-items:center;gap:9px;padding:14px;box-shadow:0 6px 20px rgba(30,25,20,.035);margin-bottom:10px}.mobile-appointment-client-card h2{font-size:23px;margin:0 0 3px}.mobile-appointment-client-card p{font-size:12px;color:var(--mobile-muted);margin:0}.mobile-appointment-client-card>a{display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;font-size:9px;color:#555}.mobile-appointment-client-card>a svg{width:42px;height:42px;border-radius:50%;background:var(--mobile-beige);padding:11px;fill:none;stroke:#111;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .mobile-appointment-meta-card{display:grid;grid-template-columns:.82fr 1.05fr 1.2fr;border:1px solid var(--mobile-line);border-radius:16px;background:#fff;margin-bottom:10px;overflow:hidden;box-shadow:0 6px 20px rgba(30,25,20,.025)}.mobile-appointment-meta-card>div{min-width:0;display:grid;grid-template-columns:39px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:7px;padding:12px 7px;border-right:1px solid var(--mobile-line)}.mobile-appointment-meta-card>div:last-child{border-right:0}.mobile-appointment-meta-card>div>span{grid-row:1/3;width:37px;height:37px;border-radius:50%;background:var(--mobile-beige);display:grid;place-items:center;overflow:hidden}.mobile-appointment-meta-card .mobile-practitioner-avatar{width:39px;height:39px;background:#eee6dc;border:2px solid #fff;box-shadow:0 2px 8px rgba(30,25,20,.08)}.mobile-practitioner-avatar img{width:100%;height:100%;display:block;object-fit:cover}.mobile-practitioner-avatar b{font-size:10px;letter-spacing:.02em}.mobile-appointment-meta-card svg{width:19px;height:19px;fill:none;stroke:#111;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.mobile-appointment-meta-card strong{font-size:11px;white-space:normal;line-height:1.12;overflow:hidden}.mobile-appointment-meta-card small{font-size:8px;color:var(--mobile-muted);margin-top:2px}
  .mobile-payment-summary-card,.mobile-clinic-notes-card{border:1px solid var(--mobile-line);border-radius:17px;background:#fff;padding:16px;box-shadow:0 6px 20px rgba(30,25,20,.03);margin-bottom:10px}.mobile-payment-summary-card h2,.mobile-clinic-notes-card h2{font-size:17px;margin:0 0 14px}.mobile-payment-summary-card>div{display:flex;justify-content:space-between;gap:12px;font-size:12px;padding:6px 0}.mobile-payment-summary-card hr{border:0;border-top:1px solid var(--mobile-line);margin:8px 0}.mobile-payment-summary-card .total-paid{font-size:14px;font-weight:750}.mobile-payment-summary-card .total-paid strong{color:var(--mobile-green);font-size:18px}
  .mobile-clinical-action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:10px}.mobile-clinical-action-grid button{height:96px;border:1px solid var(--mobile-line);border-radius:15px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:10px}.mobile-clinical-action-grid svg{width:27px;height:27px;fill:none;stroke:#111;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.mobile-clinical-action-grid button.complete{box-shadow:inset 0 -3px 0 #1ba75a}.mobile-clinical-action-grid button.complete:after{content:'✓';position:absolute}.mobile-clinical-action-grid button{position:relative}.mobile-clinical-action-grid button.complete:after{right:8px;top:8px;width:17px;height:17px;border-radius:50%;background:#1ba75a;color:#fff;display:grid;place-items:center;font-size:10px}
  .mobile-notes-empty{min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--mobile-muted);gap:4px}.mobile-notes-empty svg{width:45px;height:45px;fill:none;stroke:#111;stroke-width:1.4;margin-bottom:4px}.mobile-notes-empty strong{color:#111;font-size:15px}.mobile-notes-empty span{font-size:10px}.mobile-note-entry{height:48px;border:1px solid #ddd8d2;border-radius:13px;display:grid;grid-template-columns:25px 1fr 40px;align-items:center;padding:0 7px 0 10px}.mobile-note-entry input{border:0;outline:0;font:inherit;font-size:12px;min-width:0}.mobile-note-entry button{width:35px;height:35px;border:0;border-radius:50%;background:var(--mobile-beige);font-size:16px}
  .mobile-appointment-actions{position:fixed;left:0;right:0;bottom:0;z-index:70;display:grid;grid-template-columns:1fr 1.15fr;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:rgba(255,255,255,.98);border-top:1px solid var(--mobile-line);border-radius:22px 22px 0 0;box-shadow:0 -8px 25px rgba(30,25,20,.08)}.mobile-appointment-actions button{height:52px;border-radius:13px;border:0;background:var(--mobile-beige);font-weight:750;font-size:14px}.mobile-appointment-actions button.primary{background:#050505;color:#fff}.mobile-appointment-actions button:disabled{opacity:.45}
  .mobile-journey-workspace.show-on-mobile{display:block!important;padding:0 0 calc(30px + env(safe-area-inset-bottom))}.mobile-journey-back{display:block;width:100%;height:48px;border:0;border-radius:12px;background:var(--mobile-beige);font-weight:700;margin-bottom:12px}.mobile-journey-workspace.show-on-mobile .back-link{display:none}.mobile-journey-workspace.show-on-mobile .journey-header{padding:0 3px}.mobile-journey-workspace.show-on-mobile .journey-header h1{font-size:28px}.mobile-journey-workspace.show-on-mobile .journey-layout{grid-template-columns:1fr}.mobile-journey-workspace.show-on-mobile .journey-steps{display:flex;overflow-x:auto;position:static;gap:7px;padding-bottom:7px}.mobile-journey-workspace.show-on-mobile .journey-step{min-width:155px}.mobile-journey-workspace.show-on-mobile .journey-workspace{padding:14px;border-radius:15px}.mobile-journey-workspace.show-on-mobile .form-grid,.mobile-journey-workspace.show-on-mobile .journey-detail-grid{grid-template-columns:1fr}.mobile-journey-workspace.show-on-mobile .journey-footer{flex-wrap:wrap;gap:8px}.mobile-journey-workspace.show-on-mobile .journey-footer .edit-muted{width:100%}

  body:has(.mobile-appointment-details) .business-install-prompt{display:none!important}
  .business-install-prompt{left:12px;right:12px;bottom:calc(91px + env(safe-area-inset-bottom));width:auto;grid-template-columns:40px minmax(0,1fr) auto;padding:11px 12px;border-radius:15px}.business-install-icon{width:38px;height:38px;font-size:21px}.business-install-prompt strong{font-size:12px}.business-install-prompt small{font-size:9px}.business-install-button{min-height:36px;font-size:10px;padding:0 11px}.app-main:has(.mobile-appointment-details)~.business-install-prompt{bottom:calc(80px + env(safe-area-inset-bottom))}
}

@media(max-width:390px){
  .app-content{padding-left:11px;padding-right:11px}.mobile-dashboard-welcome h1,.mobile-calendar-business-row h1{font-size:21px}.mobile-takings-pill,.mobile-calendar-business-row>a{min-width:133px;padding-left:13px;padding-right:13px}.mobile-dashboard-stats small{font-size:7px}.mobile-month-cell{min-height:77px;padding-left:2px;padding-right:2px}.mobile-month-chip{font-size:7px;padding:0 3px}.mobile-appointment-logo{width:116px}.mobile-appointment-client-card{grid-template-columns:57px minmax(0,1fr) 48px 48px;padding:12px;gap:7px}.mobile-client-avatar.large{width:57px;height:57px}.mobile-appointment-client-card>a svg{width:38px;height:38px}.mobile-appointment-client-card h2{font-size:20px}.mobile-clinical-action-grid button{height:89px;font-size:9px}.mobile-appointment-meta-card>div{grid-template-columns:32px minmax(0,1fr);padding:10px 5px;column-gap:5px}.mobile-appointment-meta-card>div>span,.mobile-appointment-meta-card .mobile-practitioner-avatar{width:31px;height:31px}.mobile-appointment-meta-card strong{font-size:10px}
}

/* v2.40 feature profiles and one-time support access */
.support-session-banner{position:relative;z-index:15;background:#111;color:#fff;text-align:center;padding:8px 16px;font-size:11px;font-weight:750;letter-spacing:.035em}.feature-disabled-card{max-width:720px;margin:70px auto;background:#fff;border:1px solid #ded8d0;border-radius:18px;padding:42px;text-align:center;box-shadow:0 16px 45px rgba(32,27,22,.07)}.feature-disabled-card>span{font-size:10px;letter-spacing:.2em;font-weight:800;color:#947b62}.feature-disabled-card h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:36px;line-height:1.12;margin:14px 0}.feature-disabled-card p{color:#746e67;line-height:1.6}.feature-disabled-card a{display:inline-flex;margin-top:14px;background:#111;color:#fff;text-decoration:none;border-radius:10px;padding:12px 18px;font-weight:750}
.support-code-card{max-width:780px;padding:34px}.support-code-card h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:34px;margin:10px 0}.support-code-value{margin:25px 0 10px;border:1px solid #d8cbbd;background:#f7f0e7;border-radius:14px;padding:24px;text-align:center;font-size:clamp(28px,6vw,52px);font-weight:850;letter-spacing:.17em;line-height:1;text-transform:uppercase}.support-code-expiry{color:#746e67;line-height:1.5}.support-security-note{margin-top:25px;border-top:1px solid #e4ded7;padding-top:20px}.support-security-note ul{margin:10px 0 0;padding-left:20px;color:#746e67;line-height:1.8}.support-login-panel{max-width:560px;text-align:center}.support-login-panel .business-login-logo{margin-left:auto;margin-right:auto}.support-login-panel .loading-spinner{margin:22px auto}.business-type-option small{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#111;color:#fff;font-size:8px;letter-spacing:.04em;text-transform:uppercase}.business-type-option:has(input:disabled){cursor:default}
@media(max-width:820px){.support-session-banner{position:sticky;top:calc(58px + env(safe-area-inset-top));font-size:9px;padding:6px 10px}.feature-disabled-card{margin:24px 4px;padding:27px 20px;border-radius:16px}.feature-disabled-card h1{font-size:28px}.support-code-card{padding:22px 16px}.support-code-card h2{font-size:28px}.support-code-value{padding:20px 8px;font-size:30px;letter-spacing:.12em}.support-code-card .button-row{display:grid;grid-template-columns:1fr}.support-code-card .button-row button{width:100%}}
@media(max-width:820px){.business-mobile-nav{grid-template-columns:repeat(auto-fit,minmax(56px,1fr))}.mobile-support-access-link{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:16px;padding:13px;border:1px solid var(--mobile-line);border-radius:15px;background:#fff;text-decoration:none;color:#111}.mobile-support-access-link>span{width:38px;height:38px;border-radius:50%;background:var(--mobile-beige);display:grid;place-items:center;font-weight:800}.mobile-support-access-link>div{display:flex;flex-direction:column;gap:2px}.mobile-support-access-link strong{font-size:12px}.mobile-support-access-link small{font-size:9px;color:var(--mobile-muted)}.mobile-support-access-link>b{font-size:23px;font-weight:400}}

/* v2.43 treatment add-on management */
.treatment-addon-toggle{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:15px 16px;
  border:1px solid #d7c2aa;
  border-radius:12px;
  background:#f4ede5;
}
.treatment-addon-toggle span{display:flex;flex-direction:column;gap:4px}
.treatment-addon-toggle small{font-weight:400;color:#6f665d;line-height:1.4}
.treatment-addon-badge{background:#dcc8af!important;color:#3f3021!important}
.treatment-addon-selector{border-color:#d2b99b;background:#f7f0e8}
.addon-selection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}
.addon-selection-card{display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid #d8c8b7;border-radius:12px;background:#fff;cursor:pointer}
.addon-selection-card.selected{border-color:#25211c;box-shadow:0 0 0 1px #25211c;background:#f1e7db}
.addon-selection-card span{display:flex;flex-direction:column;gap:4px}
.addon-selection-card small{color:#70675e}
@media(max-width:720px){.addon-selection-grid{grid-template-columns:1fr}}


/* Treatment list add-on summary */
.treatment-available-addons{margin-top:12px;padding:11px 12px;border:1px solid #c7aa87;border-radius:10px;background:#e8d7c4;color:#2f261e;display:grid;gap:7px;max-width:430px}
.treatment-available-addons>strong{font-size:12px;line-height:1.3}
.treatment-available-addons-empty{font-size:12px;color:#675849}
.treatment-available-addon-list{display:flex;flex-wrap:wrap;gap:6px}
.treatment-available-addon-list span{display:inline-flex;padding:5px 8px;border-radius:999px;background:#fff8f0;border:1px solid #b99b79;color:#2f261e;font-size:11px;font-weight:700}
@media(max-width:760px){.treatment-available-addons{max-width:none;margin-top:9px;padding:9px 10px}.treatment-available-addons>strong{font-size:11px}.treatment-available-addon-list span{font-size:10px}}


/* v2.45 treatment categories, staff pictures and destructive appointment confirmation */
.treatment-category-heading-row td{padding:13px 16px!important;background:#ded1c1!important;border-top:18px solid #fff!important;border-bottom:1px solid #c8b9a7!important}.treatment-category-heading-row td strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:21px;font-weight:400;color:#17130f}.treatment-category-heading-row td span{display:block;margin-top:2px;color:#675e54;font-size:12px}
.staff-picture-editor{display:flex;align-items:center;gap:20px;margin:0 0 24px;padding:18px;border:1px solid #ddd3c7;border-radius:14px;background:#f6f0e8}.staff-picture-preview,.staff-list-avatar{overflow:hidden;border-radius:50%;background:#d9c9b7;color:#211b16;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.staff-picture-preview{width:100px;height:100px;font-size:28px;border:4px solid #fff;box-shadow:0 8px 22px rgba(42,31,22,.12)}.staff-picture-preview img,.staff-list-avatar img{width:100%;height:100%;object-fit:cover;display:block}.staff-picture-actions{display:grid;gap:7px;justify-items:start}.staff-picture-actions>span{color:#6c6258;max-width:560px;line-height:1.45}.staff-image-upload{position:relative;overflow:hidden;cursor:pointer}.staff-image-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.staff-list-identity{display:flex;align-items:center;gap:11px}.staff-list-identity>span:last-child{display:grid;gap:2px}.staff-list-avatar{width:46px;height:46px;font-size:13px}.appointment-delete-confirm p{line-height:1.6;color:#5e554c}.appointment-delete-confirm .danger-button{background:#8f251d;border-color:#8f251d;color:#fff}
@media(max-width:720px){.staff-picture-editor{align-items:flex-start;gap:14px;padding:14px}.staff-picture-preview{width:76px;height:76px}.treatment-category-heading-row td{border-top-width:10px!important}}

.journey-header-actions{display:flex;align-items:center;gap:12px}.mobile-delete-appointment{display:none}
@media(max-width:760px){.journey-header-actions{align-items:flex-end;flex-direction:column}.mobile-delete-appointment{display:block;width:100%;margin:10px 0 calc(92px + env(safe-area-inset-bottom));border:0;background:transparent;color:#8f251d;text-decoration:underline;padding:10px;font-weight:750}}

/* Business PWA authentication gate v2.46 */
.business-login-spinner{margin:24px auto 4px}
.business-remember-device{display:flex;align-items:flex-start;gap:10px;margin-top:18px;padding:12px 13px;border:1px solid #e2ddd7;border-radius:12px;background:#f7f2eb;color:#171717}
.business-remember-device>span{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:#171717;color:#fff;font-size:13px;font-weight:800}
.business-remember-device>div{display:grid;gap:3px}
.business-remember-device strong{font-size:13px}
.business-remember-device small{font-size:11px;line-height:1.45;color:#6d665e}
@media(max-width:650px){
  .business-login-page{min-height:100dvh;padding:max(18px,env(safe-area-inset-top)) 14px max(18px,env(safe-area-inset-bottom))}
  .business-login-panel{padding:28px 22px;border-radius:20px}
  .business-login-panel h1{font-size:29px}
  .business-login-logo{width:118px;margin-bottom:26px}
}

.business-session-gate{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:12px;padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));background:#f6f2ec;text-align:center;color:#171717}
.business-session-gate img{width:124px;height:auto;object-fit:contain;margin-bottom:8px}
.business-session-gate .loading-spinner{margin:4px 0}
.business-session-gate strong{font-family:Georgia,"Times New Roman",serif;font-size:24px;font-weight:400}
.business-session-gate span{max-width:300px;color:#716a62;font-size:12px;line-height:1.5}

/* Treatment day restrictions */
.treatment-day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:10px}.treatment-day-grid .selection-card{min-width:0;justify-content:center;padding:10px 8px;text-align:center}.treatment-day-grid .selection-card span{overflow:hidden;text-overflow:ellipsis}@media(max-width:760px){.treatment-day-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v2.48 customer forms, communications and password reset */
.customer-engagement-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px;margin-top:20px;align-items:start}
.customer-reset-button{width:100%;margin-top:12px}
.customer-empty-panel{display:grid;gap:5px;padding:18px;border:1px dashed #d7cbbb;border-radius:12px;background:#faf7f2;color:#6c6258}.customer-empty-panel strong{color:#171512}
.customer-form-appointment{border:1px solid #ded4c8;border-radius:14px;padding:16px;background:#fff}.customer-form-appointment+.customer-form-appointment{margin-top:12px}
.customer-form-appointment-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.customer-form-appointment-heading>div{display:grid;gap:4px}.customer-form-appointment-heading span{font-size:12px;color:#756b60}
.customer-form-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}.customer-form-tags>span{display:grid;gap:2px;padding:8px 10px;border-radius:10px;background:#e4d3bf;border:1px solid #cab396}.customer-form-tags strong{font-size:12px}.customer-form-tags small{font-size:10px;color:#665441}
.customer-comms-list{display:grid;gap:9px}.customer-comm-row{border:1px solid #ded4c8;border-radius:12px;background:#fff;overflow:hidden}.customer-comm-row summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px;cursor:pointer;list-style:none}.customer-comm-row summary::-webkit-details-marker{display:none}.customer-comm-row summary>div:first-child{display:grid;gap:4px;min-width:0}.customer-comm-row summary strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.customer-comm-row summary span{font-size:11px;color:#756b60}.customer-comm-meta{display:grid;justify-items:end;gap:5px;flex:0 0 auto}.customer-comm-meta time{font-size:10px;color:#756b60}.customer-comm-row pre{margin:0;padding:14px;border-top:1px solid #eee7df;background:#faf8f5;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.55 Inter,Arial,sans-serif;color:#4f473f}
@media(max-width:980px){.customer-engagement-grid{grid-template-columns:1fr}}
@media(max-width:640px){.customer-form-appointment-heading,.customer-comm-row summary{align-items:flex-start;flex-direction:column}.customer-form-appointment-heading .edit-button{width:100%}.customer-comm-meta{justify-items:start}.customer-engagement-grid{gap:12px}}

/* v2.47 WhatsApp and review management */
.whatsapp-settings-card,.review-list-card{margin-top:22px}.whatsapp-settings-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start;margin:20px 0}.whatsapp-test-panel{background:#f1eadf;border:1px solid #d9cabb;border-radius:16px;padding:22px;display:grid;gap:12px}.whatsapp-test-panel .whatsapp-mark{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#171714;color:#fff;font-size:20px}.whatsapp-test-panel p,.whatsapp-test-panel small{color:#6c645b;line-height:1.5}.whatsapp-test-panel input{height:46px;border:1px solid #cec1b3;border-radius:10px;background:#fff;padding:0 12px;color:#171714}.review-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.review-settings-card{min-height:100%}.review-toggle-list{display:grid;gap:13px;margin:22px 0}.google-review-card{background:linear-gradient(145deg,#fff,#f8f3ec)}.google-connect-button{margin-top:15px}.google-connected-summary{display:grid;gap:5px;padding:15px;margin:16px 0;background:#eee5d9;border-radius:12px}.google-connected-summary small{color:#6e665d}.review-disconnect{display:block;margin-top:15px;color:#6d302d}.review-summary-pill{display:flex;align-items:center;gap:6px;border:1px solid #ded5ca;border-radius:999px;padding:8px 13px}.review-summary-pill strong{font-size:20px}.review-summary-pill span,.review-stars{color:#b08a53;letter-spacing:.08em}.review-summary-pill small{color:#756e65}.review-empty-state{text-align:center;padding:45px 20px;color:#70685f}.review-empty-state>span{display:block;font-size:42px;color:#b89b74}.review-empty-state strong{display:block;font-size:20px;color:#211f1b}.business-review-list{display:grid;gap:12px}.business-review-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:14px;align-items:start;padding:17px;border:1px solid #e6ded5;border-radius:14px;background:#fff}.business-review-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#eee4d7;font-weight:800}.business-review-copy>div:first-child{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.business-review-copy p{margin:7px 0;color:#4f4a44;line-height:1.55}.business-review-copy small{color:#81796f}.review-source{font-size:10px;text-transform:uppercase;letter-spacing:.08em;padding:4px 7px;border-radius:999px;background:#eee6dc}.review-source.google{background:#eef2f6}.review-publish-toggle{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700}.review-publish-toggle input{accent-color:#171714}
@media(max-width:900px){.whatsapp-settings-layout,.review-settings-grid{grid-template-columns:1fr}}
@media(max-width:620px){.whatsapp-settings-card,.review-list-card{margin-top:12px}.whatsapp-settings-layout{gap:14px}.business-review-row{grid-template-columns:40px minmax(0,1fr);padding:13px}.business-review-avatar{width:40px;height:40px}.review-publish-toggle{grid-column:2}.review-settings-grid{gap:12px}}

/* v2.50 customer workspace tabs, history and public-link copy */
.my-business-copy{height:42px;border:1px solid #d9d1c7;background:#f8f3ec;color:#171512;border-radius:11px;padding:0 14px;display:flex;align-items:center;gap:7px;cursor:pointer;white-space:nowrap}.my-business-copy span{font-size:14px}.my-business-copy strong{font-size:12px}.my-business-copy:hover{background:#eee4d7}
.customer-forms-workspace,.customer-history-workspace{display:grid;gap:20px}.customer-tab-intro{margin:-5px 0 18px}.customer-completed-forms-list,.customer-history-timeline{display:grid;gap:10px}.customer-completed-form-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:13px;padding:15px 0;border-top:1px solid #eee9e2}.customer-completed-form-row:first-child{border-top:0}.customer-form-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e5f4e8;color:#147536;font-weight:900}.customer-completed-form-row>div:nth-child(2){display:flex;flex-direction:column;gap:3px}.customer-completed-form-row span,.customer-completed-form-row small,.customer-completed-form-meta time{color:#77716a;font-size:.78rem}.customer-completed-form-meta{display:grid;justify-items:end;gap:6px;text-align:right}.customer-history-appointment{display:grid;grid-template-columns:125px minmax(0,1fr) auto;align-items:center;gap:18px;padding:16px;border:1px solid #e8e3dc;border-radius:14px;background:#fff;color:#171512;text-decoration:none;transition:.15s ease}.customer-history-appointment:hover{border-color:#cfc4b7;box-shadow:0 8px 24px #2f261b0d}.customer-history-appointment time,.customer-history-appointment>div:nth-child(2){display:flex;flex-direction:column;gap:4px}.customer-history-appointment time span,.customer-history-appointment>div:nth-child(2) span,.customer-history-appointment-meta small{color:#7b756e;font-size:.78rem}.customer-history-appointment-meta{display:grid;justify-items:end;gap:6px;text-align:right}
@media(max-width:900px){.my-business-copy{display:none}}
@media(max-width:820px){.business-mobile-header-actions{display:flex;align-items:center;gap:8px}.business-mobile-public-link{border:1px solid #ded4c8;background:#f8f3ec;color:#111;border-radius:999px;min-height:36px;padding:0 12px;font-size:11px;font-weight:750}.customer-workspace-tabs{margin:0 -16px 18px;padding:0 16px;gap:18px}.customer-workspace-tabs a,.customer-workspace-tabs span{font-size:.76rem;padding:10px 1px}.customer-completed-form-row{grid-template-columns:38px minmax(0,1fr);gap:10px}.customer-completed-form-meta{grid-column:2;justify-items:start;text-align:left}.customer-history-appointment{grid-template-columns:82px minmax(0,1fr);gap:12px;padding:13px}.customer-history-appointment-meta{grid-column:2;justify-items:start;text-align:left}.customer-forms-workspace,.customer-history-workspace{gap:12px}}

/* v2.52 Treatment Journey redesign */
.tj-page{max-width:1180px;margin:0 auto;padding:4px 0 50px;color:#111}
.tj-brand-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:4px}.tj-brand-row img{width:142px;height:auto;max-height:52px;object-fit:contain;object-position:left center}.tj-brand-row button{width:46px;height:46px;border:0;border-radius:50%;background:#f3ece3;color:#111;font-size:30px;line-height:1;display:grid;place-items:center;padding:0 0 4px;cursor:pointer}
.tj-title{text-align:center;margin:8px 0 20px}.tj-title h1{margin:0;font-size:38px;letter-spacing:-.045em}.tj-title p{margin:5px 0 0;color:#706c67;font-size:15px}
.tj-customer-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #e9e5df;border-radius:20px;background:#fff;box-shadow:0 8px 28px rgba(35,28,21,.045);overflow:hidden;margin-bottom:18px}.tj-summary-person{min-width:0;display:grid;grid-template-columns:62px minmax(0,1fr);align-items:center;gap:14px;padding:20px 24px;border-right:1px solid #ece8e2;border-bottom:1px solid #ece8e2}.tj-summary-person:nth-child(2n){border-right:0}.tj-summary-person:nth-child(n+3){border-bottom:0}.tj-summary-person>div{display:grid;gap:4px;min-width:0}.tj-summary-person strong{font-size:16px;white-space:normal;line-height:1.25}.tj-summary-person span:not(.tj-avatar){color:#69645e;font-size:13px}.tj-avatar{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:#f2e9df;font-size:20px;overflow:hidden;flex:0 0 auto}.tj-avatar.staff{border:3px solid #fff;box-shadow:0 4px 14px rgba(30,24,18,.1)}.tj-avatar.staff img{width:100%;height:100%;object-fit:cover}.tj-avatar.icon{font-size:23px}
.tj-stage-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:8px;padding:12px;border:1px solid #e9e5df;border-radius:18px;background:#fff;box-shadow:0 7px 24px rgba(35,28,21,.035);margin-bottom:18px}.tj-stage{min-width:0;height:78px;border:1px solid #e7e3de;border-radius:12px;background:#fff;color:#111;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:7px 3px;cursor:pointer;transition:.15s ease}.tj-stage>span{width:28px;height:28px;border:1px solid #ddd7cf;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800}.tj-stage small{font-size:10px;font-weight:700;line-height:1.05;text-align:center;white-space:normal}.tj-stage.active{border-color:#d7b88f;background:#e8d2b5;box-shadow:0 5px 14px rgba(145,105,60,.12)}.tj-stage.complete>span{background:#4ca02a;border-color:#4ca02a;color:#fff}.tj-stage.locked{opacity:.45;cursor:not-allowed}.tj-stage:disabled{cursor:not-allowed}
.tj-stage-card{border:1px solid #e8e4de;border-radius:20px;background:#fff;padding:28px;box-shadow:0 8px 30px rgba(35,28,21,.04)}.tj-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:20px}.tj-section-heading>div{display:grid;gap:5px}.tj-section-heading span{font-size:10px;letter-spacing:.16em;font-weight:850;color:#9a8064}.tj-section-heading h2{margin:0;font-size:27px;letter-spacing:-.035em}.tj-section-heading p{margin:0;color:#706b65;line-height:1.5}.tj-section-heading>em{font-style:normal;font-size:11px;background:#f3ece3;border-radius:999px;padding:8px 12px;white-space:nowrap}.tj-section-heading.split{align-items:center}
.tj-detail-list{border-top:1px solid #ece8e2}.tj-detail-list>div{display:grid;grid-template-columns:38px minmax(150px,.65fr) minmax(0,1.35fr);align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #ece8e2}.tj-detail-icon{width:31px;height:31px;border-radius:50%;background:#f3ece3;display:grid;place-items:center;font-size:13px}.tj-detail-list label{color:#4f4b46;font-size:13px}.tj-detail-list strong{text-align:right;font-size:14px;overflow-wrap:anywhere}
.tj-review-panel,.tj-signoff-panel{margin-top:20px;border:1px solid #e4d5c4;border-radius:16px;background:#fbf7f2;padding:20px}.tj-review-panel h3,.tj-signoff-panel h4{margin:0 0 6px;font-size:18px}.tj-review-panel p,.tj-signoff-panel p{margin:0;color:#6f6860;line-height:1.5}.tj-review-panel ul{list-style:none;padding:0;margin:16px 0;display:grid;gap:10px}.tj-review-panel li{position:relative;padding-left:29px;font-size:13px}.tj-review-panel li:before{content:'✓';position:absolute;left:0;top:-1px;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;background:#dbc4a7;color:#fff;font-size:10px;font-weight:900}.tj-confirm-line{display:flex!important;align-items:center;gap:11px;border-top:1px solid #e3d6c7;padding-top:15px;margin-top:16px;font-weight:750;cursor:pointer}.tj-confirm-line input{width:22px;height:22px;accent-color:#111}
.tj-empty-state{display:grid;gap:6px;padding:30px;border:1px dashed #d9cec1;border-radius:16px;background:#faf7f3;text-align:center}.tj-empty-state strong{font-size:18px}.tj-empty-state span{color:#70685f;line-height:1.5}.tj-empty-state.compact{padding:20px;margin:14px 0}
.tj-form-list{display:grid;gap:12px}.tj-form-card{border:1px solid #e7e2dc;border-radius:16px;padding:18px;background:#fff}.tj-form-title{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center}.tj-form-icon{width:42px;height:42px;border-radius:50%;background:#f3ece3;display:grid;place-items:center;font-size:19px}.tj-form-title>div{display:grid;gap:3px}.tj-form-title>div strong{font-size:17px}.tj-form-title small{font-size:11px;color:#777069}.tj-form-title em{font-style:normal;font-size:10px;font-weight:800;border-radius:999px;padding:7px 10px;white-space:nowrap}.tj-form-title em.pending{background:#f1eee9;color:#6a645e}.tj-form-title em.awaiting{background:#fff0df;color:#9b5305}.tj-form-title em.signed{background:#e5f5e8;color:#1f7936}.tj-form-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.tj-form-meta>span{display:grid;gap:4px;padding:11px;border-radius:11px;background:#faf8f5;color:#777069;font-size:10px}.tj-form-meta strong{color:#171512;font-size:11px;line-height:1.35}.tj-dark-button{min-height:46px;border:0;border-radius:11px;background:#080808;color:#fff;padding:0 18px;font-weight:800;cursor:pointer}.tj-dark-button:disabled{background:#e9e5e0;color:#a7a29c;cursor:not-allowed}.tj-form-card>.tj-dark-button{width:100%}
.tj-form-review{margin-top:18px;border:1px solid #ddcfbf;border-radius:18px;background:#fcf9f5;padding:22px}.tj-form-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.tj-form-review-head>div{display:grid;gap:3px}.tj-form-review-head span{font-size:9px;letter-spacing:.15em;font-weight:850;color:#9a8064}.tj-form-review-head h3{margin:0;font-size:22px}.tj-form-review-head button{width:34px;height:34px;border:0;border-radius:50%;background:#eee6dc;font-size:22px}.tj-form-review>p{color:#70685f;line-height:1.55}.tj-answer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:18px 0}.tj-answer-grid .field:has(textarea){grid-column:1/-1}.tj-signoff-panel{background:#fffaf4}.tj-signoff-panel .signature-pad{background:#fff}.tj-signed-message{margin-top:18px;padding:15px;border-radius:12px;background:#e7f5ea;color:#1f7936;font-weight:800}
.tj-photo-status{display:flex;justify-content:space-between;gap:15px;margin:4px 0 13px}.tj-photo-status span{font-size:12px;color:#8b8279}.tj-photo-status span.complete{color:#25813c;font-weight:800}.tj-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tj-photo-tile{position:relative;min-height:210px;border:1px solid #e3d7ca;border-radius:15px;background:#fbf7f2;overflow:hidden}.tj-photo-tile.saved{display:grid;grid-template-rows:minmax(0,1fr) auto}.tj-photo-tile.saved img{width:100%;height:100%;min-height:170px;object-fit:cover;cursor:pointer}.tj-photo-tile.saved>button{position:absolute;right:8px;top:8px;width:31px;height:31px;border:0;border-radius:50%;background:rgba(255,255,255,.92);font-size:20px}.tj-photo-tile.saved small{padding:9px 10px;font-size:9px;color:#6c655d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tj-photo-tile.action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;cursor:pointer;text-align:center}.tj-photo-tile.action>span{font-size:31px}.tj-photo-tile.action strong{font-size:13px}.tj-photo-tile.action input{position:absolute;inset:0;opacity:0;cursor:pointer}.tj-photo-loading{display:grid;place-items:center;min-height:170px;color:#7d756d}.tj-position-field{max-width:300px;margin-top:14px}.tj-info-panel{display:grid;gap:5px;margin-top:16px;padding:16px;border-radius:13px;background:#f8f2ea}.tj-info-panel span{color:#6c645c;line-height:1.45;font-size:12px}.tj-info-panel.warning{background:#fff0e3;border:1px solid #f0d4b6}.tj-batch-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:15px}.tj-product-entry{border:1px solid #e6e0d8;border-radius:15px;padding:17px;margin-bottom:12px;background:#fff}.tj-batch-photo-row{display:flex;flex-wrap:wrap;gap:10px;margin:15px 0}.tj-photo-tile.small{width:150px;min-height:150px}.tj-photo-tile.small img{min-height:115px}.tj-face-map-card{margin-bottom:16px}.tj-marker-editor{margin:16px 0}.tj-notes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}
.tj-review-checklist{display:grid;gap:9px}.tj-review-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border:1px solid #e9e4de;border-radius:13px}.tj-review-row>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:900}.tj-review-row.complete>span{background:#e1f3e5;color:#1d7b35}.tj-review-row.incomplete>span{background:#fff0e2;color:#a05a13}.tj-review-row>div{display:grid;gap:2px}.tj-review-row small{font-size:9px;color:#847d75}.tj-review-row em{font-style:normal;font-size:10px;font-weight:800}.tj-review-row.complete em{color:#1d7b35}.tj-review-row.incomplete em{color:#a05a13}
.tj-complete-panel{max-width:620px;margin:10px auto;text-align:center;display:grid;justify-items:center;gap:10px;padding:35px 20px}.tj-complete-icon{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:#eee3d6;font-size:25px;font-weight:850}.tj-complete-panel.completed .tj-complete-icon{background:#e0f3e5;color:#1d7b35}.tj-complete-panel h2{margin:5px 0 0;font-size:30px}.tj-complete-panel p{max-width:520px;margin:0;color:#70685f;line-height:1.6}.tj-complete-panel .tj-dark-button{min-width:260px;margin-top:10px}
.tj-footer{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;border-top:1px solid #ebe6e0;margin-top:26px;padding-top:20px}.tj-footer>div{display:grid;gap:3px;text-align:center}.tj-footer small{color:#8a8279}.tj-footer strong{font-size:10px;color:#5e5852}.tj-footer .edit-button,.tj-footer .tj-dark-button{min-width:145px}

@media(max-width:900px){
  .tj-page{padding:0 0 calc(30px + env(safe-area-inset-bottom))}.tj-title h1{font-size:30px}.tj-customer-summary{grid-template-columns:1fr 1fr}.tj-summary-person{padding:15px;grid-template-columns:49px minmax(0,1fr);gap:10px}.tj-avatar{width:48px;height:48px;font-size:16px}.tj-summary-person strong{font-size:13px}.tj-summary-person span:not(.tj-avatar){font-size:10px}.tj-stage-grid{gap:5px;padding:8px}.tj-stage{height:67px;border-radius:10px;padding:5px 1px;gap:5px}.tj-stage>span{width:24px;height:24px;font-size:10px}.tj-stage small{font-size:8px}.tj-stage-card{padding:20px}.tj-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tj-form-meta{grid-template-columns:1fr}.tj-answer-grid,.tj-notes-grid{grid-template-columns:1fr}.tj-answer-grid .field:has(textarea){grid-column:auto}.tj-footer{grid-template-columns:1fr 1fr}.tj-footer>div{grid-column:1/-1;grid-row:1}.tj-footer .edit-button,.tj-footer .tj-dark-button{width:100%;min-width:0}.tj-detail-list>div{grid-template-columns:34px minmax(100px,.7fr) minmax(0,1.3fr)}
}

@media(max-width:760px){
  .mobile-journey-workspace.show-on-mobile.tj-page{display:block!important;padding:0 0 calc(24px + env(safe-area-inset-bottom))}.mobile-journey-workspace.show-on-mobile .mobile-journey-back{display:none}.tj-brand-row{min-height:58px;margin-bottom:0}.tj-brand-row img{width:126px;max-height:44px}.tj-brand-row button{width:44px;height:44px}.tj-title{margin:0 0 14px}.tj-title h1{font-size:27px}.tj-title p{font-size:12px}.tj-customer-summary{border-radius:16px;margin-bottom:10px}.tj-summary-person{padding:13px 11px}.tj-stage-grid{position:sticky;top:calc(57px + env(safe-area-inset-top));z-index:25;margin:0 0 10px;border-radius:14px;box-shadow:0 7px 22px rgba(35,28,21,.08)}.tj-stage{height:61px}.tj-stage small{font-size:7px}.tj-stage-card{border-radius:16px;padding:16px}.tj-section-heading{margin-bottom:15px}.tj-section-heading h2{font-size:23px}.tj-section-heading p{font-size:12px}.tj-section-heading>em{font-size:8px;padding:6px 8px}.tj-detail-list>div{grid-template-columns:30px minmax(88px,.7fr) minmax(0,1.3fr);gap:8px;padding:12px 0}.tj-detail-icon{width:28px;height:28px}.tj-detail-list label{font-size:10px}.tj-detail-list strong{font-size:11px}.tj-review-panel,.tj-form-review,.tj-signoff-panel{padding:15px}.tj-form-title{grid-template-columns:38px minmax(0,1fr);align-items:start}.tj-form-icon{width:36px;height:36px}.tj-form-title>em{grid-column:2;justify-self:start}.tj-photo-tile{min-height:160px}.tj-photo-tile.saved img{min-height:125px}.tj-photo-tile.action>span{font-size:25px}.tj-face-map-card .fm-map-body{grid-template-columns:1fr}.tj-face-map-card .fm-layer-panel{order:2}.tj-footer{position:sticky;bottom:calc(-1px + env(safe-area-inset-bottom));z-index:20;background:#fff;padding:13px 0 4px;margin-top:20px}.tj-footer>div{display:none}.tj-footer .edit-button,.tj-footer .tj-dark-button{min-height:48px}.tj-complete-panel{padding:20px 5px}.tj-complete-panel h2{font-size:26px}
}

@media(max-width:430px){
  .tj-customer-summary{grid-template-columns:1fr 1fr}.tj-summary-person{grid-template-columns:40px minmax(0,1fr);padding:11px 8px}.tj-avatar{width:39px;height:39px;font-size:13px}.tj-summary-person strong{font-size:10px}.tj-summary-person span:not(.tj-avatar){font-size:8px}.tj-stage-grid{gap:3px;padding:6px}.tj-stage{height:56px;border-radius:8px}.tj-stage>span{width:21px;height:21px;font-size:8px}.tj-stage small{font-size:6px;letter-spacing:-.02em}.tj-stage-card{padding:14px}.tj-photo-grid{gap:8px}.tj-photo-tile{min-height:145px}.tj-photo-tile.saved img{min-height:110px}.tj-review-row{grid-template-columns:28px minmax(0,1fr);padding:11px}.tj-review-row>span{width:24px;height:24px}.tj-review-row>em{grid-column:2}.tj-batch-actions{display:grid}.tj-batch-actions>*{width:100%}
}

/* Business subscription management */
.business-subscription-current{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:26px 28px;border-radius:24px;background:linear-gradient(135deg,#171717,#000);color:#fff;margin-bottom:20px;box-shadow:0 16px 40px rgba(0,0,0,.14)}.business-subscription-current .eyebrow{color:#d8c6ad}.business-subscription-current h2{font-size:30px;margin:4px 0 6px}.business-subscription-current p{margin:0;color:#eee}.business-subscription-status-row{display:flex;align-items:center;gap:10px;margin-top:14px}.subscription-cancel-warning{font-size:13px;color:#ffdca7}.business-subscription-renewal{display:grid;gap:5px;min-width:220px;padding:18px;border-radius:18px;background:rgba(255,255,255,.1)}.business-subscription-renewal span,.business-subscription-renewal small{color:#d5d5d5}.business-subscription-renewal strong{font-size:20px}.subscription-platform-status{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid #ddd7ce;border-radius:18px;background:#faf8f4;margin-bottom:20px}.subscription-platform-status.warning{background:#fff8ed;border-color:#efd6ac}.subscription-platform-status-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#fff;font-weight:800}.subscription-platform-status div{display:grid;gap:3px}.subscription-platform-status small{color:#6f6a63}.subscription-plan-chooser{padding:24px}.billing-frequency-toggle{display:flex;padding:4px;border-radius:14px;background:#f2eee8}.billing-frequency-toggle button{border:0;background:transparent;border-radius:11px;padding:10px 16px;font-weight:750;cursor:pointer}.billing-frequency-toggle button.selected{background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.08)}.billing-frequency-toggle span{font-size:10px;text-transform:uppercase;background:#e8dac7;border-radius:20px;padding:2px 5px;margin-left:4px}.business-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px}.business-plan-card{display:flex;flex-direction:column;padding:20px;border:1px solid #e2ddd6;border-radius:20px;background:#fff;min-height:390px}.business-plan-card.current{border-color:#111;box-shadow:0 10px 25px rgba(0,0,0,.08)}.business-plan-card.ai-plan{background:linear-gradient(180deg,#fffaf2,#fff)}.business-plan-card-top{display:flex;justify-content:space-between;align-items:center}.business-plan-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#eee5d9;font-weight:850}.current-plan-pill{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border-radius:20px;padding:6px 9px;background:#f1eadf}.business-plan-card h3{font-size:21px;margin:18px 0 7px}.business-plan-card>p{min-height:56px}.business-plan-price{display:flex;align-items:baseline;gap:5px;margin:16px 0 3px}.business-plan-price strong{font-size:28px}.business-plan-price span{color:#777}.yearly-saving{color:#5d7d47;font-weight:700}.business-plan-features{display:grid;gap:9px;padding:0;margin:20px 0;list-style:none;font-size:14px;flex:1}.plan-unavailable-note{display:block;color:#8a6b45;text-align:center;margin-top:8px}.primary-business-type-card,.subscription-control-card{padding:24px;margin-top:18px}.primary-business-type-control{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1fr) auto;gap:14px;align-items:end}.primary-business-type-control>div{display:grid;gap:5px}.primary-business-type-control span{font-size:12px;color:#777;text-transform:uppercase;letter-spacing:.06em}.primary-business-type-control strong{font-size:20px}.primary-business-type-control select{min-height:46px;border:1px solid #d8d3cd;border-radius:12px;padding:0 12px;background:#fff}.primary-type-help{margin:14px 0 0}.subscription-control-card{display:flex;align-items:center;justify-content:space-between;gap:20px}.danger-outline-button{border:1px solid #bd6b6b;color:#9c3030;background:#fff;border-radius:12px;padding:11px 16px;font-weight:750;cursor:pointer}.outline-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #cfc9c1;background:#fff;color:#111;border-radius:12px;padding:10px 15px;font-weight:750;text-decoration:none;cursor:pointer}.outline-button:disabled,.danger-outline-button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:1050px){.business-plan-grid{grid-template-columns:1fr}.business-plan-card{min-height:auto}.primary-business-type-control{grid-template-columns:1fr 1fr}.primary-business-type-control button{grid-column:1/-1}.business-subscription-current{align-items:stretch}}
@media(max-width:700px){.business-subscription-current{display:grid;padding:20px;border-radius:20px}.business-subscription-renewal{min-width:0}.subscription-plan-chooser,.primary-business-type-card,.subscription-control-card{padding:18px}.subscription-plan-chooser .section-heading{display:grid;gap:14px}.billing-frequency-toggle{width:100%}.billing-frequency-toggle button{flex:1}.primary-business-type-control{grid-template-columns:1fr}.primary-business-type-control button{grid-column:auto}.subscription-control-card{display:grid}.subscription-business-heading{align-items:flex-start}}

/* Progressive Treatment Journey */
.tj-journey-stack{display:grid;gap:18px}.tj-stacked-stage{scroll-margin-top:118px;position:relative}.tj-stacked-stage.active{border-color:#d7b88f;box-shadow:0 10px 34px rgba(145,105,60,.09)}.tj-stacked-stage.complete:before{content:'✓ Complete';position:absolute;top:18px;right:20px;padding:6px 9px;border-radius:999px;background:#e5f5e8;color:#1f7936;font-size:9px;font-weight:850;letter-spacing:.04em}.tj-stacked-stage .tj-section-heading.split+.tj-stacked-stage.complete:before{top:14px}.tj-aftercare-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;margin-top:20px;padding:20px;border:1px solid #ddcfbf;border-radius:16px;background:#fcf8f3}.tj-aftercare-panel h3{margin:3px 0 5px;font-size:19px}.tj-aftercare-panel p{margin:0;color:#70685f;line-height:1.5}.tj-aftercare-panel .tj-aftercare-sent{grid-column:1/-1;color:#1f7936;font-weight:750}.tj-aftercare-panel .tj-confirm-line{grid-column:1/-1;margin-top:2px}.tj-confirm-line.prominent{padding:15px;border:1px solid #e0d2c2;border-radius:12px;background:#fff}.payment-method-setting{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px;padding:18px;border:1px solid #e8e1d8;border-radius:14px;background:#faf7f3}.payment-method-setting>div{display:grid;gap:4px}.payment-method-setting p{margin:0;color:#70685f;font-size:12px;line-height:1.45}.edit-switch{position:relative;display:inline-flex;flex:0 0 auto}.edit-switch input{position:absolute;opacity:0;pointer-events:none}.edit-switch span{width:48px;height:27px;border-radius:999px;background:#d8d3cd;position:relative;transition:.2s}.edit-switch span:after{content:'';position:absolute;width:21px;height:21px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.18);transition:.2s}.edit-switch input:checked+span{background:#111}.edit-switch input:checked+span:after{transform:translateX(21px)}.edit-switch input:disabled+span{opacity:.55}
@media(max-width:820px){.tj-journey-stack{gap:12px}.tj-stacked-stage{scroll-margin-top:136px}.tj-stacked-stage.complete:before{top:11px;right:12px}.tj-aftercare-panel{grid-template-columns:1fr;padding:15px}.tj-aftercare-panel .edit-button{width:100%}.payment-method-setting{align-items:flex-start}}
