/* 通用知识导图样式。--accent 由各页面覆盖以区分主题色。 */
:root{
  --bg:#f4f6f8; --card:#fff; --ink:#17202a; --dim:#71808c;
  --line:#e3e8ec; --accent:#147d61; --accent-h:#18a77c;
  --code-bg:#1e2733; --code-ink:#e6edf3;
  --l2:#2f6f9f; --l3:#8a6d3b;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.75 -apple-system,BlinkMacSystemFont,"Segoe UI",
  "PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-h)}

header.top{position:sticky;top:0;z-index:30;background:rgba(244,246,248,.95);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:12px 18px}
header.top .wrap{max-width:1000px;margin:0 auto;display:flex;
  align-items:center;gap:14px;flex-wrap:wrap}
header.top h1{font-size:17px;margin:0;font-weight:600;white-space:nowrap}
header.top h1 span{color:var(--dim);font-weight:400;font-size:13px;margin-left:8px}
.actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.actions .sib{font-size:12.5px;color:var(--dim);margin-right:2px}
.actions .sib a{margin-right:7px}
button.btn{font:inherit;font-size:13px;padding:5px 12px;border:1px solid var(--line);
  background:var(--card);color:var(--ink);border-radius:6px;cursor:pointer}
button.btn:hover{border-color:var(--accent);color:var(--accent)}
input.search{font:inherit;font-size:14px;padding:6px 12px;border:1px solid var(--line);
  border-radius:6px;background:var(--card);color:var(--ink);width:180px}
input.search:focus{outline:none;border-color:var(--accent)}

main{max-width:1000px;margin:0 auto;padding:22px 18px 80px}

.intro{background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:16px 20px;margin-bottom:22px}
.intro p{margin:0 0 8px}
.intro p:last-child{margin-bottom:0}

.sect{background:var(--card);border:1px solid var(--line);border-radius:10px;
  margin-bottom:16px;overflow:hidden}
.sect>.head{padding:14px 20px;cursor:pointer;display:flex;align-items:center;
  gap:10px;user-select:none;border-left:4px solid var(--accent)}
.sect>.head:hover{background:#fafbfc}
.sect>.head .num{font-size:12px;color:#fff;background:var(--accent);
  width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  flex:0 0 22px;font-weight:600}
.sect>.head h2{margin:0;font-size:17px;font-weight:600;flex:1}
.sect>.head .cnt{font-size:12px;color:var(--dim)}
.sect>.head .arw{color:var(--dim);font-size:12px;transition:transform .18s}
.sect.open>.head .arw{transform:rotate(90deg)}
.sect>.body{display:none;padding:0 20px 8px}
.sect.open>.body{display:block}
.sect .summary{color:var(--dim);font-size:14.5px;border-left:3px solid var(--line);
  padding:2px 0 2px 14px;margin:4px 0 18px}

.node{margin:0 0 10px}
.node>.nh{cursor:pointer;user-select:none;display:flex;gap:9px;align-items:baseline;
  padding:8px 12px;border-radius:7px;background:#f7f9fa;border:1px solid var(--line)}
.node>.nh:hover{border-color:var(--accent)}
.node>.nh .dot{flex:0 0 auto;color:var(--l2);font-size:11px;line-height:1.9}
.node>.nh .t{font-weight:600;font-size:15.5px;flex:1}
.node>.nh .arw{color:var(--dim);font-size:11px;transition:transform .18s}
.node.open>.nh .arw{transform:rotate(90deg)}
.node>.nb{display:none;padding:4px 2px 6px 16px;border-left:2px solid var(--line);
  margin:8px 0 8px 10px}
.node.open>.nb{display:block}
.node.lv3>.nh{background:transparent;border-style:dashed}
.node.lv3>.nh .dot{color:var(--l3)}
.node.lv3>.nh .t{font-weight:500;font-size:14.5px}

.md p{margin:0 0 12px}
.md ul,.md ol{margin:0 0 12px;padding-left:22px}
.md li{margin:3px 0}
.md strong{font-weight:600}
.md code{background:#eef1f3;padding:1px 5px;border-radius:4px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13.5px}
.md pre{background:var(--code-bg);color:var(--code-ink);padding:13px 15px;
  border-radius:8px;overflow-x:auto;margin:0 0 14px;line-height:1.6}
.md pre code{background:none;padding:0;color:inherit;font-size:13px}
.md table{border-collapse:collapse;width:100%;margin:0 0 14px;font-size:14px;
  display:block;overflow-x:auto}
.md th,.md td{border:1px solid var(--line);padding:6px 10px;text-align:left}
.md th{background:#f2f5f6;font-weight:600;white-space:nowrap}
.md blockquote{margin:0 0 12px;padding:2px 0 2px 14px;
  border-left:3px solid var(--accent);color:var(--dim)}
.md hr{border:0;border-top:1px solid var(--line);margin:16px 0}

.hidden{display:none!important}
mark{background:#ffe9a8;padding:0 2px;border-radius:3px}
.nores{color:var(--dim);text-align:center;padding:40px 0}
footer{max-width:1000px;margin:0 auto;padding:0 18px 40px;
  color:var(--dim);font-size:13px}
@media(max-width:640px){
  header.top h1 span{display:none}
  input.search{width:120px}
  main{padding:16px 12px 60px}
  .sect>.head,.sect>.body{padding-left:14px;padding-right:14px}
  .actions .sib{display:none}
}
