/* ==========================================================================
   青简+ MedAnchor · 共享样式表 shared.css · v3.1.0
   四页站点（index / tech / hospital / doctor）共用：
   设计令牌 · 布局壳 · 左栏大纲 · AI 摘要卡 · 实体页组件 · 移动端导航
   页面私有样式仍保留在各页 <style> 中（布局覆写 / 专属模块 / 页面媒体查询）
   ========================================================================== */

:root{
  --bg:#f5f8f4;--panel:#e6efe8;--card:#ffffff;--ink:#1c2a21;--ink2:#51655a;--ink3:#8ba293;
  --line:#d8e4da;--line2:#c3d5c7;--green:#2e7d57;--greenbg:#e4f2ea;--greendk:#1f5c40;--amber:#b7791f;--red:#c2443c;--ok:#1f7a5c;
  --sans:"Helvetica Neue","Inter","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --serif:"Noto Serif SC","Songti SC","SimSun",serif;
  --mono:"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
  --ease:cubic-bezier(.19,1,.22,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15.5px;line-height:1.8;-webkit-font-smoothing:antialiased}
::selection{background:var(--green);color:#fff}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:4px}
@keyframes blink{50%{opacity:.3}}

/* ===== 布局壳 ===== */
.layout{max-width:1320px;margin:0 auto;padding:0 28px;display:grid;grid-template-columns:238px 1fr;gap:34px}
.maincol{min-width:0}

/* ===== 左栏：大纲树 ===== */
.rail{position:sticky;top:0;height:100vh;padding:20px 10px 20px 0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line2) transparent}
.rail::-webkit-scrollbar{width:5px}
.rail::-webkit-scrollbar-thumb{background:var(--line2);border-radius:99px}
.rail::-webkit-scrollbar-track{background:transparent}
.rail .logo{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.rail .logo i{width:32px;height:32px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:900;font-size:15px;border-radius:8px;font-style:normal}
.rail .logo b{font-size:14px;letter-spacing:.04em}
.rail .logo span{display:block;font-family:var(--mono);font-size:8px;letter-spacing:.2em;color:var(--ink3)}
.rail .back{display:inline-flex;gap:6px;align-items:center;font-family:var(--mono);font-size:10px;color:var(--ink3);margin-bottom:16px;transition:.25s}
.rail .back:hover{color:var(--green)}
.rail .outt{font-family:var(--mono);font-size:8.5px;letter-spacing:.2em;color:var(--ink3);margin:6px 0 8px}
.outline{list-style:none;margin-bottom:14px}
.outline li a{display:block;font-size:11.5px;color:var(--ink2);padding:4px 10px 4px 13px;border-left:2px solid var(--line2);transition:.25s;line-height:1.5}
.outline li a:hover{color:var(--green)}
.outline li a.on{color:var(--green);border-left-color:var(--green);background:var(--greenbg);font-weight:700}
.outline li a.ext{color:var(--green);font-weight:600;border-left-style:dashed}
.outline .tag{font-family:var(--mono);font-size:7.5px;color:var(--ink3);margin-right:5px}
.rail .meta{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line2);font-family:var(--mono);font-size:8.5px;color:var(--ink3);line-height:2}
.rail .meta b{color:var(--green)}

/* ===== AI 摘要卡（实体页左栏） ===== */
.aicard{background:var(--ink);color:#c8d8cd;border-radius:12px;padding:15px 15px 13px;font-size:11px}
.aicard .ah{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;color:#8fdcb4;margin-bottom:10px}
.aicard .ah .pulse{display:inline-flex;gap:5px;align-items:center}
.aicard .ah .pulse i{width:6px;height:6px;background:#8fdcb4;border-radius:50%;animation:blink 2s infinite}
.aicard .excerpt{background:rgba(143,220,180,.07);border-left:2px solid #8fdcb4;border-radius:0 8px 8px 0;padding:9px 11px;font-size:10.5px;line-height:1.85;margin-bottom:11px}
.aicard .excerpt .ek{font-family:var(--mono);font-size:7.5px;letter-spacing:.16em;color:#8fdcb4;display:block;margin-bottom:4px}
.aicard .rows{font-family:var(--mono);font-size:8.8px;line-height:2.1;border-top:1px solid rgba(255,255,255,.08);padding-top:9px}
.aicard .rows .k{color:#6c7f73;display:inline-block;width:56px}
.aicard .rows b{color:#fff;font-weight:600}
.aicard .rows a{color:#8fdcb4;border-bottom:1px dotted #8fdcb4}
.aicard .copy{width:100%;margin-top:11px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;padding:9px 6px;border-radius:8px;border:1px solid rgba(143,220,180,.4);background:transparent;color:#8fdcb4;cursor:pointer;transition:.25s}
.aicard .copy:hover{background:rgba(143,220,180,.12)}
.aicard .sigs{margin-top:10px;display:flex;gap:5px;flex-wrap:wrap}
.aicard .sigs span{font-family:var(--mono);font-size:7.5px;padding:3px 8px;border-radius:99px;border:1px solid rgba(255,255,255,.18);color:#c8d8cd}
.aicard .sigs span.no{color:#ff9aa2;border-color:rgba(255,154,162,.4)}
/* 可折叠形态：summary 承载标题行+摘取卡（默认可见），端点行/按钮收进 details */
details.aicard>summary{list-style:none;cursor:pointer;border-radius:8px}
details.aicard>summary::-webkit-details-marker{display:none}
details.aicard>summary .ah{margin-bottom:9px}
.aicard .chev{display:inline-block;margin-left:5px;transition:.3s;font-size:8px}
.aicard[open] .chev{transform:rotate(180deg)}
details.aicard>summary .excerpt{display:block;margin-bottom:0}
details.aicard[open]>summary .excerpt{margin-bottom:11px}

/* ===== 头部（实体页头版） ===== */
header{padding:30px 0 24px;scroll-margin-top:16px}
.hd-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.sem{font-family:var(--mono);font-size:9.5px;color:var(--green);background:#fff;border:1px solid var(--green);padding:4px 10px;border-radius:4px}
.hd-top .crumb{font-family:var(--mono);font-size:10px;color:var(--ink3)}
.hd-top .crumb b{color:var(--ink)}
.hd-top .crumb a:hover{color:var(--green)}
.idbar{display:grid;grid-template-columns:200px 1fr;gap:26px;margin-top:24px;align-items:stretch}
.idav{background:linear-gradient(160deg,var(--green),var(--greendk));color:#fff;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 16px;position:relative;overflow:hidden}
.idav .ch{font-family:var(--serif);font-size:70px;font-weight:900;line-height:1}
.idav .py{font-family:var(--mono);font-size:9px;letter-spacing:.24em;margin-top:9px;color:#bfe5cf}
.idav .vf{position:absolute;bottom:11px;font-family:var(--mono);font-size:8px;letter-spacing:.1em;color:#8fdcb4;background:rgba(0,0,0,.25);padding:4px 12px;border-radius:99px}
.idhd h1{font-family:var(--serif);font-size:clamp(30px,3.6vw,44px);font-weight:900;line-height:1.25}
.idhd .en{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--ink3);margin-top:5px}
.ttl{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.ttl span{font-size:12.5px;font-weight:700;background:#fff;border:1px solid var(--line);border-radius:99px;padding:7px 15px;position:relative;cursor:default}
.ttl span::after{content:"✓";font-size:9px;color:var(--green);margin-left:7px}
.ttl span:hover{border-color:var(--green)}
.ttl span[data-tip]:hover::before{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:0;font-family:var(--mono);font-size:9px;font-weight:400;background:var(--ink);color:#c8d8cd;padding:8px 13px;border-radius:7px;white-space:nowrap;z-index:9;line-height:1.7}
.idhd .sum{margin-top:14px;font-size:14px;color:var(--ink2);line-height:1.95;max-width:660px}
.idhd .sum b{color:var(--green)}

/* ===== Hero 头版（index / tech 平台页） ===== */
header.hero{padding:34px 0 26px}
header.hero h1{font-family:var(--serif);font-size:clamp(34px,4.4vw,54px);font-weight:900;line-height:1.3;margin-top:20px;letter-spacing:.02em}
header.hero h1 em{font-style:normal;color:var(--green)}
header.hero .lede{margin-top:16px;max-width:720px;color:var(--ink2);font-size:15px;line-height:1.95}
header.hero .lede b{color:var(--green)}
.hd-badges{margin-top:20px;display:flex;gap:8px;flex-wrap:wrap}
.hd-badges span{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;padding:6px 13px;background:#fff;border:1px solid var(--line);border-radius:99px;color:var(--ink2)}
.hd-badges span b{color:var(--green)}

/* ===== 语义区块 ===== */
section{padding:42px 0;border-top:1px solid var(--line);scroll-margin-top:16px}
.sec{display:flex;align-items:baseline;gap:13px;margin-bottom:22px;flex-wrap:wrap}
.sec .sem{align-self:flex-start;margin-top:4px}
.sec h2{font-family:var(--serif);font-size:clamp(20px,2.5vw,28px);font-weight:900;letter-spacing:.03em}
.sec .en{font-family:var(--mono);font-size:9px;letter-spacing:.2em;color:var(--ink3);text-transform:uppercase}
.sec .note{margin-left:auto;font-size:11.5px;color:var(--ink2);max-width:290px;text-align:right}
.ep-chip{font-family:var(--mono);font-size:8.5px;color:var(--green);background:#fff;border:1px dashed var(--green);border-radius:99px;padding:4px 11px;letter-spacing:.04em}

/* ===== 表格与徽章 ===== */
table.tb{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
table.tb th{background:var(--panel);font-family:var(--mono);font-size:9px;letter-spacing:.12em;color:var(--ink2);padding:10px 14px;text-align:left;font-weight:600;border-bottom:1px solid var(--line2)}
table.tb td{padding:12px 14px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:top;line-height:1.8}
table.tb tr:last-child td{border-bottom:0}
table.tb tr:hover td{background:#f7fbf8}
table.tb .mono{font-family:var(--mono);font-size:10.5px;color:var(--green)}
.pill{display:inline-block;font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;padding:3px 10px;border:1px solid var(--ok);color:var(--ok);border-radius:99px}
.pill.sil1,.pill.core{border-color:var(--green);color:var(--green);background:var(--greenbg)}
.pill.abs{border-color:var(--amber);color:var(--amber)}
.pill.pend{border-color:var(--ink3);color:var(--ink3)}
.lv-pill{font-family:var(--mono);font-size:8px;letter-spacing:.08em;padding:2px 8px;border-radius:99px;background:var(--green);color:#fff}
.lv-pill.sh{background:var(--amber)}

/* ===== 按钮 ===== */
.btn{display:inline-flex;align-items:center;gap:9px;padding:12px 22px;font-size:13.5px;font-weight:700;background:var(--green);color:#fff;border:0;border-radius:9px;cursor:pointer;transition:.3s;font-family:var(--sans);white-space:nowrap}
.btn:hover{background:var(--ink)}

/* ===== 双能力（医生页/医院页共用） ===== */
.dual{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.dc{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.dc .dh2{padding:15px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}
.dc.surg .dh2{background:linear-gradient(90deg,var(--greenbg),#fff)}
.dc.cath .dh2{background:linear-gradient(90deg,#f6efe2,#fff)}
.dc .dh2 b{font-family:var(--serif);font-size:16.5px;font-weight:900}
.dc .dh2 .cnt{font-family:var(--mono);font-size:9px;color:var(--ink3)}
.dc ul{list-style:none;padding:7px 20px 13px}
.dc li{padding:10px 0;border-bottom:1px dashed var(--line);display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.7}
.dc li:last-child{border-bottom:0}
.dc li .no{font-family:var(--mono);font-size:9px;color:var(--green);margin-top:4px;flex:none}
.dc li small{display:block;color:var(--ink2);font-size:11.5px;margin-top:2px}

/* ===== 实体图谱 ===== */
.gwrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.gbar{display:flex;gap:12px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap;font-size:11px;color:var(--ink2)}
.gbar .lg{display:inline-flex;gap:6px;align-items:center}
.gbar .lg i{width:9px;height:9px;border-radius:50%}
.gbar .hint{margin-left:auto;font-family:var(--mono);font-size:9px;color:var(--ink3)}
#graph{display:block;width:100%;height:480px;cursor:grab}
#ginfo{border-top:1px solid var(--line);padding:15px 20px;font-size:12.5px;line-height:1.85;color:var(--ink2);background:var(--greenbg);min-height:66px}
#ginfo b{color:var(--ink)}

/* ===== 页脚共享组件（四页统一结构） ===== */
footer .f-side{text-align:right}

/* ===== 就诊（医生页 .day/.typ · 医院页 .vk/h5） ===== */
.visit{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vs{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}
.vs .day{font-family:var(--serif);font-size:21px;font-weight:900}
.vs .typ{display:inline-block;margin-top:9px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;padding:4px 12px;border-radius:99px;background:var(--greenbg);color:var(--green);border:1px solid var(--line2)}
.vs .vk{font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;color:var(--green)}
.vs h5{font-size:15.5px;font-weight:800;margin-top:7px}
.vs p{font-size:12px;color:var(--ink2);margin-top:10px;line-height:1.85}
.vnote{margin-top:12px;font-size:12px;color:var(--ink2);background:var(--panel);border:1px dashed var(--line2);border-radius:10px;padding:13px 17px}

/* ===== JSON-LD 抽屉 ===== */
.ldbtn{position:fixed;right:22px;bottom:22px;z-index:50;background:var(--ink);color:#8fdcb4;font-family:var(--mono);font-size:10px;letter-spacing:.1em;border:1px solid rgba(143,220,180,.35);border-radius:99px;padding:11px 19px;cursor:pointer;transition:.3s;box-shadow:0 14px 30px -16px rgba(0,0,0,.5)}
.ldbtn:hover{background:var(--green);color:#fff}
.ldbar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--ink);border-top:2px solid var(--green);transform:translateY(102%);transition:transform .5s var(--ease);max-height:62vh;display:flex;flex-direction:column}
.ldbar.open{transform:none}
.ldbar .lh{display:flex;gap:12px;align-items:center;padding:13px 22px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:#8fdcb4;border-bottom:1px solid rgba(255,255,255,.1)}
.ldbar .lh button{margin-left:auto;background:none;border:1px solid rgba(255,255,255,.25);color:#c8d8cd;border-radius:99px;padding:6px 14px;font-family:var(--mono);font-size:9px;cursor:pointer}
.ldbar pre{margin:0;padding:18px 24px;overflow:auto;font-family:var(--mono);font-size:10.5px;line-height:1.95;color:#c8d8cd}

/* ===== 页脚 ===== */
footer{padding:30px 0 52px;font-family:var(--mono);font-size:9.5px;color:var(--ink3);line-height:2.3;border-top:1px solid var(--line)}
footer .row{display:flex;justify-content:space-between;gap:22px;flex-wrap:wrap}
footer a{color:var(--green)}
.aigc{border:1px solid var(--line);padding:7px 15px;border-radius:99px;display:inline-flex;gap:8px;align-items:center;color:var(--ink2);background:#fff}
.aigc i{width:7px;height:7px;background:var(--green);border-radius:50%}

/* ===== 入场动效 ===== */
.rv{opacity:0;transform:translateY(15px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.in{opacity:1;transform:none}

/* ===== 移动端导航（≤1080px 显示） ===== */
.mobilebar{display:none;position:fixed;top:0;left:0;right:0;z-index:70;background:#fff;border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 14px}
.mb-logo{display:flex;align-items:center;gap:8px;flex:none}
.mb-logo i{width:26px;height:26px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:900;font-size:13px;border-radius:7px;font-style:normal}
.mb-logo span{font-weight:700;font-size:13.5px;letter-spacing:.03em}
.mb-logo span b{color:var(--green)}
.mb-pages{display:flex;gap:2px;margin-left:auto;overflow:auto}
.mb-pages a{font-size:12px;padding:6px 11px;border-radius:99px;color:var(--ink2);white-space:nowrap;transition:.25s}
.mb-pages a:hover{color:var(--green)}
.mb-pages a.on{background:var(--greenbg);color:var(--green);font-weight:700}
.mb-toc{position:relative;flex:none}
.mb-toc summary{list-style:none;font-family:var(--mono);font-size:10px;padding:7px 13px;border:1px solid var(--line2);border-radius:99px;cursor:pointer;color:var(--ink2);user-select:none}
.mb-toc summary::-webkit-details-marker{display:none}
.mb-toc[open] summary{background:var(--ink);color:#fff;border-color:var(--ink)}
.mb-toc-list{position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px -20px rgba(28,42,33,.35);padding:8px;min-width:210px;max-height:62vh;overflow:auto}
.mb-toc-list a{display:block;font-size:12.5px;padding:8px 12px;border-radius:8px;color:var(--ink2);line-height:1.5}
.mb-toc-list a:hover{background:var(--greenbg);color:var(--green)}
.mb-toc-list a.ext{border-top:1px dashed var(--line);margin-top:4px;border-radius:0 0 8px 8px;color:var(--green);font-weight:600}

/* ===== 回到顶部 ===== */
.totop{position:fixed;left:auto;right:22px;bottom:22px;z-index:65;width:42px;height:42px;border-radius:50%;border:1px solid var(--line2);background:#fff;color:var(--green);font-size:17px;cursor:pointer;opacity:0;pointer-events:none;transform:translateY(8px);transition:.3s;box-shadow:0 10px 24px -12px rgba(28,42,33,.35)}
.totop.show{opacity:1;pointer-events:auto;transform:none}
.totop:hover{background:var(--green);color:#fff;border-color:var(--green)}

/* ===== 响应式 · 共享断点 ===== */
@media(max-width:1080px){
  .layout{grid-template-columns:1fr}
  .rail{display:none}
  body{padding-top:50px}
  .mobilebar{display:flex}
  header,section{scroll-margin-top:62px}
  .totop{left:14px;right:auto;bottom:14px}
}
@media(max-width:960px){
  .dual,.visit{grid-template-columns:1fr 1fr}
  .idbar{grid-template-columns:1fr}
  .idav{padding:34px 16px}
}
@media(max-width:620px){
  .dual,.visit{grid-template-columns:1fr}
  .mb-pages a{padding:5px 8px;font-size:11px}
  .sec .note{margin-left:0;max-width:none;text-align:left}
}
