:root{
  --bg:#0c0e14; --bg2:#131722; --card:#181d2b; --card2:#1f2536;
  --line:#2a3148; --txt:#e6e9f2; --txt2:#9aa3bd; --txt3:#6b7490;
  --accent:#c9a25e; --accent2:#8e5cd9; --red:#c24444; --teal:#3fa7a0;
  --glow:rgba(201,162,94,.25);
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--txt);font-family:"Microsoft YaHei","PingFang SC",sans-serif;min-height:100vh}
#topbar{display:flex;justify-content:space-between;align-items:center;padding:18px 28px;background:linear-gradient(180deg,#141926,#0c0e14);border-bottom:1px solid var(--line);flex-wrap:wrap;gap:12px}
.brand{display:flex;gap:14px;align-items:center}
.brand-icon{font-size:36px;filter:drop-shadow(0 0 8px var(--glow))}
.brand h1{font-size:22px;letter-spacing:2px;color:var(--accent)}
.brand .sub{font-size:12px;color:var(--txt3);margin-top:4px;line-height:1.5;word-break:break-word}
.progress-ctrl{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--txt2)}
.progress-ctrl select{background:var(--card2);color:var(--txt);border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-size:13px}
#mainNav{display:flex;gap:4px;padding:10px 24px;background:var(--bg2);border-bottom:1px solid var(--line);flex-wrap:wrap;position:sticky;top:0;z-index:50}
#mainNav button{background:transparent;border:1px solid transparent;color:var(--txt2);padding:8px 16px;border-radius:8px;cursor:pointer;font-size:14px;transition:.2s}
#mainNav button:hover{color:var(--txt);background:var(--card)}
#mainNav button.active{color:var(--accent);background:var(--card);border-color:var(--line)}
main{padding:24px;max-width:1400px;margin:0 auto}
footer{text-align:center;padding:20px;color:var(--txt3);font-size:12px;border-top:1px solid var(--line);margin-top:40px}
h2.view-title{font-size:20px;color:var(--accent);margin-bottom:6px;letter-spacing:1px}
p.view-desc{color:var(--txt2);font-size:13px;margin-bottom:18px}
.hint{color:var(--txt3);font-size:12px;margin:8px 0}
/* cards */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:24px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;text-align:center}
.stat .num{font-size:30px;color:var(--accent);font-weight:700}
.stat .lbl{font-size:12px;color:var(--txt2);margin-top:6px}
.part-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.part-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;cursor:pointer;transition:.25s;position:relative;overflow:hidden}
.part-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.4)}
.part-card.locked{opacity:.45;filter:grayscale(.7)}
.part-card .pno{position:absolute;right:14px;top:8px;font-size:52px;font-weight:800;color:rgba(255,255,255,.05)}
.part-card h3{color:var(--accent);font-size:17px;margin-bottom:8px}
.part-card .meta{font-size:12px;color:var(--txt3);margin-bottom:10px}
.part-card .sum{font-size:13px;color:var(--txt2);line-height:1.7}
.tag{display:inline-block;background:var(--card2);border:1px solid var(--line);color:var(--txt2);font-size:11px;padding:2px 8px;border-radius:10px;margin:2px 3px 0 0}
.tag.gold{color:var(--accent);border-color:var(--accent)}
.tag.purple{color:#b18ae8;border-color:#5d3e91}
.tag.teal{color:var(--teal);border-color:#2a5a56}
.tag.red{color:#e07a7a;border-color:#7a3535}
/* path view */
.path-part{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;padding:22px;margin-bottom:20px}
.path-part h3{color:var(--accent);font-size:18px;margin-bottom:4px}
.path-part .stage{font-size:12px;color:var(--accent2);margin-bottom:10px}
.path-part .sum{color:var(--txt2);font-size:13.5px;line-height:1.8;margin-bottom:12px}
.path-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:900px){.path-cols{grid-template-columns:1fr}}
.path-box{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:14px}
.path-box h4{font-size:13px;color:var(--teal);margin-bottom:8px}
.path-box ul{list-style:none}
.path-box li{font-size:12.5px;color:var(--txt2);line-height:1.7;padding-left:14px;position:relative}
.path-box li::before{content:"◆";position:absolute;left:0;color:var(--accent);font-size:8px;top:6px}
.chips{display:flex;flex-wrap:wrap;gap:4px}
.chip{background:var(--card2);border:1px solid var(--line);border-radius:14px;padding:3px 10px;font-size:12px;color:var(--txt);cursor:pointer;transition:.15s}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip .imp{color:var(--accent);font-size:10px;margin-left:3px}
/* graph view */
.graph-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.graph-toolbar select,.graph-toolbar input{background:var(--card2);color:var(--txt);border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-size:13px}
#graphBox{width:100%;height:calc(100vh - 160px);min-height:900px;background:var(--card);border:1px solid var(--line);border-radius:14px}
/* 树形图/图表容器：高度随展开内容自适应，避免节点堆叠 */
#mindBox,.pd-big,.viz-box,.pd-huge{width:100%;height:auto;min-height:600px;background:var(--card);border:1px solid var(--line);border-radius:14px;transition:height .3s ease;margin:6px 0 4px}
.pd-big{min-height:560px}
.viz-box{min-height:560px}
.pd-huge{min-height:680px}
.pd-charts3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:10px}
.pd-chart{width:100%;height:230px}
/* lists */
.kb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}
.kb-item{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px}
.kb-item h4{font-size:14px;color:var(--txt);margin-bottom:6px}
.kb-item h4 .src{font-size:11px;color:var(--txt3);font-weight:400;margin-left:6px}
.kb-item p{font-size:12.5px;color:var(--txt2);line-height:1.7}
.section-title{font-size:16px;color:var(--teal);margin:26px 0 12px;padding-left:10px;border-left:3px solid var(--teal)}
/* timeline */
.tl-part{margin-bottom:30px}
.tl-part>h3{color:var(--accent);font-size:16px;margin-bottom:14px}
.tl-list{border-left:2px solid var(--line);margin-left:8px;padding-left:22px}
.tl-item{position:relative;padding-bottom:14px}
.tl-item::before{content:"";position:absolute;left:-27px;top:5px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--glow)}
.tl-item .ch{font-size:12px;color:var(--accent);margin-bottom:2px}
.tl-item .ev{font-size:13px;color:var(--txt2);line-height:1.6}
/* index table */
.search-row{margin-bottom:14px;display:flex;gap:10px;flex-wrap:wrap}
.search-row input{flex:1;min-width:220px;background:var(--card2);color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:9px 14px;font-size:14px}
table.idx{width:100%;border-collapse:collapse;font-size:13px}
table.idx th{text-align:left;color:var(--teal);padding:9px 10px;border-bottom:1px solid var(--line);font-size:12px}
table.idx td{padding:9px 10px;border-bottom:1px solid #1d2334;color:var(--txt2);vertical-align:top}
table.idx tr:hover td{background:var(--card)}
table.idx td.nm{color:var(--txt);cursor:pointer;white-space:nowrap}
table.idx td.nm:hover{color:var(--accent)}
.imp-stars{color:var(--accent);letter-spacing:1px}
/* modal */
.modal{position:fixed;inset:0;background:rgba(5,7,12,.75);display:flex;align-items:center;justify-content:center;z-index:200;backdrop-filter:blur(3px)}
.modal.hidden{display:none}
.modal-body{background:var(--card);border:1px solid var(--accent);border-radius:14px;max-width:680px;width:92%;max-height:80vh;overflow:auto;padding:26px;position:relative}
.modal-close{position:absolute;right:12px;top:8px;background:none;border:none;color:var(--txt2);font-size:26px;cursor:pointer}
.modal-close:hover{color:var(--accent)}
#modalContent h3{color:var(--accent);font-size:19px;margin-bottom:4px}
#modalContent .als{color:var(--txt3);font-size:12px;margin-bottom:12px}
.md-sec{margin-bottom:12px}
.md-sec h5{color:var(--teal);font-size:13px;margin-bottom:5px}
.md-sec p,.md-sec li{color:var(--txt2);font-size:13px;line-height:1.7}
.md-sec ul{padding-left:18px}
.spoiler-note{background:#241a10;border:1px solid #5a4426;color:#d8b47a;padding:10px 16px;border-radius:10px;font-size:13px;margin-bottom:18px}

/* ====== 实体悬停浮窗 ====== */
#entPop{position:absolute;z-index:9999;background:#1c2233;border:1px solid #3a4260;border-radius:8px;padding:10px 12px;box-shadow:0 8px 28px rgba(0,0,0,.55);font-size:13px;line-height:1.7;color:#c8cede}
#entPop.hidden{display:none}
#entPop .ep-name{font-size:15px;font-weight:700;margin-bottom:4px}
#entPop .ep-cat{font-size:11px;color:#8a92ab;background:#252c42;border-radius:4px;padding:1px 6px;margin-left:8px;font-weight:400;vertical-align:middle}
#entPop .ep-desc{max-height:220px;overflow-y:auto}
#entPop .ep-parts{margin-top:6px;font-size:11px;color:#6b7490;border-top:1px dashed #2a3148;padding-top:5px}
.ent{cursor:pointer;border-bottom:1px dotted rgba(255,255,255,.25)}
.ent:hover{filter:brightness(1.25);border-bottom-style:solid}

/* ====== 途径爬梯图 ====== */
.pw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(430px,1fr));gap:16px;margin:12px 0 28px}
.pw-card{background:var(--card,#151a28);border:1px solid #262d44;border-top:3px solid var(--pwc);border-radius:10px;padding:14px 16px}
.pw-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:4px}
.pw-name{font-size:17px;font-weight:700;color:var(--pwc)}
.pw-god{font-size:12px;color:#9aa3bd}
.pw-church,.pw-style{font-size:12px;color:#8a92ab;margin:3px 0}
.pw-ladder{margin-top:10px;border-left:3px solid var(--pwc);padding-left:0}
.rung{display:flex;gap:10px;padding:8px 10px;border-bottom:1px dashed #232a40;position:relative}
.rung:hover{background:rgba(255,255,255,.03)}
.rung .rseq{flex:0 0 54px;font-weight:700;color:var(--pwc);font-size:13px;padding-top:2px}
.rung.rung0 .rseq{color:#ffd76a}
.rung.rung0{background:linear-gradient(90deg,rgba(255,215,106,.08),transparent)}
.rung.rungHigh{background:linear-gradient(90deg,rgba(142,92,217,.06),transparent)}
.rung.locked-rung{color:#6b7490;font-size:12px;justify-content:center}
.rbody{flex:1;min-width:0}
.rname{font-size:14px;font-weight:600;color:#e6e9f2}
.rfp{font-size:10px;color:#6b7490;margin-left:8px;font-weight:400}
.rab{font-size:12px;color:#b9c0d4;margin-top:2px;line-height:1.6}
.rfm{margin-top:5px;background:#10141f;border:1px solid #232a40;border-radius:6px;padding:6px 9px;font-size:12px;line-height:1.7}
.fm-t{color:#7fd0a8;font-weight:700;font-size:11px}
.fm-row{margin-top:2px;color:#aeb6cb}
.fm-row b{color:#8a92ab;font-weight:600}
.fm-i{display:inline-block;background:#1a2133;border-radius:4px;padding:0 6px;margin:1px 3px 1px 0;color:#cdd4e6}
.fm-i.aux{opacity:.8}
.fm-src{font-size:10px;color:#5d6580}
.pw-adj{margin-top:8px;font-size:12px;color:#9aa3bd}

/* ====== 隐秘学主题 ====== */
.myst-topic{background:var(--card,#151a28);border:1px solid #262d44;border-radius:10px;margin:10px 0;padding:4px 16px 10px}
.myst-topic summary{cursor:pointer;font-size:16px;font-weight:700;color:#c9a25e;padding:9px 0}
.mt-sec{border-top:1px dashed #232a40;padding:8px 0}
.mt-sec h5{color:#b18ae8;font-size:13px;margin:2px 0 5px}
.mt-sec p{font-size:13px;line-height:1.9;color:#c8cede;margin:0}
.mt-cases,.mt-risks{margin-top:6px;font-size:12px;color:#aeb6cb}
.mt-risks b{color:#e07a7a}
.mt-cases b{color:#7fd0a8}
.mt-cases ul,.mt-risks ul{margin:4px 0 0 18px;line-height:1.8}

/* ====== 纪元长卷 ====== */
.era-strip{display:flex;flex-wrap:wrap;align-items:stretch;gap:6px;margin:12px 0 26px}
.era-card{flex:1 1 180px;min-width:180px;background:var(--card,#151a28);border:1px solid #262d44;border-top:3px solid var(--ec);border-radius:10px;padding:11px 13px}
.era-name{font-weight:700;color:var(--ec);font-size:14px;filter:brightness(1.5)}
.era-span{font-size:11px;color:#8a92ab;margin:3px 0}
.era-mark{font-size:12px;color:#c9a25e;margin:4px 0}
.era-desc{font-size:12px;color:#b9c0d4;line-height:1.7}
.era-arrow{align-self:center;color:#4a5270;font-size:18px}

/* ====== 王朝更替链 ====== */
.dynline{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 26px}
.dl-item{background:var(--card,#151a28);border:1px solid #262d44;border-radius:10px;padding:10px 14px;font-size:13px;line-height:1.8;flex:1 1 300px}
.dl-from{font-weight:700}
.dl-how{color:#8a92ab;font-size:12px;margin:2px 0}
.dl-time{color:#5d6580}
.dl-to{font-weight:700}

/* ====== 历史事件卡 ====== */
.era-block{background:transparent;margin:8px 0}
.era-block>summary{cursor:pointer;font-size:15px;font-weight:700;color:#c9a25e;padding:8px 4px}
.hev-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px;margin:8px 0 18px}
.hev-card{background:var(--card,#151a28);border:1px solid #262d44;border-radius:10px;padding:13px 15px}
.hev-card.war{border-left:3px solid #c24444}
.hev-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:7px}
.hev-name{font-size:15px;font-weight:700;color:#e6e9f2}
.hev-time{font-size:11px;color:#8a92ab;white-space:nowrap}
.hev-row{display:flex;gap:8px;font-size:12.5px;line-height:1.8;margin:4px 0;color:#c8cede}
.hev-row b{flex:0 0 34px;font-size:11px;border-radius:4px;text-align:center;height:fit-content;padding:1px 0;margin-top:3px}
.hb-bg{background:#243049;color:#7ba7e8}
.hb-pr{background:#2c2440;color:#b18ae8}
.hb-rs{background:#1e3529;color:#7fd0a8}
.hb-im{background:#3a2c20;color:#e0a95e}
.hev-actors{margin-top:6px;font-size:12px;color:#9aa3bd;border-top:1px dashed #232a40;padding-top:6px}

/* ====== 时间线增强 ====== */
.tl-sum{font-size:13px;color:#b9c0d4;line-height:1.9;background:var(--card,#151a28);border:1px solid #262d44;border-radius:8px;padding:10px 14px;margin:8px 0}
.tl-arcs{margin:8px 0}
.tl-arc{background:var(--card,#151a28);border:1px solid #262d44;border-radius:8px;margin:6px 0;padding:2px 12px 6px}
.tl-arc summary{cursor:pointer;font-size:14px;font-weight:600;color:#e6e9f2;padding:7px 0}
.tl-arc-no{background:#2c2440;color:#b18ae8;font-size:11px;border-radius:4px;padding:1px 7px;margin-right:6px}
.tl-arc-ch{color:#6b7490;font-size:11px;margin-left:8px;font-weight:400}
.tl-arc-desc{font-size:13px;color:#c8cede;line-height:1.9;padding:2px 0 4px}
.tl-arc-ev{margin:2px 0 6px 20px;font-size:12.5px;line-height:1.9;color:#aeb6cb}
.tl-chap{margin:10px 0}
.tl-chap>summary{cursor:pointer;font-size:14px;font-weight:600;color:#c9a25e;padding:6px 0}

/* ====== 分部详解 / 全书图谱 卡片化容器（解决纯文字裸奔） ====== */
/* 顶部部名切换按钮 */
.part-btns{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin:14px 0 22px}
.pbtn{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 8px;text-align:center;cursor:pointer;transition:.2s;color:var(--txt2);position:relative;overflow:hidden}
.pbtn:hover{border-color:var(--accent);color:var(--txt);background:var(--card2)}
.pbtn.cur{border-color:var(--accent);background:linear-gradient(135deg,rgba(201,162,94,.12),transparent);color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.pbtn.locked{opacity:.4;cursor:not-allowed}
.pbtn .no{font-size:32px;font-weight:800;color:rgba(255,255,255,.06);position:absolute;right:4px;top:-2px}
.pbtn .nm{font-size:13px;line-height:1.35;display:block;position:relative;z-index:1}
.pbtn .nm b{display:block;font-size:14px;color:var(--accent);font-weight:700}
.pbtn .lk{position:absolute;left:6px;top:2px;font-size:11px}

/* 分部详解头部区 */
.pd-head{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;padding:18px 22px;margin-bottom:18px}
.pd-head h3{color:var(--accent);font-size:20px;margin-bottom:8px}
.pd-head p{color:var(--txt2);font-size:14px;line-height:1.9}
.pd-deepsum{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-bottom:22px}
.pd-deepsum h4{color:var(--teal);font-size:15px;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.pd-deepsum p{color:var(--txt2);font-size:13.5px;line-height:1.9}

/* 分节标题 + 内容卡片 */
.pd-section{margin:26px 0 32px}
.pd-section>h4{font-size:16px;color:var(--accent);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.pd-section>h4.collapsible{cursor:pointer;user-select:none}
.pd-section>h4.collapsible:hover{opacity:.85}
.sec-arrow{display:inline-block;color:var(--accent);font-size:13px;line-height:1;transition:transform .2s ease;transform:rotate(0deg)}
.pd-section.collapsed>h4 .sec-arrow{transform:rotate(-90deg)}
.pd-sec-body{overflow:hidden}
.pd-section.collapsed>.pd-sec-body{display:none}

/* 剧情阶段流 */
.arc-flow{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch;margin:10px 0 18px}
.arc-box{flex:1 1 280px;min-width:260px;max-width:360px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;position:relative}
.arc-box .an{font-weight:700;color:var(--accent);font-size:14px;margin-bottom:4px}
.arc-box .ac{font-size:11px;color:var(--txt3);margin-bottom:8px}
.arc-box .ad{font-size:13px;color:var(--txt2);line-height:1.8;margin-bottom:8px}
.arc-box ul{list-style:none;padding-left:0;margin-top:8px}
.arc-box li{font-size:12px;color:var(--txt2);line-height:1.7;padding:4px 0 4px 14px;position:relative;border-top:1px dashed #232a40}
.arc-box li::before{content:"•";position:absolute;left:0;color:var(--accent);font-size:12px}
.arc-arrow{align-self:center;color:var(--accent);font-size:22px;opacity:.6}

/* 五大知识板块：历史人物/家族/王朝/封印物/名词 */
.rich-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;margin:10px 0 18px}
.rich-card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;transition:.2s}
.rich-card:hover{border-color:var(--accent)}
.rc-name{font-size:15px;font-weight:700;color:var(--txt);margin-bottom:6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rc-title{font-size:11px;color:var(--txt3);background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:1px 8px;font-weight:400}
.rc-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.rc-badge{font-size:11px;color:var(--txt2);background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:1px 8px}
.rc-sig{font-size:12px;color:var(--accent);margin-bottom:8px;line-height:1.6}
.rc-desc{font-size:13px;color:var(--txt2);line-height:1.8}
.rc-events{list-style:none;padding-left:0;margin-top:8px}
.rc-events li{font-size:12px;color:var(--txt2);line-height:1.7;padding:5px 0 5px 14px;position:relative;border-top:1px dashed #232a40}
.rc-events li::before{content:"›";position:absolute;left:0;color:var(--accent);font-size:14px}

/* 王朝编年 */
.dyn-timeline{display:flex;flex-direction:column;gap:14px;margin:10px 0 18px}
.dyn-item{display:flex;gap:12px;align-items:flex-start}
.dyn-dot{flex:0 0 32px;height:32px;border-radius:50%;background:var(--accent);color:#0c0e14;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 10px rgba(201,162,94,.3)}
.dyn-card{flex:1;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:13px 16px}
.dyn-name{font-size:15px;font-weight:700;color:var(--txt);margin-bottom:6px}
.dyn-meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px;font-size:12px;color:var(--txt2)}
.dyn-meta span{display:flex;align-items:center;gap:4px}
.dyn-desc{font-size:13px;color:var(--txt2);line-height:1.8}
.dyn-events{list-style:none;padding-left:0;margin-top:8px}
.dyn-events li{font-size:12px;color:var(--txt2);line-height:1.7;padding:4px 0 4px 14px;position:relative;border-top:1px dashed #232a40}
.dyn-events li::before{content:"›";position:absolute;left:0;color:var(--accent)}

/* 封印物卡片 */
.seal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin:10px 0 18px}
.seal-card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;transition:.2s}
.seal-card:hover{border-color:var(--accent)}
.seal-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.seal-code{font-size:11px;color:var(--bg);background:var(--accent);border-radius:6px;padding:1px 7px;font-weight:700}
.seal-name{font-size:15px;font-weight:700;color:var(--txt)}
.seal-grade{font-size:11px;color:var(--txt2);background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:1px 8px;margin-left:auto}
.seal-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.seal-ab{font-size:12px;color:var(--teal);line-height:1.7;margin-bottom:6px}
.seal-dg{font-size:12px;color:#e07a7a;line-height:1.7;margin-bottom:6px}
.g-0级 .seal-card{border-left:3px solid #e07a7a}
.g-1级 .seal-card{border-left:3px solid #e0a95e}
.g-2级 .seal-card{border-left:3px solid #7ba7e8}
.g-3级 .seal-card{border-left:3px solid #6fbf8f}
.g-未知 .seal-card{border-left:3px solid #a0a4b8}

/* 名词总库 */
.glo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin:10px 0 18px}
.glo-card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:13px 15px;transition:.2s}
.glo-card:hover{border-color:var(--accent)}
.glo-card .gt{font-size:15px;font-weight:700;margin-bottom:6px;display:flex;align-items:center;gap:8px}
.glo-card .gc{font-size:11px;color:var(--txt2);background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:1px 8px;font-weight:400}
.glo-card .gd{font-size:13px;color:var(--txt2);line-height:1.8}
.glo-card .gs{font-size:11px;color:var(--txt3);margin-top:8px;border-top:1px dashed #232a40;padding-top:6px}
.glo-search{flex:1;min-width:200px;background:var(--card2);color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:7px 12px;font-size:13px}
.cur-chip{background:var(--accent);color:#0c0e14;border-color:var(--accent);font-weight:600}

/* ===================== 响应式适配 ===================== */
/* 平板 */
@media (max-width: 1024px) {
  main{padding:18px 18px 30px}
  .pd-charts3{grid-template-columns:repeat(2,1fr)}
  .pw-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr))}
  .hev-list{grid-template-columns:repeat(auto-fill,minmax(330px,1fr))}
  .rich-grid,.seal-grid,.glo-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
}
/* 手机 */
@media (max-width: 768px) {
  #topbar{flex-direction:column;align-items:flex-start;gap:10px;padding:14px 14px}
  .brand h1{font-size:18px;letter-spacing:1px}
  .brand .sub{font-size:10px;margin-top:2px}
  .progress-ctrl{width:100%;flex-wrap:wrap;gap:8px}
  .progress-ctrl select{flex:1;min-width:160px}
  #mainNav{padding:8px 10px;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;gap:2px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  #mainNav button{flex:0 0 auto;padding:8px 12px;font-size:13px;border-radius:7px}
  main{padding:14px 12px 28px}
  h2.view-title{font-size:18px}
  p.view-desc{font-size:12px;line-height:1.7}
  .stat-row{grid-template-columns:repeat(2,1fr)}
  .part-grid{grid-template-columns:1fr}
  .pd-charts3{grid-template-columns:1fr}
  .pw-grid,.hev-list{grid-template-columns:1fr}
  .kb-grid,.rich-grid,.seal-grid,.glo-grid{grid-template-columns:1fr}
  .path-cols{grid-template-columns:1fr}
  .pd-head{padding:14px 16px;margin-bottom:14px}
  .pd-head h3{font-size:17px}
  .pd-deepsum{padding:14px 16px}
  .part-btns{grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px}
  .modal-body{width:94%;padding:18px 16px;max-height:86vh}
  #graphBox{height:62vh;min-height:400px}
  .arc-flow{gap:8px}
  .arc-box{flex:1 1 100%;max-width:none}
  /* 表格在手机上横向滚动，避免破版 */
  .idx-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  table.idx{display:table;width:max-content;min-width:100%;font-size:11px}
  table.idx th,table.idx td{padding:7px 8px;vertical-align:top}
  table.idx td.nm{white-space:normal}
  table.idx td:nth-child(3){white-space:normal}
  table.idx td:nth-child(3) .tag{white-space:normal;word-break:break-all}
  .glo-search{min-width:140px}
}
