/* ============================================================
   商业航天产业链地图·知识库 · 设计系统 v0.1
   方法论对齐：aichainmap 站点研究档案（2026-10-03）
   方向：C 混合 —— 纸感档案为底 + 任务徽章点缀
   ============================================================ */
:root {
  /* === Paper 纸感四档 === */
  --bg:        #fafaf7;
  --bg-2:      #ffffff;
  --bg-3:      #f3f3ee;
  --bg-cover:  #edecea;

  /* === Ink 三档墨色 === */
  --ink:       #14171b;
  --ink-soft:  #555b65;
  --ink-faint: #969ba5;

  /* === Rules === */
  --rule:       #d4d6da;
  --rule-faint: #e8eaed;

  /* === Signals === */
  --stamp:  #c8341f;   /* 印章红：品牌 / 警示 / 失败 */
  --accent: #1d4ed8;   /* 普鲁士蓝：链接 / 交互 */
  --up:     #1f6a3a;   /* 成功 */
  --down:   #c8341f;
  --hold:   #9a6a00;   /* 待发 / 建设中 */

  /* === 五层航天谱系 === */
  --l1: #66788a;  --l1-bg: rgba(102,120,138,.10);  --l1-soft: rgba(102,120,138,.16);  /* 钛灰 */
  --l2: #c8492c;  --l2-bg: rgba(200,73,44,.10);    --l2-soft: rgba(200,73,44,.16);   /* 焰橙 */
  --l3: #1d5a9b;  --l3-bg: rgba(29,90,155,.10);    --l3-soft: rgba(29,90,155,.16);   /* 轨道蓝 */
  --l4: #2d7a3f;  --l4-bg: rgba(45,122,63,.10);    --l4-soft: rgba(45,122,63,.16);   /* 测控绿 */
  --l5: #6a3aa8;  --l5-bg: rgba(106,58,168,.10);   --l5-soft: rgba(106,58,168,.16);  /* 星尘紫 */

  /* === 交易所徽章 === */
  --x-a:    #c0392b;  /* A股 */
  --x-h:    #b8860b;  /* 港股 */
  --x-us:   #1d4ed8;  /* 美股 */
  --x-other:#6b46c1;  /* 其他 */
  --x-priv: #7a8088;  /* 私募 */

  /* === 来源分级 === */
  --g-a: #1f6a3a; --g-b: #1d4ed8; --g-c: #9a6a00; --g-d: #969ba5;

  /* === Typography === */
  --mono: 'IBM Plex Mono','SFMono-Regular',Menlo,Consolas,monospace;
  --sans: 'IBM Plex Sans','Noto Sans SC',-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;
  --cn:   'Noto Sans SC',-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;
  --serif:'Noto Serif SC','Source Han Serif SC','Songti SC',serif;

  /* === Layout === */
  --content-max: 1240px;
  --marg-w: 320px;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  background:var(--bg); color:var(--ink);
  font-family:var(--cn); font-size:15px; line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
a { color:var(--accent); text-decoration:none; border-bottom:1px solid rgba(29,78,216,.35); }
a:hover { color:var(--ink); border-bottom-color:var(--ink); }
::selection { background:rgba(200,52,31,.14); }

/* === 顶栏 === */
.topbar { position:sticky; top:0; z-index:50; border-bottom:1px solid var(--rule); background:var(--bg); }
.topbar-in { max-width:var(--content-max); margin:0 auto; padding:14px 32px; display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.brand { font-family:var(--cn); font-weight:900; font-size:17px; letter-spacing:.02em; color:var(--ink); white-space:nowrap; }
.brand em { font-style:normal; color:var(--stamp); }
.brand small { font-family:var(--mono); font-weight:400; font-size:9.5px; letter-spacing:1.5px; color:var(--ink-faint); display:block; text-transform:uppercase; }
.topnav { display:flex; gap:16px; flex-wrap:wrap; margin-left:auto; }
.topnav a { font-size:13px; color:var(--ink-soft); border-bottom:none; }
.topnav a:hover { color:var(--ink); }
.topnav a.on { color:var(--stamp); font-weight:600; }
.build-chip { font-family:var(--mono); font-size:9.5px; letter-spacing:1.2px; color:var(--hold); border:1px solid var(--hold); padding:2px 8px; white-space:nowrap; }
.upd { font-family:var(--mono); font-size:10px; color:var(--ink-faint); letter-spacing:.5px; }

/* === 骨架 === */
.wrap { max-width:var(--content-max); margin:0 auto; padding:0 32px 80px; }
.entry-grid { display:grid; grid-template-columns:minmax(0,1fr) var(--marg-w); gap:48px; align-items:start; }
.entry-grid > main { grid-column:1; grid-row:1; min-width:0; }
.entry-grid > .marg { grid-column:2; grid-row:1; align-self:start; position:sticky; top:84px; }
.entry-grid.single { grid-template-columns:minmax(0,1fr); }
@media (max-width:1080px){
  .entry-grid{ grid-template-columns:1fr; }
  .entry-grid > main, .entry-grid > .marg { grid-column:auto; grid-row:auto; }
  .entry-grid > .marg{ position:static; }
}

/* === 面包屑 / masthead === */
.crumb { font-family:var(--mono); font-size:10.5px; letter-spacing:1px; color:var(--ink-faint); padding:18px 0 0; text-transform:uppercase; }
.crumb a { color:var(--ink-faint); border-bottom:none; } .crumb a:hover{ color:var(--ink); }
.masthead { padding:14px 0 8px; }
.masthead .kicker { font-family:var(--mono); font-size:10.5px; letter-spacing:2.2px; text-transform:uppercase; color:var(--ink-soft); }
.masthead h1 { font-family:var(--serif); font-weight:900; font-size:34px; line-height:1.25; letter-spacing:-.01em; margin:8px 0 6px; }
.masthead .sub { font-size:15px; color:var(--ink-soft); max-width:70ch; }
.masthead .sub b { color:var(--ink); }

/* === 徽章 === */
.chip { display:inline-block; font-family:var(--mono); font-size:10px; letter-spacing:1px; padding:2px 8px; border:1px solid var(--rule); color:var(--ink-soft); border-radius:1px; vertical-align:2px; white-space:nowrap; }
.chip.l1{ color:var(--l1); border-color:var(--l1); background:var(--l1-bg); }
.chip.l2{ color:var(--l2); border-color:var(--l2); background:var(--l2-bg); }
.chip.l3{ color:var(--l3); border-color:var(--l3); background:var(--l3-bg); }
.chip.l4{ color:var(--l4); border-color:var(--l4); background:var(--l4-bg); }
.chip.l5{ color:var(--l5); border-color:var(--l5); background:var(--l5-bg); }
.chip.tka{ color:var(--x-a); border-color:var(--x-a); }
.chip.tkh{ color:var(--x-h); border-color:var(--x-h); }
.chip.tku{ color:var(--x-us); border-color:var(--x-us); }
.chip.tkp{ color:var(--x-priv); border-color:var(--x-priv); }
.chip.tko{ color:var(--x-other); border-color:var(--x-other); }
.chip.ctc-co{ color:var(--ink); border-color:var(--ink); background:var(--bg-3); }
.chip.ctc-const{ color:var(--l3); border-color:var(--l3); background:var(--l3-bg); }
.chip.ctc-sys{ color:var(--l1); border-color:var(--l1); background:var(--l1-bg); }
.chip.ctc-theme{ color:var(--l5); border-color:var(--l5); background:var(--l5-bg); }
.chip.ok{ color:var(--up); border-color:var(--up); }
.chip.no{ color:var(--down); border-color:var(--down); }
.chip.hold{ color:var(--hold); border-color:var(--hold); }

/* === 任务徽章卡 === */
.mission-badge { display:flex; border:1px solid var(--ink); background:var(--bg-2); margin:18px 0 6px; }
.mission-badge .no { font-family:var(--mono); font-size:11px; letter-spacing:2px; color:var(--ink-faint); padding:14px 0 0 18px; }
.mission-badge .mid { flex:1; padding:14px 18px; }
.mission-badge .mid .t { font-family:var(--cn); font-weight:700; font-size:17px; }
.mission-badge .mid .d { font-family:var(--mono); font-size:11.5px; color:var(--ink-soft); margin-top:6px; letter-spacing:.4px; }
.mission-badge .seal { flex:0 0 auto; display:flex; align-items:center; justify-content:center; padding:0 22px; border-left:1px solid var(--rule); }
.mission-badge .seal .z { font-family:var(--cn); font-weight:900; font-size:24px; border:2px solid currentColor; padding:4px 10px; letter-spacing:4px; text-indent:4px; }
.mission-badge .seal .z.ok { color:var(--up); }
.mission-badge .seal .z.no { color:var(--down); }
.mission-badge .seal .z.hold { color:var(--hold); }

/* === 事实栏（右边际） === */
.marg { border:1px solid var(--rule); background:var(--bg-2); padding:18px 20px; font-family:var(--mono); }
.marg h3 { font-size:10px; letter-spacing:2.2px; text-transform:uppercase; color:var(--ink-soft); font-weight:600; margin-bottom:12px; }
.marg dl { display:grid; grid-template-columns:auto 1fr; gap:7px 14px; font-size:12px; }
.marg dt { color:var(--ink-faint); white-space:nowrap; }
.marg dd { color:var(--ink); text-align:right; }
.marg dd a { border-bottom:none; }
.marg .chips { display:flex; flex-wrap:wrap; gap:5px; justify-content:flex-end; }

/* === 正文 === */
.body { margin-top:10px; max-width:76ch; }
.body h2 { font-family:var(--cn); font-weight:700; font-size:19px; margin:30px 0 12px; padding-bottom:8px; border-bottom:1px solid var(--rule); }
.body p { margin:0 0 13px; }
.body ul { list-style:none; margin:0 0 13px; }
.body ul li { padding:5px 0 5px 18px; position:relative; }
.body ul li::before { content:""; position:absolute; left:2px; top:16px; width:7px; height:1px; background:var(--stamp); }
.body table { width:100%; border-collapse:collapse; margin:14px 0 16px; font-size:13px; }
.body th { font-family:var(--mono); font-size:10.5px; letter-spacing:1px; text-transform:uppercase; color:var(--ink-soft); text-align:left; border-bottom:1px solid var(--ink); padding:7px 12px 8px 0; }
.body td { border-bottom:1px solid var(--rule-faint); padding:8px 12px 8px 0; vertical-align:top; }
.body .callout { border-top:1px solid var(--ink); border-bottom:1px solid var(--rule); padding:12px 2px; margin:16px 0; color:var(--ink); }
.body .callout::before { content:"§ "; font-family:var(--mono); color:var(--stamp); }
.deadlink { color:var(--down); border-bottom:1px dashed var(--down); }
b, strong { font-weight:700; }

/* === 溯源 / 反向引用 === */
.backrefs { margin-top:44px; border-top:1px solid var(--ink); padding-top:14px; }
.backrefs h2 { font-family:var(--cn); font-weight:700; font-size:16px; display:flex; align-items:baseline; gap:10px; }
.backrefs h2 .n { font-family:var(--mono); color:var(--stamp); font-size:13px; }
.backrefs h2 small { font-family:var(--mono); font-weight:400; font-size:10px; color:var(--ink-faint); letter-spacing:1.5px; text-transform:uppercase; margin-left:auto; }
.ref-item { border-bottom:1px solid var(--rule-faint); padding:11px 0; }
.ref-item .meta { font-family:var(--mono); font-size:10px; color:var(--ink-faint); letter-spacing:.6px; margin-bottom:3px; }
.ref-item .meta a { color:var(--ink-soft); border-bottom:none; }
.ref-item .quote { font-size:13.5px; color:var(--ink); }
.ref-item .quote b { background:rgba(200,52,31,.10); padding:0 2px; }
.src-list { margin:14px 0 0; font-size:12.5px; }
.src-list li { list-style:none; padding:4px 0; border-bottom:1px solid var(--rule-faint); }
.grade { font-family:var(--mono); font-size:9.5px; padding:1px 6px; border:1px solid currentColor; margin-right:8px; letter-spacing:1px; }
.grade.a{ color:var(--g-a); } .grade.b{ color:var(--g-b); } .grade.c{ color:var(--g-c); } .grade.d{ color:var(--g-d); }

/* === 卡片组（首页 / 索引） === */
.grid { display:grid; gap:14px; }
.g2 { grid-template-columns:repeat(2,1fr); } .g3 { grid-template-columns:repeat(3,1fr); }
@media (max-width:900px){ .g2,.g3{ grid-template-columns:1fr; } }
.card { border:1px solid var(--rule); background:var(--bg-2); padding:16px 18px; display:block; color:var(--ink); }
.card:hover { border-color:var(--ink); }
.card .glyph { font-family:var(--mono); font-size:12px; letter-spacing:2px; color:var(--stamp); }
.card .t { font-weight:700; font-size:15px; margin:6px 0 4px; display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; }
.card .d { font-size:12.5px; color:var(--ink-soft); line-height:1.65; }
.card .meta { font-family:var(--mono); font-size:10px; color:var(--ink-faint); margin-top:8px; letter-spacing:.5px; }

/* === 区块头（壹贰叁…） === */
.sechead { display:flex; align-items:baseline; gap:14px; border-bottom:1px solid var(--ink); padding-bottom:10px; margin:52px 0 20px; }
.sechead .num { font-family:var(--serif); font-weight:900; font-size:26px; color:var(--stamp); }
.sechead h2 { font-family:var(--cn); font-weight:700; font-size:19px; }
.sechead .tag { margin-left:auto; font-family:var(--mono); font-size:9.5px; letter-spacing:1.8px; text-transform:uppercase; color:var(--ink-faint); }
.sechead[id], .layer-band[id] { scroll-margin-top: 72px; }

/* === 五层蛋糕卡 === */
.layer-card { border:1px solid var(--rule); background:var(--bg-2); border-left:3px solid var(--lc,#888); padding:16px 18px; }
.layer-card .no { font-family:var(--mono); font-size:9.5px; letter-spacing:2px; color:var(--lc); }
.layer-card .t { font-weight:700; font-size:16px; margin:4px 0 4px; }
.layer-card .n { font-size:12.5px; color:var(--ink-soft); line-height:1.65; }
.layer-card .m { font-family:var(--mono); font-size:10px; color:var(--ink-faint); margin-top:8px; letter-spacing:.5px; }

/* === 排行行 === */
.rank-row { display:flex; align-items:baseline; gap:10px; border-bottom:1px solid var(--rule-faint); padding:7px 0; }
.rank-row .rk { font-family:var(--mono); font-size:10.5px; color:var(--ink-faint); width:22px; text-align:right; }
.rank-row .nm { font-weight:600; font-size:13.5px; }
.rank-row .nm a { border-bottom:none; }
.rank-row .tk { font-family:var(--mono); font-size:10px; color:var(--ink-faint); }
.rank-row .ref { margin-left:auto; font-family:var(--mono); font-size:10.5px; color:var(--ink-faint); }
.rank-row .dt { margin-left:auto; font-family:var(--mono); font-size:10.5px; color:var(--ink-faint); }

/* === 高频概念（计数标注式，非字号云） === */
.cloud { border:1px solid var(--rule); background:var(--bg-2); padding:14px 18px; line-height:2.15; }
.cloud a { display:inline-block; white-space:nowrap; font-size:13px; margin:2px 12px 2px 0;
  border-bottom:none; color:var(--ink); }
.cloud a:hover { color:var(--stamp); }
.cloud a .w { font-family:var(--mono); font-size:9.5px; color:var(--ink-faint);
  margin-left:5px; padding:0 4px; border:1px solid var(--rule-faint);
  background:var(--bg-3); border-radius:1px; vertical-align:1px; }
.cloud a:hover .w { color:var(--stamp); border-color:var(--stamp); }

/* === 索引列表 === */
.idx-group { margin:26px 0; }
.idx-group h3 { font-family:var(--cn); font-weight:700; font-size:15px; padding-bottom:7px; border-bottom:1px solid var(--ink); display:flex; gap:10px; align-items:baseline; }
.idx-group h3 .c { font-family:var(--mono); font-weight:400; font-size:10.5px; color:var(--ink-faint); }
.idx-list { display:flex; flex-wrap:wrap; gap:0 18px; }
.idx-list a { font-size:13.5px; padding:5px 0; display:inline-block; border-bottom:none; color:var(--ink); }
.idx-list a:hover { color:var(--stamp); }
.idx-list a small { font-family:var(--mono); font-size:9.5px; color:var(--ink-faint); margin-left:4px; }

/* === 公司索引：层级分隔带 + 卡片网格 === */
.layer-band { display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; row-gap:6px; border-top:1px solid var(--ink); margin:52px 0 6px; padding:16px 0 0 14px; position:relative; }
.layer-band::before { content:""; position:absolute; left:0; top:16px; bottom:4px; width:4px; background:var(--band,#888); }
.layer-band .no { font-family:var(--mono); font-size:10px; letter-spacing:1.8px; color:var(--band,#888); font-weight:600; text-transform:uppercase; max-width:200px; line-height:1.6; }
.layer-band h2 { font-family:var(--serif); font-weight:900; font-size:23px; letter-spacing:-.01em; white-space:nowrap; }
.layer-band .stat { margin-left:auto; font-family:var(--mono); font-size:10.5px; color:var(--ink-faint); letter-spacing:.5px; white-space:nowrap; }
.layer-band .stat b { color:var(--ink-2); font-weight:600; }
.sec-nav { display:flex; flex-wrap:wrap; gap:6px; margin:18px 0 4px; }
.sec-nav a { font-family:var(--mono); font-size:10px; letter-spacing:.8px; padding:3px 10px; border:1px solid var(--rule); color:var(--ink-2); text-decoration:none; border-radius:1px; }
.sec-nav a:hover { border-color:var(--ink); color:var(--ink); }
.sec-nav a .dot { display:inline-block; width:7px; height:7px; border-radius:1px; margin-right:6px; vertical-align:0; background:var(--dot,#888); }
.sub-block { margin:24px 0 30px; }
.sub-head { display:flex; align-items:baseline; gap:10px; padding-bottom:6px; border-bottom:1px solid var(--rule); margin-bottom:10px; }
.sub-head h3 { font-size:14.5px; font-weight:700; }
.sub-head h3 a { color:var(--ink); border-bottom:none; }
.sub-head h3 a:hover { color:var(--stamp); }
.sub-head .c { font-family:var(--mono); font-size:10px; color:var(--ink-faint); letter-spacing:.5px; }
.sub-head .blurb { font-size:11.5px; color:var(--ink-faint); margin-left:auto; text-align:right; max-width:46ch; line-height:1.5; display:none; }
@media (min-width:1180px){ .sub-head .blurb{ display:block; } }
.co-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(196px,1fr)); gap:10px; }
.co-card { border:1px solid var(--rule); background:var(--bg-2); padding:11px 13px 10px; display:block; color:var(--ink); }
.co-card:hover { border-color:var(--ink); }
.co-card .nm { font-weight:600; font-size:13.5px; line-height:1.45; }
.co-card .meta { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:7px; }
.co-card .tk { font-family:var(--mono); font-size:9.5px; letter-spacing:.3px; color:var(--ink-faint); }
.co-card .refs { font-family:var(--mono); font-size:9.5px; color:var(--ink-faint); white-space:nowrap; }
.co-card .refs b { color:var(--stamp); font-weight:600; }
.co-card.dim .nm { color:var(--ink-soft); }

/* === 页脚 === */
.footer { border-top:1px solid var(--ink); margin-top:70px; }
.footer-in { max-width:var(--content-max); margin:0 auto; padding:18px 32px 30px; font-family:var(--mono); font-size:10.5px; color:var(--ink-faint); line-height:1.9; letter-spacing:.4px; }
.footer-in a { color:var(--ink-soft); border-bottom:none; }
.footer-in .disc { margin-top:8px; max-width:100ch; }
