:root{--primary:#0f766e;--primary-hover:#115e59;--primary-soft:#ecfdf9;--bg:#f5f8f8;--surface:#fff;--surface-muted:#eef3f3;--border:#dde6e6;--border-strong:#c7d6d6;--text:#1f2933;--text-sub:#5b7070;--text-faint:#8aa0a0;--success:#16a34a;--warning:#d97706;--danger:#dc2626;--danger-soft:#fef2f2;--warning-soft:#fffbeb;--font:-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;--r-md:10px;--r-lg:14px;--shadow-sm:0 1px 2px #0f3c3c0f;--shadow-md:0 6px 20px #0f3c3c14}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);color:var(--text);background:var(--bg);min-height:100vh}button{font-family:var(--font);cursor:pointer}b{font-weight:600}.app{flex-direction:column;min-height:100vh;display:flex}.mode-badge{border-radius:var(--r-md);border:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;padding:8px 14px;font-size:12px;display:flex}.mode-badge.live{background:var(--primary-soft);color:#0f5e57;border-color:#b8e4de}.mode-badge.fallback{background:var(--warning-soft);color:#92400e;border-color:#fde68a}.mode-dot{background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.mode-label{font-weight:600}.mode-reason{color:inherit;opacity:.85}.mode-note{color:var(--text-faint);margin-left:auto;font-size:11px}.head-actions{flex-wrap:wrap;gap:8px;display:flex}.topbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);z-index:30;background:#ffffffdb;justify-content:space-between;align-items:center;gap:16px;width:100%;max-width:1080px;margin:0 auto;padding:12px 20px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;display:flex}.brand-mark{background:var(--primary);color:#fff;width:42px;height:42px;box-shadow:var(--shadow-md);border-radius:12px;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.brand-txt h1{letter-spacing:.5px;font-size:20px;font-weight:700}.brand-txt p{color:var(--text-sub);margin-top:2px;font-size:12px}.patient-strip{color:var(--text-sub);font-size:13px}.patient-chip{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:999px;padding:6px 14px;display:inline-block}.strip-empty{color:var(--text-faint)}.steps{flex-wrap:wrap;align-items:center;gap:4px;width:100%;max-width:1080px;margin:0 auto;padding:14px 20px 4px;display:flex}.step{color:var(--text-faint);background:0 0;border:none;align-items:center;gap:8px;padding:6px 2px;font-size:13px;font-weight:500;display:flex}.step:disabled{opacity:.55;cursor:default}.step.active{color:var(--primary)}.step.done{color:var(--text-sub)}.step-dot{border:1.5px solid var(--border-strong);width:22px;height:22px;color:var(--text-faint);background:var(--surface);border-radius:50%;justify-content:center;align-items:center;font-size:12px;display:flex}.step.active .step-dot{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 0 0 4px #0f766e24}.step.done .step-dot{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.step-arrow{color:var(--text-faint);opacity:.6;margin:0 6px;font-size:14px}.view{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:20px 20px 48px}.page{animation:.22s both fadeUp}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page-head{margin-bottom:20px}.page-head h2,.page-head-with-action h2{letter-spacing:.5px;font-size:24px;font-weight:700}.page-sub{color:var(--text-sub);margin-top:6px;font-size:14px;line-height:1.6}.page-head-with-action{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.btn{border-radius:var(--r-md);border:1.5px solid #0000;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:all .15s;display:inline-flex}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-hover)}.btn.ghost{background:var(--surface);color:var(--primary);border-color:var(--primary)}.btn.ghost:hover{background:var(--primary-soft)}.btn:disabled{opacity:.5;cursor:not-allowed}.case-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.case-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);cursor:pointer;text-align:left;box-shadow:var(--shadow-sm);padding:20px;transition:all .18s}.case-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-3px)}.case-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.case-scene{color:var(--primary);background:var(--primary-soft);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.case-name{margin:12px 0 2px;font-size:18px;font-weight:700}.case-meta{color:var(--text-sub);gap:10px;font-size:12px;display:flex}.case-chief{background:var(--surface-muted);border-radius:var(--r-md);margin:12px 0 0;padding:10px 12px;font-size:14px;line-height:1.5}.safety-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);align-items:flex-start;gap:12px;margin-top:20px;padding:16px 20px;display:flex}.safety-box p{color:var(--text-sub);font-size:13px;line-height:1.6}.intake-head{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;display:flex}.vital{border-left:1px solid var(--border);flex-direction:column;padding:4px 12px;display:flex}.vital b{font-size:15px;font-weight:700}.vital span{color:var(--text-sub);font-size:11px}.chat{flex-direction:column;gap:12px;min-height:320px;margin-bottom:16px;display:flex}.msg{gap:10px;max-width:78%;animation:.2s both fadeUp;display:flex}.msg.user{flex-direction:row-reverse;align-self:flex-end}.msg-avatar{border-radius:10px;flex:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:flex}.msg.ai .msg-avatar{background:var(--primary-soft);color:var(--primary)}.msg.user .msg-avatar{background:var(--surface-muted);color:var(--text-sub)}.msg-bubble{border-radius:var(--r-md);padding:11px 14px;font-size:14px;line-height:1.65}.msg.ai .msg-bubble{background:var(--surface);border:1px solid var(--border);border-top-left-radius:4px}.msg.user .msg-bubble{background:var(--primary);color:#fff;border-top-right-radius:4px}.typing{opacity:.6}.chat-input{background:linear-gradient(180deg,transparent,var(--bg) 30%);padding-top:6px;position:sticky;bottom:0}.chip-row{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.chip{border:1.5px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:500;transition:all .14s}.chip:hover{border-color:var(--primary);color:var(--primary)}.ask-form{gap:10px;display:flex}.ask-input{border:1.5px solid var(--border-strong);border-radius:var(--r-md);font-size:14px;font-family:var(--font);background:var(--surface);flex:1;padding:12px 16px}.ask-input:focus{border-color:var(--primary);outline:none}.banner{border-radius:var(--r-lg);border:1.5px solid;gap:12px;margin-bottom:16px;padding:14px 16px;display:flex}.banner-page{width:100%;max-width:1080px;margin:10px auto 0;padding:0 20px}.banner-page-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.banner h4{align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.banner p{margin-top:4px;font-size:13px;line-height:1.6}.banner ul{margin:8px 0 0 18px;font-size:13px;line-height:1.7}.banner.danger{background:var(--danger-soft);border-color:var(--danger);color:#7f1d1d}.banner.info{background:var(--primary-soft);border-color:var(--primary);color:var(--text)}.banner.warn{background:var(--warning-soft);color:#78350f;border-color:#b45309}.banner-meta{opacity:.78;font-size:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);margin-bottom:16px;padding:20px}.card.loading{color:var(--text-sub);font-size:14px}.card-title{margin-bottom:14px;font-size:15px;font-weight:700}.conf-badge{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700}.conf-badge.high{background:var(--success);color:#fff}.conf-badge.mid{background:var(--warning);color:#fff}.conf-badge.low{background:var(--surface-muted);color:var(--text-sub)}.dx-row{border-top:1px solid var(--border);margin-top:14px;padding:14px 0 0}.dx-row:first-of-type{border-top:none;margin-top:0;padding-top:0}.dx-primary{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.dx-primary h3{font-size:17px;font-weight:700}.reason-list{flex-wrap:wrap;gap:8px;margin-top:8px;list-style:none;display:flex}.reason-tag{color:var(--text-sub);background:var(--surface-muted);border-radius:999px;padding:3px 10px;font-size:12px}.ref-list{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.ref-tag{color:var(--primary);background:var(--primary-soft);border-radius:999px;align-items:center;padding:2px 10px;font-size:11px;display:inline-flex}.dx-danger{border:1.5px solid var(--danger);background:var(--danger-soft)}.dx-danger h3{color:var(--danger)}.flag-sev{border-radius:999px;margin-right:6px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.flag-sev.sev-high{background:var(--danger);color:#fff}.flag-sev.sev-mid{background:var(--warning);color:#fff}.diff-table{border-collapse:collapse;width:100%;font-size:13.5px}.diff-table th{text-align:left;color:var(--text-sub);border-bottom:1px solid var(--border);padding:8px 10px;font-size:12px;font-weight:600}.diff-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:10px;line-height:1.55}.faq-item{border-top:1px solid var(--border);margin-top:12px;padding:12px 0 0}.faq-item:first-of-type{border-top:none;margin-top:0;padding-top:0}.faq-q{align-items:baseline;gap:8px;font-size:14px;font-weight:600;display:flex}.q-mark{color:var(--primary);font-weight:700}.faq-a{color:var(--text-sub);margin-top:6px;font-size:13.5px;line-height:1.7}.workup-group{margin-bottom:20px}.workup-group h3{align-items:center;gap:8px;margin-bottom:10px;font-size:16px;font-weight:700;display:flex}.tag-lv{color:#fff;border-radius:999px;padding:2px 10px;font-size:11px;font-weight:600}.tag-lv.essential{background:var(--danger)}.tag-lv.suggested{background:var(--warning)}.tag-lv.optional{background:var(--text-faint)}.wu-item{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:var(--r-md);margin-bottom:8px;padding:12px 16px}.wu-item.essential{border-left-color:var(--danger)}.wu-item.suggested{border-left-color:var(--warning)}.wu-item.optional{border-left-color:var(--text-faint)}.wu-item b{font-size:14px}.wu-item p{color:var(--text-sub);margin-top:4px;font-size:13px;line-height:1.6}.report-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.report-sheet{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:28px 30px}.report-head{border-bottom:2px solid var(--primary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:14px;display:flex}.report-head h3{color:var(--primary);font-size:20px;font-weight:700}.report-head span{color:var(--text-sub);font-size:12px}.soap-block{margin-bottom:14px}.soap-block h4{color:var(--primary);margin-bottom:6px;font-size:13px;font-weight:700}.soap-block p{font-size:14px;line-height:1.7}.report-dx{background:var(--primary-soft);border-radius:var(--r-md);border:1px solid #0f766e40;margin:14px 0;padding:12px 16px}.report-dx b{color:var(--primary)}.report-disclaimer{border-top:1px dashed var(--border-strong);color:var(--text-faint);margin-top:20px;padding-top:12px;font-size:12px;line-height:1.7}.app-footer{border-top:1px solid var(--border);color:var(--text-sub);background:#fffc;flex-wrap:wrap;justify-content:center;gap:8px 24px;padding:12px 20px;font-size:12px;display:flex}.app-footer span{align-items:center;display:inline-flex}@media (width<=860px){.case-grid{grid-template-columns:1fr 1fr}.msg{max-width:90%}}@media (width<=560px){.case-grid{grid-template-columns:1fr}.step-name{display:none}.report-sheet{padding:20px}.page-head-with-action{flex-direction:column;align-items:stretch}}@media print{.topbar,.steps,.app-footer,.chat-input,.report-toolbar{display:none!important}body{background:#fff}.view{max-width:100%;padding:0}.report-sheet{box-shadow:none;border:none;padding:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
