/* Real workspace: persistent desktop navigation, compact inline mobile menu. */
.workspace-navigation button.brand{background:transparent;color:inherit;padding:0;border:0;text-align:left}
.account-workspace{display:grid;grid-template-columns:244px minmax(0,1fr);grid-template-rows:auto 1fr auto;padding:0;background:#f6f8fa}
.account-workspace>.account-header,.account-workspace>main,.account-workspace>.account-footer{grid-column:2;width:100%;max-width:none;margin:0}
.account-workspace>.account-header{padding:20px 32px;min-height:84px;background:#fff;gap:20px}
.account-workspace>main{padding:24px 32px;min-width:0}.account-workspace>.account-footer{padding:20px 32px}
.workspace-page-title{display:grid;gap:5px}.workspace-page-title>span{color:#738099;font-size:11px}.workspace-page-title>h1{font-size:22px;letter-spacing:-.5px;margin:0}.workspace-greeting{font-size:13px;color:#63748a}
.workspace-navigation{grid-column:1;grid-row:1/4;position:sticky;top:0;height:100dvh;overflow-y:auto;scrollbar-width:thin;padding:30px 16px 20px;background:linear-gradient(165deg,#081d38,#12294b);color:#e3edf5}
.workspace-navigation .brand{margin:0 10px 36px;font-size:25px}.workspace-navigation .brand-symbol{color:#98e1d0;width:44px;height:44px}.workspace-navigation .brand small{font-size:9px}
.workspace-navigation-links{display:flex;flex-direction:column;min-height:calc(100dvh - 145px)}.workspace-nav-label{color:#94a8c1;font-size:10px;font-weight:600;letter-spacing:1.4px;margin:24px 12px 12px}.workspace-nav-label:first-child{margin-top:0}
.workspace-nav-item{display:flex;align-items:center;gap:13px;min-height:50px;width:100%;padding:12px 14px;margin:4px 0;border-radius:11px;background:transparent;color:#dae5f2;text-align:left;font-size:14px;line-height:1.4}.workspace-nav-item svg{flex-shrink:0}.workspace-nav-item.active{background:#bde9df;color:#102f36;font-weight:650;box-shadow:inset 3px 0 0 #62bfa9}.workspace-nav-item:not(.active):hover:not(:disabled){background:#263e5c}.workspace-nav-item:focus-visible,.workspace-menu-button:focus-visible{outline:3px solid #a6e6d5;outline-offset:2px}.workspace-nav-item:disabled{opacity:.55}
.workspace-nav-account{margin-top:auto;padding:26px 10px 12px;display:flex;gap:11px;align-items:center}.workspace-nav-account>div{display:grid;gap:4px;min-width:0;overflow-wrap:anywhere}.workspace-nav-account strong{font-size:13px}.workspace-nav-account>div>span{font-size:10px;color:#a2b5cb}.workspace-logout{border-top:1px solid #304661;border-radius:0;font-size:12px}.workspace-menu-button{display:none}
.account-workspace .account-controls{padding:0 0 18px;background:transparent;border:0;border-radius:0;align-items:center;gap:12px}.workspace-local{display:grid;gap:5px;min-width:0;flex:1}.workspace-local .eyebrow{margin:0}.workspace-local strong{font-size:17px;overflow-wrap:anywhere}.account-workspace .account-controls label:first-child{min-width:0;flex:1}.workspace-date-picker{position:relative;font-size:12px}.workspace-date-picker>summary{cursor:pointer;min-height:48px;display:flex;align-items:center;padding:10px 14px;border:1px solid #dbe4e8;background:#fff;border-radius:10px;list-style:none}.workspace-date-picker[open]{display:flex;flex-wrap:wrap;gap:10px}.workspace-date-picker[open]>label{margin-top:12px}.workspace-date-picker[open]>button{margin-top:10px}
.account-workspace button,.account-workspace .secondary,.account-workspace input,.account-workspace select{min-height:48px}.account-workspace .primary,.account-workspace .secondary{font-size:14px}.account-workspace .calendar-scroll{max-height:calc(100dvh - 325px);min-height:300px}.account-workspace .setup-panel{margin-top:0}.account-workspace .panel{min-width:0}.account-workspace .page-heading{margin-top:0}
.clients-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:6px 0 24px}.clients-heading h2{font-size:32px;letter-spacing:-1px;margin:4px 0 8px}.clients-heading p:not(.eyebrow){color:#687c89;margin:0;font-size:14px}.client-tools{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-bottom:20px}.client-tools .segmented button{font-size:13px;min-height:48px}.client-search{display:flex;gap:8px;flex:1;max-width:500px}.client-search input{min-width:0;flex:1;width:100%;font-size:15px}.visually-hidden{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.client-directory{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:13px}.client-card{display:flex;align-items:center;gap:15px;padding:22px;border:1px solid #dce6e5;background:white;border-radius:16px;text-align:left;color:#183d44;min-width:0}.client-card:hover:not(:disabled){border-color:#69aa9d;box-shadow:0 5px 18px #173f3510}.client-card-body{display:grid;gap:7px;min-width:0;flex:1;overflow-wrap:anywhere}.client-card-body strong{font-size:17px}.client-card-body>span{font-size:14px;color:#60777e}.client-card-body small{font-size:12px;color:#71858a}.client-card>svg{flex-shrink:0}.client-pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin:22px 0;font-size:13px}.client-empty{text-align:center;padding:42px 24px;color:#59747a}.client-empty>svg{width:38px;height:38px;margin:8px auto 18px;color:#378577}.client-empty h3,.client-empty h4{font-size:22px;margin:0 0 12px;color:#213f49}.client-empty p{max-width:500px;margin:0 auto;font-size:14px;line-height:1.7}
.client-profile-heading{display:flex;gap:18px;align-items:center}.client-profile-heading h3{font-size:26px;margin:0 0 8px;overflow-wrap:anywhere}.client-profile-heading p{margin:0;color:#657b85}.client-profile-actions{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}.client-profile-actions a{text-decoration:none}.client-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.client-metrics article{display:grid;gap:12px;padding:20px;border-radius:13px;background:#f1f6f5;min-width:0}.client-metrics span{font-size:12px;color:#5b787c}.client-metrics strong{font-size:19px;font-weight:600;overflow-wrap:anywhere}.client-preferences{margin-top:24px;padding:20px;border:1px solid #e1e8ea;border-radius:13px}.client-preferences h4{margin:0 0 10px}.client-preferences p{font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.7}.client-history{margin-top:20px}.client-history h3{font-size:21px}.client-history-row{display:flex;justify-content:space-between;gap:20px;padding:22px 0;border-bottom:1px solid #e7eced}.client-history-row>div{display:flex;flex-direction:column;gap:9px;min-width:0;overflow-wrap:anywhere}.client-history-row>div:last-child{align-items:flex-end;text-align:right}.client-history-row strong{font-size:15px}.client-history-row span:not(.status-pill){font-size:13px;color:#637c84}
.client-edit{max-width:780px;margin:0 auto}.client-edit h3{font-size:25px}.client-edit fieldset{border:0;padding:0;display:grid;gap:20px;min-width:0}.client-edit label{display:grid;gap:9px;font-size:15px;font-weight:550}.client-edit input,.client-edit textarea{font-size:16px;width:100%;max-width:100%;min-width:0}.client-edit textarea{padding:14px;border:1px solid #d9e2df;border-radius:10px;resize:vertical;font-family:inherit}.client-sticky-actions{display:flex;gap:12px;position:sticky;bottom:0;background:white;padding:18px 0;margin-top:10px;z-index:3}.client-unlinked{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:14px 0}.client-unlinked h3{font-size:19px;margin:0 0 10px}.client-unlinked p{font-size:14px;color:#657986;margin:7px 0;overflow-wrap:anywhere}.client-link-review{padding:24px;background:#ecf7f3;border:1px solid #a1cbbb;border-radius:15px;margin-bottom:20px}.client-link-review p{font-size:14px;line-height:1.6;overflow-wrap:anywhere}.client-link-confirm{border-top:1px solid #bedbcc;margin-top:20px;padding-top:8px}.client-booking-selected{display:flex;align-items:center;gap:15px;padding:20px;background:#eff7f3;border-radius:12px;margin:16px 0}.client-booking-selected>div{display:grid;gap:6px}.client-booking-selected small{color:#627b74}
@media(max-width:1100px){.account-workspace{grid-template-columns:218px minmax(0,1fr)}.account-workspace>main{padding:20px}.account-workspace>.account-header{padding:18px 20px}.workspace-navigation{padding-left:10px;padding-right:10px}.client-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.account-workspace{display:block;padding:0}.workspace-navigation{position:relative;height:auto;overflow:visible;padding:12px 16px;background:#0c2340;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.workspace-navigation .brand{margin:0;font-size:22px;gap:7px}.workspace-navigation .brand-symbol{width:34px;height:34px}.workspace-navigation .brand small{font-size:8px;letter-spacing:3px}.workspace-menu-button{display:flex;align-items:center;gap:8px;background:#233b57;color:white;border:1px solid #496078;border-radius:10px;padding:10px 13px;font-size:14px;min-height:48px}.workspace-menu-button strong{display:none}.workspace-navigation-links{display:none;width:100%;min-height:0;padding-top:14px;border-top:1px solid #3c526b}.workspace-navigation-links.is-open{display:flex}.workspace-navigation-links nav{display:grid;grid-template-columns:1fr 1fr;gap:5px 10px}.workspace-nav-label{grid-column:1/-1;margin:14px 10px 5px}.workspace-nav-item{font-size:14px;margin:0;padding:12px 10px;min-width:0}.workspace-nav-account{padding:20px 10px 12px;margin:0}.workspace-logout{margin-top:10px}.account-workspace>.account-header{display:none}.account-workspace>main{padding:16px 12px}.account-workspace>.account-footer{padding:18px 16px;font-size:10px}.account-workspace .account-controls{display:flex;gap:10px;padding-bottom:4px;margin-bottom:12px}.workspace-local{flex-basis:calc(100% - 155px);order:0}.workspace-local .eyebrow{font-size:8px}.workspace-local strong{font-size:15px}.account-workspace .account-controls>.primary{width:auto;order:1;min-height:48px;padding:12px 14px}.workspace-date-picker{order:2;flex:1}.workspace-date-picker>summary{min-height:40px;padding:8px 12px;font-size:12px}.workspace-refresh{order:3;width:48px!important;min-height:40px!important}.account-workspace .account-controls>label{flex-basis:calc(100% - 150px)}.account-workspace .calendar-scroll{max-height:calc(100dvh - 285px);min-height:260px}.account-workspace .calendar-toolbar{padding:14px 10px;gap:12px}.account-workspace .calendar-legend{padding:0 12px 10px}.account-workspace .calendar-heading h2{font-size:18px}.account-workspace .calendar-controls{gap:7px}.account-workspace .calendar-controls .secondary,.account-workspace .calendar-controls select{font-size:12px}.account-workspace .account-data-note{font-size:10px}.account-workspace .account-data-note>span:last-child{display:none}.clients-heading{align-items:flex-start;margin-top:10px;gap:12px}.clients-heading h2{font-size:27px}.clients-heading .eyebrow{font-size:8px}.clients-heading p:not(.eyebrow){font-size:13px}.clients-heading .primary{padding:12px;font-size:12px;white-space:nowrap}.client-tools{gap:12px}.client-tools .segmented{width:100%}.client-tools .segmented button{flex:1;padding:9px 10px;font-size:12px}.client-search{flex-basis:100%;max-width:none}.client-card{padding:18px 16px}.client-card-body strong{font-size:16px}.client-card-body small{font-size:11px}.client-profile,.client-history,.client-edit{padding:20px 16px!important}.client-profile-heading{gap:12px}.client-profile-heading h3{font-size:22px}.client-metrics article{padding:15px 12px}.client-metrics strong{font-size:16px}.client-metrics span{font-size:11px}.client-history-row{gap:12px}.client-history-row strong{font-size:13px}.client-history-row .status-pill{white-space:normal;font-size:10px}.client-unlinked{flex-direction:column;align-items:stretch;padding:20px!important}.client-unlinked .setup-actions{display:grid;grid-template-columns:1fr 1fr}.client-unlinked .primary,.client-unlinked .secondary{font-size:12px;padding:10px}.client-pagination{gap:14px}.client-link-review{padding:20px}.client-sticky-actions button{flex:1}.client-edit label{font-size:14px}}
@media(prefers-reduced-motion:reduce){.workspace-navigation *{scroll-behavior:auto}}
.aftercare-choice { display: flex; align-items: flex-start; gap: 12px; padding: 16px; border: 1px solid #b4cec1; border-radius: 14px; background: #f7fbf8; cursor: pointer; }
.aftercare-choice input[type=checkbox] { width: 22px; height: 22px; flex: 0 0 22px; margin: 2px 0 0; accent-color: #176c60; }
.aftercare-choice span { display: grid; gap: 8px; min-width: 0; }
.aftercare-choice small { font-weight: 400; line-height: 1.5; }
.appointment-complete { display: block; font-size: .75rem; font-weight: 700; padding-top: 6px; text-decoration: underline; overflow-wrap: anywhere; }
/* The native dialog traps focus and makes the calendar inert while a proposal is reviewed. */
dialog.workspace-editor { width:min(760px,calc(100vw - 32px)); max-height:calc(100dvh - 48px); overflow:auto; margin:auto; border:1px solid #d5e4df; border-radius:28px; padding:clamp(20px,4vw,36px); color:#132c37; box-shadow:0 28px 100px #102d4040; }
dialog.workspace-editor:not([open]) { display:none; }
dialog.workspace-editor::backdrop { background:#0c243b70; backdrop-filter:blur(5px); }
.editor-proposed-time { display:flex; gap:14px; align-items:center; background:#eff7f3; border-radius:18px; padding:18px; margin:20px 0; }
.editor-proposed-time div { display:grid; gap:5px; }
.editor-proposed-time span { color:#536f67; font-size:.9rem; }
.calendar-cell { position:relative; }
.calendar-add-slot { display:flex; align-items:center; justify-content:center; gap:5px; width:100%; min-height:48px; border:1px dashed transparent; border-radius:9px; background:transparent; color:#416f62; cursor:pointer; }
.calendar-add-slot > span:first-child { opacity:.3; }
.calendar-add-label { opacity:0; font-size:.75rem; }
.calendar-add-slot:hover,.calendar-add-slot:focus-visible { background:#e4f1eb; border-color:#8bb8a4; }
.calendar-add-slot:hover span,.calendar-add-slot:focus-visible span { opacity:1; }
.drop-target:not(.closed-cell):not(.past-cell) { background:#eff7f3; outline:1px dashed #9bc4b3; outline-offset:-2px; }
.calendar-cell.past-cell:not(.closed-cell) { background:#f8faf9; }
.appointment[draggable=true] { cursor:grab; }
.appointment[draggable=true]:active { cursor:grabbing; }
.appointment-move-hint { font-size:.68rem; opacity:.7; }
@media(max-width:640px) { dialog.workspace-editor { width:calc(100vw - 16px); max-height:calc(100dvh - 16px); border-radius:20px; padding:18px; } .calendar-add-slot { gap:0; } .calendar-add-label,.appointment-move-hint { display:none; } }
.agenda-summary { display:grid; grid-template-columns:1fr 1fr 1.3fr; gap:16px; margin:18px 0 24px; }
.agenda-summary article { border:1px solid #dce6e1; border-radius:20px; padding:22px; display:grid; align-content:start; gap:7px; background:#fff; }
.agenda-summary article > span { color:#40645b; font-size:.88rem; font-weight:650; }
.agenda-summary strong { font-size:2rem; line-height:1.2; color:#173e38; }
.agenda-summary small { color:#63766e; line-height:1.4; }
.agenda-summary .availability-summary { background:#eaf5ed; border-color:#cfe4d4; }
@media(max-width:640px) { .agenda-summary { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin:12px 0; } .agenda-summary article { padding:12px 9px; border-radius:14px; } .agenda-summary strong { font-size:1.65rem; } .agenda-summary article > span { font-size:.72rem; } .agenda-summary small { font-size:.64rem; } }
@media(max-width:600px) { .week-grid .appointment-complete { display:none; } .week-grid .appointment-state { font-size:6px; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } }

/* Four decisions, one explicit write. Shared by the toolbar and calendar cells. */
.workspace-editor[open]:has(.new-appointment-wizard) { display:flex; flex-direction:column; overflow:hidden; }
.workspace-editor:has(.new-appointment-wizard) .editor-heading { flex-shrink:0; }
.new-appointment-wizard { --booking-accent:#176c60; color:#193d3b; display:flex; flex-direction:column; min-height:0; }
.new-appointment-wizard>.booking-stepper,.new-appointment-wizard>.booking-context { flex-shrink:0; }
.new-appointment-wizard>.booking-step-content { overflow-y:auto; min-height:0; padding:2px 5px 12px 2px; }
.new-appointment-wizard>.account-error,.new-appointment-wizard>.account-notice { flex-shrink:0; max-height:120px; overflow-y:auto; }
.booking-wizard-actions { display:flex; gap:16px; justify-content:space-between; align-items:center; flex-shrink:0; border-top:1px solid #e2ebe5; padding-top:16px; margin-top:12px; background:#fff; }
.booking-wizard-actions .booking-back { margin:0; flex-shrink:0; }.booking-wizard-actions .booking-confirm { width:auto; }
.booking-step-content h3:focus { outline:none; }
.booking-stepper { list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:0; margin:22px 0 28px; gap:8px; }
.booking-stepper li { border-bottom:3px solid #e4ece8; padding-bottom:8px; min-width:0; }
.booking-stepper button { display:flex; gap:8px; align-items:center; width:100%; padding:6px 0; background:none; color:#6a7d78; font-size:13px; min-height:48px; }
.booking-stepper button:disabled { opacity:1; cursor:default; }
.booking-stepper button span { display:grid; place-items:center; width:28px; height:28px; flex-shrink:0; border-radius:50%; background:#edf2ef; font-weight:700; }
.booking-stepper .current,.booking-stepper .done { border-color:#72bba8; }
.booking-stepper .current button { color:#145b50; font-weight:700; }
.booking-stepper .current span { color:white; background:var(--booking-accent); }
.booking-stepper .done span { background:#d8eee5; color:#176c60; }
.booking-context { display:flex; align-items:center; gap:12px; padding:14px 16px; border-radius:14px; background:#f0f7f3; font-size:13px; line-height:1.6; margin-bottom:24px; }
.booking-context svg { flex-shrink:0; }
.booking-step-content { min-height:260px; }
.booking-step-content h3 { font-size:clamp(23px,3vw,29px); margin:8px 0 10px; letter-spacing:-.7px; }
.booking-step-content .muted { font-size:14px; color:#60776d; line-height:1.6; margin-bottom:22px; }
.booking-service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:24px 0; }
.booking-service { position:relative; display:grid; grid-template-columns:44px minmax(0,1fr); gap:6px 12px; padding:20px; text-align:left; background:#fff; color:#163f38; border:1px solid #d7e5de; border-radius:17px; min-height:132px; }
.booking-service:hover:not(:disabled),.booking-service:focus-visible { border-color:#4e9c84; background:#f0f8f3; box-shadow:0 5px 18px #163f3810; }
.booking-service strong { font-size:16px; align-self:center; overflow-wrap:anywhere; padding-right:14px; }
.booking-service>span:not(.booking-service-mark):not(.booking-choice-arrow),.booking-service>b { grid-column:2; font-size:13px; }
.booking-service>b { font-size:16px; }.booking-service-mark { display:grid; place-items:center; width:44px; height:44px; background:#e5f3ec; border-radius:12px; grid-row:1/4; align-self:start; }
.booking-choice-arrow { position:absolute; right:16px; top:25px; }.booking-time-controls { display:grid; grid-template-columns:1fr 1fr; gap:16px; border:0; margin:22px 0; padding:0; min-width:0; }
.booking-time-controls label { display:grid; gap:8px; font-size:13px; min-width:0; }.booking-time-controls input,.booking-time-controls select { width:100%; min-width:0; min-height:48px; font-size:14px; }
.booking-date-shortcuts { grid-column:1/-1; display:flex; gap:8px; }.booking-date-shortcuts .chosen { background:#def0e7; border-color:#64a28d; color:#165c4e; }
.booking-time-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }.booking-time-grid .slot-choice { min-width:0; padding:14px 10px; }.booking-time-grid span { overflow-wrap:anywhere; }
.booking-client-search { display:flex; align-items:center; gap:12px; border:1px solid #9abfb0; border-radius:14px; padding:4px 14px; background:#fff; }.booking-client-search input { flex:1; min-width:0; width:100%; border:0; padding:12px 0; font-size:16px; background:transparent; }
.booking-client-results { display:grid; gap:8px; max-height:300px; overflow-y:auto; margin:14px 0; padding:2px; }.booking-client-card { display:flex; align-items:center; gap:14px; padding:14px; border:1px solid #e0e9e3; background:#fff; border-radius:13px; text-align:left; color:#25483e; }.booking-client-card:hover:not(:disabled) { background:#f0f8f3; border-color:#7aaf99; }
.booking-client-card>span:nth-child(2) { display:grid; gap:5px; flex:1; min-width:0; overflow-wrap:anywhere; }.booking-client-card small { color:#6b8077; }.booking-avatar { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:#e4f1e9; font-weight:700; flex-shrink:0; }.booking-manual-toggle { margin:10px 0 16px; }
.booking-final-summary { margin:22px 0; border:1px solid #c8dfd2; background:linear-gradient(130deg,#f1f9f4,#fff); border-radius:20px; padding:24px; }.booking-final-summary>div { display:flex; gap:14px; margin-bottom:24px; }.booking-final-summary>div>svg { color:#3f8873; flex-shrink:0; }.booking-final-summary>div>span { display:grid; gap:7px; min-width:0; overflow-wrap:anywhere; }.booking-final-summary small { font-size:10px; letter-spacing:1.3px; color:#628172; }.booking-final-summary strong { font-size:18px; }.booking-final-summary span span { font-size:14px; color:#5d776a; }.booking-final-summary .booking-final-service { border-top:1px solid #d8e8de; padding-top:18px; margin-bottom:0; justify-content:space-between; align-items:center; }
.booking-confirm { width:100%; justify-content:center; min-height:56px!important; font-size:16px!important; }.booking-back { margin-top:18px; min-height:48px; }.booking-progress { padding:14px; background:#eaf5ee; border-radius:12px; font-size:14px; }
.new-appointment-wizard button:focus-visible { outline:3px solid #5da88f; outline-offset:3px; }
.booking-client-options { display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; margin:20px 0; }
.booking-client-options button { min-height:48px; }
#account-main:focus { outline:none; }
.account-workspace { overflow-anchor:none; }
@media(max-width:640px) { .booking-stepper { gap:5px; margin:18px 0 24px; }.booking-stepper button { flex-direction:column; gap:5px; font-size:11px; }.booking-service-grid { grid-template-columns:1fr; gap:10px; }.booking-service { min-height:104px; padding:16px; }.booking-service-mark { grid-row:1/4; }.booking-time-controls { grid-template-columns:1fr; }.booking-time-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.booking-final-summary { padding:18px; }.booking-final-summary strong { font-size:16px; }.booking-step-content { min-height:220px; } }
