:root{--bg:#ffffff;--card:#f4f6f9;--fg:#1b2330;--muted:#5c6675;--line:#e3e7ee;
--disease:#c62828;--target:#1565c0;--drug:#2e7d32;--drug-class:#5d4037;--company:#e65100;--modality:#00838f;--cxo-service:#6a1b9a;--company-service:#ad1457;
--baijiu-segment:#8d4e2a;--optical-segment:#00838f;--semi-segment:#455a64;--ivd-segment:#00695c;--ivd-method:#5e35b1;--company-method:#8e24aa;--ivd-platform:#0277bd;--board-guide:#37474f;
--interview:#455a64;--navbg:#f7f9fc;--hover:#eef1f6;--badgefg:#ffffff;--banner-bg:#fff6da;--banner-bd:#e7c200;--banner-fg:#7a5d00;
--kba-panel-width:clamp(360px,30vw,440px)}
html[data-theme="dark"]{--bg:#0f1115;--card:#171a21;--fg:#e6e9ef;--muted:#8b93a7;--line:#262b36;
--disease:#e57373;--target:#64b5f6;--drug:#81c784;--drug-class:#bcaaa4;--company:#ffb74d;--modality:#4dd0e1;--cxo-service:#ce93d8;--company-service:#f48fb1;
--baijiu-segment:#bcaaa4;--optical-segment:#4dd0e1;--semi-segment:#90a4ae;--ivd-segment:#4db6ac;--ivd-method:#b39ddb;--company-method:#ce93d8;--ivd-platform:#81d4fa;--board-guide:#b0bec5;
--interview:#90a4ae;--navbg:#12141a;--hover:#1f2430;--badgefg:#0f1115;--banner-bg:#3a2e12;--banner-bd:#6b531c;--banner-fg:#ffd479;}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg);
font:15px/1.7 -apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
clip:rect(0,0,0,0);white-space:nowrap;border:0}
main{max-width:860px;margin:0 auto;padding:28px 20px 60px}
.layout{display:flex;gap:28px;max-width:1120px;margin:0 auto;padding:28px 20px 60px;align-items:flex-start}
.layout main{max-width:none;margin:0;padding:0;flex:1;min-width:0}
aside.toc{position:sticky;top:64px;width:208px;flex:0 0 208px;font-size:13px;
max-height:calc(100vh - 84px);overflow:auto}
aside.toc .toc-h{color:var(--muted);font-weight:700;margin-bottom:6px}
aside.toc nav{display:flex;flex-direction:column;border-left:1px solid var(--line)}
aside.toc a{color:var(--muted);text-decoration:none;padding:4px 10px;border-left:2px solid transparent;
margin-left:-1px;line-height:1.4}
aside.toc a:hover{color:var(--fg)}
aside.toc a.t3{padding-left:22px;font-size:12px}
aside.toc a.active{color:var(--target);border-left-color:var(--target);font-weight:600}
article h2,article h3{scroll-margin-top:64px}
@media(max-width:760px){aside.toc{display:none}.layout{display:block;padding:28px 20px 60px}}
nav.top{position:sticky;top:0;display:flex;gap:14px;align-items:center;flex-wrap:wrap;
background:var(--navbg);border-bottom:1px solid var(--line);padding:12px 20px;
padding-right:122px;z-index:10}
/* 右端工具模块：脱离 flex 流，所以左边板块链接怎么换行都不影响它的位置。
   padding-right 是给它预留的位，别删——否则搜索框会钻到按钮底下。 */
