.time-slot-menu[data-v-ce7a984b]{position:absolute;min-width:220px;background:var(--white);border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);overflow:hidden}.time-slot-menu-header[data-v-ce7a984b]{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:600;color:var(--spa-text-dark);background:var(--spa-light-bg);border-bottom:1px solid rgba(0,0,0,.08)}.time-slot-menu-item[data-v-ce7a984b]{display:flex;align-items:center;gap:var(--spacing-md);width:100%;padding:var(--spacing-sm) var(--spacing-md);background:var(--white);border:none;text-align:left;cursor:pointer;font-size:var(--font-size-sm);color:var(--spa-text);transition:background var(--transition-fast)}.time-slot-menu-item[data-v-ce7a984b]:hover{background:var(--spa-light-bg)}.time-slot-menu-item i[data-v-ce7a984b]{width:16px;text-align:center;color:var(--spa-text-light)}.week-view[data-v-60664d73]{padding:1rem 1.5rem 1.5rem;background:#f8fafc}.week-grid[data-v-60664d73]{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));gap:.85rem;overflow-x:auto;padding-bottom:.35rem}.week-day-column[data-v-60664d73]{display:flex;flex-direction:column;min-height:calc(100vh - 270px);background:#fff;border:1px solid #dbe2ea;border-radius:14px}.week-day-column.today[data-v-60664d73]{border-color:#0f766e;box-shadow:0 0 0 2px #0f766e1f}.week-day-header[data-v-60664d73]{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem .75rem .65rem;border-bottom:1px solid #e7edf4;background:#fff;border-top-left-radius:14px;border-top-right-radius:14px}.week-day-button[data-v-60664d73]{display:inline-flex;flex-direction:column;align-items:flex-start;border:none;background:transparent;padding:0;cursor:pointer}.weekday[data-v-60664d73]{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.date[data-v-60664d73]{font-size:.95rem;font-weight:700;color:#0f172a}.week-day-body[data-v-60664d73]{display:grid;gap:.55rem;padding:.75rem;align-content:start;overflow-y:auto}.week-appointment-card[data-v-60664d73]{text-align:left;border:1px solid #e2e8f0;border-left-width:4px;border-radius:10px;background:#fff;padding:.62rem .65rem;cursor:pointer}.week-appointment-card[data-v-60664d73]:hover{background:#f8fafc}.card-time[data-v-60664d73]{font-size:.8rem;font-weight:700;color:#0f172a}.card-client[data-v-60664d73]{margin-top:.1rem;font-size:.88rem;font-weight:700;color:#1e293b}.card-meta[data-v-60664d73]{margin-top:.12rem;font-size:.76rem;color:#334155}.card-meta.muted[data-v-60664d73]{color:#64748b}.day-empty[data-v-60664d73]{margin:.5rem 0 0;font-size:.82rem;color:#94a3b8}.status-confirmed[data-v-60664d73]{border-left-color:#16a34a}.status-pending[data-v-60664d73]{border-left-color:#f59e0b}.status-cancelled[data-v-60664d73]{border-left-color:#ef4444}.status-completed[data-v-60664d73]{border-left-color:#0ea5e9}.status-no-show[data-v-60664d73]{border-left-color:#64748b}@media (max-width: 1200px){.week-grid[data-v-60664d73]{grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);grid-template-columns:none}}.month-view[data-v-f05d206b]{padding:1rem 1.5rem 1.5rem;background:#f8fafc}.month-grid[data-v-f05d206b]{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.65rem}.month-weekday[data-v-f05d206b]{padding:.25rem .3rem;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.month-day-cell[data-v-f05d206b]{display:flex;flex-direction:column;min-height:130px;border:1px solid #dbe2ea;border-radius:12px;background:#fff}.month-day-cell.other-month[data-v-f05d206b]{background:#f8fafc;opacity:.78}.month-day-cell.today[data-v-f05d206b]{border-color:#0f766e;box-shadow:0 0 0 2px #0f766e1c}.month-day-header[data-v-f05d206b]{display:flex;justify-content:space-between;align-items:center;padding:.45rem .5rem .35rem}.month-day-number[data-v-f05d206b]{border:none;background:transparent;padding:0;font-size:.92rem;font-weight:700;color:#0f172a;cursor:pointer}.month-count[data-v-f05d206b]{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;height:1.4rem;padding:0 .36rem;border-radius:999px;background:#e2e8f0;color:#0f172a;font-size:.72rem;font-weight:700}.month-day-list[data-v-f05d206b]{display:grid;gap:.3rem;align-content:start;padding:0 .42rem .45rem}.month-booking-chip[data-v-f05d206b]{text-align:left;border:1px solid #dbe2ea;border-left-width:4px;border-radius:8px;background:#fff;padding:.28rem .35rem;cursor:pointer}.chip-time[data-v-f05d206b]{display:block;font-size:.68rem;font-weight:700;color:#475569}.chip-name[data-v-f05d206b]{display:block;margin-top:.05rem;font-size:.73rem;font-weight:600;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-more[data-v-f05d206b]{border:none;background:transparent;color:#0f766e;text-align:left;font-size:.72rem;font-weight:700;padding:.1rem .1rem 0;cursor:pointer}.status-confirmed[data-v-f05d206b]{border-left-color:#16a34a}.status-pending[data-v-f05d206b]{border-left-color:#f59e0b}.status-cancelled[data-v-f05d206b]{border-left-color:#ef4444}.status-completed[data-v-f05d206b]{border-left-color:#0ea5e9}.status-no-show[data-v-f05d206b]{border-left-color:#64748b}@media (max-width: 900px){.month-grid[data-v-f05d206b]{gap:.4rem}.month-day-cell[data-v-f05d206b]{min-height:112px}}.calendar-header[data-v-2f73d0f7]{background:linear-gradient(135deg,#4bb6c8,#116a84);border-bottom:1px solid rgba(0,0,0,.1);padding:1.5rem;text-align:center;position:sticky;top:0;z-index:10}.calendar-title[data-v-2f73d0f7]{font-family:Playfair Display,serif;font-size:2rem;font-weight:700;color:#fff;margin:0;letter-spacing:.5px}.calendar-controls-bar[data-v-2f73d0f7]{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;background:#fff;border-bottom:1px solid #e5e7eb}.controls-left[data-v-2f73d0f7]{display:flex}.controls-right[data-v-2f73d0f7]{display:flex;align-items:center;gap:1rem}.calendar-closed-banner i[data-v-2f73d0f7]{font-size:1.25rem}.date-navigation[data-v-2f73d0f7]{display:flex;align-items:center;gap:.5rem}.nav-button[data-v-2f73d0f7]{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #d1d5db;background:#fff;border-radius:8px;cursor:pointer;transition:all .2s;color:#6b7280;font-size:.875rem}.nav-button[data-v-2f73d0f7]:hover{background:#f9fafb;border-color:#9ca3af;color:#111827}.nav-button[data-v-2f73d0f7]:active{background:#f3f4f6;transform:scale(.95)}.date-picker-wrapper[data-v-2f73d0f7]{position:relative;margin:0 .5rem}.date-display-button[data-v-2f73d0f7]{display:flex;align-items:center;gap:.625rem;padding:.625rem 1rem;background:#fff;border:1px solid #d1d5db;border-radius:8px;font-size:.9375rem;font-weight:600;color:#111827;cursor:pointer;transition:all .2s;min-width:240px}.date-display-button[data-v-2f73d0f7]:hover{background:#f9fafb;border-color:#9ca3af}.date-display-button i[data-v-2f73d0f7]{color:#6b7280;font-size:1rem}.date-text[data-v-2f73d0f7]{flex:1;text-align:left}.date-picker-popover[data-v-2f73d0f7]{position:absolute;top:calc(100% + .5rem);left:0;z-index:30;min-width:230px;padding:.65rem;border:1px solid #d1d5db;border-radius:10px;background:#fff;box-shadow:0 10px 22px #0f172a2e}.date-picker-label[data-v-2f73d0f7]{display:block;margin-bottom:.35rem;color:#475569;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.date-picker-popover-input[data-v-2f73d0f7]{width:100%;margin-bottom:.5rem;padding:.5rem .55rem;border:1px solid #d1d5db;border-radius:8px}.btn-today[data-v-2f73d0f7]{padding:.625rem 1.25rem;background:#fff;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;font-weight:600;color:#6b7280;cursor:pointer;transition:all .2s}.btn-today[data-v-2f73d0f7]:hover{background:#f9fafb;border-color:#9ca3af;color:#111827}.btn-today.active[data-v-2f73d0f7]{background:#0f766e;border-color:#0f766e;color:#fff}.view-switcher[data-v-2f73d0f7]{display:flex;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:.25rem;gap:.25rem}.view-button[data-v-2f73d0f7]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;border:none;border-radius:8px;font-size:.875rem;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s;min-width:80px;justify-content:center}.view-button[data-v-2f73d0f7]:hover{background:#e5e7eb;color:#111827}.view-button.active[data-v-2f73d0f7]{background:#fff;color:#0f766e;box-shadow:0 1px 3px #0000001a;font-weight:600}.view-button i[data-v-2f73d0f7]{font-size:.9375rem}.status-filter[data-v-2f73d0f7]{position:relative}.filter-button[data-v-2f73d0f7]{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#fff;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;font-weight:600;color:#6b7280;cursor:pointer;transition:all .2s}.filter-button[data-v-2f73d0f7]:hover{background:#f9fafb;border-color:#9ca3af;color:#111827}.filter-button.active[data-v-2f73d0f7]{background:#0f766e;border-color:#0f766e;color:#fff}.filter-badge[data-v-2f73d0f7]{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;background:#ef4444;color:#fff;font-size:.75rem;font-weight:700;border-radius:9999px}.filter-dropdown[data-v-2f73d0f7]{position:absolute;top:calc(100% + .5rem);right:0;min-width:240px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;z-index:50;padding:.5rem 0}.filter-header[data-v-2f73d0f7]{padding:.75rem 1rem;font-size:.875rem;font-weight:600;color:#111827;border-bottom:1px solid #e5e7eb}.filter-option[data-v-2f73d0f7]{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;cursor:pointer;transition:background .15s}.filter-option[data-v-2f73d0f7]:hover{background:#f9fafb}.filter-option input[type=checkbox][data-v-2f73d0f7]{width:1rem;height:1rem;cursor:pointer}.status-indicator[data-v-2f73d0f7]{width:.75rem;height:.75rem;border-radius:50%}.status-indicator.status-confirmed[data-v-2f73d0f7]{background:#10b981}.status-indicator.status-pending[data-v-2f73d0f7]{background:#f59e0b}.status-indicator.status-cancelled[data-v-2f73d0f7]{background:#ef4444}.status-indicator.status-completed[data-v-2f73d0f7]{background:#6b7280}.status-indicator.status-no-show[data-v-2f73d0f7]{background:#dc2626}.filter-actions[data-v-2f73d0f7]{padding:.5rem 1rem;border-top:1px solid #e5e7eb}.btn-clear[data-v-2f73d0f7]{width:100%;padding:.5rem;background:transparent;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;font-weight:500;color:#6b7280;cursor:pointer;transition:all .15s}.btn-clear[data-v-2f73d0f7]:hover{background:#f9fafb;border-color:#9ca3af;color:#111827}.therapist-header-cell.is-unassigned-column .therapist-avatar[data-v-2f73d0f7]{background:#fef3c7;color:#92400e}.therapist-header-cell.is-unassigned-column .therapist-name[data-v-2f73d0f7]{color:#92400e}.therapist-column.is-unassigned-column[data-v-2f73d0f7]{background:linear-gradient(180deg,#fef3c752,#fff0)}.therapist-time-slot.is-readonly[data-v-2f73d0f7]{cursor:default}@media (max-width: 768px){.calendar-header[data-v-2f73d0f7]{padding:1rem}.calendar-title[data-v-2f73d0f7]{font-size:1.5rem}.calendar-controls-bar[data-v-2f73d0f7]{flex-direction:column;align-items:stretch;gap:.75rem;padding:.75rem}.controls-left[data-v-2f73d0f7],.controls-right[data-v-2f73d0f7]{width:100%;justify-content:space-between}.controls-right[data-v-2f73d0f7]{flex-direction:column;align-items:stretch}.date-navigation[data-v-2f73d0f7]{justify-content:space-between;flex-wrap:wrap}.date-display-button[data-v-2f73d0f7]{min-width:auto;flex:1;font-size:.85rem;padding:.5rem .75rem}.nav-button[data-v-2f73d0f7]{width:36px;height:36px}.btn-today[data-v-2f73d0f7]{padding:.5rem 1rem}.view-switcher[data-v-2f73d0f7]{width:100%}.view-button[data-v-2f73d0f7]{flex:1;min-width:auto;font-size:.8rem;padding:.5rem .75rem}.status-filter[data-v-2f73d0f7]{width:100%}.filter-button[data-v-2f73d0f7]{width:100%;justify-content:center}}@media (max-width: 430px){.calendar-header[data-v-2f73d0f7]{padding:.75rem}.calendar-title[data-v-2f73d0f7]{font-size:1.25rem}.calendar-controls-bar[data-v-2f73d0f7]{padding:.5rem;gap:.5rem}.btn-primary[data-v-2f73d0f7]{padding:.5rem .75rem;font-size:.85rem}.date-display-button[data-v-2f73d0f7]{font-size:.75rem;padding:.5rem;min-width:0}.date-display-button i[data-v-2f73d0f7]{font-size:.85rem}.nav-button[data-v-2f73d0f7]{width:32px;height:32px}.btn-today[data-v-2f73d0f7]{font-size:.75rem;padding:.5rem .75rem}.view-button[data-v-2f73d0f7]{font-size:.75rem;padding:.4rem .5rem}.view-button i[data-v-2f73d0f7]{font-size:.8rem}.filter-button[data-v-2f73d0f7]{font-size:.75rem;padding:.5rem}}.custom-discount-row[data-v-6ef23bec]{display:flex;align-items:center;gap:var(--spacing-sm)}.discount-input[data-v-6ef23bec]{max-width:140px}@media (max-width: 768px){.custom-discount-row[data-v-6ef23bec]{flex-direction:column;align-items:stretch}.discount-input[data-v-6ef23bec]{max-width:none;width:100%}}.client-autocomplete[data-v-c3cee40d]{position:relative}.search-input-wrapper[data-v-c3cee40d]{position:relative;display:flex;align-items:center}.search-icon[data-v-c3cee40d]{position:absolute;left:12px;color:var(--text-muted, #94A3B8);pointer-events:none;font-size:14px}.search-input[data-v-c3cee40d]{width:100%;padding:10px 40px 10px 38px;border:1px solid var(--border-color, #E2E8F0);border-radius:8px;font-size:14px;transition:all .2s}.search-input[data-v-c3cee40d]:focus{outline:none;border-color:var(--primary-color, #8B6B47);box-shadow:0 0 0 3px #8b6b471a}.clear-button[data-v-c3cee40d]{position:absolute;right:8px;background:none;border:none;color:var(--text-muted, #94A3B8);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.clear-button[data-v-c3cee40d]:hover{background:var(--bg-hover, #F1F5F9);color:var(--text-primary, #1E293B)}.autocomplete-dropdown[data-v-c3cee40d]{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--border-color, #E2E8F0);border-radius:8px;box-shadow:0 4px 12px #0000001a;max-height:300px;overflow-y:auto;z-index:1000}.dropdown-loading[data-v-c3cee40d],.dropdown-empty[data-v-c3cee40d]{padding:16px;text-align:center;color:var(--text-muted, #94A3B8);font-size:14px}.dropdown-loading i[data-v-c3cee40d]{margin-right:8px}.dropdown-item[data-v-c3cee40d]{padding:12px;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--border-light, #F1F5F9)}.dropdown-item[data-v-c3cee40d]:last-child{border-bottom:none}.dropdown-item[data-v-c3cee40d]:hover,.dropdown-item.highlighted[data-v-c3cee40d]{background:var(--bg-hover, #F8FAFC)}.client-item[data-v-c3cee40d]{display:flex;flex-direction:column;gap:4px}.client-name[data-v-c3cee40d]{font-weight:500;color:var(--text-primary, #1E293B);font-size:14px}.client-details[data-v-c3cee40d]{display:flex;gap:12px;font-size:12px;color:var(--text-muted, #64748B)}.client-email[data-v-c3cee40d],.client-phone[data-v-c3cee40d]{display:flex;align-items:center;gap:4px}.client-details i[data-v-c3cee40d]{font-size:11px}.selected-client-card[data-v-c3cee40d]{margin-top:12px;padding:12px;background:var(--bg-light, #F8FAFC);border:1px solid var(--border-color, #E2E8F0);border-radius:8px;display:flex;gap:12px;align-items:center}.client-avatar[data-v-c3cee40d]{width:40px;height:40px;border-radius:50%;background:var(--primary-color, #8B6B47);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.client-avatar i[data-v-c3cee40d]{font-size:18px}.selected-client-card .client-info[data-v-c3cee40d]{flex:1;min-width:0}.selected-client-card .client-name[data-v-c3cee40d]{font-weight:500;color:var(--text-primary, #1E293B);margin-bottom:4px}.selected-client-card .client-meta[data-v-c3cee40d]{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--text-muted, #64748B)}.selected-client-card .client-meta span[data-v-c3cee40d]{display:flex;align-items:center;gap:6px}.selected-client-card .client-meta i[data-v-c3cee40d]{font-size:11px;width:12px}.dropdown-fade-enter-active[data-v-c3cee40d],.dropdown-fade-leave-active[data-v-c3cee40d]{transition:opacity .2s,transform .2s}.dropdown-fade-enter-from[data-v-c3cee40d],.dropdown-fade-leave-to[data-v-c3cee40d]{opacity:0;transform:translateY(-8px)}.autocomplete-dropdown[data-v-c3cee40d]::-webkit-scrollbar{width:6px}.autocomplete-dropdown[data-v-c3cee40d]::-webkit-scrollbar-track{background:transparent}.autocomplete-dropdown[data-v-c3cee40d]::-webkit-scrollbar-thumb{background:var(--border-color, #E2E8F0);border-radius:3px}.autocomplete-dropdown[data-v-c3cee40d]::-webkit-scrollbar-thumb:hover{background:var(--text-muted, #94A3B8)}.service-category-selector[data-v-3e4d2e68]{display:flex;flex-direction:column;gap:12px}.segmented-tabs[data-v-3e4d2e68]{position:relative;display:grid;grid-template-columns:repeat(2,1fr);background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:999px;box-shadow:0 8px 18px #0000000f;padding:4px}.segmented-tab[data-v-3e4d2e68]{position:relative;z-index:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;padding:10px 14px;border-radius:999px;font-weight:600;color:#0f3a42;cursor:pointer;transition:color .2s;font-size:.9rem}.segmented-tab[aria-selected=true][data-v-3e4d2e68],.segmented-tab.active[data-v-3e4d2e68]{color:#fff}.active-indicator[data-v-3e4d2e68]{position:absolute;inset:4px auto 4px 4px;background:linear-gradient(135deg,#4bb6c8,#116a84);border-radius:999px;transition:transform .25s cubic-bezier(.4,0,.2,1);z-index:0}@media (max-width: 575.98px){.segmented-tab[data-v-3e4d2e68]{font-size:.85rem;padding:8px 10px}}.service-search-wrapper[data-v-3e4d2e68]{position:relative}.search-input-wrapper[data-v-3e4d2e68]{position:relative;display:flex;align-items:center}.search-icon[data-v-3e4d2e68]{position:absolute;left:12px;color:var(--text-muted, #94A3B8);pointer-events:none;font-size:14px}.search-input[data-v-3e4d2e68]{width:100%;padding:10px 40px 10px 38px;border:1px solid var(--border-color, #E2E8F0);border-radius:8px;font-size:14px;transition:all .2s}.search-input[data-v-3e4d2e68]:focus{outline:none;border-color:#4bb6c8;box-shadow:0 0 0 3px #4bb6c81a}.clear-button[data-v-3e4d2e68]{position:absolute;right:8px;background:none;border:none;color:var(--text-muted, #94A3B8);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.clear-button[data-v-3e4d2e68]:hover{background:var(--bg-hover, #F1F5F9);color:var(--text-primary, #1E293B)}.service-dropdown[data-v-3e4d2e68]{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--border-color, #E2E8F0);border-radius:8px;box-shadow:0 4px 12px #0000001a;max-height:300px;overflow-y:auto;z-index:1000}.dropdown-item[data-v-3e4d2e68]{padding:12px;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--border-light, #F1F5F9)}.dropdown-item[data-v-3e4d2e68]:last-child{border-bottom:none}.dropdown-item[data-v-3e4d2e68]:hover,.dropdown-item.highlighted[data-v-3e4d2e68]{background:var(--bg-hover, #F8FAFC)}.service-item[data-v-3e4d2e68]{display:flex;flex-direction:column;gap:4px}.service-name[data-v-3e4d2e68]{font-weight:500;color:var(--text-primary, #1E293B);font-size:14px}.service-details[data-v-3e4d2e68]{display:flex;gap:12px;font-size:12px;color:var(--text-muted, #64748B)}.service-duration[data-v-3e4d2e68],.service-price[data-v-3e4d2e68]{display:flex;align-items:center;gap:4px}.service-details i[data-v-3e4d2e68]{font-size:11px}.dropdown-empty[data-v-3e4d2e68]{padding:16px;text-align:center;color:var(--text-muted, #94A3B8);font-size:14px}.selected-service-card[data-v-3e4d2e68]{margin-top:4px;padding:12px;background:var(--bg-light, #F8FAFC);border:1px solid var(--border-color, #E2E8F0);border-radius:8px;display:flex;gap:12px;align-items:center}.service-icon[data-v-3e4d2e68]{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#4bb6c8,#116a84);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.service-icon i[data-v-3e4d2e68]{font-size:18px}.selected-service-card .service-info[data-v-3e4d2e68]{flex:1;min-width:0}.selected-service-card .service-name[data-v-3e4d2e68]{font-weight:500;color:var(--text-primary, #1E293B);margin-bottom:4px}.selected-service-card .service-meta[data-v-3e4d2e68]{display:flex;gap:12px;font-size:12px;color:var(--text-muted, #64748B)}.selected-service-card .service-meta span[data-v-3e4d2e68]{display:flex;align-items:center;gap:6px}.selected-service-card .service-meta i[data-v-3e4d2e68]{font-size:11px;width:12px}.dropdown-fade-enter-active[data-v-3e4d2e68],.dropdown-fade-leave-active[data-v-3e4d2e68]{transition:opacity .2s,transform .2s}.dropdown-fade-enter-from[data-v-3e4d2e68],.dropdown-fade-leave-to[data-v-3e4d2e68]{opacity:0;transform:translateY(-8px)}.service-dropdown[data-v-3e4d2e68]::-webkit-scrollbar{width:6px}.service-dropdown[data-v-3e4d2e68]::-webkit-scrollbar-track{background:transparent}.service-dropdown[data-v-3e4d2e68]::-webkit-scrollbar-thumb{background:var(--border-color, #E2E8F0);border-radius:3px}.service-dropdown[data-v-3e4d2e68]::-webkit-scrollbar-thumb:hover{background:var(--text-muted, #94A3B8)}.service-line-item[data-v-22311efa]{background:var(--spa-light-bg);border:1px solid rgba(0,0,0,.08);border-radius:var(--radius-md);overflow:hidden}.service-header[data-v-22311efa]{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--spacing-md);background:var(--white);border-bottom:1px solid rgba(0,0,0,.08);gap:var(--spacing-sm)}.service-header-content[data-v-22311efa]{flex:1;min-width:0}.form-input-inline[data-v-22311efa]{border:none;background:transparent;padding:var(--spacing-xs);font-weight:600;color:var(--spa-text-dark)}.form-input-inline[data-v-22311efa]:focus{background:var(--spa-light-bg);box-shadow:none}.btn-icon-remove[data-v-22311efa]{background:transparent;border:none;color:var(--spa-text-light);cursor:pointer;padding:var(--spacing-xs);font-size:1rem;transition:color var(--transition-fast);display:flex;align-items:center;justify-content:center;min-width:32px;min-height:32px}.btn-icon-remove[data-v-22311efa]:hover{color:var(--danger);background:#dc35451a;border-radius:var(--radius-sm)}.service-details[data-v-22311efa]{padding:var(--spacing-md)}.service-row[data-v-22311efa]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.service-row[data-v-22311efa]:last-child{margin-bottom:0}.service-label[data-v-22311efa]{font-size:var(--font-size-sm);font-weight:600;color:var(--spa-text);min-width:80px;margin:0}.form-select-sm[data-v-22311efa],.form-input-sm[data-v-22311efa]{padding:6px 10px;font-size:var(--font-size-sm);flex:1;max-width:240px}.duration-inputs[data-v-22311efa]{display:flex;align-items:center;gap:var(--spacing-sm);flex:1;justify-content:flex-end}.duration-input-group[data-v-22311efa]{display:flex;align-items:center;gap:var(--spacing-xs)}.addon-restriction-note[data-v-22311efa]{margin-top:var(--spacing-xs);color:#d97706;font-size:var(--font-size-xs)}.duration-input-group .form-input-sm[data-v-22311efa]{width:70px;max-width:none}.duration-unit[data-v-22311efa]{font-size:var(--font-size-xs);color:var(--spa-text-light);white-space:nowrap}.price-input-group[data-v-22311efa]{display:flex;align-items:center;position:relative}.price-currency[data-v-22311efa]{position:absolute;left:12px;font-size:var(--font-size-sm);color:var(--spa-text);font-weight:600}.price-input-group .form-input-sm[data-v-22311efa]{padding-left:26px;width:100px;max-width:none}.addons-list[data-v-22311efa]{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1}.addon-item[data-v-22311efa]{display:flex;align-items:center;justify-content:space-between;background:var(--white);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.addon-name[data-v-22311efa]{flex:1}.addon-price[data-v-22311efa]{color:var(--spa-teal);font-weight:600;margin-right:var(--spacing-sm)}.prenatal-note[data-v-22311efa]{background:#ffc1071f;border-left:3px solid #ffc107;padding:10px 12px;border-radius:var(--radius-sm);color:#6b7579;font-size:var(--font-size-sm);width:100%}.btn-icon-remove-sm[data-v-22311efa]{background:transparent;border:none;color:var(--spa-text-light);cursor:pointer;padding:2px;font-size:var(--font-size-xs)}.btn-icon-remove-sm[data-v-22311efa]:hover{color:var(--danger)}.w-100[data-v-22311efa]{width:100%}.flex-1[data-v-22311efa]{flex:1}@media (max-width: 768px){.service-line[data-v-22311efa]{padding:1rem}.service-grid[data-v-22311efa],.service-form-row[data-v-22311efa]{grid-template-columns:1fr;gap:.75rem}.duration-row[data-v-22311efa],.price-row[data-v-22311efa]{flex-direction:column;align-items:stretch;gap:.75rem}.duration-group[data-v-22311efa],.price-input-group[data-v-22311efa]{width:100%;max-width:none}.price-input-group .form-input-sm[data-v-22311efa]{width:100%}.form-input-sm[data-v-22311efa],.form-select-sm[data-v-22311efa]{font-size:.9rem;padding:.5rem;min-height:44px}}@media (max-width: 430px){.service-line[data-v-22311efa]{padding:.75rem}.line-header[data-v-22311efa]{padding:.5rem 0;margin-bottom:.5rem}.line-number[data-v-22311efa]{font-size:.75rem;padding:.25rem .5rem}.btn-icon-sm[data-v-22311efa]{width:32px;height:32px;font-size:.75rem}.form-label-sm[data-v-22311efa]{font-size:.75rem;margin-bottom:.3rem}.form-input-sm[data-v-22311efa],.form-select-sm[data-v-22311efa]{font-size:.85rem;padding:.45rem}.duration-row[data-v-22311efa],.price-row[data-v-22311efa]{gap:.5rem}.btn-add-addon[data-v-22311efa]{font-size:.75rem;padding:.35rem .65rem}.prenatal-note[data-v-22311efa]{font-size:.75rem;padding:.5rem .65rem}}.client-profile-panel[data-v-838e9afd]{position:fixed;top:0;right:0;bottom:0;width:700px;max-width:95vw;background:var(--white);box-shadow:var(--shadow-xl);z-index:var(--z-drawer);display:grid;grid-template-columns:280px 1fr;overflow:hidden}.panel-header[data-v-838e9afd]{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:flex-start;padding:var(--spacing-lg);border-bottom:1px solid rgba(0,0,0,.08);background:var(--white)}.panel-title[data-v-838e9afd]{font-size:var(--font-size-xl);font-weight:600;margin:0;color:var(--spa-text-dark)}.btn-close[data-v-838e9afd]{background:transparent;border:none;font-size:var(--font-size-lg);color:var(--spa-text-light);cursor:pointer;padding:var(--spacing-xs);transition:color var(--transition-fast)}.btn-close[data-v-838e9afd]:hover{color:var(--spa-text-dark)}.client-info-sidebar[data-v-838e9afd]{background:var(--spa-light-bg);padding:var(--spacing-lg);border-right:1px solid rgba(0,0,0,.08);overflow-y:auto}.client-avatar[data-v-838e9afd]{width:80px;height:80px;border-radius:50%;background:var(--spa-teal-gradient);display:flex;align-items:center;justify-content:center;color:var(--white);font-size:var(--font-size-2xl);font-weight:700;margin:0 auto var(--spacing-md)}.client-name-display[data-v-838e9afd]{text-align:center;margin-bottom:var(--spacing-lg);font-size:var(--font-size-lg);color:var(--spa-text-dark)}.client-contact[data-v-838e9afd]{margin-bottom:var(--spacing-lg)}.contact-item[data-v-838e9afd]{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) 0;font-size:var(--font-size-sm);color:var(--spa-text)}.contact-item i[data-v-838e9afd]{width:16px;color:var(--spa-text-light)}.quick-stats[data-v-838e9afd]{display:grid;grid-template-columns:1fr;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.stat-item[data-v-838e9afd]{background:var(--white);padding:var(--spacing-md);border-radius:var(--radius-md);text-align:center}.stat-value[data-v-838e9afd]{font-size:var(--font-size-xl);font-weight:700;color:var(--spa-dark-teal);margin-bottom:var(--spacing-xs)}.stat-label[data-v-838e9afd]{font-size:var(--font-size-xs);color:var(--spa-text-light);text-transform:uppercase;letter-spacing:.5px}.upcoming-appointments[data-v-838e9afd]{background:var(--white);padding:var(--spacing-md);border-radius:var(--radius-md)}.section-label[data-v-838e9afd]{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);font-weight:600;color:var(--spa-text-dark);margin-bottom:var(--spacing-sm)}.panel-content[data-v-838e9afd]{display:flex;flex-direction:column;overflow:hidden}.tabs[data-v-838e9afd]{display:flex;gap:2px;padding:var(--spacing-md);border-bottom:2px solid rgba(0,0,0,.08);background:var(--white);overflow-x:auto}.tab-button[data-v-838e9afd]{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;border-bottom:3px solid transparent;font-size:var(--font-size-sm);font-weight:600;color:var(--spa-text-light);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.tab-button[data-v-838e9afd]:hover{color:var(--spa-text);background:var(--spa-light-bg)}.tab-button.active[data-v-838e9afd]{color:var(--spa-dark-teal);border-bottom-color:var(--spa-teal)}.tab-content[data-v-838e9afd]{flex:1;overflow-y:auto;padding:var(--spacing-lg)}.tab-pane[data-v-838e9afd]{animation:fadeIn-838e9afd .2s ease}@keyframes fadeIn-838e9afd{0%{opacity:0}to{opacity:1}}.info-section[data-v-838e9afd]{margin-bottom:var(--spacing-xl)}.info-section h4[data-v-838e9afd]{margin-bottom:var(--spacing-md);color:var(--spa-text-dark)}.info-grid[data-v-838e9afd]{display:flex;flex-direction:column;gap:var(--spacing-md)}.info-item[data-v-838e9afd]{display:flex;flex-direction:column;gap:var(--spacing-xs)}.info-label[data-v-838e9afd]{font-size:var(--font-size-xs);font-weight:600;color:var(--spa-text-light);text-transform:uppercase;letter-spacing:.5px}.info-value[data-v-838e9afd]{font-size:var(--font-size-sm);color:var(--spa-text)}.appointment-history[data-v-838e9afd]{display:flex;flex-direction:column;gap:var(--spacing-md)}.history-item[data-v-838e9afd]{background:var(--spa-light-bg);padding:var(--spacing-md);border-radius:var(--radius-md);border-left:4px solid var(--spa-teal)}.history-date[data-v-838e9afd]{font-size:var(--font-size-xs);font-weight:700;color:var(--spa-dark-teal);margin-bottom:var(--spacing-xs)}.history-service[data-v-838e9afd]{font-size:var(--font-size-sm);font-weight:600;color:var(--spa-text-dark);margin-bottom:var(--spacing-xs)}.history-therapist[data-v-838e9afd]{font-size:var(--font-size-xs);margin-bottom:var(--spacing-sm)}.history-therapist i[data-v-838e9afd]{margin-right:var(--spacing-xs)}.sales-summary[data-v-838e9afd]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.summary-card[data-v-838e9afd]{background:var(--spa-light-bg);padding:var(--spacing-lg);border-radius:var(--radius-lg);text-align:center}.summary-card h4[data-v-838e9afd]{font-size:var(--font-size-sm);color:var(--spa-text-light);margin-bottom:var(--spacing-md);text-transform:uppercase;letter-spacing:.5px}.summary-amount[data-v-838e9afd]{font-size:var(--font-size-3xl);font-weight:700;color:var(--spa-dark-teal)}.notes-section[data-v-838e9afd]{max-width:600px}.empty-state[data-v-838e9afd]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--spa-text-light);text-align:center}.empty-state i[data-v-838e9afd]{font-size:48px;margin-bottom:var(--spacing-md);opacity:.3}@media (max-width: 900px){.client-profile-panel[data-v-838e9afd]{grid-template-columns:1fr;grid-template-rows:auto auto 1fr}.client-info-sidebar[data-v-838e9afd]{border-right:none;border-bottom:1px solid rgba(0,0,0,.08)}}.calendar-view[data-v-2545f25c]{height:100vh;overflow:hidden;position:relative}.calendar-bootstrap-state[data-v-2545f25c]{height:100%;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(180deg,#f8fbfc,#f0f5f7)}.calendar-bootstrap-card[data-v-2545f25c]{width:min(520px,100%);border:1px solid #dbe7ee;border-radius:16px;background:#fff;padding:2rem 1.75rem;text-align:center;box-shadow:0 10px 30px #0f3a4214}.calendar-bootstrap-card h2[data-v-2545f25c]{margin:0 0 .5rem;color:#0f3a42;font-size:1.25rem}.calendar-bootstrap-card p[data-v-2545f25c]{margin:0;color:#5f7480}.calendar-bootstrap-card.error[data-v-2545f25c]{border-color:#f3d3d3}.calendar-spinner[data-v-2545f25c]{display:inline-block;width:2rem;height:2rem;border-radius:999px;border:3px solid #dbe7ee;border-top-color:#0f766e;margin-bottom:.875rem;animation:calendar-spin-2545f25c .9s linear infinite}@keyframes calendar-spin-2545f25c{to{transform:rotate(360deg)}}.calendar-auto-refresh-notice[data-v-2545f25c]{position:absolute;top:.875rem;right:1rem;z-index:32;padding:.5rem .75rem;border-radius:999px;background:#0f766ef2;color:#fff;font-size:.8125rem;font-weight:600;box-shadow:0 8px 18px #00000029}:root{--spa-teal: #4bb6c8;--spa-dark-teal: #116a84;--spa-teal-gradient: linear-gradient(90deg, #58c2d3, #176e86);--spa-green: #8bc9a3;--spa-sand: #e8dfd3;--spa-text: #0f3a42;--spa-text-light: #6a8a99;--spa-text-dark: #23404a;--spa-light-bg: #f8fbfc;--spa-bg-gradient: linear-gradient(180deg, #f8fbfc 0%, #f0f5f7 100%);--white: #ffffff;--navbar-bg: #cbd6d6;--navbar-bg-dark: #b8c5c5;--success: #28a745;--warning: #ffc107;--danger: #dc3545;--info: #17a2b8;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .08);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 6px 14px rgba(0, 0, 0, .12);--shadow-xl: 0 10px 24px rgba(0, 0, 0, .15);--font-body: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: "Playfair Display", Georgia, serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--calendar-header-height: 66px;--calendar-time-width: 80px;--slot-height: 25px;--appointment-card-border-radius: var(--radius-md);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--z-dropdown: 1000;--z-modal: 1050;--z-drawer: 1040;--z-tooltip: 1060}:root{--status-confirmed: #28a745;--status-pending: #ffc107;--status-cancelled: #dc3545;--status-no-show: #6c757d;--status-completed: #17a2b8}.appointment-drawer{position:fixed;top:0;right:0;bottom:0;width:500px;max-width:90vw;background:var(--white);box-shadow:var(--shadow-xl);z-index:var(--z-drawer);display:flex;flex-direction:column;overflow:hidden}.drawer-header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--spacing-lg);border-bottom:1px solid rgba(0,0,0,.08)}.header-content{flex:1}.drawer-title{font-size:var(--font-size-xl);font-weight:600;margin:0 0 var(--spacing-md) 0;color:var(--spa-text-dark)}.datetime-inputs{display:flex;gap:var(--spacing-md);align-items:flex-end}.datetime-field{display:flex;flex-direction:column;gap:.25rem}.datetime-label{font-size:var(--font-size-xs);font-weight:500;color:var(--spa-text-light);text-transform:uppercase;letter-spacing:.5px}.datetime-input{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:var(--font-size-sm);font-family:inherit;color:var(--spa-text-dark);background:#fff;transition:all .2s}.datetime-input:focus{outline:none;border-color:#4bb6c8;box-shadow:0 0 0 3px #4bb6c81a}.datetime-input:hover{border-color:#9ca3af}.drawer-subtitle{margin:0;font-size:var(--font-size-sm)}.btn-close{background:transparent;border:none;font-size:var(--font-size-lg);color:var(--spa-text-light);cursor:pointer;padding:var(--spacing-xs);transition:color var(--transition-fast)}.btn-close:hover{color:var(--spa-text-dark)}.drawer-content{flex:1;overflow-y:auto;padding:var(--spacing-lg)}.drawer-section{margin-bottom:var(--spacing-xl)}.drawer-section:last-child{margin-bottom:0}.drawer-footer{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding:var(--spacing-lg);border-top:1px solid rgba(0,0,0,.08);background:var(--spa-light-bg)}.client-info-card{background:var(--spa-light-bg);border-radius:var(--radius-md);padding:var(--spacing-md)}.client-name{font-size:var(--font-size-lg);font-weight:600;color:var(--spa-text-dark);margin-bottom:var(--spacing-xs)}.client-meta{font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.client-meta:last-child{margin-bottom:0}.client-meta i{margin-right:var(--spacing-xs);width:16px}.service-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.duration-breakdown{background:var(--spa-light-bg);border-radius:var(--radius-md);padding:var(--spacing-md)}.duration-row{display:flex;justify-content:space-between;padding:var(--spacing-xs) 0;font-size:var(--font-size-sm)}.duration-total{border-top:2px solid rgba(0,0,0,.1);margin-top:var(--spacing-xs);padding-top:var(--spacing-sm);font-weight:600;color:var(--spa-text-dark)}.duration-subtotal{border-top:1px solid rgba(0,0,0,.05);margin-top:var(--spacing-xs);padding-top:var(--spacing-xs);font-weight:500;color:var(--spa-teal)}.per-person-breakdown{margin-bottom:var(--spacing-lg);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md)}.person-allocation{border:1px solid var(--spa-border);border-radius:var(--radius-md);padding:var(--spacing-md);background:linear-gradient(135deg,#4bc0c00d,#4bc0c005)}.person-header{display:flex;align-items:center;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--spa-teal)}.person-name{font-weight:600;color:var(--spa-teal);font-size:var(--font-size-sm)}.client-controls-row{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center;margin-bottom:var(--spacing-md)}.btn-segment{display:inline-flex;border:1px solid #e5e7eb;border-radius:999px;overflow:hidden;background:#f3f4f6}.btn-segment button{border:none;background:transparent;padding:.35rem .9rem;cursor:pointer;color:#4b5563;font-weight:600}.btn-segment button.active{background:#0f766e;color:#f8fafc}.grid-two{display:grid;gap:var(--spacing-md)}@media (min-width: 768px){.grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}}.field{margin-bottom:var(--spacing-md)}.field-label{display:flex;justify-content:space-between;align-items:baseline;font-weight:600;margin-bottom:4px;font-size:.95rem}.req{color:#dc2626;margin-left:4px}.field-input{width:100%;border-radius:10px;border:1px solid #e5e7eb;padding:10px 12px;font-size:.95rem;background:#f9fafb}.field-input:focus{border-color:#0f766e;outline:none;box-shadow:0 0 0 1px #0f766e1a;background:#fff}.error-banner{margin-top:var(--spacing-sm);padding:10px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;font-size:.95rem}.payment-info-card{background:var(--spa-light-bg);border-radius:var(--radius-md);padding:var(--spacing-md)}.payment-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) 0;font-size:var(--font-size-sm)}.payment-row i{margin-right:var(--spacing-xs)}.price-summary{background:var(--spa-light-bg);border-radius:var(--radius-md);padding:var(--spacing-md)}.price-row{display:flex;justify-content:space-between;padding:var(--spacing-xs) 0;font-size:var(--font-size-base)}.price-total{border-top:2px solid rgba(0,0,0,.1);margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);font-size:var(--font-size-lg);font-weight:700;color:var(--spa-text-dark)}.couples-section{border-left:3px solid var(--spa-teal);background:#4bb6c80d}.couples-section .form-label{color:var(--spa-teal)}.additional-clients-section{border-left:3px solid var(--spa-teal);background:#4bb6c80d}.additional-clients-section .form-label{color:var(--spa-teal)}.additional-client-card{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-sm)}.additional-client-card:last-child{margin-bottom:0}.client-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.client-number{font-weight:600;color:var(--spa-teal);font-size:var(--font-size-sm)}.btn-icon-sm{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);transition:all .2s}.btn-icon-sm:hover{background:var(--danger);color:#fff}.new-client-form.compact{margin-top:0}.new-client-form.compact .text-muted{display:none}.group-count-selector{display:flex;align-items:center;background:var(--spa-light-bg);padding:4px 8px;border-radius:var(--radius-sm)}.group-count-input{width:50px;padding:4px 8px;text-align:center;border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-sm)}.drawer-slide-enter-active,.drawer-slide-leave-active{transition:transform var(--transition-slow)}.drawer-slide-enter-from,.drawer-slide-leave-to{transform:translate(100%)}@media (max-width: 768px){.appointment-drawer{width:100vw}.drawer-header,.drawer-section{padding:1rem}.drawer-title{font-size:1.25rem}.form-group{margin-bottom:1rem}.time-inputs{flex-direction:column;gap:.75rem}.time-input-group{flex:1;min-width:100%}.status-buttons{gap:.5rem}.status-btn{padding:.5rem .75rem;font-size:.85rem}}@media (max-width: 430px){.drawer-header{padding:.75rem}.drawer-title{font-size:1.1rem}.drawer-subtitle{font-size:.75rem}.drawer-section{padding:.75rem}.form-label{font-size:.85rem;margin-bottom:.4rem}.form-input,.form-select,.form-textarea{padding:.5rem;font-size:.9rem;min-height:44px}.btn{min-height:44px;padding:.5rem 1rem;font-size:.85rem}.status-btn{padding:.4rem .6rem;font-size:.75rem}.drawer-footer{padding:.75rem;gap:.5rem}.drawer-footer .btn{flex:1}.payment-row{font-size:.85rem}.price-row{font-size:.9rem}.price-total{font-size:1rem}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);font-size:var(--font-size-base);line-height:1.6;color:var(--spa-text);background:var(--spa-bg-gradient);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:1.2;color:var(--spa-text-dark)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5,h6{font-size:var(--font-size-base)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:10px 20px;font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:600;line-height:1.5;text-decoration:none;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.btn:focus-visible{outline:2px solid var(--spa-dark-teal);outline-offset:2px}.btn-primary{background:var(--spa-teal-gradient);color:var(--white);box-shadow:var(--shadow-sm)}.btn-primary:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--white);color:var(--spa-text);border:1px solid rgba(0,0,0,.1)}.btn-secondary:hover{background:var(--spa-light-bg);border-color:var(--spa-teal)}.btn-ghost{background:transparent;color:var(--spa-teal)}.btn-ghost:hover{background:#4bb6c81a}.btn-sm{padding:6px 12px;font-size:var(--font-size-xs)}.btn-lg{padding:14px 28px;font-size:var(--font-size-base)}.card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.card-body{padding:var(--spacing-lg)}.card-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid rgba(0,0,0,.08);font-weight:600;color:var(--spa-text-dark)}.badge{display:inline-flex;align-items:center;padding:4px 10px;font-size:var(--font-size-xs);font-weight:600;border-radius:var(--radius-pill);white-space:nowrap}.badge-confirmed{background:#28a7451a;color:var(--status-confirmed)}.badge-pending{background:#ffc1071a;color:#d39e00}.badge-cancelled{background:#dc35451a;color:var(--status-cancelled)}.badge-no-show{background:#6c757d1a;color:var(--status-no-show)}.badge-completed{background:#17a2b81a;color:var(--status-completed)}.form-group{margin-bottom:var(--spacing-md)}.form-label{display:block;margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm);font-weight:600;color:var(--spa-text-dark)}.form-input,.form-select,.form-textarea{width:100%;padding:10px 12px;font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--spa-text);background:var(--white);border:1px solid rgba(0,0,0,.15);border-radius:var(--radius-md);transition:border-color var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--spa-teal);box-shadow:0 0 0 3px #4bb6c81a}.form-textarea{resize:vertical;min-height:80px}.text-muted{color:var(--spa-text-light)}.text-center{text-align:center}.text-right{text-align:right}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-xs)}.mb-2{margin-bottom:var(--spacing-sm)}.mb-3{margin-bottom:var(--spacing-md)}.mb-4{margin-bottom:var(--spacing-lg)}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing-xs)}.mt-2{margin-top:var(--spacing-sm)}.mt-3{margin-top:var(--spacing-md)}.mt-4{margin-top:var(--spacing-lg)}.d-flex{display:flex}.align-items-center{align-items:center}.justify-content-between{justify-content:space-between}.gap-1{gap:var(--spacing-xs)}.gap-2{gap:var(--spacing-sm)}.gap-3{gap:var(--spacing-md)}.gap-4{gap:var(--spacing-lg)}.spinner{display:inline-block;width:20px;height:20px;border:2px solid rgba(75,182,200,.2);border-top-color:var(--spa-teal);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;z-index:calc(var(--z-drawer) - 1);opacity:0;transition:opacity var(--transition-base)}.drawer-overlay.active{opacity:1}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--spa-light-bg)}::-webkit-scrollbar-thumb{background:#4bb6c84d;border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:#4bb6c880}@media (max-width: 768px){:root{--font-size-3xl: 1.75rem;--font-size-2xl: 1.375rem}}@media (max-width: 1024px){.calendar-header-top,.calendar-controls{flex-direction:column;gap:var(--spacing-md)}.view-switcher{justify-content:flex-start}}@media (max-width: 768px){.calendar-container{height:auto;min-height:100vh}.calendar-header{flex-direction:column;align-items:stretch;padding:var(--spacing-md);gap:var(--spacing-md);height:auto}.calendar-header-top{flex-direction:column;gap:var(--spacing-sm)}.calendar-title{font-size:var(--font-size-xl)}.calendar-actions{display:flex;gap:var(--spacing-sm);width:100%}.calendar-actions button{flex:1}.calendar-controls{flex-direction:column;gap:var(--spacing-md)}.date-navigation{display:flex;gap:var(--spacing-sm);align-items:center;justify-content:space-between}.nav-button{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-lg)}.date-display-button{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-today{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm)}.view-switcher{display:flex;gap:var(--spacing-xs);border-bottom:2px solid rgba(0,0,0,.08)}.view-button{flex:1;padding:var(--spacing-md);background:none;border:none;border-bottom:3px solid transparent;font-size:var(--font-size-sm);cursor:pointer;transition:all .2s ease;color:var(--spa-text-light)}.view-button.active{border-bottom-color:var(--spa-primary);color:var(--spa-primary);font-weight:600}.view-button i{display:block;font-size:var(--font-size-lg);margin-bottom:var(--spacing-xs)}.calendar-grid{grid-template-columns:60px repeat(auto-fit,minmax(120px,1fr));gap:0}.time-slot{height:60px;padding:var(--spacing-xs);font-size:var(--font-size-xs)}.therapist-column{min-width:120px}.therapist-header{height:60px;padding:var(--spacing-xs);font-size:var(--font-size-sm)}.appointment-card{padding:var(--spacing-xs);font-size:var(--font-size-xs);border-radius:4px}.appointment-card-title{font-weight:600;line-height:1.2}.appointment-card-time{font-size:var(--font-size-xs)}.appointment-card-info{display:none}.client-profile-panel{width:100%;max-height:300px;border-left:none;border-top:1px solid rgba(0,0,0,.08)}}@media (max-width: 480px){.calendar-container{padding-bottom:var(--spacing-md)}.calendar-header{padding:var(--spacing-md) var(--spacing-sm);position:sticky;top:0;z-index:20}.calendar-title{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm)}.calendar-header-top{flex-direction:column;gap:var(--spacing-sm)}.calendar-actions{flex-direction:column;gap:var(--spacing-xs);width:100%}.calendar-actions button{width:100%;padding:var(--spacing-sm) var(--spacing-md)}.calendar-controls{flex-direction:column;gap:var(--spacing-sm)}.date-navigation{display:flex;align-items:center;gap:var(--spacing-xs);flex-wrap:wrap}.nav-button{padding:var(--spacing-sm);font-size:var(--font-size-md);flex-shrink:0}.date-display-button{flex:1;min-width:120px;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-today{padding:var(--spacing-sm) var(--spacing-sm);font-size:var(--font-size-xs);white-space:nowrap}.view-switcher{display:flex;gap:0;border-bottom:2px solid rgba(0,0,0,.08);margin:0 -var(--spacing-sm);padding:0 var(--spacing-sm)}.view-button{flex:1;padding:var(--spacing-sm);font-size:var(--font-size-xs);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-xs)}.view-button i{font-size:var(--font-size-md)}.view-button span{display:block}.calendar-grid{display:flex;flex-direction:column;grid-template-columns:none;overflow:auto;padding:0 var(--spacing-sm)}.calendar-time-column{display:none}.therapist-column{min-width:100%;margin-bottom:var(--spacing-md);border:1px solid rgba(0,0,0,.08);border-radius:8px;overflow:hidden}.therapist-header{height:auto;padding:var(--spacing-md);background:var(--spa-primary-light);border-bottom:2px solid var(--spa-primary);font-size:var(--font-size-md);font-weight:600;color:var(--spa-primary)}.therapist-header-name{display:block;margin-bottom:var(--spacing-xs)}.therapist-header-status{font-size:var(--font-size-xs);font-weight:400;color:var(--spa-text-light)}.time-slot{display:none}.appointment-card{padding:var(--spacing-md);margin:var(--spacing-sm);border-radius:6px;border-left:4px solid var(--spa-primary);cursor:pointer;transition:all .2s ease}.appointment-card:active{background:#0000000d;transform:translate(2px)}.appointment-card-time{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);font-weight:600;color:var(--spa-primary);margin-bottom:var(--spacing-xs)}.appointment-card-time i{font-size:var(--font-size-lg)}.appointment-card-title{font-weight:600;font-size:var(--font-size-md);color:var(--spa-text-dark);margin-bottom:var(--spacing-xs)}.appointment-card-client{font-size:var(--font-size-sm);color:var(--spa-text);margin-bottom:var(--spacing-xs)}.appointment-card-services{font-size:var(--font-size-xs);color:var(--spa-text-light);line-height:1.4}.appointment-card-info{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid rgba(0,0,0,.08)}.appointment-card-badge{display:inline-block;padding:2px 6px;background:var(--spa-primary-light);color:var(--spa-primary);border-radius:3px;font-size:var(--font-size-xs);font-weight:500}.client-profile-panel{position:fixed;bottom:0;left:0;right:0;width:100%;max-height:50vh;background:var(--white);border-top:2px solid var(--spa-primary);border-radius:16px 16px 0 0;z-index:100;overflow-y:auto;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.client-profile-header{position:sticky;top:0;background:var(--white);padding:var(--spacing-md);border-bottom:1px solid rgba(0,0,0,.08);display:flex;justify-content:space-between;align-items:center;z-index:10}.client-profile-close{background:none;border:none;cursor:pointer;font-size:var(--font-size-lg);color:var(--spa-text-light);padding:0}.appointment-drawer{position:fixed;bottom:0;left:0;right:0;width:100%;max-height:90vh;background:var(--white);border-top-left-radius:16px;border-top-right-radius:16px;z-index:101;overflow-y:auto;animation:slideUp .3s ease-out}.appointment-drawer-header{position:sticky;top:0;background:var(--white);padding:var(--spacing-md);border-bottom:1px solid rgba(0,0,0,.08);display:flex;justify-content:space-between;align-items:center;z-index:10}.appointment-drawer-title{font-size:var(--font-size-lg);font-weight:600}.appointment-drawer-close{background:none;border:none;cursor:pointer;font-size:var(--font-size-lg);color:var(--spa-text-light);padding:0}.appointment-drawer-content{padding:var(--spacing-md)}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-xs);color:var(--spa-text-dark)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);border:1px solid rgba(0,0,0,.12);border-radius:6px;box-sizing:border-box}.form-group textarea{resize:vertical;min-height:100px}.btn{width:100%;padding:var(--spacing-md);font-size:var(--font-size-md);border-radius:6px;border:none;cursor:pointer;font-weight:600;transition:all .2s ease}.btn:active{transform:scale(.98)}.btn-group{display:flex;gap:var(--spacing-sm)}.btn-group .btn{flex:1}.service-line-item{padding:var(--spacing-md);margin-bottom:var(--spacing-md);background:#00000005;border-left:4px solid var(--spa-primary);border-radius:4px}.service-line-item-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:var(--spacing-sm)}.service-line-item-name{font-weight:600;color:var(--spa-text-dark)}.service-line-item-price{font-weight:600;color:var(--spa-primary)}.service-line-item-duration{font-size:var(--font-size-sm);color:var(--spa-text-light);margin-bottom:var(--spacing-sm)}.service-line-item-addons{font-size:var(--font-size-sm);color:var(--spa-text);line-height:1.6}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-lg);text-align:center}.empty-state-icon{font-size:3rem;color:var(--spa-text-light);margin-bottom:var(--spacing-md)}.empty-state-title{font-size:var(--font-size-lg);font-weight:600;color:var(--spa-text-dark);margin-bottom:var(--spacing-sm)}.empty-state-message{font-size:var(--font-size-sm);color:var(--spa-text-light);margin-bottom:var(--spacing-lg)}.tooltip{display:none}.loading-spinner{display:inline-block;width:20px;height:20px;border:3px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:var(--spa-primary);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.mobile-only{display:block}.hide-mobile{display:none}.touch-target{min-height:44px;min-width:44px}input,select,textarea,button{font-size:16px}}@media (max-width: 320px){.calendar-title{font-size:var(--font-size-md)}.calendar-actions{flex-direction:column}.calendar-actions button{font-size:var(--font-size-sm);padding:var(--spacing-sm)}.date-display-button{min-width:80px;font-size:var(--font-size-xs)}.appointment-card{padding:var(--spacing-sm);margin:var(--spacing-xs)}}.calendar-container{--therapist-column-width: 200px;display:flex;flex-direction:column;height:100vh;background:var(--spa-light-bg)}.calendar-layout{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.calendar-header-row{display:flex;height:var(--calendar-header-height);background:var(--white);border-bottom:1px solid rgba(0,0,0,.08);box-shadow:0 2px 4px #0000000d;z-index:20;overflow:hidden}.calendar-header-spacer{width:var(--calendar-time-width);flex-shrink:0;border-right:1px solid rgba(0,0,0,.08);background:var(--white)}.calendar-headers-scroll{flex:1;display:flex;overflow-x:hidden;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-behavior:smooth}.calendar-headers-scroll::-webkit-scrollbar{height:8px}.calendar-headers-scroll::-webkit-scrollbar-track{background:transparent}.calendar-headers-scroll::-webkit-scrollbar-thumb{background:#0003;border-radius:4px}.calendar-headers-track{display:flex;gap:0;min-width:min-content}.therapist-header-cell{min-width:var(--therapist-column-width);flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:var(--spacing-sm);border-right:1px solid rgba(0,0,0,.08);font-weight:600;color:var(--spa-text-dark);gap:6px;flex-direction:column}.therapist-name{font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;text-align:center}.therapist-avatar{width:36px;height:36px;border-radius:50%;background:var(--spa-teal-gradient);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;box-shadow:var(--shadow-sm)}.calendar-body{flex:1;display:flex;min-height:0;overflow:hidden}.calendar-time-column{width:var(--calendar-time-width);flex-shrink:0;background:var(--white);border-right:1px solid rgba(0,0,0,.08);z-index:15;overflow:hidden;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;display:flex;flex-direction:column}.calendar-time-column::-webkit-scrollbar{display:none}.time-slot-hour{height:calc(var(--slot-height) * 4);padding:4px 0 0;font-size:var(--font-size-xs);color:var(--spa-text-dark);text-align:center;display:flex;align-items:flex-start;justify-content:center;flex-shrink:0;font-weight:600;box-sizing:border-box;box-shadow:inset 0 2px #0003}.time-slot{height:var(--slot-height);padding:var(--spacing-sm);border-bottom:1px solid rgba(0,0,0,.05);font-size:var(--font-size-xs);color:var(--spa-text-light);text-align:center;display:flex;align-items:center;justify-content:center;flex-shrink:0}.calendar-grid-scroll{flex:1;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;position:relative;scroll-behavior:smooth}.calendar-grid-scroll::-webkit-scrollbar-track{background:transparent}.calendar-grid-scroll::-webkit-scrollbar-thumb{background:#0003}.calendar-grid-scroll::-webkit-scrollbar{width:8px;height:8px}.calendar-grid-track{display:flex;gap:0;min-width:min-content;height:fit-content}.therapist-column{min-width:var(--therapist-column-width);flex-shrink:0;display:flex;flex-direction:column;position:relative;border-right:1px solid rgba(0,0,0,.08)}.therapist-time-slot{height:var(--slot-height);flex-shrink:0;position:relative;cursor:pointer;transition:background-color .15s ease;display:flex;align-items:center;justify-content:center;box-sizing:border-box;box-shadow:inset 0 1px #00000014}.therapist-time-slot:nth-child(4n+1){box-shadow:inset 0 2px #0003}.therapist-time-slot:hover{background-color:#4bb6c814}.therapist-time-slot.is-hovered{background-color:#4bb6c826}.slot-time-badge{font-size:var(--font-size-xs);font-weight:600;color:var(--spa-teal);background:#4bb6c826;border:1px solid rgba(75,182,200,.3);border-radius:4px;padding:2px 6px;pointer-events:none}.therapist-appointments{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.therapist-appointments>*{pointer-events:auto}.appointment-card{position:absolute;left:4px;right:4px;background:var(--white);border-left:4px solid var(--spa-teal);border-radius:var(--appointment-card-border-radius);padding:var(--spacing-sm);box-shadow:var(--shadow-md);cursor:pointer;transition:all var(--transition-fast);overflow:hidden;z-index:2}.appointment-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px);z-index:3}.appointment-card.status-confirmed{border-left-color:var(--status-confirmed)}.appointment-card.status-pending{border-left-color:var(--status-pending)}.appointment-card.status-cancelled{border-left-color:var(--status-cancelled);opacity:.6}.appointment-card.status-blocked{border-left-color:var(--status-no-show);opacity:.85}.appointment-time{font-size:var(--font-size-xs);font-weight:700;color:var(--spa-dark-teal);margin-bottom:2px}.appointment-client{font-size:var(--font-size-sm);font-weight:600;color:var(--spa-text-dark);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment-service{font-size:var(--font-size-xs);color:var(--spa-text-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment-icons{display:flex;gap:var(--spacing-xs);margin-top:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--spa-text-light)}.current-time-line{position:absolute;left:0;height:2px;background:var(--danger);z-index:3;pointer-events:none}.current-time-line:before{content:"";position:absolute;left:0;transform:translate(-50%);top:-4px;width:10px;height:10px;background:var(--danger);border-radius:50%}.calendar-empty{grid-column:2 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--spa-text-light);text-align:center}.calendar-empty-icon{font-size:64px;margin-bottom:var(--spacing-lg);opacity:.3}.appointment-card.dragging{opacity:.7;box-shadow:0 8px 20px #4bb6c866;cursor:grabbing;z-index:1000}.appointment-card.dragging:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#8bc9a333,#4bb6c833);border-radius:var(--appointment-card-border-radius)}.drag-preview{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#4bb6c81a;border-radius:var(--appointment-card-border-radius);pointer-events:none}.preview-time{font-size:var(--font-size-xs);font-weight:700;color:var(--spa-dark-teal);text-align:center;padding:var(--spacing-sm)}.appointment-card{cursor:grab;-webkit-user-select:none;user-select:none}.appointment-card:active{cursor:grabbing}.confirmation-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.confirmation-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:400px;width:90%;overflow:hidden;animation:modalSlideIn .3s ease}@keyframes modalSlideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:linear-gradient(135deg,var(--spa-teal),var(--spa-dark-teal));color:#fff;border-bottom:1px solid rgba(0,0,0,.1)}.modal-header h3{margin:0;font-size:1.25rem;font-weight:600}.close-btn{background:none;border:none;color:#fff;font-size:1.75rem;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:transform .2s ease}.close-btn:hover{transform:scale(1.2)}.modal-body{padding:1.5rem}.confirmation-text{margin:0 0 1.5rem;font-size:1rem;color:#333;line-height:1.5}.confirmation-text strong{color:var(--spa-dark-teal);font-weight:600}.time-comparison{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;background:#f5f9fa;border-radius:8px;border:1px solid #e0f2f7}.time-block{flex:1;text-align:center}.time-label{font-size:.8rem;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.time-value{font-size:1.1rem;font-weight:700;color:var(--spa-dark-teal)}.arrow{font-size:1.5rem;color:var(--spa-teal);font-weight:600}.modal-footer{display:flex;gap:.75rem;padding:1.5rem;background:#f9f9f9;border-top:1px solid #e0e0e0;justify-content:flex-end}.btn-cancel,.btn-confirm{padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s ease;font-size:.95rem}.btn-cancel{background:#f0f0f0;color:#333;border:1px solid #d0d0d0}.btn-cancel:hover{background:#e0e0e0;border-color:#999}.btn-confirm{background:var(--spa-teal);color:#fff;border:1px solid var(--spa-teal)}.btn-confirm:hover{background:#3fa5b5;border-color:#3fa5b5;transform:translateY(-1px);box-shadow:0 4px 12px #4bb6c84d}.btn-confirm:active{transform:translateY(0)}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}@media (max-width: 1024px){.therapist-column{min-width:140px}.calendar-container{--therapist-column-width: 140px}.appointment-card{padding:var(--spacing-xs)}.appointment-client{font-size:var(--font-size-xs)}}@media (max-width: 768px){.calendar-grid{grid-template-columns:60px repeat(auto-fit,minmax(120px,1fr))}:root{--calendar-time-width: 60px;--slot-height: 20px}.therapist-header{flex-direction:column;padding:var(--spacing-xs);font-size:.75rem}.therapist-avatar{margin:0 0 var(--spacing-xs) 0;width:28px;height:28px;font-size:.7rem}.appointment-service{display:none}.time-slot{font-size:.7rem;padding:.25rem}}@media (max-width: 430px){.calendar-header{padding:.75rem}.calendar-title{font-size:1.25rem}.calendar-grid{grid-template-columns:50px repeat(auto-fit,minmax(100px,1fr));font-size:.75rem}:root{--calendar-time-width: 50px;--slot-height: 18px;--calendar-header-height: 60px}.therapist-column{min-width:100px}.calendar-container{--therapist-column-width: 100px}.therapist-header{font-size:.7rem;padding:.25rem}.therapist-avatar{width:24px;height:24px;font-size:.65rem;margin:0 0 .25rem}.time-slot{font-size:.65rem;padding:.2rem;height:45px}.appointment-card{padding:.25rem;border-left-width:3px}.appointment-time{font-size:.65rem}.appointment-client{font-size:.7rem}.appointment-icons{display:none}.slot-time-tooltip{font-size:.7rem;padding:2px 8px}}
