:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#171717;background:#f5f5f3;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button{border:0;font:inherit}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f5f5f3}.login-card{width:min(440px,100%);display:grid;gap:18px;padding:24px;border:1px solid #deded8;background:#fff}.login-card h1{margin:4px 0 8px;font-size:32px;line-height:1}.login-card p{margin:0;color:#5d5a54;line-height:1.5}.login-card label,.settings-field{display:grid;gap:7px}.login-card label span,.settings-field span{color:#76736d;font-size:12px;text-transform:uppercase;font-weight:800}.login-card input,.settings-field input{min-height:42px;border:1px solid #deded8;padding:0 10px;background:#fff;color:#171717;font:inherit}.login-card .primary-button{width:100%}.login-card .primary-button:disabled{opacity:.7;cursor:wait}.auth-error{padding:10px 12px;border:1px solid #f0c7bd;background:#fff3f0;color:#a52e15;font-size:13px}.login-hint{padding:10px 12px;border:1px solid #e2e0d8;background:#f7f7f3;font-size:12px}.app-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr);background:#f5f5f3}.app-shell.embed-mode{display:block;min-height:100vh;background:#fff}.embed-mode .main-panel{padding:0}.embed-mode .module-page{border:0;padding:0}.embed-mode .booking-brand{margin:0 0 18px}.embed-mode .booking-columns{padding:0 18px 18px}.sidebar{min-height:100vh;padding:24px 18px;border-right:1px solid #deded8;background:#fbfbf9;display:flex;flex-direction:column;gap:26px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border:1px solid #202020;background:#111;color:#fff;font-weight:800;letter-spacing:0}.brand strong,.brand span,.booking-preview strong,.booking-preview span{display:block}.brand strong{font-size:15px}.brand span,.booking-preview span,.eyebrow,.muted{color:#76736d}.brand span,.booking-preview span{font-size:12px}.side-nav{display:grid;gap:4px}.side-nav button,.outline-button,.primary-button,.danger-button,.icon-button,.pill,.quick-create button,.toast button{cursor:pointer}.side-nav button{height:42px;display:flex;align-items:center;gap:10px;padding:0 12px;color:#4f4d49;background:transparent;text-align:left}.side-nav button:hover,.side-nav button.active{background:#eeeeea;color:#151515}.booking-preview{margin-top:auto;border:1px solid #deded8;padding:16px;background:#fff;color:#171717;cursor:pointer;text-align:left}.booking-preview strong{margin:8px 0 6px;font-size:18px}.booking-preview p{margin:0;color:#5d5a54;font-size:13px;line-height:1.45}.main-panel{min-width:0;padding:24px}.topbar{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.eyebrow,.topbar span,.calendar-toolbar p,.day-heading span,.service-summary span,.panel-header span{font-size:12px;text-transform:uppercase;letter-spacing:0;font-weight:700}.eyebrow,.topbar h1,.topbar span{margin:0}.topbar h1{margin-top:3px;font-size:clamp(26px,3vw,40px);line-height:1}.topbar span{display:inline-block;margin-top:7px;color:#696761;text-transform:none;font-weight:500}.top-actions,.calendar-toolbar,.calendar-toolbar>div,.panel-actions{display:flex;align-items:center;gap:10px}.icon-button,.outline-button,.primary-button,.danger-button,.pill{height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d9d9d2;background:#fff;color:#151515}.icon-button{width:40px}.icon-button.small{width:34px;height:34px}.outline-button{padding:0 14px}.primary-button{padding:0 16px;border-color:#111;background:#111;color:#fff;font-weight:700}.danger-button{padding:0 16px;border-color:#f0c7bd;background:#fff3f0;color:#a52e15}.pill{height:34px;padding:0 14px;border-radius:999px;background:#f2f2ee}.active-pill{background:#111;border-color:#111;color:#fff}.workspace{display:grid;grid-template-columns:minmax(760px,1fr) 340px;gap:18px;align-items:start}.is-hidden{display:none}.module-page{background:#fff;border:1px solid #deded8;padding:22px}.module-grid,.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.data-card,.client-row,.booking-card{border:1px solid #deded8;background:#fff}.data-card{padding:18px}.data-card.wide{min-width:0}.data-card span,.booking-card>span,.client-row span,.meta-row span{color:#76736d;font-size:12px}.data-card>span,.booking-card>span{display:block;text-transform:uppercase;font-weight:800}.data-card h2,.booking-card h2{margin:6px 0 10px;font-size:21px}.data-card p{color:#56534d;line-height:1.5}.data-card-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.data-card-header h2{margin:4px 0 0}.data-card-header strong{white-space:nowrap;font-size:18px}.meta-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.meta-row span{padding:6px 8px;border:1px solid #e2e0d8;background:#f7f7f3}.availability-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:14px}.availability-list{display:grid;gap:0;border-top:1px solid #e5e3dc}.availability-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;padding:12px 0;border-bottom:1px solid #e5e3dc}.availability-row span{color:#4b4944}.client-table{display:grid;gap:8px}.client-row{min-height:68px;display:grid;grid-template-columns:minmax(220px,1fr) minmax(140px,.7fr) 120px 120px;gap:12px;align-items:center;padding:12px}.client-row strong,.client-row span{display:block}.public-booking{background:#fff}.booking-brand{min-height:150px;display:grid;place-items:center;align-content:center;border-bottom:1px solid #e8e6df;margin:-22px -22px 22px}.booking-brand strong{font-size:32px;letter-spacing:0}.booking-brand span{color:#c39b61;font-size:23px;letter-spacing:0}.booking-brand em{margin-top:16px;font-style:normal;font-weight:800;color:#45423d}.booking-columns{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:14px}.booking-card{padding:16px}.service-picker,.booking-form,.time-slots{display:grid;gap:8px;margin-top:14px}.service-picker button,.time-slots button,.booking-days button{border:1px solid #deded8;background:#fbfbf9;color:#171717;cursor:pointer;text-align:left}.service-picker button{padding:12px}.service-picker strong,.service-picker em,.service-picker small{display:block}.service-picker em,.service-picker small{margin-top:5px;color:#5d5a54;font-style:normal}.service-picker .selected-service,.time-slots .selected-time,.booking-days .selected-day{border-color:#111;background:#111;color:#fff}.service-picker .selected-service em,.service-picker .selected-service small{color:#deded8}.booking-days{display:grid;grid-template-columns:repeat(7,minmax(44px,1fr));gap:6px;margin-top:14px}.booking-days button{min-height:58px;text-align:center}.booking-days strong,.booking-days em{display:block;font-style:normal}.time-slots{grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}.time-slots button{min-height:38px;text-align:center}.time-slots p{color:#76736d}.booking-form input{min-height:42px;border:1px solid #deded8;padding:0 10px;font:inherit}.booking-summary{margin:14px 0;padding:12px;background:#f7f7f3;border:1px solid #e2e1d9}.booking-summary strong,.booking-summary span{display:block}.booking-summary span{margin-top:5px;color:#5d5a54}.confirm-booking{width:100%}.embed-panel{margin-top:18px;border:1px solid #deded8;background:#fbfbf9}.embed-copy{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px;border-bottom:1px solid #e4e2da}.embed-copy span,.embed-code span,.sync-field span,.sync-output span,.sync-meta span{display:block;color:#76736d;font-size:12px;text-transform:uppercase;font-weight:800}.embed-copy h2{margin:5px 0 8px;font-size:22px}.embed-copy p{max-width:660px;margin:0;color:#56534d;line-height:1.5}.embed-actions,.sync-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.embed-actions a,.sync-actions a{text-decoration:none}.embed-code{display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;align-items:start;margin:18px;padding:13px;border:1px solid #d9d7cf;background:#fff}.embed-code code,.sync-output code{color:#26231f;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.45;word-break:break-all}.widget-preview{margin:18px;border:1px solid #d8d6ce;background:#fff}.preview-bar{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;border-bottom:1px solid #e4e2da}.preview-bar strong{font-size:13px}.preview-bar span{color:#76736d;font-size:12px}.widget-preview iframe{display:block;width:100%;height:520px;border:0}.sync-card{grid-column:1 / -1}.sync-card .data-card-header svg{flex:0 0 auto;color:#c39b61}.sync-field{display:grid;gap:7px;margin-top:16px}.sync-status{display:grid;grid-template-columns:max-content max-content minmax(0,1fr);gap:8px;align-items:center;margin-top:14px;padding:10px 12px;border:1px solid #deded8;background:#fff}.sync-status span{color:#76736d;font-size:12px;text-transform:uppercase;font-weight:800}.sync-status strong{min-height:24px;display:inline-flex;align-items:center;padding:0 8px;background:#f0eee6;color:#34312d;font-size:12px}.sync-status.connected strong{background:#e8f3e5;color:#275325}.sync-status.offline strong{background:#fff3f0;color:#a52e15}.sync-status em{min-width:0;color:#56534d;font-size:13px;font-style:normal}.sync-field input{min-height:42px;border:1px solid #deded8;padding:0 10px;background:#fff;font:inherit}.sync-output{display:grid;gap:7px;margin:14px 0;padding:12px;border:1px solid #d9d7cf;background:#fbfbf9}.sync-actions{justify-content:flex-start}.sync-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.sync-meta span,.sync-meta strong{min-height:30px;display:inline-flex;align-items:center;padding:0 9px;border:1px solid #e2e0d8;background:#f7f7f3}.sync-meta strong{color:#34312d;font-size:12px}.notification-card{display:grid;gap:12px}.notification-card p{margin:0 0 2px}.settings-toggle{min-height:38px;display:flex;align-items:center;gap:10px;padding:8px 0;color:#34312d;font-size:14px}.settings-toggle input{width:18px;height:18px;accent-color:#111}.settings-save{width:100%;margin-top:10px}.appointment-dock{display:grid;grid-template-columns:180px minmax(0,1fr);gap:14px;align-items:end;margin:-2px 0 18px;padding:0 2px 6px}.dock-label span,.dock-label strong{display:block}.dock-label span{color:#76736d;font-size:12px;text-transform:uppercase;font-weight:800}.dock-label strong{margin-top:4px;font-size:14px}.dock-shelf{position:relative;min-height:68px;display:flex;align-items:flex-end;gap:10px;padding:8px 14px 12px;border:1px solid #d8d6ce;background:linear-gradient(#fbfbf9 0 75%,#efeee8 75% 100%);overflow:hidden}.dock-shelf:after{content:"";position:absolute;left:10px;right:10px;bottom:10px;height:6px;border-top:1px solid #beb9aa;border-bottom:2px solid #d3d0c7;background:#e5e2d8}.dock-empty{position:relative;z-index:1;color:#77746f;font-size:13px}.dock-tile{position:relative;z-index:2;min-width:220px;min-height:46px;display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #171717;background:#181818;color:#fff;cursor:grab;box-shadow:0 8px 18px #00000029;animation:dockSettle .9s ease-out both}.dock-tile span,.dock-tile strong,.dock-tile em{display:block}.dock-tile strong,.dock-tile em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dock-tile strong{font-size:12px}.dock-tile em{margin-top:2px;opacity:.72;font-size:11px;font-style:normal}.dock-tile.flying-to-dock{pointer-events:none;animation:flyToDock .62s cubic-bezier(.18,.9,.2,1) both;transform-origin:center}.appointment-dock.is-focus .dock-shelf{border-color:#b8a373;box-shadow:0 0 0 3px #c7a45b29}.calendar-card,.details-panel{background:#fff;border:1px solid #deded8}.calendar-toolbar{justify-content:space-between;gap:16px;min-height:66px;padding:14px 16px;border-bottom:1px solid #e7e7e1}.calendar-toolbar p{margin:0;color:#6e6b65;text-align:right;line-height:1.4;max-width:520px}.calendar-header-row{display:grid;grid-template-columns:64px repeat(7,minmax(92px,1fr));border-bottom:1px solid #d7d7cf}.time-gutter,.day-heading{height:58px}.day-heading{display:flex;flex-direction:column;justify-content:center;gap:3px;padding:0 12px;border-left:1px solid #e1e1dc}.day-heading strong{font-size:19px}.calendar-scroll{display:grid;grid-template-columns:64px minmax(644px,1fr);max-height:calc(100vh - 230px);overflow:auto}.time-column,.week-grid{position:relative}.time-column{background:#fbfbf9;border-right:1px solid #d7d7cf}.time-label{position:absolute;right:10px;transform:translateY(-8px);color:#6f6c66;font-size:12px}.week-grid{min-width:644px;background:linear-gradient(to right,transparent calc(100% / 7 - 1px),#dddcd5 calc(100% / 7 - 1px)) 0 0 / calc(100% / 7) 100%,#ecece7;-webkit-user-select:none;user-select:none;touch-action:none}.week-grid.is-grabbing,.week-grid.is-grabbing *{cursor:grabbing}.day-lane{position:absolute;top:0;bottom:0;width:calc(100% / 7);pointer-events:none}.available-band{position:absolute;left:0;right:0;background:#fff;border-top:1px solid #f0f0ea;border-bottom:1px solid #f0f0ea}.hour-line{position:absolute;left:0;right:0;height:1px;background:#d9d9d2;pointer-events:none}.hour-line:after{content:"";position:absolute;left:0;right:0;top:36px;border-top:1px dashed #d6d6ce}.calendar-item{position:absolute;z-index:2;min-height:34px;display:flex;gap:4px;padding:8px 8px 8px 4px;border:1px solid #1f1f1f;background:#181818;color:#fff;overflow:hidden;box-shadow:0 8px 18px #00000024;cursor:grab}.calendar-item.block{z-index:1;border-color:#afa899;background:#d8d4ca;color:#24221f;box-shadow:none}.calendar-item.appointment{z-index:3}.calendar-item.selected{z-index:4;outline:3px solid #c7a45b;outline-offset:2px}.calendar-item.invalid{border-color:#d9482f;background:#ffe3dc;color:#8e1d0c}.draft-block{opacity:.78;border-style:dashed}.item-grip{display:flex;align-items:flex-start;padding-top:2px;opacity:.65}.item-content{min-width:0;display:grid;gap:2px}.item-content strong,.item-content span,.item-content em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-content strong{font-size:12px}.item-content span,.item-content em{font-size:11px}.item-content em{font-style:normal;opacity:.78}.resize-handle{position:absolute;left:8px;right:8px;bottom:2px;height:9px;border-radius:0;background:transparent;cursor:ns-resize}.resize-handle:after{content:"";position:absolute;left:36%;right:36%;bottom:2px;height:2px;background:currentColor;opacity:.55}.details-panel{min-height:570px;padding:20px;position:sticky;top:24px}.details-panel:has(.empty-panel){min-height:260px;animation:panelCollapse .26s ease-out both}.panel-header{display:flex;align-items:center;justify-content:space-between}.details-panel h2{margin:18px 0 8px;font-size:24px}.details-panel p{line-height:1.5}.info-stack{display:grid;gap:12px;margin:24px 0}.info-stack div{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;align-items:center;color:#45423d;font-size:14px}.service-summary{padding:16px;background:#f7f7f3;border:1px solid #e2e1d9}.service-summary strong{display:block;margin-top:4px;font-size:22px}.service-summary p{margin:10px 0 0;color:#5d5a54}.admin-override{margin-top:14px;padding:14px;border:1px solid #d9d9d2;background:#fbfbf9}.admin-override span,.admin-override strong{display:block}.admin-override span{color:#6f6c66;font-size:12px;text-transform:uppercase;font-weight:700}.admin-override strong{margin:4px 0 10px;font-size:14px}.admin-override button{width:100%;min-height:38px;display:flex;align-items:center;gap:8px;margin-top:7px;padding:8px 10px;border:1px solid #deded8;background:#fff;color:#171717;cursor:pointer;text-align:left}.panel-actions{margin-top:18px}.empty-panel{min-height:430px;display:grid;place-items:center;align-content:center;text-align:center;color:#696761}.empty-panel h2{margin-bottom:0;color:#202020}.empty-panel p{max-width:240px}.quick-create{position:fixed;z-index:5;width:300px;padding:16px;border:1px solid #d7d7cf;background:#fff;box-shadow:0 16px 40px #0000002e}.quick-create span,.quick-create strong{display:block}.quick-create span{color:#6f6c66;font-size:12px;text-transform:uppercase;font-weight:700}.quick-create strong{margin:4px 0 12px;font-size:18px}.quick-create button:not(.popover-close){width:100%;min-height:38px;display:flex;align-items:center;gap:8px;padding:8px 10px;margin-top:7px;border:1px solid #deded8;background:#fbfbf9;color:#171717;text-align:left}.popover-close{position:absolute;top:8px;right:8px;width:28px;height:28px;display:grid;place-items:center;background:transparent}.toast{position:fixed;left:50%;bottom:24px;z-index:10;transform:translate(-50%);min-height:46px;max-width:min(680px,calc(100vw - 32px));display:flex;align-items:center;gap:12px;padding:9px 10px 9px 16px;background:#111;color:#fff;box-shadow:0 16px 44px #00000047}.toast span{min-width:0}.toast button{height:30px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;background:#fff;color:#111}.toast-close{width:30px;padding:0}.edge-cue{position:fixed;top:50%;z-index:12;transform:translateY(-50%);padding:12px 14px;background:#111;color:#fff;font-size:12px;font-weight:800;text-transform:uppercase;box-shadow:0 12px 34px #00000038;animation:edgePulse .56s ease-out both;pointer-events:none}.edge-cue.prev{left:12px}.edge-cue.next{right:12px}@keyframes flyToDock{0%{opacity:0;transform:translate(44vw,120px) scale(1.06)}72%{opacity:1;transform:translateY(-5px) scale(1)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes dockSettle{0%{transform:translateY(-4px)}50%{transform:translateY(2px)}to{transform:translateY(0)}}@keyframes panelCollapse{0%{opacity:.9;transform:translate(0)}to{opacity:1;transform:translate(0)}}@keyframes edgePulse{0%{opacity:0;transform:translateY(-50%) scale(.94)}35%{opacity:1;transform:translateY(-50%) scale(1)}to{opacity:0;transform:translateY(-50%) scale(1)}}@media(max-width:1120px){.app-shell{grid-template-columns:1fr}.sidebar{min-height:auto;flex-direction:row;align-items:center;overflow:auto}.side-nav{grid-auto-flow:column;grid-auto-columns:max-content}.booking-preview{display:none}.workspace,.appointment-dock{grid-template-columns:1fr}.details-panel{position:static}}@media(max-width:760px){.main-panel{padding:14px}.topbar,.calendar-toolbar{align-items:flex-start;flex-direction:column}.top-actions{width:100%;flex-wrap:wrap}.calendar-toolbar p{text-align:left}.calendar-scroll{max-height:620px}.sidebar{padding:14px}}
