body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at top left,#3f83f814,#0000 28%),linear-gradient(180deg,#f4f8fb,#eef5f7);color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;min-height:100vh;overflow-x:hidden}.app,.loading-container{display:flex;flex-direction:column;min-height:100vh}.loading-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;justify-content:center}.loading-spinner{animation:spin 1s ease-in-out infinite;border:4px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:50px;margin-bottom:20px;width:50px}.auth-container{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000001a;margin:clamp(24px,6vw,50px) auto;max-width:450px;padding:clamp(20px,4vw,40px);width:min(100%,450px)}.auth-header{margin-bottom:30px;text-align:center}.auth-header h1{color:#2c3e50;font-size:2rem;margin-bottom:10px}.auth-header p{color:#7f8c8d;font-size:1.1rem}.auth-tabs{background:#f8f9fa;border-radius:8px;display:flex;margin-bottom:30px;overflow:hidden}.auth-tab{background:#0000;border:none;cursor:pointer;flex:1 1;font-size:1rem;font-weight:500;padding:12px 20px;transition:all .3s ease}.auth-tab.active{background:#3498db;color:#fff}.auth-tab:hover:not(.active){background:#e9ecef}.auth-form,.auth-form h2{margin-bottom:20px}.auth-form h2{color:#2c3e50;text-align:center}.form-group{margin-bottom:20px}.form-group label{color:#555;display:block;font-weight:500;margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{border:2px solid #e1e8ed;border-radius:8px;font-size:1rem;padding:12px 16px;transition:border-color .3s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;outline:none}.auth-button{background:linear-gradient(135deg,#3498db,#2980b9);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:14px;transition:transform .2s ease,box-shadow .2s ease;width:100%}.auth-button:hover:not(:disabled){box-shadow:0 5px 15px #3498db4d;transform:translateY(-2px)}.auth-button:disabled{cursor:not-allowed;opacity:.7}.consent-checkbox-group{align-items:center;display:flex;flex-wrap:wrap;font-size:.9rem;gap:2px;margin-bottom:16px}.consent-label{align-items:center;color:#555;cursor:pointer;display:flex;font-weight:400!important;gap:6px;margin-bottom:0!important}.consent-label input[type=checkbox]{accent-color:#3498db;cursor:pointer;height:18px;width:18px}.terms-link{background:none;border:none;color:#3498db;cursor:pointer;font-size:.9rem;padding:0;text-decoration:underline}.terms-link:hover{color:#2980b9}.terms-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:10000}.terms-modal{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;max-height:80vh;max-width:600px;width:100%}.terms-modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:16px 20px}.terms-modal-header h3{color:#2c3e50;font-size:1.1rem;margin:0}.terms-close-btn{background:none;border:none;color:#999;cursor:pointer;font-size:1.3rem;line-height:1;padding:4px 8px}.terms-close-btn:hover{color:#333}.terms-modal-body{color:#444;font-size:.88rem;line-height:1.7;overflow-y:auto;padding:20px}.terms-modal-body h4{color:#2c3e50;font-size:.95rem;margin:18px 0 8px}.terms-modal-body h4:first-child{margin-top:0}.terms-modal-body p{margin:6px 0}.terms-modal-body ul{margin:6px 0;padding-left:20px}.terms-modal-body li{margin:4px 0}.terms-modal-footer{border-top:1px solid #eee;padding:12px 20px;text-align:center}.terms-agree-btn{background:linear-gradient(135deg,#3498db,#2980b9);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:10px 32px;transition:transform .2s ease}.terms-agree-btn:hover{box-shadow:0 4px 12px #3498db4d;transform:translateY(-1px)}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper input{padding-right:48px;width:100%}.password-toggle-btn{background:none;border:none;cursor:pointer;font-size:1.2rem;line-height:1;opacity:.6;padding:4px 8px;position:absolute;right:8px;transition:opacity .2s ease}.password-toggle-btn:hover{opacity:1}.forgot-password-link{margin-bottom:4px;margin-top:12px;text-align:right}.forgot-password-btn{background:none;border:none;color:#3498db;cursor:pointer;font-size:.9rem;padding:4px 0;text-decoration:underline}.forgot-password-btn:hover{color:#2980b9}.reset-password-dialog{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0000004d;max-width:400px;padding:28px 24px;width:90%}.reset-password-dialog h3{color:#2c3e50;font-size:1.2rem;margin-bottom:8px;text-align:center}.reset-password-hint{color:#888;font-size:.85rem;margin-bottom:20px;text-align:center}.reset-result{border-radius:6px;font-size:.9rem;margin-bottom:12px;padding:8px;text-align:center}.reset-result.success{background:#d4edda;color:#155724}.reset-result.error{background:#f8d7da;color:#721c24}.reset-cancel-btn{background:#0000;border:1px solid #ddd;border-radius:8px;color:#888;cursor:pointer;font-size:1rem;margin-top:8px;padding:12px;width:100%}.reset-cancel-btn:hover{background:#f5f5f5}.message{border-radius:8px;font-weight:500;margin-bottom:20px;padding:12px 16px}.message-slot{margin-bottom:16px;min-height:56px;transition:opacity .2s ease}.message-slot.empty{opacity:0;pointer-events:none}.message.success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.message.error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.message.info{background-color:#e7f3ff;border:1px solid #b6d7ff;color:#0b5394}.toast-container{pointer-events:none;position:fixed;right:16px;top:16px;z-index:3000}.toast{animation:toastFadeIn .2s ease-out;border:1px solid #0000;border-radius:10px;box-shadow:0 8px 24px #00000029;font-weight:500;max-width:420px;min-width:260px;padding:12px 16px}.toast.success{background-color:#d4edda;border-color:#c3e6cb;color:#155724}.toast.error{background-color:#f8d7da;border-color:#f5c6cb;color:#721c24}.toast.info{background-color:#e7f3ff;border-color:#b6d7ff;color:#0b5394}@keyframes toastFadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.bind-container{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000001a;margin:50px auto;max-width:500px;padding:40px;text-align:center}.auth-error-overlay{align-items:center;animation:fadeIn .2s ease-out;background:#00000080;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:4000}.auth-error-dialog{background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000040;max-height:80vh;overflow-y:auto;padding:28px 24px 20px;text-align:center;width:min(100%,380px)}.auth-error-icon{font-size:2.5rem;margin-bottom:8px}.auth-error-title{color:#c0392b;font-size:1.2rem;margin:0 0 16px}.auth-error-body{text-align:left}.auth-error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;font-size:.95rem;margin:0 0 12px;padding:12px 14px;word-break:break-word}.auth-error-suggestion{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;color:#1e40af;font-size:.9rem;line-height:1.5;margin:0 0 12px;padding:10px 14px}.auth-error-details{margin:0 0 12px}.auth-error-details summary{color:#6b7280;cursor:pointer;font-size:.85rem;-webkit-user-select:none;user-select:none}.auth-error-details pre{background:#f3f4f6;border-radius:6px;color:#374151;font-size:.8rem;margin-top:6px;overflow-x:auto;padding:10px 12px;white-space:pre-wrap;word-break:break-all}.auth-error-close-btn{background:linear-gradient(135deg,#3498db,#2980b9);border:none;border-radius:8px;color:#fff;cursor:pointer;display:block;font-size:1rem;font-weight:600;margin-top:4px;padding:12px;width:100%}.auth-error-close-btn:active{transform:scale(.98)}.auth-clear-cache-section{border-top:1px solid #e5e7eb;margin-top:24px;padding-top:20px;text-align:center}.clear-cache-btn{background:none;border:1px dashed #9ca3af;border-radius:8px;color:#6b7280;cursor:pointer;font-size:.9rem;padding:10px 18px;transition:all .2s ease}.clear-cache-btn:hover{background:#fef2f2;border-color:#ef4444;color:#ef4444}.clear-cache-btn:disabled{cursor:not-allowed;opacity:.5}.clear-cache-confirm{animation:fadeIn .2s ease-out}.clear-cache-confirm p{color:#dc2626;font-size:.9rem;font-weight:500;margin:0 0 12px}.clear-cache-confirm-btns{display:flex;gap:10px;justify-content:center}.clear-cache-yes-btn{background:#dc2626;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:8px 20px}.clear-cache-yes-btn:active{background:#b91c1c}.clear-cache-no-btn{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.9rem;padding:8px 20px}.clear-cache-result{font-size:.9rem;font-weight:500;margin:0 0 10px}.clear-cache-result.success{color:#059669}.clear-cache-result.error{color:#dc2626}.falling-emojis-container{height:100%;left:0;overflow:hidden;pointer-events:none;position:fixed;top:0;width:100%;z-index:9999}.falling-emoji{animation:emojifall linear forwards;position:absolute;top:-50px;will-change:transform}@keyframes emojifall{0%{opacity:1;transform:translateY(0) rotate(0deg)}70%{opacity:1}to{opacity:0;transform:translateY(calc(100vh + 60px)) rotate(2turn)}}.egg-clickable-title{cursor:pointer;transition:transform .2s,color .3s;user-select:none;-webkit-user-select:none}.egg-clickable-title:hover{color:#e74c3c;transform:scale(1.02)}.egg-clickable-title:active{transform:scale(.97)}.egg-ekg-line{height:30px;margin:8px auto 4px;max-width:300px;overflow:hidden;width:80%}.egg-ekg-svg{height:100%;width:100%}.egg-ekg-path{stroke-dasharray:500;stroke-dashoffset:500;animation:ekgDraw 2s ease-in-out infinite}@keyframes ekgDraw{0%{stroke-dashoffset:500}50%{stroke-dashoffset:0}to{stroke-dashoffset:-500}}.egg-shake{animation:eggShake .6s ease-in-out}@keyframes eggShake{0%,to{transform:translateX(0)}10%{transform:translateX(-8px) rotate(-1deg)}20%{transform:translateX(8px) rotate(1deg)}30%{transform:translateX(-6px) rotate(-.5deg)}40%{transform:translateX(6px) rotate(.5deg)}50%{transform:translateX(-4px)}60%{transform:translateX(4px)}70%{transform:translateX(-2px)}80%{transform:translateX(2px)}}.konami-active{animation:konamiBg 3s ease-in-out}@keyframes konamiBg{0%{background:inherit}25%{background:linear-gradient(135deg,#667eea22,#764ba222)}50%{background:linear-gradient(135deg,#f093fb22,#f5576c22)}75%{background:linear-gradient(135deg,#4facfe22,#00f2fe22)}to{background:inherit}}.konami-toast{animation:toastIn .5s ease-out,toastOut .5s ease-in 5s forwards;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:30px;box-shadow:0 8px 30px #667eea66;color:#fff;font-size:.95rem;font-weight:600;left:50%;padding:12px 28px;position:fixed;top:20px;transform:translateX(-50%);white-space:nowrap;z-index:10000}@keyframes toastIn{0%{opacity:0;transform:translateX(-50%) translateY(-30px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes toastOut{0%{opacity:1}to{opacity:0;transform:translateX(-50%) translateY(-20px)}}.egg-spin{animation:eggSpin .5s ease-in-out}@keyframes eggSpin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.egg-pulse-hover{overflow:hidden;position:relative}.egg-pulse-hover:hover:not(:disabled){animation:pulseGlow 1.5s ease-in-out infinite}@keyframes pulseGlow{0%{box-shadow:0 0 0 0 #3498db80}50%{box-shadow:0 0 0 10px #3498db00}to{box-shadow:0 0 0 0 #3498db00}}.onboarding-overlay{align-items:center;animation:fadeIn .3s ease-out;background:#0000008c;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:10000}.onboarding-card{animation:onboardSlideUp .4s ease-out;background:#fff;border-radius:20px;box-shadow:0 20px 60px #00000040;max-height:90vh;overflow-y:auto;padding:clamp(24px,5vw,40px);text-align:center;width:min(100%,480px)}@keyframes onboardSlideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.onboarding-progress{display:flex;gap:10px;justify-content:center;margin-bottom:24px}.onboarding-dot{background:#e0e0e0;border-radius:50%;height:12px;transition:all .3s;width:12px}.onboarding-dot.active{background:#3498db;box-shadow:0 0 0 4px #3498db33;transform:scale(1.3)}.onboarding-dot.done{background:#2ecc71}.onboarding-icon{font-size:56px;line-height:1.2;margin-bottom:12px}.onboarding-title{color:#2c3e50;font-size:clamp(1.4rem,5vw,1.7rem);font-weight:700;line-height:1.3;margin:0 0 16px}.onboarding-body{color:#34495e;font-size:clamp(1.05rem,3.5vw,1.2rem);line-height:1.8;margin-bottom:16px;text-align:left}.onboarding-body p{margin:0}.onboarding-tip{align-items:flex-start;background:#fef9e7;border:1px solid #f9e79f;border-radius:12px;color:#7d6608;display:flex;font-size:clamp(.95rem,3vw,1.05rem);gap:10px;line-height:1.6;margin-bottom:20px;padding:14px 16px;text-align:left}.onboarding-tip-icon{flex-shrink:0;font-size:1.2rem;margin-top:2px}.onboarding-action-btn{background:linear-gradient(135deg,#3498db,#2980b9);border:none;border-radius:14px;color:#fff;cursor:pointer;display:block;font-size:clamp(1.1rem,3.5vw,1.25rem);font-weight:600;margin-bottom:16px;padding:16px 20px;transition:transform .15s,box-shadow .2s;width:100%}.onboarding-action-btn:hover{box-shadow:0 6px 20px #3498db59;transform:translateY(-1px)}.onboarding-action-btn:active{transform:translateY(1px)}.onboarding-nav{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:10px}.onboarding-next-btn,.onboarding-prev-btn{border:none;border-radius:12px;cursor:pointer;font-size:clamp(1rem,3vw,1.1rem);font-weight:600;padding:14px 24px;transition:transform .15s,background .2s}.onboarding-prev-btn{background:#f0f0f0;color:#555}.onboarding-prev-btn:hover{background:#e0e0e0}.onboarding-next-btn{background:#2ecc71;color:#fff;flex:1 1;max-width:200px}.onboarding-next-btn:hover{background:#27ae60;transform:translateY(-1px)}.onboarding-next-btn:active{transform:translateY(1px)}.onboarding-skip-btn{background:none;border:none;color:#999;cursor:pointer;display:inline-block;font-size:.95rem;margin-top:8px;padding:8px 16px;text-decoration:underline;transition:color .2s}.onboarding-skip-btn:hover{color:#666}.bind-notice{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff;margin-bottom:20px;padding:15px 20px;text-align:center}.bind-notice p{line-height:1.6;margin:5px 0}.bind-notice strong{font-weight:600;text-decoration:underline}.bind-info{background:#f8f9fa;border-radius:8px;margin:20px 0;padding:20px;text-align:left}.bind-info .info-item{border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;padding:10px 0}.bind-info .info-item:last-child{border-bottom:none}.bind-info .label{color:#6c757d;font-weight:500}.bind-info .value{color:#2c3e50;font-weight:600;word-break:break-all}.qr-section{margin:30px 0}.qr-placeholder{background:#f8f9fa;border:2px dashed #dee2e6;border-radius:8px;padding:40px}.bind-actions{display:flex;gap:15px;justify-content:center}.bind-button,.cancel-button{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;padding:12px 24px;transition:all .3s ease}.bind-button{background:#28a745;color:#fff}.bind-button:hover:not(:disabled){background:#218838}.cancel-button{background:#6c757d;color:#fff}.cancel-button:hover{background:#5a6268}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;color:#fff;padding:20px 0}.header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 20px}.header-content h1{font-size:1.8rem;font-weight:700}.user-info{align-items:center;display:flex;gap:15px}.name-link-button{background:#0000;border:none;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:0}.name-link-button:hover{text-decoration:underline}.role-switch-group{display:flex;flex-wrap:wrap;gap:8px}.role-switch-button{background:#ffffff1f;border:1px solid #ffffff59;border-radius:999px;color:#fff;cursor:pointer;padding:6px 12px}.role-switch-button.active{background:#fff;color:#4b5563}.user-role{background:#fff3;border-radius:20px;font-size:.9rem;padding:4px 12px}.logout-button{background:#fff3;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;padding:8px 16px;transition:all .3s ease}.logout-button:hover{background:#ffffff4d}.app-nav{background:#fff;border-bottom:1px solid #e1e8ed;display:flex;gap:10px;padding:0 20px}.nav-button{background:#0000;border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;font-size:1rem;font-weight:500;padding:15px 20px;transition:all .3s ease}.nav-button.active,.nav-button:hover{border-bottom-color:#3498db;color:#3498db}.app-main{flex:1 1;margin:0 auto;max-width:1200px;padding:24px 20px 40px;width:100%}.dashboard{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:clamp(20px,3vw,30px)}.dashboard h2{color:#2c3e50;margin-bottom:30px}.family-banner{background:#fff3e0;border:1px solid #ffe0b2;border-radius:8px;color:#e65100;font-size:14px;margin-bottom:20px;padding:10px 16px}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-card{background:#f8f9fa;border:1px solid #e1e8ed;border-radius:8px;padding:20px;text-align:center}.stat-card-plain{background:#0000;border:none;box-shadow:none}.stat-card h3{color:#666;font-size:.9rem;letter-spacing:.5px;margin-bottom:10px;text-transform:uppercase}.stat-number{color:#3498db;font-size:2.5rem;font-weight:700}.stat-subtitle{color:#6c757d;font-size:.85rem;line-height:1.4;margin-top:6px}.patient-doctor-name{line-height:1.1;word-break:break-word}.patient-top-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:26px}.patient-top-actions .action-button{margin-bottom:0}.stat-link{background:none;border:none;color:#3498db;cursor:pointer;padding:0}.stat-link:disabled{color:#bfc9d9;cursor:not-allowed}.quick-actions{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:30px}.bind-code-box{display:flex;flex-direction:column;gap:8px;min-width:0;width:min(100%,360px)}.bind-code-box label{color:#2c3e50;font-weight:600}.bind-code-row{align-items:center;display:flex;gap:8px}.bind-code-row input{border:2px solid #e1e8ed;border-radius:8px;flex:1 1;font-size:.95rem;padding:10px 12px}.action-button{background:#3498db;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:15px 25px;transition:all .3s ease}.action-button:hover{background:#2980b9;box-shadow:0 5px 15px #3498db4d;transform:translateY(-2px)}.qr-display{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:30px;text-align:center}.qr-display.doctor-permanent-qr{display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:320px}.stats-grid{min-height:180px}.modal-backdrop{align-items:center;background:#00000059;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.modal-card{background:#fff;border-radius:12px;box-shadow:0 10px 30px #00000026;max-height:80vh;overflow:auto;padding:20px;width:min(640px,90vw)}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.close-button{background:#0000;border:none;cursor:pointer;font-size:1.4rem}.consult-list{display:flex;flex-direction:column;gap:12px}.consult-item{align-items:flex-start;background:#f8fbff;border:1px solid #e1e8ed;border-radius:10px;display:flex;gap:12px;justify-content:space-between;padding:12px}.consult-info{display:flex;flex-direction:column;gap:4px}.consult-name{color:#1f2d3d;font-weight:700}.consult-meta{color:#6b7a90;font-size:.9rem}.consult-item .action-button{flex-shrink:0}.section-title-row{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:20px}.patients-section h2{color:#2c3e50;margin-bottom:0}.patients-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.patient-card{background:#fff;border:1px solid #e1e8ed;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:20px;transition:transform .3s ease,box-shadow .3s ease}.patient-card:hover{box-shadow:0 5px 20px #0000001a;transform:translateY(-2px)}.patient-info h3{color:#2c3e50;margin-bottom:8px}.patient-info p{color:#666;font-size:.9rem;margin-bottom:5px}.patient-forms{background:#f8fbff;border:1px dashed #d8e3ef;border-radius:8px;margin-top:12px;padding:12px}.patient-forms h4{color:#2c3e50;font-size:1rem;margin:0 0 8px}.patient-advice-content{background:#fffdf8;border-color:#eadfce;margin-top:10px}.ai-structured-section-list{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:10px}.ai-structured-section-card{background:linear-gradient(180deg,#fff,#f7fbff);border:1px solid #d8e2ec;border-radius:10px;display:flex;flex-direction:column;gap:8px;padding:12px}.ai-structured-section-header{align-items:center;color:#183b56;display:flex;font-size:.95rem;gap:10px;justify-content:space-between}.ai-risk-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:.75rem;font-weight:700;justify-content:center;min-width:58px;padding:3px 8px}.ai-risk-badge-normal{background:#ecfdf3;color:#027a48}.ai-risk-badge-risk{background:#fffaeb;color:#b54708}.ai-risk-badge-critical{background:#fef3f2;color:#b42318}.ai-structured-highlight{background:#eef6ff;border:1px solid #c8def8;border-radius:8px;color:#0f3057;padding:10px 12px}.ai-structured-highlight-normal{background:#ecfdf3;border-color:#abefc6;color:#05603a}.ai-structured-highlight-risk{background:#fffaeb;border-color:#fedf89;color:#93370d}.ai-structured-highlight-critical{background:#fef3f2;border-color:#fecdca;color:#b42318}.ai-structured-highlight-label{color:#486581;display:block;font-size:.78rem;font-weight:700;margin-bottom:4px}.ai-structured-textarea{background:#fff;border:1px solid #d0d7de;border-radius:8px;color:#1f2933;line-height:1.6;font:inherit;min-height:120px;padding:10px 12px;resize:vertical;width:100%}.ai-structured-evidence-title{color:#52606d;font-size:.85rem}.ai-structured-evidence-textarea{background:#fffaf2;border-color:#eadfce;min-height:96px}.patient-advice-section-list{grid-template-columns:1fr}.patient-advice-section-card{background:linear-gradient(180deg,#fffefb,#fff9ef);border-color:#eadfce}.ai-risk-risk{border-color:#fedf89}.ai-risk-critical{border-color:#fda29b;box-shadow:inset 0 0 0 1px #b4231814}.patient-advice-textarea{min-height:110px}.patient-advice-warning{background:#fff8db;border:1px solid #f2c94c;border-radius:10px;color:#6b4e16;margin-top:12px;padding:14px}.patient-advice-warning p{line-height:1.6;margin:8px 0 0}.patient-advice-error{color:#b42318}.patient-advice-modal{width:min(720px,92vw)}.patient-advice-modal-meta{margin:4px 0 0}.patient-form-empty{color:#778ca3;font-size:.9rem;margin:0}.patient-form-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.patient-form-item{background:#fff;border:1px solid #e1e8ed;border-radius:6px;padding:8px 10px}.patient-form-title{color:#1f2d3d;font-size:.95rem;margin-bottom:4px}.patient-form-meta{color:#778ca3;font-size:.85rem}.patient-form-content{background:#f8fbff;border:1px solid #e1e8ed;border-radius:6px;color:#1f2d3d;line-height:1.5;margin-top:8px;padding:8px 10px;white-space:pre-wrap}.patient-actions{margin-top:15px;text-align:right}.chat-button{background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 16px;transition:background .3s ease}.chat-button:hover{background:#218838}.health-hub{margin:0 auto;max-width:600px;padding:20px 16px}.health-hub h2{font-size:22px;font-weight:700;margin:0 0 4px}.health-hub-subtitle{color:#666;font-size:14px;margin:0 0 24px}.health-hub-cards{display:flex;flex-direction:column;gap:14px}.health-hub-card{align-items:center;background:#fff;border:1px solid #e8e8e8;border-radius:14px;cursor:pointer;display:flex;font-family:inherit;gap:14px;padding:18px 16px;text-align:left;transition:box-shadow .2s,border-color .2s;width:100%}.health-hub-card:hover{border-color:#b0d4f1;box-shadow:0 2px 12px #2196f31a}.health-hub-card:active{background:#f5faff}.health-hub-card-icon{flex-shrink:0;font-size:36px;line-height:1}.health-hub-card-body{flex:1 1;min-width:0}.health-hub-card-body h3{color:#222;font-size:17px;font-weight:600;margin:0 0 3px}.health-hub-card-body p{color:#888;font-size:13px;margin:0 0 6px}.health-hub-badge{background:#e6f7ee;border-radius:10px;color:#27ae60;display:inline-block;font-size:12px;font-weight:500;padding:2px 8px}.health-hub-badge.empty{background:#f5f5f5;color:#aaa}.health-hub-card-arrow{color:#ccc;flex-shrink:0;font-size:24px;font-weight:300}.patient-home-cards{display:flex;flex-direction:column;gap:12px}.patient-home-card{align-items:center;background:#fff;border:1px solid #e8e8e8;border-radius:14px;cursor:pointer;display:flex;gap:12px;padding:16px;transition:box-shadow .2s,border-color .2s}.patient-home-card:hover{border-color:#b0d4f1;box-shadow:0 2px 12px #2196f31a}.patient-home-card:active{background:#f5faff}.patient-home-card-header{align-items:center;display:flex;flex-shrink:0;gap:8px}.patient-home-card-icon{font-size:30px;line-height:1}.patient-home-card-header h3{font-size:16px;font-weight:600;margin:0;white-space:nowrap}.patient-home-card-content{flex:1 1;min-width:0}.patient-home-card-value{color:#333;font-size:15px;font-weight:500;margin:0 0 2px}.patient-home-card-value.empty-text{color:#aaa}.patient-doctors-list{align-items:center;display:flex;flex-wrap:wrap;gap:6px 10px}.patient-doctors-list .doctor-name-with-level{color:#333;font-size:14px;font-weight:500}.patient-home-card-detail{color:#666;font-size:13px;margin:0 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.med-hub-card{align-items:center;background:#fff;border:1px solid #e8e8e8;border-radius:14px;cursor:pointer;display:flex;gap:14px;margin-bottom:12px;padding:18px 16px;transition:box-shadow .2s,border-color .2s}.med-hub-card:hover{border-color:#b0d4f1;box-shadow:0 2px 12px #2196f31a}.med-hub-card:active{background:#f5faff}.med-hub-card-icon{flex-shrink:0;font-size:32px;line-height:1}.med-hub-card-body{flex:1 1;min-width:0}.med-hub-card-body h3{color:#222;font-size:17px;font-weight:600;margin:0 0 3px}.med-hub-card-body p{color:#888;font-size:13px;margin:0 0 4px}.medication-clickable{cursor:pointer;transition:background .15s}.medication-clickable:hover{background:#f8f9fa}.medication-item-summary{align-items:center;display:flex;gap:10px}.medication-item-summary strong{flex-shrink:0}.medication-item-brief{color:#888;flex:1 1;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.medication-item-detail{border-top:1px solid #eee;color:#555;font-size:14px;margin-top:10px;padding-top:10px}.medication-item-detail p{margin:4px 0}.med-ocr-section{background:#f0f7ff;border:2px dashed #b3d4fc;border-radius:12px;margin-bottom:20px;padding:16px;text-align:center}.med-ocr-buttons{display:flex;gap:12px;justify-content:center;margin-bottom:8px}.med-ocr-btn{align-items:center;background:#1a73e8!important;border:none;border-radius:10px!important;color:#fff!important;cursor:pointer;display:inline-flex;font-size:15px!important;font-weight:500;gap:6px;padding:10px 20px!important}.med-ocr-btn:disabled{cursor:not-allowed;opacity:.5}.med-ocr-hint{color:#888;font-size:13px;margin:4px 0 0}.med-ocr-loading{align-items:center;color:#1a73e8;display:flex;font-size:14px;gap:8px;justify-content:center;margin-top:12px}.med-ocr-loading .spinner{animation:spin .8s linear infinite;border:2px solid #b3d4fc;border-radius:50%;border-top-color:#1a73e8;display:inline-block;height:18px;width:18px}@keyframes spin{to{transform:rotate(1turn)}}.med-ocr-error{background:#fff3cd;border-radius:8px;color:#856404;font-size:13px;margin-top:10px;padding:8px 12px}.med-ocr-results{margin-top:12px;text-align:left}.med-ocr-results h4{color:#333;font-size:14px;margin:0 0 8px}.med-ocr-list{list-style:none;margin:0;padding:0}.med-ocr-item{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;margin-bottom:6px;padding:10px 14px;transition:border-color .15s,background .15s}.med-ocr-item:hover{background:#f5faff;border-color:#1a73e8}.med-ocr-item strong{color:#222;font-size:15px}.med-ocr-item-detail{color:#888;font-size:13px}.medication-section{display:flex;flex-direction:column;gap:30px}.medication-form,.medication-history{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:30px}.medication-form h2,.medication-history h2{color:#2c3e50;margin-bottom:20px}.submit-button{background:#28a745;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:12px 24px;transition:all .3s ease}.submit-button:hover:not(:disabled){background:#218838;transform:translateY(-2px)}.submit-button:disabled{cursor:not-allowed;opacity:.7}.submissions-list{display:flex;flex-direction:column;gap:15px}.submission-item{background:#f8f9fa;border-left:4px solid #3498db;border-radius:8px;padding:15px}.submission-header{display:flex;justify-content:space-between;margin-bottom:10px}.submission-date{color:#666;font-size:.9rem}.submission-content{color:#333;line-height:1.5}.medication-record-content p{margin:4px 0}.medication-list{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.medication-list-item{background:#f8f9fa;border:1px solid #e1e8ed;border-radius:8px;padding:12px 14px}.medication-item-time{color:#667085;font-size:.86rem;margin-bottom:6px}.medication-empty{padding:24px 12px}.medication-name-group{position:relative}.medication-suggestions{background:#fff;border:1px solid #d1d5db;border-radius:8px;box-shadow:0 4px 12px #0000001f;left:0;list-style:none;margin:4px 0 0;max-height:240px;overflow-y:auto;padding:4px 0;position:absolute;right:0;top:100%;z-index:50}.medication-suggestions li button{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:8px 12px;text-align:left;transition:background .15s;width:100%}.medication-suggestions li button:hover{background:#f0f7ff}.suggestion-name{color:#1a202c;font-size:.95rem;font-weight:500}.suggestion-detail{color:#718096;font-size:.8rem}.medication-expiry-reminder{background:#fff8e1;border:1px solid #ffe082;border-radius:8px;color:#e65100;font-size:.92rem;line-height:1.5;margin-bottom:6px;padding:10px 14px}.wearable-section{display:flex;flex-direction:column;gap:20px}.wearable-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.wearable-form-card,.wearable-history-card{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:24px}.wearable-form-card h3,.wearable-history-card h3{color:#2c3e50;margin-bottom:16px}.wearable-form-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.wearable-list{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0;padding:0}.wearable-list-item{background:#f8f9fa;border:1px solid #e1e8ed;border-radius:8px;padding:12px}.wearable-list-item p{color:#405066;font-size:.9rem;margin:4px 0}.wearable-list-head{align-items:center;color:#2c3e50;display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:6px}.wearable-alert{color:#b42318;font-weight:600;margin-top:6px}.wearable-critical-alert{color:#912018;font-weight:700;margin-top:6px}.wearable-empty{padding:20px 12px}.wearable-stat-value{font-size:1.3rem}.wearable-stat-subtitle{color:#667085;font-size:.86rem;margin-top:6px}.wearable-doctor-summary{background:#f8fafc;border:1px solid #d0d5dd;border-radius:8px;margin:4px 0 10px;padding:8px 10px}.wearable-doctor-summary p{color:#344054;font-size:.85rem;margin:2px 0}.wearable-doctor-summary.risk{background:#fff6f5;border-color:#fecdca}.wearable-doctor-summary.critical{background:#fef3f2;border-color:#f04438}.wearable-doctor-summary.normal{background:#f6ffed;border-color:#b7ebc6}.wearable-auto-sync-card{background:#f8fbff;border:1px solid #d8e3ef;border-radius:10px;margin-bottom:16px;padding:12px 14px}.wearable-auto-sync-card p{color:#405066;margin:4px 0}.doctor-critical-card{margin-top:20px}.doctor-critical-list{display:flex;flex-direction:column;gap:12px}.doctor-critical-item{grid-gap:14px;background:#fff6f5;border:1px solid #fecdca;border-radius:10px;display:grid;gap:14px;grid-template-columns:minmax(140px,180px) 1fr;padding:14px 16px}.doctor-critical-item strong{color:#912018}.doctor-critical-item p{color:#7a271a;margin:4px 0}.chat-section{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;overflow:hidden}.chat-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e1e8ed;display:flex;justify-content:space-between;padding:20px}.chat-header h2{color:#2c3e50;margin:0}.back-button{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:background .3s ease}.back-button:hover{background:#5a6268}.empty-state{color:#666;padding:60px 20px;text-align:center}.empty-state p:first-child{color:#999;font-size:1.2rem;margin-bottom:10px}.empty-state p:last-child{font-size:.9rem}.chat-window{background:#fff;border-radius:12px;display:flex;flex-direction:column;height:min(600px,68vh);min-height:420px;overflow:hidden}.chat-room-participants{align-items:center;background:#eef6ff;border-bottom:1px solid #d8e9ff;color:#1f4f8a;display:flex;flex-wrap:wrap;font-size:.88rem;gap:6px 10px;line-height:1.5;padding:10px 16px}.chat-room-doctor-names{align-items:center;display:inline-flex;flex-wrap:wrap;gap:4px 8px}.chat-room-doctor-names .doctor-name-with-level{font-size:.84rem}.message-sender .level-badge{font-size:.68rem;padding:0 5px;vertical-align:middle}.chat-messages{background:#f8f9fa;display:flex;flex:1 1;flex-direction:column;gap:12px;overflow-y:auto;padding:20px}.chat-empty,.chat-loading{align-items:center;color:#666;display:flex;flex-direction:column;height:100%;justify-content:center}.chat-loading .loading-spinner.small{border-width:3px;height:30px;margin-bottom:15px;width:30px}.chat-empty p:first-child{color:#999;font-size:1.1rem;margin-bottom:8px}.chat-empty p:last-child{font-size:.9rem}.chat-message{animation:messageSlideIn .3s ease-out;display:flex;flex-direction:column;max-width:70%}.chat-message.own{align-items:flex-end;align-self:flex-end}.chat-message.other{align-items:flex-start;align-self:flex-start}.message-sender{color:#6c757d;font-size:.78rem;margin:0 8px 4px}.message-content{word-wrap:break-word;background:#fff;border-radius:18px;box-shadow:0 1px 3px #0000001a;font-size:.95rem;line-height:1.4;padding:12px 16px;white-space:pre-wrap}.chat-message.own .message-content{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff}.chat-message.other .message-content{background:#fff;color:#333}.message-meta{align-items:center;display:flex;font-size:.75rem;gap:8px;margin-top:4px;opacity:.7}.chat-message.own .message-meta{justify-content:flex-end}.message-time{color:#666}.message-status{border-radius:10px;font-size:.8rem;padding:2px 6px}.message-status.read{background:#28a7451a;color:#28a745}.message-status.sent{background:#6c757d1a;color:#6c757d}.chat-message.system-reminder{align-self:center;margin:8px auto;max-width:90%}.chat-message.system-reminder .medication-expiry-reminder{background:#fff8e1;border:1px solid #ffe082;border-radius:10px;color:#e65100;font-size:.92rem;line-height:1.5;padding:10px 16px;text-align:center}.chat-message.system-reminder .medication-expiry-reminder .reminder-icon{margin-right:6px}.chat-message.system-reminder .message-meta{justify-content:center}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-input-area{background:#fff;border-top:1px solid #e1e8ed;padding:20px}.input-container{align-items:flex-end;display:flex;gap:12px}.input-container textarea{border:2px solid #e1e8ed;border-radius:20px;flex:1 1;font-family:inherit;font-size:1rem;max-height:120px;min-height:44px;outline:none;padding:12px 16px;resize:none;transition:border-color .3s ease}.input-container textarea:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.input-container textarea:disabled{cursor:not-allowed;opacity:.7}.send-button{background:#3498db;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:12px 24px;transition:all .3s ease;white-space:nowrap}.send-button:hover:not(:disabled){background:#2980b9;box-shadow:0 3px 10px #3498db4d;transform:translateY(-1px)}.send-button:disabled{cursor:not-allowed;opacity:.7;transform:none}.assessment-detail-section h2,.assessment-list-section h2,.patient-assessment-section h2{color:#2c3e50;margin-bottom:20px}.assessment-list{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.assessment-card{background:#fff;border:1px solid #e1e8ed;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:20px}.assessment-card h3{color:#2c3e50;margin-bottom:10px}.assessment-card p{color:#666;margin-bottom:16px}.assessment-detail-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.assessment-content-card{background:#fff;border:1px solid #e1e8ed;border-radius:12px;box-shadow:0 2px 10px #0000000d;margin-bottom:20px;padding:20px}.assessment-content-card>h3{color:#2c3e50;margin-bottom:12px}.assessment-form-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:14px}.assessment-option-group{margin-bottom:14px}.assessment-option-group>label{color:#333;display:block;font-weight:500;margin-bottom:8px}.assessment-option-items{display:flex;flex-wrap:wrap;gap:10px 16px}.assessment-option-column{display:flex;flex-direction:column;gap:8px}.assessment-option-item{align-items:center;color:#444;display:inline-flex;font-size:.95rem;gap:6px}.assessment-system-card{border-top:1px solid #e9ecef;margin-top:20px;padding-top:16px}.assessment-system-card h3{color:#2c3e50;margin-bottom:12px}.assessment-content,.assessment-content-card pre{font-family:inherit;line-height:1.6;margin:0;white-space:pre-wrap;word-break:break-word}.assessment-actions{background:#fff;border:1px solid #e1e8ed;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:20px}.assessment-assign-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.assessment-assign-row label{color:#555;font-weight:500}.assessment-assign-row select{border:2px solid #e1e8ed;border-radius:8px;font-size:.95rem;min-width:0;padding:10px 12px;width:min(100%,320px)}.assessment-item{border-left-color:#28a745}.assessment-list-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.assessment-list-actions{flex-wrap:wrap;gap:8px;justify-content:flex-end}.assessment-title-line{color:#1f2d3d;font-weight:600}.assessment-meta{color:#7b8ba3;font-size:.85rem;margin-top:4px}.assessment-toggle{background:#fff;border:1px solid #2d8cf0;border-radius:6px;color:#2d8cf0;cursor:pointer;font-weight:600;padding:6px 10px}.assessment-toggle:hover{background:#e8f2ff}.saved-assessment-section{margin-top:24px}.saved-assessment-section h3{color:#2c3e50;margin-bottom:12px}.saved-assessment-list{display:flex;flex-direction:column;gap:12px}.saved-assessment-card{background:#fff;border:1px solid #e1e8ed;border-radius:10px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:14px}.saved-assessment-meta h4{color:#2c3e50;margin-bottom:4px}.saved-assessment-meta p{color:#666;font-size:.9rem;margin:2px 0}.saved-assessment-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.saved-assessment-actions select{border:2px solid #e1e8ed;border-radius:8px;font-size:.95rem;min-width:0;padding:10px 12px;width:min(100%,320px)}.delete-button{background:#dc3545;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;padding:10px 14px;transition:background .2s ease}.delete-button:hover:not(:disabled){background:#c82333}.delete-button:disabled{cursor:not-allowed;opacity:.7}.schedule-section{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:24px}.schedule-section h2{color:#2c3e50;margin-bottom:16px}.schedule-form{margin-bottom:20px}.schedule-mode-toggle{border:1px solid #3498db;border-radius:8px;display:flex;gap:0;margin-bottom:16px;overflow:hidden}.mode-btn{background:#fff;border:none;color:#3498db;cursor:pointer;flex:1 1;font-size:14px;padding:8px 16px;transition:background .2s,color .2s}.mode-btn.active{background:#3498db;color:#fff}.weekday-checkboxes{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.weekday-chip{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:20px;cursor:pointer;display:inline-flex;font-size:14px;gap:4px;padding:6px 14px;transition:background .2s,border-color .2s;-webkit-user-select:none;user-select:none}.weekday-chip input[type=checkbox]{display:none}.weekday-chip.selected{background:#e8f4fd;border-color:#3498db;color:#2980b9;font-weight:500}.schedule-form-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.schedule-list{display:flex;flex-direction:column;gap:10px}.schedule-card{background:#fafbfc;border:1px solid #e1e8ed;border-radius:10px;padding:14px}.schedule-card h3{color:#2c3e50;font-size:1rem;margin-bottom:8px}.schedule-card p{color:#555;margin:4px 0}.schedule-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}@media (max-width:768px){.chat-window{height:500px}.chat-messages{padding:15px}.chat-message{max-width:85%}.chat-input-area{padding:15px}.input-container{gap:8px}.send-button{font-size:.9rem;padding:10px 20px}}.app-header{background:radial-gradient(circle at top left,#ffffff38,#0000 28%),linear-gradient(135deg,#153b6b,#1f6d8a 52%,#2d9a73)}.app-nav{grid-gap:12px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f5f9fce6;border-bottom:1px solid #153b6b14;display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));padding:16px 20px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.nav-button-rich{align-items:center;background:linear-gradient(180deg,#fffffffa,#ecf5f8f5);border:1px solid #153b6b17;border-radius:22px;box-shadow:0 10px 24px #1633570d;color:#34516f;display:flex;justify-content:space-between;min-height:84px;padding:16px 18px;position:relative}.nav-button-rich.active,.nav-button-rich:hover:not(:disabled){background:linear-gradient(135deg,#dff3f8fa,#e6f7eefa);border-color:#1f6d8a38;box-shadow:0 14px 30px #153b6b1a;color:#113b63;transform:translateY(-1px)}.nav-button-rich:disabled{cursor:not-allowed;opacity:.55}.nav-button-main{align-items:center;display:flex;gap:14px}.nav-button-copy{align-items:flex-start;display:flex;flex-direction:column;gap:4px}.nav-button-copy strong{font-size:1rem;font-weight:700}.nav-button-copy span{color:#617a93;font-size:.82rem}.nav-title-short{display:none}.nav-subtitle{display:inline}.nav-icon{flex:0 0 auto;height:24px;width:24px}.patient-ai-intake-view{display:flex;flex-direction:column;gap:18px}.patient-ai-intake-header{align-items:flex-start}.patient-ai-intake-toolbar{display:flex;gap:10px}.patient-ai-intake-status-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.patient-ai-intake-status-card{background:linear-gradient(135deg,#eef7ff,#f8fbff);border:1px solid #d8e8f7;border-radius:14px;padding:14px 16px}.patient-ai-intake-status-card span{color:#5f7285;display:block;font-size:.82rem;margin-bottom:6px}.patient-ai-intake-status-card strong{color:#143a52;font-size:1rem}.patient-ai-intake-thread{background:linear-gradient(180deg,#f7fbfe,#eef5fb);border:1px solid #d8e4ef;border-radius:18px;display:flex;flex-direction:column;gap:14px;max-height:520px;min-height:280px;overflow-y:auto;padding:18px}.patient-ai-intake-empty{color:#6a7c8f}.patient-ai-intake-bubble{border-radius:18px;box-shadow:0 10px 24px #193d6014;line-height:1.6;max-width:86%;padding:14px 16px;white-space:pre-wrap}.patient-ai-intake-bubble.assistant{align-self:flex-start;background:#fff;border-top-left-radius:8px}.patient-ai-intake-bubble.user{align-self:flex-end;background:linear-gradient(135deg,#176087,#1e7aa7);border-top-right-radius:8px;color:#fff}.patient-ai-intake-bubble-role{font-size:.78rem;font-weight:700;margin-bottom:6px;opacity:.8}.patient-ai-intake-bubble-loading{opacity:.86}.patient-ai-intake-bubble.streaming .patient-ai-intake-bubble-content{border-left:2px solid #2a7fff;padding-left:8px}.streaming-cursor{animation:blink-cursor .8s steps(2,start) infinite;color:#2a7fff;display:inline;font-weight:700;margin-left:1px}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}.patient-ai-intake-error{background:#fff2f0;border-radius:12px;color:#bf3d3d;padding:12px 14px}.patient-ai-intake-missing{background:#fff8e8;border-radius:14px;color:#8b5e16;display:flex;flex-wrap:wrap;gap:8px;padding:14px 16px}.patient-ai-intake-summary-card{background:#fbfdff;border:1px solid #d7e3ec;border-radius:18px;display:flex;flex-direction:column;gap:14px;padding:18px}.patient-ai-intake-summary-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.patient-ai-intake-summary-header h4{margin:0 0 6px}.patient-ai-intake-summary-header p{color:#6b7a90;font-size:.9rem;margin:0}.patient-ai-intake-summary-pre{color:#1f2d3d;font-family:inherit;line-height:1.7;margin:0;white-space:pre-wrap}.patient-ai-intake-form{display:flex;flex-direction:column;gap:12px}.patient-ai-intake-form textarea{background:#fff;border:1px solid #cdd9e4;border-radius:16px;font:inherit;line-height:1.6;padding:14px 16px;resize:vertical;width:100%}.patient-ai-intake-actions{display:flex;gap:10px;justify-content:flex-end}.voice-mode-container{background:linear-gradient(135deg,#f0f4ff,#e8f0fe);border-radius:16px;gap:20px;margin-bottom:12px;padding:24px 16px}.voice-mode-container,.voice-mode-visual{align-items:center;display:flex;flex-direction:column}.voice-mode-visual{gap:12px}.voice-orb{align-items:center;background:linear-gradient(135deg,#4285f4,#34a853);border-radius:50%;box-shadow:0 4px 20px #4285f440;display:flex;height:100px;justify-content:center;transition:transform .3s,box-shadow .3s;width:100px}.voice-orb.listening{animation:voicePulse 1.2s infinite;box-shadow:0 0 30px #4285f480}.voice-orb.speaking{animation:voicePulse .8s infinite;background:linear-gradient(135deg,#34a853,#fbbc04);box-shadow:0 0 30px #34a85380}.voice-orb.thinking{animation:voiceThink 1.5s infinite;background:linear-gradient(135deg,#fbbc04,#ea4335)}@keyframes voicePulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes voiceThink{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}.voice-orb-inner{font-size:2rem}.voice-mode-status{color:#3c4858;font-size:.95rem;margin:0}.voice-interim-text{color:#4285f4;font-size:1rem;font-style:italic;margin:0;max-width:360px;text-align:center}.voice-error-text{color:#ef4444;font-size:.85rem;margin:4px 0 0;text-align:center}.voice-mode-controls{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.voice-mic-btn{background:#4285f4;border:none;border-radius:24px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:10px 22px;transition:background .2s}.voice-mic-btn:hover{background:#3367d6}.voice-mic-btn-active{background:#ea4335}.voice-mic-btn-active:hover{background:#c5221f}.assessment-progress-bar-container{align-items:center;display:flex;gap:12px;margin-bottom:8px;padding:8px 0}.assessment-progress-bar{background:#e5e9ef;border-radius:4px;flex:1 1;height:8px;overflow:hidden}.assessment-progress-bar-fill{background:linear-gradient(90deg,#4285f4,#34a853);border-radius:4px;height:100%;transition:width .4s ease}.assessment-progress-label{color:#6b7a90;font-size:.85rem;white-space:nowrap}.assessment-result-section{margin:16px 0}.assessment-result-section h5{color:#1f2d3d;font-size:1rem;margin:0 0 8px}.assessment-result-table{border-collapse:collapse;font-size:.9rem;width:100%}.assessment-result-table td,.assessment-result-table th{border:1px solid #d0dae6;padding:8px 12px;text-align:left}.assessment-result-table th{background:#f0f4fa;color:#3c4858;font-weight:600}.assessment-result-table td{color:#1f2d3d}.assessment-result-total td{background:#f0f9f4;font-weight:600}.nav-badge{align-items:center;background:#d93025;border-radius:999px;color:#fff;display:inline-flex;font-size:.78rem;font-weight:700;height:24px;justify-content:center;min-width:24px;padding:0 7px}.nav-badge-warm{background:#d97706}.section-subtitle{color:#61748a;font-size:.92rem;margin-top:6px}.section-actions-row{display:flex;flex-wrap:wrap;gap:10px}.action-button-secondary{background:#e7f1f7;color:#174a77}.action-button-secondary:hover:not(:disabled){background:#d4e7f3;color:#113b63}.daily-round-card{display:flex;flex-direction:column;gap:16px}.daily-round-actions{align-items:stretch;display:flex;flex-wrap:wrap;gap:10px}.file-upload-button{align-items:center;cursor:pointer;display:inline-flex;justify-content:center;overflow:hidden;position:relative;text-align:center}.file-upload-button input{cursor:pointer;inset:0;opacity:0;position:absolute}.file-upload-button:has(input:disabled){cursor:not-allowed;opacity:.65}.file-upload-button:has(input:disabled) input{cursor:not-allowed}.action-button-warm{background:linear-gradient(135deg,#f59e0b,#ea580c)}.action-button-warm:hover:not(:disabled){background:linear-gradient(135deg,#e28b00,#d24b09)}.patient-content-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:24px;margin-top:24px}.content-card,.content-section-card{background:#fff;border:1px solid #e3edf4;border-radius:18px;box-shadow:0 10px 24px #1c3a5b0f}.content-card{padding:20px}.feature-card{background:radial-gradient(circle at top right,#2d9a7314,#0000 36%),linear-gradient(180deg,#fff,#f7fbfd)}.content-card-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:14px}.content-card-header h3{color:#183b56;margin-bottom:6px}.content-card-body p,.content-card-header p{color:#526779}.content-card-body{display:flex;flex-direction:column;gap:8px}.content-card-empty{background:#f4f8fb;border-radius:14px;color:#6b7f92;padding:18px}.content-section-card{padding:24px}.content-form-grid{display:flex;flex-direction:column;gap:14px}.chat-pending-images,.message-image-grid,.record-image-grid,.upload-preview-list{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}.upload-preview-list{margin-top:12px}.chat-pending-image-item,.upload-preview-item{display:flex;flex-direction:column;gap:8px}.image-preview-button,.message-image-link,.record-image-link{background:#0000;border:none;cursor:zoom-in;display:block;padding:0}.chat-pending-image,.message-image,.record-image,.upload-preview-image{aspect-ratio:1;background:#eef4f7;border:1px solid #d8e6ee;border-radius:12px;object-fit:cover;width:100%}.image-preview-modal{padding:20px}.image-preview-card{max-height:92vh;width:min(960px,96vw)}.image-preview-modal-image{background:#0f172a;border-radius:12px;max-height:calc(92vh - 96px);object-fit:contain;width:100%}.message-text{white-space:pre-wrap}.message-image-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-top:10px}.message-image{aspect-ratio:1.1}.chat-image-input{display:none}.chat-image-trigger,.chat-pending-remove{background:#e4eef4;border:none;border-radius:14px;color:#174a77;cursor:pointer;font-weight:600}.chat-image-trigger{padding:12px 14px;white-space:nowrap}.chat-pending-remove{padding:8px 10px}.doctor-permanent-qr{align-items:center;margin-top:24px;text-align:center;width:100%}.doctor-permanent-qr canvas,.doctor-permanent-qr svg{display:block;margin:0 auto}.qr-display.doctor-permanent-qr{place-items:center}@media (max-width:960px){.app-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.app{padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px))}.assessment-actions,.assessment-card,.assessment-content-card,.auth-container,.bind-container,.chat-section,.content-card,.content-section-card,.dashboard,.patient-card,.qr-display,.saved-assessment-card,.schedule-section,.wearable-form-card,.wearable-history-card{border-radius:16px}.toast-container{left:12px;right:12px;top:10px}.toast{max-width:none;min-width:0;width:100%}.app-header{padding:16px 0 14px}.header-content{align-items:flex-start;flex-direction:column;gap:12px}.header-content h1{font-size:1.35rem;line-height:1.25}.user-info{flex-wrap:wrap}.daily-round-actions,.role-switch-group{width:100%}.app-nav{grid-gap:8px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f4f8fbf5;border-top:1px solid #153b6b14;bottom:0;box-shadow:0 -8px 24px #113b6314;display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr));left:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom, 0px));position:fixed;right:0;top:auto;z-index:40}.nav-button-rich{border-radius:16px;box-shadow:none;justify-content:center;min-height:64px;padding:10px 8px}.nav-button-main{flex-direction:column;gap:4px;justify-content:center;width:100%}.nav-button-copy{align-items:center;min-width:0;text-align:center}.nav-button-copy strong{font-size:.76rem;letter-spacing:.01em;line-height:1.1}.nav-title-full{display:none}.nav-title-short{display:inline}.nav-subtitle{display:none}.nav-icon{height:18px;width:18px}.nav-badge{font-size:.72rem;height:20px;min-width:20px;padding:0 6px;position:absolute;right:6px;top:6px}.assessment-detail-header,.chat-header,.content-card-header,.section-title-row{align-items:flex-start;flex-direction:column}.bind-code-row,.patient-ai-intake-status-row,.quick-actions,.section-actions-row{width:100%}.bind-code-row .action-button,.daily-round-actions .action-button,.daily-round-actions .delete-button,.patient-ai-intake-actions .action-button,.patient-ai-intake-toolbar .action-button,.quick-actions .action-button,.role-switch-button,.schedule-card-actions .action-button,.section-actions-row .action-button{flex:1 1 100%}.patient-ai-intake-bubble{max-width:100%}.patient-ai-intake-summary-header{flex-direction:column}.daily-round-actions>*{min-height:46px}.daily-round-card .form-group label,.daily-round-card .patient-form-meta,.daily-round-card textarea{overflow-wrap:anywhere}.daily-round-card textarea{line-height:1.6;min-height:160px}.daily-round-card .file-upload-button{width:100%}.app-main{padding:18px 14px 120px}.assessment-form-grid,.assessment-list,.patient-content-grid,.patients-grid,.schedule-form-grid,.stats-grid,.wearable-form-grid,.wearable-grid{grid-template-columns:minmax(0,1fr)}.assessment-list-header,.consult-item,.doctor-critical-item,.saved-assessment-actions,.saved-assessment-card,.wearable-list-head{align-items:flex-start;flex-direction:column;grid-template-columns:minmax(0,1fr)}.assessment-assign-row select,.bind-code-box,.patient-top-actions .action-button,.saved-assessment-actions select{width:100%}.bind-code-row{flex-direction:column}.doctor-critical-item{gap:8px}.modal-card{border-radius:14px;max-height:min(88vh,760px);padding:16px;width:min(100%,calc(100vw - 24px))}.modal-header{align-items:flex-start;gap:10px}.image-preview-card,.patient-advice-modal{width:min(100%,calc(100vw - 20px))}.assessment-actions,.assessment-content-card,.medication-form,.medication-history,.schedule-section,.wearable-form-card,.wearable-history-card{padding:18px 16px}.medication-list-item,.schedule-card,.submission-item.assessment-item,.wearable-list-item{padding:14px 12px}.assessment-meta,.assessment-title-line,.consult-meta,.consult-name,.doctor-critical-item p,.doctor-critical-item strong,.medication-list-item p,.modal-header h3,.patient-advice-modal-meta,.schedule-card h3,.schedule-card p,.wearable-list-head,.wearable-list-item p{word-break:break-word}.wearable-list-head{gap:4px}.assessment-toggle,.consult-item .action-button,.schedule-card .action-button,.schedule-card .delete-button,.wearable-form-card .action-button,.wearable-form-card .delete-button{justify-content:center;width:100%}.schedule-card .delete-button,.wearable-form-card .delete-button{margin-top:8px}.assessment-list-header{gap:10px}.assessment-list-header>div,.section-title-row>div,.submission-content.assessment-content,.wearable-auto-sync-card{width:100%}.submission-content.assessment-content{overflow-x:auto;padding-top:4px}.patient-advice-content{font-size:.92rem;line-height:1.6;margin-top:12px;padding:12px}.ai-structured-section-list{grid-template-columns:1fr}.image-preview-modal-image{border-radius:10px;max-height:68vh}.assessment-detail-header h2,.chat-header h2,.section-title-row h2{font-size:1.12rem;line-height:1.35}.medication-item-time,.patient-form-meta,.section-subtitle{line-height:1.45}.chat-pending-images,.message-image-grid,.record-image-grid,.upload-preview-list{grid-template-columns:repeat(2,minmax(0,1fr))}.input-container{flex-wrap:wrap}.chat-window{height:calc(100dvh - 290px);max-height:560px;min-height:360px}.chat-messages{padding:14px}.chat-message{max-width:92%}.chat-input-area{padding:14px}.chat-image-trigger,.input-container textarea,.send-button{width:100%}}@media (max-width:520px){.modal-card{padding:14px}.close-button{background:#f2f4f7;border-radius:999px;min-height:36px;min-width:36px}.consult-list{gap:10px}.consult-item{padding:10px}.consult-item .action-button,.schedule-card .delete-button{min-height:42px}.doctor-critical-item{gap:10px;padding:12px}.patient-advice-modal .modal-header h3,.schedule-section h2{font-size:1.1rem}.consult-name,.schedule-card h3{font-size:.98rem;line-height:1.4}}.patient-card-simple{padding:14px 18px}.patient-simple-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.patient-name-link{background:none;border:none;color:#2c3e50;cursor:pointer;font-size:1.05rem;font-weight:600;line-height:1.4;padding:0;text-align:left}.patient-name-link:hover{color:#007bff;text-decoration:underline}.chat-button-small{font-size:.85rem;line-height:1;min-width:0;min-width:auto;padding:4px 10px}.patient-note-row{margin-top:6px}.patient-note-edit{align-items:center;display:flex;gap:6px}.patient-note-input{border:1px solid #ced4da;border-radius:6px;flex:1 1;font-size:.85rem;outline:none;padding:5px 8px;transition:border-color .2s}.patient-note-input:focus{border-color:#007bff}.patient-note-cancel-btn,.patient-note-save-btn{border:none;border-radius:6px;cursor:pointer;font-size:.8rem;padding:4px 10px;white-space:nowrap}.patient-note-save-btn{background:#28a745;color:#fff}.patient-note-save-btn:hover{background:#218838}.patient-note-cancel-btn{background:#e9ecef;color:#495057}.patient-note-cancel-btn:hover{background:#dee2e6}.patient-note-display{background:none;border:none;color:#888;cursor:pointer;font-size:.85rem;overflow:hidden;padding:2px 0;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.patient-note-display:hover{color:#495057}.patient-detail-header{margin-bottom:16px}.patient-detail-name-row{align-items:center;display:flex;gap:12px}.patient-detail-name-row h3{color:#2c3e50;font-size:1.15rem;margin:0}.assessment-positive-summary{background:#fff3cd;border-radius:6px;color:#856404;font-size:.82rem;line-height:1.5;margin-top:4px;padding:6px 10px;white-space:pre-line}.assessment-list-header{flex:1 1;min-width:0}.assessment-list-actions{align-items:center;display:flex;flex-shrink:0;gap:6px}.patient-form-item{align-items:flex-start;border-bottom:1px solid #f0f0f0;display:flex;gap:10px;justify-content:space-between;padding:10px 0}.patient-form-item:last-child{border-bottom:none}.admin-panel{padding:0}.admin-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.admin-header h2{color:#2c3e50;font-size:1.3rem;margin:0}.admin-stats{display:flex;flex-wrap:wrap;gap:16px}.stat-item{background:#f0f4f8;border-radius:20px;color:#555;font-size:.88rem;padding:6px 14px}.stat-item strong{color:#007bff;margin-left:4px}.admin-message{animation:fadeIn .3s ease;background:#d4edda;border-radius:8px;color:#155724;font-size:.9rem;margin-bottom:16px;padding:10px 16px}.admin-tabs{border:1px solid #dee2e6;border-radius:10px;display:flex;gap:0;margin-bottom:20px;overflow:hidden}.admin-tab{background:#f8f9fa;border:none;color:#555;cursor:pointer;flex:1 1;font-size:.92rem;font-weight:500;padding:12px 16px;transition:all .2s}.admin-tab:not(:last-child){border-right:1px solid #dee2e6}.admin-tab.active{background:#007bff;color:#fff}.admin-tab:hover:not(.active){background:#e9ecef}.admin-section{animation:fadeIn .3s ease}.admin-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.admin-section-header h3{color:#2c3e50;font-size:1.1rem;margin:0}.admin-btn-refresh{background:#fff;border:1px solid #dee2e6;border-radius:6px;color:#555;cursor:pointer;font-size:.85rem;padding:6px 14px}.admin-btn-refresh:hover{background:#f8f9fa}.admin-btn-primary{background:#007bff;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 18px;transition:background .2s}.admin-btn-primary:hover{background:#0056b3}.admin-btn-primary:disabled{background:#a0c4ff;cursor:not-allowed}.admin-btn-small{background:#fff;border:1px solid #007bff;border-radius:4px;color:#007bff;cursor:pointer;font-size:.82rem;padding:4px 10px}.admin-btn-small:hover{background:#007bff;color:#fff}.admin-btn-danger{border-color:#dc3545;color:#dc3545}.admin-btn-danger:hover{background:#dc3545;color:#fff}.admin-btn-success{background:#e8f5e9;border-color:#28a745;color:#28a745}.admin-btn-success:hover{background:#28a745;color:#fff}.role-badge{border-radius:4px;display:inline-block;font-size:12px;font-weight:500;padding:2px 8px}.role-badge.role-doctor{background:#e3f2fd;color:#1565c0}.role-badge.role-family_doctor{background:#f3e5f5;color:#7b1fa2}.admin-table-wrapper{border:1px solid #e9ecef;border-radius:8px;overflow-x:auto}.admin-table{border-collapse:collapse;font-size:.88rem;width:100%}.admin-table th{background:#f8f9fa;border-bottom:2px solid #dee2e6;color:#495057;font-weight:600;padding:10px 14px;text-align:left;white-space:nowrap}.admin-table td{border-bottom:1px solid #f0f0f0;color:#333;padding:10px 14px}.admin-table tbody tr:hover{background:#f8f9fa}.admin-table select{border:1px solid #007bff;border-radius:4px;font-size:.85rem;padding:4px 8px}.level-badge{border-radius:12px;display:inline-block;font-size:.78rem;font-weight:600;letter-spacing:.02em;padding:2px 10px;vertical-align:middle;white-space:nowrap}.level-badge,.level-badge.level-普通医生{background:#e9ecef;color:#495057}.level-badge.level-主治医生{background:#d1ecf1;color:#0c5460}.level-badge.level-副主任医师{background:#cce5ff;color:#004085}.level-badge.level-主任医师{background:#fff3cd;box-shadow:0 0 0 1px #85640426;color:#856404}.level-badge.level-专家{background:linear-gradient(135deg,#ff9a56,#ff6b6b);box-shadow:0 1px 4px #ff6b6b59;color:#fff}.doctor-name-with-level{align-items:center;display:inline-flex;gap:6px}.doctor-name-with-level .level-badge{font-size:.72rem;padding:1px 7px}.admin-empty,.admin-loading{color:#888;font-size:.92rem;padding:32px;text-align:center}.admin-hint{color:#666;font-size:.88rem;margin-bottom:12px}.admin-hint code{background:#f0f0f0;border-radius:3px;font-size:.85rem;padding:2px 6px}.admin-import-form{background:#f8f9fa;border-radius:10px;margin-bottom:20px;padding:18px}.admin-import-textarea{border:1px solid #dee2e6;border-radius:8px;font-family:Courier New,monospace;font-size:.9rem;margin-bottom:12px;padding:12px;resize:vertical;width:100%}.admin-import-textarea:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.admin-import-options{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px}.admin-import-options label{color:#555;display:flex;flex-direction:column;font-size:.88rem;gap:4px}.admin-import-options select{border:1px solid #dee2e6;border-radius:6px;font-size:.88rem;padding:8px 12px}.admin-import-result{background:#d4edda;border-radius:8px;color:#155724;font-size:.88rem;margin-top:12px;padding:12px}.admin-import-errors{color:#721c24;margin-top:8px;padding-left:20px}.admin-import-errors li{margin-bottom:4px}.admin-perm-form{align-items:flex-end;background:#f8f9fa;border-radius:10px;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding:16px}.admin-perm-form label{color:#555;display:flex;flex-direction:column;font-size:.88rem;gap:4px}.admin-perm-form select{border:1px solid #dee2e6;border-radius:6px;font-size:.88rem;min-width:180px;padding:8px 12px}.perm-arrow{color:#007bff;font-size:.9rem;font-weight:600;padding-bottom:6px}.invite-senior-btn{background:#0000;border:1px dashed #007bff;border-radius:4px;color:#007bff;cursor:pointer;display:inline-block;font-size:.82rem;margin-left:12px;padding:3px 10px;transition:all .2s}.invite-senior-btn:hover{background:#007bff;border-style:solid;color:#fff}.invite-modal-overlay{align-items:center;animation:fadeIn .15s ease;background:#0006;display:flex;inset:0;justify-content:center;position:fixed;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.invite-modal{animation:slideUp .2s ease;background:#fff;border-radius:16px;box-shadow:0 16px 48px #0000002e;max-height:75vh;overflow:hidden;width:min(420px,90vw)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.invite-modal-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:18px 20px 14px}.invite-modal-header h3{color:#1a1a1a;font-size:17px;font-weight:600;margin:0}.invite-modal-close{align-items:center;background:#f5f5f5;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:18px;height:32px;justify-content:center;transition:all .15s;width:32px}.invite-modal-close:hover{background:#e8e8e8;color:#333}.invite-modal-body{max-height:55vh;overflow-y:auto;padding:16px 20px 20px}.invite-loading{align-items:center;color:#1a73e8;display:flex;font-size:15px;gap:10px;justify-content:center;padding:32px 0}.invite-loading .spinner{animation:spin .8s linear infinite;border:2px solid #b3d4fc;border-radius:50%;border-top-color:#1a73e8;display:inline-block;height:20px;width:20px}.invite-empty{padding:32px 16px;text-align:center}.invite-empty-icon{font-size:40px;margin-bottom:12px}.invite-empty p{color:#555;font-size:15px;font-weight:500;margin:0}.invite-empty-hint{color:#999!important;font-size:13px!important;font-weight:400!important;margin-top:6px!important}.invite-doctor-list{display:flex;flex-direction:column;gap:10px}.invite-doctor-item{align-items:center;background:#f8fafc;border:1px solid #e8ecf0;border-radius:12px;display:flex;justify-content:space-between;padding:14px 16px;transition:all .15s}.invite-doctor-item:hover{background:#eef4ff;border-color:#b3d4fc}.invite-doctor-info{display:flex;flex-direction:column;gap:3px}.invite-doctor-info strong{color:#1a1a1a;font-size:15px}.invite-doctor-info span{color:#888;font-size:13px}.invite-btn{background:#1a73e8;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:7px 16px;transition:background .15s;white-space:nowrap}.invite-btn:hover{background:#1557b0}@media (max-width:768px){.admin-tabs{flex-direction:column}.admin-tab:not(:last-child){border-bottom:1px solid #dee2e6;border-right:none}.admin-perm-form{align-items:stretch;flex-direction:column}.perm-arrow{text-align:center}.admin-import-options{align-items:stretch;flex-direction:column}.admin-table{font-size:.8rem}.admin-table td,.admin-table th{padding:8px 10px}}.admin-message-error{background:#f8d7da;color:#721c24}.admin-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.admin-toolbar-right{display:flex;gap:8px;margin-left:auto}.admin-search{border:1px solid #dee2e6;border-radius:8px;font-size:.88rem;min-width:180px;padding:8px 14px}.admin-search:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.admin-input{border:1px solid #dee2e6;border-radius:6px;font-size:.88rem;padding:8px 12px;width:100%}.admin-input:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.admin-input-sm{border:1px solid #007bff;border-radius:4px;font-size:.85rem;padding:4px 8px;width:100%}.admin-add-form{background:#f8f9fa;border:1px solid #e9ecef;border-radius:10px;margin-bottom:20px;padding:18px}.admin-form-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.admin-link{color:#007bff;cursor:pointer;font-weight:500}.admin-link:hover{text-decoration:underline}.admin-actions{display:flex;gap:6px;white-space:nowrap}.admin-text-muted{color:#888;font-size:.82rem}.admin-modal-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.admin-modal{background:#fff;border-radius:12px;box-shadow:0 8px 30px #00000026;max-height:80vh;overflow-y:auto;padding:24px;width:min(460px,95vw)}.admin-modal-lg{width:min(720px,95vw)}.admin-modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.admin-modal-header h3{color:#2c3e50;font-size:1.1rem;margin:0}.admin-modal-close{background:none;border:none;border-radius:4px;color:#888;cursor:pointer;font-size:1.2rem;padding:4px 8px}.admin-modal-close:hover{background:#f0f0f0;color:#333}.admin-modal-actions{display:flex;gap:10px;margin-top:16px}.admin-detail-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:12px}.admin-detail-item{display:flex;flex-direction:column;gap:2px}.admin-detail-label{color:#888;font-size:.82rem;font-weight:500}.admin-detail-submissions{display:flex;flex-direction:column;gap:10px;max-height:400px;overflow-y:auto}.admin-submission-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:12px}.admin-submission-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.admin-submission-type{color:#007bff;font-size:.88rem;font-weight:600}.admin-submission-time{color:#888;font-size:.8rem}.admin-submission-pre{background:#f0f4f8;border-radius:6px;color:#333;font-family:Courier New,monospace;font-size:.82rem;margin:0;max-height:300px;overflow-y:auto;padding:10px 14px;white-space:pre-wrap;word-break:break-all}.admin-row-expanded>td{border-bottom-color:#0000}.admin-edit-textarea{border:1px solid #dee2e6;border-radius:6px;font-family:Courier New,monospace;font-size:.85rem;padding:10px;resize:vertical;width:100%}.admin-edit-textarea:focus{border-color:#007bff;outline:none}.admin-edit-actions{display:flex;gap:8px;margin-top:8px}.admin-pagination{align-items:center;color:#555;display:flex;font-size:.88rem;gap:16px;justify-content:center;margin-top:16px;padding:12px 0}.admin-perm-row{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px}.admin-perm-row label{color:#555;display:flex;flex-direction:column;font-size:.88rem;gap:4px}.admin-perm-row select{border:1px solid #dee2e6;border-radius:6px;font-size:.88rem;min-width:180px;padding:8px 12px}@media (max-width:768px){.admin-toolbar{align-items:stretch;flex-direction:column}.admin-toolbar-right{margin-left:0}.admin-search{min-width:auto}.admin-form-grid{grid-template-columns:1fr}.admin-detail-grid{grid-template-columns:1fr 1fr}.admin-actions{flex-direction:column;gap:4px}.admin-perm-row{align-items:stretch;flex-direction:column}.admin-modal-lg{width:95vw}.admin-pagination{gap:8px}}.feedback-fab{align-items:center;background:linear-gradient(135deg,#1a73e8,#4a90d9);border:none;border-radius:50%;bottom:80px;box-shadow:0 4px 16px #1a73e859;color:#fff;cursor:pointer;display:flex;font-size:22px;height:50px;justify-content:center;position:fixed;right:20px;transition:all .2s;width:50px;z-index:9990}.feedback-fab:hover{box-shadow:0 6px 24px #1a73e873;transform:scale(1.08)}.feedback-fab:active{transform:scale(.95)}.feedback-overlay{align-items:center;animation:fadeIn .15s ease;background:#0006;display:flex;inset:0;justify-content:center;position:fixed;z-index:10000}.feedback-modal{animation:slideUp .2s ease;background:#fff;border-radius:16px;box-shadow:0 16px 48px #0000002e;display:flex;flex-direction:column;max-height:80vh;overflow:hidden;width:min(440px,92vw)}.feedback-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:18px 20px 14px}.feedback-header h3{color:#1a1a1a;font-size:17px;margin:0}.feedback-close{align-items:center;background:#f5f5f5;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:18px;height:32px;justify-content:center;transition:all .15s;width:32px}.feedback-close:hover{background:#e8e8e8;color:#333}.feedback-body{flex:1 1;overflow-y:auto;padding:16px 20px 20px}.feedback-textarea{border:1.5px solid #e0e0e0;border-radius:10px;box-sizing:border-box;font-family:inherit;font-size:15px;padding:12px 14px;resize:vertical;transition:border-color .15s;width:100%}.feedback-textarea:focus{border-color:#1a73e8;outline:none}.feedback-char-count{color:#aaa;font-size:12px;margin-top:4px;text-align:right}.feedback-image-section{margin-top:12px}.feedback-image-preview{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.feedback-image-item{border:1px solid #e8e8e8;border-radius:8px;height:72px;overflow:hidden;position:relative;width:72px}.feedback-image-item img{height:100%;object-fit:cover;width:100%}.feedback-image-remove{align-items:center;background:#0000008c;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:12px;height:20px;justify-content:center;position:absolute;right:2px;top:2px;width:20px}.feedback-error{background:#fef0f0;border-radius:8px;color:#c54040;font-size:13px;margin-top:10px;padding:8px 12px}.feedback-actions{display:flex;gap:10px;justify-content:space-between;margin-top:16px}.feedback-btn{border:none;border-radius:10px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .15s}.feedback-btn-primary{background:#1a73e8;color:#fff}.feedback-btn-primary:hover{background:#1557b0}.feedback-btn-primary:disabled{cursor:not-allowed;opacity:.5}.feedback-btn-outline{background:#f5f5f5;border:1px solid #e0e0e0;color:#333}.feedback-btn-outline:hover{background:#eee}.feedback-success{padding:20px 0;text-align:center}.feedback-success-icon{font-size:48px;margin-bottom:12px}.feedback-success h4{color:#333;font-size:17px;margin:0 0 8px}.feedback-success p{color:#888;font-size:14px;margin:0}.feedback-success-actions{display:flex;gap:10px;justify-content:center;margin-top:20px}.feedback-history-item{border:1px solid #e8ecf0;border-radius:10px;margin-bottom:10px;padding:14px}.feedback-history-meta{align-items:center;display:flex;gap:10px;margin-bottom:8px}.feedback-status{border-radius:12px;display:inline-block;font-size:12px;font-weight:500;padding:2px 10px}.feedback-status-pending{background:#fff3cd;color:#856404}.feedback-status-replied{background:#d4edda;color:#155724}.feedback-history-date{color:#999;font-size:12px}.feedback-history-content{color:#333;font-size:14px;line-height:1.6}.feedback-history-images{display:flex;gap:6px;margin-top:8px}.feedback-thumb{border:1px solid #eee;border-radius:6px;height:56px;object-fit:cover;width:56px}.feedback-reply-box{background:#f0f7ff;border-left:3px solid #1a73e8;border-radius:8px;margin-top:10px;padding:10px 12px}.feedback-reply-box strong{color:#1a73e8;font-size:13px}.feedback-reply-box p{color:#333;font-size:14px;margin:4px 0 0}.feedback-reply-date{color:#999;display:block;font-size:12px;margin-top:4px}.feedback-empty{color:#999;padding:24px;text-align:center}.admin-feedback-list{display:flex;flex-direction:column;gap:14px}.admin-feedback-card{background:#fff;border:1px solid #e8ecf0;border-radius:12px;padding:16px;transition:box-shadow .15s}.admin-feedback-card:hover{box-shadow:0 2px 12px #0000000f}.admin-feedback-pending{border-left:4px solid #ffc107}.admin-feedback-replied{border-left:4px solid #28a745}.admin-feedback-header{flex-wrap:wrap;justify-content:space-between;margin-bottom:10px}.admin-feedback-header,.admin-feedback-user{align-items:center;display:flex;gap:8px}.admin-feedback-role{font-size:13px}.admin-feedback-meta{align-items:center;display:flex;gap:10px}.admin-feedback-date{color:#999;font-size:12px}.admin-feedback-content{color:#333;font-size:14px;line-height:1.6;margin-bottom:10px;white-space:pre-wrap}.admin-feedback-images{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.admin-feedback-thumb{border:1px solid #eee;border-radius:8px;cursor:pointer;height:80px;object-fit:cover;transition:opacity .15s;width:80px}.admin-feedback-thumb:hover{opacity:.8}.admin-feedback-reply-display{background:#f0f7ff;border-left:3px solid #1a73e8;border-radius:8px;font-size:14px;margin-bottom:10px;padding:10px 12px}.admin-feedback-reply-date{color:#999;display:block;font-size:12px;margin-top:4px}.admin-feedback-actions{align-items:flex-start;display:flex;gap:8px}.admin-feedback-reply-form{flex:1 1}.admin-feedback-reply-input{border:1.5px solid #e0e0e0;border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:14px;padding:10px 12px;resize:vertical;width:100%}.admin-feedback-reply-input:focus{border-color:#1a73e8;outline:none}.searchable-select{position:relative;width:100%}.searchable-select-input-wrap{align-items:center;display:flex;position:relative}.searchable-select-input{background:#fff;border:1.5px solid #e0e0e0;border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:14px;padding:10px 60px 10px 12px;transition:border-color .2s;width:100%}.searchable-select-input:focus{border-color:#1a73e8;outline:none}.searchable-select-clear{background:none;border:none;color:#999;cursor:pointer;font-size:18px;line-height:1;padding:0 4px;position:absolute;right:28px}.searchable-select-clear:hover{color:#333}.searchable-select-arrow{color:#999;cursor:pointer;font-size:14px;position:absolute;right:10px;-webkit-user-select:none;user-select:none}.searchable-select-dropdown{background:#fff;border:1.5px solid #e0e0e0;border-radius:0 0 8px 8px;border-top:none;box-shadow:0 4px 12px #0000001a;left:0;max-height:260px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:100}.searchable-select-group-label{background:#f5f5f5;color:#888;font-size:12px;font-weight:600;padding:6px 12px;position:-webkit-sticky;position:sticky;top:0}.searchable-select-option{align-items:center;cursor:pointer;display:flex;font-size:14px;justify-content:space-between;padding:8px 12px;transition:background .15s}.searchable-select-option:hover{background:#e8f0fe}.searchable-select-option.selected{background:#d2e3fc;font-weight:600}.searchable-select-option-hint{color:#999;font-size:12px;margin-left:8px}.searchable-select-empty{color:#999;font-size:13px;padding:12px;text-align:center}.invite-code-card .invite-code-body{align-items:center;display:flex;flex-direction:column;gap:12px;padding:16px 0 8px}.invite-code-display{align-items:center;background:#f0f7ff;border:1.5px dashed #1a73e8;border-radius:10px;display:flex;gap:16px;padding:12px 20px}.invite-code-value{color:#1a73e8;font-family:Courier New,Courier,monospace;font-size:28px;font-weight:700;letter-spacing:4px}.invite-code-timer{color:#e67700;font-size:13px;font-weight:600;white-space:nowrap}.form-hint{color:#888;font-size:12px;margin-top:4px}
/*# sourceMappingURL=main.0d800479.css.map*/