body{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.otp-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem;animation:otpFadeIn .2s ease}.otp-modal{background:#fff;border-radius:16px;padding:2.5rem;max-width:400px;width:100%;position:relative;text-align:center;box-shadow:0 20px 60px #00000026;animation:otpSlideUp .25s ease}.otp-close{position:absolute;top:1rem;right:1rem;width:32px;height:32px;background:#f5f5f5;border:none;border-radius:50%;font-size:1.2rem;color:#999;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.otp-close:hover{background:#eee;color:#555}.otp-icon{width:56px;height:56px;margin:0 auto 1.25rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f4f8,#dbeafe);border-radius:14px;color:#0077b6;padding:12px}.otp-icon svg{width:100%;height:100%}.otp-title{font-size:1.3rem;font-weight:700;color:#1a1a2e;margin-bottom:.5rem}.otp-subtitle{font-size:.9rem;color:#777;margin-bottom:1.75rem;line-height:1.5}.otp-subtitle strong{color:#1a1a2e}.otp-input{width:100%;padding:1rem;border:2px solid #ddd;border-radius:10px;font-size:1.5rem;font-weight:600;text-align:center;letter-spacing:.75rem;color:#1a1a2e;transition:border-color .2s ease;margin-bottom:.5rem}.otp-input:focus{outline:none;border-color:#0077b6;box-shadow:0 0 0 3px #0077b61a}.otp-input::placeholder{color:#ccc;letter-spacing:.75rem}.otp-error{color:#dc2626;font-size:.8rem;margin-bottom:.5rem}.otp-submit{width:100%;padding:.875rem;background:linear-gradient(135deg,#0077b6,#00b4d8);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s ease;margin-top:.75rem}.otp-submit:hover{opacity:.9}.otp-submit:disabled{opacity:.6;cursor:not-allowed}.otp-resend{margin-top:1.25rem;font-size:.85rem;color:#777}.otp-resend-timer{color:#999}.otp-resend-link{color:#0077b6;font-weight:600;cursor:pointer}.otp-resend-link:hover{text-decoration:underline}@keyframes otpFadeIn{0%{opacity:0}to{opacity:1}}@keyframes otpSlideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:480px){.otp-modal{padding:2rem 1.5rem}.otp-input{font-size:1.25rem;letter-spacing:.5rem}.otp-input::placeholder{letter-spacing:.5rem}}.registration-page{flex:1;display:flex;align-items:center;justify-content:center;padding:3rem 2rem}.registration-card{background:#fff;border-radius:16px;padding:3rem 2.5rem;max-width:440px;width:100%;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 20px #0000000a;text-align:center}.registration-icon{width:56px;height:56px;margin:0 auto 1.25rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f4f8,#dbeafe);border-radius:14px;color:#0077b6;padding:12px}.registration-icon svg{width:100%;height:100%}.registration-title{font-size:1.5rem;font-weight:700;color:#1a1a2e;margin-bottom:.5rem}.registration-subtitle{font-size:.95rem;color:#777;margin-bottom:1rem;line-height:1.5}.registration-note{font-size:.875rem;color:#1a1a2e;background:#f0f7ff;border-left:3px solid #0077b6;border-radius:6px;padding:.65rem .9rem;margin-bottom:1.5rem;text-align:left;line-height:1.5}.registration-form{text-align:left}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.875rem;font-weight:600;color:#1a1a2e;margin-bottom:.4rem}.form-group input{width:100%;padding:.875rem 1rem;border:1px solid #ddd;border-radius:10px;font-size:1rem;color:#1a1a2e;transition:border-color .2s ease,box-shadow .2s ease;background:#fafafa}.form-group input:focus{outline:none;border-color:#0077b6;box-shadow:0 0 0 3px #0077b61a;background:#fff}.form-group input::placeholder{color:#bbb}.form-error{color:#dc2626;font-size:.8rem;margin-top:.35rem}.registration-submit{width:100%;padding:.875rem;background:linear-gradient(135deg,#0077b6,#00b4d8);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s ease;margin-top:.5rem}.registration-submit:hover{opacity:.9}.registration-submit:disabled{opacity:.6;cursor:not-allowed}.registration-back{margin-top:1.5rem;font-size:.875rem;color:#777}.registration-back span{color:#0077b6;font-weight:600;cursor:pointer}.registration-back span:hover{text-decoration:underline}@media(max-width:480px){.registration-page{padding:2rem 1rem;align-items:flex-start}.registration-card{padding:2rem 1.5rem}.registration-title{font-size:1.3rem}}.phone-input-wrapper{display:flex;align-items:center;border:1px solid #d1d5db;border-radius:8px;overflow:hidden}.phone-input-wrapper:focus-within{border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.phone-prefix{padding:.65rem .75rem;background:#f3f4f6;color:#374151;font-size:.95rem;font-weight:600;border-right:1px solid #d1d5db;white-space:nowrap}.phone-input-wrapper input{border:none;outline:none;box-shadow:none;flex:1;padding:.65rem .75rem;font-size:.95rem}.fm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem;animation:fmFadeIn .2s ease}.fm-modal{background:#fff;border-radius:16px;padding:2.5rem;max-width:520px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px #00000026;animation:fmSlideUp .25s ease}.fm-header{text-align:center;margin-bottom:1.5rem}.fm-icon{width:56px;height:56px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f4f8,#dbeafe);border-radius:14px;color:#0077b6;padding:12px}.fm-icon svg{width:100%;height:100%}.fm-title{font-size:1.3rem;font-weight:700;color:#1a1a2e;margin-bottom:.4rem}.fm-subtitle{font-size:.875rem;color:#777;line-height:1.5}.fm-members-list{display:flex;flex-direction:column;gap:1rem}.fm-member-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:1.25rem}.fm-member-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.fm-member-label{font-size:.8rem;font-weight:700;color:#0077b6;text-transform:uppercase;letter-spacing:.5px}.fm-remove-btn{background:none;border:none;color:#dc2626;font-size:.8rem;font-weight:600;cursor:pointer;padding:.25rem .5rem;border-radius:6px;transition:background .2s ease}.fm-remove-btn:hover{background:#dc262614}.fm-fields{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.fm-field-dob{grid-column:1 / -1}.fm-field label{display:block;font-size:.75rem;font-weight:600;color:#555;margin-bottom:.3rem}.fm-field input{width:100%;padding:.625rem .75rem;border:1px solid #ddd;border-radius:8px;font-size:.9rem;color:#1a1a2e;transition:border-color .2s ease,box-shadow .2s ease;background:#fff}.fm-field input:focus{outline:none;border-color:#0077b6;box-shadow:0 0 0 3px #0077b61a}.fm-field input::placeholder{color:#bbb}.fm-dob-row{display:flex;align-items:center;gap:.75rem}.fm-dob-row input{flex:1}.fm-age-badge{background:linear-gradient(135deg,#0077b6,#00b4d8);color:#fff;font-size:.75rem;font-weight:700;padding:.35rem .75rem;border-radius:20px;white-space:nowrap;flex-shrink:0}.fm-add-btn{width:100%;padding:.75rem;margin-top:1rem;background:none;border:2px dashed #d0d5dd;border-radius:10px;color:#0077b6;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.fm-add-btn:hover{border-color:#0077b6;background:#0077b608}.fm-add-btn span{font-size:1.1rem;font-weight:700}.fm-actions{margin-top:1.5rem;display:flex;flex-direction:column;gap:.75rem}.fm-submit-btn{width:100%;padding:.875rem;background:linear-gradient(135deg,#0077b6,#00b4d8);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s ease}.fm-submit-btn:hover{opacity:.9}.fm-submit-btn:disabled{opacity:.6;cursor:not-allowed}.fm-skip-btn{width:100%;padding:.75rem;background:none;border:none;color:#777;font-size:.9rem;font-weight:500;cursor:pointer;transition:color .2s ease}.fm-skip-btn:hover{color:#1a1a2e}@keyframes fmFadeIn{0%{opacity:0}to{opacity:1}}@keyframes fmSlideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:480px){.fm-modal{padding:1.75rem 1.25rem;max-height:85vh}.fm-fields{grid-template-columns:1fr}.fm-field-dob{grid-column:auto}.fm-member-card{padding:1rem}}.profile-page{flex:1;display:flex;align-items:center;justify-content:center;padding:3rem 2rem}.profile-welcome-row{display:flex;flex-direction:row;align-items:center;gap:1rem;margin-bottom:1.5rem;text-align:left}.profile-brand-logo{height:60px;width:auto;object-fit:contain;flex-shrink:0}.profile-welcome-row .profile-title{margin-bottom:.25rem}.profile-welcome-row .profile-subtitle{margin-bottom:0}.profile-card{background:#fff;border-radius:16px;padding:3rem 2.5rem;max-width:440px;width:100%;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 20px #0000000a;text-align:center}.profile-icon{width:56px;height:56px;margin:0 auto 1.25rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f4f8,#dbeafe);border-radius:14px;color:#0077b6;padding:12px}.profile-icon svg{width:100%;height:100%}.profile-title{font-size:1.5rem;font-weight:700;color:#1a1a2e;margin-bottom:.5rem}.profile-subtitle{font-size:.95rem;color:#777;margin-bottom:2rem;line-height:1.5}.profile-form{text-align:left}.profile-form .form-group{margin-bottom:1.25rem}.profile-form .form-group label{display:block;font-size:.875rem;font-weight:600;color:#1a1a2e;margin-bottom:.4rem}.profile-form .form-group input{width:100%;padding:.875rem 1rem;border:1px solid #ddd;border-radius:10px;font-size:1rem;color:#1a1a2e;transition:border-color .2s ease,box-shadow .2s ease;background:#fafafa}.profile-form .form-group input:focus{outline:none;border-color:#0077b6;box-shadow:0 0 0 3px #0077b61a;background:#fff}.profile-form .form-group input::placeholder{color:#bbb}.profile-form .form-group input.input-disabled{background:#f0f0f0;color:#999;border-color:#e0e0e0;cursor:not-allowed}.profile-form .form-group input.input-disabled:focus{box-shadow:none;border-color:#e0e0e0}.form-hint{font-size:.75rem;color:#999;margin-top:.3rem}.profile-submit{width:100%;padding:.875rem;background:linear-gradient(135deg,#0077b6,#00b4d8);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s ease;margin-top:.5rem}.profile-submit:hover{opacity:.9}.profile-submit:disabled{opacity:.6;cursor:not-allowed}@media(max-width:480px){.profile-page{padding:2rem 1rem;align-items:flex-start}.profile-card{padding:2rem 1.5rem}.profile-title{font-size:1.3rem}}.dashboard-page{flex:1;display:flex;justify-content:center;padding:2.5rem 2rem}.dashboard-container{max-width:700px;width:100%;position:relative}.dashboard-welcome{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:2rem}.dashboard-brand-logo{height:60px;width:auto;object-fit:contain;flex-shrink:0}.dashboard-title{font-family:Comfortaa,cursive;font-size:1.5rem;font-weight:700;color:#fff;margin-bottom:.35rem}.dashboard-subtitle{font-size:.95rem;color:#777;text-align:center}.dashboard-container>.logout-btn{position:fixed;top:.65rem;right:1.5rem;z-index:101;display:flex;align-items:center;gap:.5rem;padding:.45rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:.85rem;font-weight:500;color:#64748b;cursor:pointer;transition:all .15s ease}.dashboard-container>.logout-btn:hover{background:#fee2e2;border-color:#fecaca;color:#dc2626}.dashboard-container>.logout-btn svg{width:16px;height:16px}.dashboard-icons{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.dash-icon-card{background:#7d7e99;border-radius:14px;padding:1.5rem 1rem;text-align:center;cursor:pointer;transition:all .25s ease;border:2px solid transparent;box-shadow:0 2px 12px #0000000a}.dash-icon-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0077b61f;border-color:#96c43c}.dash-icon-card.active{border-color:transparent}.dash-icon-circle{width:48px;height:48px;margin:0 auto .75rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f4f8,#dbeafe);border-radius:12px;color:#0077b6;padding:10px;transition:all .25s ease}.dash-icon-card:hover .dash-icon-circle{color:#96c43c}.dash-icon-card.active .dash-icon-circle{background:linear-gradient(135deg,#e8f4f8,#dbeafe);color:#0077b6}.dash-icon-circle svg{width:100%;height:100%}.dash-icon-label{font-size:.8rem;font-weight:600;color:#fff;display:block}.dash-icon-card.active .dash-icon-label{color:#fff}.dashboard-section{background:#fff;border-radius:16px;padding:2rem;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 20px #0000000a;animation:sectionFadeIn .2s ease}.section-title{font-size:1.15rem;font-weight:700;color:#1a1a2e;margin-bottom:0;padding-bottom:0;border-bottom:none}.section-close-btn{background:none;border:none;cursor:pointer;padding:4px;border-radius:6px;color:#999;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.section-close-btn:hover{color:#333;background:#0000000f}.section-close-btn svg{width:20px;height:20px}.section-empty{text-align:center;padding:2rem 0;color:#999;font-size:.95rem}.bookings-grouped{display:flex;flex-direction:column;gap:1.5rem}.bookings-group{display:flex;flex-direction:column;gap:.75rem}.bookings-group-title{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:700;margin:0;padding:.5rem 0;border-bottom:2px solid #e5e7eb;cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .15s ease}.bookings-group-title:hover{opacity:.75}.bookings-group-chevron{width:16px;height:16px;margin-left:auto;transition:transform .2s ease;flex-shrink:0}.bookings-group-title.collapsed .bookings-group-chevron{transform:rotate(-90deg)}.bookings-group-title svg{width:18px;height:18px}.bookings-group-title.confirmed{color:#0077b6;border-bottom-color:#0077b6}.bookings-group-title.past{color:#6b7280;border-bottom-color:#9ca3af}.bookings-group-count{background:#f3f4f6;color:#6b7280;font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:10px;margin-left:.25rem}.bookings-group-empty{font-size:.85rem;color:#9ca3af;font-style:italic;margin:0;padding:.5rem 0}.bookings-list{display:flex;flex-direction:column;gap:1rem}.booking-card{background:#fff;border-radius:12px;padding:1.25rem;border:1px solid rgba(0,0,0,.06);box-shadow:0 2px 8px #0000000a}.booking-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.booking-patient-info{display:flex;align-items:center;gap:.5rem}.booking-patient-name{font-weight:600;color:#1a1a2e;font-size:1rem}.booking-for-label{font-size:.75rem;font-weight:500;color:#6b7280}.booking-status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:capitalize}.booking-status-badge.confirmed{background:#e8f4f8;color:#0077b6}.booking-status-badge.completed{background:#e8f8e8;color:#2d7a2d}.booking-status-badge.cancelled{background:#fde8e8;color:#dc2626}.booking-status-badge.rescheduled-provider{background:#e8f0fb;color:#2563eb;text-transform:none}.booking-status-badge.cancelled-provider{background:#fff1f0;color:#dc2626;text-transform:none}.booking-card.booking-cancelled_by_provider{opacity:.6;background:#f9fafb;border-color:#e5e7eb}.bookings-group-title.cancelled-provider{color:#9ca3af;border-bottom-color:#d1d5db}.bookings-group-title.cancelled-provider svg{stroke:#9ca3af}.booking-card-details p{margin:.35rem 0;font-size:.9rem;color:#555}.booking-card-details strong{color:#1a1a2e}.provider-link{color:teal;cursor:pointer;text-decoration:underline;text-underline-offset:2px;transition:color .15s ease}.provider-link:hover{color:#066}.booking-provider-reason{margin-top:.5rem!important;padding:.4rem .65rem;border-radius:6px;font-size:.88rem!important}.booking-provider-reason--cancel{background:#fff1f0;border-left:3px solid #f87171;color:#7f1d1d!important}.booking-provider-reason--reschedule{background:#fffbeb;border-left:3px solid #fbbf24;color:#78350f!important}.booking-card-actions{display:flex;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(0,0,0,.06)}.booking-action-btn{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:8px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s ease;border:1px solid}.booking-action-btn svg{width:16px;height:16px}.booking-action-btn.reschedule{background:#f0f9ff;border-color:#bae6fd;color:#0077b6}.booking-action-btn.reschedule:hover{background:#e0f2fe;border-color:#7dd3fc}.booking-action-btn.cancel{background:#fef2f2;border-color:#fecaca;color:#dc2626}.booking-action-btn.cancel:hover{background:#fee2e2;border-color:#fca5a5}.booking-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.booking-action-modal{background:#fff;border-radius:16px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000026}.booking-action-modal.reschedule-modal{max-width:780px}.booking-action-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb}.booking-action-modal-header h3{font-size:1.1rem;font-weight:700;color:#1a1a2e;margin:0}.modal-close-btn{background:none;border:none;cursor:pointer;padding:.25rem;color:#6b7280;transition:color .15s ease}.modal-close-btn:hover{color:#1a1a2e}.modal-close-btn svg{width:20px;height:20px}.booking-action-modal-body{padding:1.5rem}.booking-action-modal-footer{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-top:1px solid #e5e7eb}.booking-action-modal-btn{padding:.6rem 1.25rem;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s ease;border:none}.booking-action-modal-btn.back{background:#f3f4f6;color:#6b7280}.booking-action-modal-btn.back:hover{background:#e5e7eb}.booking-action-modal-btn.confirm-cancel{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff}.booking-action-modal-btn.confirm-cancel:hover:not(:disabled){background:linear-gradient(135deg,#b91c1c,#991b1b)}.booking-action-modal-btn.confirm-reschedule{background:linear-gradient(135deg,#0077b6,#005f8a);color:#fff}.booking-action-modal-btn.confirm-reschedule:hover:not(:disabled){background:linear-gradient(135deg,#005f8a,#004a6e)}.booking-action-modal-btn:disabled{opacity:.5;cursor:not-allowed}@keyframes sectionFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.section-form .form-group,.dashboard-section .form-group{margin-bottom:1rem}.section-form label,.dashboard-section label{display:block;font-size:.8rem;font-weight:600;color:#1a1a2e;margin-bottom:.3rem}.section-form input,.dashboard-section input{width:100%;padding:.75rem .875rem;border:1px solid #ddd;border-radius:8px;font-size:.95rem;color:#1a1a2e;transition:border-color .2s ease,box-shadow .2s ease;background:#fafafa}.section-form input:focus,.dashboard-section input:focus{outline:none;border-color:#0077b6;box-shadow:0 0 0 3px #0077b61a;background:#fff}.section-form input::placeholder,.dashboard-section input::placeholder{color:#bbb}.form-divider{height:1px;background:#eee;margin:1.25rem 0}.form-hint{font-size:.75rem;color:#999;margin-top:.25rem}.family-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.family-row{display:flex;gap:.75rem;align-items:flex-start;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:1rem}.family-fields{flex:1;display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:.75rem;align-items:end}.family-age{display:flex;align-items:flex-end;padding-bottom:.1rem}.age-badge{background:linear-gradient(135deg,#0077b6,#00b4d8);color:#fff;font-size:.7rem;font-weight:700;padding:.35rem .6rem;border-radius:20px;white-space:nowrap}.family-delete-btn{background:none;border:none;color:#dc2626;cursor:pointer;padding:.4rem;border-radius:6px;transition:background .2s ease;width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1.2rem}.family-delete-btn:hover{background:#dc262614}.family-delete-btn svg{width:18px;height:18px}.family-add-btn{width:100%;padding:.7rem;margin-top:.75rem;background:none;border:2px dashed #d0d5dd;border-radius:10px;color:#0077b6;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.4rem}.family-add-btn:hover{border-color:#0077b6;background:#0077b608}.family-add-btn span{font-size:1rem;font-weight:700}.booking-section{max-width:100%}.booking-steps{display:flex;justify-content:space-between;margin-bottom:2rem;padding:0 1rem}.booking-step{display:flex;flex-direction:column;align-items:center;gap:.5rem;flex:1;position:relative}.booking-step:after{content:"";position:absolute;top:14px;left:50%;width:100%;height:2px;background:#e5e7eb;z-index:0}.booking-step:last-child:after{display:none}.step-number{width:28px;height:28px;border-radius:50%;background:#e5e7eb;color:#94a3b8;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;z-index:1;transition:all .2s ease}.step-label{font-size:.75rem;color:#94a3b8;text-align:center}.booking-step.active .step-number{background:teal;color:#fff}.booking-step.active .step-label{color:teal;font-weight:600}.booking-step.completed .step-number{background:#10b981;color:#fff}.booking-step.completed:after{background:#10b981}.search-box{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:1.5rem}.search-box svg{width:20px;height:20px;stroke:#94a3b8;flex-shrink:0}.search-box input{flex:1;border:none;background:none;font-size:.95rem;color:#1a1a2e;outline:none}.search-box input::placeholder{color:#94a3b8}.service-filter-select{width:100%;padding:.75rem 2.5rem .75rem 1rem;background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;font-size:.95rem;color:#1a1a2e;outline:none;cursor:pointer;margin-bottom:1.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}.service-filter-select:focus{border-color:#0077b6;background-color:#fff}.provider-list{display:flex;flex-direction:column;gap:.75rem}.provider-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:#fff;border:1px solid #e5e7eb;border-radius:12px;cursor:pointer;transition:all .15s ease}.provider-card:hover{border-color:teal;box-shadow:0 2px 8px #0080801a}.provider-card-icon{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#e0f2f1,#b2dfdb);display:flex;align-items:center;justify-content:center;flex-shrink:0}.provider-card-icon svg{width:24px;height:24px;stroke:teal}.provider-card-info{flex:1;min-width:0}.provider-card-name{font-size:1rem;font-weight:600;color:#1a1a2e;margin:0 0 .1rem}.provider-card-speciality{font-size:.8rem;font-weight:500;color:#0077b6;margin:0 0 .25rem}.provider-card-location{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:#64748b;margin:0}.provider-card-location svg{width:14px;height:14px;stroke:#94a3b8;flex-shrink:0}.provider-card-arrow{width:20px;height:20px;stroke:#cbd5e1;flex-shrink:0}.back-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem 0;background:none;border:none;color:#64748b;font-size:.9rem;cursor:pointer;margin-bottom:1rem;transition:color .15s ease}.back-btn:hover{color:teal}.back-btn svg{width:18px;height:18px}.provider-banner{background:#7d7e99;border-radius:12px;padding:1rem 1.25rem;margin-bottom:1rem}.provider-banner-main{display:flex;align-items:center;gap:1rem}.provider-banner-avatar{width:48px;height:48px;border-radius:50%;background:transparent;display:flex;align-items:center;justify-content:center;flex-shrink:0}.provider-banner-avatar svg{width:24px;height:24px;stroke:#fff}.provider-banner-info{flex:1;min-width:0}.provider-banner-name{font-size:1.1rem;font-weight:700;color:#fff;margin:0 0 .15rem}.provider-banner-speciality{font-size:.82rem;font-weight:500;color:#fffc;margin:0 0 .4rem}.provider-banner-details{display:flex;flex-direction:column;gap:.35rem}.banner-detail{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;color:#fff}.banner-detail svg{width:14px;height:14px;stroke:#ffffffbf;flex-shrink:0;transition:stroke .2s ease}.banner-detail:hover svg{stroke:#fff}.provider-banner-about{padding:.75rem 1.25rem 0;border-top:1px solid rgba(255,255,255,.1);margin-top:.75rem}.provider-banner-about-text{font-size:.8rem;color:#fffc;line-height:1.5;margin:0;white-space:pre-line}@media(max-width:600px){.provider-banner-details{flex-direction:column;gap:.35rem}}.inline-calendar-container{margin-top:1.5rem;background:#f8fafa;border-radius:16px;padding:1.5rem}.inline-calendar-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.monthly-calendar{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 2px 8px #0000000a}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.calendar-nav-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .15s ease;color:#64748b}.calendar-nav-btn:hover{border-color:teal;color:teal}.calendar-month-title{font-size:1.1rem;font-weight:700;color:#1a1a2e;margin:0}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:.5rem}.calendar-weekdays span{text-align:center;font-size:.75rem;font-weight:600;color:#94a3b8;padding:.5rem 0}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.9rem;font-weight:500;color:#1a1a2e;background:none;border:2px solid transparent;border-radius:10px;cursor:pointer;transition:all .15s ease;position:relative}.calendar-day:hover:not(.disabled):not(.other-month){border-color:teal;background:#0080800d}.calendar-day.other-month{color:#cbd5e1;cursor:default}.calendar-day.disabled{color:#cbd5e1;cursor:not-allowed}.calendar-day.today{border-color:teal}.calendar-day.selected{background:teal;color:#fff;border-color:teal}.availability-dot{width:4px;height:4px;border-radius:50%;background:teal;position:absolute;bottom:4px}.calendar-day.selected .availability-dot{background:#fff}.time-slots-panel{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 2px 8px #0000000a;display:flex;flex-direction:column}.time-slots-title{font-size:1rem;font-weight:700;color:#1a1a2e;margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.time-slots-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;overflow-y:auto;max-height:320px;padding-right:.5rem}.time-slot-btn{padding:.85rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:10px;font-size:.95rem;font-weight:500;color:#1a1a2e;cursor:pointer;transition:all .15s ease}.time-slot-btn:hover:not(:disabled){border-color:teal;background:#0080800d}.time-slot-btn.selected{background:teal;border-color:teal;color:#fff}.time-slot-btn.unavailable{background:#f8fafc;color:#cbd5e1;cursor:not-allowed;border-color:#f1f5f9}.earliest-dates-section{display:flex;align-items:flex-start;gap:12px;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid #e5e7eb;flex-wrap:wrap}.earliest-dates-group{display:flex;flex-direction:column;gap:6px}.earliest-dates-group-label{font-size:.78rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em}.earliest-dates-label{font-size:.85rem;font-weight:600;color:#64748b;white-space:nowrap}.earliest-dates-loading{font-size:.85rem;color:#94a3b8;font-style:italic}.earliest-dates-chips{display:flex;gap:8px;flex-wrap:wrap}.earliest-date-chip{padding:5px 14px;border-radius:20px;border:1.5px solid #008080;background:#fff;color:teal;font-size:.82rem;font-weight:500;cursor:pointer;transition:all .15s ease}.earliest-date-chip:hover{background:#00808014}.earliest-date-chip.selected{background:teal;color:#fff}@media(max-width:768px){.inline-calendar-layout{grid-template-columns:1fr}.time-slots-grid{max-height:200px}.reschedule-inline-calendar-layout{grid-template-columns:1fr}.reschedule-time-slots-grid{max-height:200px}}.calendar-subtitle{font-size:.9rem;color:#64748b;margin-bottom:1.5rem}.calendar-booking-layout{display:grid;grid-template-columns:auto 1fr;gap:1.5rem}.selection-label{font-size:.9rem;font-weight:600;color:#1a1a2e;margin:0 0 1rem}.date-selection{min-width:100px}.date-list{display:flex;flex-direction:column;gap:.5rem;max-height:400px;overflow-y:auto;padding-right:.5rem}.date-btn{display:flex;flex-direction:column;align-items:center;padding:.75rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:all .15s ease;min-width:80px}.date-btn:hover{border-color:teal}.date-btn.selected{background:teal;border-color:teal;color:#fff}.date-day{font-size:.7rem;text-transform:uppercase;letter-spacing:.3px}.date-num{font-size:1.25rem;font-weight:700;line-height:1.2}.date-month{font-size:.7rem}.date-btn.selected .date-day,.date-btn.selected .date-num,.date-btn.selected .date-month{color:#fff}.time-selection{flex:1}.time-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.5rem}.time-btn{padding:.7rem .5rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:.9rem;font-weight:500;color:#1a1a2e;cursor:pointer;transition:all .15s ease}.time-btn:hover:not(:disabled){border-color:teal;color:teal}.time-btn.selected{background:teal;border-color:teal;color:#fff}.time-btn.unavailable{background:#f1f5f9;color:#cbd5e1;cursor:not-allowed;text-decoration:line-through}.booking-summary{background:#f8fafc;border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.summary-item{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid #e5e7eb}.summary-item:last-child{border-bottom:none}.summary-label{font-size:.85rem;color:#64748b}.summary-value{font-size:.9rem;font-weight:600;color:#1a1a2e;text-align:right}.booking-for-options{display:flex;gap:1rem;margin-top:.5rem}.radio-card{flex:1;display:flex;align-items:center;justify-content:center;padding:.9rem 1rem;background:#fff;border:2px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:all .15s ease}.radio-card:hover{border-color:teal}.radio-card.selected{border-color:teal;background:#0080800d}.radio-card input{display:none}.radio-label{font-size:.9rem;font-weight:500;color:#1a1a2e}.radio-card.selected .radio-label{color:teal;font-weight:600}.family-member-select{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}.family-member-select .radio-card{flex:0 1 auto;padding:.7rem 1.25rem}.no-family-msg{font-size:.9rem;color:#64748b;margin-top:.5rem}.no-family-msg button{background:none;border:none;color:teal;font-weight:600;cursor:pointer;text-decoration:underline}.patient-details-box{background:#e0f2f1;border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.patient-details-box h4{font-size:.9rem;font-weight:600;color:teal;margin:0 0 .75rem}.patient-detail-row{display:flex;gap:.5rem;padding:.35rem 0}.pd-label{font-size:.85rem;color:#64748b;min-width:60px}.pd-value{font-size:.9rem;font-weight:500;color:#1a1a2e}.booking-confirm-form textarea{width:100%;padding:1rem;border:2px solid #e5e7eb;border-radius:12px;font-size:.95rem;font-family:inherit;color:#1a1a2e;background:#fafafa;resize:vertical;min-height:120px;transition:all .2s ease;line-height:1.5}.booking-confirm-form textarea:focus{outline:none;border-color:teal;background:#fff;box-shadow:0 0 0 3px #0080801a}.booking-confirm-form textarea::placeholder{color:#94a3b8}.required{color:#dc2626}.notes-wrapper{position:relative}.notes-hint{font-size:.8rem;color:#64748b;margin-top:.5rem}.notes-counter{position:absolute;bottom:.75rem;right:.75rem;font-size:.75rem;color:#94a3b8;background:#ffffffe6;padding:.2rem .5rem;border-radius:4px}.notes-counter.warning{color:#f59e0b}.notes-counter.limit{color:#dc2626}.booking-error-msg{margin:0 0 .75rem;padding:.65rem .9rem;border-radius:8px;background:#fff1f0;border-left:3px solid #f87171;color:#7f1d1d;font-size:.9rem;line-height:1.4}.confirm-booking-btn{width:100%;padding:.9rem 1.5rem;background:linear-gradient(135deg,teal,#066);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.confirm-booking-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0080804d}.confirm-booking-btn:disabled{opacity:.6;cursor:not-allowed}.booking-success{text-align:center;padding:2rem}.success-icon{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#d1fae5,#a7f3d0);display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.success-icon svg{width:40px;height:40px;stroke:#10b981}.booking-success h3{font-size:1.5rem;font-weight:700;color:#1a1a2e;margin:0 0 .5rem}.booking-success>p{font-size:1rem;color:#64748b;margin:0 0 1.5rem}.success-details{background:#f8fafc;border-radius:12px;padding:1.25rem;margin-bottom:1.5rem;text-align:left}.success-details p{margin:.35rem 0;font-size:.9rem;color:#1a1a2e}.success-details strong{color:#64748b;font-weight:500}.success-actions{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:280px}.success-action-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.5rem;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:2px solid transparent}.success-action-btn svg{width:18px;height:18px}.success-action-btn.primary{background:teal;color:#fff;border-color:teal}.success-action-btn.primary:hover{background:#066;border-color:#066}.success-action-btn.secondary{background:#fff;color:#64748b;border-color:#e2e8f0}.success-action-btn.secondary:hover{background:#f8fafc;color:#475569;border-color:#cbd5e1}@media(max-width:768px){.dashboard-icons{grid-template-columns:repeat(2,1fr)}.family-fields{grid-template-columns:1fr 1fr}.provider-profile-details,.calendar-booking-layout{grid-template-columns:1fr}.date-list{flex-direction:row;overflow-x:auto;max-height:none;padding-bottom:.5rem}.date-btn{min-width:70px}}@media(max-width:480px){.dashboard-page{padding:1.5rem 1rem}.dashboard-welcome{flex-direction:column;gap:1rem;align-items:flex-start}.dashboard-container>.logout-btn{padding:.4rem .75rem;font-size:.78rem;right:1rem}.dashboard-icons{grid-template-columns:repeat(2,1fr);gap:.75rem}.dash-icon-card{padding:1.25rem .75rem}.dashboard-section{padding:1.5rem 1.25rem}.form-row,.family-fields{grid-template-columns:1fr}.family-row{flex-direction:column}.family-delete-btn{align-self:flex-end;margin-top:0}.booking-steps{padding:0}.step-label{font-size:.65rem}.booking-for-options{flex-direction:column}.time-grid{grid-template-columns:repeat(3,1fr)}.time-slots-panel{padding:1rem}}.provider-disclaimer-page{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.provider-disclaimer-card{background:#fff;border-radius:16px;padding:2.5rem 2rem;width:100%;max-width:560px;box-shadow:0 4px 24px #0000000f;border:1px solid rgba(0,0,0,.04)}.provider-disclaimer-title{font-size:1.5rem;font-weight:700;color:#1a1a2e;margin-bottom:1rem;text-align:center}.provider-disclaimer-intro{font-size:.9rem;color:#555;line-height:1.6;margin-bottom:1.25rem}.provider-disclaimer-list{padding-left:1.25rem;margin-bottom:2rem}.provider-disclaimer-list li{font-size:.9rem;color:#444;line-height:1.65;margin-bottom:.85rem}.provider-disclaimer-list li:last-child{margin-bottom:0}.provider-disclaimer-actions{display:flex;gap:1rem}.provider-disclaimer-accept{flex:1;padding:.9rem;background:linear-gradient(135deg,#0077b6,#00b4d8);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s ease,transform .2s ease}.provider-disclaimer-accept:hover{opacity:.92;transform:translateY(-1px)}.provider-disclaimer-cancel{flex:1;padding:.9rem;background:#fff;color:#555;border:1px solid #ddd;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}.provider-disclaimer-cancel:hover{background:#f5f5f5;color:#333;transform:translateY(-1px)}@media(max-width:480px){.provider-disclaimer-page{padding:1.5rem 1rem}.provider-disclaimer-card{padding:2rem 1.5rem}.provider-disclaimer-title{font-size:1.3rem}.provider-disclaimer-actions{flex-direction:column}}.patient-disclaimer-page{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.patient-disclaimer-card{background:#fff;border-radius:16px;padding:2.5rem 2rem;width:100%;max-width:560px;box-shadow:0 4px 24px #0000000f;border:1px solid rgba(0,0,0,.04)}.patient-disclaimer-title{font-size:1.5rem;font-weight:700;color:#1a1a2e;margin-bottom:1rem;text-align:center}.patient-disclaimer-intro{font-size:.9rem;color:#555;line-height:1.6;margin-bottom:1.25rem}.patient-disclaimer-list{padding-left:1.25rem;margin-bottom:2rem}.patient-disclaimer-list li{font-size:.9rem;color:#444;line-height:1.65;margin-bottom:.85rem}.patient-disclaimer-list li:last-child{margin-bottom:0}.patient-disclaimer-actions{display:flex;gap:1rem}.patient-disclaimer-accept{flex:1;padding:.9rem;background:linear-gradient(135deg,#0077b6,#00b4d8);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s ease,transform .2s ease}.patient-disclaimer-accept:hover{opacity:.92;transform:translateY(-1px)}.patient-disclaimer-cancel{flex:1;padding:.9rem;background:#fff;color:#555;border:1px solid #ddd;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}.patient-disclaimer-cancel:hover{background:#f5f5f5;color:#333;transform:translateY(-1px)}@media(max-width:480px){.patient-disclaimer-page{padding:1.5rem 1rem}.patient-disclaimer-card{padding:2rem 1.5rem}.patient-disclaimer-title{font-size:1.3rem}.patient-disclaimer-actions{flex-direction:column}}.provider-registration-page{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.provider-registration-card{background:#fff;border-radius:16px;padding:2.5rem 2rem;width:100%;max-width:420px;box-shadow:0 4px 24px #0000000f;border:1px solid rgba(0,0,0,.04)}.provider-registration-title{font-size:1.5rem;font-weight:700;color:#1a1a2e;margin-bottom:.5rem;text-align:center}.provider-registration-subtitle{font-size:.9rem;color:#777;text-align:center;margin-bottom:1.75rem}.provider-registration-form .form-group{margin-bottom:1.25rem}.provider-registration-form label{display:block;font-size:.8rem;font-weight:600;color:#1a1a2e;margin-bottom:.4rem}.provider-registration-form input{width:100%;padding:.8rem 1rem;border:1px solid #ddd;border-radius:10px;font-size:.95rem;color:#1a1a2e;transition:border-color .2s ease,box-shadow .2s ease;background:#fafafa}.provider-registration-form input:focus{outline:none;border-color:#0077b6;box-shadow:0 0 0 3px #0077b61a;background:#fff}.provider-registration-form input::placeholder{color:#bbb}.provider-registration-form .phone-input-group{display:flex;align-items:center;border:1px solid #ddd;border-radius:10px;overflow:hidden;background:#fafafa}.provider-registration-form .phone-input-group:focus-within{border-color:#0077b6;box-shadow:0 0 0 3px #0077b61a;background:#fff}.provider-registration-form .phone-prefix{padding:0 10px;font-size:.95rem;color:#374151;background:#f3f4f6;border-right:1px solid #ddd;white-space:nowrap;line-height:44px;height:44px}.provider-registration-form .phone-input-group input{border:none!important;box-shadow:none!important;border-radius:0!important;flex:1;min-width:0;background:transparent}.form-error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca;padding:.6rem .875rem;border-radius:8px;font-size:.85rem;margin-bottom:1rem}.provider-registration-submit{width:100%;padding:.9rem;background:linear-gradient(135deg,#0077b6,#00b4d8);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s ease,transform .2s ease}.provider-registration-submit:hover{opacity:.92;transform:translateY(-1px)}.provider-registration-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}.provider-registration-footer{text-align:center;margin-top:1.5rem;font-size:.85rem;color:#777}.provider-registration-footer .link{color:#0077b6;font-weight:600;cursor:pointer}.provider-registration-footer .link:hover{text-decoration:underline}@media(max-width:480px){.provider-registration-page{padding:1.5rem 1rem}.provider-registration-card{padding:2rem 1.5rem}.provider-registration-title{font-size:1.3rem}}.provider-profile-page{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.provider-profile-card{background:#fff;border-radius:16px;padding:2.5rem 2rem;width:100%;max-width:520px;box-shadow:0 4px 24px #0000000f;border:1px solid rgba(0,0,0,.04)}.provider-profile-title{font-size:1.5rem;font-weight:700;color:#1a1a2e;margin-bottom:.5rem;text-align:center}.provider-profile-subtitle{font-size:.9rem;color:#777;text-align:center;margin-bottom:1.75rem}.provider-profile-form .form-group{margin-bottom:1.25rem}.provider-profile-form label{display:flex;align-items:center;justify-content:space-between;font-size:.8rem;font-weight:600;color:#1a1a2e;margin-bottom:.4rem}.provider-profile-form label .required{color:#dc2626;margin-left:2px}.provider-profile-form label .char-count{font-size:.7rem;font-weight:500;color:#999}.provider-profile-form input,.provider-profile-form textarea,.provider-profile-form select{width:100%;padding:.8rem 1rem;border:1px solid #ddd;border-radius:10px;font-size:.95rem;font-family:inherit;color:#1a1a2e;transition:border-color .2s ease,box-shadow .2s ease;background:#fafafa}.provider-profile-form textarea{resize:vertical;min-height:100px;line-height:1.5}.provider-profile-form input:focus,.provider-profile-form textarea:focus,.provider-profile-form select:focus{outline:none;border-color:#0077b6;box-shadow:0 0 0 3px #0077b61a;background:#fff}.provider-profile-form input::placeholder,.provider-profile-form textarea::placeholder{color:#bbb}.provider-profile-form input.disabled-input{background:#f3f4f6;color:#6b7280;cursor:not-allowed;border-color:#e5e7eb}.phone-input-group.disabled-phone-group{background:#f3f4f6;border-color:#e5e7eb;cursor:not-allowed}.phone-input-group.disabled-phone-group .phone-prefix{background:#e9eaec;border-right-color:#e5e7eb;color:#9ca3af}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-hint{font-size:.75rem;margin-top:.3rem}.form-hint-success{color:#059669}.form-hint-muted{color:#999}.form-hint-warning{color:#d97706}.provider-profile-submit{width:100%;padding:.9rem;margin-top:.5rem;background:linear-gradient(135deg,#0077b6,#00b4d8);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s ease,transform .2s ease}.provider-profile-submit:hover{opacity:.92;transform:translateY(-1px)}.provider-profile-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}.provider-profile-actions{display:flex;gap:1rem;margin-top:1rem}.provider-profile-actions .provider-profile-submit{flex:1;margin-top:0}.provider-profile-back{padding:.9rem 1.2rem;background:none;border:2px solid #e5e7eb;border-radius:10px;font-size:.95rem;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s ease;white-space:nowrap}.provider-profile-back:hover{border-color:#d1d5db;background:#f9fafb}.provider-profile-back:disabled{opacity:.6;cursor:not-allowed}.provider-profile-skip{flex:1;padding:.9rem;background:none;border:2px solid #e5e7eb;border-radius:10px;font-size:1rem;font-weight:600;color:#6b7280;cursor:pointer;transition:all .2s ease}.provider-profile-skip:hover{border-color:#d1d5db;background:#f9fafb}.provider-profile-skip:disabled{opacity:.6;cursor:not-allowed}.pac-container{border-radius:10px;border:1px solid #ddd;box-shadow:0 4px 20px #0000001a;font-family:inherit;margin-top:4px}.pac-item{padding:10px 12px;font-size:.9rem;cursor:pointer;border-top:1px solid #f0f0f0}.pac-item:first-child{border-top:none}.pac-item:hover{background:#f5f9fc}.pac-item-query{font-size:.9rem;color:#1a1a2e}.pac-matched{font-weight:600}.pac-icon{display:none}@media(max-width:480px){.provider-profile-page{padding:1.5rem 1rem;align-items:flex-start}.provider-profile-card{padding:2rem 1.5rem}.provider-profile-title{font-size:1.3rem}.form-row{grid-template-columns:1fr}.provider-profile-actions{flex-direction:column-reverse}.provider-profile-actions .provider-profile-submit,.provider-profile-skip{width:100%}.multi-practice-options{flex-direction:column}}.multi-practice-options{display:flex;flex-direction:column;gap:1rem;margin:2rem 0}.multi-practice-btn{padding:1rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;border:2px solid #4a90e2;background:#4a90e2;color:#fff;transition:background .2s,border-color .2s}.multi-practice-btn:hover{background:#357abd;border-color:#357abd}.multi-practice-btn--secondary{background:#fff;color:#4a90e2}.multi-practice-btn--secondary:hover{background:#f0f6ff;border-color:#357abd;color:#357abd}.multi-location-group{border:1px solid #e2e8f0;border-radius:8px;padding:1rem 1.25rem .5rem;margin-bottom:1rem;background:#f8fafc}.multi-location-group-label{font-size:.85rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem}.provider-dashboard-page{flex:1;display:flex;justify-content:center;padding:1.5rem 2rem 2.5rem}.provider-dashboard-container{max-width:1100px;width:100%;position:relative}.provider-dashboard-layout{display:flex;flex-direction:row;align-items:flex-start;gap:1.5rem}.provider-dashboard-sidebar{flex-shrink:0;width:120px;position:sticky;top:5rem}.provider-dashboard-content{flex:1;min-width:0}.provider-dashboard-welcome{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1.25rem;background:#fff;border-radius:12px;padding:.6rem 1.25rem;box-shadow:0 2px 10px #00000014}.dashboard-brand-logo{height:48px;width:auto;object-fit:contain;flex-shrink:0}.welcome-content{text-align:left}.provider-dashboard-title{font-family:Comfortaa,cursive;font-size:1.1rem;font-weight:700;color:#0f1530;margin-bottom:.1rem}.provider-dashboard-subtitle{font-size:.8rem;color:#6b7280}.provider-dashboard-welcome .logout-btn{display:flex;align-items:center;gap:.5rem;padding:.45rem 1rem;background:transparent;border:1px solid #e5e7eb;border-radius:8px;font-size:.85rem;font-weight:500;color:#64748b;cursor:pointer;transition:all .15s ease;flex-shrink:0}.provider-dashboard-welcome .logout-btn:hover{background:#fee2e2;border-color:#fecaca;color:#dc2626}.provider-dashboard-welcome .logout-btn svg{width:16px;height:16px}.provider-dashboard-icons{display:flex;flex-direction:column;gap:.75rem}.provider-icon-card{background:#7d7e99;border-radius:14px;padding:1rem .5rem;text-align:center;text-decoration:none;cursor:pointer;transition:all .25s ease;border:2px solid transparent;box-shadow:0 2px 12px #0000000a}.provider-icon-card:hover{transform:translate(3px);box-shadow:4px 8px 24px #0077b62e;border-color:#96c43c}.provider-icon-card:hover .provider-icon-circle{color:#96c43c}.provider-icon-card.active{border-color:#96c43c;background:#5e5f78;transform:translate(3px);box-shadow:4px 8px 24px #0077b62e}.provider-icon-circle{width:40px;height:40px;margin:0 auto .5rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f4f8,#dbeafe);border-radius:10px;color:#0077b6;padding:8px;transition:all .25s ease}.provider-icon-card.active .provider-icon-circle{background:linear-gradient(135deg,#e8f4f8,#dbeafe);color:#0077b6}.provider-icon-circle svg{width:100%;height:100%}.provider-icon-label{font-size:.7rem;font-weight:600;color:#fff;display:block;line-height:1.2}.provider-icon-card.active .provider-icon-label{color:#fff}.provider-dashboard-section{background:#fff;border-radius:16px;padding:2rem;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 20px #0000000a;animation:sectionFadeIn .2s ease}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid #eee}.provider-dashboard-section .section-title{font-size:1.15rem;font-weight:700;color:#1a1a2e;margin:0}.section-header-actions{display:flex;align-items:center;gap:.4rem}.section-refresh{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#f3f4f6;border:none;border-radius:8px;cursor:pointer;color:#6b7280;transition:all .2s ease}.section-refresh:hover:not(:disabled){background:#e0e7ff;color:#4a90e2}.section-refresh:disabled{opacity:.5;cursor:default}.section-refresh svg{width:16px;height:16px}.section-refresh svg.spinning{animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.section-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#f3f4f6;border:none;border-radius:8px;cursor:pointer;color:#6b7280;transition:all .2s ease}.section-close:hover{background:#e5e7eb;color:#1a1a2e}.section-close svg{width:18px;height:18px}.provider-dashboard-section .section-empty{text-align:center;padding:2rem 0;color:#999;font-size:.95rem}@keyframes sectionFadeIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.section-form .form-group{margin-bottom:1.25rem}.section-form label{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-size:.8rem;font-weight:600;color:#1a1a2e;margin-bottom:.4rem}.section-form label .required{color:#dc2626}.section-form label .char-count{margin-left:auto;font-size:.7rem;font-weight:500;color:#999}.section-form input,.section-form textarea{width:100%;padding:.75rem .875rem;border:1px solid #ddd;border-radius:8px;font-size:.95rem;font-family:inherit;color:#1a1a2e;transition:border-color .2s ease,box-shadow .2s ease;background:#fafafa}.section-form textarea{resize:vertical;min-height:80px;line-height:1.5}.slot-interval-toggle{display:flex;gap:.5rem}.slot-interval-btn{flex:1;padding:.6rem 1rem;border:1px solid #ddd;border-radius:8px;background:#fafafa;color:#6b7280;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.slot-interval-btn:hover{border-color:#0077b6;color:#0077b6}.slot-interval-btn.active{background:#0077b6;border-color:#0077b6;color:#fff;font-weight:600}.section-form input:focus,.section-form textarea:focus{outline:none;border-color:#0077b6;box-shadow:0 0 0 3px #0077b61a;background:#fff}.section-form input::placeholder,.section-form textarea::placeholder{color:#bbb}.section-form input.disabled-input{background:#f3f4f6;color:#6b7280;cursor:not-allowed;border-color:#e5e7eb}.private-badge{font-size:.65rem;font-weight:500;color:#6b7280;background:#f3f4f6;padding:.2rem .5rem;border-radius:4px;margin-left:auto}.form-divider{height:1px;background:#eee;margin:1.5rem 0 1rem}.form-section-label{font-size:.85rem;font-weight:600;color:#6b7280;margin-bottom:1rem}.section-message{font-size:.85rem;padding:.6rem .875rem;border-radius:8px;margin-bottom:.75rem}.section-message.success{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}.section-message.error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.section-submit{width:100%;padding:.8rem;background:linear-gradient(135deg,#0077b6,#00b4d8);color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .2s ease;margin-top:.5rem}.section-submit:hover{opacity:.9}.section-submit:disabled{opacity:.6;cursor:not-allowed}.reminder-description{color:#6b7280;font-size:.9rem;margin-bottom:1.5rem;line-height:1.5}.reminder-textarea{width:100%;min-height:140px;padding:.85rem 1rem;border:1px solid #d1d5db;border-radius:10px;font-size:.9rem;font-family:inherit;line-height:1.6;resize:vertical;transition:border-color .2s ease;box-sizing:border-box}.reminder-textarea:focus{outline:none;border-color:#0077b6;box-shadow:0 0 0 3px #0077b61a}.reminder-textarea::placeholder{color:#9ca3af}.reminder-auto-note{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.25rem}.reminder-auto-note-title{font-size:.8rem;font-weight:600;color:#0369a1;margin-bottom:.6rem}.reminder-auto-note-preview{background:#fff;border-radius:6px;padding:.75rem 1rem;margin-bottom:.6rem;border:1px solid #e0f2fe}.reminder-auto-note-preview p{margin:0;font-size:.8rem;color:#374151;line-height:1.6}.reminder-auto-note-preview em{color:#0077b6;font-style:normal;font-weight:500}.reminder-auto-note-cta{font-size:.8rem;color:#6b7280;margin:0}.reminder-auto-note-freetext{color:#9ca3af!important;font-style:italic}.reminder-placeholders{margin-top:.75rem;margin-bottom:.5rem}.reminder-placeholders-label{font-size:.8rem;font-weight:600;color:#6b7280;display:block;margin-bottom:.5rem}.reminder-placeholder-tags{display:flex;flex-wrap:wrap;gap:.4rem}.reminder-placeholder-tags code{background:#f0f4ff;color:#0077b6;padding:.25rem .6rem;border-radius:6px;font-size:.78rem;font-family:SF Mono,Fira Code,monospace;border:1px solid #dbeafe}.public-profile-preview{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #eee}.preview-title{font-size:.9rem;font-weight:700;color:#1a1a2e;margin-bottom:1rem}.preview-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:1.25rem}.preview-name{font-size:1.1rem;font-weight:700;color:#1a1a2e;margin-bottom:.75rem}.preview-item{display:flex;align-items:flex-start;gap:.5rem;font-size:.85rem;color:#555;margin-bottom:.5rem}.preview-item svg{width:16px;height:16px;flex-shrink:0;margin-top:2px}.preview-item a{color:#0077b6;text-decoration:none}.preview-item a:hover{text-decoration:underline}.preview-item-whatsapp svg{color:#25d366}.preview-block{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e5e7eb}.preview-block-label{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.35rem}.preview-block-content{font-size:.85rem;color:#555;line-height:1.5;white-space:pre-wrap}.preview-empty{text-align:center;padding:1.5rem;color:#999;font-size:.9rem;background:#f9fafb;border-radius:12px;border:1px dashed #e5e7eb}.public-profile-banner{background:#fff;border-radius:16px;padding:1.25rem 1.5rem;margin-bottom:1rem;border:1px solid rgba(0,128,128,.15);box-shadow:0 2px 12px #0080800f;animation:sectionFadeIn .2s ease}.profile-banner-header{display:flex;align-items:center;gap:.5rem;padding-bottom:.75rem;margin-bottom:1rem;border-bottom:1px solid #f0f0f0;font-size:.8rem;font-weight:600;color:teal;text-transform:uppercase;letter-spacing:.5px}.profile-banner-header svg{width:16px;height:16px;stroke:teal}.collapse-chevron{width:16px;height:16px;transition:transform .2s ease;flex-shrink:0}.collapse-chevron.collapsed{transform:rotate(-90deg)}.edit-profile-btn{margin-left:auto;display:flex;align-items:center;gap:.35rem;padding:.4rem .75rem;background:#00808014;border:none;border-radius:6px;font-size:.75rem;font-weight:600;color:teal;cursor:pointer;transition:all .15s ease}.edit-profile-btn:hover{background:#00808026}.edit-profile-btn svg{width:12px;height:12px}.profile-banner-content{display:flex;flex-direction:column;gap:1rem}.profile-main-info{display:flex;flex-direction:column;gap:.35rem}.profile-name{font-size:1.25rem;font-weight:700;color:#1a1a2e;margin:0}.profile-location{display:flex;align-items:center;gap:.4rem;font-size:.9rem;color:#64748b;margin:0}.profile-location svg{width:14px;height:14px;stroke:teal;flex-shrink:0}.profile-empty{color:#cbd5e1;font-style:italic}.profile-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.profile-contact-item{display:flex;align-items:flex-start;gap:.6rem;padding:.6rem .75rem;background:#f8fafc;border-radius:8px}.profile-contact-item svg{width:16px;height:16px;stroke:teal;flex-shrink:0;margin-top:2px}.profile-contact-item>div{display:flex;flex-direction:column;gap:.15rem;min-width:0}.contact-label{font-size:.7rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.3px}.contact-value{font-size:.85rem;color:#1a1a2e;word-break:break-word}.contact-value.profile-empty{color:#cbd5e1;font-style:italic}.profile-info-section{padding-top:.75rem;border-top:1px solid #f0f0f0}.profile-info-section .info-label{display:block;font-size:.7rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.3px;margin-bottom:.35rem}.profile-info-section .info-text{font-size:.9rem;color:#475569;margin:0;line-height:1.5}.today-stats-banner{background:linear-gradient(135deg,#f0f7ff,#e8f4f8);border-radius:16px;padding:1rem 1.5rem;margin-bottom:1.25rem;border:1px solid rgba(0,128,128,.1);animation:sectionFadeIn .2s ease}.stats-banner-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.8rem;font-weight:600;color:teal;text-transform:uppercase;letter-spacing:.5px}.stats-banner-header svg{width:16px;height:16px;stroke:teal}.today-date{margin-left:auto;font-size:.85rem;font-weight:500;color:#64748b;text-transform:none;letter-spacing:0}.stats-banner-grid{display:flex;gap:1rem;flex-wrap:wrap}.stat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:80px;padding:.75rem 1rem;background:#fff;border-radius:10px;box-shadow:0 2px 8px #0000000a}.stat-card-value{font-size:1.75rem;font-weight:700;color:#1a1a2e;line-height:1}.stat-card-label{font-size:.7rem;color:#64748b;text-transform:uppercase;letter-spacing:.3px;margin-top:.3rem}.stats-refresh-btn{background:none;border:none;cursor:pointer;padding:.3rem;border-radius:6px;display:flex;align-items:center;justify-content:center;color:teal;margin-left:.5rem;transition:color .15s ease,background .15s ease}.stats-refresh-btn:hover{background:#0080801f}.stats-refresh-btn:disabled{cursor:not-allowed;opacity:.5}.stats-refresh-btn svg{width:15px;height:15px}.stats-refresh-btn.refreshing svg{animation:spinRefresh .8s linear infinite}@keyframes spinRefresh{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.stat-card.next-slot{flex:1;align-items:flex-start;padding:.75rem 1rem}.next-slots-list{display:flex;flex-direction:column;gap:0;margin-top:.4rem}.next-slots-location-group .next-slot-rows{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap}.next-slot-row{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;padding-right:1rem;border-right:1px solid #e5e7eb}.next-slot-row:last-child{border-right:none;padding-right:0}.next-slot-row:not(:first-child) .next-slot-date,.next-slot-row:not(:first-child) .next-slot-time{opacity:.7}.next-slot-date{font-size:.75rem;font-weight:600;color:#1a1a2e}.next-slot-time{font-size:.9rem;font-weight:700;color:teal}.next-slot-none{font-size:.8rem;color:#9ca3af;font-style:italic;margin-top:.25rem}.next-slots-location-group{display:flex;flex-direction:column;gap:.3rem}.next-slots-location-group+.next-slots-location-group{padding-top:.5rem;border-top:1px solid #e5e7eb;margin-top:.2rem}.next-slots-location-name{font-size:.7rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.04em}.next-slots-location-group .next-slots-list{margin-top:0}.calendar-container{background:#fff;border-radius:16px;padding:1.5rem;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 20px #0000000a;animation:sectionFadeIn .2s ease}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;flex-wrap:wrap;gap:1rem}.calendar-title{font-size:1.15rem;font-weight:700;color:#1a1a2e;margin:0}.calendar-nav{display:flex;align-items:center;gap:.5rem}.calendar-nav-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#f3f4f6;border:none;border-radius:8px;cursor:pointer;color:#6b7280;transition:all .2s ease}.calendar-nav-btn:hover{background:#e5e7eb;color:#1a1a2e}.calendar-nav-btn svg{width:18px;height:18px}.calendar-week-picker{position:relative}.calendar-week-label{font-size:.9rem;font-weight:600;color:#1a1a2e;min-width:180px;text-align:center}.calendar-week-label.clickable{cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.4rem .75rem;border-radius:6px;transition:all .2s ease}.calendar-week-label.clickable:hover{background:#f3f4f6}.calendar-picker-icon{width:16px;height:16px;color:#6b7280}.date-picker-dropdown{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);background:#fff;border-radius:10px;box-shadow:0 4px 20px #00000026;padding:1rem;z-index:100;min-width:200px}.date-picker-dropdown:before{content:"";position:absolute;top:-6px;left:50%;transform:translate(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid white}.date-picker-label{display:block;font-size:.8rem;font-weight:600;color:#6b7280;margin-bottom:.5rem}.date-picker-input{width:100%;padding:.6rem .75rem;border:1px solid #e5e7eb;border-radius:8px;font-size:.9rem;color:#1a1a2e;cursor:pointer}.date-picker-input:focus{outline:none;border-color:#0077b6;box-shadow:0 0 0 3px #0077b61a}.calendar-today-btn{padding:.4rem .875rem;background:#0077b6;color:#fff;border:none;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-left:.5rem}.calendar-today-btn:hover{background:#005f8a}.calendar-view-toggle{display:flex;gap:.4rem;padding:0 .5rem .5rem;flex-wrap:wrap}.calendar-view-toggle-btn{padding:.3rem .85rem;border-radius:20px;border:1.5px solid #d1d5db;background:#fff;color:#6b7280;font-size:.78rem;font-weight:500;cursor:pointer;transition:all .15s ease}.calendar-view-toggle-btn:hover{border-color:#0077b6;color:#0077b6}.calendar-view-toggle-btn.active{background:#0077b6;border-color:#0077b6;color:#fff}.calendar-legend{display:flex;gap:1.25rem;padding:.5rem .5rem .75rem;flex-wrap:wrap}.calendar-legend-item{display:flex;align-items:center;gap:.4rem;font-size:.72rem;color:#6b7280;font-weight:500}.calendar-legend-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.calendar-grid-wrapper{overflow-x:auto;margin:0 -.5rem;padding:0 .5rem}.calendar-grid{display:grid;grid-template-columns:60px repeat(6,1fr);min-width:650px;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;position:relative}.calendar-practice-subheader{background:#f3f8fc;border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb;font-size:.65rem;font-weight:600;color:#0077b6;text-align:center;padding:.2rem .25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-practice-subheader:last-child,.calendar-practice-subheader.today:last-of-type{border-right:none}.calendar-practice-subheader.today{background:#e8f4fb;color:#005f8a}.calendar-grid--multi>.calendar-cell:nth-child(7n){border-right:1px solid #e5e7eb}.calendar-grid--multi>.calendar-cell:nth-last-child(-n+6){border-bottom:1px solid #e5e7eb}.calendar-grid--multi>.calendar-cell.calendar-cell--day-end{border-right:none}.calendar-grid--multi>.calendar-cell.calendar-cell--last-row{border-bottom:none}.current-time-indicator{position:absolute;left:60px;right:0;height:2px;background:#ef4444;z-index:5;pointer-events:none}.current-time-indicator:before{content:"";position:absolute;left:-5px;top:50%;transform:translateY(-50%);width:10px;height:10px;border-radius:50%;background:#ef4444}.calendar-corner{background:#f9fafb;border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb;position:sticky;left:0;z-index:2}.calendar-day-header{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.75rem .25rem;background:#f9fafb;border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb}.calendar-day-header:last-child{border-right:none}.calendar-day-header.today{background:#0077b6}.calendar-day-header.today .calendar-day-name,.calendar-day-header.today .calendar-day-date{color:#fff}.calendar-day-name{font-size:.7rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.calendar-day-date{font-size:1.1rem;font-weight:700;color:#1a1a2e;margin-top:2px}.calendar-time-label{display:flex;align-items:center;justify-content:center;padding:.5rem .25rem;font-size:.7rem;font-weight:500;color:#6b7280;background:#f9fafb;border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb;position:sticky;left:0;z-index:1}.calendar-cell{min-height:36px;border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb;background:#fff;transition:background .15s ease;cursor:pointer;position:relative;display:flex;align-items:stretch}.calendar-cell:hover{background:#f5f9fc}.calendar-cell:nth-child(7n+1){border-right:1px solid #e5e7eb}.calendar-cell.today-column{background:#0077b60a}.calendar-cell.today-column:hover{background:#0077b614}.calendar-grid>.calendar-time-label:last-of-type,.calendar-grid>.calendar-cell:nth-last-child(-n+6){border-bottom:none}.calendar-grid>.calendar-cell:nth-child(7n){border-right:none}.calendar-cell.has-booking{background:#fff;cursor:pointer;padding:0 6px 0 0}.calendar-cell.has-booking:hover{background:#f5f9fc}.calendar-cell.today-column.has-booking{background:#0077b60a}.calendar-cell.today-column.has-booking:hover{background:#0077b614}.calendar-cell.has-booking:hover .booking-chip{filter:brightness(1.08)}.booking-chip{font-size:.65rem;font-weight:600;background:#8ecfa0;color:#fff;padding:0 .35rem;border-radius:0;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;flex:1;width:auto;height:100%;min-height:36px}.booking-chip.booking-chip--patient{background:#4a90e2}.calendar-cell.has-booking:not(.booking-last){border-bottom-color:#8ecfa0}.calendar-cell.has-patient-booking:not(.booking-last){border-bottom-color:#4a90e2}.calendar-cell.has-booking.booking-blocked:not(.booking-last){border-bottom-color:#8ecfa0}.booking-chip.booking-first{border-radius:4px 4px 0 0;align-items:flex-start;flex-direction:column;justify-content:flex-start;padding-top:.3rem}.booking-chip-name{font-size:.65rem;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.booking-chip-location{font-size:.55rem;font-weight:400;opacity:.8;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.booking-chip.booking-last{border-radius:0 0 4px 4px}.booking-chip.booking-first.booking-last{border-radius:4px;align-items:flex-start;justify-content:center;padding-top:0}.booking-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f1530b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:modalFadeIn .2s ease}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.booking-modal{background:#fff;border-radius:16px;width:100%;max-width:760px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:modalSlideIn .25s ease}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.booking-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #eee}.booking-modal-title{font-size:1.15rem;font-weight:700;color:#1a1a2e;margin:0}.booking-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#f3f4f6;border:none;border-radius:8px;cursor:pointer;color:#6b7280;transition:all .2s ease}.booking-modal-close:hover{background:#e5e7eb;color:#1a1a2e}.booking-modal-close svg{width:18px;height:18px}.booking-modal-slot-info{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:#f9fafb;border-bottom:1px solid #eee}.booking-modal-slot-info svg{width:24px;height:24px;color:#0077b6;flex-shrink:0}.booking-modal-slot-info .slot-date{font-size:.95rem;font-weight:600;color:#1a1a2e;margin:0}.booking-modal-slot-info .slot-time{font-size:.85rem;color:#6b7280;margin:.15rem 0 0}.blockout-override-warning{display:flex;align-items:center;gap:.6rem;margin:0 1.5rem .25rem;padding:.6rem .9rem;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;font-size:.85rem;color:#92400e}.blockout-override-warning svg{flex-shrink:0;width:16px;height:16px;stroke:#d97706}.booking-modal-form{padding:1.5rem}.pp-modal .booking-modal-form{display:grid;grid-template-columns:1fr 1fr;gap:0 1.25rem}.pp-modal .booking-modal-form .form-group:last-of-type,.pp-modal .booking-modal-form .booking-modal-submit{grid-column:1 / -1}.booking-modal-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.booking-modal-form .form-group{margin-bottom:1.25rem}.booking-modal-form label{display:flex;align-items:center;font-size:.72rem;font-weight:600;color:#1a1a2e;margin-bottom:.4rem}.booking-modal-form label .required{color:#dc2626}.booking-modal-form label .char-count{margin-left:auto;font-size:.7rem;font-weight:500;color:#999}.booking-modal-form label .char-count.warning{color:#d97706}.booking-modal-form label .char-count.limit{color:#dc2626}.booking-modal-form input,.booking-modal-form textarea,.booking-modal-form select{width:100%;padding:.55rem .75rem;border:1px solid #ddd;border-radius:8px;font-size:.82rem;font-family:inherit;color:#1a1a2e;transition:border-color .2s ease,box-shadow .2s ease;background:#fafafa}.booking-modal-form select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center;padding-right:2.5rem}.booking-modal-form textarea{resize:vertical;min-height:80px;line-height:1.5}.booking-modal-form input:focus,.booking-modal-form textarea:focus,.booking-modal-form select:focus{outline:none;border-color:#0077b6;box-shadow:0 0 0 3px #0077b61a;background:#fff}.booking-modal-form input::placeholder,.booking-modal-form textarea::placeholder{color:#bbb}.booking-modal-submit{width:100%;padding:.9rem;background:linear-gradient(135deg,#96c43c,#7ab32d);color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .2s ease,transform .1s ease;margin-top:.5rem}.booking-modal-submit:hover{opacity:.9}.booking-modal-submit:active{transform:scale(.98)}.booking-modal-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}.booking-success-screen{display:flex;flex-direction:column;align-items:center;padding:1.5rem 1rem 1rem;gap:.4rem}.booking-success-icon{width:3rem;height:3rem;border-radius:50%;background:#dcfce7;display:flex;align-items:center;justify-content:center;margin-bottom:.5rem}.booking-success-icon svg{width:1.75rem;height:1.75rem;stroke:#16a34a}.booking-success-name{font-size:1rem;font-weight:600;color:#1e293b;margin:0}.booking-success-msg{font-size:.85rem;color:#64748b;margin:0 0 .75rem}.booking-success-screen .booking-modal-submit,.booking-success-screen .add-profile-inline-btn{width:100%}.add-profile-inline-btn{display:block;width:100%;margin-top:.5rem;padding:.5rem;background:none;border:none;color:#4a90e2;font-size:.85rem;font-weight:500;text-align:center;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.add-profile-inline-btn:hover{color:#0077b6}.booking-type-modal{max-width:300px}.booking-type-prompt{text-align:center;color:#6b7280;font-size:.9rem;margin:.25rem 0 1.25rem}.slot-time{font-size:.8rem;color:#6b7280;margin:0}.booking-type-options{display:flex;gap:1rem;padding:.25rem 0 .5rem}.booking-type-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.75rem;border-radius:8px;border:2px solid transparent;cursor:pointer;font-size:.8rem;font-weight:500;transition:background .15s ease,color .15s ease,border-color .15s ease;background:none}.booking-type-btn svg{width:22px;height:22px}.booking-type-btn.patient{background:#f0f9f4;border-color:#8ecfa0;color:#2d6a4f}.booking-type-btn.patient:hover{background:#8ecfa0;color:#fff}.booking-type-btn.profile{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.booking-type-btn.profile:hover{background:#93c5fd;color:#fff}.booking-type-btn.blockout{background:#f5f6f7;border-color:#b0b8c1;color:#4b5563}.booking-type-btn.blockout:hover{background:#b0b8c1;color:#fff}.booking-type-modal{max-width:380px!important}.calendar-cell.is-past{background:#0000000a;cursor:not-allowed;pointer-events:none;opacity:.5}.calendar-cell.is-past.has-booking{pointer-events:auto;cursor:pointer;opacity:.7}.calendar-cell.is-past.has-booking:hover{opacity:.85}.calendar-cell.is-past.has-booking .booking-chip{opacity:.8}.calendar-cell.beyond-end-date{background:repeating-linear-gradient(45deg,rgba(0,0,0,.03),rgba(0,0,0,.03) 4px,transparent 4px,transparent 10px);cursor:not-allowed;pointer-events:none;opacity:.45}.calendar-cell.beyond-end-date.has-booking{pointer-events:auto;cursor:pointer;opacity:.7}.calendar-cell.is-blocked{background:#9ca3af1f;cursor:pointer}.calendar-cell.is-blocked:hover{background:#9ca3af33}.calendar-cell.is-blocked.today-column{background:#9ca3af26}.blocked-indicator{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.blocked-indicator svg{width:16px;height:16px;color:#9ca3af;opacity:.7}.calendar-cell.is-blocked.has-blockout{background:transparent;padding:0 6px 0 0}.calendar-cell.is-blocked.has-blockout:hover{background:#f5f9fc}.calendar-cell.is-blocked.has-blockout:hover .blockout-chip{filter:brightness(1.08)}.calendar-cell.is-blocked.has-blockout:not(.blockout-last-slot){border-bottom-color:#b0b8c1}.blockout-chip{font-size:.65rem;font-weight:600;background:#b0b8c1;color:#fff;padding:0 .35rem;border-radius:0;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;flex:1;width:auto;height:100%;min-height:36px;box-sizing:border-box;cursor:pointer}.blockout-chip.blockout-first{border-radius:4px 4px 0 0;align-items:flex-start;padding-top:.3rem}.blockout-chip.blockout-last{border-radius:0 0 4px 4px}.blockout-chip.blockout-first.blockout-last{border-radius:4px;align-items:center;padding-top:0}.calendar-cell.has-booking.has-blockout{padding:0}.calendar-cell.has-booking.has-blockout:not(.booking-last){border-bottom-color:#e5e7eb}.calendar-cell.has-booking.has-blockout .blockout-chip{flex:1;width:auto;border-right:1px solid rgba(255,255,255,.35)}.calendar-cell.has-booking.has-blockout .booking-chip{flex:1}.calendar-cell.has-booking.has-blockout .blockout-chip.blockout-first{border-radius:4px 0 0}.calendar-cell.has-booking.has-blockout .blockout-chip.blockout-last{border-radius:0 0 0 4px}.calendar-cell.has-booking.has-blockout .blockout-chip.blockout-first.blockout-last{border-radius:4px 0 0 4px}.calendar-cell.has-booking.has-blockout .blockout-chip:not(.blockout-first):not(.blockout-last){border-radius:0}.calendar-cell.has-booking.has-blockout .booking-chip.booking-first{border-radius:0 4px 0 0}.calendar-cell.has-booking.has-blockout .booking-chip.booking-last{border-radius:0 0 4px}.calendar-cell.has-booking.has-blockout .booking-chip.booking-first.booking-last{border-radius:0 4px 4px 0}.calendar-cell.has-booking.has-blockout .booking-chip:not(.booking-first):not(.booking-last){border-radius:0}.calendar-cell.has-conflict{padding:0}.calendar-cell.has-conflict:not(.booking-last){border-bottom-color:#e5e7eb}.calendar-cell.has-conflict .booking-chip{flex:1}.calendar-cell.has-conflict .booking-chip--conflict{background:#3d8f58}.calendar-cell.has-conflict .booking-chip:first-child{border-right:1px solid rgba(255,255,255,.4)}.calendar-cell.has-conflict .booking-chip:not(.booking-chip--conflict).booking-first{border-radius:4px 0 0}.calendar-cell.has-conflict .booking-chip:not(.booking-chip--conflict).booking-last{border-radius:0 0 0 4px}.calendar-cell.has-conflict .booking-chip:not(.booking-chip--conflict).booking-first.booking-last{border-radius:4px 0 0 4px}.calendar-cell.has-conflict .booking-chip:not(.booking-chip--conflict):not(.booking-first):not(.booking-last){border-radius:0}.calendar-cell.has-conflict .booking-chip--conflict.booking-first{border-radius:0 4px 0 0}.calendar-cell.has-conflict .booking-chip--conflict.booking-last{border-radius:0 0 4px}.calendar-cell.has-conflict .booking-chip--conflict.booking-first.booking-last{border-radius:0 4px 4px 0}.calendar-cell.has-conflict .booking-chip--conflict:not(.booking-first):not(.booking-last){border-radius:0}.calendar-actions{display:flex;justify-content:flex-end;margin-top:1rem;padding-top:1rem;border-top:1px solid #eee}.add-blockout-btn{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:#fff;border:1px solid #dc2626;color:#dc2626;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.add-blockout-btn:hover{background:#dc2626;color:#fff}.add-blockout-btn svg{width:16px;height:16px}.blockout-banner{background:#b0b8c1;border-radius:16px;padding:1.25rem 1.5rem;margin-bottom:1rem;border:none;box-shadow:0 2px 12px #0000001f;animation:sectionFadeIn .2s ease}.blockout-banner-header{display:flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:600;color:#dc2626;text-transform:uppercase;letter-spacing:.5px;cursor:pointer}.blockout-banner-header svg{width:16px;height:16px;stroke:#dc2626}.blockout-add-btn{margin-left:auto;display:flex;align-items:center;gap:.35rem;padding:.4rem .75rem;background:#ffffff4d;border:none;border-radius:6px;font-size:.75rem;font-weight:600;color:#dc2626;cursor:pointer;transition:all .15s ease}.blockout-add-btn:hover{background:#ffffff80}.blockout-add-btn svg{width:14px;height:14px}.blockout-banner-content{padding-top:.75rem;margin-top:.75rem;border-top:1px solid rgba(255,255,255,.4)}.blockout-list{display:flex;flex-direction:column;gap:.75rem}.blockout-list-item{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem;background:#ffffff40;border:1px solid rgba(255,255,255,.4);border-radius:10px}.blockout-item-info{flex:1;min-width:0}.blockout-item-dates{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;color:#dc2626;margin-bottom:.35rem}.blockout-item-dates svg{width:16px;height:16px;color:#dc2626;flex-shrink:0}.blockout-item-details{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.8rem;color:#dc2626;margin-bottom:.35rem}.blockout-item-time,.blockout-item-days{display:inline-flex;align-items:center}.booking-created-by-tag{display:inline-block;font-size:.7rem;color:#6b7280;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:999px;padding:.1rem .5rem;margin-top:.25rem}.blockout-item-reason{font-size:.85rem;color:#dc2626;margin:.5rem 0 0;padding-top:.5rem;border-top:1px solid rgba(220,38,38,.25)}.blockout-item-actions{display:flex;gap:.5rem;flex-shrink:0}.blockout-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .2s ease}.blockout-action-btn svg{width:16px;height:16px}.blockout-action-btn.edit{color:#0077b6}.blockout-action-btn.edit:hover{background:#0077b6;border-color:#0077b6;color:#fff}.blockout-action-btn.delete{color:#dc2626}.blockout-action-btn.delete:hover{background:#dc2626;border-color:#dc2626;color:#fff}.blockout-modal .booking-modal-form input[type=date]{cursor:pointer}.blockout-submit{background:linear-gradient(135deg,#dc2626,#b91c1c)!important}.days-selector{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.day-btn{padding:.5rem .875rem;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;font-size:.8rem;font-weight:600;color:#6b7280;cursor:pointer;transition:all .2s ease}.day-btn:hover{background:#e5e7eb;color:#1a1a2e}.day-btn.selected{background:#dc2626;border-color:#dc2626;color:#fff}.form-error{font-size:.75rem;color:#dc2626;margin:.35rem 0 0}.form-hint{font-size:.75rem;color:#9ca3af;margin:.15rem 0 .35rem}.phone-input-group{display:flex;align-items:center;border:1px solid #d1d5db;border-radius:8px;overflow:hidden;background:#fff}.phone-input-group:focus-within{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.phone-prefix{padding:0 10px;font-size:.95rem;color:#374151;background:#f3f4f6;border-right:1px solid #d1d5db;white-space:nowrap;line-height:44px;height:44px}.phone-input-group input{border:none!important;box-shadow:none!important;border-radius:0!important;flex:1;min-width:0}.blockout-view-content{padding:1.5rem}.blockout-view-item{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem}.blockout-view-item:last-child{margin-bottom:0}.blockout-view-label{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.blockout-view-value{font-size:.95rem;color:#1a1a2e}.blockout-view-actions{display:flex;gap:.75rem;padding:1rem 1.5rem 1.5rem;border-top:1px solid #eee}.blockout-view-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.blockout-view-btn svg{width:16px;height:16px}.blockout-view-btn.edit{background:#f3f4f6;border:1px solid #e5e7eb;color:#1a1a2e}.blockout-view-btn.edit:hover{background:#0077b6;border-color:#0077b6;color:#fff}.blockout-view-btn.delete{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.blockout-view-btn.delete:hover{background:#dc2626;border-color:#dc2626;color:#fff}.blockout-conflicts{background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;padding:.75rem 1rem;margin-top:.5rem}.blockout-conflicts-header{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;color:#92400e;margin-bottom:.5rem}.blockout-conflicts-header svg{flex-shrink:0;stroke:#f59e0b}.blockout-conflicts-list{display:flex;flex-direction:column;gap:.4rem;max-height:160px;overflow-y:auto}.blockout-conflict-item{display:flex;justify-content:space-between;align-items:center;background:#fffbeb;border-radius:6px;padding:.4rem .6rem;font-size:.8rem}.blockout-conflict-patient{font-weight:600;color:#1a1a2e}.blockout-conflict-details{color:#6b7280;font-size:.75rem}.patient-search-container{margin-bottom:1.25rem}.patient-search-wrapper{position:relative;display:flex;align-items:center}.patient-search-icon{position:absolute;left:.875rem;width:18px;height:18px;color:#9ca3af;pointer-events:none}.patient-search-input{width:100%;padding:.75rem 2.5rem .75rem 2.75rem;border:1px solid #e5e7eb;border-radius:10px;font-size:.95rem;font-family:inherit;color:#1a1a2e;background:#f9fafb;transition:all .2s ease}.patient-search-input:focus{outline:none;border-color:#0077b6;box-shadow:0 0 0 3px #0077b61a;background:#fff}.patient-search-input::placeholder{color:#9ca3af}.patient-search-clear{position:absolute;right:.5rem;display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:6px;cursor:pointer;color:#9ca3af;transition:all .2s ease}.patient-search-clear:hover{background:#e5e7eb;color:#1a1a2e}.patient-search-clear svg{width:16px;height:16px}.patient-list{display:flex;flex-direction:column;gap:.75rem}.booking-subgroup{display:flex;flex-direction:column;gap:.6rem}.booking-subgroup-header{display:flex;align-items:center;gap:.5rem;padding:.3rem .25rem;background:transparent;border:none;border-bottom:1px solid #e2e8f0;border-radius:0;cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .15s}.booking-subgroup-header:hover{opacity:.75}.booking-subgroup-title{font-size:.78rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;flex:1}.booking-subgroup-count{font-size:.72rem;font-weight:600;background:transparent;color:#9ca3af;border-radius:0;padding:0;min-width:unset;text-align:center}.booking-subgroup-chevron{width:14px;height:14px;stroke:#9ca3af;transition:transform .2s}.booking-subgroup-chevron.open{transform:rotate(180deg)}.booking-subgroup-empty{font-size:.85rem;color:#94a3b8;padding:.4rem .85rem;margin:0}.patient-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;transition:all .2s ease}.patient-card:hover{border-color:#d1d5db}.patient-header{display:flex;align-items:center;gap:.75rem;padding:1rem;cursor:pointer;transition:background .2s ease}.patient-header:hover{background:#f3f4f6}.patient-header.expanded{background:#f3f4f6;border-bottom:1px solid #e5e7eb}.patient-avatar{width:42px;height:42px;background:linear-gradient(135deg,#0077b6,#00b4d8);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:#fff;text-transform:uppercase;flex-shrink:0}.patient-avatar.large{width:56px;height:56px;font-size:1rem}.patient-info{flex:1;min-width:0}.patient-name{font-size:.95rem;font-weight:600;color:#1a1a2e;margin:0 0 .15rem}.patient-phone{font-size:.8rem;color:#6b7280;margin:0}.patient-booking-count{display:flex;flex-direction:column;align-items:center;gap:.15rem;margin-right:.5rem}.booking-count-badge{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:#96c43c;color:#fff;font-size:.75rem;font-weight:700;border-radius:50%}.booking-count-label{font-size:.65rem;color:#6b7280}.patient-expand-icon{width:20px;height:20px;color:#9ca3af;flex-shrink:0;transition:transform .2s ease}.patient-header.expanded .patient-expand-icon{transform:rotate(180deg)}.patient-bookings{padding:.5rem;background:#fff}.patient-booking-item{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease}.patient-booking-item:last-child{margin-bottom:0}.patient-booking-item:hover{background:#f3f4f6;border-color:#0077b6}.booking-item-date,.booking-item-time{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:#1a1a2e}.booking-item-date svg,.booking-item-time svg{width:14px;height:14px;color:#6b7280}.booking-item-date{flex:1}.booking-item-time{min-width:110px}.booking-item-arrow{width:16px;height:16px;color:#9ca3af;flex-shrink:0}.booking-view-content{padding:1.5rem}.booking-view-patient{display:flex;align-items:center;gap:1rem;padding-bottom:1.25rem;margin-bottom:1.25rem;border-bottom:1px solid #eee}.booking-view-name{font-size:.95rem;font-weight:700;color:#1a1a2e;margin:0 0 .1rem}.booking-view-age{font-size:.72rem;font-weight:500;color:#0077b6;margin:0 0 .15rem}.booking-view-phone{font-size:.78rem;color:#6b7280;margin:0;display:flex;align-items:center;gap:.4rem}.copy-phone-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid #d1d5db;border-radius:5px;padding:.2rem;cursor:pointer;color:#6b7280;transition:all .15s ease}.copy-phone-btn:hover{background:#f3f4f6;color:teal;border-color:teal}.copy-phone-btn svg{width:14px;height:14px}.copy-phone-btn .check-icon,.copy-phone-btn.copied .copy-icon{display:none}.copy-phone-btn.copied .check-icon{display:block;color:#22c55e}.copy-phone-btn.copied{border-color:#22c55e;background:#22c55e14}.booking-view-details{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.booking-view-item{display:flex;flex-direction:column;gap:.25rem}.booking-view-item.booking-notes-edit{grid-column:1 / -1}.booking-notes-textarea{border:1px solid #d1d5db;border-radius:8px;padding:.5rem .65rem;font-size:.88rem;font-family:inherit;color:#1e293b;resize:vertical;outline:none;transition:border-color .2s}.booking-notes-textarea:focus{border-color:#4a90e2;box-shadow:0 0 0 3px #4a90e21a}.booking-notes-footer{display:flex;justify-content:space-between;align-items:center}.booking-notes-count{font-size:.75rem;color:#94a3b8}.booking-notes-save{padding:.25rem .75rem;background:#4a90e2;color:#fff;border:none;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s}.booking-notes-save:hover:not(:disabled){background:#357abd}.booking-notes-save:disabled{opacity:.45;cursor:default}.booking-view-label{font-size:.68rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.booking-view-value{font-size:.82rem;color:#1a1a2e}.booking-view-value.notes{background:#f9fafb;padding:.75rem;border-radius:8px;border:1px solid #e5e7eb;line-height:1.5;white-space:pre-wrap}.booking-reminder-section{margin:0 1.5rem;padding:1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.booking-reminder-header{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;color:#475569;margin-bottom:.6rem}.booking-reminder-header svg{width:16px;height:16px;color:#0077b6}.booking-reminder-preview{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem;font-size:.82rem;color:#334155;line-height:1.6;white-space:pre-wrap;max-height:150px;overflow-y:auto;margin-bottom:.6rem}.booking-reminder-copy{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .85rem;background:linear-gradient(135deg,#0077b6,#00b4d8);color:#fff;border:none;border-radius:6px;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .2s ease}.booking-reminder-copy:hover{opacity:.9}.booking-reminder-copy.copied{background:linear-gradient(135deg,#059669,#34d399)}.booking-reminder-copy svg{width:14px;height:14px}.view-profile-inline-btn{background:none;border:none;color:#0077b6;font-size:.72rem;font-weight:600;cursor:pointer;padding:0;text-decoration:underline;white-space:nowrap}.view-profile-inline-btn:hover{color:#005f8e}.view-profile-btn{display:flex;align-items:center;gap:.45rem;padding:.45rem 1rem;margin:0 1.5rem .25rem;background:#f0f4ff;color:#0077b6;border:1px solid #c7d9f0;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s;width:calc(100% - 3rem);justify-content:center}.view-profile-btn:hover{background:#dbeafe}.view-profile-btn svg{width:15px;height:15px}.booking-view-actions{display:flex;gap:.75rem;padding:1rem 1.5rem 1.5rem;border-top:1px solid #eee}.booking-view-btn.close-btn{flex:1;padding:.75rem;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px;font-size:.9rem;font-weight:600;color:#1a1a2e;cursor:pointer;transition:all .2s ease}.booking-view-btn.close-btn:hover{background:#e5e7eb}.patient-booking-actions{display:flex;gap:.75rem}.patient-booking-actions .calendar-booking-btn{flex:1}.calendar-booking-modal{max-width:480px}.calendar-booking-modal.reschedule-mode{max-width:780px}.past-booking-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem 1.5rem;background:#0000000a;color:#6b7280;font-size:.78rem;font-weight:500;border-bottom:1px solid #eee}.past-booking-badge svg{width:14px;height:14px;flex-shrink:0}.calendar-booking-actions{display:flex;gap:.75rem;padding:1rem 1.5rem 1.5rem;border-top:1px solid #eee}.calendar-booking-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.calendar-booking-btn svg{width:18px;height:18px}.calendar-booking-btn.reschedule{background:#f0f9ff;border:1px solid #0077b6;color:#0077b6}.calendar-booking-btn.reschedule:hover{background:#0077b6;color:#fff}.calendar-booking-btn.cancel{background:#fef2f2;border:1px solid #dc2626;color:#dc2626}.calendar-booking-btn.cancel:hover{background:#dc2626;color:#fff}.calendar-booking-btn.reminder{background:#f0fdf4;border:1px solid #16a34a;color:#16a34a}.calendar-booking-btn.reminder:hover:not(:disabled){background:#16a34a;color:#fff}.calendar-booking-btn.reminder--sent{background:#16a34a;color:#fff;border-color:#16a34a}.calendar-booking-btn.reminder:disabled{opacity:.6;cursor:not-allowed}.calendar-booking-btn.back{background:#f3f4f6;border:1px solid #e5e7eb;color:#6b7280}.calendar-booking-btn.back:hover{background:#e5e7eb;color:#1a1a2e}.calendar-booking-btn.confirm-cancel{background:linear-gradient(135deg,#dc2626,#b91c1c);border:none;color:#fff}.calendar-booking-btn.confirm-cancel:hover{opacity:.9}.calendar-booking-btn.confirm-cancel:disabled{opacity:.5;cursor:not-allowed}.calendar-booking-btn.confirm-reschedule{background:linear-gradient(135deg,#0077b6,#005f8a);border:none;color:#fff}.calendar-booking-btn.confirm-reschedule:hover{opacity:.9}.calendar-booking-btn.confirm-reschedule:disabled{opacity:.5;cursor:not-allowed}.cancel-warning{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-bottom:1rem}.cancel-warning svg{width:24px;height:24px;color:#dc2626;flex-shrink:0}.cancel-warning p{font-size:.9rem;color:#991b1b;margin:0;line-height:1.5}.cancel-booking-summary{padding:1rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:1rem}.cancel-booking-summary p{margin:0 0 .25rem;font-size:.9rem;color:#1a1a2e}.cancel-booking-summary p:last-child{margin-bottom:0}.cancel-actions{background:#fef2f2}.reschedule-content{padding:1.5rem}.reschedule-current-booking{padding:1rem;background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;margin-bottom:1.25rem}.reschedule-label{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;margin:0 0 .5rem}.reschedule-info{font-size:.9rem;color:#1a1a2e;margin:0;line-height:1.5}.reschedule-calendar-section{margin-bottom:1rem}.reschedule-calendar-nav{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.reschedule-inline-calendar-container{margin-top:.75rem;background:#f8fafa;border-radius:12px;padding:1rem}.reschedule-inline-calendar-layout{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.reschedule-monthly-calendar{background:#fff;border-radius:10px;padding:1rem;box-shadow:0 2px 8px #0000000a}.reschedule-month-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.reschedule-month-title{font-size:1rem;font-weight:700;color:#1a1a2e;margin:0}.reschedule-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:.35rem}.reschedule-calendar-weekdays span{text-align:center;font-size:.7rem;font-weight:600;color:#94a3b8;padding:.35rem 0}.reschedule-calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.reschedule-cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.85rem;font-weight:500;color:#1a1a2e;background:none;border:2px solid transparent;border-radius:8px;cursor:pointer;transition:all .15s ease;position:relative;padding:0}.reschedule-cal-day:hover:not(.disabled):not(.other-month){border-color:teal;background:#0080800d}.reschedule-cal-day.other-month{color:#cbd5e1;cursor:default}.reschedule-cal-day.disabled{color:#cbd5e1;cursor:not-allowed}.reschedule-cal-day.today{border-color:teal}.reschedule-cal-day.selected{background:teal;color:#fff;border-color:teal}.reschedule-availability-dot{width:4px;height:4px;border-radius:50%;background:teal;position:absolute;bottom:3px}.reschedule-cal-day.selected .reschedule-availability-dot{background:#fff}.reschedule-time-slots-panel{background:#fff;border-radius:10px;padding:1rem;box-shadow:0 2px 8px #0000000a;display:flex;flex-direction:column}.reschedule-time-slots-title{font-size:.95rem;font-weight:700;color:#1a1a2e;margin:0 0 .75rem;padding-bottom:.6rem;border-bottom:1px solid #e5e7eb}.reschedule-time-slots-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem;overflow-y:auto;max-height:280px;padding-right:.25rem}.reschedule-time-slot-btn{padding:.7rem .75rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:.9rem;font-weight:500;color:#1a1a2e;cursor:pointer;transition:all .15s ease}.reschedule-time-slot-btn:hover:not(:disabled){border-color:teal;background:#0080800d}.reschedule-time-slot-btn.selected{background:teal;border-color:teal;color:#fff}.reschedule-time-slot-btn.unavailable{background:#f8fafc;color:#cbd5e1;cursor:not-allowed;border-color:#f1f5f9}.reschedule-selected-info{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding:.75rem 1rem;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;font-size:.85rem;color:#059669}.reschedule-selected-info svg{width:18px;height:18px;flex-shrink:0}.reschedule-reason-group{margin-top:1rem}.reschedule-reason-group label{display:block;font-size:.8rem;font-weight:600;color:#1a1a2e;margin-bottom:.4rem}.reschedule-reason-group label .required{color:#dc2626}.reschedule-reason-group textarea{width:100%;padding:.75rem .875rem;border:1px solid #ddd;border-radius:8px;font-size:.9rem;font-family:inherit;color:#1a1a2e;background:#fafafa;resize:vertical;min-height:60px;transition:border-color .2s ease,box-shadow .2s ease}.reschedule-reason-group textarea:focus{outline:none;border-color:#0077b6;box-shadow:0 0 0 3px #0077b61a;background:#fff}.reschedule-reason-group textarea::placeholder{color:#bbb}.reschedule-actions{background:#f0f9ff}.booking-view-item.rescheduled-info{padding:.75rem;background:#fffbeb;border:1px solid #fde68a;border-radius:8px}.booking-view-value.reschedule-reason{font-size:.85rem;color:#92400e;font-style:italic;margin-top:.25rem}.calendar-cell.has-booking{cursor:pointer}@media(max-width:768px){.provider-dashboard-layout{flex-direction:column;gap:1rem}.provider-dashboard-sidebar{width:100%;position:static}.provider-dashboard-icons{flex-direction:row;flex-wrap:wrap;gap:.75rem}.provider-icon-card{flex:1 1 calc(33% - .5rem);min-width:90px}}@media(max-width:480px){.provider-dashboard-page{padding:1.5rem 1rem}.provider-dashboard-welcome{flex-wrap:wrap;gap:.75rem;padding:1rem 1.25rem}.provider-dashboard-welcome .logout-btn{padding:.4rem .75rem;font-size:.78rem;margin-left:auto}.provider-icon-card{padding:.9rem .5rem}.provider-dashboard-section{padding:1.5rem 1.25rem}.section-form label{flex-direction:column;align-items:flex-start;gap:.25rem}.private-badge,.section-form label .char-count{margin-left:0}.public-profile-banner,.blockout-banner{padding:1rem}.profile-banner-header{flex-wrap:wrap}.edit-profile-btn{margin-left:0;margin-top:.5rem;width:100%;justify-content:center}.profile-contact-grid{grid-template-columns:1fr}.today-stats-banner{padding:1rem}.stats-banner-header{flex-wrap:wrap}.today-date{width:100%;margin-left:0;margin-top:.25rem}.stats-banner-grid{flex-direction:column}.stat-card{min-width:70px;padding:.6rem .75rem}.stat-card-value{font-size:1.4rem}.stat-card.next-slot{flex:unset}.calendar-container{padding:1rem}.calendar-header{flex-direction:column;align-items:stretch}.calendar-nav{justify-content:center}.calendar-week-label{min-width:auto}.blockout-list-item{flex-direction:column;gap:.75rem}.blockout-item-actions{align-self:flex-end}.days-selector{gap:.35rem}.day-btn{padding:.4rem .65rem;font-size:.75rem}.blockout-view-actions{flex-direction:column}.patient-header{flex-wrap:wrap}.patient-booking-count{flex-direction:row;gap:.35rem}.patient-booking-item{flex-wrap:wrap;gap:.5rem 1rem}.booking-item-date{flex:none;width:100%}.booking-item-time{min-width:auto;flex:1}.booking-item-arrow{position:absolute;right:1rem;top:50%;transform:translateY(-50%)}.patient-booking-item{position:relative;padding-right:2.5rem}.calendar-booking-actions{flex-direction:column}.calendar-booking-modal.reschedule-mode{max-width:100%}.reschedule-inline-calendar-layout{grid-template-columns:1fr}.reschedule-time-slots-grid{max-height:200px}}.calendar-view-link-block{background:#f0f4ff;border:1px solid #c7d4f5;border-radius:10px;padding:1.25rem 1.5rem;margin:0 0 1.5rem}.calendar-view-link-header{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:.95rem;color:#1a1a2e;margin-bottom:.4rem}.calendar-view-link-desc{font-size:.82rem;color:#666;margin:0 0 .9rem;line-height:1.5}.calendar-view-link-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.calendar-view-url{flex:1;font-size:.82rem;font-family:monospace;color:#3a3a6e;background:#fff;border:1px solid #c7d4f5;border-radius:6px;padding:.45rem .75rem;word-break:break-all;min-width:0}.calendar-view-copy-btn{flex-shrink:0;background:#1a1a2e;color:#fff;border:none;border-radius:6px;padding:.45rem 1rem;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.calendar-view-copy-btn:hover{background:#2d2d5e}.calendar-view-link-inline{display:flex;align-items:center;gap:.4rem;margin-left:auto}.calendar-view-link-inline-label{font-size:.78rem;font-weight:600;color:#555;white-space:nowrap}.calendar-view-copy-icon-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:#1a1a2e;padding:.25rem;border-radius:4px;transition:background .15s,color .15s}.calendar-view-copy-icon-btn:hover{background:#dde6ff;color:#2d2d5e}.provider-info-modal{background:#fff;border-radius:16px;width:100%;max-width:560px;max-height:88vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:modalSlideIn .25s ease;display:flex;flex-direction:column}.contact-section-body{padding:1.5rem 1.75rem 2rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem}.contact-section-intro{color:#6b7280;font-size:.95rem;margin:0}.contact-section-card{background:#f8f9ff;border:1px solid #e0e7ff;border-radius:12px;padding:2rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%;max-width:360px}.contact-section-icon{width:48px;height:48px;background:#e0e7ff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#4a90e2;margin-bottom:.5rem}.contact-section-icon svg{width:22px;height:22px}.contact-section-label{font-size:.8rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin:0}.contact-section-email{font-size:1.05rem;font-weight:700;color:#1a1a2e;text-decoration:none}.contact-section-email:hover{color:#4a90e2;text-decoration:underline}.contact-section-note{font-size:.8rem;color:#9ca3af;margin:.25rem 0 0}.provider-info-modal-body{padding:1.5rem 1.75rem 2rem;display:flex;flex-direction:column;gap:1.25rem}.provider-info-section{border-left:3px solid #0077b6;padding-left:1rem}.provider-info-heading{font-size:.95rem;font-weight:700;color:#1a1a2e;margin:0 0 .5rem}.provider-info-subheading{font-size:.85rem;font-weight:600;color:#444;margin:.6rem 0 .4rem}.provider-info-list{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.4rem}.provider-info-list li{font-size:.85rem;color:#555;line-height:1.6}.provider-info-responsibility{border-left-color:#dc2626;background:#fef9f9;border-radius:0 8px 8px 0;padding:.85rem 1rem}.provider-info-responsibility .provider-info-heading{color:#b91c1c}.provider-info-responsibility-text{font-size:.85rem;color:#555;line-height:1.65;margin:0}@media(max-width:600px){.provider-info-modal{max-height:92vh}.provider-info-modal-body{padding:1.25rem 1.25rem 1.75rem}}.sub-cancelled-notice{background:#fef3c7;color:#92400e;text-align:center;font-size:.82rem;font-weight:500;padding:.5rem 1rem;border-radius:6px;margin:.75rem 0 0}.sub-cancelled-notice a{color:#92400e;font-weight:700;text-decoration:underline}.sub-login-table{width:100%;border-collapse:collapse;font-size:.85rem}.sub-login-table th{text-align:left;padding:.5rem .75rem;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid #e5e7eb;background:#f9fafb}.sub-login-table td{padding:.65rem .75rem;border-bottom:1px solid #f3f4f6;vertical-align:middle;color:#111827}.sub-login-table tbody tr:last-child td{border-bottom:none}.sub-login-table tbody tr:hover td{background:#f9fafb}.sub-login-badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600}.sub-login-badge.verified{background:#d1fae5;color:#065f46}.sub-login-badge.pending{background:#fef3c7;color:#92400e}.sub-login-action-btn{font-size:.72rem;padding:.3rem .65rem;border-radius:6px;cursor:pointer;border:1px solid #e5e7eb;background:#f3f4f6;color:#374151;margin-right:.4rem;transition:background .15s}.sub-login-action-btn:hover{background:#e5e7eb}.sub-login-action-btn.danger{background:#fee2e2;border-color:#fecaca;color:#dc2626}.sub-login-action-btn.danger:hover{background:#fecaca}.cancel-sub-block{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.cancel-sub-trigger{background:none;border:1px solid #dc2626;color:#dc2626;padding:.6rem 1.2rem;border-radius:6px;font-size:.875rem;cursor:pointer;transition:background .15s,color .15s}.cancel-sub-trigger:hover{background:#dc2626;color:#fff}.cancel-sub-confirmed{font-size:.875rem;color:#16a34a;margin-bottom:.75rem}.cancel-sub-form{display:flex;flex-direction:column;gap:.75rem}.cancel-sub-title{font-weight:600;font-size:.95rem;color:#dc2626;margin:0}.cancel-sub-desc{font-size:.85rem;color:#555;margin:0}.cancel-sub-error{font-size:.85rem;color:#dc2626;margin:0}.cancel-sub-reasons{display:flex;flex-direction:column;gap:.5rem}.cancel-sub-reason-option{display:flex;align-items:center;gap:.6rem;padding:.6rem .85rem;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;color:#374151;cursor:pointer;transition:all .15s ease;background:#f9fafb}.cancel-sub-reason-option:hover{border-color:#dc2626;background:#fff5f5;color:#dc2626}.cancel-sub-reason-option.selected{border-color:#dc2626;background:#fef2f2;color:#dc2626;font-weight:500}.cancel-sub-reason-option input[type=radio]{accent-color:#dc2626;width:15px;height:15px;flex-shrink:0;cursor:pointer}.cancel-sub-actions{display:flex;gap:.75rem;margin-top:.25rem}.cancel-sub-back{flex:1;padding:.65rem;border:1px solid #6b7280;background:none;color:#374151;border-radius:6px;font-size:.875rem;cursor:pointer;transition:background .15s}.cancel-sub-back:hover{background:#f3f4f6}.cancel-sub-submit{flex:1;padding:.65rem;border:none;background:#dc2626;color:#fff;border-radius:6px;font-size:.875rem;cursor:pointer;transition:opacity .15s}.cancel-sub-submit:hover{opacity:.88}.cancel-sub-submit:disabled{opacity:.5;cursor:not-allowed}.pp-action-row{display:flex;gap:.6rem;align-items:center;margin-bottom:1.25rem;flex-wrap:wrap}.pp-add-btn{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.1rem;background:#0077b6;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s ease}.pp-add-btn:hover{background:#005f92}.pp-add-btn svg{width:16px;height:16px}.pp-copy-link-btn{display:flex;align-items:center;gap:.45rem;padding:.6rem 1rem;background:#f0f4ff;color:#0077b6;border:1px solid #c7d9f0;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.pp-copy-link-btn:hover{background:#dbeafe}.pp-copy-link-btn.copied{background:#dcfce7;color:#16a34a;border-color:#86efac}.pp-copy-link-btn svg{width:15px;height:15px}.pp-profile-details{padding:.75rem 1rem 1rem;border-top:1px solid #e5e7eb;background:#fff;display:flex;flex-direction:column;gap:.5rem}.pp-detail-row{display:flex;gap:.75rem;font-size:.875rem}.pp-detail-label{color:#6b7280;min-width:140px;flex-shrink:0;font-weight:500}.pp-detail-value{color:#1f2937}.pp-detail-row--notes .pp-detail-value{white-space:pre-wrap}.pp-card-actions{display:flex;gap:.35rem;margin-left:auto;margin-right:.5rem;flex-shrink:0}.pp-card-text-btn{padding:.2rem .6rem;border:1px solid #c7d9f0;border-radius:5px;background:#f0f4ff;color:#0077b6;font-size:.78rem;font-weight:600;cursor:pointer;transition:background .15s}.pp-card-text-btn:hover{background:#dbeafe}.pp-card-text-btn--delete{background:#fff0f0;color:#dc2626;border-color:#fecaca}.pp-card-text-btn--delete:hover{background:#fee2e2}.pp-modal{max-height:90vh;overflow-y:auto}.booking-modal-actions{display:flex;gap:.75rem;padding:1rem 1.5rem 1.5rem}.pp-picker-modal{max-height:90vh;display:flex;flex-direction:column}.pp-picker-list{overflow-y:auto;max-height:320px;display:flex;flex-direction:column;gap:.25rem;margin-top:.25rem}.pp-picker-row{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-radius:8px;border:1px solid #e5e7eb;background:#f9fafb;cursor:pointer;text-align:left;width:100%;transition:background .15s ease,border-color .15s ease}.pp-picker-row:hover{background:#eff6ff;border-color:#93c5fd}.pp-picker-info{flex:1;display:flex;flex-direction:column;gap:.1rem}.pp-picker-name{font-size:.9rem;font-weight:600;color:#1f2937}.pp-picker-cell{font-size:.8rem;color:#6b7280}.pp-picker-empty{text-align:center;color:#9ca3af;font-size:.875rem;padding:1rem 0}.submission-success-page{flex:1;display:flex;align-items:center;justify-content:center;padding:3rem 2rem}.submission-success-card{background:#fff;border-radius:16px;padding:3rem 2.5rem;max-width:460px;width:100%;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 20px #0000000a;text-align:center}.submission-success-icon{width:64px;height:64px;margin:0 auto 1.5rem;background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#059669;padding:14px}.submission-success-icon svg{width:100%;height:100%}.submission-success-title{font-size:1.5rem;font-weight:700;color:#1a1a2e;margin-bottom:1rem}.submission-success-message{font-size:1rem;color:#374151;line-height:1.6;margin-bottom:.75rem}.submission-success-sub{font-size:.9rem;color:#6b7280;line-height:1.5;margin-bottom:2rem}.submission-success-btn{padding:.875rem 2rem;background:linear-gradient(135deg,#0077b6,#00b4d8);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s ease}.submission-success-btn:hover{opacity:.9}.provider-pending-page{flex:1;display:flex;align-items:center;justify-content:center;padding:3rem 2rem}.provider-pending-card{background:#fff;border-radius:16px;padding:3rem 2.5rem;max-width:460px;width:100%;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 20px #0000000a;text-align:center}.provider-pending-icon{width:64px;height:64px;margin:0 auto 1.5rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#d97706;padding:14px}.provider-pending-icon svg{width:100%;height:100%}.provider-pending-title{font-size:1.5rem;font-weight:700;color:#1a1a2e;margin-bottom:1rem}.provider-pending-message{font-size:1rem;color:#374151;line-height:1.6;margin-bottom:.75rem}.provider-pending-sub{font-size:.9rem;color:#6b7280;line-height:1.5;margin-bottom:2rem}.provider-pending-logout{padding:.75rem 2rem;background:none;border:2px solid #e5e7eb;border-radius:10px;font-size:.95rem;font-weight:600;color:#6b7280;cursor:pointer;transition:all .2s ease}.provider-pending-logout:hover{border-color:#d1d5db;background:#f9fafb;color:#374151}.admin-login-page{flex:1;display:flex;align-items:center;justify-content:center;padding:3rem 2rem;background:#f8fafc}.admin-login-card{background:#fff;border-radius:16px;padding:3rem 2.5rem;max-width:400px;width:100%;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 20px #0000000f;text-align:center}.admin-login-icon{width:56px;height:56px;margin:0 auto 1.25rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e0e7ff,#c7d2fe);border-radius:14px;color:#4f46e5;padding:12px}.admin-login-icon svg{width:100%;height:100%}.admin-login-title{font-size:1.5rem;font-weight:700;color:#1a1a2e;margin-bottom:.5rem}.admin-login-subtitle{font-size:.9rem;color:#6b7280;margin-bottom:2rem}.admin-login-form{text-align:left}.admin-login-form .form-group{margin-bottom:1.25rem}.admin-login-form label{display:block;font-size:.8rem;font-weight:600;color:#1a1a2e;margin-bottom:.4rem}.admin-login-form input{width:100%;padding:.8rem 1rem;border:1px solid #ddd;border-radius:10px;font-size:.95rem;color:#1a1a2e;background:#fafafa;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}.admin-login-form input:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a;background:#fff}.admin-login-error{color:#dc2626;font-size:.875rem;margin-bottom:1rem;background:#fef2f2;border:1px solid #fecaca;padding:.6rem .875rem;border-radius:8px}.admin-login-submit{width:100%;padding:.875rem;background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s ease}.admin-login-submit:hover{opacity:.9}.admin-login-submit:disabled{opacity:.6;cursor:not-allowed}.admin-login-divider{border:none;border-top:1px solid #e5e7eb;margin:1.5rem 0}.admin-register-provider-btn{width:100%;padding:.875rem;background:#fff;color:#4f46e5;border:1px solid #4f46e5;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s ease,color .2s ease}.admin-register-provider-btn:hover{background:#f0f0ff}.admin-dashboard{min-height:100vh;background:#f1f5f9;display:flex;flex-direction:column}.admin-header{background:#1e293b;padding:1rem 2rem;position:sticky;top:0;z-index:100}.admin-header-content{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.admin-header-title{font-size:1.25rem;font-weight:700;color:#fff;margin:0}.admin-header-actions{display:flex;align-items:center;gap:.75rem}.admin-register-provider-btn{padding:.5rem 1.25rem;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s ease}.admin-register-provider-btn:hover{background:#2563eb}.admin-logout-btn{padding:.5rem 1.25rem;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s ease}.admin-logout-btn:hover{background:#fff3}.admin-main{max-width:1100px;margin:2rem auto;width:100%;padding:0 2rem;flex:1}.admin-section-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.admin-section-header h2{font-size:1.25rem;font-weight:700;color:#1e293b;margin:0}.admin-badge{background:#4f46e5;color:#fff;font-size:.75rem;font-weight:700;padding:.2rem .6rem;border-radius:20px;min-width:24px;text-align:center}.admin-refresh-btn{margin-left:auto;padding:.5rem 1rem;background:#fff;border:1px solid #e2e8f0;border-radius:8px;font-size:.85rem;font-weight:500;color:#475569;cursor:pointer;transition:background .2s ease}.admin-refresh-btn:hover:not(:disabled){background:#f8fafc}.admin-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.admin-error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca;padding:.75rem 1rem;border-radius:8px;font-size:.875rem;margin-bottom:1.5rem}.admin-empty{text-align:center;padding:4rem 2rem;background:#fff;border-radius:12px;border:1px solid #e2e8f0;color:#64748b}.admin-provider-list{display:flex;flex-direction:column;gap:1rem}.admin-provider-card{background:#fff;border-radius:12px;border:1px solid #e2e8f0;padding:1.5rem;box-shadow:0 1px 4px #0000000a}.admin-provider-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.25rem;gap:1rem}.admin-provider-name{font-size:1.1rem;font-weight:700;color:#1e293b;margin:0 0 .25rem}.admin-provider-id{font-size:.75rem;color:#94a3b8;font-family:monospace}.admin-provider-service{font-size:.8rem;font-weight:600;color:#4f46e5;background:#eef2ff;padding:.3rem .75rem;border-radius:20px;white-space:nowrap}.admin-provider-details{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.5rem 1.5rem;margin-bottom:1.25rem;padding:1rem;background:#f8fafc;border-radius:8px}.admin-detail-row{display:flex;flex-direction:column;gap:.1rem}.admin-detail-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8}.admin-detail-row span:last-child{font-size:.9rem;color:#334155}.admin-provider-actions{display:flex;gap:.75rem;justify-content:flex-end}.admin-btn-approve{padding:.6rem 1.5rem;background:#059669;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:opacity .2s ease}.admin-btn-approve:hover:not(:disabled){opacity:.9}.admin-btn-decline{padding:.6rem 1.5rem;background:#dc2626;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:opacity .2s ease}.admin-btn-decline:hover:not(:disabled){opacity:.9}.admin-btn-approve:disabled,.admin-btn-decline:disabled{opacity:.6;cursor:not-allowed}.admin-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.admin-confirm-modal{background:#fff;border-radius:12px;padding:2rem;max-width:420px;width:100%;box-shadow:0 20px 60px #00000026}.admin-confirm-title{font-size:1.1rem;font-weight:700;color:#1e293b;margin:0 0 .75rem}.admin-confirm-message{font-size:.9rem;color:#475569;line-height:1.5;margin-bottom:1.5rem}.admin-confirm-actions{display:flex;gap:.75rem;justify-content:flex-end}.admin-confirm-cancel{padding:.6rem 1.25rem;background:none;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem;font-weight:500;color:#64748b;cursor:pointer;transition:background .2s ease}.admin-confirm-cancel:hover{background:#f8fafc}@media(max-width:600px){.admin-main{padding:0 1rem}.admin-provider-header{flex-direction:column}.admin-provider-details{grid-template-columns:1fr}.admin-provider-actions{justify-content:stretch}.admin-btn-approve,.admin-btn-decline{flex:1;text-align:center}}.cv-wrapper{min-height:80vh;display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem;background:#f8f9fa}.cv-container{width:100%;max-width:860px;background:#fff;border-radius:12px;box-shadow:0 2px 16px #0000001a;overflow:hidden}.cv-header{background:#0f1530;color:#fff;padding:2rem 2.5rem;border-bottom:4px solid #96C43C}.cv-header-top{display:flex;align-items:center;gap:1rem;margin-bottom:.4rem}.cv-logo{height:80px;width:auto;flex-shrink:0}.cv-practice-name{margin:0;font-size:1.8rem;font-weight:700;letter-spacing:.02em}.cv-date{margin:0;font-size:1rem;opacity:.8;font-weight:400}.cv-body{padding:2rem 2.5rem}.cv-empty{text-align:center;color:#888;font-size:1.1rem;padding:3rem 0}.cv-table{width:100%;border-collapse:collapse;font-size:1rem}.cv-table thead tr{border-bottom:2px solid #1a1a2e}.cv-table th{text-align:left;padding:.75rem 1rem;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#555}.cv-th-time{width:110px}.cv-th-name{width:220px}.cv-th-type{width:90px;text-align:center}.cv-type{text-align:center}.cv-type-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.cv-type-badge--manual{background:#fef3c7;color:#92400e}.cv-type-badge--patient{background:#dbeafe;color:#1e40af}.cv-type-badge--blockout{background:#f3f4f6;color:#6b7280}.cv-row{border-bottom:1px solid #f0f0f0;transition:background .15s}.cv-row:last-child{border-bottom:none}.cv-row:hover{background:#f8f9ff}.cv-row--past{opacity:.45}.cv-row--past .cv-time,.cv-row--past .cv-name{text-decoration:line-through;color:#999}.cv-row--current{background:#fffbe6}.cv-row--patient{background:#bfdbfe}.cv-row--manual{background:#bbf7d0}.cv-next-badge{display:inline-block;background:#96c43c;color:#fff;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.15rem .45rem;border-radius:4px;margin-right:.5rem;vertical-align:middle}.cv-row--blockout{background:#f5f6f7}.cv-row--blockout:hover{background:#eef0f2}.cv-row--blockout.cv-row--past{opacity:.4}.cv-row--blockout .cv-time{color:#6b7280;font-weight:600}.cv-blockout-time-end{font-size:.85em;color:#9ca3af}.cv-blockout-label{color:#9ca3af;font-style:italic;font-size:.95rem;padding:1rem;vertical-align:middle}.cv-now-row td{padding:.25rem 0;border:none}.cv-now-line{display:flex;align-items:center;gap:.75rem}.cv-now-line:before,.cv-now-line:after{content:"";flex:1;height:2px;background:#96c43c}.cv-now-label{font-size:.75rem;font-weight:700;color:#96c43c;white-space:nowrap;text-transform:uppercase;letter-spacing:.06em}.cv-table td{padding:1rem;vertical-align:top}.cv-time{font-weight:700;color:#1a1a2e;font-size:1.05rem;white-space:nowrap}.cv-name{font-weight:600;color:#222}.cv-reason{color:#555}.cv-updated{text-align:right;font-size:.75rem;color:#bbb;padding:.75rem 2.5rem;border-top:1px solid #f0f0f0;margin:0}.cv-container--multi{max-width:none}.cv-table--multi{table-layout:fixed}.cv-table--multi th,.cv-table--multi td{min-width:90px}.cv-th-practice-name{text-align:center;font-size:.9rem;font-weight:700;color:#1a1a2e;background:#f0f4ff;border-bottom:2px solid #d0d8f0;padding:.6rem 1rem}.cv-table--multi thead tr:first-child th{border-right:2px solid #d0d8f0}.cv-table--multi thead tr:first-child th:last-child{border-right:none}.cv-table--multi tbody tr td:nth-child(3n){border-right:2px solid #e5e7eb}.cv-table--multi tbody tr td:last-child{border-right:none}.cv-blockout-time{color:#6b7280;font-weight:600}.cv-loading,.cv-error{padding:4rem;text-align:center;color:#888;font-size:1.1rem}.cv-error{color:#e63946}.ppf-page{min-height:100vh;background:#f0f4f8;display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem 3rem}.ppf-card{background:#fff;border-radius:14px;box-shadow:0 2px 16px #00000014;padding:2rem 1.75rem;width:100%;max-width:480px}.ppf-title{font-size:1.4rem;font-weight:700;color:#1e293b;margin:0 0 .25rem}.ppf-subtitle{font-size:.9rem;color:#64748b;margin:0 0 1.5rem}.ppf-form{display:flex;flex-direction:column;gap:1rem}.ppf-form-group{display:flex;flex-direction:column;gap:.35rem}.ppf-form-group label{font-size:.85rem;font-weight:600;color:#374151;display:flex;justify-content:space-between;align-items:center}.ppf-required{color:#dc2626}.ppf-form-group input,.ppf-form-group textarea{border:1px solid #d1d5db;border-radius:8px;padding:.55rem .75rem;font-size:.9rem;color:#1e293b;background:#fff;transition:border-color .2s;outline:none;font-family:inherit}.ppf-form-group input:focus,.ppf-form-group textarea:focus{border-color:#4a90e2;box-shadow:0 0 0 3px #4a90e21f}.ppf-phone-group{display:flex;align-items:center;border:1px solid #d1d5db;border-radius:8px;overflow:hidden;transition:border-color .2s}.ppf-phone-group:focus-within{border-color:#4a90e2;box-shadow:0 0 0 3px #4a90e21f}.ppf-phone-prefix{padding:.55rem .65rem;background:#f1f5f9;color:#64748b;font-size:.85rem;font-weight:600;border-right:1px solid #d1d5db;white-space:nowrap}.ppf-phone-group input{border:none;border-radius:0;box-shadow:none;flex:1}.ppf-phone-group input:focus{border:none;box-shadow:none}.ppf-char-count{font-size:.75rem;font-weight:400;color:#94a3b8}.ppf-char-count.ppf-warning{color:#f59e0b}.ppf-char-count.ppf-limit{color:#dc2626}.ppf-submit{margin-top:.5rem;padding:.75rem;background:#4a90e2;color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s}.ppf-submit:hover{background:#357abd}.ppf-submit:disabled{opacity:.6;cursor:not-allowed}.ppf-error{color:#dc2626;font-size:.85rem;margin:0}.ppf-loading{color:#64748b;text-align:center;padding:2rem 0}.ppf-success-icon{width:3.5rem;height:3.5rem;border-radius:50%;background:#dcfce7;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}.ppf-success-icon svg{width:2rem;height:2rem;stroke:#16a34a}.ppf-success-title{font-size:1.25rem;font-weight:700;color:#1e293b;text-align:center;margin:0 0 .5rem}.ppf-success-msg{font-size:.9rem;color:#64748b;text-align:center;margin:0;line-height:1.5}.login-page{flex:1;display:flex;align-items:center;justify-content:center;padding:3rem 2rem}.login-card{background:#fff;border-radius:16px;padding:3rem 2.5rem;max-width:440px;width:100%;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 20px #0000000a;text-align:center}.login-icon{width:56px;height:56px;margin:0 auto 1.25rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f4f8,#dbeafe);border-radius:14px;color:#0077b6;padding:12px}.login-icon svg{width:100%;height:100%}.login-title{font-size:1.5rem;font-weight:700;color:#1a1a2e;margin-bottom:.5rem}.login-subtitle{font-size:.95rem;color:#777;margin-bottom:2rem;line-height:1.5}.login-form{text-align:left}.login-submit{width:100%;padding:.875rem;background:linear-gradient(135deg,#0077b6,#00b4d8);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s ease;margin-top:.5rem}.login-submit:hover{opacity:.9}.login-submit:disabled{opacity:.6;cursor:not-allowed}.login-back{margin-top:1.5rem;font-size:.875rem;color:#777}.login-back span{color:#0077b6;font-weight:600;cursor:pointer}.login-back span:hover{text-decoration:underline}.form-error{color:#dc2626;font-size:.875rem;margin-top:.5rem;margin-bottom:.25rem}.form-success{color:#16a34a;font-size:.875rem;margin-top:.5rem;margin-bottom:.25rem}.phone-input-group{display:flex;align-items:center;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.phone-input-group .phone-prefix{padding:.75rem .875rem;background:#f3f4f6;color:#374151;font-size:.925rem;border-right:1px solid #e5e7eb;white-space:nowrap}.phone-input-group input{border:none;border-radius:0;flex:1;outline:none}@media(max-width:480px){.login-page{padding:2rem 1rem;align-items:flex-start}.login-card{padding:2rem 1.5rem}.login-title{font-size:1.3rem}}.faq-page{flex:1;display:flex;justify-content:center;padding:2.5rem 2rem;background:#f8fafc;min-height:100%}.faq-container{max-width:720px;width:100%}.faq-back-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem 0;background:none;border:none;color:#64748b;font-size:.9rem;cursor:pointer;margin-bottom:1.5rem;transition:color .15s ease}.faq-back-btn:hover{color:#7d7e99}.faq-back-btn svg{width:18px;height:18px}.faq-header{text-align:center;margin-bottom:2.5rem}.faq-title{font-family:Comfortaa,cursive;font-size:2rem;font-weight:700;color:#1a1a2e;margin:0 0 .5rem}.faq-subtitle{font-size:1rem;color:#64748b;margin:0}.faq-section{margin-bottom:2.5rem}.faq-category{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#7d7e99;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:2px solid #7D7E99}.faq-list{display:flex;flex-direction:column;gap:.5rem}.faq-item{background:#fff;border-radius:12px;border:1px solid #e5e7eb;overflow:hidden;transition:box-shadow .2s ease}.faq-item.open{box-shadow:0 4px 16px #7d7e991f;border-color:#7d7e99}.faq-question{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem;background:none;border:none;text-align:left;font-size:.95rem;font-weight:600;color:#1a1a2e;cursor:pointer;transition:background .15s ease}.faq-question:hover{background:#f8fafc}.faq-item.open .faq-question{color:#7d7e99}.faq-chevron{width:18px;height:18px;flex-shrink:0;color:#94a3b8;transition:transform .25s ease}.faq-item.open .faq-chevron{transform:rotate(180deg);color:#7d7e99}.faq-answer{padding:0 1.25rem 1.1rem;border-top:1px solid #f1f5f9}.faq-answer p{font-size:.9rem;color:#475569;line-height:1.7;margin:.75rem 0 0}.faq-answer p:first-child{margin-top:.75rem}.faq-list-items{margin:.5rem 0 0 1.25rem;padding:0;display:flex;flex-direction:column;gap:.35rem}.faq-list-items li{font-size:.9rem;color:#475569;line-height:1.7;padding-left:.25rem}.faq-contact{text-align:center;margin-top:3rem;padding:2rem;background:#fff;border-radius:16px;border:1px solid #e5e7eb}.faq-contact p{font-size:.95rem;color:#64748b;margin:0 0 .5rem}.faq-contact-link{display:inline-block;padding:.6rem 1.5rem;background:#7d7e99;color:#fff;border-radius:8px;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .15s ease}.faq-contact-link:hover{background:#6a6b85}@media(max-width:480px){.faq-page{padding:1.5rem 1rem}.faq-title{font-size:1.5rem}.faq-question{font-size:.9rem;padding:1rem}.faq-answer{padding:0 1rem 1rem}}.contact-page{flex:1;display:flex;justify-content:center;padding:2.5rem 2rem;background:#f8fafc;min-height:100%}.contact-container{max-width:560px;width:100%}.contact-back-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem 0;background:none;border:none;color:#64748b;font-size:.9rem;cursor:pointer;margin-bottom:1.5rem;transition:color .15s ease}.contact-back-btn:hover{color:#7d7e99}.contact-back-btn svg{width:18px;height:18px}.contact-header{text-align:center;margin-bottom:2rem}.contact-title{font-family:Comfortaa,cursive;font-size:2rem;font-weight:700;color:#1a1a2e;margin:0 0 .5rem}.contact-subtitle{font-size:1rem;color:#64748b;margin:0}.contact-card{display:flex;align-items:flex-start;gap:1.25rem;background:#fff;border-radius:16px;border:1px solid #e5e7eb;padding:1.75rem;box-shadow:0 2px 8px #0000000a}.contact-card-icon{width:48px;height:48px;min-width:48px;background:#7d7e99;border-radius:12px;display:flex;align-items:center;justify-content:center}.contact-card-icon svg{width:22px;height:22px;stroke:#fff}.contact-info-label{font-size:.75rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin:0 0 .3rem}.contact-info-value{font-size:1.05rem;font-weight:600;color:#1a1a2e;margin:0;text-decoration:none;display:block}a.contact-info-value:hover{color:#7d7e99}.contact-response-note{font-size:.82rem;color:#94a3b8;margin:.5rem 0 0}.contact-divider{border:none;border-top:1px solid #e5e7eb;margin:2rem 0}.contact-faq-prompt{display:flex;align-items:center;gap:.75rem;background:#fff;border-radius:12px;border:1px solid #e5e7eb;padding:1.25rem 1.5rem}.contact-faq-prompt svg{width:20px;height:20px;min-width:20px;stroke:#7d7e99}.contact-faq-prompt p{font-size:.9rem;color:#64748b;margin:0}.contact-faq-link{color:#7d7e99;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.contact-faq-link:hover{color:#6a6b85}@media(max-width:640px){.contact-page{padding:1.5rem 1rem}.contact-title{font-size:1.5rem}.contact-card{padding:1.25rem}}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Helvetica Neue,Arial,sans-serif;color:#1a1a2e;background:#0f1530;min-height:100vh;min-height:100dvh;overflow-x:hidden}.app{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;width:100%}.header{position:sticky;top:0;z-index:100;padding:1rem 2rem;background:#ffffffeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:none}.header-content{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;width:100%}.header-logo{display:flex;align-items:center;gap:.5rem}.header-brand-logo{height:36px;width:auto;object-fit:contain}.header-nav{display:flex;align-items:center;gap:.5rem}.logo-circle{position:relative;width:36px;height:36px;border:2px solid #d1d5db;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.logo-r{font-family:Comfortaa,cursive;font-size:1.1rem;font-weight:700;color:#1a1a2e}.logo-dot{position:absolute;top:-3px;right:2px;width:10px;height:10px;background:#96c43c;border-radius:50%}.logo-text{font-family:Comfortaa,cursive;font-size:1.4rem;font-weight:700;color:#1a1a2e;letter-spacing:-.5px}.hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;width:100%;max-width:1200px;margin:0 auto}.hero-title-container{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.hero-title-text{font-family:Comfortaa,cursive;font-size:1.6rem;font-weight:400;color:#1a1a2e;letter-spacing:normal}.hero-logo{display:flex;align-items:center;gap:.5rem}.hero-logo-circle{position:relative;width:clamp(50px,8vw,70px);height:clamp(50px,8vw,70px);border:3px solid #6b7280;border-radius:50%;display:flex;align-items:center;justify-content:center}.hero-logo-r{font-family:Comfortaa,cursive;font-size:clamp(1.5rem,4vw,2.5rem);font-weight:700;color:#fff}.hero-logo-dot{position:absolute;top:-5px;right:3px;width:clamp(12px,2vw,18px);height:clamp(12px,2vw,18px);background:#96c43c;border-radius:50%}.hero-logo-text{font-family:Comfortaa,cursive;font-size:clamp(2rem,5vw,3.5rem);font-weight:700;color:#fff;letter-spacing:-1px}.hero-subtitle{font-size:clamp(1rem,2.5vw,1.25rem);color:#fffc;max-width:600px;width:100%;line-height:1.7;margin-bottom:.75rem;padding:0 1rem}.hero-coming-soon{font-size:clamp(.875rem,2vw,1rem);color:#fff9;font-style:italic;margin-bottom:3.5rem}.back-home-btn{display:inline-flex;align-items:center;gap:.4rem;background:none;border:none;color:#0077b6;font-size:.9rem;font-weight:600;cursor:pointer;padding:1rem 0 0;text-decoration:none;transition:color .2s ease}.back-home-btn:hover{color:#005a8e}.welcome-bar{text-align:center;padding:1.1rem 2rem;width:100%;display:flex;flex-direction:column;align-items:center;background:#ffffffeb}.welcome-bar-top{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.75rem}.welcome-bar-logo{height:154px;width:auto;object-fit:contain;flex-shrink:0}.welcome-bar-text{display:flex;flex-direction:column;justify-content:center;text-align:left}.welcome-bar .hero-subtitle{margin-top:.25rem;margin-bottom:0;color:#1a1a2e;font-size:.9rem;padding:0}.faq-nav-btn{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1.4rem;background:#7d7e99;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s ease}.faq-nav-btn:hover{background:#6a6b85}.faq-nav-btn svg{width:17px;height:17px}.contact-nav-btn{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1.4rem;background:transparent;color:#7d7e99;border:1.5px solid #7D7E99;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s ease}.contact-nav-btn:hover{background:#7d7e99;color:#fff}.contact-nav-btn svg{width:17px;height:17px}.landing-page{flex:1;display:flex;flex-direction:column;align-items:center;width:100%;text-align:center}.landing-section{width:100%;padding:3rem 2rem;display:flex;justify-content:center;text-align:center}.section-kidz{background:#0f1530;border-top:none;border-bottom:none}.section-reyn{background:#fff;border-bottom:none}.section-reyn .section-heading,.section-reyn .section-subheading{color:#1a1a2e}.section-content{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%;max-width:960px}.section-header-row{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:2rem;width:100%;margin-bottom:1.5rem}.section-header-text{display:flex;flex-direction:column;align-items:flex-start;text-align:left}.section-header-text .section-subheading{margin-bottom:0;padding:0;text-align:left}.section-logo{width:auto;height:120px;object-fit:contain;flex-shrink:0;mix-blend-mode:lighten}.section-reyn .section-logo{mix-blend-mode:multiply}.section-heading{font-family:Comfortaa,cursive;font-size:1.4rem;font-weight:400;color:#fff;margin-bottom:.75rem}.section-subheading{font-size:clamp(.9rem,2vw,1.1rem);color:#ffffffbf;max-width:620px;line-height:1.7;margin-bottom:2rem;padding:0 1rem}.cards-container{display:flex;flex-direction:column;gap:.75rem;max-width:420px;width:100%;padding:0}.card{background:#7d7e99;border-radius:12px;padding:1rem 1.25rem;cursor:pointer;transition:all .2s ease;border:1px solid rgba(0,0,0,.06);display:flex;flex-direction:row;align-items:center;gap:1rem;text-align:left}.card:hover{transform:translate(4px);box-shadow:0 4px 16px #0000001f;background:#6a6b85}.card:active{transform:translate(2px);transition:transform .1s ease}.card-icon{width:42px;height:42px;min-width:42px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f4f8,#dbeafe);border-radius:10px;color:#0077b6;padding:10px;transition:all .2s ease;flex-shrink:0}.card-icon svg{width:100%;height:100%}.card-title{font-size:.95rem;font-weight:600;color:#fff;margin:0}.card-description{font-size:.875rem;color:#ffffffd9;line-height:1.6}.card:hover .card-icon{background:#96c43c;color:#fff}.footer{padding:1.5rem 2rem;text-align:center;color:#1a1a2e;font-size:.85rem;border-top:none;background:#ffffffeb;width:100%}@media(max-width:1024px){.cards-container{max-width:420px}}@media(max-width:768px){.header{padding:1rem 1.5rem}.hero{padding:3rem 1.5rem}.hero-subtitle{margin-bottom:2.5rem}.cards-container{max-width:100%}}@media(max-width:600px){.header{padding:.875rem 1rem}.logo-icon{width:32px;height:32px;font-size:1.2rem;border-radius:8px}.logo-text{font-size:1.3rem}.hero{padding:3rem 1rem 2rem;justify-content:flex-start}.hero-subtitle{margin-bottom:2rem;padding:0}.footer{padding:1.25rem 1rem;font-size:.8rem}}@media(max-width:380px){.hero{padding:2rem .75rem 1.5rem}}
