@import"https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;700&display=swap";:root{--primary: hsl(199, 76%, 56%);--primary-light: hsl(199, 76%, 92%);--primary-dark: hsl(199, 76%, 40%);--text: #3d3d3d;--text-light: #696969;--text-muted: #848484;--border: #d6dee8;--bg: #ffffff;--bg-subtle: #f5f8fb;font-family:Roboto,sans-serif;color:var(--text);background:var(--bg);line-height:1.5;font-weight:400;color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}#root{min-height:100vh}.page-shell{width:min(1040px,calc(100vw - 32px));margin:0 auto;padding:48px 0 64px}.hero-card,.form-card,.toast,.slot-day-card,.slot-selected-card,.booking-summary{background:var(--bg);border:1px solid var(--border);box-shadow:0 4px 18px #0000000f}.hero-card{padding:28px;border-radius:16px;margin-bottom:24px}.eyebrow{margin:0 0 8px;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:700;color:var(--primary)}.hero-card h1{margin:0;font-size:clamp(2.4rem,5vw,4.3rem);line-height:.95;color:var(--text)}.hero-copy{max-width:42rem;margin:14px 0 0;color:var(--text-light);font-size:1.05rem;font-weight:300}.api-pill{display:inline-flex;margin-top:18px;padding:10px 14px;border-radius:3px;background:var(--primary);color:#fff;font-size:.9rem}.toast{margin-bottom:20px;padding:14px 18px;border-radius:10px}.form-card{padding:28px;border-radius:16px}.booking-form{display:grid;gap:20px}.field-group{display:grid;gap:8px}.field-group label{font-size:.95rem;font-weight:700;color:var(--text)}.field-group input,.field-group select,.field-group textarea{width:100%;padding:12px 14px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.field-group input:focus,.field-group select:focus,.field-group textarea:focus,.slot-button:focus,.submit-button:focus{outline:2px solid var(--primary);outline-offset:2px}.field-group input:disabled,.field-group select:disabled,.submit-button:disabled{cursor:not-allowed;opacity:.65}.field-note,.form-status{margin:0;color:var(--text-muted)}.form-error{padding:14px 16px;border-left:4px solid #b42318;border-radius:10px;background:#fef3f2;color:#912018}.slot-picker{display:grid;gap:16px}.slot-day-card,.slot-selected-card,.booking-summary{padding:16px;border-radius:12px}.slot-day-title,.slot-selected-title{font-weight:700;margin-bottom:10px;color:var(--text)}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.slot-button{padding:12px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);text-align:left;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background-color .16s ease}.slot-button:hover{transform:translateY(-1px);border-color:var(--primary)}.slot-button.is-selected{border-width:2px;border-color:var(--primary);background:var(--primary-light)}.slot-time{font-weight:700}.slot-end-time{color:var(--text-muted);font-size:.8rem}.slot-therapist-name{color:var(--text-muted);font-size:.75rem;margin-top:2px}.slot-time-end{color:var(--text-muted);font-size:.85rem}.slot-week-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.slot-nav-button{padding:8px 20px;border-radius:3px;border:1px solid var(--primary);background:var(--bg);color:var(--primary);cursor:pointer;font-size:.85rem;font-weight:700;transition:background-color .16s ease,color .16s ease}.slot-nav-button:hover:not(:disabled){background:var(--primary);color:#fff}.slot-nav-button:disabled{opacity:.35;cursor:not-allowed}.slot-week-range{font-weight:700;font-size:.9rem;text-align:center;color:var(--text)}.slot-day-empty{opacity:.5}.slot-day-today{border:2px solid var(--primary)!important;background:var(--primary-light)!important;opacity:1!important}.slot-today-badge{font-size:.75rem;color:var(--primary-dark);font-weight:700;margin-left:6px}.slot-nav-group{display:flex;gap:4px}.slot-no-slots{font-size:.85rem;color:var(--text-muted);margin:0}.slot-therapist-count{font-size:.75rem;color:var(--text-muted)}.slot-item{display:flex;flex-direction:column;gap:6px}.slot-therapist-picker{display:flex;flex-direction:column;gap:4px;padding:8px;border-radius:8px;background:var(--bg-subtle);border:1px solid var(--border)}.slot-therapist-label{font-size:.8rem;color:var(--text-muted);margin:0}.slot-therapist-button{padding:6px 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;font-size:.85rem;text-align:left;transition:border-color .16s ease}.slot-therapist-button:hover{border-color:var(--primary)}.slot-therapist-button.is-selected{border-color:var(--primary);background:var(--primary-light);font-weight:700}.therapist-checkboxes{display:flex;flex-direction:column;gap:8px}.checkbox-group{display:flex;flex-wrap:wrap;gap:8px}.checkbox-chip{padding:6px 14px;border-radius:3px;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;font-size:.9rem;transition:border-color .16s ease,background-color .16s ease;-webkit-user-select:none;user-select:none}.checkbox-chip:hover{border-color:var(--primary)}.checkbox-chip.is-selected{border-color:var(--primary);background:var(--primary-light);color:var(--primary-dark);font-weight:700}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.booking-summary{background:var(--primary-light);color:var(--primary-dark)}.booking-summary>div{margin-top:10px}.consent-field{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}.consent-field input[type=checkbox]{margin-top:4px;width:18px;height:18px;flex-shrink:0;accent-color:var(--primary);cursor:pointer}.consent-text{font-size:.85rem;color:var(--text-light);line-height:1.5}.consent-text label{cursor:pointer;font-weight:500;color:var(--text)}.consent-details{margin-top:6px}.consent-details summary{cursor:pointer;color:var(--primary);font-size:.8rem;-webkit-user-select:none;user-select:none}.consent-details summary:hover{color:var(--primary-dark)}.consent-details ul{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:8px}.consent-details li{font-size:.8rem;color:var(--text-light);line-height:1.5}.consent-details a{color:var(--primary);text-decoration:underline}.consent-details a:hover{color:var(--primary-dark)}.submit-button{padding:14px 30px;border:none;border-radius:3px;background:var(--primary);color:#fff;font-weight:700;cursor:pointer;transition:opacity .16s ease}.submit-button:hover:not(:disabled){opacity:.7}@media(max-width:720px){.page-shell{width:min(100vw - 20px,1040px);padding:24px 0 40px}.hero-card,.form-card{padding:20px;border-radius:12px}.hero-card h1{line-height:1}}@keyframes slot-skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.slot-skeleton-item{padding:12px;border-radius:10px;border:1px solid var(--border);background:var(--bg)}.slot-skeleton-line{border-radius:4px;background:#e5e7eb;animation:slot-skeleton-pulse 1.5s ease-in-out infinite}.slot-skeleton-line+.slot-skeleton-line{margin-top:6px}.slot-skeleton-short{width:60px;height:16px}.slot-skeleton-medium{height:12px;width:80px;animation-delay:.2s}.slot-skeleton-long{height:12px;width:70px;animation-delay:.4s}.booking-confirmation{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 24px;gap:12px}.confirmation-icon{width:80px;height:80px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:8px;box-shadow:0 8px 24px #3aaee44d}.confirmation-icon svg{width:40px;height:40px}.confirmation-title{margin:0;font-size:1.6rem;font-weight:700;color:var(--text)}.confirmation-subtitle{margin:0 0 8px;color:var(--text-muted);font-size:.95rem}.confirmation-details{width:100%;max-width:480px;text-align:left;background:var(--bg-subtle);border-radius:10px;padding:4px 0;margin:8px 0 16px}.confirmation-row{display:flex;justify-content:space-between;align-items:baseline;padding:10px 20px;gap:16px;font-size:.95rem}.confirmation-row+.confirmation-row{border-top:1px solid var(--border)}.confirmation-label{font-weight:700;color:var(--text);white-space:nowrap;flex-shrink:0;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em}.confirmation-value{color:var(--text-light);text-align:right}.booking-confirmation .submit-button{margin-top:8px;min-width:240px}
