*{box-sizing:border-box}.auth-page{background:#f5f7fb;grid-template-columns:45% 55%;min-height:100vh;display:grid}.auth-brand{color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8);justify-content:center;align-items:center;padding:60px;display:flex}.brand-content{max-width:500px}.brand-logo{background:#ffffff26;border-radius:14px;justify-content:center;align-items:center;width:55px;height:55px;margin-bottom:35px;font-size:30px;display:flex}.brand-content h1{margin:0 0 20px;font-size:42px;line-height:1.15}.brand-content>p{opacity:.9;margin-bottom:50px;font-size:18px;line-height:1.6}.brand-features{flex-direction:column;gap:28px;display:flex}.brand-features div{flex-direction:column;gap:6px;display:flex}.brand-features strong{font-size:17px}.brand-features span{opacity:.8;font-size:14px;line-height:1.5}.auth-content{justify-content:center;align-items:center;padding:40px;display:flex}.auth-card{width:100%;max-width:520px}.auth-header{text-align:center;margin-bottom:30px}.auth-header h2{color:#111827;margin:0 0 8px;font-size:32px}.auth-header p{color:#6b7280;margin:0}.auth-tabs{background:#eef1f5;border:1px solid #e2e6ec;border-radius:10px;grid-template-columns:1fr 1fr;width:100%;margin-bottom:30px;padding:4px;display:grid}.auth-tabs a{color:#6b7280;border-radius:7px;justify-content:center;align-items:center;height:42px;font-size:14px;font-weight:500;text-decoration:none;transition:background-color .2s,color .2s,box-shadow .2s;display:flex}.auth-tabs a:hover{color:#2563eb}.auth-tabs a.active{color:#2563eb;background:#fff;font-weight:600;box-shadow:0 1px 3px #00000014,0 1px 2px #0000000a}.auth-form{flex-direction:column;gap:20px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:#374151;font-size:14px;font-weight:600}.form-group label span{color:#9ca3af;font-weight:400}.form-group input,.form-group select{color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:8px;outline:none;width:100%;height:48px;padding:0 14px;font-size:15px;transition:border-color .2s,box-shadow .2s}.form-group input::placeholder{color:#9ca3af}.form-group input:focus,.form-group select:focus{border-color:#2563eb}.password-input{position:relative}.password-input input{padding-right:60px}.password-toggle{color:#2563eb;cursor:pointer;background:0 0;border:none;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.forgot-password{text-align:right}.forgot-password a,.auth-footer a{color:#2563eb;text-decoration:none}.submit-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:8px;width:100%;height:48px;font-size:15px;font-weight:600;transition:background .2s,opacity .2s}.submit-btn:hover{background:#1d4ed8}.submit-btn:disabled{cursor:not-allowed;opacity:.7;background:#9ca3af}.submit-btn:disabled:hover{background:#9ca3af}.input-error{border-color:#dc2626!important}.input-error:focus{box-shadow:0 0 0 3px #dc262614;border-color:#dc2626!important}.field-error{color:#dc2626;margin-top:-2px;font-size:12px;line-height:1.3;display:block}.auth-footer{text-align:center;color:#6b7280;margin-top:28px;font-size:14px}@media (width<=900px){.auth-page{grid-template-columns:1fr}.auth-brand{display:none}.auth-content{min-height:100vh;padding:30px 20px}}@media (width<=600px){.auth-card{max-width:100%}}@media (width<=480px){.auth-content{padding:25px 16px}.auth-header h2{font-size:28px}}.forgot-password-links{justify-content:space-between;gap:12px;display:flex}.forgot-password-links button{color:#2563eb;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:14px}.forgot-password-back{text-align:center;margin-top:20px;font-size:14px}.forgot-password-back a{color:#2563eb;text-decoration:none}.register-container{width:100%}.register-container .auth-header{text-align:center;margin-bottom:24px}.register-container .auth-header h2{color:#111827;margin:0 0 7px;font-size:30px}.register-container .auth-header p{color:#6b7280;margin:0;font-size:14px}.register-form{flex-direction:column;gap:16px;display:flex}.register-form .form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.register-form .form-group{flex-direction:column;gap:7px;display:flex}.register-form label{color:#374151;font-size:13px;font-weight:600}.register-form label span{color:#9ca3af;font-weight:400}.register-form input,.register-form select{color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:7px;outline:none;width:100%;height:44px;padding:0 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}.register-form input::placeholder{color:#9ca3af}.register-form input:focus,.register-form select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb14}.register-form select{cursor:pointer}.register-form .input-error{border-color:#dc2626!important}.register-form .input-error:focus{box-shadow:0 0 0 3px #dc262614;border-color:#dc2626!important}.register-form .field-error{color:#dc2626;font-size:12px;line-height:1.3}.register-form .submit-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:7px;width:100%;height:46px;margin-top:4px;font-size:14px;font-weight:600;transition:background .2s,opacity .2s}.register-form .submit-btn:hover{background:#1d4ed8}.register-form .submit-btn:disabled{cursor:not-allowed;opacity:.7;background:#9ca3af}.register-form .submit-btn:disabled:hover{background:#9ca3af}.register-container .auth-footer{text-align:center;color:#6b7280;margin-top:20px;font-size:13px}.register-container .auth-footer a{color:#2563eb;font-weight:500;text-decoration:none}.register-container .auth-footer a:hover{text-decoration:underline}@media (width<=600px){.register-form .form-row{grid-template-columns:1fr}}.verify-container{width:100%}.verify-header{text-align:center;margin-bottom:30px}.verify-icon{color:#2563eb;background:#eff6ff;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 20px;font-size:24px;display:flex}.verify-header h2{color:#111827;margin:0 0 8px;font-size:30px}.verify-header p{color:#6b7280;margin:0;font-size:14px;line-height:1.6}.verify-header strong{color:#374151;font-weight:600}.verify-form{flex-direction:column;gap:22px;display:flex}.email-group{flex-direction:column;gap:7px;display:flex}.email-group label{color:#374151;font-size:13px;font-weight:500}.email-group input{box-sizing:border-box;background:#fff;border:1px solid #d1d5db;border-radius:8px;outline:none;width:100%;height:46px;padding:0 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}.email-group input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb14}.otp-group{justify-content:center;gap:10px;display:flex}.otp-group input{text-align:center;background:#fff;border:1px solid #d1d5db;border-radius:8px;outline:none;width:48px;height:52px;font-size:20px;font-weight:600;transition:border-color .2s,box-shadow .2s}.otp-group input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb14}.field-error{color:#dc2626;font-size:12px}.verify-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:7px;width:100%;height:46px;font-size:14px;font-weight:600;transition:background .2s}.verify-btn:hover:not(:disabled){background:#1d4ed8}.verify-btn:disabled{cursor:not-allowed;background:#93c5fd}.verify-resend{color:#6b7280;justify-content:center;gap:5px;margin-top:22px;font-size:13px;display:flex}.verify-resend button{color:#2563eb;cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:500}.verify-resend button:hover{text-decoration:underline}.verify-back{text-align:center;margin-top:22px}.verify-back a{color:#6b7280;font-size:13px;text-decoration:none}.verify-back a:hover{color:#2563eb}@media (width<=480px){.otp-group{gap:7px}.otp-group input{width:42px;height:48px}.verify-header h2{font-size:26px}}.mobile-header,.sidebar-overlay{display:none}@media (width<=900px){.dashboard-sidebar{width:220px}.dashboard-main{margin-left:220px}.dashboard-content{padding:25px}}@media (width<=700px){.mobile-header{z-index:90;background:#fff;border-bottom:1px solid #e5e7eb;align-items:center;height:64px;padding:0 18px;display:flex;position:fixed;top:0;left:0;right:0}.mobile-header h2{margin:0 auto;font-family:Georgia,serif;font-size:19px}.menu-btn{cursor:pointer;color:#374151;background:0 0;border:none;font-size:24px}.dashboard-sidebar{z-index:200;width:250px;transition:transform .25s;transform:translate(-100%)}.dashboard-sidebar.open{transform:translate(0)}.sidebar-overlay{z-index:150;background:#00000059;display:block;position:fixed;inset:0}.dashboard-main{width:100%;margin-left:0;padding-top:64px}.dashboard-content{padding:20px 16px}}@media (width<=400px){.dashboard-content{padding:18px 12px}.dashboard-sidebar{width:235px}}.user-page{flex-direction:column;gap:20px;display:flex}.user-page-header h1{margin:0 0 6px;font-size:26px;font-weight:600}.user-page-header p{color:#6b7280;margin:0;font-size:14px}.user-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:22px 24px}.user-card h2{margin:0 0 16px;font-size:16px;font-weight:600}.user-meta{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px 24px;margin:0;display:grid}.user-meta div{flex-direction:column;gap:4px;display:flex}.user-meta dt{color:#6b7280;font-size:12px;font-weight:500}.user-meta dd{color:#111827;margin:0;font-size:14px}.user-status{color:#6b7280;margin:0;font-size:14px}.upcoming-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.upcoming-card{width:100%;color:inherit;background:#fff;border:1px solid #e5e7eb;border-radius:12px;align-items:center;gap:16px;padding:12px 18px;text-decoration:none;display:flex}.upcoming-card:hover{border-color:#93c5fd;box-shadow:0 2px 8px #1118270f}.upcoming-queue{color:#1d4ed8;background:#eff6ff;border-radius:10px;flex-shrink:0;place-items:center;width:52px;height:52px;font-size:20px;font-weight:700;display:grid}.upcoming-details{flex:1;min-width:0}.upcoming-date{color:#1d4ed8;margin-bottom:2px;font-size:13px;font-weight:600;display:block}.upcoming-doctor{color:#111827;font-size:15px;font-weight:600;display:block}.upcoming-estimate{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.upcoming-estimate span{color:#6b7280;font-size:12px}.upcoming-estimate strong{color:#16a34a;font-size:17px;font-weight:700}.home-book-link{color:#fff;background:#16a34a;border-radius:8px;margin-top:14px;padding:10px 16px;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.home-book-link:hover{background:#15803d}.appointment-filters{flex-wrap:wrap;gap:8px;display:flex}.appointment-filter{color:#4b5563;font:inherit;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:999px;padding:7px 14px;font-size:14px;font-weight:500}.appointment-filter span{color:#9ca3af;margin-left:4px}.appointment-filter.is-selected{color:#1d4ed8;background:#eff6ff;border-color:#2563eb}.appointment-filter.is-selected span{color:#1d4ed8}.past-card{color:inherit;background:#fff;border:1px solid #e5e7eb;border-radius:12px;align-items:center;gap:16px;padding:12px 18px;text-decoration:none;display:flex}.past-card:hover{border-color:#93c5fd;box-shadow:0 2px 8px #1118270f}.past-date{color:#6b7280;margin-bottom:2px;font-size:13px;font-weight:600;display:block}.past-outcome{color:#166534;background:#f0fdf4;border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:12px;font-weight:600}.past-outcome.is-cancelled{color:#b91c1c;background:#fef2f2}.appointment-overview{background:#fff;border:1px solid #e5e7eb;border-radius:12px;align-items:center;gap:16px;padding:20px 24px;display:flex}.appointment-overview-avatar{color:#1d4ed8;background:#eff6ff;border-radius:50%;flex-shrink:0;place-items:center;width:56px;height:56px;font-size:18px;font-weight:700;display:grid}.appointment-overview-doctor{flex:1;min-width:0}.appointment-overview h1{color:#111827;margin:0 0 4px;font-size:22px;font-weight:600}.appointment-overview-doctor p{color:#4b5563;margin:0;font-size:14px}.appointment-overview-date{color:#1d4ed8;flex-shrink:0;font-size:14px;font-weight:600}@media (width<=560px){.appointment-overview{flex-wrap:wrap}.appointment-overview-date{width:100%}}.doctor-details{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px 24px}.doctor-details h2{color:#111827;margin:0 0 16px;font-size:16px;font-weight:600}.doctor-details-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px 24px;margin:0;display:grid}.doctor-details-list div{flex-direction:column;gap:4px;display:flex}.doctor-details-list dt{color:#6b7280;font-size:12px;font-weight:500}.doctor-details-list dd{color:#111827;margin:0;font-size:14px}.queue-status{background:#fff;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;gap:18px;padding:20px 24px;display:flex}.queue-status-number{background:#eff6ff;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:20px;display:flex}.queue-status-number span{color:#6b7280;font-size:13px}.queue-status-number strong{color:#1d4ed8;font-size:44px;font-weight:700;line-height:1}.queue-status-number.is-in-progress{background:#f0fdf4}.queue-status-number.is-in-progress strong{color:#16a34a}.queue-status-number p{color:#111827;margin:4px 0 0;font-size:15px;font-weight:600}.queue-status-times{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px 24px;margin:0;display:grid}.queue-status-times div{flex-direction:column;gap:4px;display:flex}.queue-status-times dt{color:#6b7280;font-size:12px;font-weight:500}.queue-status-times dd{color:#111827;margin:0;font-size:16px;font-weight:600}.queue-status-times .queue-status-estimate{color:#16a34a}.queue-status-note{color:#6b7280;margin:0;font-size:13px}.reason-for-visit{background:#fff;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;gap:10px;padding:20px 24px;display:flex}.reason-for-visit-heading{justify-content:space-between;align-items:center;display:flex}.reason-for-visit h2{color:#111827;margin:0;font-size:16px;font-weight:600}.reason-for-visit-heading button,.reason-for-visit-add{color:#2563eb;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;font-weight:600}.reason-for-visit-add{align-self:flex-start}.reason-for-visit-heading button:hover,.reason-for-visit-add:hover{text-decoration:underline}.reason-for-visit p{color:#111827;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:14px}.reason-for-visit textarea{box-sizing:border-box;width:100%;font:inherit;resize:vertical;border:1px solid #d1d5db;border-radius:8px;padding:10px 12px;font-size:14px}.reason-for-visit textarea:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb14}.reason-for-visit-actions{align-items:center;gap:8px;display:flex}.reason-for-visit-actions span{color:#9ca3af;margin-right:auto;font-size:12px}.reason-for-visit-cancel,.reason-for-visit-save{height:34px;font:inherit;cursor:pointer;border-radius:8px;padding:0 14px;font-size:13px;font-weight:600}.reason-for-visit-cancel{color:#4b5563;background:#fff;border:1px solid #e5e7eb}.reason-for-visit-save{color:#fff;background:#2563eb;border:none}.reason-for-visit-save:disabled{cursor:not-allowed;background:#93c5fd}.appointment-details-page{flex-direction:column;gap:16px;max-width:760px;display:flex}.appointment-details-back{color:#2563eb;align-self:flex-start;font-size:14px;font-weight:600;text-decoration:none}.appointment-details-back:hover{text-decoration:underline}.appointment-details-status-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:22px 24px}.appointment-details-status{color:#6b7280;margin:0;font-size:14px}.appointment-details-actions{justify-content:flex-end;display:flex}.appointment-details-cancel{color:#dc2626;height:40px;font:inherit;cursor:pointer;background:#fff;border:1px solid #fecaca;border-radius:8px;padding:0 16px;font-size:14px;font-weight:600}.appointment-details-cancel:hover{background:#fef2f2}.appointment-details-cancel:disabled{opacity:.6;cursor:not-allowed}.doctor-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.doctor-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;align-items:flex-start;gap:14px;padding:18px 20px;display:flex}.doctor-avatar{color:#2563eb;background:#eff6ff;border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:15px;font-weight:600;display:grid}.doctor-card h2{color:#111827;margin:0 0 4px;font-size:15px;font-weight:600}.doctor-specialization{color:#4b5563;margin:0;font-size:14px}.doctor-tags{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.doctor-tag{color:#4b5563;background:#f3f4f6;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:500}.session-dialog{color:#111827;background:#fff;border:1px solid #e5e7eb;border-radius:12px;width:min(640px,100vw - 32px);max-height:calc(100vh - 48px);padding:0;box-shadow:0 20px 45px #1118272e}.session-dialog::backdrop{background:#00000059}.session-dialog-body{flex-direction:column;gap:24px;padding:24px;display:flex}.session-dialog-header{align-items:center;gap:16px;display:flex}.session-dialog-avatar{color:#2563eb;background:#eff6ff;border-radius:50%;flex-shrink:0;place-items:center;width:56px;height:56px;font-size:18px;font-weight:600;display:grid}.session-dialog-header h2{margin:0;font-size:20px;font-weight:600}.session-dialog-date{color:#1d4ed8;text-align:right;margin:0 0 0 auto;font-size:14px;font-weight:600}.session-ongoing{color:#16a34a;font-weight:600}.session-dialog h3{letter-spacing:.04em;text-transform:uppercase;color:#6b7280;border-bottom:1px solid #e5e7eb;margin:0 0 14px;padding-bottom:8px;font-size:13px;font-weight:600}.session-slots{margin-top:18px}.session-slots-label{color:#6b7280;justify-content:space-between;margin-bottom:6px;font-size:13px;display:flex}.session-slots-label strong{color:#111827;font-weight:600}.session-slots-bar{background:#f3f4f6;border-radius:999px;height:8px;overflow:hidden}.session-slots-bar span{background:#16a34a;border-radius:999px;height:100%;display:block}.session-dialog-footer{border-top:1px solid #e5e7eb;justify-content:space-between;gap:10px;padding-top:16px;display:flex}.session-dialog-done{color:#4b5563;height:40px;font:inherit;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:0 16px;font-size:14px;font-weight:500}.session-dialog-done:hover{color:#111827;background:#f3f4f6}.session-dialog-book{color:#fff;height:40px;font:inherit;cursor:pointer;background:#16a34a;border:none;border-radius:8px;padding:0 16px;font-size:14px;font-weight:600}.session-dialog-book:hover{background:#15803d}.session-dialog-book:disabled{cursor:not-allowed;background:#86efac}.session-dialog-body.is-booked{animation:.4s ease-out session-dialog-flip}@keyframes session-dialog-flip{0%{opacity:.4;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}.booked-appointment{flex-direction:column;gap:18px;display:flex}.booked-appointment-banner{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;margin:0;padding:10px 14px;font-size:14px;font-weight:600}.booked-appointment-queue{background:#eff6ff;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:18px;display:flex}.booked-appointment-queue span{color:#6b7280;font-size:13px}.booked-appointment-queue strong{color:#1d4ed8;font-size:40px;font-weight:700;line-height:1}.booked-appointment-position{color:#111827;margin:4px 0 0;font-size:14px;font-weight:600}.doctor-info summary{letter-spacing:.04em;text-transform:uppercase;color:#6b7280;cursor:pointer;font-size:13px;font-weight:600}.doctor-info[open] summary{border-bottom:1px solid #e5e7eb;margin-bottom:14px;padding-bottom:8px}.booked-appointment-note{color:#6b7280;margin:0;font-size:13px}.session-day h2{color:#111827;align-items:baseline;gap:10px;margin:0 0 12px;font-size:16px;font-weight:600;display:flex}.session-day-count{color:#6b7280;font-size:13px;font-weight:500}.session-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.session-card{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:12px;align-items:center;gap:14px;padding:16px 20px;display:flex}.session-card:hover{border-color:#93c5fd;box-shadow:0 2px 8px #1118270f}.session-avatar{color:#2563eb;background:#eff6ff;border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:15px;font-weight:600;display:grid}.session-doctor{flex:1;min-width:0}.session-doctor-name{color:#111827;margin:0 0 2px;font-size:15px;font-weight:600;display:block}.session-doctor-specialization{color:#4b5563;font-size:14px;display:block}.session-department{color:#4b5563;background:#f3f4f6;border-radius:999px;margin-top:6px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.session-time{text-align:right;flex-direction:column;align-items:flex-end;gap:2px;display:flex}.session-time strong{color:#1d4ed8;font-size:14px;font-weight:600}.session-time span{color:#6b7280;font-size:12px}@media (width<=560px){.session-card{flex-wrap:wrap}.session-time{box-sizing:border-box;text-align:left;align-items:flex-start;width:100%;padding-left:58px}}@media (width<=700px){.profile-identity{flex-wrap:wrap;align-items:flex-start}.profile-chips{width:calc(100% - 82px);margin-left:82px}.profile-grid,.profile-form-row{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.profile-flip-inner{transition:none}}@media (width<=400px){.profile-card:not(.profile-flip),.profile-flip-face{padding:18px 16px}.profile-avatar{border-radius:10px;width:52px;height:52px;font-size:18px}.profile-identity-text h2{font-size:18px}.profile-chips{width:calc(100% - 70px);margin-left:70px}}.notify-toasts{z-index:1000;pointer-events:none;background:0 0;border:none;flex-direction:column;gap:8px;width:min(360px,100vw - 32px);margin:0;padding:0;display:flex;position:fixed;inset:auto 16px 16px auto;overflow:visible}.notify-toast{pointer-events:auto;background:#fff;border:1px solid;border-radius:10px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;line-height:1.4;animation:.18s ease-out notify-in;display:flex;box-shadow:0 10px 25px #1118271f}.notify-toast span{flex:1}.notify-toast-error{color:#991b1b;background:#fef2f2;border-color:#fecaca}.notify-toast-success{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.notify-toast-close{color:inherit;opacity:.6;cursor:pointer;background:0 0;border:none;padding:0;font-size:18px;line-height:1}.notify-toast-close:hover{opacity:1}.notify-dialog{color:#111827;text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:12px;width:min(400px,100vw - 32px);padding:24px;box-shadow:0 20px 45px #1118272e}.notify-dialog[open]{animation:.18s ease-out notify-in}.notify-dialog::backdrop{background:#00000059}.notify-dialog h2{margin:0 0 8px;font-size:18px;font-weight:600}.notify-dialog p{color:#4b5563;margin:0;font-size:14px;line-height:1.5}.notify-dialog-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.notify-dialog-cancel,.notify-dialog-confirm{height:40px;font:inherit;cursor:pointer;border-radius:8px;padding:0 16px;font-size:14px}.notify-dialog-cancel{color:#4b5563;background:#fff;border:1px solid #e5e7eb;font-weight:500}.notify-dialog-cancel:hover{color:#111827;background:#f3f4f6}.notify-dialog-confirm{color:#fff;background:#dc2626;border:none;font-weight:600}.notify-dialog-confirm:hover{background:#b91c1c}.notify-dialog-confirm-success{background:#16a34a}.notify-dialog-confirm-success:hover{background:#15803d}@keyframes notify-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}@media (prefers-reduced-motion:reduce){.notify-toast,.notify-dialog[open]{animation:none}}.dashboard-layout{color:#111827;background:#f5f7fb;min-height:100vh;display:flex}.dashboard-sidebar{z-index:100;background:#fff;border-right:1px solid #e5e7eb;flex-direction:column;width:250px;min-height:100vh;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-brand{border-bottom:1px solid #e5e7eb;align-items:center;gap:12px;height:90px;padding:0 22px;display:flex}.brand-logo{color:#fff;background:#2563eb;border-radius:10px;justify-content:center;align-items:center;width:42px;height:42px;margin:auto;font-size:25px;font-weight:700;display:flex}.sidebar-brand h2{margin:0;font-family:Georgia,serif;font-size:18px}.sidebar-brand span{color:#6b7280;font-size:11px}.dashboard-nav{flex-direction:column;gap:6px;padding:25px 14px;display:flex}.dashboard-nav a{color:#4b5563;border-radius:8px;align-items:center;gap:13px;padding:13px 15px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.dashboard-nav a span{text-align:center;width:20px;font-size:17px}.dashboard-nav a:hover{color:#2563eb;background:#eff6ff}.dashboard-nav a.active{color:#fff;background:#2563eb}.sidebar-bottom{border-top:1px solid #e5e7eb;margin-top:auto;padding:20px 14px}.logout-btn{color:#6b7280;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:13px;width:100%;padding:12px 15px;font-size:14px;display:flex}.logout-btn:hover{color:#111827;background:#f3f4f6}.dashboard-main{flex:1;min-width:0;margin-left:250px}.dashboard-content{max-width:1400px;margin:0 auto;padding:35px}.mobile-header,.sidebar-overlay{display:none}@media (width<=900px){.dashboard-sidebar{width:220px}.dashboard-main{margin-left:220px}.dashboard-content{padding:25px}}@media (width<=700px){.mobile-header{z-index:90;background:#fff;border-bottom:1px solid #e5e7eb;align-items:center;height:64px;padding:0 18px;display:flex;position:fixed;top:0;left:0;right:0}.mobile-header h2{margin:0 auto;font-family:Georgia,serif;font-size:19px}.menu-btn{cursor:pointer;color:#374151;background:0 0;border:none;font-size:24px}.dashboard-sidebar{z-index:200;width:250px;transition:transform .25s;transform:translate(-100%)}.dashboard-sidebar.open{transform:translate(0)}.sidebar-overlay{z-index:150;background:#00000059;display:block;position:fixed;inset:0}.dashboard-main{width:100%;margin-left:0;padding-top:64px}.dashboard-content{padding:20px 16px}}@media (width<=400px){.dashboard-content{padding:18px 12px}.dashboard-sidebar{width:235px}}.today-session{color:inherit;background:#fff;border:1px solid #e5e7eb;border-radius:12px;align-items:center;gap:16px;padding:16px 20px;text-decoration:none;display:flex}.today-session:hover{border-color:#93c5fd;box-shadow:0 2px 8px #1118270f}.today-session.has-ended{opacity:.6}.today-session-details{flex-direction:column;gap:2px;margin-right:auto;display:flex}.today-session-time{color:#111827;font-size:16px;font-weight:600}.today-session-meta{color:#6b7280;font-size:13px}.today-session-starts-in{color:#1d4ed8;font-size:13px;font-weight:600}.today-session-ongoing,.today-session-ended{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.today-session-ongoing{color:#16a34a;background:#f0fdf4}.today-session-ended{color:#6b7280;background:#f3f4f6}.sessions-page{flex-direction:column;gap:20px;max-width:860px;display:flex}.sessions-header h1{color:#111827;margin:0 0 6px;font-size:26px;font-weight:600}.sessions-header p{color:#6b7280;margin:0;font-size:14px}.sessions-status-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:22px 24px}.sessions-status{color:#6b7280;margin:0;font-size:14px}.sessions-status-card a{color:#2563eb;margin-top:12px;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.sessions-status-card a:hover{text-decoration:underline}.today-session-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.session-appointment{color:inherit;background:#fff;border:1px solid #e5e7eb;border-radius:10px;align-items:flex-start;gap:14px;padding:12px 16px;text-decoration:none;display:flex}.session-appointment:hover{border-color:#93c5fd;box-shadow:0 2px 8px #1118270f}.session-appointment-queue{color:#1d4ed8;background:#eff6ff;border-radius:8px;flex-shrink:0;place-items:center;width:40px;height:40px;font-size:15px;font-weight:700;display:grid}.session-appointment-details{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.session-appointment-patient{color:#111827;font-size:15px;font-weight:600}.session-appointment-meta{color:#6b7280;font-size:13px}.session-appointment-reason{color:#374151;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:4px;font-size:13px}.session-appointment-note{color:#4b5563;background:#f3f4f6;border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:12px;font-weight:600}.appointment-group h2{color:#111827;align-items:baseline;gap:8px;margin:0 0 10px;font-size:15px;font-weight:600;display:flex}.appointment-group h2 span{color:#6b7280;font-size:13px;font-weight:500}.session-appointment-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.group-chips{flex-wrap:wrap;gap:8px;display:flex}.group-chip{color:#4b5563;font:inherit;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:999px;padding:7px 14px;font-size:14px;font-weight:500}.group-chip span{color:#9ca3af;margin-left:4px}.group-chip.is-selected{color:#1d4ed8;background:#eff6ff;border-color:#2563eb}.group-chip.is-selected span{color:#1d4ed8}.current-patient{background:#fff;border:1px solid #bbf7d0;border-radius:12px;flex-direction:column;gap:12px;padding:18px 24px;display:flex}.current-patient-empty{color:#6b7280;margin:0;font-size:14px}.current-patient-label{letter-spacing:.04em;text-transform:uppercase;color:#16a34a;font-size:12px;font-weight:600}.current-patient-link{color:inherit;align-items:flex-start;gap:14px;text-decoration:none;display:flex}.current-patient-link:hover .current-patient-name{color:#2563eb}.current-patient-queue{color:#16a34a;background:#f0fdf4;border-radius:10px;flex-shrink:0;place-items:center;width:48px;height:48px;font-size:17px;font-weight:700;display:grid}.current-patient-details{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.current-patient-name{color:#111827;font-size:17px;font-weight:600}.current-patient-meta{color:#6b7280;font-size:13px}.current-patient-reason{color:#374151;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:4px;font-size:14px}.current-patient-actions{flex-wrap:wrap;gap:8px;display:flex}.current-patient-actions button{height:40px;font:inherit;cursor:pointer;border-radius:8px;padding:0 18px;font-size:14px;font-weight:600}.current-patient-actions button:disabled{opacity:.6;cursor:not-allowed}.current-patient-complete{color:#fff;background:#16a34a;border:none}.current-patient-complete:hover{background:#15803d}.current-patient-skip{color:#374151;background:#fff;border:1px solid #d1d5db}.current-patient-skip:hover{background:#f9fafb}.current-patient-cancel{color:#dc2626;background:#fff;border:1px solid #fecaca}.current-patient-cancel:hover{background:#fef2f2}.session-overview{background:#fff;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;gap:12px;padding:20px 24px;display:flex}.session-overview-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.session-overview h1{color:#111827;margin:0 0 4px;font-size:22px;font-weight:600}.session-overview-top p{color:#4b5563;margin:0;font-size:14px}.session-overview-state{border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:12px;font-weight:600}.session-overview-state.is-upcoming{color:#1d4ed8;background:#eff6ff}.session-overview-state.is-ongoing{color:#16a34a;background:#f0fdf4}.session-overview-state.is-ended{color:#6b7280;background:#f3f4f6}.session-overview-slots{color:#4b5563;margin:0;font-size:14px}.session-overview-slots strong{color:#111827}.start-session{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;display:flex}.start-session p{color:#374151;margin:0;font-size:14px}.start-session button{color:#fff;height:40px;font:inherit;cursor:pointer;background:#16a34a;border:none;border-radius:8px;flex-shrink:0;padding:0 18px;font-size:14px;font-weight:600}.start-session button:hover{background:#15803d}.start-session button:disabled{opacity:.6;cursor:not-allowed}@media (width<=560px){.start-session{flex-direction:column;align-items:stretch}}.session-details-page{flex-direction:column;gap:20px;max-width:860px;display:flex}.session-details-status-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:22px 24px}.session-details-status{color:#6b7280;margin:0;font-size:14px}.session-details-back{color:#2563eb;align-self:flex-start;font-size:14px;font-weight:600;text-decoration:none}.session-details-back:hover{text-decoration:underline}.appointment-info{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px 24px}.appointment-info h2{color:#111827;margin:0 0 16px;font-size:16px;font-weight:600}.appointment-info-list{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px 24px;margin:0;display:grid}.appointment-info-list div{flex-direction:column;gap:4px;display:flex}.appointment-info-list dt{color:#6b7280;font-size:12px;font-weight:500}.appointment-info-list dd{color:#111827;margin:0;font-size:14px;font-weight:600}.emergency-contact{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px 24px}.emergency-contact h2{color:#111827;margin:0 0 16px;font-size:16px;font-weight:600}.emergency-contact-list{grid-template-columns:1fr 1fr;gap:16px 24px;margin:0;display:grid}.emergency-contact-list div{flex-direction:column;gap:4px;min-width:0;display:flex}.emergency-contact-list dt{color:#6b7280;font-size:12px;font-weight:500}.emergency-contact-list dd{color:#111827;overflow-wrap:anywhere;margin:0;font-size:14px}.emergency-contact-empty{color:#6b7280;margin:0;font-size:14px}.other-appointment{color:inherit;border:1px solid #e5e7eb;border-radius:10px;align-items:flex-start;gap:12px;padding:10px 14px;text-decoration:none;display:flex}.other-appointment:hover{background:#f9fafb;border-color:#93c5fd}.other-appointment-details{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.other-appointment-when{color:#111827;font-size:14px;font-weight:600}.other-appointment-reason{color:#4b5563;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.other-appointments{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px 24px}.other-appointments h2{color:#111827;margin:0 0 14px;font-size:16px;font-weight:600}.other-appointments h2 span{color:#9ca3af;margin-left:4px;font-weight:500}.other-appointments-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.other-appointments-empty{color:#6b7280;margin:0;font-size:14px}.patient-details{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px 24px}.patient-details h2{color:#111827;margin:0 0 16px;font-size:16px;font-weight:600}.patient-details-list{grid-template-columns:1fr 1fr;gap:16px 24px;margin:0;display:grid}.patient-details-list div{flex-direction:column;gap:4px;min-width:0;display:flex}.patient-details-list .patient-details-wide{grid-column:1/-1}.patient-details-list dt{color:#6b7280;font-size:12px;font-weight:500}.patient-details-list dd{color:#111827;overflow-wrap:anywhere;margin:0;font-size:14px}.patient-overview{background:#fff;border:1px solid #e5e7eb;border-radius:12px;align-items:center;gap:16px;padding:20px 24px;display:flex}.patient-overview-avatar{color:#1d4ed8;background:#eff6ff;border-radius:50%;flex-shrink:0;place-items:center;width:56px;height:56px;font-size:18px;font-weight:700;display:grid}.patient-overview-name{flex:1;min-width:0}.patient-overview h1{color:#111827;margin:0 0 4px;font-size:22px;font-weight:600}.patient-overview-name p{color:#4b5563;margin:0;font-size:14px}.visit-reason{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px 24px}.visit-reason h2{color:#111827;margin:0 0 10px;font-size:16px;font-weight:600}.visit-reason p{color:#111827;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:14px}.visit-reason p.is-empty{color:#6b7280}.doctor-appointment-page{flex-direction:column;gap:16px;max-width:860px;display:flex}.doctor-appointment-back{color:#2563eb;align-self:flex-start;font-size:14px;font-weight:600;text-decoration:none}.doctor-appointment-back:hover{text-decoration:underline}.doctor-appointment-status-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:22px 24px}.doctor-appointment-status{color:#6b7280;margin:0;font-size:14px}.doctor-appointment-columns{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.appointment-status-badge{white-space:nowrap;border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:12px;font-weight:600}.appointment-status-badge.is-waiting{color:#1d4ed8;background:#eff6ff}.appointment-status-badge.is-ongoing{color:#92400e;background:#fef3c7}.appointment-status-badge.is-completed{color:#166534;background:#f0fdf4}.appointment-status-badge.is-muted{color:#4b5563;background:#f3f4f6}.appointment-status-badge.is-cancelled{color:#b91c1c;background:#fef2f2}.schedule-page{flex-direction:column;gap:20px;max-width:860px;display:flex}.schedule-header h1{color:#111827;margin:0 0 6px;font-size:26px;font-weight:600}.schedule-header p{color:#6b7280;margin:0;font-size:14px}.schedule-header-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 20px;margin-bottom:14px;display:flex}.schedule-week-total{color:#6b7280;white-space:nowrap;flex-direction:column;flex-shrink:0;align-items:flex-end;margin:0;font-size:13px;display:flex}.schedule-week-total-value{color:#111827;font-size:18px;font-weight:600}.schedule-legend{flex-wrap:wrap;gap:6px 16px;margin:0;padding:0;list-style:none;display:flex}.schedule-legend-item{color:#6b7280;align-items:center;gap:6px;font-size:12px;display:inline-flex}.schedule-legend-dot{border-radius:50%;width:8px;height:8px}.schedule-legend-item.level-low .schedule-legend-dot{background:#ea580c}.schedule-legend-item.level-medium .schedule-legend-dot{background:#b45309}.schedule-legend-item.level-high .schedule-legend-dot{background:#16a34a}.schedule-status{color:#6b7280;margin:0;font-size:14px}.schedule-status-error{color:#dc2626}.schedule-dates{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;display:grid}.schedule-date-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;min-height:190px;transition:border-color .2s,box-shadow .2s;position:relative}.schedule-date-card:hover{border-color:#93c5fd}.schedule-date-card:has(.schedule-date-open:focus-visible){border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.schedule-date-open{border-radius:inherit;color:#111827;text-align:left;cursor:pointer;background:0 0;border:none;outline:none;flex-direction:column;align-items:stretch;gap:10px;width:100%;height:100%;padding:16px;font-family:inherit;display:flex}.schedule-date-card.level-low{border-color:#fdba74}.schedule-date-card.level-low:hover{border-color:#fb923c}.schedule-date-card.level-medium{border-color:#fcd34d}.schedule-date-card.level-medium:hover{border-color:#fbbf24}.schedule-date-card.level-high{border-color:#86efac}.schedule-date-card.level-high:hover{border-color:#4ade80}.schedule-date-card.is-empty{background:#f5f7fb}.schedule-date-card.is-empty .schedule-date-weekday,.schedule-date-card.is-empty .schedule-date-number,.schedule-date-card.is-empty .schedule-date-month{color:#9ca3af}.schedule-date-card.is-empty:hover{background:#fff}.schedule-date-top{align-items:center;gap:8px;min-height:22px;padding-right:34px;display:flex}.schedule-date-weekday{letter-spacing:.04em;text-transform:uppercase;color:#6b7280;font-size:12px;font-weight:600}.schedule-chip{color:#2563eb;background:#eff6ff;border-radius:999px;align-items:center;height:22px;padding:0 9px;font-size:11px;font-weight:500;display:inline-flex}.schedule-date-number{align-items:baseline;gap:6px;font-size:26px;font-weight:600;line-height:1;display:flex}.schedule-date-month{color:#6b7280;font-size:14px;font-weight:500}.schedule-date-slots{border-top:1px solid #f3f4f6;flex-direction:column;gap:4px;padding-top:10px;display:flex}.schedule-date-count{color:#2563eb;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.schedule-date-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:8px;height:8px}.level-low .schedule-date-count{color:#ea580c}.level-medium .schedule-date-count{color:#b45309}.level-high .schedule-date-count{color:#16a34a}.schedule-date-empty{color:#9ca3af;font-size:13px}.schedule-date-action{color:#2563eb;margin-top:auto;font-size:13px;font-weight:500}.schedule-date-card:hover .schedule-date-action{text-decoration:underline}.schedule-day-toggle{z-index:1;cursor:pointer;padding:7px;display:flex;position:absolute;top:7px;right:7px}.schedule-day-toggle input{opacity:0;pointer-events:none;width:1px;height:1px;margin:0;position:absolute}.schedule-day-toggle-track{background:#2563eb;border-radius:999px;width:30px;height:18px;transition:background .15s;position:relative}.schedule-day-toggle-track:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;position:absolute;top:2px;left:14px;box-shadow:0 1px 2px #11182740}.schedule-day-toggle:hover .schedule-day-toggle-track{background:#1d4ed8}.schedule-day-toggle input:focus-visible+.schedule-day-toggle-track{box-shadow:0 0 0 3px #2563eb40}html:has(.schedule-dialog[open]){overflow:hidden}.schedule-dialog{color:#111827;background:#fff;border:1px solid #e5e7eb;border-radius:12px;width:min(600px,100vw - 32px);max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:0;overflow:hidden;box-shadow:0 20px 45px #1118272e}.schedule-dialog[open]{flex-direction:column;animation:.18s ease-out schedule-dialog-in;display:flex}.schedule-dialog::backdrop{background:#00000059}@keyframes schedule-dialog-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.schedule-dialog-head{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 24px 16px;display:flex}.schedule-dialog-head h2{color:#111827;margin:0 0 4px;font-size:18px;font-weight:600}.schedule-dialog-head p{color:#6b7280;margin:0;font-size:13px}.schedule-close-btn{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;width:32px;height:32px;font-size:22px;line-height:1}.schedule-close-btn:hover{color:#111827;background:#f3f4f6}.schedule-dialog-body{flex-direction:column;gap:14px;min-height:0;padding:18px 24px;display:flex;overflow-y:auto}.schedule-range{--thumb:20px}.schedule-range-control{height:var(--thumb);position:relative}.schedule-range-track{top:50%;left:calc(var(--thumb) / 2);right:calc(var(--thumb) / 2);background:#e5e7eb;border-radius:999px;height:6px;position:absolute;transform:translateY(-50%)}.schedule-range-past,.schedule-range-fill{border-radius:inherit;position:absolute;top:0;bottom:0}.schedule-range-past{width:calc(var(--past) * 100%);background:repeating-linear-gradient(135deg,#d1d5db 0 4px,#e5e7eb 4px 8px);left:0}.schedule-range-fill{left:calc(var(--start) * 100%);width:calc((var(--end) - var(--start)) * 100%);background:#2563eb}.schedule-range-control input{pointer-events:none;appearance:none;background:0 0;outline:none;width:100%;height:100%;margin:0;position:absolute;inset:0}.schedule-range-control input.is-raised{z-index:1}.schedule-range-control input::-webkit-slider-runnable-track{height:var(--thumb);background:0 0}.schedule-range-control input::-moz-range-track{background:0 0}.schedule-range-control input::-webkit-slider-thumb{box-sizing:border-box;width:var(--thumb);height:var(--thumb);cursor:grab;pointer-events:auto;appearance:none;background:#fff;border:2px solid #2563eb;border-radius:50%;box-shadow:0 1px 3px #11182733}.schedule-range-control input::-moz-range-thumb{box-sizing:border-box;width:var(--thumb);height:var(--thumb);cursor:grab;pointer-events:auto;background:#fff;border:2px solid #2563eb;border-radius:50%;box-shadow:0 1px 3px #11182733}.schedule-range-control input:active::-webkit-slider-thumb{cursor:grabbing}.schedule-range-control input:active::-moz-range-thumb{cursor:grabbing}.schedule-range-control input:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px #2563eb40}.schedule-range-control input:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px #2563eb40}.schedule-range-scale{height:24px;margin:4px calc(var(--thumb) / 2) 0;color:#6b7280;font-size:11px;line-height:1;position:relative}.schedule-range-mark{top:0;left:calc(var(--at) * 100%);white-space:nowrap;padding-top:11px;position:absolute;transform:translate(-50%)}.schedule-range-mark:before{content:"";background:#d1d5db;width:1px;height:4px;position:absolute;top:0;left:50%;transform:translate(-50%)}.schedule-range-mark.is-hour:before{background:#9ca3af;height:8px}.schedule-session-list{border:1px solid #e5e7eb;border-radius:10px;margin:0;padding:0;list-style:none;overflow:hidden}.schedule-session-row{background:#fff;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:12px 14px;transition:background .4s,opacity .2s;display:flex}.schedule-session-row+.schedule-session-row{border-top:1px solid #f3f4f6}.schedule-session-row.is-new{animation:1.6s ease-out schedule-row-new}@keyframes schedule-row-new{0%{background:#dbeafe}}.schedule-session-row.is-removing{opacity:.5}.schedule-session-dot{background:#2563eb;border-radius:50%;flex-shrink:0;width:8px;height:8px}.schedule-session-time{color:#111827;font-size:15px;font-weight:600}.schedule-session-duration{color:#6b7280;font-size:13px}.schedule-session-booked{color:#1d4ed8;background:#eff6ff;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:12px;font-weight:600}.schedule-session-booked+.schedule-session-remove{margin-left:0}.schedule-session-remove{color:#6b7280;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;height:32px;margin-left:auto;padding:0 12px;font-family:inherit;font-size:13px;font-weight:500}.schedule-session-remove:hover{color:#dc2626;background:#fef2f2;border-color:#fecaca}.schedule-session-remove:disabled{cursor:not-allowed}.schedule-empty{text-align:center;background:#f9fafb;border-radius:10px;padding:22px 16px}.schedule-empty-title{color:#111827;margin:0 0 4px;font-size:15px;font-weight:600}.schedule-empty-text{color:#6b7280;margin:0;font-size:13px}.schedule-add-form{background:#f8fbff;border:1px solid #bfdbfe;border-radius:12px;flex-direction:column;gap:16px;padding:16px;display:flex}.schedule-add-form-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.schedule-add-form-head h3{color:#111827;margin:0;font-size:15px;font-weight:600}.schedule-add-form-head span{color:#6b7280;font-size:12px}.schedule-presets{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.schedule-preset{color:#111827;text-align:left;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;font-family:inherit;transition:border-color .15s,background .15s;display:flex}.schedule-preset:hover:not(:disabled){border-color:#2563eb}.schedule-preset.is-active{background:#eff6ff;border-color:#2563eb;box-shadow:inset 0 0 0 1px #2563eb}.schedule-preset:disabled{color:#9ca3af;cursor:not-allowed;background:#f9fafb}.schedule-preset-label{font-size:13px;font-weight:600}.schedule-preset-time{color:#6b7280;white-space:nowrap;font-size:12px}.schedule-preset:disabled .schedule-preset-time{color:#9ca3af}.schedule-custom{border-top:1px solid #e5e7eb;flex-direction:column;gap:12px;padding-top:14px;display:flex}.schedule-custom-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.schedule-custom-label{color:#374151;font-size:13px;font-weight:500}.schedule-segmented{background:#e5e7eb;border-radius:8px;padding:3px;display:inline-flex}.schedule-segment{color:#4b5563;cursor:pointer;background:0 0;border:none;border-radius:6px;min-width:48px;height:28px;padding:0 12px;font-family:inherit;font-size:12px;font-weight:600}.schedule-segment.is-active{color:#111827;background:#fff;box-shadow:0 1px 2px #1118271f}.schedule-segment:disabled{color:#9ca3af;cursor:not-allowed}.schedule-add-readout{color:#111827;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0;font-size:20px;font-weight:600;display:flex}.schedule-add-arrow{color:#9ca3af;font-weight:400}.schedule-add-length{color:#2563eb;margin-left:auto;font-size:13px;font-weight:500}.schedule-add-actions{justify-content:flex-end;gap:10px;display:flex}.schedule-dialog-note{color:#6b7280;margin:0;font-size:13px}.schedule-dialog-join{color:#1e40af;background:#eff6ff;border-radius:8px;padding:8px 10px}.schedule-dialog-blocked{color:#b91c1c;background:#fef2f2;border-radius:8px;padding:8px 10px}.schedule-dialog-join strong{font-weight:600}.schedule-add-btn{color:#2563eb;cursor:pointer;background:#fff;border:1px dashed #93c5fd;border-radius:8px;height:38px;padding:0 14px;font-family:inherit;font-size:14px;font-weight:500}.schedule-add-btn:hover{background:#eff6ff}.schedule-dialog-foot{border-top:1px solid #e5e7eb;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;padding:14px 24px;display:flex}.schedule-cancel-btn{color:#4b5563;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:8px;height:40px;padding:0 14px;font-size:14px;font-weight:500}.schedule-cancel-btn:hover{color:#111827;background:#f3f4f6}.schedule-save-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:8px;height:40px;padding:0 16px;font-size:14px;font-weight:600}.schedule-save-btn:hover{background:#1d4ed8}@media (width<=700px){.schedule-dates{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.schedule-date-card{min-height:170px}.schedule-date-open{padding:14px}}@media (width<=520px){.schedule-dialog-head,.schedule-dialog-body,.schedule-dialog-foot{padding-left:16px;padding-right:16px}.schedule-add-form{padding:14px 12px}.schedule-presets{grid-template-columns:1fr}.schedule-preset{flex-direction:row;justify-content:space-between;align-items:center}.schedule-add-readout{font-size:18px}.schedule-add-actions>button{flex:1}}@media (prefers-reduced-motion:reduce){.schedule-dialog[open],.schedule-session-row.is-new{animation:none}}.profile-page{flex-direction:column;gap:20px;max-width:860px;display:flex}.profile-header h1{color:#111827;margin:0 0 6px;font-size:26px;font-weight:600}.profile-header p{color:#6b7280;margin:0;font-size:14px}.profile-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:22px 24px}.profile-flip{perspective:1400px;background:0 0;border:none;padding:0}.profile-flip-inner{width:100%;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.4,0,.2,1),height .65s cubic-bezier(.4,0,.2,1);position:relative;transform:rotateY(0)}.profile-flip.is-flipped .profile-flip-inner{transform:rotateY(180deg)}.profile-flip-face{box-sizing:border-box;backface-visibility:hidden;background:#fff;border:1px solid #e5e7eb;border-radius:12px;width:100%;padding:22px 24px;position:absolute;top:0;left:0}.profile-flip-front{transform:rotateY(0)}.profile-flip-back{transform:rotateY(180deg)}.profile-flip:not(.is-flipped) .profile-flip-back,.profile-flip.is-flipped .profile-flip-front{pointer-events:none}.profile-identity{align-items:center;gap:18px;display:flex}.profile-avatar{color:#fff;background:#2563eb;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;font-size:22px;font-weight:700;display:flex}.profile-identity-text{min-width:0}.profile-identity-text h2{color:#111827;margin:0 0 4px;font-size:20px;font-weight:600}.profile-identity-text p{color:#6b7280;overflow-wrap:anywhere;margin:0;font-size:14px}.profile-chips{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.profile-chip{color:#4b5563;background:#f3f4f6;border-radius:999px;align-items:center;height:26px;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.profile-chip-active{color:#2563eb;background:#eff6ff}.profile-chip-inactive{color:#6b7280;background:#f3f4f6}.profile-chip-blocked{color:#dc2626;background:#fef2f2}.profile-card h3{color:#111827;margin:0 0 16px;font-size:16px;font-weight:600}.profile-card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.profile-card-head h3{margin:0}.profile-text-btn{color:#2563eb;cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:500}.profile-text-btn:hover{text-decoration:underline}.profile-form{flex-direction:column;gap:16px;display:flex}.profile-form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.profile-form-group{flex-direction:column;gap:7px;display:flex}.profile-form-group label{color:#374151;font-size:13px;font-weight:600}.profile-form-group input,.profile-form-group select{color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:8px;outline:none;width:100%;height:44px;padding:0 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}.profile-form-group select{cursor:pointer}.profile-form-group input:focus,.profile-form-group select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb14}.profile-form-group .input-error{border-color:#dc2626}.profile-form-group .input-error:focus{border-color:#dc2626;box-shadow:0 0 0 3px #dc262614}.profile-form-group .field-error{color:#dc2626;font-size:12px;line-height:1.3}.profile-form-actions{justify-content:flex-end;gap:10px;display:flex}.profile-cancel-btn{color:#4b5563;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:8px;height:40px;padding:0 14px;font-size:14px;font-weight:500}.profile-cancel-btn:hover{color:#111827;background:#f3f4f6}.profile-cancel-btn:disabled{cursor:not-allowed;opacity:.7}.profile-save-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:8px;height:40px;padding:0 16px;font-size:14px;font-weight:600}.profile-save-btn:hover{background:#1d4ed8}.profile-save-btn:disabled{cursor:not-allowed;opacity:.7;background:#9ca3af}.profile-save-btn:disabled:hover{background:#9ca3af}.profile-grid{grid-template-columns:1fr 1fr;gap:18px 32px;margin:0;display:grid}.profile-field{flex-direction:column;gap:6px;display:flex}.profile-field dt{color:#6b7280;font-size:12px;font-weight:500}.profile-field dd{color:#111827;margin:0;font-size:14px}.profile-status{color:#6b7280;margin:0;font-size:14px}.profile-status-error{color:#dc2626}@media (width<=700px){.profile-identity{flex-wrap:wrap;align-items:flex-start}.profile-chips{width:calc(100% - 82px);margin-left:82px}.profile-grid,.profile-form-row{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.profile-flip-inner{transition:none}}@media (width<=400px){.profile-card:not(.profile-flip),.profile-flip-face{padding:18px 16px}.profile-avatar{border-radius:10px;width:52px;height:52px;font-size:18px}.profile-identity-text h2{font-size:18px}.profile-chips{width:calc(100% - 70px);margin-left:70px}}.admin-page{flex-direction:column;gap:20px;max-width:960px;display:flex}.admin-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.admin-header h1{color:#111827;margin:0 0 6px;font-size:26px;font-weight:600}.admin-header p{color:#6b7280;margin:0;font-size:14px}.admin-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px 24px}.admin-card h2{color:#111827;margin:0 0 14px;font-size:16px;font-weight:600}.admin-status{color:#6b7280;margin:0;font-size:14px}.admin-btn{color:#fff;height:40px;font:inherit;cursor:pointer;white-space:nowrap;background:#2563eb;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.admin-btn:hover{background:#1d4ed8}.admin-btn:disabled{opacity:.6;cursor:not-allowed}.admin-btn.is-secondary{color:#374151;background:#fff;border-color:#d1d5db}.admin-btn.is-secondary:hover{background:#f9fafb}.admin-btn.is-danger{color:#dc2626;background:#fff;border-color:#fecaca}.admin-btn.is-danger:hover{background:#fef2f2}.admin-btn.is-success{background:#16a34a}.admin-btn.is-success:hover{background:#15803d}.admin-btn.is-small{height:32px;padding:0 12px;font-size:13px}.admin-badge{color:#1d4ed8;background:#eff6ff;border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:12px;font-weight:600}.admin-badge.is-ok{color:#16a34a;background:#f0fdf4}.admin-badge.is-muted{color:#6b7280;background:#f3f4f6}.admin-badge.is-danger{color:#b91c1c;background:#fef2f2}.admin-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.admin-row{background:#fff;border:1px solid #e5e7eb;border-radius:12px;align-items:center;gap:14px;padding:14px 18px;display:flex}.admin-row.is-removed{background:#f9fafb}.admin-row.is-removed .admin-row-title{color:#6b7280}.admin-avatar{color:#2563eb;background:#eff6ff;border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:15px;font-weight:600;display:grid}.admin-row-details{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.admin-row-title{color:#111827;font-size:15px;font-weight:600}.admin-row-meta{color:#6b7280;overflow-wrap:anywhere;font-size:13px}.admin-row-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.admin-search{width:100%;height:44px;font:inherit;border:1px solid #d1d5db;border-radius:8px;outline:none;padding:0 14px;font-size:15px}.admin-search:focus{border-color:#2563eb}.admin-select{height:40px;font:inherit;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:0 10px;font-size:14px}.admin-dialog{color:#111827;background:#fff;border:1px solid #e5e7eb;border-radius:12px;width:min(680px,100vw - 32px);max-height:calc(100vh - 48px);padding:0;box-shadow:0 20px 45px #1118272e}.admin-dialog::backdrop{background:#00000059}.admin-dialog-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 24px 0;display:flex}.admin-dialog-head h2{margin:0 0 4px;font-size:20px;font-weight:600}.admin-dialog-head p{color:#6b7280;margin:0;font-size:14px}.admin-dialog-close{color:#6b7280;cursor:pointer;background:0 0;border:none;font-size:24px;line-height:1}.admin-dialog-body{padding:20px 24px}.admin-dialog-foot{justify-content:flex-end;gap:10px;padding:0 24px 20px;display:flex}.admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.admin-form-grid .is-wide{grid-column:1/-1}.admin-form-grid .form-group input,.admin-form-grid .form-group select{height:42px}.admin-form-section{letter-spacing:.04em;text-transform:uppercase;color:#6b7280;grid-column:1/-1;margin:4px 0 -4px;font-size:13px;font-weight:600}@media (width<=640px){.admin-form-grid{grid-template-columns:1fr}.admin-row{flex-wrap:wrap}.admin-row-actions{justify-content:flex-end;width:100%}}.overview-tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.overview-tile{background:#fff;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;gap:4px;padding:16px 18px;display:flex}.overview-tile strong{color:#111827;font-size:28px;font-weight:700;line-height:1.1}.overview-tile span{color:#6b7280;font-size:13px}.overview-session-time{color:#1d4ed8;flex-shrink:0;min-width:150px;font-size:14px;font-weight:600}@media (width<=640px){.overview-session-time{width:100%;min-width:0}}.book-step-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.book-step-head h2{margin:0}.book-filters{flex-wrap:wrap;gap:8px;display:flex}.book-search-status{margin-top:14px}.book-patient-results{flex-direction:column;gap:8px;margin:14px 0 0;padding:0;list-style:none;display:flex}.book-results-note{letter-spacing:.04em;text-transform:uppercase;color:#6b7280;font-size:12px;font-weight:600}.book-patient-result{width:100%;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:10px;align-items:center;gap:14px;padding:10px 14px;display:flex}.book-patient-result:hover{background:#f8fbff;border-color:#93c5fd}.book-selected-patient{align-items:center;gap:14px;display:flex}.book-upcoming{color:#92400e;background:#fffbeb;border-radius:10px;margin-top:14px;padding:10px 14px;font-size:13px}.book-upcoming span{font-weight:600}.book-upcoming ul{margin:6px 0 0;padding-left:18px}.book-day+.book-day{margin-top:18px}.book-day h3{color:#1d4ed8;margin:0 0 10px;font-size:14px;font-weight:600}.book-session-time{color:#111827;flex-shrink:0;min-width:150px;font-size:14px;font-weight:600}.book-result{text-align:center;border-color:#bbf7d0;flex-direction:column;align-items:center;gap:6px;display:flex}.book-result-label{letter-spacing:.04em;text-transform:uppercase;color:#16a34a;font-size:13px;font-weight:600}.book-result-number{color:#16a34a;font-size:48px;font-weight:700;line-height:1.1}.book-result p{color:#374151;margin:0;font-size:15px}.book-result-estimate{font-weight:600}.book-result-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:12px;display:flex}@media (width<=640px){.book-session-time{width:100%;min-width:0}}.admin-page .admin-search[type=search]{max-width:520px}.department-form{flex-direction:column;gap:8px;display:flex}.department-form label{color:#374151;font-size:14px;font-weight:600}.department-form-row{gap:10px;display:flex}.department-form-row .admin-btn{height:44px}
