.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-box{background:var(--surface);border-radius:var(--radius);padding:40px;width:100%;max-width:420px;box-shadow:var(--shadow-md);border:1px solid var(--border)}.login-header{text-align:center;margin-bottom:32px}.login-header h1{font-size:28px;font-weight:700;color:#1e293b}.login-header p{color:#64748b;margin-top:6px}.login-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-weight:500;color:#374151}.error-msg{color:#ef4444;font-size:13px;background:#fef2f2;padding:8px 12px;border-radius:6px}.login-form .btn-primary{margin-top:8px;padding:12px;font-size:15px}.login-tabs{display:flex;border-bottom:2px solid #e2e8f0;margin-bottom:24px}.login-tab{flex:1;padding:10px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;font-size:15px;font-weight:500;color:#94a3b8;cursor:pointer;transition:all .15s;border-radius:0}.login-tab.active{color:#2563eb;border-bottom-color:#2563eb;font-weight:600}.pw-conditions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}.pw-ok{font-size:12px;color:#16a34a;font-weight:500}.pw-fail{font-size:12px;color:#94a3b8}.pw-match{margin-top:4px}.license-upload{border:2px dashed #cbd5e1;border-radius:10px;padding:20px;cursor:pointer;transition:border-color .15s,background .15s;min-height:110px;display:flex;align-items:center;justify-content:center}.license-upload:hover{border-color:#2563eb;background:#f0f6ff}.license-placeholder{display:flex;flex-direction:column;align-items:center;gap:6px;color:#64748b;font-size:14px}.license-icon{font-size:28px}.license-hint{font-size:12px;color:#94a3b8}.license-preview{max-width:100%;max-height:200px;border-radius:6px;object-fit:contain}[data-theme=dark] .login-box{background:var(--surface)}[data-theme=dark] .login-header h1{color:var(--text)}[data-theme=dark] .login-header p,[data-theme=dark] .form-group label{color:var(--text-muted)}[data-theme=dark] .login-tabs{border-color:var(--border)}[data-theme=dark] .login-tab{color:var(--text-muted)}[data-theme=dark] .login-tab.active{color:var(--primary);border-bottom-color:var(--primary)}[data-theme=dark] .error-msg{background:#2d0b0b;color:#fca5a5}[data-theme=dark] .license-upload{border-color:var(--border)}[data-theme=dark] .license-upload:hover{background:#1a2233;border-color:var(--primary)}[data-theme=dark] .license-placeholder{color:var(--text-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-box{background:var(--surface);border-radius:12px;width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.modal-wide{max-width:780px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.modal-header h2{font-size:18px;font-weight:700}.modal-close{background:none;font-size:22px;color:var(--text-muted);line-height:1;padding:4px 8px;border-radius:var(--radius)}.modal-close:hover{background:var(--bg)}.modal-body{overflow-y:auto;padding:20px 24px 24px;display:flex;flex-direction:column;gap:16px}.calc-row{display:flex;flex-direction:column;gap:6px}.calc-row label{font-size:13px;font-weight:600;color:var(--text-muted)}.optional{font-weight:400;font-size:12px}.input-hint{font-size:11px;color:var(--text-muted);margin-top:2px}.inline-inputs{display:flex;align-items:center;gap:8px}.drug-toggle{display:flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;width:fit-content}.drug-toggle button{padding:6px 16px;background:var(--surface);font-size:13px;color:var(--text-muted)}.drug-toggle button.active{background:var(--primary);color:#fff;font-weight:600}.drug-preset-grid{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);padding:6px}.drug-preset-btn{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:6px;background:none;text-align:left;gap:8px;transition:background .1s}.drug-preset-btn:hover{background:var(--bg)}.drug-preset-btn.selected{background:#eff6ff;outline:2px solid var(--primary)}.preset-name{font-size:13px;font-weight:600;color:var(--text)}.preset-dose{font-size:12px;color:var(--text-muted);white-space:nowrap}.custom-drug-inputs{display:flex;flex-direction:column;gap:8px}.time-btn{padding:6px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:13px;color:var(--text-muted)}.time-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:600}.calc-result{background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;padding:16px}.calc-result h3{font-size:15px;font-weight:700;margin-bottom:12px;color:#0369a1}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.result-item{display:flex;flex-direction:column;gap:2px;background:var(--surface);border-radius:8px;padding:10px 12px;border:1px solid #e0f2fe}.result-item.highlight{background:#0369a1;border-color:#0369a1}.result-item.highlight .result-label,.result-item.highlight .result-value{color:#fff}.result-label{font-size:11px;color:var(--text-muted);font-weight:500}.result-value{font-size:18px;font-weight:700;color:#0369a1}.result-disclaimer{font-size:11px;color:#64748b;font-style:italic}.emg-layout{flex-direction:row!important;gap:0!important;padding:0!important;overflow:hidden}.emg-sidebar{width:180px;flex-shrink:0;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:12px 8px;gap:4px;overflow-y:auto}.emg-tab{text-align:left;padding:10px 12px;border-radius:8px;font-size:13px;font-weight:500;background:none;color:var(--text);transition:background .1s}.emg-tab:hover{background:var(--bg)}.emg-tab.active{font-weight:700}.emg-red.active{background:#fff1f2;color:#b91c1c}.emg-orange.active{background:#fff7ed;color:#c2410c}.emg-purple.active{background:#faf5ff;color:#7e22ce}.emg-yellow.active{background:#fefce8;color:#92400e}.emg-blue.active{background:#eff6ff;color:#1d4ed8}.emg-content{flex:1;padding:20px 24px;overflow-y:auto}.emg-title{font-size:17px;font-weight:700;margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid var(--border)}.emg-red .emg-title,h3.emg-red{color:#b91c1c}.emg-orange .emg-title,h3.emg-orange{color:#c2410c}.emg-purple .emg-title,h3.emg-purple{color:#7e22ce}.emg-yellow .emg-title,h3.emg-yellow{color:#92400e}.emg-blue .emg-title,h3.emg-blue{color:#1d4ed8}.emg-steps-new{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.emg-section-header{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:var(--bg);border-radius:6px;padding:5px 10px;margin-top:10px;margin-bottom:2px}.emg-step{font-size:14px;line-height:1.6;padding:4px 10px;border-left:3px solid var(--border)}.emg-sub{font-size:13px;line-height:1.6;padding:2px 10px 2px 24px;color:#475569;position:relative}.emg-sub:before{content:"–";position:absolute;left:12px;color:var(--text-muted)}.emg-warn{font-size:12px;color:#92400e;background:#fef3c7;border-radius:6px;padding:5px 10px;margin:2px 0}.quick-tools{margin-top:32px}.quick-tools h3{font-size:15px;font-weight:600;margin-bottom:12px;color:var(--text-muted)}.quick-tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quick-tool-btn{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}.quick-tool-btn:hover{border-color:var(--primary);box-shadow:var(--shadow)}.quick-tool-icon{font-size:24px;margin-bottom:8px;display:block}.quick-tool-btn h4{font-size:14px;font-weight:600;margin-bottom:4px}.quick-tool-btn p{font-size:12px;color:var(--text-muted)}[data-theme=dark] .drug-preset-btn.selected{background:#1e3051;outline-color:var(--primary)}[data-theme=dark] .calc-result{background:#0d2137;border-color:#1d4a6b}[data-theme=dark] .calc-result h3{color:#38bdf8}[data-theme=dark] .result-item{border-color:#1d4a6b}[data-theme=dark] .result-value{color:#38bdf8}[data-theme=dark] .result-disclaimer{color:var(--text-muted)}[data-theme=dark] .emg-red.active{background:#2c1012;color:#fca5a5}[data-theme=dark] .emg-orange.active{background:#2c1a08;color:#fdba74}[data-theme=dark] .emg-purple.active{background:#1e1030;color:#d8b4fe}[data-theme=dark] .emg-yellow.active{background:#2a2008;color:#fde68a}[data-theme=dark] .emg-blue.active{background:#0d1f3c;color:#93c5fd}[data-theme=dark] .emg-sub{color:var(--text-muted)}[data-theme=dark] .emg-warn{background:#2d1f02;color:#fbbf24}.dashboard{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.dashboard-header{background:var(--header-bg);border-bottom:1px solid var(--header-border);padding:0 24px;height:60px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow);flex-shrink:0}.dashboard-header h1{font-size:18px;font-weight:700;color:var(--text)}.header-right{display:flex;align-items:center;gap:10px;color:var(--text-muted)}.btn-rag-link{background:none;color:var(--primary);border:1px solid var(--primary);padding:6px 14px;border-radius:var(--radius);font-size:13px;cursor:pointer;transition:all .15s}.btn-rag-link:hover{background:var(--surface-2)}.btn-logout{background:none;color:var(--text-muted);border:1px solid var(--border);padding:6px 14px;border-radius:var(--radius);font-size:13px;transition:all .15s}.btn-logout:hover{background:var(--surface-2);color:var(--text)}.btn-settings{background:none;color:var(--text-muted);border:1px solid var(--border);padding:6px 10px;border-radius:var(--radius);font-size:14px;cursor:pointer;transition:all .15s;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.btn-settings:hover{background:var(--surface-2);color:var(--text)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}.empty-state-title{font-size:16px;font-weight:600;color:var(--text);margin-bottom:8px}.empty-state-desc{font-size:14px;margin-bottom:24px}.dashboard-main{padding:32px;max-width:900px;margin:0 auto;width:100%}.dashboard-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.dashboard-top h2{font-size:18px;font-weight:600;color:var(--text)}.dashboard-top-btns{display:flex;gap:8px}.btn-quick-ddx{border-color:#e05555;color:#c0392b}.btn-quick-ddx:hover{background:#fff0f0;border-color:#c0392b}.btn-quick-lab{border-color:#4a90d9;color:#2471a3}.btn-quick-lab:hover{background:#f0f6ff;border-color:#2471a3}.btn-quick-protocol{border-color:#27ae60;color:#1e8449}.btn-quick-protocol:hover{background:#f0fff4;border-color:#1e8449}.btn-quick-scholar{background:#5b6ee8;border-color:#4a5dd4;color:#fff!important;font-weight:600}.btn-quick-scholar:hover,[data-theme=dark] .btn-quick-scholar{background:#4a5dd4;border-color:#3a4dc4;color:#fff!important}[data-theme=dark] .btn-quick-scholar:hover{background:#3a4dc4}.quick-launcher{display:flex;align-items:center;gap:10px;margin-bottom:24px}.quick-launcher-label{font-size:13px;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.quick-launcher-btns{display:flex;gap:8px;flex-wrap:wrap}[data-theme=dark] .btn-quick-ddx{color:#f08080;border-color:#8b3a3a}[data-theme=dark] .btn-quick-ddx:hover{background:#2a1a1a}[data-theme=dark] .btn-quick-lab{color:#7ab3e8;border-color:#2e5f8a}[data-theme=dark] .btn-quick-lab:hover{background:#1a1f2a}[data-theme=dark] .btn-quick-protocol{color:#6dbe8d;border-color:#1f6b3a}[data-theme=dark] .btn-quick-protocol:hover{background:#1a2a1f}.btn-quick-general{border-color:#aaa;color:#555}.btn-quick-general:hover{background:#f5f5f5;border-color:#888}[data-theme=dark] .btn-quick-general{color:#bbb;border-color:#555}[data-theme=dark] .btn-quick-general:hover{background:#2a2a2a}@media (max-width: 600px){.quick-launcher{flex-direction:column;align-items:flex-start}.quick-launcher-btns{display:grid;grid-template-columns:repeat(2,1fr);width:100%}.btn-quick-preset{text-align:center;font-size:.82rem;padding:10px 6px}}.session-mode-badge{display:inline-block;margin-right:6px;font-size:11px;font-weight:600;padding:2px 7px;border-radius:10px;background:var(--surface-2, #f0f0f0);color:var(--text-muted);border:1px solid var(--border);vertical-align:middle;line-height:1.6}.btn-new-session{background:var(--primary);color:#fff;padding:8px 18px;border-radius:var(--radius);font-size:14px;font-weight:600;transition:background .15s}.btn-new-session:hover{background:var(--primary-hover)}.dashboard-controls{display:flex;gap:10px;margin-bottom:16px}.search-input{flex:1;padding:9px 14px;border-radius:var(--radius);border:1px solid var(--input-border);font-size:14px;background:var(--input-bg);color:var(--text)}.search-input:focus{border-color:var(--primary);outline:none}.sort-select{width:auto;padding:9px 12px;border-radius:var(--radius);border:1px solid var(--input-border);font-size:14px;background:var(--input-bg);color:var(--text);cursor:pointer}.loading-text{color:var(--text-muted);text-align:center;padding:48px}.empty-state{text-align:center;padding:64px;color:var(--text-muted)}.empty-state p:first-child{font-size:16px;margin-bottom:8px}.session-list{display:flex;flex-direction:column;gap:10px}.session-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:border-color .15s,box-shadow .15s}.session-card:hover{border-color:var(--primary);box-shadow:var(--shadow)}.session-card-content h3{font-size:15px;font-weight:600;margin-bottom:4px;color:var(--text)}.session-info{color:var(--text-muted);font-size:13px}.session-date{color:var(--text-muted);font-size:12px;margin-top:4px}.btn-delete{background:none;color:var(--text-muted);border:1px solid var(--border);padding:6px 12px;border-radius:var(--radius);font-size:13px;flex-shrink:0;transition:all .15s}.btn-delete:hover{color:var(--danger);border-color:var(--danger)}.stats-row{display:flex;gap:14px;margin-bottom:24px}.stat-card{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px 24px;display:flex;flex-direction:column;align-items:center;gap:6px}.stat-value{font-size:30px;font-weight:700;color:var(--primary)}.stat-label{font-size:13px;color:var(--text-muted);font-weight:500}.view-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:2px solid var(--border)}.view-tab{background:none;border:none;padding:8px 16px;font-size:14px;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;border-radius:0;transition:color .15s}.view-tab:hover{color:var(--text)}.view-tab.active{color:var(--primary);font-weight:600;border-bottom-color:var(--primary)}.patient-group-list{display:flex;flex-direction:column;gap:10px}.patient-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.patient-group-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:none;cursor:pointer;text-align:left;transition:background .15s}.patient-group-header:hover{background:var(--surface-2)}.patient-group-info{display:flex;align-items:center;gap:10px}.patient-name{font-size:15px;font-weight:600;color:var(--text)}.patient-meta{font-size:13px;color:var(--text-muted)}.patient-group-right{display:flex;align-items:center;gap:12px}.patient-visit-count{font-size:13px;color:var(--primary);font-weight:500}.patient-group-chevron{font-size:11px;color:var(--text-muted)}.patient-timeline{border-top:1px solid var(--border);padding:8px 0}.timeline-item{display:flex;align-items:flex-start;gap:12px;padding:10px 20px;cursor:pointer;transition:background .15s}.timeline-item:hover{background:var(--surface-2)}.timeline-dot{width:10px;height:10px;border-radius:50%;background:var(--primary);flex-shrink:0;margin-top:5px}.timeline-content{flex:1;min-width:0}.timeline-meta{display:flex;align-items:center;gap:8px;margin-bottom:2px}.timeline-visit{font-size:11px;font-weight:600;color:#fff;background:var(--primary);padding:1px 6px;border-radius:10px}.timeline-date{font-size:12px;color:var(--text-muted)}.timeline-title{font-size:14px;font-weight:500;color:var(--text);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-cc{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 768px){.dashboard-header{padding:8px 14px;height:auto;min-height:52px;flex-wrap:wrap;gap:6px}.dashboard-header h1{font-size:16px}.user-email{display:none}.header-right{gap:6px}.btn-rag-link,.btn-logout{font-size:12px;padding:5px 10px}}@media (max-width: 600px){.stats-row{gap:10px}.stat-card{padding:14px}.stat-value{font-size:24px}.dashboard-main{padding:20px 16px}}.patient-form{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:20px}.form-section{display:flex;flex-direction:column;gap:8px}.form-section h3{font-size:11px;font-weight:700;color:var(--sidebar-section-title);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.form-row{display:flex;flex-direction:column;gap:4px}.form-row label{font-size:12px;color:var(--sidebar-label);font-weight:500}.form-row.two-col{flex-direction:row;gap:10px}.form-row.two-col>div{flex:1;display:flex;flex-direction:column;gap:4px}.form-row.two-col label{font-size:12px;color:var(--sidebar-label)}.form-section textarea{resize:vertical;min-height:70px}.form-locked-msg{font-size:12px;color:var(--sidebar-muted);text-align:center;padding:8px;background:var(--sidebar-input-bg);border-radius:var(--radius);border:1px dashed var(--sidebar-border)}.soap-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.soap-modal{background:var(--surface);border-radius:12px;width:640px;max-width:92vw;max-height:82vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0003}.soap-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.soap-modal-header h3{font-size:16px;font-weight:600}.soap-modal-actions{display:flex;align-items:center;gap:8px}.btn-soap-copy,.btn-soap-print{font-size:13px;padding:5px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;transition:background .15s}.btn-soap-regen{font-size:13px;padding:5px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;transition:background .15s}.btn-soap-regen:hover:not(:disabled){background:#fef9c3;border-color:#fde047;color:#854d0e}.btn-soap-regen:disabled{opacity:.5;cursor:not-allowed}.btn-soap-copy:hover,.btn-soap-print:hover{background:#e0f2fe;border-color:#7dd3fc;color:#0284c7}.btn-soap-close{font-size:22px;line-height:1;padding:0 6px;background:none;color:var(--text-muted);transition:color .15s}.btn-soap-close:hover{color:var(--text)}.soap-modal-body{overflow-y:auto;padding:20px 24px}.soap-modal-body{font-size:14px;line-height:1.75;color:var(--text)}.soap-modal-body h1,.soap-modal-body h2{font-size:15px;font-weight:700;margin:20px 0 6px;padding-bottom:4px;border-bottom:2px solid var(--border);color:var(--text)}.soap-modal-body h3{font-size:14px;font-weight:600;margin:12px 0 4px}.soap-modal-body p{margin-bottom:6px}.soap-modal-body ul,.soap-modal-body ol{padding-left:20px;margin-bottom:8px}.soap-modal-body li{margin-bottom:3px}.soap-modal-body strong{color:var(--text)}.ai-response{display:flex;flex-direction:column;gap:16px}.rag-sources-section{margin-bottom:8px;border-bottom:1px solid var(--border-color, #e0e0e0);padding-bottom:8px;font-size:.82rem}.rag-sources-empty{display:flex;align-items:center;gap:6px;color:var(--text-muted, #888)}.rag-sources-toggle{display:flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;color:var(--text-muted, #888);font-size:.82rem;padding:0;width:100%;text-align:left}.rag-sources-toggle:hover{color:var(--text-primary, #333)}.rag-sources-icon{flex-shrink:0}.rag-sources-chevron{margin-left:auto;font-size:.7rem}.rag-sources-list{margin-top:8px;display:flex;flex-direction:column;gap:8px}.rag-source-item{background:var(--bg-secondary, #f5f5f5);border-radius:6px;padding:8px 10px}.rag-source-filename{font-weight:600;color:var(--text-secondary, #555);margin-bottom:4px;font-size:.78rem}.rag-source-excerpt{color:var(--text-muted, #888);line-height:1.5;white-space:pre-wrap;font-size:.78rem}[data-theme=dark] .rag-source-item{background:#2a2a2a}[data-theme=dark] .rag-sources-toggle,[data-theme=dark] .rag-sources-empty{color:#777}[data-theme=dark] .rag-sources-toggle:hover,[data-theme=dark] .rag-source-filename{color:#aaa}[data-theme=dark] .rag-source-excerpt{color:#777}.response-section{display:flex;flex-direction:column;gap:8px}.section-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding-bottom:6px;border-bottom:2px solid;margin-bottom:4px}.section-title-ddx{color:#b91c1c;border-color:#fca5a5}.section-title-tests{color:#0369a1;border-color:#7dd3fc}.section-title-treatment{color:#15803d;border-color:#86efac}.section-title-text{color:var(--text-muted);border-color:var(--border)}.ddx-section{display:flex;flex-direction:column;gap:8px}.ddx-card{border-radius:8px;padding:10px 14px;border-left:4px solid}.ddx-high{background:#fff1f2;border-color:#ef4444}.ddx-mid{background:#fffbeb;border-color:#f59e0b}.ddx-low{background:#f8fafc;border-color:#94a3b8}.ddx-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.ddx-emoji{font-size:15px;flex-shrink:0}.ddx-name{font-weight:700;font-size:14px;flex:1}.ddx-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:99px;flex-shrink:0}.ddx-high .ddx-badge{background:#fee2e2;color:#b91c1c}.ddx-mid .ddx-badge{background:#fef3c7;color:#92400e}.ddx-low .ddx-badge{background:#e2e8f0;color:#475569}.ddx-reason{font-size:13px;color:#475569;line-height:1.5;margin-left:23px}[data-theme=dark] .ddx-high{background:#2c1518;border-color:#ef4444}[data-theme=dark] .ddx-mid{background:#2c2008;border-color:#f59e0b}[data-theme=dark] .ddx-low{background:#1a2030;border-color:#64748b}[data-theme=dark] .ddx-high .ddx-badge{background:#7f1d1d;color:#fca5a5}[data-theme=dark] .ddx-mid .ddx-badge{background:#451a03;color:#fde68a}[data-theme=dark] .ddx-low .ddx-badge{background:#1e293b;color:#94a3b8}[data-theme=dark] .ddx-reason{color:var(--text-muted)}.section-markdown{font-size:14px;line-height:1.7;color:var(--text)}.section-markdown p{margin-bottom:6px}.section-markdown ul,.section-markdown ol{padding-left:18px;margin-bottom:8px}.section-markdown li{margin-bottom:4px}.section-markdown strong{color:#1e293b;font-weight:600}[data-theme=dark] .section-markdown strong{color:var(--text)}.section-markdown table{border-collapse:collapse;width:100%;margin:8px 0;font-size:13px}.section-markdown th,.section-markdown td{border:1px solid var(--border);padding:6px 10px;text-align:left}.section-markdown th{background:#f1f5f9;font-weight:600}[data-theme=dark] .section-markdown th{background:var(--surface-2)}.section-markdown hr{border:none;border-top:1px solid var(--border);margin:10px 0}.section-markdown em{color:var(--text-muted);font-size:12px}.section-markdown code{font-family:inherit;font-size:13px;background:var(--surface-2);border:1px solid var(--border);padding:1px 5px;border-radius:4px}.section-markdown pre{font-family:inherit;white-space:pre-wrap;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:12px;font-size:13px}.section-markdown pre code{background:none;border:none;padding:0}.xml-response{display:flex;flex-direction:column;gap:12px}.xml-block{padding:10px 12px;border-radius:6px;border:1px solid var(--border)}.xml-block-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px}.xml-block-content{font-size:14px;line-height:1.6;color:var(--text)}.xml-block-clinical-judgment{border-left:3px solid var(--primary);background:#f0f7ff;border-color:transparent;border-left-color:var(--primary)}.xml-block-clinical-judgment .xml-block-label{color:var(--primary)}.xml-block-watch-out{background:#fff8e1;border-color:#fbbf24}.xml-block-watch-out .xml-block-label{color:#f59e0b}[data-theme=dark] .xml-block-clinical-judgment{background:#1a2d4a;border-left-color:var(--primary)}[data-theme=dark] .xml-block-watch-out{background:#3d3000;border-color:#92710a}[data-theme=dark] .xml-block-watch-out .xml-block-label{color:#fde68a}.session-layout{display:flex;height:100vh;overflow:hidden}.session-layout.general-mode .chat-panel{flex:1}.patient-panel{width:300px;flex-shrink:0;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;overflow:hidden;transition:background .2s}.panel-header{padding:16px 18px;border-bottom:1px solid var(--sidebar-border);display:flex;align-items:center;gap:12px}.panel-header h2{font-size:13px;font-weight:600;color:var(--sidebar-text);letter-spacing:.02em}.btn-back{background:none;color:var(--sidebar-muted);font-size:13px;white-space:nowrap}.btn-back:hover{color:var(--sidebar-text)}.btn-back-inline{background:none;color:var(--text-muted);font-size:13px;white-space:nowrap;flex-shrink:0}.btn-back-inline:hover{color:var(--text)}.patient-panel input,.patient-panel textarea,.patient-panel select{background:var(--sidebar-input-bg);color:var(--sidebar-input-text);border-color:var(--sidebar-input-border)}.patient-panel input:focus,.patient-panel textarea:focus,.patient-panel select:focus{border-color:var(--primary)}.patient-panel input:disabled,.patient-panel textarea:disabled,.patient-panel select:disabled{background:var(--sidebar-disabled-bg);color:var(--sidebar-muted);opacity:.6}.patient-panel input::placeholder,.patient-panel textarea::placeholder{color:var(--sidebar-placeholder)}.chat-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);position:relative}.chat-header{background:var(--header-bg);border-bottom:1px solid var(--header-border);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow);flex-shrink:0}.chat-header-right{display:flex;align-items:center;gap:8px}.model-select{font-size:13px;padding:5px 8px;border-radius:var(--radius);border:1px solid var(--border);color:var(--text);background:var(--input-bg);width:auto;cursor:pointer}.session-title{font-size:15px;font-weight:600;color:var(--text)}.session-title.editable{cursor:pointer;border-radius:6px;padding:2px 6px;margin-left:-6px;display:flex;align-items:center;gap:6px}.session-title.editable:hover{background:var(--surface-2)}.edit-icon{font-size:12px;opacity:0;transition:opacity .15s}.session-title.editable:hover .edit-icon{opacity:1}.title-input{font-size:15px;font-weight:600;border:2px solid var(--primary);border-radius:6px;padding:3px 8px;width:280px;max-width:100%;background:var(--input-bg);color:var(--text)}.saving-indicator{font-size:12px;color:var(--text-muted)}.messages-area{flex:1;overflow-y:auto;padding:24px 20px;display:flex;flex-direction:column;gap:16px}.chat-empty{text-align:center;color:var(--text-muted);padding:48px 24px}.chat-hint{margin-top:8px;font-size:13px;font-style:italic;opacity:.7}.message{display:flex}.message.user{justify-content:flex-end}.message.assistant{justify-content:flex-start}.message-bubble{max-width:78%;padding:12px 16px;border-radius:14px;line-height:1.6}.message.user .message-bubble{background:var(--msg-user-bg);color:#fff;border-bottom-right-radius:4px}.message.assistant .message-bubble{background:var(--msg-assistant-bg);border:1px solid var(--msg-assistant-border);border-bottom-left-radius:4px;box-shadow:var(--shadow);color:var(--text)}.message.assistant .message-bubble h1,.message.assistant .message-bubble h2,.message.assistant .message-bubble h3{margin:12px 0 6px;font-size:14px;color:var(--text)}.message.assistant .message-bubble p{margin-bottom:8px;color:var(--text)}.message.assistant .message-bubble ul,.message.assistant .message-bubble ol{padding-left:20px;margin-bottom:8px}.message.assistant .message-bubble li{margin-bottom:4px}.message.assistant .message-bubble strong{color:var(--text)}.message.assistant .message-bubble table{border-collapse:collapse;width:100%;margin:10px 0;font-size:13px}.message.assistant .message-bubble th,.message.assistant .message-bubble td{border:1px solid var(--border);padding:7px 12px;text-align:left}.message.assistant .message-bubble th{background:var(--surface-2);font-weight:600}.message.assistant .message-bubble tr:hover{background:var(--surface-2)}.message.assistant .message-bubble hr{border:none;border-top:1px solid var(--border);margin:12px 0}.message.assistant .message-bubble blockquote{border-left:3px solid var(--primary);padding-left:12px;color:var(--text-muted);margin:8px 0}.image-attached{font-size:12px;opacity:.8;margin-bottom:4px}.loading-bubble{display:flex;gap:4px;align-items:center;padding:14px 18px}.rag-searching-text{font-size:.85rem;color:var(--text-muted)}.dot{width:8px;height:8px;background:var(--text-muted);border-radius:50%;animation:bounce 1.2s infinite}.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-8px)}}.image-preview-area{display:flex;gap:8px;padding:8px 16px;background:var(--input-area-bg);border-top:1px solid var(--header-border);flex-wrap:wrap}.image-preview-item{position:relative;width:64px;height:64px}.image-preview-item img{width:100%;height:100%;object-fit:cover;border-radius:6px;border:1px solid var(--border)}.image-preview-item button{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--danger);color:#fff;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center}.input-area{background:var(--input-area-bg);border-top:1px solid var(--header-border);padding:12px 16px;display:flex;gap:8px;align-items:flex-end}.btn-attach{background:none;font-size:20px;padding:6px;flex-shrink:0;border-radius:var(--radius);transition:background .15s;color:var(--text-muted)}.btn-attach:hover{background:var(--surface-2)}.input-area textarea{flex:1;resize:none;border-radius:var(--radius);padding:10px 12px;font-size:14px;line-height:1.5;background:var(--input-bg);border-color:var(--input-border);color:var(--text)}.btn-send{background:var(--primary);color:#fff;padding:10px 20px;border-radius:var(--radius);font-weight:600;flex-shrink:0;transition:background .15s}.btn-send:hover:not(:disabled){background:var(--primary-hover)}.btn-send:disabled{opacity:.5;cursor:not-allowed}.btn-scroll-bottom{position:absolute;bottom:90px;right:24px;z-index:10;width:36px;height:36px;border-radius:50%;background:var(--primary);color:#fff;font-size:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000040;transition:background .15s,transform .15s;border:none;cursor:pointer}.btn-scroll-bottom:hover{background:var(--primary-hover);transform:translateY(2px)}.btn-stop{background:var(--danger);color:#fff;padding:10px 20px;border-radius:var(--radius);font-weight:600;flex-shrink:0;transition:background .15s}.btn-stop:hover{background:#b91c1c}.rag-toggle-wrapper{position:relative;display:flex;align-items:stretch}.rag-toggle-wrapper .btn-rag-toggle.active{border-top-right-radius:0;border-bottom-right-radius:0}.btn-book-caret{background:#2563eb;color:#fff;border:1px solid rgba(255,255,255,.3);border-left:none;padding:0 7px;border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius);font-size:10px;cursor:pointer;transition:background .15s;display:flex;align-items:center;justify-content:center}.btn-book-caret:hover{background:#1d4ed8}.book-dropdown{position:absolute;top:calc(100% + 6px);left:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-md);z-index:200;min-width:260px;max-width:320px;max-height:480px;overflow-y:auto;padding:6px 0}.book-dropdown-item{display:flex;align-items:center;justify-content:space-between;height:40px;padding:0 14px;gap:12px}.book-dropdown-item:hover{background:var(--surface-2)}.book-dropdown-item.all-select .book-dropdown-label{font-weight:600;color:var(--text)}.book-dropdown-label{font-size:13px;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-dropdown-divider{border-top:1px solid var(--border);margin:2px 0}.book-dropdown-empty{padding:14px;font-size:13px;color:var(--text-muted);text-align:center}.drag-handle{font-size:14px;color:var(--text-muted);cursor:grab;opacity:.5;flex-shrink:0;-webkit-user-select:none;user-select:none}.book-dropdown-item.dragging{opacity:.4;background:var(--surface-2)}.toggle-switch{position:relative;display:inline-block;width:36px;height:20px;flex-shrink:0;cursor:pointer}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;left:0;right:0;bottom:0;background-color:var(--border);border-radius:20px;transition:background .2s}.toggle-slider:before{content:"";position:absolute;height:14px;width:14px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:transform .2s}.toggle-switch input:checked+.toggle-slider{background-color:var(--primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(16px)}.btn-rag-toggle{font-size:13px;padding:5px 10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:all .15s;white-space:nowrap}.btn-rag-toggle:hover{background:var(--surface-2);color:var(--primary);border-color:var(--primary)}.btn-rag-toggle.active{background:#2563eb;color:#fff;border-color:#2563eb}.btn-soap{font-size:13px;padding:5px 10px;border-radius:var(--radius);border:1px solid var(--border);color:var(--text-muted);background:var(--surface);cursor:pointer;transition:all .15s;white-space:nowrap}.btn-soap:hover:not(:disabled){background:#f0fdf4;color:#16a34a;border-color:#86efac}.btn-soap:disabled{opacity:.4;cursor:not-allowed}.btn-compact{font-size:13px;padding:5px 10px;border-radius:var(--radius);border:1px solid var(--border);color:var(--text-muted);background:var(--surface);cursor:pointer;transition:all .15s;white-space:nowrap}.btn-compact:hover:not(:disabled){background:#e0f2fe;color:#0284c7;border-color:#7dd3fc}.btn-compact:disabled{opacity:.4;cursor:not-allowed}.compact-block{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--surface-2);border:1px dashed var(--border);border-radius:8px;color:var(--text-muted);font-size:13px}.compact-icon{font-size:16px}.chat-error-banner{display:flex;align-items:center;justify-content:space-between;background:#fef2f2;border-top:1px solid #fecaca;padding:10px 16px;font-size:13px;color:#dc2626;gap:12px;flex-shrink:0}[data-theme=dark] .chat-error-banner{background:#2d1515;border-top-color:#7f1d1d;color:#fca5a5}.error-banner-btns{display:flex;gap:8px;flex-shrink:0}.btn-retry{background:#dc2626;color:#fff;padding:4px 12px;border-radius:var(--radius);font-size:13px;font-weight:600;transition:background .15s}.btn-retry:hover{background:#b91c1c}.ai-memory-hint-banner{display:flex;align-items:center;justify-content:space-between;background:#eff6ff;border-bottom:1px solid #bfdbfe;padding:8px 16px;font-size:12px;color:#1d4ed8;flex-shrink:0}.ai-memory-hint-banner button{background:none;border:none;color:#1d4ed8;font-size:16px;cursor:pointer;padding:0 4px;line-height:1}[data-theme=dark] .ai-memory-hint-banner{background:#1e2a3a;border-bottom-color:#3b5278;color:#93c5fd}[data-theme=dark] .ai-memory-hint-banner button{color:#93c5fd}.btn-dismiss{background:none;color:#dc2626;font-size:20px;line-height:1;padding:0 4px}.message-wrapper{display:flex;flex-direction:column}.btn-edit-msg{display:none;font-size:11px;color:var(--text-muted);background:none;padding:2px 8px;border-radius:var(--radius);margin-top:3px;border:1px solid transparent;transition:all .15s;align-self:flex-end}.message-wrapper.user:hover .btn-edit-msg{display:block}.btn-edit-msg:hover{border-color:var(--border);color:var(--text);background:var(--surface)}.message-edit-form{display:flex;flex-direction:column;gap:8px;min-width:180px}.message-edit-form textarea{width:100%;resize:vertical;border-radius:var(--radius);padding:8px;font-size:14px;border:1px solid rgba(255,255,255,.4);background:#ffffff26;color:#fff;line-height:1.5}.message-edit-form textarea::placeholder{color:#fff9}.edit-form-btns{display:flex;gap:6px;justify-content:flex-end}.btn-edit-submit{background:#fff;color:var(--primary);font-size:12px;font-weight:600;padding:4px 12px;border-radius:var(--radius);transition:opacity .15s}.btn-edit-submit:disabled{opacity:.5;cursor:not-allowed}.btn-edit-cancel{background:#fff3;color:#fff;font-size:12px;padding:4px 10px;border-radius:var(--radius);transition:background .15s}.btn-edit-cancel:hover{background:#ffffff4d}.branch-nav{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);padding:3px 8px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);margin-top:4px;align-self:flex-end}.branch-nav button{background:none;font-size:16px;color:var(--primary);padding:0 2px;line-height:1;transition:color .15s}.branch-nav button:disabled{color:var(--border);cursor:not-allowed}.branch-nav button:not(:disabled):hover{color:var(--primary-hover)}.patient-panel-toggle{display:none}.btn-attach-group{display:flex;flex-direction:row;gap:0;align-items:flex-end}@media (max-width: 768px){.session-layout{flex-direction:column}.patient-panel{width:100%;max-height:0;overflow:hidden;border-right:none;border-bottom:none;transition:max-height .3s ease;flex-shrink:0}.patient-panel.open{max-height:60vh;overflow-y:auto;border-bottom:1px solid var(--sidebar-border)}.patient-panel-toggle{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--sidebar-bg);color:var(--sidebar-text);cursor:pointer;font-size:13px;border-bottom:1px solid var(--sidebar-border);flex-shrink:0;-webkit-user-select:none;user-select:none}.panel-toggle-summary{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:8px}.panel-toggle-arrow{font-size:11px;opacity:.7}.chat-header{flex-wrap:wrap;align-items:center;padding:8px 12px;gap:4px}.session-title,.title-input{order:1;flex:1;min-width:0;font-size:13px}.btn-theme-toggle{order:2}.chat-header-right{order:3;width:100%;flex-wrap:wrap;gap:4px}.btn-rag-toggle,.btn-soap,.btn-compact{font-size:12px;padding:5px 8px}.model-select{font-size:12px;padding:4px 6px}.message-bubble{max-width:90%}.btn-attach-group{flex-direction:column;gap:2px}.btn-attach{font-size:18px;padding:4px 6px}}.rag-page{min-height:100vh;background:var(--bg)}.rag-header{background:var(--header-bg);border-bottom:1px solid var(--header-border);padding:16px 32px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between}.rag-header-left h1{font-size:18px;font-weight:700;color:var(--text);margin:6px 0 2px}.rag-subtitle{font-size:13px;color:var(--text-muted);margin:0}.rag-main{max-width:720px;margin:32px auto;padding:0 24px;display:flex;flex-direction:column;gap:20px}.rag-usage{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px}.rag-usage-top{display:flex;justify-content:space-between;font-size:13px;color:var(--text-muted);margin-bottom:8px}.rag-usage-bar{height:6px;background:var(--surface-2);border-radius:3px;overflow:hidden}.rag-usage-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .3s}.rag-admin-badge{background:#fefce8;border:1px solid #fde047;border-radius:var(--radius);padding:10px 16px;font-size:13px;font-weight:600;color:#854d0e}[data-theme=dark] .rag-admin-badge{background:#2d2500;border-color:#854d0e;color:#fde047}.rag-upload-area{background:var(--surface);border:2px dashed var(--border);border-radius:12px;padding:40px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.rag-upload-area:hover{border-color:var(--primary);background:var(--surface-2)}.rag-upload-icon{font-size:36px;margin-bottom:12px}.rag-upload-label{font-size:15px;font-weight:600;color:var(--text);margin:0 0 6px}.rag-upload-hint{font-size:13px;color:var(--text-muted);margin:0}.rag-error{background:#fef2f2;border:1px solid #fca5a5;border-radius:var(--radius);padding:12px 16px;font-size:14px;color:#dc2626;display:flex;align-items:center;justify-content:space-between}[data-theme=dark] .rag-error{background:#2d1515;border-color:#7f1d1d;color:#fca5a5}.rag-error button{background:none;border:none;color:inherit;font-size:16px;cursor:pointer;padding:0 4px}.rag-doc-section h2{font-size:15px;font-weight:600;margin:0 0 12px;color:var(--text)}.rag-loading,.rag-empty{text-align:center;color:var(--text-muted);padding:32px;font-size:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.rag-empty p{margin:4px 0}.rag-doc-list{display:flex;flex-direction:column;gap:8px}.rag-doc-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;display:flex;align-items:center;justify-content:space-between;transition:border-color .15s}.rag-doc-card:hover{border-color:var(--text-muted)}.rag-doc-info{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.rag-doc-icon{font-size:22px;flex-shrink:0}.rag-doc-name{font-size:14px;font-weight:500;color:var(--text);margin:0 0 2px;word-break:break-all}.rag-doc-meta{font-size:12px;color:var(--text-muted);margin:0}.rag-doc-text{flex:1;min-width:0}.rag-doc-name-input{font-size:14px;font-weight:500;padding:3px 8px;border-radius:6px;border:1px solid var(--primary);background:var(--input-bg);color:var(--text);width:100%;margin-bottom:2px}.rag-doc-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.btn-rag-edit{background:none;border:none;font-size:15px;cursor:pointer;padding:4px 6px;border-radius:var(--radius);opacity:.5;transition:opacity .15s}.btn-rag-edit:hover{opacity:1}.btn-rag-cancel{background:none;border:1px solid var(--border);color:var(--text-muted);padding:5px 10px;border-radius:var(--radius);font-size:13px;cursor:pointer;flex-shrink:0}.btn-rag-delete{background:none;border:1px solid var(--border);color:var(--text-muted);padding:5px 12px;border-radius:var(--radius);font-size:13px;cursor:pointer;flex-shrink:0;transition:all .15s}.btn-rag-delete:hover{color:var(--danger);border-color:var(--danger)}.rag-guide{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px}.rag-guide h3{font-size:14px;font-weight:600;color:var(--primary);margin:0 0 10px}.rag-guide ol{margin:0;padding-left:20px;font-size:14px;color:var(--text);line-height:1.8}.scholar-page{min-height:100vh;background:var(--bg)}.btn-back{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:13px;white-space:nowrap;padding:0}.btn-back:hover{color:var(--text)}.scholar-header{background:var(--header-bg);border-bottom:1px solid var(--header-border);padding:16px 32px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between}.scholar-header-left h1{font-size:18px;font-weight:700;color:var(--text);margin:6px 0 2px}.scholar-subtitle{font-size:13px;color:var(--text-muted);margin:0}.scholar-main{max-width:1400px;margin:32px auto;padding:0 24px;display:flex;flex-direction:column;gap:20px}.scholar-search-box{display:flex;gap:8px}.scholar-input{flex:1;padding:10px 14px;font-size:15px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none;transition:border-color .15s}.scholar-input:focus{border-color:var(--primary)}.scholar-input:disabled{opacity:.6;cursor:not-allowed}.scholar-search-btn{padding:10px 20px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .15s}.scholar-stop-btn{background:var(--danger, #ef4444)}.scholar-stop-btn:hover{opacity:.85}.scholar-search-btn:disabled{opacity:.5;cursor:not-allowed}.scholar-loading{display:flex;flex-direction:column;gap:10px;padding:20px 0}.scholar-loading-bar{height:3px;background:var(--border);border-radius:2px;overflow:hidden}.scholar-loading-progress{height:100%;background:var(--primary);border-radius:2px;animation:scholar-progress 2.4s ease-in-out infinite;transform-origin:left}@keyframes scholar-progress{0%{transform:scaleX(0);margin-left:0}50%{transform:scaleX(.6)}to{transform:scaleX(0);margin-left:100%}}.scholar-loading-step{font-size:13px;color:var(--text-muted);text-align:center;margin:0;min-height:18px;transition:opacity .3s}.scholar-error{background:var(--error-bg, #fff0f0);border:1px solid var(--error-border, #ffcccc);border-radius:var(--radius);padding:12px 16px;color:var(--error-text, #cc0000);font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:12px}.scholar-error-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.scholar-error button{background:none;border:none;cursor:pointer;font-size:18px;color:inherit;line-height:1;padding:0 4px;min-width:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center}.scholar-error-retry{font-size:13px!important;font-weight:600;padding:4px 10px!important;min-width:unset!important;border:1px solid currentColor!important;border-radius:var(--radius);white-space:nowrap}.scholar-empty{text-align:center;color:var(--text-muted);padding:32px 0}.scholar-empty p{margin:4px 0}.scholar-empty-hint{font-size:13px;opacity:.8}.scholar-results-count{font-size:13px;color:var(--text-muted);margin:0 0 8px}.scholar-card-list{display:flex;flex-direction:column;gap:16px}.scholar-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;display:flex;flex-direction:column;gap:10px}.scholar-card-title{font-size:15px;font-weight:600;color:var(--text);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}.scholar-card-meta{font-size:13px;color:var(--text-muted);margin:0;line-height:1.5}.scholar-card-authors{font-weight:500}.scholar-card-summary{background:var(--bg);border-left:3px solid var(--primary);border-radius:0 var(--radius) var(--radius) 0;padding:10px 12px}.scholar-card-summary.scholar-summary-failed{border-left-color:var(--text-muted);opacity:.7}.scholar-summary-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--primary);display:block;margin-bottom:4px}.scholar-summary-failed .scholar-summary-label{color:var(--text-muted)}.scholar-card-summary p{font-size:14px;color:var(--text);line-height:1.55;margin:0}.scholar-card-links{display:flex;gap:8px;flex-wrap:wrap}.scholar-link-btn{display:inline-block;padding:6px 14px;font-size:13px;font-weight:500;border-radius:var(--radius);border:1px solid var(--primary);color:var(--primary);text-decoration:none;transition:background .15s,color .15s;min-height:36px;line-height:1.6}.scholar-link-btn:hover{background:var(--primary);color:#fff}.scholar-link-doi{border-color:var(--border);color:var(--text-muted)}.scholar-link-doi:hover{background:var(--border);color:var(--text)}.scholar-results-layout{display:flex;gap:24px;align-items:flex-start}.scholar-col-synthesis{flex:0 0 52%;position:sticky;top:16px;max-height:calc(100vh - 100px);overflow-y:auto}.scholar-col-articles{flex:1;min-width:0}.scholar-results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.scholar-results-header .scholar-results-count{margin:0}.scholar-toggle-all-btn{font-size:12px;font-weight:600;padding:4px 10px;background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.scholar-toggle-all-btn:hover{background:var(--border);color:var(--text)}.scholar-synthesis-block{background:var(--surface);border:1px solid var(--primary);border-radius:var(--radius);padding:18px 20px;margin-bottom:4px}.scholar-synthesis-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--primary);margin:0 0 14px}.scholar-synthesis-body{display:flex;flex-direction:column;gap:0}.scholar-synthesis-header1{display:inline-block;font-size:13px;font-weight:700;color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,transparent);border-radius:6px;padding:3px 10px;margin-top:24px;margin-bottom:8px}.scholar-synthesis-header1:first-child{margin-top:0}.scholar-synthesis-header{font-size:13px;font-weight:700;color:var(--text);letter-spacing:.01em;margin-top:16px;margin-bottom:4px;padding-left:10px;border-left:3px solid var(--primary)}.scholar-synthesis-header:first-child{margin-top:0}.scholar-synthesis-sentence{display:block;font-size:14px;color:var(--text);line-height:1.75;padding:3px 6px 3px 10px;border-radius:4px;transition:background .15s,opacity .15s;cursor:default;margin:0}.scholar-synthesis-sentence.synth-highlighted{background:color-mix(in srgb,var(--primary) 12%,transparent)}.scholar-synthesis-sentence.synth-dimmed{opacity:.35}.scholar-synthesis-list{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}.scholar-synthesis-list li{position:relative;padding:4px 8px 4px 18px;font-size:14px;color:var(--text);line-height:1.75;border-radius:4px;transition:background .15s,opacity .15s;cursor:default}.scholar-synthesis-list li:before{content:"•";color:var(--primary);font-size:15px;position:absolute;left:4px;top:4px;line-height:1.75}.scholar-synthesis-list li.synth-highlighted{background:color-mix(in srgb,var(--primary) 12%,transparent)}.scholar-synthesis-list li.synth-dimmed{opacity:.35}.scholar-dose{background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary);border-radius:3px;padding:0 3px;font-weight:600;font-style:normal}.scholar-drug{color:color-mix(in srgb,var(--primary) 80%,var(--text));font-style:italic;font-size:13px}.scholar-sup{font-size:10px;font-weight:700;color:var(--primary);vertical-align:super;line-height:0;margin-left:1px}.scholar-card.card-highlighted{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 20%,transparent);transition:border-color .15s,box-shadow .15s}.scholar-card.card-dimmed{opacity:.4;transition:opacity .15s}.scholar-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.scholar-card-header:hover .scholar-card-title{color:var(--primary)}.scholar-card-header-info{flex:1;min-width:0}.scholar-card-number{color:var(--primary);font-weight:700;flex-shrink:0}.scholar-accordion-icon{font-size:11px;color:var(--text-muted);flex-shrink:0;margin-top:4px;transition:transform .15s}.scholar-card-body{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border);padding-top:10px;margin-top:2px}.scholar-history{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.scholar-history-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface);border:none;cursor:pointer;font-size:13px;font-weight:600;color:var(--text-muted);transition:background .15s,color .15s}.scholar-history-toggle:hover{background:var(--border);color:var(--text)}.scholar-history-arrow{font-size:10px}.scholar-history-list{border-top:1px solid var(--border);max-height:260px;overflow-y:auto}.scholar-history-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 14px;background:var(--surface);border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;transition:background .15s}.scholar-history-item:last-child{border-bottom:none}.scholar-history-item:hover{background:color-mix(in srgb,var(--primary) 8%,var(--surface))}.scholar-history-query{font-size:14px;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scholar-history-meta{font-size:11px;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.scholar-history-empty{font-size:13px;color:var(--text-muted);padding:12px 14px;margin:0}.scholar-history-delete{flex-shrink:0;background:none;border:none;color:var(--text-muted);font-size:16px;line-height:1;padding:2px 6px;border-radius:4px;cursor:pointer;opacity:0;transition:opacity .15s,color .15s,background .15s}.scholar-history-item:hover .scholar-history-delete{opacity:1}.scholar-history-delete:hover{color:var(--danger, #e53935);background:color-mix(in srgb,var(--danger, #e53935) 10%,transparent)}.scholar-optimized-query{font-size:12px;color:var(--text-muted);padding:6px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.scholar-optimized-query-text{font-family:monospace;color:var(--text);font-size:12px}.scholar-disclaimer{font-size:12px;color:var(--text-muted);padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);line-height:1.5}@media (max-width: 600px){.scholar-results-layout{flex-direction:column}.scholar-col-synthesis{flex:none;position:static;max-height:none;overflow-y:visible}.scholar-header{padding:12px 16px}.scholar-main{margin:20px auto;padding:0 16px}.scholar-search-box{flex-direction:column}.scholar-search-btn{width:100%;padding:12px}.scholar-card-title{font-size:14px}.scholar-link-btn{flex:1;text-align:center}}.settings-page{min-height:100vh;background:var(--bg)}.settings-header{height:60px;background:var(--header-bg);border-bottom:1px solid var(--header-border);padding:0 24px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow);flex-shrink:0}.settings-header h1{font-size:18px;font-weight:700;color:var(--text)}.settings-header-right{display:flex;align-items:center;gap:10px}.btn-back-settings{background:none;border:none;color:var(--text-muted);font-size:13px;cursor:pointer;padding:6px 10px;border-radius:var(--radius);transition:color .15s}.btn-back-settings:hover{color:var(--text)}.settings-main{max-width:640px;margin:32px auto;padding:0 24px}.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:16px}.settings-section-title{font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:16px}.settings-field{margin-bottom:12px}.settings-field:last-child{margin-bottom:0}.settings-label{font-size:13px;color:var(--text-muted);margin-bottom:4px}.settings-value{font-size:14px;color:var(--text)}.settings-memory-desc{font-size:13px;color:var(--text-muted);margin-bottom:12px}.ai-memory-textarea{width:100%;min-height:160px;resize:vertical;margin-bottom:0}.ai-memory-counter{font-size:12px;color:var(--text-muted);text-align:right;margin-top:4px;margin-bottom:12px}.settings-account-btns{display:flex;gap:10px;flex-wrap:wrap}.btn-danger{background:none;color:var(--danger);border:1px solid var(--danger);padding:10px 20px;border-radius:var(--radius);font-weight:600;cursor:pointer;transition:all .15s;font-size:14px}.btn-danger:hover{background:#ef444414}@media (max-width: 768px){.settings-main{padding:16px;margin:16px auto}.ai-memory-textarea{min-height:120px}.settings-account-btns{flex-direction:column}.settings-account-btns .btn-secondary,.settings-account-btns .btn-danger{width:100%}}.scholar-loading-banner{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;background:var(--surface, #fff);border:1px solid var(--primary, #4f8ef7);border-radius:999px;padding:8px 18px;font-size:13px;font-weight:600;color:var(--text, #222);box-shadow:0 4px 16px #0000001f;z-index:9998;animation:banner-in .2s ease}@keyframes banner-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.scholar-banner-link{color:var(--primary, #4f8ef7);font-weight:700;text-decoration:none;white-space:nowrap}.scholar-banner-link:hover{text-decoration:underline}.toast-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:10px;z-index:9999}.toast{display:flex;align-items:flex-start;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:0 4px 16px #0000001f;min-width:280px;max-width:360px;animation:toast-in .25s ease}.toast.success{border-left:4px solid #22c55e}.toast.error{border-left:4px solid var(--danger)}.toast.info{border-left:4px solid var(--primary)}.toast-body{flex:1;font-size:14px;line-height:1.5;color:var(--text)}.toast-body-link{flex:1;font-size:14px;line-height:1.5;color:var(--text);text-decoration:none;cursor:pointer;border-radius:4px;padding:2px 4px;margin:-2px -4px;transition:background .15s}.toast-body-link:hover{background:color-mix(in srgb,var(--primary) 8%,transparent)}.toast-title{font-weight:600;margin-bottom:2px}.toast-msg{color:var(--text-muted);font-size:13px}.toast-link-hint{font-size:11px;color:var(--primary);font-weight:600;margin-top:4px}.toast-close{background:none;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;padding:0;line-height:1;flex-shrink:0}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--sidebar-bg: #1e293b;--sidebar-text: #f1f5f9;--sidebar-muted: #a8b8cc;--sidebar-border: #334155;--sidebar-input-bg: #0f172a;--sidebar-input-text: #e2e8f0;--sidebar-input-border: #475569;--sidebar-label: #b0bec8;--sidebar-section-title: #7a90a4;--sidebar-disabled-bg: #1e293b;--sidebar-placeholder: #475569;--bg: #f1f5f9;--surface: #ffffff;--surface-2: #f8fafc;--border: #e2e8f0;--text: #1e293b;--text-muted: #64748b;--header-bg: #ffffff;--header-border: #e2e8f0;--msg-assistant-bg: #ffffff;--msg-assistant-border: #e2e8f0;--msg-user-bg: #3b82f6;--input-area-bg: #ffffff;--input-bg: #ffffff;--input-border: #e2e8f0;--disabled-bg: #f1f5f9;--primary: #3b82f6;--primary-hover: #2563eb;--danger: #ef4444;--success: #22c55e;--radius: 8px;--shadow: 0 1px 4px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 16px rgba(0,0,0,.08)}[data-theme=dark]{--sidebar-bg: #09090b;--sidebar-text: #f4f4f5;--sidebar-muted: #a1a1aa;--sidebar-border: #27272a;--sidebar-input-bg: #18181b;--sidebar-input-text: #e4e4e7;--sidebar-input-border: #3f3f46;--sidebar-label: #a1a1aa;--sidebar-section-title: #71717a;--sidebar-disabled-bg: #18181b;--sidebar-placeholder: #52525b;--bg: #0d0d0d;--surface: #1c1c1e;--surface-2: #232326;--border: #2e2e32;--text: #f4f4f5;--text-muted: #71717a;--header-bg: #18181b;--header-border: #27272a;--msg-assistant-bg: #232326;--msg-assistant-border: #2e2e32;--msg-user-bg: #2563eb;--input-area-bg: #18181b;--input-bg: #232326;--input-border: #3f3f46;--disabled-bg: #27272a;--shadow: 0 1px 4px rgba(0,0,0,.4);--shadow-md: 0 4px 16px rgba(0,0,0,.4)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;transition:background .2s,color .2s}button{cursor:pointer;border:none;font-family:inherit;font-size:14px;color:inherit}input,textarea,select{font-family:inherit;font-size:14px;color:var(--text);border:1px solid var(--input-border);border-radius:var(--radius);padding:8px 10px;width:100%;background:var(--input-bg);outline:none;transition:border-color .15s}input:focus,textarea:focus,select:focus{border-color:var(--primary)}input:disabled,textarea:disabled,select:disabled{background:var(--disabled-bg);color:var(--text-muted);cursor:not-allowed;opacity:.7}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:.7}.btn-primary{background:var(--primary);color:#fff;padding:10px 20px;border-radius:var(--radius);font-weight:600;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border);padding:10px 20px;border-radius:var(--radius);font-weight:600;transition:background .15s}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-quick-preset{background:var(--surface);color:var(--text);border:1px solid var(--border);padding:10px 16px;border-radius:var(--radius);font-weight:600;font-size:.9rem;transition:background .15s}.btn-quick-preset:hover{background:var(--surface-2)}.btn-theme-toggle{background:none;border:1px solid var(--border);color:var(--text-muted);width:32px;height:32px;border-radius:50%;font-size:15px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;flex-shrink:0;padding:0}.btn-theme-toggle:hover{background:var(--surface-2);color:var(--text);border-color:var(--primary)}
