: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}
