:root{
  --bg:#f7f8fa;--panel:#ffffff;--text:#1b2230;--muted:#5b6578;--line:#dfe3ea;--accent:#1d4ed8;--accent-soft:#e8eefc;--warn:#b45309;--warn-soft:#fdf3e1;
  --shadow:0 1px 2px rgba(15,23,42,.06);
  --t-review:#64748b;--t-outpatient:#2563eb;--t-ed:#dc2626;--t-or:#7c3aed;--t-icu:#0891b2;--t-logistics:#b7791f;--t-layout:#16a34a;--t-sim:#db2777;--t-resil:#ea580c;--t-env:#0d9488;--t-green:#65a30d;--t-cn:#b91c1c;--t-gap:#475569;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--bg:#0f141c;--panel:#171d28;--text:#e6e9ef;--muted:#9aa4b6;--line:#2a3343;--accent:#7aa2ff;--accent-soft:#1c2740;--warn:#f0b35a;--warn-soft:#2b2214;--shadow:none}
}
:root[data-theme="dark"]{--bg:#0f141c;--panel:#171d28;--text:#e6e9ef;--muted:#9aa4b6;--line:#2a3343;--accent:#7aa2ff;--accent-soft:#1c2740;--warn:#f0b35a;--warn-soft:#2b2214;--shadow:none}
*{box-sizing:border-box}
html{scroll-behavior:auto;scrollbar-gutter:stable;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.7 "Microsoft YaHei","PingFang SC","Noto Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;overflow-anchor:none}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
nav.top{position:sticky;top:0;z-index:50;height:48px;background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:center}
nav.top .wrap{display:flex;gap:4px;align-items:center;overflow-x:auto;white-space:nowrap;scrollbar-width:none}
nav.top a{color:var(--muted);padding:6px 10px;border-radius:6px;font-size:14px}
nav.top a:hover{background:var(--accent-soft);color:var(--accent);text-decoration:none}
nav.top b{margin-right:10px;font-size:15px}
section{padding:36px 0 8px;scroll-margin-top:56px}
h1{font-size:30px;line-height:1.3;margin:0 0 10px}
h2{font-size:23px;margin:0 0 6px;padding-top:4px}
h3{font-size:17px;margin:22px 0 8px}
h2 small{font-size:13px;font-weight:400;color:var(--muted);margin-left:8px}
p{margin:8px 0}
.lead{color:var(--muted);font-size:15px}
.hero{padding:42px 0 18px}
.hero .sub{color:var(--muted);max-width:860px}
.grid{display:grid;gap:12px}
.cards{grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;box-shadow:var(--shadow)}
.stat .n{font-size:26px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}
.stat .l{font-size:12.5px;color:var(--muted)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px;box-shadow:var(--shadow);margin:12px 0}
.two{grid-template-columns:1fr 1fr}
@media (max-width:860px){.two{grid-template-columns:1fr}}
table{border-collapse:collapse;width:100%}
th,td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top;font-size:14px}
th{background:var(--accent-soft);font-weight:600;position:static}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.scroll-x{overflow-x:auto}
.chip{display:inline-block;border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:0 8px;margin:1px 3px 1px 0;font-size:12.5px;line-height:22px;color:var(--text);white-space:nowrap}
a.chip{color:var(--accent)}a.chip:hover{background:var(--accent-soft);text-decoration:none}
.tag{display:inline-block;border-radius:4px;padding:0 6px;margin-right:4px;font-size:12px;line-height:20px;color:#fff;white-space:nowrap}
.grade{display:inline-block;border-radius:4px;padding:0 6px;font-size:12px;line-height:20px;background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn)}
.grade.A{background:#e6f6ec;color:#15803d;border-color:#15803d}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .grade.A{background:#10261a;color:#6ee7a0;border-color:#2f7d52}}
.note{background:var(--warn-soft);border-left:3px solid var(--warn);padding:8px 12px;border-radius:6px;font-size:14px;margin:10px 0}
.bars{display:grid;gap:5px}
.bar{display:grid;grid-template-columns:150px 1fr 56px;align-items:center;gap:8px;font-size:13px}
.bar i{display:block;height:14px;border-radius:3px;background:var(--accent)}
.bar b{font-weight:400;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}
details.paper{border:1px solid var(--line);background:var(--panel);border-radius:8px;margin:6px 0}
details.paper>summary{cursor:pointer;padding:8px 12px;list-style:none;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start;font-size:14px}
details.paper>summary::-webkit-details-marker{display:none}
details.paper>summary .ti{font-weight:600}
details.paper>summary .meta{color:var(--muted);font-size:12.5px;display:block;font-weight:400}
details.paper[open]>summary{border-bottom:1px solid var(--line)}
details.paper .body{padding:8px 14px 10px;font-size:14px}
.body dt{font-weight:600;color:var(--muted);font-size:12.5px;margin-top:6px}
.body dd{margin:0}
.theme-sec{border-top:1px solid var(--line);margin-top:18px;padding-top:6px}
.theme-sec h3{display:flex;align-items:center;gap:8px}
.dot{width:12px;height:12px;border-radius:3px;display:inline-block}
.btn{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:7px;padding:4px 11px;font:inherit;font-size:13.5px;cursor:pointer}
.btn:hover{background:var(--accent-soft)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
input,select{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:7px;padding:5px 9px;font:inherit;font-size:14px}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}
.filters label{font-size:13.5px;color:var(--muted)}
#lib-wrap{min-height:640px}
tr.row{cursor:pointer}
tr.row:hover td{background:var(--accent-soft)}
tr.det td{background:var(--bg);font-size:13.5px}
.pager{display:flex;gap:8px;align-items:center;margin:10px 0}
/* mind map */
.mm{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.mm-bar{min-height:48px;padding:8px 12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--line);font-size:14px}
.mm-bar .info{flex:1 1 320px;min-width:0;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mm-view{height:720px;overflow:auto;background:var(--bg);cursor:grab}
.mm-view.full{height:calc(100vh - 62px)}
.mm-view svg{display:block}
.mm text{font:13px "Microsoft YaHei","PingFang SC",system-ui,sans-serif;fill:var(--text);pointer-events:none;user-select:none}
.mm .node rect{fill:var(--panel);stroke-width:1.6}
.mm .node{cursor:pointer}
.mm .node.sel rect{stroke-width:3}
.mm .node.root rect{fill:var(--text);stroke:var(--text)}
.mm .node.root text{fill:var(--bg);font-weight:700;font-size:15px}
.mm .node.leaf rect{stroke-dasharray:none;fill:var(--bg)}
.mm .node.leaf text{font-size:12px;fill:var(--muted)}
.mm .badge{font-size:11px;fill:var(--muted)}
.mm path.edge{fill:none;stroke-width:1.6;opacity:.65}
.legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:12.5px;color:var(--muted);margin:8px 2px}
.legend span{display:inline-flex;align-items:center;gap:5px}
.net svg{width:100%;height:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.net text{font:11px "Microsoft YaHei",system-ui,sans-serif;fill:var(--text)}
.flow{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:8px 0}
@media (max-width:900px){.flow{grid-template-columns:repeat(2,1fr)}}
.flow .st{background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:8px;padding:8px 9px;font-size:13px}
.flow .st b{display:block;font-size:14px;margin-bottom:3px}
footer{padding:30px 0 60px;color:var(--muted);font-size:13px}
.kbd{font-family:ui-monospace,Consolas,monospace;font-size:12.5px;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:0 5px}
.toc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