.nav-tools{position:absolute;right:16px;top:50%;transform:translateY(-50%);
display:flex;gap:6px;z-index:2}
.nav-tools .theme-btn{width:42px;padding:5px 0;text-align:center;text-decoration:none}
.nav-tools .member-nav-entry{display:inline-flex;align-items:center;justify-content:center;min-width:76px;
height:32px;padding:4px 10px;border:1px solid var(--line);border-radius:18px;background:var(--bg);
color:var(--muted);font-size:11px;font-weight:650;white-space:nowrap;max-width:150px;
overflow:hidden;text-overflow:ellipsis}
.nav-tools .member-nav-entry:hover{border-color:var(--target);color:var(--target)}
.nav-tools .member-nav-entry.active{border-color:color-mix(in srgb,var(--drug) 34%,var(--line));
background:color-mix(in srgb,var(--drug) 8%,var(--bg));color:var(--drug)}
.nav-tools .member-nav-entry.pending{border-color:#d6b66a;color:#8a6417;background:color-mix(in srgb,#d6b66a 9%,var(--bg))}
nav.top.has-member-entry{padding-right:270px}
nav.top a{color:var(--fg);text-decoration:none;font-weight:600}
nav.top a:hover{color:var(--target)}
/* 顶栏两类东西要分开：「首页」是回根的出口，板块名是并列的分类。
   3.16.2 把两者做成同色同粗，结果「首页」淹没在板块名里认不出来。
   靠字号 + 颜色区分（不加图标）：首页 16px/700/前景色，板块 13px/500/次要色。
   顶栏高度由搜索框(32px)+上下内边距决定，改这两行字号不会带动行高。 */
/* 选择器必须写成 nav.top a.xxx：上面那条 nav.top a 是 (0,1,2)，
   光写 .nav-board (0,1,0) 压不过它，颜色字重会被静默吃掉。 */
nav.top a.nav-home{font-size:16px;font-weight:700;color:var(--fg);letter-spacing:.5px}
nav.top a.nav-site-home{display:inline-grid;place-items:center;width:30px;height:30px;flex:0 0 30px;
border-radius:9px;background:#176b57;color:#fff;font:700 15px/1 Georgia,serif;letter-spacing:0}
nav.top a.nav-site-home:hover{background:#0d4f40;color:#fff}
.nav-sep{width:1px;height:16px;background:var(--line);flex:0 0 auto;margin:0 -4px}
nav.top a.nav-board{font-size:13px;font-weight:500;color:var(--muted);white-space:nowrap}
nav.top a.nav-board:hover{color:var(--target)}
.search-box{position:relative;display:flex;align-items:stretch}
.global-search{margin-left:auto;width:280px;min-width:220px}
.search-mode{flex:0 0 74px;background:var(--card);border:1px solid var(--line);border-right:0;
color:var(--muted);padding:6px 8px;border-radius:8px 0 0 8px;font-family:inherit;font-size:13px;cursor:pointer}
.search-box input{min-width:0;flex:1;background:var(--card);border:1px solid var(--line);color:var(--fg);
padding:7px 11px;border-radius:0 8px 8px 0;font:inherit}
.search-box input:focus,.search-mode:focus{outline:2px solid color-mix(in srgb,var(--target) 42%,transparent);outline-offset:-1px}
.search-results{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-height:min(70vh,560px);
background:var(--card);border:1px solid var(--line);border-radius:9px;overflow:auto;display:none;
box-shadow:0 10px 28px rgba(0,0,0,.16);z-index:20}
.search-results.qr-full{width:min(520px,calc(100vw - 28px))}
nav.top .search-results a,.search-results a{display:block;padding:9px 12px;color:var(--fg);text-decoration:none;
border-bottom:1px solid var(--line);font-weight:400;line-height:1.45}
nav.top .search-results a:hover,.search-results a:hover,.search-results a.active{background:var(--hover);color:var(--fg)}
.qr-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.qr-title b{font-weight:650}.qr-typ{color:var(--muted);font-size:12px;white-space:nowrap}
.qr-snip{display:block;color:var(--muted);font-size:12px;margin-top:3px;line-height:1.55}
.search-results mark{background:#fff09a;color:inherit;border-radius:2px;padding:0 .08em}
html[data-theme="dark"] .search-results mark{background:#665719;color:#fff2ad}
.qr-note,.qr-empty{padding:8px 12px;color:var(--muted);font-size:12px}.qr-empty{font-size:13px}
@media(max-width:980px){.global-search{width:250px}}
@media(max-width:760px){nav.top{padding-right:76px}.global-search{order:4;width:100%;min-width:0;margin-left:0}
nav.top.has-member-entry{padding-right:150px}.nav-tools .member-nav-entry{min-width:68px;max-width:76px;font-size:0;overflow:hidden}
.nav-tools .member-nav-entry::after{content:attr(data-mobile-label);font-size:11px;overflow:hidden;text-overflow:ellipsis}
nav.top.has-member-entry a.nav-home{font-size:0}
nav.top.has-member-entry a.nav-home::after{content:'知识库';font-size:15px}
.search-results{left:0;right:auto;width:100%}}
h1{font-size:26px;margin:.2em 0 .4em}h2{margin-top:1.4em;border-bottom:1px solid var(--line);padding-bottom:4px}
a.x{text-decoration:none;border-bottom:1px dashed currentColor;padding-bottom:1px}
a.x-disease{color:var(--disease)}a.x-target{color:var(--target)}
a.x-drug{color:var(--drug)}a.x-drug_class{color:var(--drug-class)}a.x-company{color:var(--company)}a.x-modality{color:var(--modality)}
a.x-cxo_service{color:var(--cxo-service)}a.x-company_service{color:var(--company-service)}
a.x-baijiu_segment{color:var(--baijiu-segment)}a.x-optical_segment{color:var(--optical-segment)}a.x-semi_segment{color:var(--semi-segment)}
a.x-ivd_segment{color:var(--ivd-segment)}a.x-ivd_method{color:var(--ivd-method)}a.x-company_method{color:var(--company-method)}a.x-ivd_platform{color:var(--ivd-platform)}a.x-board_guide{color:var(--board-guide)}
a.x-interview{color:var(--interview)}
.chip-toggle{display:inline-block;margin-left:4px;padding:1px 8px;font-size:12px;line-height:1.5;
border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--muted);
cursor:pointer;vertical-align:baseline;font-family:inherit}
.chip-toggle:hover{background:var(--hover);color:var(--fg);border-color:var(--muted)}
.chip-toggle.open{background:var(--hover);color:var(--fg)}
.chip-rest[hidden]{display:none!important}
.chip-rest{display:inline}
.muted{color:var(--muted)}
.badge{display:inline-block;font-size:12px;padding:2px 10px;border-radius:20px;color:var(--badgefg);font-weight:700;text-decoration:none}
a.badge{cursor:pointer}a.badge:hover{filter:brightness(1.08);text-decoration:none}
.b-disease{background:var(--disease)}.b-target{background:var(--target)}.b-drug{background:var(--drug)}.b-drug_class{background:var(--drug-class)}.b-company{background:var(--company)}.b-modality{background:var(--modality)}
.b-cxo_service{background:var(--cxo-service)}.b-company_service{background:var(--company-service)}
.b-baijiu_segment{background:var(--baijiu-segment)}.b-optical_segment{background:var(--optical-segment)}.b-semi_segment{background:var(--semi-segment)}
.b-ivd_segment{background:var(--ivd-segment)}.b-ivd_method{background:var(--ivd-method)}.b-company_method{background:var(--company-method)}.b-ivd_platform{background:var(--ivd-platform)}.b-board_guide{background:var(--board-guide)}
.b-interview{background:var(--interview)}
.b-ai{background:#7c4dff;font-size:11px;margin-left:4px}
.page-updated{display:inline-block;margin-left:8px;color:var(--muted);font-size:13px;vertical-align:middle}
table.meta,table.company-info{display:table;border-collapse:collapse;margin:14px 0;width:100%;max-width:100%;
background:var(--card);border-radius:10px;overflow:hidden}
table.meta th,table.company-info th{text-align:left;color:var(--muted);font-weight:600;width:110px;vertical-align:top;padding:8px 12px;border-bottom:1px solid var(--line)}
table.meta td,table.company-info td{padding:8px 12px;border-bottom:1px solid var(--line)}
article blockquote{border-left:3px solid var(--line);margin:1em 0;padding:4px 14px;color:var(--muted);background:var(--card)}
article mark.kb-mark{background:#fff09a;color:inherit;padding:0 .12em;border-radius:2px}
article .kb-alert{color:#c62828;font-weight:600}
article .kb-small{font-size:.86em;color:var(--muted)}
html[data-theme="dark"] article mark.kb-mark{background:#665719;color:#fff2ad}
html[data-theme="dark"] article .kb-alert{color:#ff8a80}
.ai-banner{background:var(--banner-bg);border:1px solid var(--banner-bd);color:var(--banner-fg);padding:10px 14px;border-radius:8px;margin:14px 0;font-size:13px}
.provenance-conflict{border:2px solid #d32f2f;background:#fff2f2;color:#5f1515;padding:12px 14px;border-radius:10px;margin:16px 0}
.provenance-conflict h2{margin:0 0 8px;color:#b71c1c}.provenance-conflict table{background:#fff}
html[data-theme="dark"] .provenance-conflict{background:#351719;color:#ffd8d8;border-color:#ef5350}
html[data-theme="dark"] .provenance-conflict table{background:#241315}.interview-refs{margin-top:24px}
article .article-table-scroll{width:100%;max-width:100%;margin:24px 0;overflow-x:auto;
-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;border:2px solid #a7adb7;
border-radius:8px;background:var(--bg);isolation:isolate}
article .article-table-scroll>table:not(.meta):not(.company-info){display:table;border-collapse:separate;
border-spacing:0;margin:0;width:100%;min-width:100%;border:0;background:var(--bg)}
/* 只有渲染器确认的显式表题居中；普通表前段落保持正文排版。 */
article .table-caption{text-align:center}
article .article-table-scroll>table:not(.meta):not(.company-info) th,article .article-table-scroll>table:not(.meta):not(.company-info) td{padding:8px 12px;text-align:left;font-size:14px;overflow-wrap:break-word}
/* 表头允许换行：列宽由内容长度决定，长表头不再撑宽列、挤高内容行（table.yaml layout_roles.column_width_rule）。 */
article .article-table-scroll>table:not(.meta):not(.company-info) thead th{background:var(--card);color:var(--muted);font-weight:600;
border-bottom:2px solid #a7adb7;white-space:normal}
article .article-table-scroll>table:not(.meta):not(.company-info) tbody td{border-bottom:1px solid #c1c6cf;vertical-align:top}
article .article-table-scroll>table:not(.meta):not(.company-info) tbody tr:last-child td{border-bottom:none}
article .article-table-scroll>table:not(.meta):not(.company-info) tbody tr:hover{background:var(--hover)}
article .article-table-scroll>table:not(.meta):not(.company-info) thead th:first-child,
article .article-table-scroll>table:not(.meta):not(.company-info) tbody td:first-child{position:sticky;left:0;z-index:2;
box-shadow:1px 0 0 #c1c6cf;background:var(--bg)}
article .article-table-scroll>table:not(.meta):not(.company-info) thead th:first-child{z-index:3;background:var(--card)}
article .article-table-scroll>table:not(.meta):not(.company-info) tbody tr:hover td:first-child{background:var(--hover)}
article .article-table-scroll>table:not(.meta):not(.company-info) tfoot.table-note td{padding:8px 12px;border-top:1px solid #c1c6cf;background:var(--card);
color:var(--muted);font-size:12px;line-height:1.6;vertical-align:top}
article .article-table-scroll>table:not(.meta):not(.company-info) tfoot.table-note .table-note-label{font-weight:600;margin-right:.35em}
article .article-table-scroll>table:not(.meta):not(.company-info) tfoot.table-note tr:hover{background:transparent}
article details.tracking-breakdown{min-width:8.5em}
article details.tracking-breakdown>summary{cursor:pointer;color:var(--target);font-weight:600}
article details.tracking-breakdown>div{margin-top:4px;line-height:1.45;color:var(--muted)}
article .tracking-contributor{color:var(--fg)}
article h2{font-size:19px}article h3{font-size:16px;color:var(--fg)}
ul.ilist{list-style:none;padding:0}ul.ilist li{padding:5px 0;border-bottom:1px solid var(--line)}
.home-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:20px 0}
.home-card{display:flex;justify-content:space-between;align-items:center;padding:22px;
background:var(--card);border-radius:14px;text-decoration:none;color:var(--fg);border:1px solid var(--line)}
.home-card b{font-size:18px}.home-card span{font-size:30px;font-weight:800}
.c-disease{border-left:5px solid var(--disease)}.c-target{border-left:5px solid var(--target)}
.c-drug{border-left:5px solid var(--drug)}.c-drug_class{border-left:5px solid var(--drug-class)}.c-modality{border-left:5px solid var(--modality)}.c-company{border-left:5px solid var(--company)}
.c-cxo_service{border-left:5px solid var(--cxo-service)}.c-company_service{border-left:5px solid var(--company-service)}
.c-baijiu_segment{border-left:5px solid var(--baijiu-segment)}.c-optical_segment{border-left:5px solid var(--optical-segment)}.c-semi_segment{border-left:5px solid var(--semi-segment)}
.c-ivd_segment{border-left:5px solid var(--ivd-segment)}.c-ivd_method{border-left:5px solid var(--ivd-method)}.c-company_method{border-left:5px solid var(--company-method)}.c-ivd_platform{border-left:5px solid var(--ivd-platform)}
.board-section{scroll-margin-top:72px;margin-top:28px;padding-top:2px}.board-section>h2{font-size:23px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.board-guide-links{display:inline-flex;gap:8px;font-size:13px;font-weight:500}
.board-guide-entry{color:var(--muted);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:1px 9px;background:var(--card)}
.board-guide-entry:hover{color:var(--target);border-color:var(--target)}
footer{max-width:860px;margin:0 auto;padding:20px;color:var(--muted);font-size:13px;border-top:1px solid var(--line);text-align:center}
.footer-records{display:flex;align-items:center;justify-content:center;gap:32px;flex-wrap:wrap}
.footer-record{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.footer-public-security-badge{display:block;width:auto;height:20px}
footer a{color:var(--muted);text-decoration:none}
footer a:hover{color:var(--target);text-decoration:underline}
table.dtable{border-collapse:collapse;width:100%;margin:10px 0;font-size:14px}
table.dtable th,table.dtable td{border:1px solid var(--line);padding:7px 10px;text-align:left;vertical-align:top;overflow-wrap:anywhere}
table.dtable thead th{background:var(--card);color:var(--muted);cursor:pointer;white-space:nowrap;user-select:none;position:sticky;top:52px}
table.dtable.bdtable thead th{position:static;top:auto}
table.dtable thead th:hover{color:var(--fg)}table.dtable tbody tr:hover{background:var(--hover)}
.sort-ind{font-size:10px;color:var(--target)}
.dg{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;color:var(--badgefg)}
.dg-yes{background:var(--drug)}.dg-mid{background:var(--target)}.dg-no{background:var(--muted)}
.theme-btn{background:var(--card);border:1px solid var(--line);color:var(--fg);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:14px;line-height:1}.theme-btn:hover{border-color:var(--target)}
.kbl-mask{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9999;display:flex;align-items:center;justify-content:center}
.kbl-box{background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:12px;padding:20px 22px;max-width:430px;box-shadow:0 12px 40px rgba(0,0,0,.3)}
.kbl-box h3{margin:0 0 12px;font-size:16px}
.kbl-opts{display:flex;flex-direction:column;gap:8px}
.kbl-opts button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:transparent;color:inherit;cursor:pointer;text-align:left;width:100%;font:inherit}
.kbl-opts button:hover{border-color:var(--target)}
.kbl-opts button.cur{border-color:var(--target);border-width:2px}
.kbl-opts button b{font-size:14px}
.kbl-opts button span{font-size:12px;opacity:.7}
.kbl-remember{display:block;margin:12px 0 6px;font-size:13px;cursor:pointer}
.kbl-hint{margin:0 0 12px;font-size:12px;opacity:.65;line-height:1.5}
.kbl-cancel{border:none;background:transparent;color:inherit;opacity:.6;cursor:pointer;font-size:13px;padding:4px 0;font-family:inherit}
details.cat{margin:2px 0}
details.cat>summary{cursor:pointer;padding:4px 0;font-weight:600;list-style:none}
details.cat>summary::-webkit-details-marker{display:none}
details.cat>summary::before{content:"▸ ";color:var(--muted)}
details.cat[open]>summary::before{content:"▾ "}
details.cat details.cat{margin-left:16px}
.lfilter{display:block;width:100%;max-width:360px;margin:8px 0 14px;background:var(--card);
border:1px solid var(--line);color:var(--fg);padding:8px 12px;border-radius:8px}
.view-title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.view-title .sort-help{font-size:13px}.view-switch{font-size:14px;font-weight:650;text-decoration:none;
padding:2px 10px;border:1px solid var(--line);border-radius:14px}.view-switch:hover{border-color:var(--disease)}
.special-link{margin:-6px 0 14px;font-size:14px}.special-link a{font-weight:650;text-decoration:none}
.special-link a::after{content:" →"}.bd-note{margin:10px 0 16px;padding:12px 14px;background:var(--card);
border:1px solid var(--line);border-left:4px solid var(--drug);border-radius:8px;color:var(--muted);font-size:13px;line-height:1.65}
.tree-intro{max-width:800px}.tree-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin:12px 0 18px;
padding:10px 12px;background:var(--card);border:1px solid var(--line);border-radius:10px;font-size:13px}
.dt-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:14px 0 8px}
.dt-toolbar input{flex:1;min-width:280px;background:var(--card);border:1px solid var(--line);color:var(--fg);
padding:9px 12px;border-radius:8px}.dt-toolbar select,.dt-toolbar button{background:var(--card);
border:1px solid var(--line);color:var(--fg);padding:8px 10px;border-radius:8px}
.dt-toolbar button{cursor:pointer}.dt-status{font-size:13px;margin:5px 0 12px}
.dt-layout{width:min(1320px,calc(100vw - 40px));margin-left:50%;transform:translateX(-50%);
display:grid;grid-template-columns:minmax(420px,1.35fr) minmax(320px,.9fr);gap:16px;align-items:start}
.dt-browser,.dt-detail{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.dt-browser{min-height:520px}.dt-browser h2{font-size:17px;margin:0 0 10px}.dt-detail{position:sticky;top:64px;
max-height:calc(100vh - 84px);overflow:auto}.dt-node{margin:3px 0 3px 14px}.dt-node-row{display:flex;
align-items:center;gap:6px;min-height:34px}.dt-toggle{width:28px;height:28px;border:0;background:transparent;
color:var(--muted);cursor:pointer;padding:0}.dt-toggle:disabled{cursor:default;opacity:.35}.dt-label{
border:0;background:transparent;color:var(--fg);cursor:pointer;text-align:left;padding:4px 6px;border-radius:5px;
display:flex;flex-direction:column;align-items:flex-start;line-height:1.4}.dt-label-zh{font-size:16px;font-weight:650}
.dt-label-en{font-size:13px;color:var(--muted);font-weight:400}
.dt-label:hover,.dt-label.dt-selected{background:var(--hover);color:var(--disease)}.dt-kb-badge{
font-size:11px;padding:1px 7px;border-radius:9px;background:var(--disease);color:#fff;white-space:nowrap}
.dt-count{font-size:12px;color:var(--muted)}.dt-children{border-left:1px solid var(--line);margin-left:13px}
.dt-search-results{position:relative;z-index:3;max-height:310px;overflow:auto;background:var(--card);
border:1px solid var(--line);border-radius:9px;margin-bottom:10px}.dt-result{display:flex;width:100%;gap:8px;
align-items:center;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--fg);
padding:8px 11px;cursor:pointer}.dt-result:hover{background:var(--hover)}.dt-result-name{display:flex;
flex-direction:column;line-height:1.4}.dt-scope-badge{margin-left:auto;font-size:11px;padding:1px 7px;
border:1px solid var(--line);border-radius:9px;color:var(--muted);white-space:nowrap}.dt-result-id{
margin-left:auto;color:var(--muted);font:12px ui-monospace,SFMono-Regular,monospace}
.dt-scope-badge+.dt-result-id{margin-left:0}.dt-detail h2{font-size:21px;margin:0 0 2px}
.dt-detail-en{font-size:14px;color:var(--muted);margin-bottom:2px}
.dt-id{font:12px ui-monospace,SFMono-Regular,monospace;color:var(--muted)}.dt-section{margin-top:16px}
.dt-section h3{font-size:15px;margin:0 0 6px}.dt-chips{display:flex;flex-wrap:wrap;gap:6px}
.dt-chip{border:1px solid var(--line);background:var(--bg);color:var(--fg);padding:3px 8px;border-radius:12px;
font-size:13px;cursor:pointer}.dt-chip:hover{border-color:var(--disease)}.dt-local-card{background:var(--bg);
border:1px solid var(--line);border-radius:8px;padding:9px 10px;margin:7px 0}.dt-local-card>a{font-weight:650}
.dt-rel{font-size:13px;margin-top:6px}.dt-rel b{color:var(--muted)}.dt-more{font-size:13px;color:var(--muted);
margin-top:6px}.dt-path{font-size:13px;color:var(--muted);margin:8px 0}.dt-path button{border:0;
background:transparent;color:var(--target);padding:0;cursor:pointer}
@media(max-width:840px){.dt-layout{display:block}.dt-detail{position:static;max-height:none;margin-top:12px}
.dt-browser{min-height:360px}.dt-toolbar input{min-width:100%}}
.table-scroll{width:min(1540px,calc(100vw - 40px));margin-left:50%;transform:translateX(-50%);overflow-x:auto}
table.bdtable{min-width:1900px}table.bdtable td:nth-child(1),table.bdtable td:nth-child(2){min-width:150px}
table.bdtable td:nth-child(7),table.bdtable td:nth-child(8),table.bdtable td:nth-child(9){min-width:230px}
.hub-hero{padding:6px 0 4px}
.hub-search{max-width:640px;margin:14px 0 4px}
.hub-search .search-mode{flex-basis:84px;padding:10px}
.hub-search input{padding:10px 14px;font-size:15px}
#hqr{left:0;right:auto;width:100%;z-index:5}
#hqr.qr-full{width:100%}
.hub-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(244px,1fr));gap:12px}
.hub-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.hub-card-h{font-weight:600;margin-bottom:4px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:5px 12px;
text-decoration:none;color:var(--fg);font-size:13px}
.chip:hover{border-color:var(--target);color:var(--target)}
ul.recent li{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.kb-figure{margin:18px auto;padding:0}
.kb-figure.fig-half{width:50%}
.kb-figure.fig-third{width:33%}
.kb-figure.fig-full{width:100%}
.kb-figure img{display:block;width:100%;height:auto;margin:0 auto;
max-height:70vh;object-fit:contain;
background:#fff;border:1px solid var(--line);border-radius:8px}
.kb-figure figcaption{margin-top:8px;font-size:13px;color:var(--muted);line-height:1.7;
text-align:center}
.kb-figure figcaption span{display:block}
@media(max-width:760px){.kb-figure.fig-half,.kb-figure.fig-third{width:100%}}
.kb-figure .fig-cap{color:var(--fg);font-weight:600}
.kb-figure .fig-src a{color:var(--muted);text-decoration:underline}
.kb-figure .fig-src a:hover{color:var(--target)}
/* 1.35 SVG 图新布局：圆角灰色边框 + 标题边框内顶部居中 + 来源溢出到边框外左下角。
   仅对 <figure><object data="*.svg"> 嵌入图生效（has-svg class）；
   PNG 图片走老 .kb-figure 规则（img 自带圆角边框、fig-cap/fig-src 在底部 figcaption）。 */
.kb-figure.has-svg{margin:32px auto 24px;padding:38px 16px 12px;background:#fff;
border:2px solid #a7adb7;border-radius:8px;position:relative}
/* 有备注时给底部留空间（备注用 absolute 溢出，不占 figure 高度） */
.kb-figure.has-svg:has(.fig-note){margin-bottom:56px}
.kb-figure.has-svg object{display:block;width:100%;height:auto;max-height:70vh;margin:0 auto}
.kb-figure.has-svg figcaption{margin:0;padding:0;border:0;text-align:left;
font-size:inherit;color:inherit;line-height:inherit}
.kb-figure.has-svg figcaption .fig-cap{position:absolute;top:10px;left:0;right:0;
margin:0;padding:0 16px;text-align:center;font-size:14px;font-weight:600;
color:var(--fg);display:block}
.kb-figure.has-svg figcaption .fig-src{display:none}
/* 1.35 起 fig-src（数据来源）不再标注；必要时改用 fig-note（备注：xxx） */
.kb-figure.has-svg figcaption .fig-note{position:absolute;left:16px;right:16px;
bottom:-32px;margin:0;padding:0;font-size:11px;font-weight:normal;
color:var(--muted);display:block;line-height:1.6}
.kb-figure.has-svg figcaption .fig-note a{color:var(--muted);text-decoration:underline}
.kb-figure.has-svg figcaption .fig-note a:hover{color:var(--target)}
.metrics-chart [data-v]{cursor:pointer}
.metrics-chart .pt-hit{fill:transparent}
.chart-tip{position:fixed;z-index:30;pointer-events:none;display:none;max-width:280px;
background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:8px;
padding:6px 10px;font-size:12px;line-height:1.6;box-shadow:0 4px 14px rgba(0,0,0,.16)}
.chart-tip b{display:block;font-weight:600}
.chart-tip span{color:var(--muted)}
/* ── agent 面板（3.26.0）。桌面分屏 + 本地快改 + 安全提交结算 ── */
#kba-btn{position:fixed;right:20px;bottom:20px;z-index:40;width:46px;height:46px;border-radius:50%;
border:1px solid var(--line);background:var(--card);color:var(--fg);cursor:pointer;font-size:19px;
box-shadow:0 4px 14px rgba(0,0,0,.16);display:none}
#kba-btn.on{display:block}
#kba-btn:hover{border-color:var(--target)}
#kba{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:92vw;z-index:41;display:none;
flex-direction:column;background:var(--bg);border-left:1px solid var(--line);box-shadow:-6px 0 24px rgba(0,0,0,.12)}
#kba.on{display:flex}
#kba header{padding:10px 14px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted);
display:flex;gap:8px;align-items:center;flex-wrap:wrap}
#kba header b{color:var(--fg);font-size:13px}
#kba .kba-close{margin-left:auto;cursor:pointer;background:none;border:none;color:var(--muted);font-size:17px}
#kba-src{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;
background:var(--card);border:1px solid var(--line);border-radius:5px;padding:1px 6px}
#kba .kba-context{cursor:default;background:var(--card);border:1px solid var(--line);border-radius:5px;
color:var(--muted);font-size:11px;padding:2px 7px}
#kba .kba-context.needs-confirm{cursor:pointer;border-color:#d97706;color:#d97706;font-weight:600}
#kba .kba-context.needs-confirm:hover{background:color-mix(in srgb,#d97706 9%,var(--card))}
#kba-lv{font-size:11px;background:var(--card);color:var(--fg);border:1px solid var(--line);
border-radius:5px;padding:2px 5px;cursor:pointer}
#kba .kba-clear{cursor:pointer;background:none;border:1px solid var(--line);border-radius:5px;
color:var(--muted);font-size:11px;padding:2px 7px}
#kba .kba-clear:hover{border-color:#d97706;color:#d97706}
#kba .kba-commit{cursor:pointer;background:none;border:1px solid #d97706;border-radius:5px;
color:#d97706;font-size:11px;padding:2px 7px;font-weight:600}
#kba .kba-commit.validating{cursor:wait;opacity:.75}
#kba .kba-commit.blocked{border-color:#b91c1c;color:#b91c1c}
#kba .kba-commit.recovery{border-style:dashed}
#kba .kba-commit[hidden]{display:none}
#kba .kba-undo{cursor:pointer;background:none;border:1px solid var(--target);border-radius:5px;
color:var(--target);font-size:11px;padding:2px 7px}
#kba .kba-undo:hover{background:color-mix(in srgb,var(--target) 8%,var(--card))}
.kba-m.u.appended{border-left:2px solid var(--target);border-radius:0 8px 8px 0}
#kba-log{flex:1;overflow-y:auto;padding:12px 14px;font-size:13px;line-height:1.75}
.kba-m{margin-bottom:12px;white-space:pre-wrap;word-break:break-word}
.kba-m.u{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.kba-m.a{border-left:2px solid var(--target);padding-left:10px}
.kba-t{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,monospace;
background:var(--card);border-radius:5px;padding:3px 7px;margin-bottom:6px;display:block;
overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kba-deny{border:1px solid #d97706;border-radius:8px;padding:8px 10px;margin-bottom:10px;font-size:12px}
.kba-deny b{color:#d97706}
.kba-ask{border:1px solid var(--target);border-radius:8px;padding:9px 11px;margin-bottom:10px;font-size:12px}
.kba-ask b{display:block;margin-bottom:4px}
.kba-ask code{display:block;font-family:ui-monospace,Menlo,monospace;font-size:11px;background:var(--card);
border-radius:5px;padding:5px 7px;margin:5px 0;word-break:break-all;max-height:96px;overflow:auto}
.kba-ask .kba-acts{display:flex;gap:8px;margin-top:6px}
.kba-ask button{flex:1;padding:6px 10px;border-radius:6px;border:1px solid var(--line);
background:var(--card);color:var(--fg);cursor:pointer;font-size:12px}
.kba-ask button.ok:hover{border-color:var(--target);color:var(--target)}
.kba-ask button.no:hover{border-color:#d97706;color:#d97706}
.kba-ask button.always:hover,.kba-ask button.forever:hover{border-color:var(--target);color:var(--target)}
.kba-ask .kba-acts button{font-size:11px;padding:6px 6px}
.kba-ask.done{opacity:.55}
.kba-ask.done .kba-acts{display:none}
.kba-sys{font-size:11px;color:var(--muted);margin-bottom:8px}
#kba-quote{display:none;margin:0 12px 8px;padding:8px 9px;font-size:11px;border-left:2px solid var(--target);
background:var(--card);color:var(--muted);max-height:260px;overflow:auto;border-radius:0 6px 6px 0}
#kba-quote.on{display:block}
#kba-quote .kba-quote-head{display:flex;gap:7px;align-items:flex-start}
#kba-quote .kba-quote-text{flex:1;max-height:54px;overflow:hidden;white-space:pre-wrap;word-break:break-word}
#kba-quote .kba-quote-close{border:0;background:none;color:var(--muted);cursor:pointer;font-size:15px;line-height:1;padding:0 2px}
#kba-quote .kba-fast-label,#kba .kba-agent-label{font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--muted)}
#kba-quote .kba-fast-label{margin-top:8px;padding-top:7px;border-top:1px solid var(--line)}
#kba-quote .kba-fast-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
#kba-quote .kba-fast-actions button,#kba-quote .kba-replace-actions button{border:1px solid var(--line);
background:var(--bg);color:var(--fg);border-radius:5px;padding:4px 7px;font-size:11px;cursor:pointer}
#kba-quote .kba-fast-actions button:hover,#kba-quote .kba-replace-actions button:hover{border-color:var(--target);color:var(--target)}
#kba-quote.disabled .kba-fast-actions button{opacity:.45;cursor:not-allowed}
#kba-quote .kba-fast-note{margin-top:5px;font-size:10px;color:var(--muted)}
#kba-quote .kba-fast-error{display:none;margin-top:5px;color:#d97706}
#kba-quote .kba-fast-error.on{display:block}
#kba-quote .kba-replace{display:none;margin-top:7px}
#kba-quote .kba-replace.on{display:block}
#kba-quote textarea.kba-replace-text{width:100%;min-height:54px;max-height:110px;font-size:12px;padding:6px 7px}
#kba-quote .kba-replace-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:5px}
#kba .kba-agent-label{padding:7px 12px 0;border-top:1px solid var(--line)}
#kba form{border-top:1px solid var(--line);padding:10px 12px;display:flex;gap:8px;align-items:flex-end}
#kba .kba-agent-label+form{border-top:0;padding-top:6px}
#kba textarea{flex:1;resize:none;min-height:40px;max-height:150px;padding:8px 10px;font:inherit;font-size:13px;
background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:8px}
#kba button.kba-send{padding:9px 14px;border-radius:8px;border:1px solid var(--line);
background:var(--card);color:var(--fg);cursor:pointer;font-size:13px}
#kba button.kba-send:hover{border-color:var(--target);color:var(--target)}
#kba button.kba-stop{padding:9px 12px;border-radius:8px;border:1px solid #d97706;
background:var(--card);color:#d97706;cursor:pointer;font-size:13px;display:none}
#kba.busy button.kba-stop{display:block}
#kba.busy button.kba-send{opacity:.45}
.kba-context-mask{position:fixed;inset:0;background:rgba(0,0,0,.48);z-index:9999;
display:flex;align-items:center;justify-content:center;padding:18px}
.kba-context-box{width:min(460px,100%);background:var(--card);color:var(--fg);
border:1px solid var(--line);border-radius:12px;padding:20px 22px;box-shadow:0 12px 40px rgba(0,0,0,.3)}
.kba-context-box h3{margin:0 0 10px;font-size:16px}
.kba-context-box p{margin:7px 0;color:var(--muted);font-size:13px;line-height:1.65}
.kba-context-route{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;
background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:8px 10px;
word-break:break-all}
.kba-context-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:16px}
.kba-context-actions button{padding:8px 12px;border-radius:7px;border:1px solid var(--line);
background:var(--bg);color:var(--fg);cursor:pointer;font-size:13px}
.kba-context-actions .confirm{border-color:var(--target);color:var(--target)}
.kba-context-actions .keep{border-color:#d97706;color:#d97706}
.kba-context-actions button:disabled{opacity:.45;cursor:not-allowed}
.kba-context-error{color:#d97706!important}
.kba-settlement-files{max-height:130px;overflow:auto;margin:8px 0;padding:7px 9px;
font:11px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--bg);
border:1px solid var(--line);border-radius:7px;white-space:pre-wrap;word-break:break-all}
/* 桌面端分屏：body 的内容盒真实让出面板宽度，而非只给正文加一个看似避让的 margin。
   这样顶栏、首页、列表和页脚都在同一可视区内，不会仍钻到面板下面。 */
@media(min-width:960px){
body.kba-open{padding-right:var(--kba-panel-width)}
body.kba-open #kba{width:var(--kba-panel-width);max-width:none;box-shadow:none}
body.kba-open .dt-layout{width:min(1320px,calc(100vw - var(--kba-panel-width) - 40px))}
body.kba-open .table-scroll{width:min(1540px,calc(100vw - var(--kba-panel-width) - 40px))}
}
/* 中等宽度下再保留 208px 目录会把正文压成窄条；分屏打开时暂时收起目录。 */
@media(min-width:960px) and (max-width:1399px){
body.kba-open aside.toc{display:none}
body.kba-open .layout{display:block;max-width:900px;padding:28px 20px 60px}
}
@media(max-width:760px){#kba{width:100vw;max-width:none}}
