:root{--text:#4b5563;--text-h:#111827;--bg:#f7f7fc;--border:#e5e7eb;--accent:#b03c18;--accent-soft:#f9efed;--code-bg:#fff;--sans:"Inter", system-ui, sans-serif;--display:"Cormorant Garamond", Georgia, "Times New Roman", serif;--mono:ui-monospace, Consolas, monospace;font:16px/1.5 var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}body{min-height:100svh;margin:0}body.body--nav-open{overflow:hidden}#root{min-height:100svh}h1,h2{color:var(--text-h)}code{font-family:var(--mono);background:var(--code-bg);border:1px solid var(--border);border-radius:4px;padding:.15em .4em;font-size:.9em}.app{text-align:left;flex-direction:column;flex:1;min-height:100svh;display:flex}.app--centered{gap:1.5rem;max-width:48rem;margin:0 auto;padding:2.5rem 1.5rem 3rem}.app--login{background:var(--bg);justify-content:center;align-items:center;max-width:none;margin:0;padding:2rem 1.25rem}.app--login.app--loading{padding:0}.login-shell{width:100%;max-width:24rem}.login-card{border:1px solid var(--border);background:#fff;border-radius:12px;width:100%;padding:1.5rem;box-shadow:0 4px 24px #1c20270f}.login-loading{flex-direction:column;justify-content:center;align-items:center;gap:.5rem;display:flex}.login-form-wrap{flex-direction:column;gap:1.25rem;display:flex}.login-form-heading h2{font-family:var(--display);margin:0 0 .35rem;font-size:1.5rem;font-weight:600;line-height:1.2}.auth-email{color:var(--text-h);word-break:break-all;font-weight:600}.app--authenticated{padding:0}.app--loading{justify-content:center;align-items:center;max-width:none;margin:0;padding:0}.loading-spinner{justify-content:center;align-items:center;display:flex}.loading-spinner__ring{border:3px solid var(--border);border-top-color:#1c2027;border-radius:50%;width:2.5rem;height:2.5rem;animation:.7s linear infinite loading-spinner-spin}@keyframes loading-spinner-spin{to{transform:rotate(360deg)}}.app-layout{flex:1;min-height:100svh;display:flex}.sidebar{background:#225728;border-right:1px solid #183d1c;flex-direction:column;flex-shrink:0;align-self:flex-start;gap:1.5rem;width:300px;height:100svh;padding:1.5rem 0;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-top{justify-content:space-between;align-items:center;gap:.5rem;padding-right:1rem;display:flex}.sidebar-brand{flex:1;min-width:0;padding:0 0 0 1.25rem;line-height:0;text-decoration:none;display:block}.sidebar-close{color:#ffffffb3;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:.4rem;display:none}.sidebar-close:hover{color:#fff;background:#ffffff1f}.sidebar-close:focus-visible{outline-offset:2px;outline:2px solid #fff}.sidebar-backdrop{display:none}.app-header-nav-toggle{color:var(--text-h);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin:-.35rem 0;padding:.35rem;display:none}.app-header-nav-toggle:hover{background:var(--bg)}.app-header-nav-toggle:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.sidebar-logo{width:70%;height:auto;display:block}.sidebar-nav{flex:1;min-height:0;margin-top:1rem}.sidebar-nav ul{margin:0;padding:0;list-style:none}.sidebar-nav li{margin:0}.sidebar-link{color:#ffffffb8;border-left:3px solid #0000;padding:.75rem 1.25rem;font-size:1.0625rem;font-weight:500;line-height:1.4;text-decoration:none;display:block}.sidebar-link:hover{color:#fff;background:#ffffff1a}.sidebar-link.active{color:#fff;background:#ffffff24;border-left-color:#fff}.sidebar-profile-url{background:#0000002e;border-radius:8px;flex-shrink:0;margin:auto 1rem 1.25rem;padding:1rem}.sidebar-profile-url-label{letter-spacing:.05em;text-transform:uppercase;color:#ffffffb3;margin:0 0 .35rem;font-size:.6875rem;font-weight:600}.sidebar-profile-url-help{color:#ffffffb3;margin:0 0 .65rem;font-size:.8125rem;line-height:1.45}.sidebar-profile-url-field{background:#00000038;border:1px solid #ffffff29;border-radius:6px;align-items:center;gap:.35rem;padding:.5rem .6rem;display:flex}.sidebar-profile-url-link{color:#fff;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.8125rem;line-height:1.45;text-decoration:none;overflow:hidden}.sidebar-profile-url-link:hover{color:#fff;text-decoration:underline}.sidebar-profile-url-copy{color:#ffffffb3;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:.25rem;display:flex}.sidebar-profile-url-copy:hover{color:#fff;background:#ffffff1f}.sidebar-profile-url-copy:focus-visible{outline-offset:2px;outline:2px solid #fff}.sidebar-profile-url-copy--copied:hover{background:0 0}.app-content{flex-direction:column;flex:1;min-width:0;display:flex}.app-header{z-index:100;border-bottom:1px solid var(--border);box-shadow:none;background:#fff;flex-shrink:0;align-items:center;gap:.75rem;padding:1rem 2rem;transition:box-shadow .2s;display:flex;position:sticky;top:0}.app-header--scrolled{box-shadow:0 4px 12px #00000014}.app-header-feedback{color:var(--accent);background:#fff;border:none;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.875rem;font-weight:700;line-height:1.2;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.app-header-feedback svg{color:var(--accent);flex-shrink:0}.app-header-feedback:hover{color:var(--accent);background:#fff;text-decoration:none}.app-header-feedback:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-header-menu{z-index:1;margin-left:auto;position:relative}.app-header-avatar-btn{cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.5rem;padding:0;line-height:0;display:flex}.app-header-chevron{color:var(--text);flex-shrink:0;justify-content:center;align-items:center;transition:transform .15s;display:flex}.app-header-chevron-icon{display:block}.app-header-chevron--open{transform:rotate(180deg)}.app-header-name{color:var(--text-h);font-size:.9rem;font-weight:500;line-height:1.25}.app-header-avatar-btn:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.app-header-avatar{object-fit:cover;background:var(--code-bg);border-radius:50%;width:2.5rem;height:2.5rem;display:block}.app-header-avatar--placeholder{color:var(--text-h);background:var(--border);justify-content:center;align-items:center;font-size:.875rem;font-weight:600;display:flex}.app-header-dropdown{z-index:101;border:1px solid var(--border);background:var(--code-bg);border-radius:8px;min-width:10rem;padding:.35rem;position:absolute;top:calc(100% + .5rem);right:0;box-shadow:0 4px 12px #00000014}.app-header-dropdown-item{width:100%;font:inherit;text-align:left;color:var(--text-h);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.5rem .75rem;font-size:.9rem;display:block}.app-header-dropdown-item:hover:not(:disabled){background:var(--bg)}.app-header-dropdown-item:disabled{opacity:.6;cursor:not-allowed}.app-page{z-index:0;flex:1;padding:0 2rem 3rem;position:relative}.page-header{border-bottom:1px solid var(--border);background:#fff;margin:0 -2rem 1.5rem;padding:1rem 2rem}.page-header h1{font-family:var(--display);margin:0;font-size:1.875rem;font-weight:600;line-height:1.2}.page-header--with-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.page-header--with-actions h1{flex:1;min-width:min(100%,12rem)}.diary-month-controls{border:1px solid var(--border);background:#fff;border-radius:10px;flex-shrink:0;align-items:center;gap:.25rem;padding:.2rem;display:flex;box-shadow:0 1px 2px #1c20270a}.page-header-meta{color:var(--text);margin:.35rem 0 0;font-size:.875rem}.page-header-back{margin:0 0 .35rem}.back-link{color:var(--text);align-items:center;gap:.3rem;font-size:.8125rem;font-weight:500;line-height:1.3;text-decoration:none;transition:color .15s;display:inline-flex}.back-link:hover{color:var(--text-h)}.back-link-icon{opacity:.65;font-size:.95em;line-height:1;transition:opacity .15s,transform .15s;display:inline-flex}.back-link:hover .back-link-icon{opacity:1;transform:translate(-2px)}.page-lead{margin:0;line-height:1.5}header h1{margin:0 0 .35rem;font-size:2rem}.tagline{color:var(--text);margin:0}.status{margin:0}.panel{border:1px solid var(--border);background:var(--code-bg);border-radius:8px;padding:1.25rem 1.5rem}.panel h2{margin:0 0 1rem;font-size:1rem;font-weight:600}.auth-form{flex-direction:column;gap:1.125rem;display:flex}.auth-lead{color:var(--text);margin:0;font-size:.9375rem;line-height:1.55}.auth-submit{justify-content:center;width:100%;margin-top:.25rem;padding:.7rem 1rem;font-weight:600}.auth-secondary-actions{flex-direction:column;align-items:center;gap:.35rem;margin-top:-.25rem;display:flex}.field{flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.field span{color:var(--text-h);font-weight:500}.field input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:8px;padding:.65rem .75rem;transition:border-color .15s,box-shadow .15s}.field input::placeholder{color:#9ca3af}.field input:focus{border-color:#c00d9a73;outline:none;box-shadow:0 0 0 3px #c00d9a1f}.code-inputs{grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem;display:grid}.code-digit{aspect-ratio:1;border:1px solid var(--border);background:var(--bg);width:100%;min-height:2.75rem;font:inherit;font-family:var(--mono);text-align:center;color:var(--text-h);border-radius:10px;padding:0;font-size:1.25rem;font-weight:600;transition:border-color .15s,box-shadow .15s,background .15s}.code-digit:focus{background:#fff;border-color:#c00d9a73;outline:none;box-shadow:0 0 0 3px #c00d9a1f}.code-digit:not(:placeholder-shown){background:#fff;border-color:#1c20272e}.btn{font:inherit;cursor:pointer;color:#fff;background:#1c2027;border:1px solid #1c2027;border-radius:6px;width:fit-content;padding:.55rem 1rem}.btn:hover:not(:disabled){background:#252a33;border-color:#252a33}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.primary{color:#fff;background:#1c2027;border-color:#1c2027}.btn.primary:hover:not(:disabled){background:#252a33;border-color:#252a33}.btn.link{color:#1c2027;background:0 0;border:none;padding:.25rem 0;font-size:.875rem;font-weight:500;text-decoration:none}.btn.link:hover:not(:disabled){color:var(--accent);text-decoration:underline}.btn.btn--outline{color:#1c2027;background:0 0}.btn.btn--outline:hover:not(:disabled){color:#1c2027;background:#f0f0f5;border-color:#1c2027}.form-error{color:#b91c1c;margin:0;font-size:.9rem}.profile-layout{align-items:flex-start;gap:1.5rem;display:flex}.profile-main-column{flex-direction:column;flex:1;gap:1.5rem;min-width:0;display:flex}.profile-main-column .panel h2{margin:0 0 1rem}.profile-aside-column{flex-direction:column;flex-shrink:0;gap:1rem;width:20rem;display:flex}.profile-aside{padding:0;overflow:hidden}.profile-aside-media{position:relative}.profile-aside-details{text-align:center;padding:.75rem 1rem 1.25rem}.profile-aside-name{color:var(--text-h);margin:0 0 .25rem;font-size:1rem;font-weight:600}.profile-aside-email{color:var(--text);margin:0;font-size:.875rem}.profile-cover{aspect-ratio:3/2;object-fit:cover;width:100%;display:block}.profile-cover--empty{aspect-ratio:3/2;background:var(--border)}.profile-identity{justify-content:center;margin-top:-3rem;padding:0 1rem;display:flex}.profile-avatar{object-fit:cover;border:3px solid var(--code-bg);background:var(--code-bg);border-radius:50%;width:6rem;height:6rem;display:block}.profile-avatar--placeholder{color:var(--text-h);background:var(--border);justify-content:center;align-items:center;font-size:1.5rem;font-weight:600;display:flex}.profile-edit-btn{text-align:center;color:#fff;width:100%;margin-top:1rem;text-decoration:none;display:block}.edit-profile-layout{align-items:flex-start;gap:1.5rem;display:flex}.edit-profile-media-panel{flex-shrink:0;width:18rem;padding:0;overflow:hidden}.edit-profile-media-name{text-align:center;color:var(--text-h);margin:0;padding:0 1rem 1rem;font-size:1rem;font-weight:600}.edit-profile-form{flex-direction:column;flex:1;gap:1rem;min-width:0;display:flex}.edit-profile-form .form-row{margin-bottom:0}.form-row--2{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-row--address-travel{grid-template-columns:minmax(0,1fr) minmax(7.5rem,10rem)}.field textarea,.field select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:6px;padding:.55rem .65rem}.field textarea{resize:vertical;width:100%;min-height:8rem;line-height:1.5}.field select{width:100%}.field textarea:focus,.field select:focus{outline-offset:1px;outline:2px solid #2563eb}.field-hint{color:var(--text);font-size:.8rem}.field-hint--error{color:#b91c1c}.edit-profile-form-actions{flex-wrap:wrap;gap:.75rem;margin-top:0;display:flex}.profile-media-editor-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.profile-media-editor-cover-wrap{position:relative}.profile-media-editor-cover-wrap .profile-media-editor-btn{z-index:2;position:absolute;bottom:.5rem;right:.5rem}.profile-media-editor-identity{z-index:1;pointer-events:none;flex-direction:column;gap:.5rem;padding-bottom:.75rem;position:relative}.profile-media-editor-identity .profile-avatar,.profile-media-editor-identity .profile-avatar--placeholder,.profile-media-editor-identity .profile-media-editor-btn{pointer-events:auto}.profile-media-editor-btn{font:inherit;color:#fff;cursor:pointer;background:#1c2027bf;border:none;border-radius:4px;padding:.35rem .65rem;font-size:.75rem;font-weight:500}.profile-media-editor-btn:hover{background:#1c2027e6}.profile-media-editor-btn--avatar{background:var(--code-bg);color:var(--text-h);border:1px solid var(--border);position:static}.profile-media-editor-btn--avatar:hover{background:var(--bg)}.profile-rating-section{text-align:center}.profile-stars{justify-content:center;align-items:center;gap:.15rem;margin-bottom:.35rem;display:flex}.profile-star{font-size:1.25rem;line-height:1}.profile-star--full{color:#eab308}.profile-star--empty{color:#d1d5db}.profile-star-half{color:#d1d5db;display:inline-block;position:relative}.profile-star-half-fill{color:#eab308;width:50%;position:absolute;top:0;left:0;overflow:hidden}.profile-review-count{color:var(--text);margin:0;font-size:.875rem}.profile-description{color:var(--text-h);white-space:pre-wrap;margin:0;line-height:1.6}.profile-tabs{padding-top:0}.tab-list{border-bottom:1px solid var(--border);gap:0;margin:0 -1.5rem;padding:0 1.5rem;display:flex}.tab{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin:0 0 -1px;padding:.85rem 1rem;font-size:.9rem;font-weight:500}.tab:hover{color:var(--text-h)}.tab--active{color:var(--text-h);border-bottom-color:#1c2027}.tab-panel{padding-top:1.25rem}.tab-panel[hidden]{display:none}.treatments-intro{color:var(--text);margin:0 0 1rem;line-height:1.5}.treatments-list{margin:0;padding:0;list-style:none}.treatments-item{border-bottom:1px solid var(--border);align-items:center;gap:.75rem;margin:0;padding:.6rem 0;display:flex}.treatments-item:last-child{border-bottom:none}.treatments-thumb{aspect-ratio:3/2;background:var(--border);border-radius:6px;flex-shrink:0;width:4.5rem;overflow:hidden}.treatments-thumb-img{object-fit:cover;width:100%;height:100%;display:block}.treatments-thumb-placeholder{background:var(--border);width:100%;height:100%}.treatments-item-line{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;font-size:.9rem;line-height:1.35;overflow:hidden}.treatments-name{color:var(--text-h);font-weight:600}.treatments-meta{color:var(--text);font-weight:400}.treatments-details-btn{color:var(--text);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:.2rem;transition:color .15s;display:flex}.treatments-details-icon{display:block}.treatments-details-btn:hover{color:var(--text-h)}.treatments-details-btn:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #2563eb}.modal-backdrop{z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#11182759;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-dialog{border:1px solid var(--border);background:var(--code-bg);border-radius:8px;width:100%;max-width:40rem;padding:1.5rem;box-shadow:0 12px 40px #00000026}.modal-dialog-title{font-family:var(--display);color:var(--text-h);margin:0 0 .5rem;font-size:1.5rem;font-weight:600;line-height:1.2}.modal-dialog-meta{color:var(--text);margin:0 0 1rem;font-size:.9rem}.modal-dialog-body{color:var(--text);white-space:pre-wrap;margin:0 0 1.25rem;font-size:.95rem;line-height:1.55}.bookings-table-wrap{margin-top:1.25rem;overflow-x:auto}.bookings-table{border-collapse:collapse;width:100%;font-size:.9rem}.bookings-table th,.bookings-table td{text-align:left;border-bottom:1px solid var(--border);padding:.65rem .75rem}.bookings-table th{color:var(--text-h);background:var(--bg);font-weight:600}.bookings-table td{color:var(--text)}.bookings-table tbody tr:last-child td{border-bottom:none}.bookings-id-link{color:var(--text-h);font-weight:500;text-decoration:none;display:inline-block}.bookings-id-link:hover{color:var(--accent);text-decoration:underline}.bookings-id-link:focus-visible{outline-offset:2px;border-radius:2px;outline:2px solid #2563eb}.bookings-appointment-cell{white-space:nowrap;color:var(--text-h)}.bookings-created{color:var(--text);margin-top:.15rem;font-size:.75rem;display:block}.bookings-table th.bookings-table__total-col,.bookings-table td.bookings-table__total-col{text-align:right;white-space:nowrap}.booking-detail-layout{align-items:flex-start;gap:1.5rem;display:flex}.booking-detail-main{flex-direction:column;flex:1;gap:1.25rem;min-width:0;display:flex}.booking-detail-sidebar{flex-direction:column;flex-shrink:0;gap:1rem;width:17.5rem;display:flex;position:sticky;top:5.5rem}.booking-detail-section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text);margin:0 0 1rem;font-size:.6875rem;font-weight:600}.booking-detail-customer-name{color:var(--text-h);margin:0 0 .35rem;font-size:1.25rem;font-weight:600;line-height:1.3}.booking-detail-customer-email{color:#1c2027;font-size:.9375rem;text-decoration:none;display:inline-block}.booking-detail-customer-email:hover{color:var(--accent);text-decoration:underline}.booking-detail-customer-phone{color:#1c2027;margin-top:.35rem;font-size:.9375rem;text-decoration:none;display:block}.booking-detail-customer-phone:hover{color:var(--accent);text-decoration:underline}.booking-detail-customer-address{color:var(--text-h);flex-direction:column;gap:.15rem;margin:.85rem 0 0;font-size:.9375rem;font-style:normal;line-height:1.45;display:flex}.booking-detail-customer-address-empty{color:var(--text);margin:.85rem 0 0;font-size:.875rem}.booking-detail-notes-panel .booking-detail-section-title{margin-bottom:.75rem}.booking-detail-notes-text{color:var(--text-h);white-space:pre-wrap;margin:0;font-size:.9375rem;line-height:1.55}.booking-detail-notes-empty{color:var(--text);margin:0;font-size:.9375rem;line-height:1.5}.booking-detail-consultation{padding-top:.85rem;padding-bottom:.85rem}.booking-detail-consultation-accordion{margin:0}.booking-detail-consultation-summary{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:1rem;margin:-.85rem -1.5rem;padding:.85rem 1.5rem;list-style:none;display:flex}.booking-detail-consultation-summary::-webkit-details-marker{display:none}.booking-detail-consultation-summary::marker{content:""}.booking-detail-consultation-summary:hover{background:color-mix(in srgb, var(--text) 4%, transparent)}.booking-detail-consultation-summary:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.booking-detail-consultation-summary .booking-detail-section-title{margin:0}.booking-detail-consultation-chevron{border-right:2px solid var(--text);border-bottom:2px solid var(--text);flex-shrink:0;width:.55rem;height:.55rem;transition:transform .15s;transform:rotate(45deg)}.booking-detail-consultation-accordion[open] .booking-detail-consultation-chevron{transform:rotate(225deg)}.booking-detail-consultation-body{margin-top:1rem;padding-top:.15rem}.booking-detail-consultation-groups{flex-direction:column;gap:1.25rem;display:flex}.booking-detail-consultation-group-title{color:var(--text-h);margin:0 0 .35rem;font-size:.95rem;font-weight:600}.booking-detail-consultation-group-description{color:var(--text);margin:0 0 .75rem;font-size:.875rem;line-height:1.5}.booking-detail-consultation-list{flex-direction:column;gap:.85rem;margin:0;display:flex}.booking-detail-consultation-row{gap:.2rem;display:grid}.booking-detail-consultation-row dt{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:.75rem;font-weight:600}.booking-detail-consultation-row dd{color:var(--text-h);white-space:pre-wrap;margin:0;font-size:.9375rem;line-height:1.45}.booking-detail-consultation-value--empty{color:var(--text);font-style:italic}.booking-detail-empty{color:var(--text);margin:0;font-size:.9375rem}.booking-detail-items-wrap{margin:0 -.25rem;overflow-x:auto}.booking-detail-items{border-collapse:collapse;width:100%;font-size:.9375rem}.booking-detail-items th,.booking-detail-items td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.7rem .25rem}.booking-detail-items th{letter-spacing:.04em;text-transform:uppercase;color:var(--text);font-size:.75rem;font-weight:600}.booking-detail-items tbody tr:last-child td{border-bottom:none}.booking-detail-items th.booking-detail-items__price,.booking-detail-items td.booking-detail-items__price{text-align:right;white-space:nowrap;width:7rem;color:var(--text-h)}.booking-detail-financials{border-top:2px solid var(--border);margin-top:1.25rem;padding-top:1rem}.booking-detail-financials-dl{max-width:14rem;margin:0 0 0 auto}.booking-detail-financials-row{justify-content:space-between;gap:1.5rem;padding:.35rem 0;display:flex}.booking-detail-financials-row dt{color:var(--text);margin:0;font-weight:500}.booking-detail-financials-row dd{font-variant-numeric:tabular-nums;color:var(--text-h);margin:0}.booking-detail-financials-row--total{border-top:1px solid var(--border);margin-top:.35rem;padding-top:.65rem}.booking-detail-financials-row--total dt,.booking-detail-financials-row--total dd{color:var(--text-h);font-size:1.0625rem;font-weight:600}.booking-detail-appointment{border-left:4px solid var(--accent);padding:1.25rem 1.25rem 1.35rem}.booking-detail-appointment-eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--text);margin:0 0 .65rem;font-size:.6875rem;font-weight:600}.booking-detail-appointment-date{color:var(--text-h);margin:0;font-size:1.0625rem;font-weight:600;line-height:1.4}.booking-detail-appointment-time{font-variant-numeric:tabular-nums;color:var(--text-h);margin:.5rem 0 0;font-size:1.75rem;font-weight:600;line-height:1.2}.booking-detail-appointment-time--muted{color:var(--text);font-size:1rem;font-weight:500}.booking-detail-appointment-change{text-align:center;width:100%;margin-top:1.25rem}a.btn{color:#fff;text-decoration:none;display:inline-block}a.btn:hover{color:#fff}.profile-schedule-actions{flex-flow:wrap;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.weekly-schedule-layout{align-items:flex-start;gap:1.5rem;display:flex}.weekly-schedule-layout .weekly-schedule-panel{flex:1;min-width:0}.weekly-schedule-summary-column{flex-direction:column;flex-shrink:0;gap:1rem;width:14rem;display:flex}.weekly-schedule-summary{flex-direction:column;gap:.35rem;display:flex}.weekly-schedule-summary-title{margin:0;font-size:1rem;font-weight:600}.weekly-schedule-total{color:var(--text-h);margin:.25rem 0 0;font-size:2rem;font-weight:600;line-height:1.2}.weekly-schedule-summary-label{color:var(--text);margin:0;font-size:.875rem}.weekly-schedule-save-btn{justify-content:center;align-items:center;gap:.35rem;width:100%;transition:background .3s,border-color .3s,color .3s,transform .2s;display:flex}.weekly-schedule-save-btn--saved{color:#fff;background:#22c55e;border-color:#16a34a;animation:.45s save-btn-success}.weekly-schedule-save-btn--saved:hover:not(:disabled){color:#fff;background:#16a34a;border-color:#15803d}.weekly-schedule-save-icon{font-size:1.1rem;line-height:1;animation:.4s cubic-bezier(.34,1.4,.64,1) save-check-pop;display:inline-block}@keyframes save-btn-success{0%{transform:scale(1)}35%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes save-check-pop{0%{opacity:0;transform:scale(.25)rotate(-12deg)}to{opacity:1;transform:scale(1)rotate(0)}}@media (prefers-reduced-motion:reduce){.weekly-schedule-save-btn{transition:none}.weekly-schedule-save-btn--saved,.weekly-schedule-save-icon{animation:none}.sidebar,.sidebar-backdrop{transition:none}}.weekly-schedule-panel{padding-top:1.25rem}.weekly-schedule-scroll{margin:0 -.25rem;padding:0 .25rem .25rem;font-size:1.125rem;overflow-x:auto}.weekly-schedule-scroll--dragging{cursor:crosshair;-webkit-user-select:none;user-select:none}.weekly-schedule-grid{grid-template-columns:5rem repeat(7,minmax(5rem,1fr));gap:2px;min-width:52rem;display:grid}.weekly-schedule-row{display:contents}.weekly-schedule-expand-btn{border:1px dashed var(--border);background:var(--bg);min-height:2.35rem;font:inherit;color:var(--text);cursor:pointer;border-radius:4px;grid-column:1/-1;justify-content:center;align-items:center;gap:.35rem;margin:1px 0;padding:.35rem .75rem;font-size:.9em;font-weight:500;display:flex}.weekly-schedule-expand-btn:hover{color:var(--text-h);background:var(--code-bg);border-color:#9ca3af}.weekly-schedule-expand-icon{font-size:1em;line-height:1}.weekly-schedule-corner{z-index:2;background:var(--code-bg);position:sticky;left:0}.weekly-schedule-day-header{z-index:1;text-align:center;background:var(--code-bg);flex-direction:column;align-items:center;gap:.15rem;padding:.35rem .25rem;display:flex;position:sticky;top:0}.weekly-schedule-day-name{color:var(--text-h);font-size:.85em;font-weight:600;line-height:1.2}.weekly-schedule-day-hours{color:var(--text);font-size:.8em;font-weight:500}.weekly-schedule-time{z-index:1;color:var(--text);background:var(--code-bg);white-space:nowrap;align-items:center;padding-right:.5rem;font-size:.85em;font-weight:500;display:flex;position:sticky;left:0}.schedule-slot{border:1px solid var(--border);background:var(--bg);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;min-height:2.35rem;padding:.15rem;transition:background .1s,border-color .1s,color .1s;display:flex}.schedule-slot:hover{border-color:#9ca3af}.schedule-slot--selected{color:#fff;background:#22c55e;border-color:#16a34a}.schedule-slot--selected:hover{background:#16a34a;border-color:#15803d}.schedule-slot-label{text-align:center;font-size:.75em;font-weight:600;line-height:1.2}.schedule-slot--selected .schedule-slot-label{font-size:.9em}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg, var(--border) 0%, #ececf4 45%, var(--border) 100%);background-size:200% 100%;border-radius:4px;animation:1.4s ease-in-out infinite skeleton-shimmer;display:block}.weekly-schedule-grid--skeleton{pointer-events:none}.weekly-schedule-grid--skeleton .weekly-schedule-day-header{align-items:center}.skeleton-text--day{width:2.75rem;height:.85em}.skeleton-text--hours{width:2rem;height:.75em}.skeleton-expand{grid-column:1/-1;min-height:2.35rem;margin:1px 0}.skeleton-time{align-self:center;width:3.25rem;min-height:2.35rem}.skeleton-slot{min-height:2.35rem}.weekly-schedule-summary .skeleton-text--title{width:55%;height:1rem;margin-bottom:.75rem}.weekly-schedule-summary .skeleton-text--total{width:45%;height:2.25rem;margin-bottom:.5rem}.weekly-schedule-summary .skeleton-text--label{width:70%;height:.9rem}.skeleton-button{border-radius:6px;width:100%;min-height:2.75rem}.dashboard-diary-panel{padding:1.25rem 1.5rem}.dashboard-diary-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.dashboard-diary-title{color:var(--text-h);margin:0;font-size:1rem;font-weight:600}.dashboard-diary-link{color:#1c2027;flex-shrink:0;font-size:.875rem;font-weight:500;text-decoration:none}.dashboard-diary-link:hover{color:var(--accent);text-decoration:underline}.five-day-diary-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;display:grid}.five-day-diary--skeleton{pointer-events:none}.five-day-diary-skeleton-slots{flex-direction:column;flex:1;gap:.35rem;display:flex}.five-day-diary-skeleton-slot{border-radius:8px;min-height:2.35rem}.five-day-diary-day{border:1px solid var(--border);background:#fff;border-radius:8px;flex-direction:column;min-height:10rem;padding:.65rem;display:flex}.five-day-diary-day--today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.five-day-diary-day-header{border-bottom:1px solid var(--border);flex-direction:column;gap:.1rem;margin-bottom:.65rem;padding-bottom:.5rem;display:flex}.five-day-diary-weekday{letter-spacing:.05em;text-transform:uppercase;color:var(--text);font-size:.6875rem;font-weight:600}.five-day-diary-day--today .five-day-diary-weekday{color:var(--accent)}.five-day-diary-date{color:var(--text-h);font-size:.9375rem;font-weight:600}.five-day-diary-empty{color:var(--text);margin:0;font-size:.8125rem}.five-day-diary-appointments{flex-direction:column;flex:1;gap:.35rem;min-height:0;margin:0;padding:0;list-style:none;display:flex}.diary-panel{box-shadow:none;background:0 0;border:none;padding:1.5rem}.diary-calendar-today-btn{font:inherit;color:var(--text-h);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.35rem .85rem;font-size:.8125rem;font-weight:500;transition:background .15s,border-color .15s,color .15s}.diary-calendar-today-btn:hover{color:var(--accent);background:var(--accent-soft)}.diary-calendar-today-btn:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.diary-calendar-nav-btn{width:2.5rem;height:2.5rem;color:var(--text-h);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:background .15s;display:flex}.diary-calendar-nav-btn:hover{background:var(--bg)}.diary-calendar-nav-btn:focus-visible{outline-offset:1px;outline:2px solid #2563eb}.diary-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;display:grid}.diary-calendar--skeleton{pointer-events:none}.diary-calendar-skeleton-slots{flex-direction:column;flex:1;gap:.3rem;min-height:0;display:flex}.diary-calendar-skeleton-slot{border-radius:8px;min-height:1.75rem}.diary-calendar-weekday{letter-spacing:.06em;text-transform:uppercase;text-align:center;color:var(--text);padding:0 .25rem .35rem;font-size:.6875rem;font-weight:600}.diary-calendar-day{background:#fff;border:1px solid #1c20270f;border-radius:12px;flex-direction:column;min-height:7.25rem;padding:.5rem;transition:border-color .15s,box-shadow .15s;display:flex;overflow:visible;box-shadow:0 1px 2px #1c20270a}.diary-calendar-day--has-events:hover{border-color:#c00d9a33;box-shadow:0 4px 12px #1c20270f}.diary-calendar-day--outside{box-shadow:none;background:#f7f7fca6;border-color:#0000}.diary-calendar-day--outside .diary-calendar-day-num{color:var(--text);font-weight:500}.diary-calendar-day--today{background:linear-gradient(165deg, var(--accent-soft) 0%, #fff 48%);border-color:#c00d9a59;box-shadow:0 0 0 1px #c00d9a1f,0 4px 14px #c00d9a14}.diary-calendar-day-header{justify-content:space-between;align-items:center;gap:.35rem;margin-bottom:.4rem;display:flex}.diary-calendar-day-num{font-variant-numeric:tabular-nums;min-width:1.625rem;height:1.625rem;color:var(--text-h);flex-shrink:0;justify-content:center;align-items:center;padding:0 .35rem;font-size:.8125rem;font-weight:600;display:inline-flex}.diary-calendar-day--today .diary-calendar-day-num{background:var(--accent);color:#fff;border-radius:999px;padding:0 .45rem}.diary-calendar-day-count{font-variant-numeric:tabular-nums;min-width:1.125rem;height:1.125rem;color:var(--accent);background:#c00d9a1f;border-radius:999px;justify-content:center;align-items:center;padding:0 .3rem;font-size:.625rem;font-weight:700;display:inline-flex}.diary-calendar-appointments{flex-direction:column;flex:1;gap:.3rem;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow:visible}.diary-appointment-item{z-index:1;position:relative}.diary-appointment-item:hover,.diary-appointment-item:focus-within{z-index:30}.diary-appointment-tooltip{z-index:40;border:1px solid var(--border);opacity:0;visibility:hidden;pointer-events:none;background:#fff;border-radius:8px;width:max-content;max-width:13rem;padding:.5rem .65rem;transition:opacity .15s,visibility .15s;position:absolute;top:50%;left:calc(100% + .4rem);transform:translateY(-50%);box-shadow:0 8px 24px #1c20271f}.diary-appointment-item:hover .diary-appointment-tooltip,.diary-appointment-item:focus-within .diary-appointment-tooltip{opacity:1;visibility:visible}.diary-appointment-tooltip-label{letter-spacing:.05em;text-transform:uppercase;color:var(--text);margin:0 0 .35rem;font-size:.625rem;font-weight:600}.diary-appointment-tooltip-list{color:var(--text-h);margin:0;padding:0;font-size:.75rem;line-height:1.45;list-style:none}.diary-appointment-tooltip-list li+li{margin-top:.2rem}.diary-calendar-appointment{color:inherit;background:#1c20270a;border-radius:8px;align-items:flex-start;gap:.4rem;padding:.4rem .45rem;line-height:1.3;text-decoration:none;transition:background .15s,transform .15s,box-shadow .15s;display:flex}.diary-calendar-appointment:hover{background:#fff;transform:translateY(-1px);box-shadow:0 2px 8px #1c202714}.diary-calendar-appointment:focus-visible{outline-offset:1px;outline:2px solid #2563eb}.diary-calendar-appointment-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:.35rem}.diary-calendar-appointment-body{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.diary-calendar-appointment-time{font-variant-numeric:tabular-nums;letter-spacing:.01em;color:var(--accent);font-size:.6875rem;font-weight:600}.diary-calendar-appointment-name{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:500;overflow:hidden}@media (width<=767px){.app-header-nav-toggle,.sidebar-close{display:flex}.sidebar-backdrop{z-index:190;opacity:0;pointer-events:none;cursor:pointer;background:#00000073;border:none;padding:0;transition:opacity .2s;display:block;position:fixed;inset:0}.sidebar-backdrop--visible{opacity:1;pointer-events:auto}.sidebar{z-index:200;width:min(300px,88vw);max-width:100%;height:100svh;box-shadow:none;align-self:auto;transition:transform .25s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar--open{transform:translate(0);box-shadow:8px 0 24px #0003}.app-header{padding:.75rem 1rem}.app-header-feedback{padding:.4rem .6rem;font-size:.8125rem}.app-header-name{display:none}.app-page{padding:0 1rem 2rem}.page-header{margin:0 -1rem 1.25rem;padding:.85rem 1rem}.page-header h1{font-size:1.5rem}.app--centered{padding:1.5rem 1rem 2rem}.app--login{padding:1.5rem 1rem}.login-card{padding:1.25rem}.code-inputs{gap:.35rem}.code-digit{border-radius:8px;min-height:2.5rem;font-size:1.125rem}.profile-layout,.edit-profile-layout,.weekly-schedule-layout,.booking-detail-layout{flex-direction:column}.profile-aside-column,.edit-profile-media-panel,.weekly-schedule-summary-column,.booking-detail-sidebar{order:-1;width:100%;position:static}.form-row--2,.form-row--address-travel{grid-template-columns:1fr}.profile-schedule-actions{flex-direction:column;align-items:stretch}.profile-schedule-actions .btn{text-align:center;width:100%}.edit-profile-form-actions{flex-direction:column}.edit-profile-form-actions .btn{text-align:center;width:100%}.tab-list{-webkit-overflow-scrolling:touch;margin:0 -1rem;padding:0 .5rem;overflow-x:auto}.tab{flex-shrink:0;padding:.75rem .85rem;font-size:.85rem}.booking-detail-financials-dl{max-width:none}.booking-detail-appointment-time{font-size:1.5rem}.bookings-table th,.bookings-table td{padding:.55rem .5rem;font-size:.85rem}.treatments-thumb{width:3.5rem}.treatments-item{gap:.5rem}.diary-panel{padding:0}.page-header--with-actions{align-items:flex-start}.diary-month-controls{justify-content:flex-end;width:100%}.diary-calendar-grid{gap:.35rem}.diary-calendar-day{border-radius:10px;min-height:5.5rem;padding:.4rem}.five-day-diary-grid{grid-template-columns:1fr}.five-day-diary-day{min-height:auto}.diary-calendar-appointment-name{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}}@media (width<=479px){.app-header-feedback span{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-header-feedback{border-radius:50%;padding:.45rem}}
