:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#1a202c;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}button{font-family:inherit}.page-wrapper{min-height:100vh;background:#fff;padding:1.5rem 1rem}.page-container{max-width:80rem;margin:0 auto}.page-layout{display:flex;flex-direction:column;gap:2rem}@media(min-width:1024px){.page-layout{flex-direction:row;align-items:flex-start}}.left-column{display:flex;flex-direction:column;gap:1.5rem;padding:0 1rem}@media(min-width:1024px){.left-column{flex:0 0 41.67%;padding:0 2rem}}.page-title{font-size:1.875rem;font-weight:400;color:#1a202c;margin:0;padding-bottom:1rem;text-align:center}@media(min-width:768px){.page-title{font-size:2.25rem}}@media(min-width:1024px){.page-title{text-align:left}}.left-info{display:flex;flex-direction:column;gap:.5rem}.left-info-text{font-size:1.125rem;color:#4a5568;margin:0}.left-info-heading{font-size:1.125rem;font-weight:600;color:#1a202c;margin:0}.left-select{width:100%;border:1px solid #d1d5db;border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;color:#1a202c;background:#fff;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s}.left-select:focus{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.status-bar{display:flex;flex-direction:column;gap:.4rem;font-size:.85rem}.status-left{display:flex;align-items:center;gap:.45rem}.status-right{display:flex;align-items:center;gap:.6rem}.status-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.status-label{color:#4a5568}.status-error{color:#e53e3e;font-size:.8rem}.status-time{color:#a0aec0;font-size:.8rem}.refresh-btn{padding:.3rem .8rem;font-size:.8rem;border-radius:.375rem;border:1px solid #d1d5db;background:#fff;color:#374151;cursor:pointer;font-family:inherit;transition:background .15s}.refresh-btn:hover:not(:disabled){background:#f3f4f6}.refresh-btn:disabled{opacity:.5;cursor:not-allowed}.right-column{width:100%}@media(min-width:1024px){.right-column{flex:1;min-width:0}}.content-card{background:#fff;border-radius:.75rem;box-shadow:0 4px 24px #0000001a}.card-inner{padding:1.5rem}@media(min-width:640px){.card-inner{padding:2rem}}@media(min-width:768px){.card-inner{padding:2.5rem}}.card-content{display:flex;flex-direction:column;gap:2rem;padding:0 1rem}@media(min-width:640px){.card-content{padding:0 1.5rem}}@media(min-width:768px){.card-content{padding:0 2rem}}.spinner-wrap{display:flex;justify-content:center;align-items:center;padding:3rem}.spinner{width:3rem;height:3rem;border:4px solid #bfdbfe;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress-steps{display:flex;justify-content:space-between;align-items:center}.step-item{display:flex;align-items:center}.step-circle{width:1.5rem;height:1.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600}@media(min-width:640px){.step-circle{width:2rem;height:2rem;font-size:.875rem}}.step-on{background:#1d4ed8;color:#fff}.step-off{background:#e5e7eb;color:#6b7280}.step-line{width:3rem;height:4px}@media(min-width:640px){.step-line{width:5rem}}.line-on{background:#3b82f6}.line-off{background:#e5e7eb}.step-block{display:flex;flex-direction:column;gap:1.5rem}.step-heading{font-size:1.25rem;font-weight:600;color:#1f2937;margin:0}.no-slots{text-align:center;padding:2rem;color:#9ca3af;font-size:1rem}.date-selector-block{display:flex;flex-direction:column;gap:.75rem}.date-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem}@media(max-width:900px){.date-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:640px){.date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.date-cell{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.55rem .6rem;border-radius:.5rem;border:1px solid #dbe3ef;background:#f8fafc;text-align:left;font-family:inherit;transition:background .15s,border-color .15s,transform .15s}.date-cell-day{font-size:.66rem;font-weight:700;letter-spacing:.05em;color:#64748b}.date-cell-date{font-size:.9rem;font-weight:600;color:#0f172a}.date-cell-count{font-size:.72rem;color:#475569}.date-cell-available{cursor:pointer;background:#eef6ff;border-color:#bfdbfe}.date-cell-available:hover{background:#dbeafe;transform:translateY(-1px)}.date-cell-selected{cursor:pointer;background:#1d4ed8;border-color:#1d4ed8}.date-cell-selected .date-cell-day,.date-cell-selected .date-cell-date,.date-cell-selected .date-cell-count{color:#fff}.date-cell-disabled{cursor:not-allowed;background:#f3f4f6;border-color:#e5e7eb}.date-cell-disabled .date-cell-day,.date-cell-disabled .date-cell-date,.date-cell-disabled .date-cell-count{color:#9ca3af}.availability-section{display:flex;flex-direction:column;gap:.75rem;padding-top:.25rem}.availability-heading{margin:0;font-size:1.06rem;font-weight:600;color:#1f2937}.availability-subheading{margin:0;font-size:.86rem;color:#64748b}.availability-empty{border:1px dashed #d1d5db;border-radius:.5rem;padding:1rem;color:#6b7280;font-size:.9rem;text-align:center;background:#f8fafc}.therapist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:.75rem}.therapist-column{background:#fff;border-radius:.625rem;border:1px solid #e2e8f0;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 4px #0000000d}.therapist-header{padding:.65rem .9rem;border-bottom:1px solid #e2e8f0;background:#eff6ff}.therapist-name{margin:0;font-size:.875rem;font-weight:600;color:#1e3a5f}.therapist-facility{display:block;font-size:.7rem;color:#3b82f6;margin-top:.15rem;font-weight:500}.slot-list{padding:.5rem;display:flex;flex-direction:column;gap:.25rem;max-height:340px;overflow-y:auto}.slot-count{padding:.4rem .9rem;font-size:.72rem;color:#94a3b8;border-top:1px solid #e2e8f0;text-align:center}.time-slot{width:100%;padding:.4rem .5rem;border:none;border-radius:5px;background:#dbeafe;color:#1d4ed8;font-size:.82rem;font-weight:500;text-align:center;cursor:pointer;transition:background .15s;font-family:inherit}.time-slot:hover:not(:disabled){background:#bfdbfe}.time-slot:disabled{opacity:.6;cursor:not-allowed}.step2-header{display:flex;align-items:center;justify-content:space-between}.back-btn{display:flex;align-items:center;gap:.25rem;background:none;border:none;padding:0;font-size:.9rem;color:#4b5563;cursor:pointer;font-family:inherit;transition:color .15s}.back-btn:hover{color:#111827}.header-spacer{width:4rem}.slot-banner{background:#eff6ff;padding:1rem;border-radius:.5rem;color:#1d4ed8;display:flex;align-items:center;gap:.5rem;font-size:.9rem}.slot-banner-icon{flex-shrink:0;display:flex;align-items:center}.patient-form{display:flex;flex-direction:column;gap:1.5rem}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-label{font-size:.9375rem;font-weight:500;color:#374151}.form-input{width:100%;padding:.75rem;border-radius:.5rem;border:1px solid #d1d5db;font-size:.9375rem;color:#111827;font-family:inherit;background:#fff;outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.input-error{border-color:#ef4444}.input-error:focus{box-shadow:0 0 0 1px #ef4444}.dob-row{display:flex;align-items:center;gap:.4rem}.dob-mm{width:4rem;text-align:center;padding-left:.5rem;padding-right:.5rem}.dob-yyyy{width:5.5rem;text-align:center;padding-left:.5rem;padding-right:.5rem}.dob-sep{color:#9ca3af;font-weight:500;font-size:1rem}.field-error{font-size:.8rem;color:#ef4444;margin-top:.1rem}.schedule-error{padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#dc2626;font-size:.875rem}.submit-btn{width:100%;background:#1d4ed8;color:#fff;padding:.75rem 1rem;border-radius:.5rem;border:none;font-size:1rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background .2s}.submit-btn:hover:not(:disabled){background:#1e40af}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.scheduling-spinner{width:4rem;height:4rem;border-radius:50%;border:6px solid #e2e8f0;border-top-color:#2563eb;animation:scheduling-spin .9s linear infinite}@keyframes scheduling-spin{to{transform:rotate(360deg)}}.confirmation{text-align:center;align-items:center;padding:1rem 0;max-width:32rem;margin:0 auto;position:relative}.scheduling-inline{gap:1rem;padding:2rem 0 2.5rem}@media(min-width:768px){.confirmation{padding:2rem 0}}.check-circle{width:4rem;height:4rem;background:#dbeafe;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#2563eb;margin-bottom:1.5rem}.confetti{position:absolute;inset:-.5rem 0 0;pointer-events:none;overflow:hidden}.confetti-piece{position:absolute;top:-.75rem;left:var(--x, 50%);width:.5rem;height:.9rem;border-radius:.2rem;background:hsl(var(--hue, 200) 80% 55%);opacity:0;transform:translateY(0) rotate(0);animation:confetti-fall 1s ease-out forwards;animation-delay:var(--delay, 0s)}@keyframes confetti-fall{0%{opacity:0;transform:translateY(0) rotate(0)}15%{opacity:1}to{opacity:0;transform:translateY(9rem) rotate(180deg)}}.confirm-text-group{display:flex;flex-direction:column;gap:.5rem}.confirm-title{font-size:1.5rem;font-weight:600;color:#1f2937;margin:0}.confirm-subtitle{color:#4b5563;margin:0;font-size:.9375rem}.confirm-details-card{background:#f9fafb;border-radius:.5rem;padding:1.5rem;width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:1rem}.confirm-row{display:flex;align-items:flex-start;gap:.75rem;text-align:left;flex-direction:column}@media(min-width:480px){.confirm-row{flex-direction:row;justify-content:space-between;align-items:baseline}}.confirm-label{font-size:.875rem;color:#6b7280;flex-shrink:0}.confirm-value{font-size:.9375rem;font-weight:500;color:#111827}.confirm-note{background:#eff6ff;border-radius:.5rem;padding:1rem;width:100%;box-sizing:border-box}.confirm-note p{margin:0;font-size:.875rem;color:#1d4ed8}.confirm-actions{margin-top:.5rem}.schedule-another-btn{display:inline-flex;align-items:center;gap:.5rem;background:none;border:none;padding:0;font-size:.9375rem;font-weight:500;font-family:inherit;color:#2563eb;cursor:pointer;transition:color .15s}.schedule-another-btn:hover{color:#1e40af}
