*{box-sizing:border-box}:root{color:#2e2c28;color-scheme:light;background:#e6e4dd;font-family:Instrument Sans,Inter,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--color-ink: #2e2c28;--color-ink-muted: #5c584e;--color-ink-soft: #615d54;--color-ink-subtle: #6a655a;--color-ink-faint: #8f897c;--color-ink-inverse: #fff;--color-linen: #e6e4dd;--color-canvas: #f6f5f1;--color-canvas-warm: #f3f1ea;--color-panel: #fffefb;--color-panel-muted: #faf9f5;--color-panel-secondary: #fbfaf6;--color-panel-soft: #f7f5ef;--color-border: #d8d4c7;--color-border-strong: #ddd9cc;--color-border-soft: #e7e4da;--color-border-subtle: #e3e1d8;--color-divider: #f0ede4;--color-timeline-grid: #ece8df;--color-control-muted: #d5d2c6;--color-olive: #4f6047;--color-olive-strong: #34462e;--color-olive-deep: #42503a;--color-olive-action: #526848;--color-olive-muted: #5d6f53;--color-olive-light: #68795d;--color-olive-soft: #dfe5d7;--color-olive-surface: #e4ead9;--color-olive-border: #cdd6bf;--color-gold-border: #e4d8b8;--color-clay: #9f573d;--color-stone: #5d584d;--color-stone-light: #b6b1a3;--color-navigation: #efeee8;--color-warning: #6a5312;--color-warning-soft: #f1e8bd;--color-error: #7e3523;--color-error-soft: #f4e3dc;--color-success: #34462e;--color-success-soft: #dfe8d6;--focus-ring: #34462e;--shadow-control-lift: 0 2px 12px rgba(97, 117, 89, .13);--shadow-floating-menu: 0 14px 34px rgba(46, 44, 40, .18);--shadow-dialog-lift: 0 24px 70px rgba(46, 44, 40, .24);--radius-compact: 7px;--radius-control: 9px;--radius-card: 14px;--radius-shell: 18px;--radius-pill: 999px}body{min-width:min(320px,100%);min-height:100vh;margin:0;background:linear-gradient(180deg,rgba(255,255,255,.5),transparent 18rem),#e6e4dd}button,input,textarea,select{color:inherit;font:inherit}button{border:0;background:transparent;cursor:pointer}::selection{color:var(--color-panel);background:var(--color-olive-strong)}:where(a,button,input,textarea,select,[tabindex]):focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}:where(input,textarea,select){caret-color:var(--color-olive-strong)}button:disabled{cursor:not-allowed;opacity:.64}a{color:inherit;text-decoration:none}input,textarea,select{width:100%;min-height:38px;padding:9px 11px;border:1px solid #d8d4c7;border-radius:9px;outline:2px solid transparent;outline-offset:1px;background:var(--color-panel)}textarea{min-height:96px;resize:vertical}@media(max-width:760px),(hover:none)and (pointer:coarse){input:not([type=checkbox]):not([type=radio]),textarea,select{font-size:16px}}label{display:grid;gap:6px;color:var(--color-ink-muted);font-size:12.5px;font-weight:600}h1,h2,h3{margin:0;color:var(--color-ink);font-family:Lora,Georgia,serif;font-weight:600;letter-spacing:0}p{margin:0;line-height:1.55}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#cfccbf;border-radius:999px}.marketing-page,.demo-page,.auth-page{min-height:100vh}.marketing-page{padding:22px clamp(18px,4vw,56px) 72px}.marketing-nav{position:sticky;top:16px;z-index:20;width:min(1160px,100%);min-height:58px;display:flex;align-items:center;gap:22px;margin:0 auto 44px;padding:8px 10px 8px 18px;border:1px solid rgba(227,225,216,.9);border-radius:999px;background:#f6f5f1e0;box-shadow:0 12px 36px #2e2c281f;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand-mark{display:inline-flex;align-items:center;gap:9px;margin-right:auto}.brand-mark span{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;color:var(--color-ink-inverse);background:var(--color-olive-deep);font-family:Lora,Georgia,serif;font-weight:700}.brand-mark strong{font-size:15px}.nav-links{display:flex;align-items:center;gap:18px;color:#6c675d;font-size:13px;font-weight:600}.nav-cta,.primary-btn,.secondary-btn,.primary-pill,.ghost-pill,.danger-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:9px 16px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap}.nav-cta,.primary-btn,.primary-pill{color:var(--color-ink-inverse);background:var(--color-olive-light)}.nav-cta:hover,.primary-btn:hover,.primary-pill:hover{background:#5c6d52}.secondary-btn,.ghost-pill{border:1px solid var(--color-control-muted);color:#4d4a42;background:#ffffff8c}.ghost-pill.danger,.warning-text{color:var(--color-clay)}.primary-btn.large,.secondary-btn.large{min-height:44px;padding-inline:19px}.primary-btn.wide,.secondary-btn.wide,.ghost-pill.wide{width:100%}.primary-pill{min-height:31px;padding:6px 13px;font-size:12px}.hero-section{width:min(1160px,100%);min-height:min(690px,calc(100vh - 126px));display:grid;grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);align-items:center;gap:clamp(28px,5vw,72px);margin:0 auto;padding-bottom:38px}.hero-copy{max-width:560px}.eyebrow{margin-bottom:12px;color:#65745c;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.hero-copy h1{max-width:12ch;font-size:clamp(44px,7vw,76px);line-height:.96}.hero-lede{max-width:58ch;margin-top:22px;color:var(--color-ink-muted);font-size:17px}.hero-actions,.trust-row{display:flex;align-items:center;flex-wrap:wrap;gap:11px;margin-top:28px}.trust-row{color:#696458;font-size:12.5px}.trust-row span{display:inline-flex;align-items:center;gap:6px}.hero-visual{position:relative;min-height:560px}.practice-photo{position:absolute;top:0;right:8%;bottom:13%;left:17%;overflow:hidden;border-radius:16px;background:linear-gradient(120deg,#2e2c281f,#2e2c2805),url(https://images.unsplash.com/photo-1600210491892-03d54c0aaf87?auto=format&fit=crop&w=1300&q=82) center/cover;box-shadow:0 34px 90px #2e2c283b}.product-preview{position:absolute;right:0;bottom:0;width:min(520px,96%);min-height:330px;display:grid;grid-template-columns:130px 1fr;overflow:hidden;border:1px solid var(--color-border-strong);border-radius:18px;background:var(--color-canvas);box-shadow:0 24px 64px #2e2c2840}.preview-sidebar{display:grid;align-content:start;gap:9px;padding:22px 14px;border-right:1px solid #e5e2d8;background:var(--color-navigation);color:#6b665c;font-size:12px;font-weight:700}.preview-dot{width:34px;height:34px;margin-bottom:16px;border-radius:11px;background:var(--color-olive-light)}.preview-main{padding:26px}.preview-header{display:grid;gap:3px;margin-bottom:22px}.preview-header small{color:var(--color-ink-subtle)}.preview-header strong{font-family:Lora,Georgia,serif;font-size:24px}.preview-row{display:grid;grid-template-columns:54px 1fr auto;align-items:center;gap:12px;margin-bottom:10px;padding:13px 14px;border:1px solid var(--color-border-soft);border-radius:11px;background:var(--color-ink-inverse)}.preview-row.current{border-color:var(--color-olive-muted);box-shadow:0 0 0 2px #6175591f}.preview-row em{color:var(--color-ink-subtle);font-size:12px;font-style:normal}.metric-strip{width:min(1160px,100%);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px auto 76px}.metric,.feature-card,.security-section,.panel,.phone-card,.waiting-phone-card,.empty-state,.auth-panel,.modal-card{border:1px solid #e1ded3;border-radius:var(--radius-card);background:#f6f5f1e0;box-shadow:0 1px 2px #3c37280a}.metric{padding:18px}.metric strong{display:block;font-family:Lora,Georgia,serif;font-size:28px}.metric span{color:var(--color-ink-subtle);font-size:13px}.feature-section,.security-section{width:min(1160px,100%);margin:0 auto 78px}.section-header{max-width:680px;margin-bottom:24px}.section-header h2,.security-section h2{font-size:clamp(30px,4vw,46px);line-height:1.05}.section-header p:not(.eyebrow),.security-section p{margin-top:10px;color:#635f55}.feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.feature-card{min-height:210px;padding:20px}.feature-card svg{width:21px;height:21px;color:var(--color-olive-muted)}.feature-card h3{margin-top:22px;font-size:20px}.feature-card p{margin-top:9px;color:var(--color-ink-subtle);font-size:14px}.security-section{display:grid;grid-template-columns:minmax(0,.82fr) minmax(340px,1fr);gap:40px;padding:32px}.security-list{display:grid;gap:12px}.security-item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid #e6e2d8}.security-item:last-child{border-bottom:0}.security-item svg{flex:0 0 auto;margin-top:3px;color:var(--color-olive-muted)}.demo-page{display:flex;flex-direction:column;align-items:center;padding:22px 0 60px;overflow-x:hidden}.app-page{position:fixed;top:0;right:0;bottom:0;left:0;height:100vh;height:100dvh;min-height:0;display:flex;flex-direction:column;align-items:stretch;padding:0;overflow:hidden;background:var(--color-canvas)}.client-app-page{position:fixed;top:0;right:0;bottom:0;left:0;height:100vh;height:100dvh;display:flex;align-items:stretch;justify-content:center;overflow:hidden;background:var(--color-canvas)}.client-app-page .portal-frame{width:min(430px,100vw);height:100%;max-height:100%;flex:0 1 430px;overflow:hidden}.demo-topbar{position:sticky;top:16px;z-index:30;display:flex;align-items:center;max-width:calc(100vw - 32px);gap:12px;margin-bottom:22px;padding:7px 9px;border-radius:999px;color:var(--color-canvas);background:var(--color-ink);box-shadow:0 6px 22px #2e2c2838}.back-link,.side-link,.link-btn{display:inline-flex;align-items:center;gap:6px;color:var(--color-olive-muted);font-size:13px;font-weight:700}.demo-topbar .back-link{padding:0 9px;color:var(--color-canvas)}.demo-simulation-notice{width:min(1180px,96vw);margin:-10px 0 12px;padding:9px 12px;border:1px solid #d6cfb7;border-radius:10px;color:#594d29;background:#f3ecd2;font-size:12.5px;line-height:1.4;text-align:center}.demo-state-banner{margin:16px 40px 0}@media(max-width:760px){.demo-state-banner{margin:12px 18px 0}}.segmented{display:flex;gap:2px;padding:3px;border-radius:999px}.segmented.dark{background:#413e38}.segmented.soft,.segmented.wide{background:#e7e5dc}.segmented.wide{width:100%}.segmented button{flex:1;min-height:30px;padding:6px 14px;border-radius:999px;color:var(--color-stone);font-size:12.5px;font-weight:700;white-space:nowrap}.segmented.dark button{color:var(--color-stone-light)}.segmented button.active{color:var(--color-ink);background:var(--color-canvas)}.therapist-frame,.app-frame{position:relative;width:min(1080px,96vw);min-height:720px;display:flex;overflow:hidden;border:1px solid var(--color-border-strong);border-radius:18px;background:var(--color-canvas);box-shadow:0 24px 70px #2e2c2833}.app-frame{width:min(1180px,96vw);min-height:calc(100vh - 84px)}.app-frame.therapist{height:100vh;height:100dvh;min-height:0;overflow:hidden}.app-page .app-frame{width:100%;min-height:100vh;min-height:100dvh;border:0;border-radius:0;box-shadow:none}.demo-page .app-frame{min-height:calc(100vh - 156px)}.demo-page .app-frame.therapist{height:calc(100vh - 156px);height:calc(100dvh - 156px);min-height:0}.sidebar{width:224px;flex:0 0 auto;display:flex;flex-direction:column;padding:26px 16px 20px;border-right:1px solid var(--color-border-subtle);background:var(--color-navigation)}.brand-block{margin-bottom:26px;padding:0 10px}.brand-block h1{font-size:17px;line-height:1.3}.brand-block p,.muted{color:var(--color-ink-subtle);font-size:12.5px}.side-nav{display:flex;flex-direction:column;gap:3px}.side-nav button{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:9px 10px;border-radius:9px;color:var(--color-ink-muted);font-size:13.5px;font-weight:600;text-align:left}.side-nav button svg{color:#aaa598}.side-nav button.active{color:var(--color-olive-deep);background:var(--color-olive-soft);font-weight:700}.side-nav button.active svg{color:var(--color-olive-muted)}.sidebar-footer{display:grid;gap:8px;margin-top:auto}.therapist-bottom-nav,.mobile-settings-actions{display:none}.side-link{width:100%;justify-content:flex-start;padding:9px 10px;border-radius:9px;color:var(--color-ink-subtle)}.side-link.active{color:var(--color-olive-deep);background:var(--color-olive-soft);font-weight:700}.side-link:hover{background:#e5e3da}.waiting-summary{width:100%;padding:13px 14px;border-radius:var(--radius-card);background:var(--color-olive-soft);text-align:left}.waiting-summary span{display:block;color:#5a684e;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.waiting-summary strong{margin-right:6px;color:var(--color-olive-deep);font-family:Lora,Georgia,serif;font-size:22px}.waiting-summary small{color:var(--color-stone);font-size:12px}.therapist-main{flex:1;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain}.therapist-bottom-nav{flex:0 0 auto;padding:8px 0 calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-border-subtle);background:var(--color-navigation)}.therapist-bottom-nav button{flex:1 1 0;min-width:0;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--color-ink-subtle);font-size:12px;font-weight:600;line-height:1.1}.therapist-bottom-nav button.active{color:var(--color-olive-muted);font-weight:700}.therapist-bottom-nav button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.therapist-bottom-nav button svg{flex:0 0 auto}.screen{width:100%;margin-inline:auto;animation:fade .22s ease}.screen.padded{max-width:1280px;padding:34px 40px}.screen.wide{max-width:1440px}.screen.narrow{max-width:700px}.header-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:4px 0 24px}.header-row h2,.screen-title{font-size:28px}.screen-title{margin-bottom:18px}.today-list,.roster-list,.settings-stack,.table-list,.slot-list,.note-list{display:grid;gap:11px}.appointment-card{display:flex;align-items:center;gap:18px;padding:15px 18px;border:1px solid var(--color-border-soft);border-radius:14px;background:var(--color-ink-inverse)}.appointment-card.current{border-color:var(--color-olive-muted);box-shadow:0 2px 12px #61755921}.appointment-time{width:64px;flex:0 0 auto}.appointment-time strong{display:block;font-size:16px}.appointment-time span,.appointment-main p{margin-top:2px;color:var(--color-ink-subtle);font-size:12px}.appointment-main{flex:1;min-width:0}.row-actions,.phone-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.status-chip,.attendance-chip,.pay-chip,.warning-chip,.total-pill{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 11px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.status-chip.completed,.status-chip.active,.attendance-chip,.pay-chip.paid{color:var(--color-olive-deep);background:var(--color-olive-soft)}.status-chip.booked,.status-chip.waiting{color:#6a5c22;background:#ece6c9}.status-chip.no_show,.status-chip.cancelled,.attendance-chip.missed,.warning-chip{color:var(--color-clay);background:#f0e4de}.status-chip.archived,.status-chip.unpaid,.pay-chip{color:#777166;background:#eceae2}.total-pill{color:var(--color-olive-deep);background:var(--color-olive-soft)}.demo-calendar{display:grid;grid-template-columns:70px repeat(4,minmax(95px,1fr));overflow:hidden;border:1px solid var(--color-border-subtle);border-radius:14px;background:var(--color-ink-inverse)}.calendar-head{min-height:36px;display:grid;place-items:center;border-bottom:1px solid var(--color-border-subtle);border-left:1px solid #e9e7dd;background:var(--color-navigation);font-size:13px;font-weight:700}.calendar-cell{min-height:38px;margin:2px;padding:7px 4px;border:1px solid #eceae2;border-radius:7px;font-size:11px;text-align:center}.calendar-cell.time-label{color:var(--color-ink-subtle);background:var(--color-ink-inverse)}.calendar-cell.open,.mini-slot{color:#5c6a50;border-color:var(--color-olive-border);background:var(--color-olive-surface)}.calendar-cell.closed{color:transparent;background:var(--color-canvas-warm)}.calendar-cell.booked{color:var(--color-ink-inverse);border-color:transparent;background:var(--color-olive-light);font-weight:700}.client-phone{width:min(390px,94vw);min-height:720px;display:flex;flex-direction:column;overflow:hidden;border:9px solid var(--color-ink);border-radius:38px;background:var(--color-canvas);box-shadow:0 24px 70px #2e2c283d}.phone-status{display:flex;justify-content:space-between;padding:14px 22px 6px;color:var(--color-ink);font-size:12px;font-weight:700}.client-scroll{flex:1;display:grid;align-content:start;gap:14px;overflow-y:auto;padding:16px 18px 26px}.client-hero{padding:6px 2px 10px}.client-hero.in-app{margin-bottom:14px}.client-hero h2{font-size:30px}.phone-card,.waiting-phone-card{padding:18px}.phone-card.highlight,.waiting-phone-card{background:var(--color-olive-soft)}.phone-card span{color:#5c6a50;font-size:12px;font-weight:700}.phone-card strong{display:block;margin-top:5px;font-size:18px}.phone-card p,.waiting-phone-card p{margin-top:6px;color:#6b7460;font-size:13px}.waiting-phone-card h3{margin-top:10px;font-size:22px}.waiting-phone-card.app-card{margin-bottom:18px}.desktop-card{max-width:620px;margin-bottom:26px}.slot-button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:46px;padding:12px 14px;border:1px solid #e0ddd0;border-radius:12px;background:var(--color-panel);text-align:left;font-size:13px;font-weight:700}.slot-button.selected{border-color:var(--color-olive-muted);box-shadow:0 0 0 2px #61755921}.auth-page{display:grid;place-items:center;padding:28px}.auth-page>.back-link{position:fixed;top:24px;left:28px}.auth-panel{width:min(900px,100%);display:grid;grid-template-columns:1fr minmax(320px,.82fr);gap:36px;padding:34px}.not-found-panel{width:min(680px,100%);grid-template-columns:1fr}.client-invitation-panel{width:min(640px,100%);grid-template-columns:1fr;gap:24px}.client-invitation-panel .auth-copy{max-width:68ch}.client-invitation-panel .auth-form{max-width:420px}.workspace-panel{grid-template-columns:minmax(240px,.8fr) minmax(340px,1.2fr);align-items:center}.workspace-actions{display:grid;gap:12px}.workspace-choice{min-height:96px;display:grid;grid-template-columns:40px minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;gap:4px 12px;padding:16px;border:1px solid var(--color-border-strong);border-radius:14px;color:var(--color-ink);background:var(--color-panel);text-align:left}.workspace-choice:hover{border-color:var(--color-olive-muted);background:var(--color-olive-soft)}.workspace-choice>span{grid-row:1 / 3;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:var(--color-olive-deep);background:var(--color-olive-soft)}.workspace-choice>strong,.workspace-choice>small{grid-column:2}.workspace-choice>strong{align-self:end;font-size:14px}.workspace-choice>small{align-self:start;color:var(--color-ink-subtle);line-height:1.4}.workspace-choice>svg{grid-column:3;grid-row:1 / 3}.workspace-account-actions{width:100%;display:grid;gap:4px}.workspace-account-actions>button{min-height:44px}.client-profile-account-actions{gap:8px}.resolver-failure{padding:28px}.resolver-failure :where(button,a){min-height:44px}.auth-demo{display:flex;flex-direction:column;align-items:center;padding:16px}.auth-demo .demo-topbar{flex-wrap:wrap;justify-content:center;border-radius:var(--radius-shell)}.auth-demo .demo-topbar .segmented button,.auth-demo .demo-topbar .back-link{min-height:44px}.auth-demo-scenarios{flex:1 1 100%;justify-content:center;padding:7px 0 0;border-top:1px solid var(--color-stone);border-left:0}.auth-demo-surface{width:100%;min-height:calc(100dvh - 124px)}.auth-copy h1{margin-bottom:16px;font-size:clamp(34px,5vw,54px);line-height:1}.auth-copy p:not(.eyebrow){color:#635f55}.auth-page :where(button,input,a.primary-btn,a.secondary-btn){min-height:44px}.auth-form,.stack-form,.inline-form{display:grid;gap:13px}.client-setup-page{min-height:100dvh;display:grid;place-items:center;padding:32px;background:var(--color-canvas-warm)}.client-setup-shell{width:min(920px,100%);display:grid;grid-template-columns:minmax(260px,.78fr) minmax(360px,1.22fr);overflow:hidden;border-radius:var(--radius-shell);background:var(--color-panel);box-shadow:var(--shadow-dialog-lift)}.client-setup-intro{padding:34px;color:var(--color-panel);background:var(--color-olive-strong)}.client-setup-mark{width:46px;height:46px;display:grid;place-items:center;margin-bottom:28px;border-radius:50%;color:var(--color-olive-strong);background:var(--color-olive-soft)}.client-setup-intro h1{max-width:12ch;margin:0 0 14px;color:inherit;font-family:Lora,Georgia,serif;font-size:clamp(2rem,5vw,3.5rem);line-height:1.08;letter-spacing:-.025em}.client-setup-intro>p{max-width:34ch;margin:0;color:var(--color-olive-soft);line-height:1.6}.client-setup-progress{display:grid;gap:13px;margin:36px 0 0;padding:0;list-style:none}.client-setup-progress li{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:11px;color:var(--color-olive-border)}.client-setup-progress li>span{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--color-olive-light);border-radius:50%;font-weight:700}.client-setup-progress li.active,.client-setup-progress li.complete{color:var(--color-panel)}.client-setup-progress li.active>span,.client-setup-progress li.complete>span{color:var(--color-olive-strong);border-color:var(--color-olive-soft);background:var(--color-olive-soft)}.client-setup-progress strong,.client-setup-progress small{display:block}.client-setup-progress small{margin-top:2px;color:inherit}.client-setup-form{display:grid;align-content:center;gap:15px;min-width:0;padding:38px}.client-setup-form-heading{margin-bottom:7px}.client-setup-form-heading h2{margin:0 0 8px;font-family:Lora,Georgia,serif;font-size:28px;line-height:1.18;letter-spacing:-.02em}.client-setup-form-heading p{max-width:54ch;margin:0;color:var(--color-ink-muted);line-height:1.55}.client-setup-form label>span{color:var(--color-ink-subtle);font-size:12.5px;font-weight:500}.client-setup-form input{min-height:44px}.client-setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.client-setup-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.client-setup-choice label{position:relative;min-height:44px;display:grid;grid-template-columns:20px 1fr;align-items:center;gap:7px;padding:9px 12px;border:1px solid var(--color-border);border-radius:var(--radius-control);text-align:left;background:var(--color-panel);cursor:pointer}.client-setup-choice input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;min-height:44px;opacity:0;cursor:pointer}.client-setup-choice label>span{width:20px;height:20px;display:grid;place-items:center;border:1px solid var(--color-border);border-radius:50%}.client-setup-choice label.active{color:var(--color-olive-strong);border-color:var(--color-olive-muted);background:var(--color-olive-surface)}.client-setup-choice label.active>span{color:var(--color-panel);border-color:var(--color-olive-action);background:var(--color-olive-action)}.client-setup-choice label:focus-within{outline:3px solid var(--color-olive-action);outline-offset:2px}@media(max-width:760px){.client-setup-page{min-height:100dvh;place-items:stretch;padding:0}.client-setup-shell{min-height:100dvh;grid-template-columns:1fr;border-radius:0;box-shadow:none}.client-setup-intro,.client-setup-form{padding:24px}.client-setup-mark{width:42px;height:42px;margin-bottom:18px}.client-setup-intro h1{max-width:none;font-size:28px}.client-setup-intro>p{max-width:52ch}.client-setup-progress{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:22px}.client-setup-form{align-content:start}.client-setup-grid{grid-template-columns:1fr}}.inline-form{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;margin-top:18px}.form-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.check-line{display:flex;grid-template-columns:none;align-items:center;gap:9px}.check-line input{width:auto;min-height:auto}.recurrence-options{display:grid;gap:8px;margin-top:8px;padding:10px;border:1px solid #e1ded4;border-radius:8px;background:var(--color-panel-muted)}.recurrence-options p{margin:0;color:var(--color-olive-muted);font-size:12px;font-weight:700}.form-error,.form-hint,.form-success{padding:10px 12px;border-radius:10px;font-size:12.5px}.form-error{color:var(--color-error);background:var(--color-error-soft)}.form-hint{color:#6a5c22;background:#ece6c9}.form-hint .link-btn{color:#596a50}.form-success{color:var(--color-success);background:var(--color-success-soft)}.status-message{padding:10px 12px;border-radius:10px;color:var(--color-ink-muted);background:var(--color-panel-soft);font-size:13px;line-height:1.45}.status-message.success{color:var(--color-success);background:var(--color-success-soft)}.status-message.warning{color:var(--color-warning);background:var(--color-warning-soft)}.status-message.error{color:var(--color-error);background:var(--color-error-soft)}.surface-status-wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 40px 0}.surface-status-wrap .status-message{flex:1}@media(max-width:760px){.surface-status-wrap{align-items:stretch;flex-direction:column;margin:14px 18px 0}}.center{justify-content:center}.center-state{min-height:100vh;display:grid;place-items:center;align-content:center;gap:13px;padding:28px;text-align:center}.center-state p{max-width:58ch;color:var(--color-ink-subtle)}.center-state.compact{min-height:240px}.spinner{width:28px;height:28px;border:3px solid #d8d4c7;border-top-color:var(--color-olive-muted);border-radius:999px;animation:spin .8s linear infinite}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.86fr);gap:14px;margin-bottom:18px}.panel{padding:18px}.panel.spacious{margin-top:14px}.panel.compact{padding:15px}.panel-header,.note-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-header span,.note-title span{color:var(--color-ink-subtle);font-size:12px}.slot-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.slot-day{min-height:130px;display:grid;align-content:start;gap:6px;padding:10px;border:1px solid var(--color-border-soft);border-radius:11px;background:var(--color-panel)}.slot-day strong{font-size:13px}.slot-day span{color:var(--color-ink-subtle);font-size:11px}.mini-slot{min-height:25px;padding:4px 6px;border:1px solid var(--color-olive-border);border-radius:7px;font-size:11px;font-weight:700}.table-row,.payment-row,.history-row,.document-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) auto;align-items:center;gap:12px;min-height:45px;padding:11px 13px;border:1px solid var(--color-border-soft);border-radius:11px;background:var(--color-panel);font-size:13px}.payment-row{grid-template-columns:minmax(180px,1fr) auto minmax(218px,auto)}.history-row{grid-template-columns:86px 72px 1fr auto}.document-row{grid-template-columns:auto 1fr auto}.series-row{display:grid;gap:9px;padding:11px;border:1px solid var(--color-border-soft);border-radius:10px;background:var(--color-panel)}.series-row+.series-row{margin-top:8px}.series-row p{margin:3px 0 0;font-size:12px}.series-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.series-actions .ghost-pill{min-height:31px;padding:6px 11px;font-size:12px}.payment-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.client-heading{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;margin-bottom:22px}.client-heading h2{font-size:30px}.client-heading-actions{display:flex;gap:8px}.administrative-note-editor{display:grid;gap:10px;margin-bottom:14px;padding:18px 20px;border:1px solid #d8dfcf;border-radius:14px;background:#f7f9f3}.administrative-note-editor .note-title{margin-bottom:0}.administrative-note-editor textarea{min-height:104px;border-color:#d8dfcf}.administrative-note-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#777166;font-weight:500}.administrative-note-meta .over-limit{color:var(--color-clay);font-weight:700}.administrative-note-actions{display:flex;flex-wrap:wrap;gap:8px}.administrative-note-field textarea[aria-invalid=true]{border-color:#b66b50}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:14px}.detail-side{display:grid;gap:14px}.delivery-status{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:3px 8px;border-radius:999px;border:1px solid #dfe5d8;background:#f4f7ef;color:#52634b;font-size:11.5px;font-weight:700;white-space:nowrap}.delivery-status.compact{min-height:22px;padding-inline:7px;font-size:11px}.delivery-status.failed,.delivery-status.dead_letter,.delivery-status.unknown{border-color:#ecd6cb;background:#fff6f1;color:var(--color-clay)}.delivery-status.skipped,.delivery-status.pending,.delivery-status.sending,.delivery-status.retryable,.delivery-status.neutral{border-color:#e6e0d0;background:#faf7ef;color:#6f5b27}.meeting-mode-badge{display:inline-flex;align-items:center;min-height:20px;margin-left:6px;padding:0 7px;border-radius:6px;color:#52634b;background:#e6eddf;font-size:11px;font-weight:700;vertical-align:middle}.meeting-mode-badge.online{color:#6c537c;background:#ece4f3}.field-label .meeting-mode-badge{margin-left:8px}.note-panel{padding:18px 20px;border:1px solid #ecdfc0;border-radius:14px;background:#fdf9ee}.note-title strong{color:#6e5f3a}.note-title span{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:6px;color:#6f5b27;background:#f3e9cf;font-size:10.5px;font-weight:700;letter-spacing:.03em}.note-panel textarea{margin-bottom:10px;border-color:#ecdfc0;background:#fffdf6}.note-save{color:#8a7743;font-size:12.5px;font-weight:700}.note-save:hover{text-decoration:underline}.note-item{padding:10px 0;border-top:1px solid #eadfd0}.note-item span{color:var(--color-ink-subtle);font-size:11px}.note-item p{margin-top:4px;font-size:13px}.filter-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.filter-row button{min-height:34px;padding:8px 15px;border:1px solid #e0ddd0;border-radius:999px;color:var(--color-ink-muted);background:var(--color-ink-inverse);font-size:13px;font-weight:600}.filter-row button.active{color:var(--color-canvas);border-color:var(--color-ink);background:var(--color-ink);font-weight:700}.waiting-client-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:10px 12px 10px 10px;border:1px solid var(--color-border-soft);border-radius:14px;background:var(--color-ink-inverse)}.waiting-client-detail{min-width:0;display:flex;align-items:flex-start;gap:14px;padding:5px 8px;border-radius:10px;text-align:left}.waiting-client-detail:hover,.waiting-client-detail:focus-visible{background:var(--color-panel-muted);outline:none}.waiting-client-detail .appointment-main>span:not(.waiting-note){display:block;margin-top:3px;color:var(--color-ink-subtle);font-size:12px}.waiting-note{display:grid;gap:2px;margin-top:9px;color:var(--color-ink-muted);font-size:12px;overflow-wrap:anywhere}.waiting-note>span:first-child{color:#6f5b27;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.waiting-note-preview{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.administrative-note-load-error{padding:10px 12px;border:1px solid #ecd6cb;border-radius:10px;color:#8c4e38;background:#fff6f1;font-size:12px}.roster-row{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;min-height:60px;padding:12px 14px;border:1px solid var(--color-border-soft);border-radius:12px;background:var(--color-panel);text-align:left}.roster-row.as-card{grid-template-columns:minmax(0,1fr) auto auto}.roster-click{min-width:0;display:flex;align-items:center;gap:12px;text-align:left}.roster-row small{display:block;margin-top:2px;color:var(--color-ink-subtle);font-size:12px}.roster-row em{color:var(--color-ink-subtle);font-size:12px;font-style:normal}.icon-link{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;color:var(--color-ink-subtle)}.avatar{width:36px;height:36px;flex:0 0 auto;display:grid;place-items:center;border-radius:12px;color:var(--color-olive-deep);background:var(--color-olive-soft);font-size:12px;font-weight:700}.avatar.large{width:58px;height:58px;border-radius:17px;font-size:17px}.back-btn{display:inline-flex;align-items:center;gap:5px;margin-bottom:14px;color:var(--color-ink-subtle);font-size:12.5px;font-weight:700}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;flex-direction:column;align-items:center;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:#2e2c2894}.modal-card{position:relative;flex:0 0 auto;width:min(520px,100%);display:flex;flex-direction:column;margin-block:auto;padding:26px;background:var(--color-panel-secondary);box-shadow:0 24px 70px #2e2c283d}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}.modal-card h2{font-size:28px}.close-btn{width:44px;height:44px;flex:0 0 auto;display:grid;place-items:center;border-radius:10px;background:var(--color-navigation)}.modal-description{margin:-3px 0 13px;color:var(--color-ink-muted);font-size:14px;line-height:1.5}.modal-body{min-width:0}.modal-actions{position:sticky;bottom:calc(-26px + env(safe-area-inset-bottom,0px));display:flex;justify-content:flex-end;gap:10px;margin:18px -26px -26px;padding:14px 26px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-border);background:var(--color-panel-secondary)}.confirmation-consequence{margin-bottom:14px;padding:12px 14px;border:1px solid #d9b7aa;border-radius:12px;color:var(--color-error);background:var(--color-error-soft);line-height:1.5}.confirmation-reason{margin-top:14px}.appointment-time-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.appointment-empty-hint{margin:8px 0 0;color:var(--color-ink-subtle);font-size:12px;font-weight:600}.empty-state{padding:24px;text-align:center}.empty-state.compact{padding:16px}.empty-state h3{font-size:22px}.empty-state p{margin-top:8px;color:var(--color-ink-subtle);font-size:13px}@keyframes fade{0%{transform:translateY(4px)}to{transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:980px){.marketing-nav{border-radius:18px;flex-wrap:wrap}.nav-links{order:3;width:100%;justify-content:space-between;padding:4px 8px 6px}.hero-section,.security-section,.auth-panel,.calendar-layout,.detail-grid{grid-template-columns:1fr}.hero-section{min-height:auto}.hero-copy h1{max-width:13ch}.hero-visual{min-height:500px}.feature-grid,.metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.slot-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.inline-form{grid-template-columns:repeat(2,minmax(0,1fr))}.client-heading{grid-template-columns:auto 1fr}.client-heading-actions{grid-column:1 / -1}}@media(max-width:760px){.marketing-page{padding-inline:14px}.app-page{height:100vh;height:100dvh;overflow:hidden}.demo-page{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;padding:12px 0;overflow:hidden}.demo-page.client-demo{padding:0;background:var(--color-canvas)}.hero-copy h1{font-size:43px}.hero-visual{min-height:420px}.practice-photo{top:0;right:0;bottom:22%;left:0}.product-preview{grid-template-columns:1fr;min-height:280px}.preview-sidebar{display:none}.feature-grid,.metric-strip,.form-grid-2,.slot-strip,.inline-form{grid-template-columns:1fr}.demo-topbar{position:static;flex:0 0 auto;width:min(390px,calc(100vw - 24px));max-width:none;justify-content:center;gap:8px;margin-bottom:10px;flex-wrap:wrap;border-radius:18px}.demo-simulation-notice{width:calc(100vw - 24px);margin:0 0 10px;font-size:12px}.demo-topbar .back-link{padding-inline:5px}.demo-topbar .segmented button{padding-inline:10px}.scenario-group{flex:1 1 100%;justify-content:center;padding:7px 0 0;border-top:1px solid #514d45;border-left:0}.client-demo .demo-topbar{display:none}.therapist-frame,.app-frame{width:100%;min-height:100vh;border-radius:0;flex-direction:column}.app-frame.therapist{height:100%;min-height:0;max-height:100%}.demo-page.therapist-demo .app-frame.therapist{width:min(430px,100vw);height:auto;flex:1 1 auto;min-height:0;max-height:none}.sidebar{width:100%;flex:0 0 auto;padding:max(3px,env(safe-area-inset-top,0px)) 12px 3px;border-right:0;border-bottom:1px solid var(--color-border-subtle)}.app-frame.therapist .sidebar{display:none}.brand-block{margin-bottom:0;padding:0 2px}.brand-block h1{overflow:hidden;font-size:14px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.brand-block p{display:none}.side-nav{display:flex;flex-direction:row;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.side-nav::-webkit-scrollbar{display:none}.side-nav button{flex:0 0 auto;width:auto;min-height:34px;gap:6px;padding:7px 10px;border-radius:999px;font-size:12px;white-space:nowrap}.side-nav button svg{width:14px;height:14px}.sidebar-footer{display:flex;align-items:center;gap:8px;margin-top:0;overflow-x:auto;scrollbar-width:none}.sidebar-footer::-webkit-scrollbar{display:none}.waiting-summary{width:auto;min-height:34px;flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px}.waiting-summary span{display:inline;font-size:11px;letter-spacing:0;text-transform:none}.waiting-summary strong{margin-right:0;font-family:inherit;font-size:13px}.waiting-summary small{display:none}.sidebar-footer .side-link{width:auto;min-height:34px;flex:0 0 auto;padding:7px 10px;border-radius:999px;font-size:12px;white-space:nowrap}.app-frame.therapist .therapist-main{flex:1 1 auto;min-height:0}.app-frame.therapist .therapist-main-calendar{overflow-y:hidden}.app-frame.therapist .therapist-bottom-nav{display:flex}.screen.padded{padding:24px 18px}.client-heading{grid-template-columns:minmax(0,1fr);align-items:stretch}.client-heading .avatar{justify-self:start}.client-heading-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.client-heading-actions>button{min-width:0;width:100%;white-space:normal}.header-row,.appointment-card,.row-actions{align-items:flex-start;flex-direction:column}.calendar-actions{width:100%;justify-content:flex-start}.calendar-actions .primary-btn{flex:1 1 150px}.appointment-time{width:auto}.table-row,.payment-row,.history-row,.document-row,.roster-row,.roster-row.as-card{grid-template-columns:1fr}.payment-actions{justify-content:flex-start}.auth-page{place-items:start center;padding-top:72px}.auth-panel{padding:22px}.workspace-panel{grid-template-columns:1fr}}.nav-dot{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:#c9c5b8}.nav-dot.active{background:var(--color-olive-light)}.rec-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:6px;color:var(--color-olive-muted);background:#eef1e9;font-size:11px;font-weight:600}.soon-text{color:var(--color-olive-muted);font-weight:700}.status-actions{display:flex;flex:0 0 auto;align-items:center;gap:6px}.appointment-card .status-actions{flex-wrap:wrap;justify-content:flex-end;max-width:360px}.week-glance{display:flex;gap:10px;max-width:680px}.glance-box{flex:1;padding:11px 14px;border:1px solid var(--color-border-soft);border-radius:11px;background:var(--color-ink-inverse);font:inherit;text-align:left}.glance-box:hover{border-color:#b7c4aa;background:#f7f9f4}.glance-box small{color:var(--color-ink-subtle);font-size:12px}.glance-box strong{display:block;margin-top:3px;font-size:13.5px}.glance-box.empty{border-style:dashed;border-color:var(--color-border-strong);background:#fefdfb}.glance-box.empty strong{color:var(--color-ink-subtle);font-weight:400}.section-label{margin-bottom:11px;color:var(--color-ink-subtle);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.week-pager{display:inline-flex;align-items:center;gap:4px}.week-pager button{width:28px;height:28px;display:grid;place-items:center;border:1px solid #e0ddd0;border-radius:999px;color:var(--color-ink-muted);background:var(--color-ink-inverse);font-size:14px}.week-pager button:hover{background:var(--color-divider)}.calendar-actions{flex-wrap:wrap;justify-content:flex-end}.calendar-actions .calendar-today-btn{min-height:28px;padding:0 11px;font-size:12px}.cal-legend{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0 14px;color:var(--color-ink-subtle);font-size:12px}.cal-legend .legend-group{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;padding:7px 9px;border:1px solid #e3dfd3;border-radius:10px;background:var(--color-panel-secondary)}.cal-legend .legend-group>strong{color:var(--color-ink);font-size:11px;font-weight:700;text-transform:uppercase}.cal-legend span{display:inline-flex;align-items:center;gap:6px}.cal-legend .hint{margin-left:auto;color:var(--color-ink-subtle)}.legend-swatch{width:11px;height:11px;border-radius:3px}.legend-swatch.booked{background:var(--color-olive-light)}.legend-swatch.rec{background:#8fa27f}.legend-swatch.open{border:1px solid var(--color-olive-border);background:var(--color-olive-surface)}.legend-swatch.google{border:1px solid #d9ccaa;background:#f2ecd8}.legend-swatch.closed{border:1px solid #e0ddd0;background:var(--color-canvas-warm)}.legend-swatch.lunch{border:1px solid #d8cfbd;background:repeating-linear-gradient(135deg,#fbf4e5,#fbf4e5 4px,#eadfc9 4px,#eadfc9 8px)}.cal-card{overflow:hidden;border:1px solid var(--color-border-subtle);border-radius:14px;background:var(--color-ink-inverse)}.cal-card.cal-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-gutter:stable}.cal-timeline{display:grid;min-width:calc(52px + var(--cal-days, 7) * 112px);grid-template-columns:52px repeat(var(--cal-days, 7),minmax(112px,1fr));grid-template-rows:40px calc(var(--timeline-hours, 9) * var(--timeline-hour-height, 48px))}.timeline-head-spacer,.timeline-day-head{grid-row:1;padding:8px 0;border-bottom:1px solid var(--color-border-subtle);background:var(--color-navigation)}.timeline-head-spacer{grid-column:1}.timeline-day-head{border-left:1px solid #e9e7dd;text-align:center}.timeline-day-head strong{font-size:13px}.timeline-day-head span{color:var(--color-ink-subtle);font-size:11.5px}.timeline-day-head.is-past{color:var(--color-ink-faint);background:var(--color-canvas)}.timeline-day-head.is-past strong,.timeline-day-head.is-past span{color:var(--color-ink-subtle)}.timeline-day-head.is-inactive{color:var(--color-ink-faint);background:var(--color-canvas)}.timeline-day-head.is-inactive strong,.timeline-day-head.is-inactive span{color:var(--color-ink-subtle)}.timeline-day-head.is-today{color:var(--color-olive-deep);background:#eef3e9;box-shadow:inset 0 -2px #8fa27f}.timeline-day-head.is-today span{color:#58664f}.timeline-day-head.is-today.is-inactive{color:var(--color-ink-faint);background:var(--color-canvas);box-shadow:inset 0 -2px #c8c1b6}.timeline-day-head.is-today.is-inactive strong,.timeline-day-head.is-today.is-inactive span{color:var(--color-ink-subtle)}.timeline-time-axis,.timeline-day-column{grid-row:2;position:relative;min-height:calc(var(--timeline-hours, 9) * var(--timeline-hour-height, 48px))}.timeline-time-axis{grid-column:1;border-right:1px solid #eeeae1;background:var(--color-ink-inverse)}.timeline-time-label{position:absolute;top:var(--event-top);right:8px;height:var(--event-height);color:var(--color-ink-subtle);font-size:11px;line-height:1;transform:translateY(-6px)}.timeline-day-column{overflow:hidden;border-left:1px solid var(--color-divider);background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--timeline-hour-height, 48px) - 1px),var(--color-divider) calc(var(--timeline-hour-height, 48px) - 1px),var(--color-divider) var(--timeline-hour-height, 48px)),var(--color-ink-inverse)}.timeline-day-column.is-past,.timeline-day-column.is-inactive{background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--timeline-hour-height, 48px) - 1px),var(--color-timeline-grid) calc(var(--timeline-hour-height, 48px) - 1px),var(--color-timeline-grid) var(--timeline-hour-height, 48px)),var(--color-panel-muted)}.timeline-day-column.is-today{background:linear-gradient(180deg,#6b7d6014,#6b7d6005),repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--timeline-hour-height, 48px) - 1px),#e1e8d8 calc(var(--timeline-hour-height, 48px) - 1px),#e1e8d8 var(--timeline-hour-height, 48px)),var(--color-ink-inverse)}.timeline-day-column.is-today.is-inactive{background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--timeline-hour-height, 48px) - 1px),var(--color-timeline-grid) calc(var(--timeline-hour-height, 48px) - 1px),var(--color-timeline-grid) var(--timeline-hour-height, 48px)),var(--color-panel-muted)}.timeline-zone{position:absolute;z-index:1;top:var(--event-top);right:0;left:0;height:var(--event-height);border:0;background:transparent;cursor:pointer}.timeline-zone:hover{background:#e5e8db73}.timeline-day-column.is-past .timeline-zone,.timeline-day-column.is-past .timeline-zone.unavailable,.timeline-day-column.is-inactive .timeline-zone,.timeline-day-column.is-inactive .timeline-zone.unavailable{cursor:default}.timeline-day-column.is-past .timeline-zone:hover,.timeline-day-column.is-inactive .timeline-zone:hover{background:transparent}.timeline-zone:disabled{cursor:default}.timeline-zone.unavailable{background:repeating-linear-gradient(135deg,var(--color-panel-muted),var(--color-panel-muted) 7px,#f4f2eb 7px,#f4f2eb 14px);cursor:not-allowed}.timeline-event{position:absolute;top:var(--event-top);right:4px;left:4px;height:var(--event-height);min-height:24px;box-sizing:border-box;display:grid;align-content:center;gap:1px;overflow:hidden;padding:4px 7px;border-radius:7px;text-align:center;line-height:1.15}button.timeline-event{font:inherit;cursor:pointer}button.timeline-event:focus-visible{outline:2px solid #2f5f43;outline-offset:2px}.timeline-event span{overflow:hidden;font-size:9.5px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.timeline-event strong{min-width:0;overflow:hidden;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.timeline-event.is-compact{display:flex;align-items:center;justify-content:center;gap:4px;min-height:20px;padding:2px 6px;line-height:1}.timeline-event.is-compact span,.timeline-event.is-compact strong{flex:0 1 auto;font-size:10px;line-height:1}.timeline-event.is-compact span{max-width:66%}.timeline-event.is-compact.has-google{padding-right:18px}.timeline-event.is-compact.has-google em{top:50%;right:7px;transform:translateY(-50%)}.timeline-event.google{z-index:2;border:1px solid var(--color-gold-border);color:#6d5f32;background:#f7f1dcc2}.timeline-event.open{z-index:4;border:1px solid var(--color-olive-border);color:#4f6047;background:var(--color-olive-surface)}.timeline-day-column.is-today .timeline-event.open{border-color:#b9c8a8;background:#edf3e5}.timeline-event.has-google{padding-right:20px}.timeline-event.open.has-google{border-color:#cbd7bc}.timeline-event.closed.has-google{border-color:#ddcfaa}.timeline-event.has-google:after{content:"";position:absolute;top:0;right:0;bottom:0;width:1px;background:#e3c875}.timeline-event.has-google:hover:before,.timeline-event.has-google:focus-visible:before{content:attr(data-google-tooltip);position:absolute;z-index:3;top:3px;right:12px;bottom:3px;left:4px;display:grid;align-content:center;padding:3px 6px;border:1px solid #d9c076;border-radius:6px;background:#fff7dc;color:#67562c;font-size:9px;font-weight:700;line-height:1.18;overflow:hidden;pointer-events:none;text-align:left;white-space:pre-line}.timeline-event.has-google em{position:absolute;top:6px;right:10px;width:8px;height:8px;border:1px solid #c9ab55;border-radius:999px;background:#f3d98d;pointer-events:none}.timeline-event.closed{z-index:4;border:1px solid #ded9cc;color:#7d766a;background:repeating-linear-gradient(135deg,#f7f5ee,#f7f5ee 7px,#ece8dc 7px,#ece8dc 14px)}.timeline-event.lunch-break{border-color:#d8cfbd;color:#77654a}.timeline-event.closed.lunch-break{background:repeating-linear-gradient(135deg,#fbf4e5,#fbf4e5 7px,#eadfc9 7px,#eadfc9 14px)}.timeline-event.open.lunch-break{border-color:#c9d2ae;background:#eef2df}.timeline-day-column.is-past .timeline-event.open,.timeline-day-column.is-past .timeline-event.closed,.timeline-day-column.is-inactive .timeline-event.open,.timeline-day-column.is-inactive .timeline-event.closed{border-color:#ddd8cb;color:var(--color-stone);background:#efede6}.timeline-day-column.is-past .timeline-event.open:disabled,.timeline-day-column.is-past .timeline-event.closed:disabled{cursor:default}.timeline-day-column.is-inactive .timeline-event.open:disabled,.timeline-day-column.is-inactive .timeline-event.closed:disabled{cursor:default}.timeline-day-column.is-past .timeline-event.has-google:hover:before,.timeline-day-column.is-past .timeline-event.has-google:focus-visible:before,.timeline-day-column.is-inactive .timeline-event.has-google:hover:before,.timeline-day-column.is-inactive .timeline-event.has-google:focus-visible:before{content:none;display:none}.timeline-event.booked{z-index:5;border:0;color:var(--color-ink-inverse);background:var(--color-olive-light)}.timeline-event.booked:hover{background:#5f7254}.timeline-event.booked.rec{background:var(--color-olive-action)}.timeline-day-column.is-past .timeline-event.google,.timeline-day-column.is-inactive .timeline-event.google{border-color:#ded6c2;color:#7f7357;background:#f4efdfc2}.timeline-day-column.is-past .timeline-event.booked{background:var(--color-olive-light)}.timeline-day-column.is-past .timeline-event.booked.rec{background:var(--color-olive-action)}.timeline-day-column.is-inactive .timeline-event.booked{background:var(--color-olive-light)}.timeline-day-column.is-inactive .timeline-event.booked.rec{background:var(--color-olive-action)}.timeline-event:disabled{cursor:default}.mobile-day-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:8px;margin:10px 0 12px;touch-action:pan-y}.mobile-day-chip{min-width:0;min-height:72px;display:grid;align-content:start;gap:3px;padding:8px;border:1px solid #dfdbcf;border-radius:8px;color:var(--color-ink-muted);background:var(--color-ink-inverse);font:inherit;text-align:left}.mobile-day-strip.slide-next .mobile-day-chip,.mobile-day-strip.slide-previous .mobile-day-chip{animation-duration:.26s;animation-fill-mode:both;animation-timing-function:cubic-bezier(.2,.72,.2,1)}.mobile-day-strip.slide-next .mobile-day-chip{animation-name:mobile-day-chip-next}.mobile-day-strip.slide-previous .mobile-day-chip{animation-name:mobile-day-chip-previous}.mobile-day-strip.slide-next .mobile-day-chip:nth-child(2),.mobile-day-strip.slide-previous .mobile-day-chip:nth-child(2){animation-delay:24ms}.mobile-day-strip.slide-next .mobile-day-chip:nth-child(3),.mobile-day-strip.slide-previous .mobile-day-chip:nth-child(3){animation-delay:48ms}.mobile-day-strip.slide-next .mobile-day-chip:nth-child(4),.mobile-day-strip.slide-previous .mobile-day-chip:nth-child(4){animation-delay:72ms}.mobile-day-strip.slide-next .mobile-day-chip:nth-child(5),.mobile-day-strip.slide-previous .mobile-day-chip:nth-child(5){animation-delay:96ms}.mobile-day-strip.slide-next .mobile-day-chip:nth-child(6),.mobile-day-strip.slide-previous .mobile-day-chip:nth-child(6){animation-delay:.12s}.mobile-day-strip.slide-next .mobile-day-chip:nth-child(7),.mobile-day-strip.slide-previous .mobile-day-chip:nth-child(7){animation-delay:144ms}@keyframes mobile-day-chip-next{0%{opacity:0;transform:translate(34px)}to{opacity:1;transform:translate(0)}}@keyframes mobile-day-chip-previous{0%{opacity:0;transform:translate(-34px)}to{opacity:1;transform:translate(0)}}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}.screen,.spinner,.portal-scroll,.success-state,.sheet-backdrop,.sheet,.mobile-day-strip.slide-next .mobile-day-chip,.mobile-day-strip.slide-previous .mobile-day-chip{animation:none}html,body,.therapist-main,.mobile-calendar-scroll,.portal-scroll{scroll-behavior:auto!important}.ios-toggle-track,.ios-toggle-thumb{transition:none}.mobile-day-strip.slide-next .mobile-day-chip,.mobile-day-strip.slide-previous .mobile-day-chip{animation:none}}.mobile-day-chip span{color:var(--color-ink-subtle);font-size:11px;font-weight:700;text-transform:uppercase}.mobile-day-chip strong{min-width:0;color:#332f28;font-size:15px;line-height:1.1}.mobile-day-chip small{min-width:0;color:var(--color-ink-subtle);font-size:10.5px;font-weight:600;line-height:1.25}.mobile-day-chip.is-today{border-color:#bdcba8;background:#f3f7ed}.mobile-day-chip.is-selected{border-color:var(--color-olive-muted);box-shadow:inset 0 0 0 1px #6b7d60}.mobile-day-chip.is-past,.mobile-day-chip.is-inactive{color:var(--color-ink-faint);background:var(--color-panel-soft)}.mobile-day-chip.is-inactive span,.mobile-day-chip.is-inactive strong,.mobile-day-chip.is-inactive small{color:var(--color-ink-subtle)}.mobile-day-chip.is-inactive.is-selected{border-color:#aaa397;box-shadow:inset 0 0 0 1px #aaa397}.mobile-calendar-shell{display:none}.calendar-screen{min-height:0}.mobile-calendar-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px}.mobile-calendar-heading{min-width:0}.mobile-calendar-heading h2{margin:0 0 4px;color:var(--color-ink-subtle);font-family:Instrument Sans,system-ui,sans-serif;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.mobile-calendar-heading h3{margin:0;overflow:visible;color:var(--color-ink);font-family:Lora,Georgia,serif;font-size:clamp(22px,7vw,28px);font-weight:600;line-height:1.18;text-overflow:clip;white-space:nowrap}.mobile-calendar-heading>span{display:block;margin-top:2px;color:var(--color-ink-subtle);font-size:11px;font-weight:600}.mobile-calendar-actions,.mobile-calendar-pager{display:flex;align-items:center}.mobile-calendar-actions{gap:5px}.mobile-calendar-today,.mobile-calendar-pager button{min-height:40px;border:1px solid #d9ddcf;color:var(--color-olive-deep);background:#f3f6ef;font:inherit;font-size:12px;font-weight:700}.mobile-calendar-today{display:inline-flex;align-items:center;gap:5px;padding:0 9px;border-radius:999px}.mobile-calendar-pager{gap:2px}.mobile-calendar-pager button{width:40px;display:grid;place-items:center;padding:0;border-radius:999px;background:var(--color-panel)}.mobile-calendar-mode{display:grid;grid-template-columns:1fr 1fr;margin:16px 0 12px;padding:3px;border:1px solid #dedbd1;border-radius:999px;background:#efede7}.mobile-calendar-mode button{min-height:38px;padding:0 16px;border-radius:999px;color:#625e54;background:transparent;font:inherit;font-size:13px;font-weight:700}.mobile-calendar-mode button.is-active{color:var(--color-ink-inverse);background:var(--color-olive-action);box-shadow:0 1px 3px #2e2c2829}.mobile-calendar-mode button:focus-visible,.mobile-calendar-today:focus-visible,.mobile-calendar-pager button:focus-visible,.mobile-day-chip:focus-visible,.mobile-month-day:focus-visible,.mobile-month-agenda-row:focus-visible,.mobile-month-availability-link:focus-visible,.mobile-calendar-fab:focus-visible{outline:2px solid #2f5f43;outline-offset:2px}.mobile-calendar-warning{margin-top:0}.mobile-calendar-day-view{display:flex;min-height:100%;flex-direction:column;min-width:0}.mobile-calendar-scroll{min-height:0}.mobile-calendar-shell .mobile-day-strip{position:sticky;z-index:12;top:0;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid #e5e2d8;background:var(--color-canvas)}.mobile-calendar-shell .mobile-day-chip{min-height:54px;place-items:center;align-content:center;gap:2px;padding:5px 2px;border-color:transparent;border-radius:11px;background:transparent;text-align:center}.mobile-calendar-shell .mobile-day-chip span{color:var(--color-ink-subtle);font-size:9px;letter-spacing:.03em}.mobile-calendar-shell .mobile-day-chip strong{color:#36332e;font-size:15px;font-weight:700}.mobile-calendar-shell .mobile-day-chip small{min-height:9px;color:#6b7d60;font-size:13px;line-height:.55}.mobile-calendar-shell .mobile-day-chip.is-today:not(.is-selected){border-color:#b7c4aa;background:#f2f5ed}.mobile-calendar-shell .mobile-day-chip.is-selected,.mobile-calendar-shell .mobile-day-chip.is-selected.is-inactive{border-color:var(--color-olive-action);color:var(--color-ink-inverse);background:var(--color-olive-action);box-shadow:none}.mobile-calendar-shell .mobile-day-chip.is-selected span,.mobile-calendar-shell .mobile-day-chip.is-selected strong,.mobile-calendar-shell .mobile-day-chip.is-selected small{color:var(--color-ink-inverse)}.mobile-calendar-shell .mobile-day-chip.is-past,.mobile-calendar-shell .mobile-day-chip.is-inactive{background:transparent}.mobile-calendar-shell .mobile-day-chip.is-past:not(.is-selected) span,.mobile-calendar-shell .mobile-day-chip.is-past:not(.is-selected) strong,.mobile-calendar-shell .mobile-day-chip.is-inactive:not(.is-selected) span,.mobile-calendar-shell .mobile-day-chip.is-inactive:not(.is-selected) strong{color:var(--color-ink-subtle)}.mobile-selected-day-heading,.mobile-month-agenda-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px;padding-right:58px}.mobile-selected-day-heading>div,.mobile-month-agenda-heading>div{min-width:0}.mobile-selected-day-heading span,.mobile-month-agenda-heading span{display:block;margin-bottom:2px;color:var(--color-olive-deep);font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.mobile-selected-day-heading h4,.mobile-month-agenda-heading h4{margin:0;color:#332f28;font-family:Lora,Georgia,serif;font-size:16px;line-height:1.2}.mobile-selected-day-heading small,.mobile-month-agenda-heading small{flex:0 0 auto;color:#716b60;font-size:11px;font-weight:600}.mobile-day-timeline{display:grid;flex:1 0 calc(var(--timeline-hours, 9) * var(--timeline-hour-height, 48px));grid-template-columns:44px minmax(0,1fr);min-height:calc(var(--timeline-hours, 9) * var(--timeline-hour-height, 48px));overflow:hidden;border:1px solid var(--color-border-subtle);border-radius:14px;background:var(--color-panel)}.mobile-day-time-axis,.mobile-day-track{position:relative;min-height:calc(var(--timeline-hours, 9) * var(--timeline-hour-height, 48px))}.mobile-day-time-axis{border-right:1px solid #ebe8de;background:var(--color-panel-soft)}.mobile-day-time-axis span{position:absolute;top:var(--event-top);right:7px;height:var(--event-height);color:#746e62;font-size:10px;font-weight:600;line-height:1;transform:translateY(-5px)}.mobile-day-time-axis span:first-child{transform:translateY(5px)}.mobile-day-track{overflow:hidden;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--timeline-hour-height, 48px) - 1px),#ebe8df calc(var(--timeline-hour-height, 48px) - 1px),#ebe8df var(--timeline-hour-height, 48px)),var(--color-panel)}.mobile-day-track.is-today{background:linear-gradient(180deg,#6b7d600e,#6b7d6003),repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--timeline-hour-height, 48px) - 1px),#e1e8d8 calc(var(--timeline-hour-height, 48px) - 1px),#e1e8d8 var(--timeline-hour-height, 48px)),var(--color-panel)}.mobile-day-track.is-past,.mobile-day-track.is-inactive{background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--timeline-hour-height, 48px) - 1px),var(--color-timeline-grid) calc(var(--timeline-hour-height, 48px) - 1px),var(--color-timeline-grid) var(--timeline-hour-height, 48px)),var(--color-panel-muted)}.mobile-day-track .timeline-event{right:7px;left:7px;border-radius:8px;text-align:left}.timeline-event.concurrent{right:auto;left:var(--event-left);width:var(--event-width)}.timeline-event.calendar-event-card{z-index:6;display:flex;flex-direction:column;align-items:flex-start;gap:1px}.calendar-event-source{max-width:100%;display:inline-flex;align-items:center;gap:3px;overflow:hidden;font-size:9px;font-weight:800;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.calendar-event-card.terapiar .calendar-event-source{color:#eef1e9}.calendar-event-card.google .calendar-event-source{color:#6d5f32}.calendar-event-card.compact .calendar-event-source{display:none}@media(min-width:761px){.calendar-event-card[data-drag-enabled=true]{cursor:grab}.calendar-event-card[data-drag-enabled=true]:active{cursor:grabbing}}.calendar-event-card.is-drag-source{opacity:.34;outline:1px dashed var(--color-olive-deep);outline-offset:-2px}.calendar-drag-overlay{position:fixed;z-index:120;top:var(--drag-top);left:var(--drag-left);width:var(--drag-width);height:var(--drag-height);min-height:24px;box-sizing:border-box;display:grid;align-content:center;padding:5px 7px;border:2px solid var(--color-olive-strong);border-radius:var(--radius-control);color:var(--color-ink-inverse);background:var(--color-olive-light);box-shadow:var(--shadow-floating-menu);pointer-events:none}.calendar-drag-overlay.is-warning{border-color:var(--color-warning-soft);background:var(--color-warning)}.calendar-drag-overlay.is-invalid{border-color:var(--color-error-soft);background:var(--color-error)}.calendar-drag-target-line{position:absolute;top:-3px;right:-5px;left:-5px;height:3px;border-radius:var(--radius-pill);background:currentColor}.calendar-drag-overlay>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-drag-overlay>small{position:absolute;top:calc(100% + 7px);left:0;width:max-content;max-width:min(260px,calc(100vw - 24px));padding:6px 8px;border-radius:var(--radius-compact);color:var(--color-ink-inverse);background:var(--color-ink);box-shadow:var(--shadow-control-lift);font-weight:700;line-height:1.35}.calendar-event-overflow{z-index:7;display:grid;place-content:center;gap:1px;padding:3px;border:1px solid #d9c788;color:#67562c;background:#fff7dc;text-align:center}.calendar-event-overflow strong{font-size:14px}.calendar-event-overflow span{font-size:9px}.timeline-event.calendar-event-group-summary{z-index:7;align-content:center;justify-items:start;gap:2px;padding:6px 8px;text-align:left}.calendar-event-group-summary strong{font-size:10.5px}.calendar-event-group-summary span{color:var(--color-warning);font-size:9px}.mobile-day-track .timeline-event.booked{background:var(--color-olive-action)}.mobile-day-track .timeline-event.booked:hover{background:var(--color-olive-deep)}.mobile-day-track .timeline-event.has-google em{width:14px;height:14px;display:grid;place-items:center;color:#67562c;background:#fff7dc;font-size:8px;font-style:normal;font-weight:700}.mobile-current-time{position:absolute;z-index:9;top:var(--event-top);right:0;left:0;height:2px;background:var(--color-olive-deep);pointer-events:none}.mobile-current-time:before{content:"";position:absolute;top:50%;left:-4px;width:9px;height:9px;border-radius:999px;background:var(--color-olive-deep);transform:translateY(-50%)}.mobile-current-time span{position:absolute;top:-9px;right:6px;padding:1px 4px;border-radius:4px;color:var(--color-ink-inverse);background:var(--color-olive-deep);font-size:9px;font-weight:700}.mobile-calendar-month-view{display:grid;gap:18px}.mobile-month-grid{overflow:hidden;padding:8px;border:1px solid var(--color-border-subtle);border-radius:14px;background:var(--color-panel)}.mobile-month-weekdays,.mobile-month-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.mobile-month-weekdays span{padding:7px 0 9px;color:#777165;font-size:9px;font-weight:700;text-align:center;text-transform:uppercase}.mobile-month-week>div{min-width:0;display:grid;place-items:center}.mobile-month-day{width:min(100%,44px);min-height:44px;position:relative;display:grid;place-items:center;padding:0;border:1px solid transparent;border-radius:11px;color:#332f28;background:transparent;font:inherit;font-size:13px;font-weight:700}.mobile-month-day.is-outside-month{color:#706a5f}.mobile-month-day.is-today:not(.is-selected){border-color:#9eaf90;color:var(--color-olive-deep);background:#f1f5ec}.mobile-month-day.is-selected{border-color:var(--color-olive-action);color:var(--color-ink-inverse);background:var(--color-olive-action)}.mobile-month-day:disabled{cursor:not-allowed;opacity:.42}.mobile-month-sources{position:absolute;right:50%;bottom:4px;display:flex;gap:3px;transform:translate(50%)}.mobile-month-sources i{width:4px;height:4px;border-radius:999px}.mobile-month-sources i.terapiar{background:var(--color-olive-action)}.mobile-month-sources i.google{background:#b79232}.mobile-month-sources i.available{background:var(--color-olive-action)}.mobile-month-day.is-selected .mobile-month-sources i{background:var(--color-ink-inverse)}.mobile-month-agenda{min-width:0;padding-bottom:10px}.mobile-month-agenda-list{display:grid}.mobile-month-agenda-row{width:100%;min-width:0;min-height:64px;box-sizing:border-box;display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 2px;border:0;border-bottom:1px solid var(--color-border-soft);color:#332f28;background:transparent;font:inherit;text-align:left}button.mobile-month-agenda-row{cursor:pointer}.mobile-month-agenda-row>i{width:7px;height:7px;border-radius:999px;background:var(--color-olive-action)}.mobile-month-agenda-row.google>i{background:#b79232}.mobile-month-agenda-row>span{min-width:0;display:grid;gap:3px}.mobile-month-agenda-row strong{overflow:hidden;font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.mobile-month-agenda-row small,.mobile-month-agenda-row time{color:#6f695e;font-size:11px;font-weight:600}.mobile-month-agenda-row small{display:inline-flex;align-items:center;gap:4px}.calendar-event-list{display:grid;gap:8px}.calendar-event-list-row{width:100%;min-height:54px;display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--color-border-subtle);border-radius:10px;color:#332f28;background:var(--color-panel);text-align:left}.calendar-event-list-row.google{color:#67562c;background:#fffaf0}.calendar-event-list-row span{min-width:0;display:grid;gap:2px}.calendar-event-list-row small{color:var(--color-ink-subtle);font-size:11px}.calendar-google-detail{display:grid;gap:10px}.client-portal-status-help{margin:-4px 0 2px;padding:9px 10px;border-radius:8px;color:var(--color-ink-muted);background:var(--color-panel-soft);font-size:12px;line-height:1.45}.calendar-detail-source{display:inline-flex;align-items:center;gap:6px;color:#6d5f32;font-size:12px;font-weight:700}.mobile-month-agenda-row time{text-align:right;white-space:nowrap}.mobile-month-availability-link{width:100%;min-height:44px;margin-top:12px;padding:9px 12px;border:1px solid #d8ddcf;border-radius:10px;color:var(--color-olive-deep);background:#f2f5ed;font:inherit;font-size:12px;font-weight:700}.mobile-calendar-fab{width:52px;height:52px;position:fixed;z-index:30;right:max(18px,env(safe-area-inset-right,0px));bottom:calc(90px + env(safe-area-inset-bottom,0px));display:grid;place-items:center;padding:0;border:0;border-radius:999px;color:var(--color-ink-inverse);background:var(--color-olive-action);box-shadow:0 8px 22px #2e2c2847}.mobile-calendar-fab.is-month{position:static;flex:0 0 auto;align-self:flex-end;margin:8px 0 12px}.cal-grid{position:relative;display:grid;grid-template-columns:50px repeat(var(--cal-days, 5),minmax(0,1fr))}.cal-grid .cal-row-line{border-bottom:1px solid var(--color-divider)}.cal-head-cell{padding:8px 0;border-bottom:1px solid var(--color-border-subtle);border-left:1px solid #e9e7dd;background:var(--color-navigation);text-align:center}.cal-head-cell:first-child{border-left:0}.cal-head-cell strong{font-size:13px}.cal-head-cell span{color:var(--color-ink-subtle);font-size:11.5px}.cal-time{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;color:var(--color-ink-subtle);font-size:11px}.cal-cell{min-height:34px;margin:2px;border-radius:7px;padding:7px 4px;font-size:10.5px;text-align:center}.cal-cell.open{position:relative;z-index:3;border:1px solid var(--color-olive-border);color:#6b7460;background:var(--color-olive-surface)}.cal-cell.closed{border:1px solid #eceae2;color:transparent;background:var(--color-canvas-warm)}.cal-cell.unavailable{position:relative;z-index:3;border:1px solid #eeeae1;color:transparent;background:repeating-linear-gradient(135deg,#f8f6f0,#f8f6f0 6px,#f1eee6 6px,#f1eee6 12px);cursor:not-allowed}.cal-cell.booked{position:relative;z-index:3;border:0;color:var(--color-ink-inverse);background:var(--color-olive-light);font-size:11px;font-weight:600;cursor:default}.cal-cell.booked.rec{background:var(--color-olive-action)}.cal-cell.google{height:34px;display:grid;align-content:center;overflow:hidden;padding:4px;border:1px solid var(--color-gold-border);color:#6d5f32;background:#f7f1dc;font-size:11px;font-weight:600;line-height:1.2}.cal-cell.google.google-segment{position:absolute;z-index:2;top:var(--google-top);right:2px;left:2px;width:auto;height:var(--google-height);min-height:0;margin:0;box-sizing:border-box;display:grid;align-content:center;justify-items:center;overflow:hidden;padding:2px 4px;border:1px solid var(--color-gold-border);border-radius:7px;color:#6d5f32;background:#f7f1dc;font-size:11px;font-weight:600;line-height:1.2;text-align:center;text-overflow:ellipsis;white-space:nowrap}.cal-cell.google.google-segment.continues-before{top:calc(var(--google-top) - 3px);height:calc(var(--google-height) + 3px)}.cal-cell.google.google-segment.continues-after{height:calc(var(--google-height) + 3px)}.cal-cell.google.google-segment.compact{padding:0;font-size:0}.cal-cell.google-background{position:relative;z-index:1}.google-segment.continues-before{border-top-left-radius:0;border-top-right-radius:0}.google-segment.continues-after{border-bottom-left-radius:0;border-bottom-right-radius:0}.cal-cell.split-google{position:relative;z-index:3;height:34px;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,3fr);overflow:hidden;padding:0;border:1px solid var(--color-olive-border);color:#6b7460;background:var(--color-olive-surface);font-weight:600}.split-google-open,.split-google-track,.split-google-event{min-width:0;display:grid;align-content:center;justify-items:center}.split-google-open{padding:7px 4px}.split-google-track{position:relative;overflow:hidden;border-left:1px solid var(--color-gold-border);background:var(--color-olive-surface)}.split-google-event{position:absolute;top:var(--google-top);right:0;left:0;height:var(--google-height);box-sizing:border-box;padding:3px;border:1px solid var(--color-gold-border);border-right:0;border-left:0;color:#6d5f32;background:#f7f1dc;font-size:10px;line-height:1.15}.split-google-event.compact{padding:0;font-size:0}.split-google-event{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-warning{display:flex;align-items:flex-start;gap:8px;margin:0 0 12px;padding:10px 12px;border:1px solid #e8cfc3;border-radius:10px;color:var(--color-error);background:#f5e7df;font-size:12.5px;font-weight:600}.calendar-warning.compact{margin:0}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:8px 13px;border:1px solid var(--color-control-muted);border-radius:999px;color:var(--color-ink-muted);background:var(--color-ink-inverse);font-size:12.5px;font-weight:500}.chip.active{border-color:var(--color-olive-muted);color:var(--color-ink-inverse);background:var(--color-olive-light);font-weight:700}.field-label{margin-bottom:8px;color:var(--color-ink-subtle);font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.field-label .optional{color:var(--color-ink-soft);font-weight:400;letter-spacing:0;text-transform:none}.field-group{display:grid;gap:20px}.list-card{overflow:hidden;border:1px solid var(--color-border-soft);border-radius:14px;background:var(--color-ink-inverse)}.list-card>*{border-bottom:1px solid var(--color-divider)}.list-card>*:last-child{border-bottom:0}.pay-month{max-width:700px;margin-bottom:26px}.pay-month-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.pay-month-head strong{font-size:15px}.pay-sums{color:var(--color-ink-subtle);font-size:13px}.pay-sums .paid{color:var(--color-olive-deep);font-weight:700}.pay-sums .due{color:#a05b3f;font-weight:700}.pay-chip.due{border:1px solid #eecfc3;color:#a05b3f;background:#f4e2da}.urgency-chip{padding:2px 8px;border-radius:6px;font-size:10.5px;font-weight:700}.urgency-chip.high{color:#8b462e;background:#f4e2da}.urgency-chip.medium{color:#6f5b27;background:#f3e9cf}.urgency-chip.low{color:#46543b;background:#eef1e9}.settings-card{margin-bottom:16px;padding:20px;border:1px solid var(--color-border-soft);border-radius:14px;background:var(--color-ink-inverse)}.settings-card>strong{display:block;font-size:14px}.settings-card .card-hint{margin:4px 0 14px;color:var(--color-ink-subtle);font-size:12.5px}.settings-card-head,.price-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.settings-card-head .card-hint{margin-bottom:0}.compact-action{min-height:34px;padding:0 12px}.google-settings-card{display:grid;gap:14px}.profile-settings-form{display:grid;gap:12px}.profile-settings-grid label{display:grid;gap:5px;color:var(--color-ink-subtle);font-size:11px;font-weight:600}.profile-settings-grid input{min-height:38px}.profile-name-field{grid-column:1 / -1}.profile-actions{display:flex;justify-content:flex-end}.admin-settings-card{display:grid;gap:14px}.admin-settings-note{padding:11px 13px;border:1px solid #eee6d5;border-radius:10px;background:#fbf7ed;color:#6d624b;font-size:12.5px;line-height:1.45}.admin-account-screen .admin-table{margin-top:0}.admin-account-screen .admin-table-head,.admin-account-screen .admin-table-row{grid-template-columns:minmax(170px,1.25fr) 136px 86px 112px 96px 108px 82px;gap:10px;padding:12px}.google-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.google-status-grid>div{min-width:0;padding:10px 12px;border:1px solid #eeeae1;border-radius:10px;background:var(--color-panel-secondary)}.google-status-grid span,.google-calendar-row small{display:block;color:var(--color-ink-subtle);font-size:11px;font-weight:600}.google-status-grid strong{display:block;overflow-wrap:anywhere;margin-top:3px;font-size:12.5px}.google-subhead{margin-top:2px}.google-calendar-list{display:grid;gap:8px}.google-calendar-row{grid-template-columns:18px 14px minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;border:1px solid #eeeae1;border-radius:10px;background:var(--color-panel-secondary)}.google-calendar-row input{min-height:0;width:16px;height:16px;padding:0}.google-calendar-row strong{display:block;overflow-wrap:anywhere;color:#4d4a42;font-size:13px}.calendar-color{width:12px;height:12px;border:1px solid rgba(46,44,40,.12);border-radius:4px}.working-day-list{display:grid;gap:10px}.working-day-row{display:grid;grid-template-columns:74px minmax(96px,1fr) minmax(96px,1fr) minmax(92px,.8fr);align-items:end;gap:10px}.working-day-row>*{min-width:0}.working-day-row .chip{width:100%;justify-content:center}.working-day-row.lunch-break-row{grid-template-columns:120px minmax(96px,1fr) minmax(96px,1fr);padding-top:10px;border-top:1px solid #ece8dd}.daily-cap-field,.booking-rules-grid label{min-width:0}.daily-cap-field input,.booking-rules-grid input,.booking-rules-grid select{min-width:0;font-variant-numeric:tabular-nums}.booking-rules-section{display:grid;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border-soft)}.booking-rules-heading h3{font-family:inherit;font-size:14px;line-height:1.3}.booking-rules-heading p{margin-top:4px;color:var(--color-ink-subtle);font-size:12.5px}.booking-rules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.form-field-error{color:var(--color-error);font-size:11.5px;font-weight:600;line-height:1.35}.time-select-label,.price-card label,.policy-grid label{display:grid;gap:5px;color:var(--color-ink-subtle);font-size:11px;font-weight:600}.price-card input{min-height:34px}.time-select-field{position:relative;display:grid;gap:5px}.time-select-trigger{width:100%;min-height:38px;border:1px solid #dcd7cc;border-radius:11px;padding:0 12px;background:var(--color-panel);color:#292824;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;font-weight:600}.time-select-trigger:disabled{color:#b9b2a5;background:#f8f6f0;cursor:not-allowed}.time-select-trigger[aria-expanded=true]{border-color:var(--color-olive-muted);box-shadow:0 0 0 3px #6b7d6024}.time-select-menu{position:absolute;z-index:20;top:calc(100% + 6px);left:0;right:0;max-height:238px;overflow-y:auto;padding:6px;border:1px solid #ded9cc;border-radius:12px;background:var(--color-panel);box-shadow:0 16px 34px #38322829}.time-select-menu button{width:100%;min-height:34px;border:0;border-radius:8px;padding:0 10px;background:transparent;color:#34322d;text-align:left;font-size:13px;font-weight:600}.time-select-menu button:has(small){display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.time-select-menu button small{color:var(--color-ink-subtle);font-size:10px;font-weight:600}.time-select-menu button.outside-hours{color:var(--color-warning);background:#fffaf0}.time-select-menu button.outside-hours:hover,.time-select-menu button.outside-hours.active{color:var(--color-warning);background:var(--color-warning-soft)}.time-select-trigger.outside-hours{border-color:#d2b968;color:var(--color-warning);background:#fffaf0}.date-calendar-popover{position:absolute;z-index:30;top:calc(100% + 6px);left:0;width:min(360px,calc(100vw - 32px));padding:10px;border:1px solid #ded9cc;border-radius:14px;background:var(--color-panel);box-shadow:0 18px 38px #3832282e}.date-calendar-header{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;align-items:center;gap:8px;margin-bottom:8px}.date-calendar-header strong{color:var(--color-ink);text-align:center;font-size:14px;text-transform:capitalize}.date-calendar-header button{width:36px;min-height:36px;display:grid;place-items:center;border:1px solid var(--color-border-soft);border-radius:10px;background:var(--color-panel-muted);color:var(--color-ink)}.date-calendar-header button:disabled{color:var(--color-ink-faint);opacity:.42}.date-calendar-weekdays,.date-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.date-calendar-weekdays{margin-bottom:4px}.date-calendar-weekdays span{display:grid;min-height:24px;place-items:center;color:var(--color-ink-subtle);font-size:10px;font-weight:700}.date-calendar-day{width:100%;min-height:0;aspect-ratio:1;display:grid;place-items:center;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--color-ink);font-size:13px;font-weight:650}.date-calendar-day:hover:not(:disabled){border-color:var(--color-olive-border);background:var(--color-olive-surface)}.date-calendar-day.is-selected{border-color:var(--color-olive-action);background:var(--color-olive-action);color:var(--color-ink-inverse)}.date-calendar-day.is-outside-month{color:var(--color-ink-faint);opacity:.6}.date-calendar-day:disabled{color:var(--color-ink-faint);opacity:.36;cursor:not-allowed}.date-calendar-day.outside-hours:not(.is-selected){color:var(--color-warning);background:#fffaf0}.appointment-hours-variant{display:grid;gap:10px}.appointment-hours-guide{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;padding:9px 11px;border:1px solid var(--color-olive-border);border-radius:10px;color:var(--color-olive-deep);background:var(--color-olive-soft)}.appointment-hours-guide>span{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700}.appointment-hours-guide strong{font-size:12px}.appointment-hours-guide small{grid-column:1 / -1;color:var(--color-ink-muted);font-size:11px}.appointment-hours-guide.outside{border-color:#d2b968;color:var(--color-warning);background:#fffaf0}.time-select-menu button:hover,.time-select-menu button.active{background:var(--color-olive-surface);color:#4f6047}.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.price-card{padding:14px 16px;border:1px solid var(--color-border-soft);border-radius:12px;display:grid;gap:10px}.price-card strong{font-size:13px;line-height:1.4}.price-card small{display:block;margin:4px 0 10px;color:var(--color-ink-subtle);font-size:12px}.price-input{display:flex;align-items:center;gap:6px}.price-edit-grid{display:grid;grid-template-columns:minmax(86px,.9fr) minmax(112px,1.1fr);gap:10px}.price-input input{width:72px;min-height:34px;font-weight:600}.price-input span{color:var(--color-ink-subtle);font-size:13px}.policy-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.policy-preview,.policy-warning{margin-top:12px;padding:11px 13px;border:1px solid #eee6d5;border-radius:10px;background:#fbf7ed;color:#6d624b;font-size:12.5px;line-height:1.45}.policy-warning{margin:0 0 10px;border-color:#ead4c4;background:#f8eee6;color:#7b563e}.policy-warning strong,.policy-warning span{display:block}.policy-warning span{margin-top:3px}.choice-grid{display:grid;gap:10px}.calendar-action-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.calendar-action-head strong{min-width:0;overflow-wrap:anywhere}.calendar-action-details{display:grid;grid-template-columns:minmax(82px,auto) minmax(0,1fr);gap:8px 12px;padding:12px;border:1px solid #eee9de;border-radius:8px;background:var(--color-panel-secondary)}.calendar-action-details span{color:var(--color-ink-soft);font-size:12px}.calendar-action-details strong{min-width:0;color:#39362f;font-size:13px;overflow-wrap:anywhere}.calendar-availability-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;padding:10px 12px;border-radius:10px;background:var(--color-panel)}.calendar-availability-toggle>span{display:grid;gap:3px}.calendar-availability-toggle strong{color:var(--color-ink);font-size:14px}.calendar-availability-toggle small{color:var(--color-ink-soft);font-size:12px;line-height:1.4}.storno-badge{display:inline-flex;align-items:center;min-height:20px;padding:0 7px;border-radius:6px;color:#8d543b;background:#f4e2da;font-size:11px;font-weight:700}.icon-danger{width:32px;height:32px;border:1px solid #ead9d0;border-radius:999px;background:#fff8f4;color:#a85f48;display:inline-flex;align-items:center;justify-content:center}.icon-danger:disabled{opacity:.35;cursor:not-allowed}.reminder-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid #f6f3ea}.reminder-row:last-child{border-bottom:0}.reminder-row .reminder-name{font-size:13.5px;font-weight:500}.reminder-row .reminder-sub{margin-top:1px;color:var(--color-ink-subtle);font-size:12px}.sms-entitlement{margin-top:12px;margin-bottom:4px;padding:9px 11px;border-radius:8px;background:#f7f4ea;color:#6f6a5d;font-size:12px;font-weight:500}.sms-entitlement.active{background:#eef4e9;color:#566b4b}.reminder-channel-toggles{display:flex;align-items:center;gap:14px}.reminder-channel-toggles label{display:inline-flex;align-items:center;gap:7px;color:#5f5a4e;font-size:12px;font-weight:600}.reminder-channel-toggles label.disabled{color:#aaa394}.ios-toggle{flex:0 0 auto;width:38px;height:24px;min-height:24px;display:inline-grid;place-items:center;padding:0;border:0;border-radius:0;background:transparent}.ios-toggle-track{width:38px;height:24px;position:relative;border-radius:999px;background:#b9b8b3;transition:background .18s ease-out}.ios-toggle-thumb{width:20px;height:20px;position:absolute;top:2px;left:2px;border-radius:50%;background:var(--color-ink-inverse);box-shadow:0 1px 3px #2e2c2847;transition:transform .18s ease-out}.ios-toggle.on .ios-toggle-track{background:var(--color-olive-light)}.ios-toggle.on .ios-toggle-thumb{transform:translate(14px)}.ios-toggle:disabled{cursor:not-allowed;opacity:.48}.authenticated-skip-link{position:fixed;z-index:1000;top:12px;left:12px;min-height:44px;display:inline-flex;align-items:center;box-sizing:border-box;padding:10px 14px;border-radius:8px;background:var(--color-ink);color:var(--color-ink-inverse);font-weight:700;transform:translateY(calc(-100% - 24px))}.authenticated-skip-link:focus{transform:translateY(0)}.portal-frame{width:min(430px,100vw);height:100vh;height:100dvh;min-height:0;display:flex;flex-direction:column;margin:0 auto;background:var(--color-canvas);overflow:hidden}.demo-page .portal-frame{width:min(390px,94vw);height:720px;min-height:0;max-height:calc(100vh - 128px);max-height:calc(100dvh - 128px);overflow:hidden;border:1px solid var(--color-border-strong);border-radius:34px;box-shadow:0 24px 70px #2e2c2838}.portal-status{display:flex;align-items:center;justify-content:space-between;padding:14px 24px 6px;color:var(--color-ink-muted);font-size:12.5px;font-weight:600}.portal-status-signal{letter-spacing:2px}.portal-scroll{flex:1;min-height:0;min-width:0;padding:18px 22px 24px;overflow-y:auto;overflow-x:hidden;animation:fade .25s ease}.portal-content{width:100%;min-width:0;margin-inline:auto}.portal-content-home{max-width:1180px}.portal-content-book{max-width:1320px}.portal-content-profile{max-width:1080px}.portal-content-questionnaires{max-width:920px}.portal-nav{display:flex;flex:0 0 auto;padding:8px 0 calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-border-subtle);background:var(--color-navigation)}.portal-brand{display:none}.portal-nav button{flex:1 1 0;min-width:0;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--color-ink-subtle);font-size:11px;font-weight:600;line-height:1.1}.portal-nav button.active{color:var(--color-olive-muted);font-weight:700}.portal-nav button:disabled{color:var(--color-ink-faint);opacity:.72}.portal-nav button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-nav button svg{flex:0 0 auto}.portal-title{margin:0;font-size:clamp(24px,2.4vw,32px);line-height:1.16}.portal-page{min-width:0}.portal-page-header{display:grid;gap:7px;margin-bottom:24px}.portal-page-intro{max-width:70ch;color:var(--color-ink-muted);font-size:13.5px}.client-home-layout,.client-home-primary,.client-home-secondary{min-width:0;display:grid;gap:18px}.client-home-layout.is-waiting{grid-template-columns:minmax(0,620px)}.client-home-primary>.portal-card.highlight{padding:clamp(22px,3vw,32px)}.client-home-primary>.portal-card.highlight .card-day{font-size:clamp(23px,2.5vw,30px)}.client-waiting-title{font-size:18px;line-height:1.4}.client-waiting-copy{margin-top:10px;font-size:13.5px}.client-waiting-date{margin-top:14px;font-size:12px}.client-waiting-action,.client-empty-action{margin-top:16px}.client-empty-title{font-size:17px}.client-empty-copy{margin-top:6px;font-size:13px}.portal-card{min-width:0;padding:20px;border:1px solid var(--color-border-soft);border-radius:var(--radius-card);background:var(--color-panel);overflow-wrap:anywhere}.portal-card.highlight{box-shadow:var(--shadow-control-lift)}.portal-card.dashed{border-style:dashed;border-color:var(--color-border-strong);text-align:center;padding:28px 22px}.portal-card.centered{padding:24px 22px;text-align:center}.portal-card .card-context{color:var(--color-olive-muted);font-size:12px;font-weight:700}.portal-card .card-day{margin:8px 0 2px;font-size:20px}.portal-card .card-meta{color:var(--color-ink-muted);font-size:13.5px}.portal-card .card-note{margin-top:8px;color:var(--color-ink-muted);font-size:11.5px;text-align:center}.portal-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;border-radius:50%;background:var(--color-olive-soft);color:var(--color-olive-deep)}.portal-icon.soft{background:var(--color-olive-soft)}.portal-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.portal-actions>*{flex:1 1 128px;min-width:0;min-height:44px}.portal-frame .primary-btn{background:var(--color-olive-action)}.portal-frame .primary-btn:hover{background:var(--color-olive-strong)}.cancel-link{width:100%;min-height:44px;margin-top:12px;color:var(--color-error);font-size:12.5px;text-align:center}.cancel-link:hover{color:var(--color-ink-muted)}.portal-cta-card{width:100%;display:flex;align-items:center;gap:12px;margin-top:12px;padding:16px 20px;min-height:64px;border-radius:var(--radius-card);background:var(--color-olive-soft);text-align:left}.portal-cta-card>div{flex:1;min-width:0}.portal-cta-card strong{display:block;color:var(--color-olive-deep);font-size:14px}.portal-cta-card small{display:block;margin-top:2px;color:var(--color-ink-muted);font-size:12px}.arrow-circle{width:32px;height:32px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;color:var(--color-ink-inverse);background:var(--color-olive-light);font-size:15px}.upcoming-appointments{min-width:0}.upcoming-appointments .section-label{margin-bottom:9px}.upcoming-appointment-list{display:grid;gap:10px}.client-history{min-width:0}.upcoming-appointment-card{padding:16px 18px}.upcoming-appointment-card h3{margin:0 0 3px;font-size:14px}.portal-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:13px 18px;font-size:13px;overflow-wrap:anywhere}.portal-row .muted-val{flex:0 1 auto;color:var(--color-ink-subtle);text-align:right}.portal-row>span{min-width:0}.client-profile-layout,.client-profile-details{min-width:0;display:grid;gap:22px}.client-profile-identity{min-width:0;display:flex;flex-direction:column;align-items:flex-start;padding:22px;border:1px solid var(--color-border-soft);border-radius:var(--radius-card);background:var(--color-panel);overflow-wrap:anywhere}.client-profile-identity .avatar{margin-bottom:14px}.client-profile-identity>strong{font-size:18px}.client-profile-identity>.muted{margin-top:4px;font-size:12.5px}.client-profile-account-action{width:100%;margin-top:22px;padding-top:18px;border-top:1px solid var(--color-border-soft)}.client-profile-account-action .secondary-btn{width:100%}.client-profile-form{display:grid;gap:13px;padding:22px;border:1px solid var(--color-border-soft);border-radius:var(--radius-card);background:var(--color-panel)}.client-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.client-profile-form label{min-width:0}.client-profile-form .chip-row{gap:8px}.client-profile-form .primary-btn{margin-top:2px}.client-mode-fieldset{min-width:0;margin:0;padding:0;border:0}.client-mode-fieldset legend{margin-bottom:7px}.client-documents .section-label{margin-bottom:9px}.client-document-name{display:inline-flex;align-items:center;gap:10px}.client-booking-layout{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:28px}.client-booking-selection{min-width:0}.booking-review-rail{position:static;min-width:0;display:grid;gap:16px;padding:20px;border:1px solid var(--color-border-soft);border-radius:var(--radius-card);background:var(--color-panel-secondary);box-shadow:var(--shadow-control-lift)}.booking-review-heading{display:grid;gap:5px}.booking-review-heading h2{font-size:18px}.booking-review-heading p{color:var(--color-ink-muted);font-size:12.5px}.booking-review-guidance{padding:18px;border:1px dashed var(--color-border-strong);border-radius:var(--radius-control);color:var(--color-ink-muted);background:var(--color-olive-soft);font-size:13px;line-height:1.55}.book-picker{display:grid;gap:16px;margin-bottom:18px}.client-month-picker{min-width:0}.client-month-header{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;align-items:center}.client-month-header h2{margin:0;color:var(--color-ink);font-family:Lora,Georgia,serif;font-size:18px;font-weight:600;line-height:1.2;text-align:center}.client-month-pager{width:44px;min-height:44px;display:grid;place-items:center;padding:0;border:1px solid var(--color-control-muted);border-radius:var(--radius-control);color:var(--color-ink-muted);background:var(--color-panel)}.client-month-pager:not(:disabled):hover{border-color:#b9b5a8;color:var(--color-olive-deep);background:var(--color-panel-muted)}.client-month-pager:disabled{cursor:not-allowed;opacity:.36}.client-month-empty{margin:0;color:var(--color-ink-muted);font-size:13px;text-align:center}.book-day{margin-bottom:18px}.book-day.selected{margin-bottom:0}.book-day>strong{display:block;margin-bottom:9px;color:var(--color-ink-muted);font-size:12.5px}.booking-contact-guidance{margin:-6px 0 18px;color:var(--color-ink-muted);font-size:12.5px;line-height:1.5}.therapy-options{min-width:0;margin:0 0 18px;padding:0;border:0}.therapy-options legend{margin-bottom:9px;color:var(--color-ink-muted);font-size:12.5px;font-weight:700}.therapy-option-list{display:grid;gap:9px}.therapy-option{min-width:0;min-height:68px;display:flex;align-items:flex-start;gap:11px;padding:13px 14px;border:1px solid var(--color-border-soft);border-radius:var(--radius-card);background:var(--color-panel);cursor:pointer}.therapy-option:hover{border-color:var(--color-border-strong);background:var(--color-panel-muted)}.therapy-option.selected{border-color:var(--color-olive-muted);background:var(--color-olive-soft);box-shadow:var(--shadow-control-lift)}.therapy-option input{width:20px;height:20px;flex:0 0 auto;margin:1px 0 0;accent-color:var(--color-olive-action)}.therapy-option-copy{min-width:0;display:grid;gap:3px;color:var(--color-ink-muted);font-size:12.5px;line-height:1.45;overflow-wrap:anywhere}.therapy-option-copy strong{color:var(--color-ink);font-size:14px}.therapy-option-meta{color:var(--color-olive-deep);font-weight:650;font-variant-numeric:tabular-nums}.sticky-confirm{position:static;display:grid;gap:12px;padding:0;background:none}.sticky-confirm.reschedule-confirm{position:static}.sticky-confirm>.primary-btn{min-width:0;white-space:normal;overflow-wrap:anywhere}.booking-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:0;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel)}.booking-summary>div{min-width:0}.booking-summary span,.booking-summary strong{display:block}.booking-summary span{margin-bottom:3px;color:var(--color-ink-muted);font-size:11.5px}.booking-summary strong{overflow-wrap:anywhere;font-size:13px}.booking-summary .link-btn{min-height:44px;grid-column:1 / -1;justify-self:start}.reschedule-comparison{margin-bottom:0;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-panel)}.reschedule-comparison h2{margin:0 0 10px;font-size:14px}.comparison-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.comparison-grid>div{min-width:0;display:grid;gap:3px;padding:10px;border-radius:var(--radius-control);background:var(--color-panel-muted);overflow-wrap:anywhere}.comparison-grid span,.comparison-grid small{color:var(--color-ink-muted);font-size:12.5px}.comparison-grid strong{font-size:14px}.reschedule-comparison p{margin:9px 0 0;color:var(--color-ink-muted);font-size:12.5px;line-height:1.45}.success-state{padding:36px 16px;text-align:center;animation:pop .3s ease}.success-state .success-mark{width:66px;height:66px;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;border-radius:50%;color:var(--color-olive-deep);background:var(--color-olive-soft);font-size:30px}.success-state h1,.success-state h3{font-size:21px}.success-state .success-detail{margin-top:8px;color:var(--color-ink-muted);font-size:14px}.success-state .success-hint{max-width:280px;margin:12px auto 0;color:var(--color-ink-subtle);font-size:13px;line-height:1.6}.success-action{margin-top:22px}.modal-backdrop-bottom{justify-content:flex-end;padding-bottom:0}.modal-card.modal-card-sheet{width:min(560px,100%);margin-block:auto 0;border-radius:var(--radius-shell) var(--radius-shell) 0 0;background:var(--color-canvas);animation:pop .28s ease-out}.modal-card.modal-card-responsive{width:min(560px,100%)}.cancel-sheet-consequence{margin:0;color:var(--color-ink-muted);font-size:13.5px;line-height:1.55}.danger-btn{color:var(--color-ink-inverse);background:var(--color-error)}@media(max-width:760px),(hover:none)and (pointer:coarse){.app-frame.therapist button,.app-frame.therapist input:not([type=checkbox]):not([type=radio]),.app-frame.therapist select,.app-frame.therapist textarea,.modal-card button,.modal-card input:not([type=checkbox]):not([type=radio]),.modal-card select{min-height:44px}.app-frame.therapist button.ios-toggle,.modal-card button.ios-toggle{min-height:24px}}.danger-btn:hover{background:#622719}@media(min-width:761px){.client-app-page{padding:0;background:var(--color-linen)}.client-app-page .portal-frame{width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;flex:1 1 auto;display:grid;grid-template-columns:240px minmax(0,1fr);grid-template-rows:minmax(0,1fr);margin:0;border:0;border-radius:0;background:var(--color-canvas);box-shadow:none}.demo-page.client-demo .portal-frame{width:min(1440px,calc(100vw - 48px));height:calc(100vh - 156px);height:calc(100dvh - 156px);max-width:none;max-height:calc(100vh - 156px);max-height:calc(100dvh - 156px);flex:0 1 auto;display:grid;grid-template-columns:240px minmax(0,1fr);grid-template-rows:minmax(0,1fr);border:1px solid var(--color-border);border-radius:var(--radius-shell);background:var(--color-canvas);box-shadow:var(--shadow-dialog-lift)}.portal-status{display:none}.portal-scroll{grid-column:2;grid-row:1;padding:clamp(30px,4vw,56px) clamp(28px,4.5vw,68px) 56px}.portal-nav{grid-column:1;grid-row:1;flex-direction:column;align-items:stretch;gap:6px;padding:30px 18px;border-top:0;border-right:1px solid var(--color-border);background:var(--color-navigation)}.portal-brand{display:grid;gap:3px;margin:3px 10px 24px;padding:0 4px}.portal-wordmark{color:var(--color-olive-strong);font-family:Lora,Georgia,serif;font-size:22px;font-weight:600;line-height:1.1}.portal-brand small{color:var(--color-ink-subtle);font-size:10.5px;font-weight:650;letter-spacing:.04em;text-transform:uppercase}.portal-nav button{flex:0 0 auto;width:100%;min-height:52px;flex-direction:row;justify-content:flex-start;gap:12px;padding:0 14px;border-radius:var(--radius-control);font-size:13px}.portal-nav button.active{color:var(--color-olive-strong);background:var(--color-olive-soft)}}@media(min-width:1100px){.client-home-layout:not(.is-waiting){grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);grid-template-areas:"primary secondary" "history secondary";align-items:start;gap:clamp(24px,3vw,42px)}.client-home-layout:not(.is-waiting) .client-home-primary{grid-area:primary}.client-home-layout:not(.is-waiting) .client-home-secondary{grid-area:secondary}.client-home-layout:not(.is-waiting)>.client-history{grid-area:history}.client-booking-layout{grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:clamp(28px,4vw,52px)}.booking-review-rail{position:sticky;top:24px}.client-profile-layout{grid-template-columns:minmax(240px,.72fr) minmax(0,1.7fr);align-items:start;gap:clamp(26px,3.5vw,42px)}}.proto-label{padding-left:9px;color:var(--color-stone-light);font-size:11px;letter-spacing:.05em}.scenario-group{display:flex;align-items:center;gap:6px;padding-left:12px;border-left:1px solid #514d45}.scenario-group small{color:var(--color-stone-light);font-size:11px}@keyframes pop{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:760px){.calendar-desktop-only{display:none}.mobile-calendar-shell{height:100%;min-height:0;display:flex;flex-direction:column;min-width:0}.calendar-screen.screen.padded{height:100%;min-height:0;padding-bottom:0}.mobile-calendar-scroll{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;padding-bottom:0}.mobile-calendar-scroll.is-month{padding-bottom:0}.cal-card.cal-scroll,.cal-timeline,.cal-legend .hint{display:none}.price-grid{grid-template-columns:1fr}.working-day-row{grid-template-columns:68px 1fr 1fr}.working-day-row .daily-cap-field{grid-column:2 / -1}.working-day-row.lunch-break-row,.booking-rules-grid,.google-status-grid,.client-profile-grid{grid-template-columns:1fr}.client-profile-identity{align-items:center;text-align:center}.client-profile-account-action{text-align:initial}.modal-backdrop-responsive{justify-content:flex-end;padding:max(16px,env(safe-area-inset-top)) 0 0}.modal-card.modal-card-responsive{width:100%;max-height:calc(100vh - max(16px,env(safe-area-inset-top)));max-height:calc(100dvh - max(16px,env(safe-area-inset-top)));margin-block:auto 0;padding-bottom:max(26px,env(safe-area-inset-bottom));border-radius:var(--radius-shell) var(--radius-shell) 0 0;background:var(--color-canvas);animation:portal-sheet-reveal .2s ease-out}.modal-card.modal-card-responsive .modal-body{min-height:0;overflow-x:hidden;overflow-y:auto}.modal-card.modal-card-responsive .modal-actions{bottom:0;flex-wrap:wrap;margin:18px 0 0;padding:14px 0 0;background:var(--color-canvas)}.modal-card.modal-card-responsive .modal-actions>button{flex:1 1 150px}.demo-page .portal-frame{width:min(390px,calc(100vw - 24px));height:auto;flex:1 1 auto;min-height:0;max-height:none}.demo-page.client-demo .portal-frame{width:100%;height:100%;flex-basis:100%;border:0;border-radius:0;box-shadow:none}.client-demo .portal-status{display:none}.week-glance{flex-wrap:wrap}.glance-box{flex:1 1 40%}}@keyframes portal-sheet-reveal{0%{opacity:0}to{opacity:1}}@media(max-width:380px){.portal-scroll{padding:16px 16px 22px}.portal-card{padding:18px}.portal-card.dashed,.portal-card.centered{padding-inline:18px}.portal-actions>*{flex-basis:100%}.client-profile-form,.client-profile-identity,.booking-review-rail{padding:18px}.comparison-grid{grid-template-columns:1fr}.portal-row{align-items:flex-start;flex-direction:column;gap:4px;padding-inline:14px}.portal-row .muted-val{text-align:left}}.cal-b{border-bottom:1px solid var(--color-divider)}.cal-slot{position:relative;display:block;min-height:38px}.cal-slot .cal-cell{width:calc(100% - 4px)}.cal-slot .cal-cell.google-segment{width:auto}.roster-line{width:100%;display:flex;align-items:center;gap:16px;padding:15px 20px;background:var(--color-ink-inverse);text-align:left}.roster-line:hover{background:var(--color-panel-muted)}.roster-chevron{color:#c4bfb0;font-size:16px}.doc-check{width:20px;height:20px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--color-olive-deep);background:var(--color-olive-soft);font-size:11px}.payment-row.in-list{border:0;border-radius:0;background:var(--color-ink-inverse)}.optional-hint{color:var(--color-ink-soft);font-weight:400}.disabled-reason{color:var(--color-ink-muted);font-size:13px;line-height:1.45}.client-combobox,.client-search{position:relative;display:grid;gap:6px}.client-combobox small,.client-result-count{color:var(--color-ink-soft);font-size:12px;font-weight:500}.client-search{max-width:520px;margin-bottom:8px}.client-result-count{margin-bottom:12px}.client-combobox-menu{position:absolute;z-index:30;top:calc(100% + 6px);right:0;left:0;max-height:min(280px,42vh);overflow-y:auto;padding:6px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-panel);box-shadow:0 16px 34px #38322829}.client-combobox-menu button{width:100%;min-height:44px;padding:8px 10px;border-radius:8px;color:var(--color-ink);text-align:left;overflow-wrap:anywhere}.client-combobox-menu button:hover,.client-combobox-menu button.active,.client-combobox-menu button[aria-selected=true]{color:var(--color-olive-strong);background:var(--color-olive-soft)}.client-combobox-menu p{padding:12px;color:var(--color-ink-muted);font-size:13px}.settings-category-nav{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 18px}.detail-section-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.detail-section-nav button{min-height:44px;padding:9px 13px;border:1px solid var(--color-border);border-radius:10px;color:var(--color-ink-muted);background:var(--color-panel);font-size:13px;font-weight:600}.detail-section-nav button.active{border-color:var(--color-olive);color:var(--color-olive-strong);background:var(--color-olive-soft)}.settings-category-nav button{min-height:44px;padding:9px 13px;border:1px solid var(--color-border);border-radius:10px;color:var(--color-ink-muted);background:var(--color-panel);font-size:13px;font-weight:600}.settings-category-nav button.active{border-color:var(--color-olive);color:var(--color-olive-strong);background:var(--color-olive-soft)}.settings-local-status{margin-bottom:10px;color:var(--color-olive-strong);font-size:13px;font-weight:600}.calendar-warning-list{padding:13px 15px;border:1px solid #d9c790;border-radius:12px;color:var(--color-warning);background:var(--color-warning-soft)}.calendar-warning-list ul{margin:8px 0 0;padding-left:20px}@media(max-width:760px){.settings-category-nav{display:grid;grid-template-columns:1fr}.mobile-settings-actions{display:grid;gap:8px;margin:-6px 0 18px;padding-bottom:18px;border-bottom:1px solid var(--color-border-soft)}.mobile-settings-actions .side-link{width:100%;min-height:44px;justify-content:flex-start;padding:9px 13px;border:1px solid var(--color-border);border-radius:10px;color:var(--color-ink-muted);background:var(--color-panel)}.detail-section-nav{display:grid;grid-template-columns:1fr}.detail-section:not(.active){display:none}}.admin-page{min-height:100vh;background:var(--color-canvas-warm);color:var(--color-ink)}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 28px;border-bottom:1px solid #e3ded1;background:#fffefbe0}.admin-shell{width:min(1120px,calc(100% - 32px));margin:26px auto;padding:24px;border:1px solid #e3ded1;border-radius:8px;background:var(--color-panel);box-shadow:0 16px 42px #2e2c2814}.admin-shell h1{margin:2px 0 0;font-size:32px;letter-spacing:0}.admin-table{margin-top:18px;border:1px solid #ebe6d9;border-radius:8px;overflow:hidden}.admin-table-head,.admin-table-row{display:grid;grid-template-columns:minmax(210px,1.3fr) 160px 110px 140px 130px 120px 96px;gap:14px;align-items:center;padding:13px 15px}.admin-table-head{background:#f7f4ea;color:var(--color-ink-subtle);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.admin-table-row{border-top:1px solid var(--color-divider);background:var(--color-panel)}.admin-table-row strong,.admin-table-row small{display:block}.admin-table-row small{margin-top:3px;color:var(--color-ink-subtle);font-size:12px}.admin-table-row label{display:flex;flex-direction:column;gap:5px;color:var(--color-ink-subtle);font-size:11px;font-weight:700}.admin-table-row select,.admin-table-row input[type=number]{min-width:0;width:100%;height:34px;border:1px solid #dcd6c8;border-radius:7px;background:var(--color-ink-inverse);color:var(--color-ink);padding:0 10px}.admin-checkbox{flex-direction:row!important;align-items:center;color:var(--color-ink)!important;font-size:13px!important;font-weight:600!important}.admin-checkbox input{width:18px;height:18px}@media(max-width:900px){.reminder-row{align-items:flex-start;flex-direction:column}.reminder-channel-toggles{width:100%;justify-content:space-between}.admin-table-head{display:none}.admin-account-screen .admin-table-row{grid-template-columns:1fr;gap:12px}.admin-account-screen .admin-table-row>button{width:100%;min-height:44px}}@media(max-width:760px){.waiting-client-card{grid-template-columns:1fr;align-items:stretch}.waiting-client-card>.primary-btn{width:100%}.administrative-note-editor{padding:15px}}@media(max-width:760px),(hover:none)and (pointer:coarse){.portal-frame :where(button,a.primary-btn,input:not([type=checkbox]):not([type=radio]),select,textarea){min-height:44px}.chip{min-height:44px;padding-inline:16px}}@media(max-width:380px){.client-month-picker .mobile-month-grid{width:calc(100% + 32px);box-sizing:border-box;margin-inline:-16px;padding:5px}}.questionnaire-library,.questionnaire-builder,.questionnaire-builder-form,.client-questionnaires,.questionnaire-response form{display:grid;gap:18px}.questionnaire-builder-form>label,.questionnaire-question-card>label,.questionnaire-field{display:grid;gap:7px}.questionnaire-builder-form input,.questionnaire-builder-form textarea,.questionnaire-builder-form select,.questionnaire-response input:not([type=checkbox]):not([type=radio]),.questionnaire-response textarea,.questionnaire-response select{width:100%;border:1px solid var(--color-border);border-radius:9px;background:var(--color-surface);color:var(--color-ink);padding:10px 12px}.questionnaire-question-list,.questionnaire-template-list,.questionnaire-assignment-list{display:grid;gap:12px;margin:0;padding:0;list-style:none}.questionnaire-question-card,.questionnaire-template-card,.questionnaire-picker,.questionnaire-picker-empty,.questionnaire-field{border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);padding:16px}.questionnaire-template-card,.questionnaire-picker-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.questionnaire-template-card p,.questionnaire-picker p,.questionnaire-field p{margin:4px 0 0;color:var(--color-ink-muted)}.questionnaire-picker{display:grid;gap:10px}.questionnaire-picker-row label,.questionnaire-required,.questionnaire-options label{display:flex;align-items:center;gap:9px}.questionnaire-options{display:grid;gap:10px;margin-top:10px}.questionnaire-answer-review{width:100%;margin:14px 0 0}.questionnaire-answer-review div{border-top:1px solid var(--color-border);padding:10px 0}.questionnaire-answer-review dt{font-weight:700}.questionnaire-answer-review dd{margin:4px 0 0;white-space:pre-wrap}.questionnaire-save-state{min-height:24px;color:var(--color-ink-muted)}@media(max-width:760px){.questionnaire-template-card,.questionnaire-picker-row{align-items:stretch;flex-direction:column}.questionnaire-template-card .status-actions,.questionnaire-picker-row .status-actions{width:100%}}@media(prefers-reduced-motion:reduce){.portal-scroll,.success-state,.modal-card.modal-card-sheet,.modal-card.modal-card-responsive{animation:none!important}.portal-scroll{scroll-behavior:auto!important}}
