:root{--hour:64px;--half-hour:32px;--time-col:64px;--sidebar-w:264px;--topbar-h:68px;--st-confirm-bar:#41584A;--st-confirm-bg:rgba(138,154,138,0.16);--st-confirm-bg-2:rgba(138,154,138,0.26);--st-reassign-bar:#92400e;--st-reassign-bg:#fef3c7;--st-reassign-bg-2:#fde68a;--st-pending-bar:#A99687;--st-pending-bg:rgba(169,150,135,0.18);--st-cancel-bar:#b5675a;--st-cancel-bg:rgba(74,53,46,0.05);--st-block-bar:var(--st-cancel-bar);--st-block-bg:rgba(181,103,90,0.12);--st-block-bg-2:rgba(181,103,90,0.24)}body[data-app]{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);min-height:100vh}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.app__scrim{position:fixed;inset:0;z-index:70;background:var(--mocha-70);opacity:0;visibility:hidden;transition:opacity .2s var(--ease)}.app__scrim.is-open{opacity:1;visibility:visible}.app__sidebar{position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto;background:var(--surface);border-right:1px solid var(--border-soft);display:flex;flex-direction:column;gap:1.25rem;padding:1.1rem 1rem 1.25rem}.app__brand{display:flex;align-items:center;gap:.6rem;padding:.25rem .4rem .75rem;border-bottom:1px solid var(--border-soft)}.app__brand .brand__mark{font-family:var(--font-display);font-size:1.3rem;color:var(--ink)}.app__brand .brand__mark b{color:var(--accent-ink);font-weight:400}.app__brand small{display:block;font-size:var(--t-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--muted);margin-top:1px}.app__nav{display:grid;gap:2px}.app__nav a{display:flex;align-items:center;gap:.7rem;padding:.6rem .7rem;border-radius:var(--r-sm);font-size:var(--t-sm);font-weight:500;color:var(--ink-soft);transition:background .18s var(--ease),color .18s var(--ease)}.app__nav a:hover{background:var(--mocha-05);color:var(--ink)}.app__nav a[aria-current=page]{background:var(--ink);color:var(--on-primary);font-weight:600}.app__nav .ic{width:18px;height:18px;flex:none}.side-block{display:grid;gap:.6rem}.side-block__title{font-size:var(--t-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0 .4rem}.mini,.mini__head{padding:0 .2rem}.mini__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.mini__head b{font-size:var(--t-sm);font-weight:600}.mini__nav{display:flex;gap:.25rem}.mini__nav button{width:26px;height:26px;border-radius:50%;border:1px solid var(--border-soft);background:transparent;color:var(--ink);display:inline-flex;align-items:center;justify-content:center}.mini__nav .ic{width:14px;height:14px}.mini__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.mini__dow{font-size:.62rem;color:var(--muted);text-align:center;font-weight:600;padding-bottom:3px}.mini__day{aspect-ratio:1;border:0;background:transparent;border-radius:var(--r-xs);font-size:.72rem;color:var(--ink);font-feature-settings:"tnum";position:relative;display:inline-flex;align-items:center;justify-content:center}.mini__day:hover:not([disabled]){background:var(--mocha-05)}.mini__day.is-out,.mini__day[disabled]{color:var(--taupe-40)}.mini__day.is-week{background:var(--sage-14)}.mini__day.is-selected{box-shadow:inset 0 0 0 1.5px var(--accent-ink)}.mini__day.is-today{background:var(--ink);color:var(--on-primary);font-weight:700}.mini__day.has-dot:after{content:"";position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--accent-ink)}.mini__day.is-today.has-dot:after{background:var(--bone-white)}.mini__day.is-holiday{color:var(--st-cancel-bar);font-weight:600}.upnext__heading{display:grid;gap:.1rem;padding:0 .4rem}.upnext__heading h2{margin:0;font-size:var(--t-sm);font-weight:700;color:var(--ink)}.upnext__heading span{font-size:var(--t-xs);color:var(--muted)}.upnext{display:grid;gap:.4rem}.upnext__item{display:grid;grid-template-columns:auto 1fr;gap:.1rem .65rem;align-items:baseline;width:100%;text-align:left;padding:.5rem .55rem;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;cursor:pointer}.upnext__item:hover{background:var(--mocha-05);border-color:var(--border-soft)}.upnext__time{font-size:var(--t-xs);font-weight:700;color:var(--ink);font-feature-settings:"tnum"}.upnext__who{font-size:var(--t-sm);font-weight:600;color:var(--ink);grid-column:2}.upnext__details{font-size:var(--t-xs);color:var(--muted);grid-column:2}.upnext__bar{grid-row:1/span 3;width:3px;border-radius:2px;align-self:stretch;background:var(--st-confirm-bar)}.who-switch .select:disabled{cursor:default;appearance:none;-webkit-appearance:none;background-image:none}.who-switch{margin-top:auto;border-top:1px solid var(--border-soft);padding-top:.9rem}.who{display:flex;align-items:center;gap:.6rem;width:100%;padding:.55rem .6rem;border-radius:var(--r-md);border:1px solid var(--border-soft);background:var(--bone-white);cursor:pointer}.who:hover{border-color:var(--border)}.avatar{width:34px;height:34px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:var(--t-sm);font-weight:700;color:#233027;background:var(--sage-mineral)}.avatar--a{background:var(--soft-taupe);color:#2f2620}.avatar--au{background:var(--deep-mocha);color:var(--bone-white)}.who__name{font-size:var(--t-sm);font-weight:600;color:var(--ink);line-height:1.1}.who__role{font-size:var(--t-xs);color:var(--muted)}.who .ic{width:16px;height:16px;margin-left:auto;color:var(--muted)}.app__main{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;min-height:var(--topbar-h);padding:.7rem var(--space-3);background:rgba(246,243,238,.86);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-soft)}.topbar__title{display:flex;align-items:baseline;gap:.6rem;flex:0 0 20rem;min-width:0}.topbar__title h1{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.35rem;font-family:var(--font-display)}.topbar__title .sub{flex:none;white-space:nowrap;font-size:var(--t-xs);color:var(--muted);letter-spacing:.04em}.topbar__spacer{flex:1 1 auto}.datenav{display:grid;grid-template-columns:38px 7.25rem 38px;align-items:center;gap:.35rem;flex:none}.datenav button{width:100%;height:38px;min-width:0;padding:0 .7rem;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bone-white);color:var(--ink);font-size:var(--t-sm);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:.3rem}.datenav button:hover{border-color:var(--ink)}.datenav .ic{width:16px;height:16px}.datenav__today-icon{display:none}.viewtoggle{display:inline-flex;gap:4px;padding:4px;background:var(--surface-2)}.viewtoggle,.viewtoggle a{border-radius:var(--r-pill)}.viewtoggle a{padding:.4rem .95rem;font-size:var(--t-sm);font-weight:600;color:var(--ink-soft)}.viewtoggle a:hover{color:var(--ink)}.viewtoggle a[aria-current=page]{background:var(--bone-white);color:var(--ink);box-shadow:var(--shadow-sm)}.filter{display:inline-flex;align-items:center;gap:.45rem}.filter>label{font-size:var(--t-xs);font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.select--sm{height:38px;min-height:0;width:auto;padding:0 2rem 0 .8rem;font-size:var(--t-sm);font-weight:500;border-radius:var(--r-sm);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234A352E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;appearance:none}.topbar__settings{width:38px;height:38px}.legend{display:flex;flex-wrap:wrap;gap:1rem;padding:.7rem var(--space-3);border-bottom:1px solid var(--border-soft);background:var(--surface)}.legend__item{display:inline-flex;align-items:center;gap:.45rem;font-size:var(--t-xs);color:var(--ink-soft)}.legend__sw{width:26px;height:14px;border-radius:var(--r-xs);flex:none;border-left:3px solid var(--st-confirm-bar);background:var(--st-confirm-bg)}.legend__sw--reassign{border-left-color:var(--st-reassign-bar);background:var(--st-reassign-bg)}.legend__sw--devis{border-left-color:var(--st-confirm-bar);background:var(--bone-white);border:1px dashed var(--st-confirm-bar)}.legend__sw--block{border-left:0;background:repeating-linear-gradient(45deg,var(--st-block-bg),var(--st-block-bg) 4px,var(--st-block-bg-2) 4px,var(--st-block-bg-2) 8px)}.legend__sw--cancel{border-left-color:var(--st-cancel-bar);background:var(--st-cancel-bg);border:1px dashed var(--st-cancel-bar)}.cal{--visible-cols:var(--cols,7);--week-min-width:760px;padding:0 var(--space-3) var(--space-3)}.cal__scroll{overflow:auto;overscroll-behavior:contain}.cal__inner{min-width:var(--week-min-width)}.cal--day .cal__inner{min-width:420px}.cal__head{position:sticky;top:0;z-index:20;margin-top:var(--half-hour);display:grid;grid-template-columns:var(--time-col) var(--week-columns,repeat(var(--visible-cols),1fr));background:var(--bg);border-bottom:1px solid var(--border)}.cal__corner,.cal__dayhead{border-right:1px solid var(--border-soft)}.cal__dayhead{padding:.55rem .6rem .5rem;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.cal__dayhead:last-child{border-right:0}.cal__dow{font-size:var(--t-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.cal__date{display:inline-flex;align-items:baseline;gap:.35rem}.cal__date b{font-size:1.15rem;font-family:var(--font-display);color:var(--ink)}.cal__centre{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;margin-top:.2rem;font-size:var(--t-xs);color:var(--ink-soft)}.cal__availability{display:inline-flex;align-items:center;gap:.3rem;min-width:0;white-space:nowrap}.cal__centre .pin{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}.cal__centre .pin--uccle{background:var(--soft-taupe)}.cal__centre .pin--erpent{background:var(--deep-mocha)}.cal__dayhead.is-today{background:var(--sage-14)}.cal__dayhead.is-today .cal__date b{color:var(--accent-ink)}.cal__dayhead.is-closed .cal__centre{color:var(--muted)}.cal__dayhead.is-exception{box-shadow:inset 0 3px 0 var(--st-pending-bar)}.cal__exception-badge{padding:.12rem .45rem;border-radius:var(--r-pill);background:var(--st-pending-bg);color:var(--ink);font-size:.65rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.schedule-exception-banner{display:flex;align-items:baseline;gap:.65rem;flex-wrap:wrap;margin:0 var(--space-3) .65rem;padding:.65rem .85rem;border:1px solid color-mix(in srgb,var(--st-pending-bar) 42%,transparent);border-radius:var(--r-sm);background:var(--st-pending-bg);font-size:var(--t-sm)}.schedule-exception-banner span{color:var(--ink-soft)}.cal__body{position:relative;display:grid;grid-template-columns:var(--time-col) var(--week-columns,repeat(var(--visible-cols),1fr))}.cal__times{position:relative;z-index:5;pointer-events:none;border-right:1px solid var(--border-soft)}.cal__time{position:absolute;left:0;width:100%;height:0}.cal__time span{position:absolute;top:.35rem;right:.5rem;font-size:var(--t-xs);color:var(--muted);font-feature-settings:"tnum"}.cal__hour-lines{position:absolute;inset:0;z-index:4;pointer-events:none}.cal__hour-line{position:absolute;left:0;right:0;border-top:1px solid var(--border-soft)}.cal__col{position:relative;border-right:1px solid var(--border-soft);cursor:pointer}.cal__col:last-child{border-right:0}.cal__col.is-today{background-color:rgba(138,154,138,.05)}.cal__col.is-dimmed{opacity:.28;pointer-events:none;transition:opacity .2s var(--ease)}.cal__dayhead.is-dimmed{opacity:.4;transition:opacity .2s var(--ease)}.cal__off{position:absolute;left:0;right:0;z-index:0;background:repeating-linear-gradient(135deg,rgba(169,150,135,.1),rgba(169,150,135,.1) 6px,transparent 0,transparent 12px);pointer-events:none}.cal__col.is-closed{background-color:rgba(169,150,135,.07);background-image:repeating-linear-gradient(135deg,rgba(169,150,135,.1),rgba(169,150,135,.1) 6px,transparent 0,transparent 12px)}.cal:not(.cal--day) .cal__col.is-closed{z-index:4;background-color:var(--bg);background-image:repeating-linear-gradient(135deg,rgba(169,150,135,.1),rgba(169,150,135,.1) 6px,transparent 0,transparent 12px),linear-gradient(rgba(169,150,135,.07),rgba(169,150,135,.07))}.cal__col.is-closed.is-on-leave,.cal__col.is-on-leave{background-color:var(--sage-14);background-image:none}.cal:not(.cal--day) .cal__col.is-closed.is-on-leave{background-color:var(--bg);background-image:linear-gradient(var(--sage-14),var(--sage-14))}.cal__closed-label{position:absolute;top:1rem;left:50%;transform:translateX(-50%) rotate(-90deg) translateX(0);transform-origin:center;white-space:nowrap;font-size:var(--t-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.cal__now{position:absolute;left:0;right:0;height:0;z-index:8;pointer-events:none}.cal__now:before{left:-4px;top:-4px;width:8px;height:8px;border-radius:50%}.cal__now:after,.cal__now:before{content:"";position:absolute;background:var(--st-cancel-bar)}.cal__now:after{left:0;right:0;top:0;height:2px}.ev{position:absolute;left:4px;right:4px;z-index:5;border-radius:var(--r-sm);padding:3px 8px 3px 9px;border:1px solid var(--soft-taupe);border-left:3px solid var(--st-confirm-bar);background:linear-gradient(var(--st-confirm-bg),var(--st-confirm-bg)),var(--bg);overflow:hidden;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:0;transition:box-shadow .15s var(--ease),transform .05s var(--ease),background .15s var(--ease)}.ev:hover{background:linear-gradient(var(--st-confirm-bg-2),var(--st-confirm-bg-2)),var(--bg);box-shadow:var(--shadow-md);z-index:7}.ev:active{transform:translateY(.5px)}.ev__name{font-size:var(--t-sm);font-weight:700;color:var(--ink)}.ev__name,.ev__soin{line-height:1.12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ev__soin{font-weight:600;color:var(--ink-soft)}.ev__meta,.ev__soin{font-size:var(--t-xs)}.ev__meta{color:var(--muted);line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ev--sm,.ev--xs{justify-content:center}.ev--sm .ev__meta,.ev--sm .ev__soin,.ev--xs .ev__meta,.ev--xs .ev__soin{display:none}.ev--xs{padding-top:1px;padding-bottom:1px}.ev--xs .ev__name{font-size:.68rem;line-height:1.05}.ev--md .ev__meta{display:none}.ev--reassign{background:var(--st-reassign-bg);border-left-color:var(--st-reassign-bar)}.ev--reassign:hover{background:var(--st-reassign-bg-2)}.ev--reassign .ev__soin{color:var(--st-reassign-bar)}.ev--devis{background:var(--bone-white);border:1px dashed var(--st-confirm-bar)}.ev--cancel{background:linear-gradient(var(--st-cancel-bg),var(--st-cancel-bg)),var(--bg);border-left-color:var(--st-cancel-bar);border-left-style:dashed}.ev--cancel .ev__name{text-decoration:line-through;color:var(--muted)}.ev--cancel .ev__meta,.ev--cancel .ev__soin{color:var(--muted)}.ev--no-show{background:linear-gradient(var(--st-cancel-bg),var(--st-cancel-bg)),var(--bg);border-left-color:var(--st-cancel-bar)}.ev--no-show .ev__meta{color:var(--st-cancel-bar)}.ev--block{left:0;right:0;cursor:pointer;border:0;border-radius:0;padding-left:12px;color:var(--ink-soft);background:repeating-linear-gradient(45deg,var(--st-block-bg),var(--st-block-bg) 5px,var(--st-block-bg-2) 5px,var(--st-block-bg-2) 10px),var(--bg)}.ev--block .ev__name{font-weight:600;color:var(--ink-soft)}.ev__block-name{display:flex;align-items:center;gap:.3rem}.ev__block-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.ev__recurrence{width:13px;height:13px;flex:none}.ev--block:hover{box-shadow:var(--shadow-md);background:repeating-linear-gradient(45deg,var(--st-block-bg-2),var(--st-block-bg-2) 5px,rgba(181,103,90,.34) 5px,rgba(181,103,90,.34) 10px),var(--bg)}.ev--leave{background:linear-gradient(rgba(138,154,138,.22),rgba(138,154,138,.22)),var(--bg);color:var(--accent-ink)}.ev--leave:hover{box-shadow:var(--shadow-md);background:linear-gradient(var(--st-confirm-bg-2),var(--st-confirm-bg-2)),var(--bg)}.ev--leave .ev__meta,.ev--leave .ev__name{color:var(--accent-ink)}.appointment-menu{position:fixed;z-index:120;visibility:hidden;width:max-content;min-width:190px;max-width:calc(100vw - 16px);padding:4px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-lg)}.appointment-menu--submenu{min-width:250px}.appointment-menu__item{width:100%;min-height:42px;padding:.6rem .75rem;border:0;border-radius:calc(var(--r-sm) - 3px);background:transparent;color:var(--ink);display:flex;align-items:center;gap:.65rem;font-size:var(--t-sm);font-weight:600;text-align:left;white-space:nowrap}.appointment-menu__item.is-active,.appointment-menu__item:focus-visible,.appointment-menu__item:hover{background:var(--sage-14)}.appointment-menu__item .ic{width:17px;height:17px;color:var(--accent-ink);flex:none}.appointment-menu__item.is-danger,.appointment-menu__item.is-danger .ic{color:var(--st-cancel-bar)}.appointment-menu__item.is-suggested{background:var(--sage-14);box-shadow:inset 3px 0 0 var(--accent-ink)}.appointment-menu__label{flex:1 1 auto;min-width:0}.appointment-menu__badge,.appointment-menu__hint{margin-left:auto;font-size:var(--t-xs);font-weight:700;color:var(--muted)}.appointment-menu__badge{padding:.12rem .35rem;border-radius:var(--r-pill);background:var(--bone-white);color:var(--accent-ink)}.appointment-menu__chevron{margin-left:auto;color:var(--muted);font-size:1.1rem;line-height:1}.sheet-scrim{position:fixed;inset:0;z-index:60;background:var(--mocha-70);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .25s var(--ease),visibility .25s}.sheet-scrim.is-open{opacity:1;visibility:visible}.sheet{position:fixed;top:0;right:0;height:100vh;width:min(440px,94vw);z-index:61;background:var(--bg);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);transform:translateX(100%);transition:transform .28s var(--ease);display:flex;flex-direction:column;overflow:hidden}.sheet.is-open{transform:translateX(0)}.sheet__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.35rem 1rem;border-bottom:1px solid var(--border-soft)}.sheet__close{width:38px;height:38px;flex:none;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--ink);display:inline-flex;align-items:center;justify-content:center}.sheet__close:hover{background:var(--mocha-05)}.sheet__close .ic{width:18px;height:18px}.sheet__body{flex:1 1;overflow-y:auto;padding:1.25rem 1.35rem;display:grid;gap:1.25rem}.sheet__foot{padding:1rem 1.35rem;border-top:1px solid var(--border-soft);background:var(--surface);display:flex;gap:.6rem;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--t-xs);font-weight:700;letter-spacing:.03em;padding:4px 10px;border-radius:var(--r-pill)}.badge .ic{width:13px;height:13px}.badge--confirm{background:var(--st-confirm-bg-2);color:var(--accent-ink)}.badge--cancel{background:var(--st-cancel-bg);color:var(--st-cancel-bar);border:1px solid rgba(181,103,90,.3)}.badge--block{background:rgba(74,53,46,.08);color:var(--ink-soft)}.sheet__soin h2{font-size:1.5rem;margin-bottom:.3rem}.sheet__soinmeta{font-size:var(--t-sm);color:var(--ink-soft)}.sheet__soinmeta b{color:var(--ink);font-weight:600}.info{display:grid;gap:.85rem}.info__row{display:grid;grid-template-columns:22px 1fr;gap:.7rem;align-items:start}.info__row>.ic{width:18px;height:18px;color:var(--accent-ink);margin-top:2px}.info__label{font-size:var(--t-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.info__value{font-size:var(--t-sm);color:var(--ink);font-weight:500}.info__value .sub{color:var(--muted);font-weight:400}.client-card{border:1px solid var(--border-soft);border-radius:var(--r-md);background:var(--surface);padding:1rem 1.1rem;display:grid;gap:.7rem}.client-card__top{display:flex;align-items:center;gap:.7rem}.client-card__name{font-size:1.05rem;font-weight:600;color:var(--ink)}.contact-row{display:flex;align-items:center;gap:.5rem}.contact-row .ic{width:16px;height:16px;color:var(--muted);flex:none}.contact-row a{font-size:var(--t-sm);color:var(--ink);font-weight:500}.contact-row a:hover{color:var(--accent-ink)}.contact-actions{display:flex;gap:.4rem;margin-left:auto}.icon-btn{width:32px;height:32px;border-radius:var(--r-sm);border:1px solid var(--border-soft);background:var(--bone-white);color:var(--ink-soft);display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{border-color:var(--border);color:var(--ink)}.icon-btn .ic{width:16px;height:16px}.note-box{border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--sage-14);padding:.75rem .9rem;font-size:var(--t-sm);color:var(--ink-soft)}.note-box--internal{background:var(--surface-2)}.note-box__label{font-size:var(--t-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:.3rem;display:block}.blocked-client-warning{background:#f3ddd7;border-color:rgba(181,103,90,.55)}.blocked-client-warning h3{color:var(--ink);margin-bottom:.45rem}.blocked-client-warning p+p{margin-top:.55rem}.blocked-client-warning__actions{align-items:center}.settings-list{display:grid;gap:1.1rem}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--surface)}.setting-row b{display:block;font-size:var(--t-sm);color:var(--ink)}.setting-row span{display:block;margin-top:.2rem;font-size:var(--t-xs);color:var(--muted);line-height:1.45}.settings-sheet .login__error{margin:0}.settings-sheet .switch:disabled{opacity:.5;cursor:not-allowed}.modal__panel--lg{max-height:calc(100dvh - (2 * var(--gutter)));overflow-y:auto;width:min(720px,100%)}.modal__panel--schedule{width:min(480px,100%)}.modal__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem 0}.modal__head h2{font-size:1.4rem}.modal__foot{padding:1rem 1.5rem 1.5rem;display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap}.mtabs{display:inline-flex;gap:4px;padding:4px;background:var(--surface-2);border-radius:var(--r-pill);margin:0 1.5rem .5rem}.mtabs button{border:0;background:transparent;padding:.5rem 1.1rem;border-radius:var(--r-pill);font-size:var(--t-sm);font-weight:600;color:var(--ink-soft)}.mtabs button.is-on{background:var(--bone-white);color:var(--ink);box-shadow:var(--shadow-sm)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}.form-grid .field.col-span{grid-column:1/-1}.block-recurrence{border:0;margin:0 0 1.1rem;min-width:0;padding:0}.block-recurrence>legend{color:var(--ink);font-size:var(--t-sm);font-weight:600;margin-bottom:.4rem;padding:0}.block-recurrence__frequency{background:var(--surface-2);border:1px solid var(--border-soft);border-radius:var(--r-md);display:grid;gap:3px;grid-template-columns:repeat(4,minmax(0,1fr));padding:3px}.block-recurrence__frequency label{cursor:pointer;min-width:0;position:relative}.block-recurrence__frequency input{opacity:0;position:absolute}.block-recurrence__frequency span{align-items:center;border-radius:calc(var(--r-md) - 3px);color:var(--ink-soft);display:flex;font-size:var(--t-sm);font-weight:650;justify-content:center;min-height:38px;padding:.4rem .55rem;transition:background .14s ease,color .14s ease}.block-recurrence__frequency input:checked+span{background:var(--bone-white);box-shadow:var(--shadow-sm);color:var(--ink)}.block-recurrence__frequency input:focus-visible+span{outline:2px solid var(--accent-ink);outline-offset:2px}.block-recurrence__rule{background:color-mix(in srgb,var(--surface-2) 70%,transparent);border:1px solid var(--border-soft);border-radius:var(--r-md);margin-top:.55rem;padding:.75rem}.block-recurrence__rule--weekly{display:grid;gap:.65rem;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.block-recurrence__rule--weekly label{display:grid;gap:.3rem;min-width:0}.block-recurrence__rule--weekly label>span{color:var(--muted);font-size:var(--t-xs);font-weight:650}.block-recurrence__rule .select{min-height:42px}.block-recurrence__rule--monthly{display:grid;gap:.5rem}.block-recurrence__pattern{align-items:center;color:var(--ink-soft);display:flex;flex-wrap:wrap;font-size:var(--t-sm);gap:.4rem;min-height:42px}.block-recurrence__pattern>input{accent-color:var(--accent-ink);height:16px;margin:0;width:16px}.block-recurrence__pattern>label{color:var(--ink);cursor:pointer;font-weight:600}.block-recurrence__pattern .select{padding-block:.45rem;width:auto}.block-recurrence__pattern .select[name=monthDay],.block-recurrence__pattern .select[name=weekOfMonth]{min-width:76px}.block-recurrence__pattern .select[name=weekday]{min-width:130px}.block-recurrence__pattern .select:disabled{cursor:not-allowed;opacity:.5}.block-recurrence__summary{align-items:center;color:var(--muted);display:flex;font-size:var(--t-xs);gap:.35rem;line-height:1.4;margin:.5rem 0 0}.block-recurrence__summary svg{flex:none;height:13px;width:13px}.appointment-form__section+.appointment-form__section{border-top:1px solid var(--border-soft);margin-top:.25rem;padding-top:1.25rem}.appointment-form__heading{color:var(--muted);font-size:var(--t-xs);font-weight:700;letter-spacing:.07em;margin-bottom:1rem;text-transform:uppercase}.client-picker__results{border:1px solid var(--border-soft);border-radius:var(--r-sm);margin-top:.45rem;overflow:hidden}.client-picker__new,.client-picker__result{background:var(--bone-white);border:0;color:var(--ink);cursor:pointer;display:block;font:inherit;padding:.65rem .8rem;text-align:left;width:100%}.client-picker__new,.client-picker__result+.client-picker__result{border-top:1px solid var(--border-soft)}.client-picker__new:focus-visible,.client-picker__new:hover,.client-picker__result:focus-visible,.client-picker__result:hover{background:var(--surface-2)}.client-picker__result span{color:var(--muted);display:block;font-size:var(--t-xs);margin-top:.16rem}.client-picker__new{font-weight:600}.client-picker__selected{color:var(--muted);font-size:var(--t-sm);margin:.45rem 0 0}.client-picker__selected button{background:none;border:0;color:var(--ink);cursor:pointer;font:inherit;font-weight:600;padding:0;text-decoration:underline}.appointment-duration__controls{display:grid;grid-template-columns:auto minmax(110px,150px) auto 1fr;gap:.55rem;align-items:center}.appointment-duration__step{min-height:50px;padding-inline:.85rem}.appointment-duration__input{position:relative}.appointment-duration__input .input{padding-right:3rem;font-feature-settings:"tnum"}.appointment-duration__input>span{position:absolute;right:.85rem;top:50%;transform:translateY(-50%);color:var(--muted);font-size:var(--t-sm);pointer-events:none}.appointment-duration__end{color:var(--ink-soft);font-size:var(--t-sm);justify-self:end;white-space:nowrap}.appointment-duration__end strong{color:var(--ink);font-feature-settings:"tnum"}.appointment-duration__hint{align-items:baseline;color:var(--muted);display:flex;flex-wrap:wrap;font-size:var(--t-xs);gap:.35rem .65rem}.appointment-duration__hint button{background:none;border:0;color:var(--accent-ink);cursor:pointer;font:inherit;font-weight:700;padding:0;text-decoration:underline;text-underline-offset:2px}.appointment-duration__hint button:focus-visible{border-radius:2px;outline:2px solid var(--accent-ink);outline-offset:3px}.notify-opt{display:flex;align-items:center;gap:.7rem;padding:.75rem .9rem;border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;margin-bottom:.6rem}.notify-opt:hover{border-color:var(--border)}.notify-opt input{width:20px;height:20px;accent-color:var(--accent-ink);flex:none}.notify-opt .ic{width:18px;height:18px;color:var(--accent-ink);flex:none}.notify-opt b{font-size:var(--t-sm);font-weight:600;display:block}.notify-opt span{font-size:var(--t-xs);color:var(--muted)}.cancellation-origin{border:0;padding:0}.cancellation-origin legend{font-size:var(--t-sm);font-weight:600;color:var(--ink);margin-bottom:.4rem}.cancel-notification-note{color:var(--muted);font-size:var(--t-xs);font-weight:400;line-height:1.35;margin:.55rem 0 0}.cancel-recap{display:grid;gap:.3rem;padding:.9rem 1rem;border-radius:var(--r-sm);background:var(--surface-2);margin-bottom:1.1rem;font-size:var(--t-sm)}.cancel-recap b{color:var(--ink)}.btn--danger{background:var(--st-cancel-bar);color:var(--bone-white);border-color:var(--st-cancel-bar)}.btn--danger:hover{background:#a35a4e}.month{padding:0 var(--space-3) var(--space-3)}.month__grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;background:var(--surface)}.month__dow{padding:.6rem .75rem;font-size:var(--t-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-2);border-right:1px solid var(--border-soft)}.month__dow:nth-child(7){border-right:0}.month__cell{min-height:116px;padding:.45rem .5rem;border-right:1px solid var(--border-soft);border-top:1px solid var(--border-soft);display:flex;flex-direction:column;gap:3px;position:relative}.month__cell:nth-child(7n){border-right:0}.month__cell.is-out{background:var(--mocha-05)}.month__cell.is-out .month__num{color:var(--taupe-40)}.month__cell.is-today .month__num{background:var(--ink);color:var(--on-primary)}.month__cell.is-holiday{background:rgba(181,103,90,.06)}.month__num{align-self:flex-start;font-size:var(--t-sm);font-weight:600;color:var(--ink);font-feature-settings:"tnum";width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.month__holiday{font-size:.66rem;font-weight:600;color:var(--st-cancel-bar);line-height:1.1}.m-ev{font-size:.7rem;line-height:1.25;padding:2px 6px;border-radius:var(--r-xs);border-left:3px solid var(--st-confirm-bar);background:var(--st-confirm-bg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:var(--ink)}.m-ev:hover{background:var(--st-confirm-bg-2)}.m-ev--block{border-left-color:var(--st-block-bar);background:var(--st-block-bg);color:var(--ink-soft)}.m-ev b{font-feature-settings:"tnum";font-weight:700}.m-more{font-size:.68rem;color:var(--accent-ink);font-weight:600;cursor:pointer;padding-left:4px}.month__cell.is-closed:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(135deg,rgba(169,150,135,.08),rgba(169,150,135,.08) 6px,transparent 0,transparent 12px)}.cap-summary{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;padding:.85rem var(--space-3);background:var(--surface);border-bottom:1px solid var(--border-soft);font-size:var(--t-sm);color:var(--ink-soft)}.cap-summary__big{font-family:var(--font-display);font-size:1.6rem;line-height:1;color:var(--accent-ink);margin-right:.15rem}.cap-summary b{color:var(--ink);font-weight:700}.month__cell.cap{gap:5px}.month__cell[data-open-day]{cursor:pointer}.month__cell[data-open-day]:hover{box-shadow:inset 0 0 0 2px var(--accent-ink)}.cap__head{display:flex;align-items:center;justify-content:space-between}.cap__pct{font-size:var(--t-sm);font-weight:700;color:var(--ink);font-feature-settings:"tnum"}.cap__pct small{font-weight:600;color:var(--muted);font-size:.7rem;margin-left:1px}.cap__bar{height:7px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin-top:auto}.cap__fill{height:100%;border-radius:999px;background:var(--accent-ink)}.cap__closed,.cap__sub{font-size:var(--t-xs);color:var(--muted)}.cap__closed{font-style:italic;margin-top:2px}.cap__tag{align-self:flex-start;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:var(--r-pill)}.cap__tag--calme{color:var(--accent-ink);background:var(--bone-white);border:1px dashed var(--accent-ink)}.cap__tag--full{color:#7a5a3f;background:var(--st-pending-bg)}.month__cell.cap-l0{background:rgba(246,243,238,.6)}.month__cell.cap-l1{background:rgba(138,154,138,.07)}.month__cell.cap-l2{background:rgba(138,154,138,.16)}.month__cell.cap-l3{background:rgba(138,154,138,.27)}.month__cell.cap-l4{background:rgba(138,154,138,.4)}.month__cell.cap-l5{background:rgba(138,154,138,.55)}.month__cell.cap.is-low{box-shadow:inset 0 0 0 1.5px var(--accent-ink)}.month__cell.is-low[data-open-day]:hover{box-shadow:inset 0 0 0 2px var(--accent-ink)}.page-wrap{padding:var(--space-3);max-width:1080px}.page-wrap__head{margin-bottom:1.5rem}.page-wrap__head h2{font-size:var(--t-h2);margin-bottom:.4rem}.page-wrap__head p{color:var(--ink-soft);max-width:64ch}.panel{border:1px solid var(--border-soft);border-radius:var(--r-md);background:var(--surface);margin-bottom:1.5rem;overflow:hidden}.panel__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.1rem 1.35rem;border-bottom:1px solid var(--border-soft)}.panel__head h3{font-size:1.2rem}.panel__head p{font-size:var(--t-sm);color:var(--muted)}.panel__body{padding:1.35rem}.weekmode{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.weekab{display:inline-flex;gap:4px;padding:4px;background:var(--surface-2);border-radius:var(--r-pill)}.weekab button{border:0;background:transparent;padding:.45rem 1.1rem;border-radius:var(--r-pill);font-size:var(--t-sm);font-weight:600;color:var(--ink-soft)}.weekab button.is-on{background:var(--ink);color:var(--on-primary)}.avail{display:grid;gap:.6rem}.avail__row{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:.9rem;align-items:center;padding:.85rem .9rem;border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--bone-white)}.avail__row.is-off{background:var(--mocha-05);opacity:.85}.avail__day{font-weight:600;font-size:var(--t-sm);color:var(--ink)}.avail__day small{display:block;font-size:var(--t-xs);color:var(--muted);font-weight:400}.avail__ranges{display:flex;flex-wrap:wrap}.avail__ranges,.range-chip{gap:.4rem;align-items:center}.range-chip{padding:.35rem .7rem;border-radius:var(--r-pill);background:var(--sage-14);border:1px solid var(--sage-22);font-size:var(--t-sm);font-weight:600;font-feature-settings:"tnum"}.range-chip,.range-chip button{display:inline-flex;color:var(--accent-ink)}.range-chip button{border:0;background:transparent;padding:0;cursor:pointer;opacity:.7}.range-chip button:hover{opacity:1}.range-chip__edit{align-items:baseline;gap:.35rem;font:inherit;font-weight:inherit}.range-chip__edit span:first-child{font-weight:500}.range-chip .ic{width:13px;height:13px}.range-add{border:1px dashed var(--border);background:transparent;color:var(--ink-soft);border-radius:var(--r-pill);padding:.35rem .7rem;font-size:var(--t-sm);font-weight:600;display:inline-flex;align-items:center;gap:.3rem}.range-add:hover{border-color:var(--ink);color:var(--ink)}.range-add .ic{width:14px;height:14px}.avail__off-label{font-size:var(--t-sm);color:var(--muted);font-style:italic}.toggle-off{font-size:var(--t-xs);font-weight:600;color:var(--ink-soft);border:1px solid var(--border-soft);background:transparent;padding:.35rem .7rem;border-radius:var(--r-pill)}.toggle-off:hover{border-color:var(--ink)}.preview-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.preview-week__day{text-align:center}.preview-week__dow{font-size:var(--t-xs);color:var(--muted);font-weight:600;margin-bottom:4px}.preview-week__bar{height:90px;border-radius:var(--r-xs);background:var(--surface-2);position:relative;overflow:hidden}.preview-week__fill{position:absolute;left:0;right:0;background:var(--sage-22);border-top:2px solid var(--accent-ink);border-bottom:2px solid var(--accent-ink)}.tlist{display:grid;gap:.5rem}.tlist__item{display:grid;grid-template-columns:auto 1fr auto;gap:.9rem;align-items:center;padding:.85rem 1rem;border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--bone-white)}.tlist__date{text-align:center;min-width:52px;padding:.3rem .5rem;border-radius:var(--r-sm);background:var(--surface-2);font-feature-settings:"tnum"}.tlist__date b{display:block;font-size:1.2rem;font-family:var(--font-display);line-height:1;color:var(--ink)}.tlist__date span{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.tlist__main b{font-size:var(--t-sm);font-weight:600;color:var(--ink)}.tlist__main span{display:block;font-size:var(--t-xs);color:var(--muted)}.tlist__item--holiday .tlist__date{background:rgba(181,103,90,.1)}.tlist__item--holiday .tlist__date b{color:var(--st-cancel-bar)}.tlist__item--off .tlist__date{background:var(--sage-14)}.tlist__item--off .tlist__date b{color:var(--accent-ink)}.tlist__item--exception .tlist__date{background:var(--st-pending-bg)}.tlist__item--exception .tlist__date b{color:var(--ink)}.tlist__actions{display:flex;align-items:center;gap:.45rem}.schedule-exceptions__empty{padding:1.2rem;border:1px dashed var(--border);border-radius:var(--r-sm);color:var(--muted);font-size:var(--t-sm);text-align:center}.schedule-exceptions__note{margin-top:.75rem;font-size:var(--t-xs);color:var(--muted)}.modal__panel--schedule-exception{width:min(700px,100%)}.exception-ranges{display:grid;gap:.55rem}.exception-range{display:grid;grid-template-columns:minmax(180px,1fr) 105px 105px 34px;gap:.45rem;align-items:center}.exception-range__delete{width:34px;height:34px;border:1px solid var(--border-soft);border-radius:50%;background:transparent;color:var(--st-cancel-bar);font-size:1.25rem}.modal__foot--split{justify-content:space-between}.modal__actions{display:flex;gap:.6rem}.schedule-conflicts{z-index:95}.exception-slots{display:grid;gap:.45rem;margin-top:1rem}.exception-slots .btn{justify-content:flex-start;text-align:left}.exception-pagination{display:flex;justify-content:space-between;gap:.5rem;margin-top:1rem}.cap__tag--exception{background:var(--st-pending-bg);color:var(--ink)}.month__cell.is-exception{box-shadow:inset 0 3px 0 var(--st-pending-bar)}.switch{position:relative;width:42px;height:24px;border-radius:999px;border:0;background:var(--warm-sand);cursor:pointer;flex:none;transition:background .18s var(--ease)}.switch:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--bone-white);box-shadow:var(--shadow-sm);transition:transform .18s var(--ease)}.switch[aria-pressed=true]{background:var(--accent-ink)}.switch[aria-pressed=true]:after{transform:translateX(18px)}.tlist__status{font-size:var(--t-xs);color:var(--muted);display:flex;align-items:center;gap:.5rem}.formatted-date-input{position:relative}.formatted-date-input .input{padding-right:2.8rem}.formatted-date-input__picker{position:absolute;top:50%;right:.35rem;transform:translateY(-50%);width:32px;height:32px;background:transparent}.formatted-date-input__picker .ic{width:17px;height:17px}.formatted-date-input__native{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.months-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.months-strip .mini{border:1px solid var(--border-soft);border-radius:var(--r-md);padding:.9rem;background:var(--bone-white)}.settings{max-width:1120px}.settings__eyebrow,.settings__overline{font-size:var(--t-xs);font-weight:700;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--accent-ink)}.settings__layout{display:grid;grid-template-columns:180px minmax(0,1fr);gap:2rem;align-items:start}.settings__menu{position:sticky;top:calc(var(--topbar-h) + 1.25rem);display:grid;gap:3px;padding:.45rem;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-md)}.settings__menu a{padding:.55rem .65rem;border-radius:var(--r-sm);font-size:var(--t-sm);font-weight:600;color:var(--ink-soft)}.settings__menu a:hover{background:var(--mocha-05);color:var(--ink)}.settings__content{display:grid;gap:1.5rem}.settings__identity{display:grid;grid-template-columns:auto 1fr auto;gap:.85rem;align-items:center;padding:1.1rem 1.25rem;background:var(--sage-14);border:1px solid var(--sage-22);border-radius:var(--r-md)}.settings__avatar{width:46px;height:46px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-ink);color:var(--bone-white);font-size:var(--t-sm);font-weight:700}.settings__group>h2,.settings__identity h2,.settings__signout h2{font-size:1.2rem}.settings__identity p:not(.settings__overline),.settings__signout p{font-size:var(--t-sm);color:var(--ink-soft)}.settings__org{font-size:var(--t-xs);font-weight:600;color:var(--accent-ink);text-align:right}.settings__group{scroll-margin-top:calc(var(--topbar-h) + 1rem)}.settings__group>h2{margin:0 0 .65rem}.settings__list{overflow:hidden;border:1px solid var(--border-soft);border-radius:var(--r-md);background:var(--surface)}.settings__item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.85rem;align-items:center;padding:1rem 1.1rem;border-bottom:1px solid var(--border-soft)}.settings__item:last-child{border-bottom:0}.settings__item-icon{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;color:var(--accent-ink);background:var(--sage-14);border-radius:var(--r-sm)}.settings__item-icon .ic{width:18px;height:18px}.settings__item h3{font-size:var(--t-sm);font-weight:700}.settings__item p{margin-top:.15rem;font-size:var(--t-xs);color:var(--muted);line-height:1.4}.settings__value{flex:none;font-size:var(--t-xs);font-weight:700;color:var(--accent-ink);background:var(--sage-14);border-radius:var(--r-pill);padding:.25rem .5rem;white-space:nowrap}.settings__signout{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.1rem 1.25rem;border:1px solid var(--border-soft);border-radius:var(--r-md);background:var(--surface)}.app__menu{display:none;width:40px;height:40px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bone-white);color:var(--ink);align-items:center;justify-content:center}.app__menu .ic{width:20px;height:20px}.crm{padding:var(--space-3);display:grid;grid-template-columns:300px minmax(0,1fr);gap:1.25rem;align-items:start}.crm__list{display:grid;gap:.7rem;align-content:start}.crm__list-head{display:flex;align-items:center;gap:.35rem;padding:0 .15rem;color:var(--muted);font-size:var(--t-xs);font-weight:600}.crm__info{display:inline-flex;color:var(--muted);cursor:help}.crm__info .ic{width:14px;height:14px}.crm__search{position:relative}.crm__search .ic{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted);pointer-events:none}.crm__search input{width:100%;min-height:44px;padding:.55rem .8rem .55rem 2.1rem;font-family:inherit;font-size:var(--t-sm);color:var(--ink);background:var(--bone-white);border:1px solid var(--border);border-radius:var(--r-sm)}.crm__search input:focus{outline:none;border-color:var(--accent-ink);box-shadow:0 0 0 3px var(--sage-22)}.crm__roster{display:grid;gap:2px;padding:6px;border:1px solid var(--border-soft);border-radius:var(--r-md);background:var(--surface)}.crm-client{display:grid;grid-template-columns:auto 1fr auto;gap:.65rem;align-items:center;width:100%;text-align:left;cursor:pointer;padding:.55rem .6rem;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;transition:background .16s var(--ease),border-color .16s var(--ease)}.crm-client:hover{background:var(--mocha-05)}.crm-client.is-active{background:var(--sage-14);border-color:var(--sage-22)}.crm-client .avatar{width:32px;height:32px;font-size:var(--t-xs)}.crm-client__name{display:block;font-size:var(--t-sm);font-weight:600;color:var(--ink);line-height:1.2}.crm-client__meta{display:block;font-size:var(--t-xs);color:var(--muted);line-height:1.25}.crm-client__count{font-size:var(--t-xs);font-weight:700;color:var(--accent-ink);font-feature-settings:"tnum"}.crm-empty{padding:1rem;font-size:var(--t-sm);color:var(--muted);text-align:center}.crm__main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem;align-items:start}.crm__main .panel{margin-bottom:0}.crm__more{margin-top:.1rem}.crm__loading{min-height:180px;display:grid;place-items:center;color:var(--muted);font-size:var(--t-sm)}.crm__col{display:grid;gap:1.25rem;align-content:start}.crm-filters{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.1rem}.crm-filter{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--ink-soft);border-radius:var(--r-sm);border:1px solid var(--border);background:transparent;transition:all .16s var(--ease)}.crm-filter .ic{width:17px;height:17px}.crm-filter:hover{border-color:var(--ink);color:var(--ink)}.crm-filter[aria-pressed=true]{background:var(--ink);color:var(--on-primary);border-color:var(--ink)}.crm-tl{display:grid}.crm-tl__item{display:grid;grid-template-columns:30px 1fr;gap:.7rem}.crm-tl__rail{display:flex;flex-direction:column;align-items:center}.crm-tl__dot{width:30px;height:30px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-soft);background:var(--bone-white);color:var(--accent-ink)}.crm-tl__dot .ic{width:15px;height:15px}.crm-tl__line{flex:1 1;width:2px;background:var(--border-soft);margin-top:2px;min-height:12px}.crm-tl__item:last-child .crm-tl__line{display:none}.crm-tl__card{border:1px solid var(--border-soft);border-left:3px solid var(--st-confirm-bar);border-radius:var(--r-sm);background:var(--surface);padding:.6rem .8rem;margin-bottom:.9rem}.crm-tl__title{font-size:var(--t-sm);font-weight:600;color:var(--ink);line-height:1.3}.crm-tl__when{font-size:var(--t-xs);color:var(--muted);font-feature-settings:"tnum"}.crm-tl__msg{font-size:var(--t-sm);color:var(--ink-soft);font-style:italic;margin-top:.35rem}.crm-tl__chip{display:inline-flex;align-items:center;gap:.3rem;margin-top:.45rem;font-size:var(--t-xs);font-weight:600;padding:2px 9px;border-radius:var(--r-pill);background:var(--st-confirm-bg-2);color:var(--accent-ink)}.crm-tl__chip .ic{width:12px;height:12px}.crm-tl__item.is-cancelled .crm-tl__dot{color:#b42318}.crm-tl__item.is-cancelled .crm-tl__card{border-left-color:var(--st-cancel-bar)}.crm-tl__item.is-cancelled .crm-tl__chip{background:var(--st-cancel-bg);color:#b42318}.crm-tl__item.is-blocked .crm-tl__dot{color:#7a5a3f}.crm-tl__item.is-blocked .crm-tl__card{border-left-color:var(--st-pending-bar)}.crm-tl__item.is-blocked .crm-tl__chip{background:var(--st-pending-bg);color:#7a5a3f}.crm-tl__item.is-unblocked .crm-tl__dot{color:#2f6b4f}.crm-tl__item.is-unblocked .crm-tl__card{border-left-color:var(--st-confirm-bar)}.crm-tl__item.is-unblocked .crm-tl__chip{background:var(--st-confirm-bg-2);color:#2f6b4f}.sentiment__cta{display:grid;gap:.6rem}.sentiment__badge{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:var(--r-pill);background:var(--sage-14);color:var(--accent-ink)}.sentiment{display:grid;gap:.85rem}.sentiment__score{display:flex;align-items:center;gap:.75rem}.sentiment__emoji{font-size:1.9rem;line-height:1}.sentiment__label{display:block;font-family:var(--font-display);font-size:1.2rem;line-height:1.1}.sentiment__label.is-positive{color:var(--accent-ink)}.sentiment__label.is-neutral{color:#7a5a3f}.sentiment__label.is-negative{color:var(--st-cancel-bar)}.sentiment__sub{display:block;font-size:var(--t-xs);color:var(--muted);margin-top:1px}.sentiment__gauge{display:flex;height:8px;border-radius:999px;overflow:hidden;background:var(--surface-2)}.sentiment__gauge>span{display:block;height:100%}.sentiment__seg--neg{background:var(--st-cancel-bar)}.sentiment__seg--neu{background:var(--st-pending-bar)}.sentiment__seg--pos{background:var(--st-confirm-bar)}.sentiment__scale{display:flex;justify-content:space-between;gap:.5rem;margin-top:.35rem;font-size:.66rem;color:var(--muted)}.sentiment__insight{font-size:var(--t-sm);color:var(--ink-soft);line-height:1.5}@media (max-width:1180px){.crm__main{grid-template-columns:1fr}}@media (max-width:1080px){.crm{grid-template-columns:1fr}}@media (max-width:1440px){.cal:not(.cal--day){--visible-cols:var(--cols-1440);--week-columns:var(--week-columns-1440);--week-min-width:var(--min-width-1440)}.cal:not(.cal--day) [data-responsive-collapse-rank="1"]{display:none}}@media (max-width:1280px){.cal:not(.cal--day){--visible-cols:var(--cols-1280);--week-columns:var(--week-columns-1280);--week-min-width:var(--min-width-1280)}.cal:not(.cal--day) [data-responsive-collapse-rank="2"]{display:none}}@media (max-width:1200px){.cal:not(.cal--day){--visible-cols:var(--cols-1200);--week-columns:var(--week-columns-1200);--week-min-width:var(--min-width-1200)}.cal:not(.cal--day) [data-responsive-collapse-rank="3"],.cal:not(.cal--day) [data-responsive-collapse-rank="4"],.cal:not(.cal--day) [data-responsive-collapse-rank="5"],.cal:not(.cal--day) [data-responsive-collapse-rank="6"]{display:none}}@media (max-width:1024px){.app{grid-template-columns:1fr}.app__sidebar{position:fixed;left:0;top:0;z-index:80;width:var(--sidebar-w);transform:translateX(-100%);transition:transform .26s var(--ease);box-shadow:var(--shadow-lg)}.app__sidebar.is-open{transform:translateX(0)}.app__menu{display:inline-flex}}@media (max-width:720px){.datenav{grid-template-columns:38px 38px 38px}.datenav__today-icon{display:block}.datenav__today-label{display:none}.topbar{gap:.6rem}.topbar__title{flex-basis:calc(100% - 3.1rem)}.topbar__title h1{font-size:1.15rem}.legend{gap:.6rem 1rem}.form-grid{grid-template-columns:1fr}.block-recurrence__frequency{grid-template-columns:repeat(2,minmax(0,1fr))}.block-recurrence__rule--weekly{grid-template-columns:1fr}.block-recurrence__pattern{align-items:center}.block-recurrence__pattern .select[name=weekday]{min-width:118px}.appointment-duration__controls{grid-template-columns:auto minmax(90px,1fr) auto}.appointment-duration__end{grid-column:1/-1;justify-self:start}.avail__row{grid-template-columns:1fr;gap:.6rem}.exception-range{grid-template-columns:minmax(0,1fr) 90px 90px 34px}.modal__foot--split{align-items:stretch;flex-direction:column-reverse}.modal__actions{display:grid;grid-template-columns:1fr 1fr}.month__cell{min-height:86px}.settings__layout{grid-template-columns:1fr;gap:1rem}.settings__menu{position:static;display:flex;overflow-x:auto}.settings__menu a{white-space:nowrap}.settings__identity{grid-template-columns:auto minmax(0,1fr)}.settings__org{grid-column:2;text-align:left}.settings__item{grid-template-columns:auto minmax(0,1fr)}.settings__value{grid-column:2;justify-self:start}.settings__signout{align-items:flex-start;flex-direction:column}}.login{min-height:100vh;display:grid;place-items:center;padding:var(--space-3);background:radial-gradient(1200px 600px at 80% -10%,var(--sage-14),transparent 60%),var(--bg)}.login__card{min-width:0;width:min(420px,100%);background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:2rem 2rem 1.6rem}.login__brand{display:flex;flex-direction:column;margin-bottom:1.4rem}.login__brand .brand__mark{font-family:var(--font-display);font-size:1.5rem;color:var(--ink)}.login__brand .brand__mark b{color:var(--accent-ink);font-weight:400}.login__brand small{font-size:var(--t-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--muted);margin-top:2px}.login__card h1{font-size:1.7rem}.login__intro{overflow-wrap:anywhere;font-size:var(--t-sm);margin:.3rem 0 1.4rem}.login__card .field{margin-bottom:1rem}.login__submit{width:100%;justify-content:center;margin-top:.4rem}.login__error{font-size:var(--t-sm);color:var(--st-cancel-bar);background:var(--st-cancel-bg);border:1px solid rgba(181,103,90,.3);border-radius:var(--r-sm);padding:.6rem .8rem;margin-bottom:1rem}.login__hint{font-size:var(--t-xs);margin-top:1rem;text-align:center}.login__hint code{font-family:var(--font-sans);font-weight:600;color:var(--ink-soft)}.login__card--access-refused{width:min(460px,100%)}.login__card--access-refused .login__intro{margin-bottom:1.4rem}.tenant-not-found{min-height:100vh;display:grid;place-items:center;padding:var(--space-3);background:var(--bg)}.tenant-not-found__card{width:min(520px,100%);background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:2rem}.tenant-not-found__card .brand__mark{display:block;font-family:var(--font-display);font-size:1.35rem;color:var(--ink);margin-bottom:1.2rem}.tenant-not-found__card .brand__mark b{color:var(--accent-ink);font-weight:400}.tenant-not-found__card h1{font-size:1.7rem;margin-bottom:.45rem}.tenant-not-found__card p{color:var(--ink-soft);line-height:1.6;font-size:var(--t-sm)}.agenda-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:200;background:var(--deep-mocha);color:var(--bone-white);padding:.85rem 1.25rem;border-radius:var(--r-pill);box-shadow:var(--shadow-lg);font-size:var(--t-sm);font-weight:500;max-width:90vw;display:flex;align-items:center;gap:.6rem}.agenda-toast .ic{width:18px;height:18px}.agenda-undo{position:fixed;z-index:80;left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));max-width:560px;margin-inline:auto;overflow:hidden;color:var(--bone-white);background:var(--deep-mocha);border-radius:10px;box-shadow:0 12px 32px rgb(40 28 22/28%)}.agenda-undo__row{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px 8px;font-size:13px;line-height:1.4;font-weight:650}.agenda-undo__row button{flex:none;min-height:36px;padding-inline:10px;color:var(--bone-white);background:transparent;border:1px solid color-mix(in srgb,var(--bone-white) 55%,transparent);border-radius:7px;font:inherit;cursor:pointer}.agenda-undo__row button:focus-visible{outline:2px solid var(--bone-white);outline-offset:2px}.agenda-undo__track{height:4px;background:rgb(255 255 255/18%)}.agenda-undo__track span{display:block;width:100%;height:100%;transform-origin:left;background:var(--accent)}@media (prefers-reduced-motion:reduce){.agenda-undo__track span{transition:none}}.legend .ic{width:14px;height:14px;flex:none}.blocked-client-decision{width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;margin:auto;border:1px solid var(--border);border-radius:16px;background:var(--bone-white,#fffcf8);color:var(--ink);overflow-y:auto}.blocked-client-decision::backdrop{background:rgba(30,25,22,.45)}.blocked-client-decision__content{padding:24px;display:grid;gap:20px}.blocked-client-decision h2{font-size:24px;margin:0}.blocked-client-decision__notice{padding:14px;border:1px solid rgba(181,103,90,.55);border-radius:8px;background:#f3ddd7;overflow-wrap:anywhere}.blocked-client-decision p{margin:8px 0 0;line-height:1.5}.blocked-client-decision__reason{max-height:22dvh;overflow-y:auto;white-space:pre-wrap}.blocked-client-decision__option{display:flex;align-items:flex-start;gap:12px;cursor:pointer;min-height:44px}.blocked-client-decision__option input{width:20px;height:20px;flex-shrink:0;margin-top:2px;accent-color:var(--ink)}.blocked-client-decision__option span span{display:block;font-size:13px;margin-top:4px}.blocked-client-decision__error{color:var(--danger,#9e2924);font-size:14px}.blocked-client-decision__actions{display:flex;justify-content:flex-end;gap:12px}.blocked-client-decision__actions .btn{min-height:44px}.blocked-client-decision :focus-visible{outline:2px solid var(--ink);outline-offset:3px}.m-sheet:has(.blocked-client-decision) .m-sheet__head,.m-sheet:has(.blocked-client-decision) .mtabs,.modal:has(.blocked-client-decision) .modal__head,.modal:has(.blocked-client-decision) .mtabs{display:none}@media (max-width:480px){.blocked-client-decision__content{padding:20px;gap:16px}.blocked-client-decision__actions .btn{flex:1 1}}.settings-permission-field{cursor:help;border-radius:8px}.settings-permission-field:focus-visible{outline:2px solid currentColor;outline-offset:4px}.settings-permission-field input:disabled{color:var(--ink);opacity:1;pointer-events:none;cursor:help;-webkit-text-fill-color:currentColor}.settings-permission-tooltip{position:fixed;z-index:1000;width:min(360px,calc(100vw - 32px));padding:12px 16px;border-radius:10px;background:#3d302a;color:#fffaf5;font-size:13px;line-height:1.6;box-shadow:0 4px 20px #21181026;overflow-wrap:anywhere}.team-skills{border-bottom:1px solid var(--line,#d8ddd8);padding-bottom:1.5rem;margin-bottom:1.5rem}.team-skills h3{margin-bottom:1rem}.team-skills fieldset{border:0;padding:0;margin:1rem 0}.team-skills legend{font-weight:600;margin-bottom:.25rem}.team-skills__choice{display:flex;align-items:center;gap:.75rem;min-height:44px;cursor:pointer}.team-skills__choice input{width:18px;height:18px}.team-skills__actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}.team-skills .hint{display:block}.team-skills button:focus-visible,.team-skills input:focus-visible,.team-skills select:focus-visible{outline:3px solid var(--green,#315644);outline-offset:3px}.login--neutral{--muted:var(--ink-soft);--focus:var(--accent-ink)}.login--neutral .login__card{overflow-wrap:anywhere}.login--neutral .btn{min-height:44px}.oauth-change-account{margin:.6rem 0 1rem}.login--neutral .booking-actions{display:flex;gap:12px;flex-wrap:wrap}.login--neutral .booking-actions .btn{flex:1 1}:root{--font-display:var(--font-forum),Georgia,serif;--font-sans:var(--font-dm-sans),system-ui,sans-serif}body{min-height:100vh}