/* ==========================================================================
   余量 · MARGIN REVIEW — 站点样式 v5
   衬线正文 / 小红书式竖版内容流 / 杂志阅读版式 / 手机响应式 / 打印 A4 竖版
   v5 变更：刊名与副题更新；新增关键词 chip（.kws / .kw）；新增插画题图（figure.illo）
   ========================================================================== */

/* ==========================================================================
   自带衬线字体（A）：思源宋体子集，GB2312 全字符 + 站内用字，woff2
   说明：macOS 系统虽装有 Source Han Serif SC，但 Chrome 对 CFF-OTF 的
   local()/族名匹配不可靠（实测静默回退 Songti SC），故自带字体文件用
   @font-face 显式声明，确保正文真实以思源宋体渲染。
   ========================================================================== */
@font-face{
  font-family:"Margin Serif";
  src:url("fonts/SourceHanSerifSC-Regular.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Margin Serif";
  src:url("fonts/SourceHanSerifSC-SemiBold.woff2") format("woff2");
  font-weight:700;font-style:normal;font-display:swap;
}

:root{
  --ink:#1B2A38;
  --ink-soft:#3A4754;
  --paper:#FDFDFB;
  --paper-2:#F6F3EC;
  --muted:#5F6B77;
  --line:#E3DDD1;
  /* 主题色：默认取第 001 期「深赭红」，文章页/卡片可用 data-theme 整期覆盖 */
  --accent:#983C28;       /* 强调色：链接、徽标文字、装饰线、首字下沉 */
  --accent-ink:#7A2A18;   /* 深色文字：需要更重的强调文字时使用 */
  --accent-soft:#F7E4DC;  /* 淡色底块：徽标底、金句底、色带 */
  --accent-line:#B47260;  /* 分隔线、进度条、细装饰线 */
  /* 栏目固定标识色（「人与公司」栏目标识，不随期号变化） */
  --person-accent:#1C5340;
  --person-soft:#E1EDE6;
  /* 正文与标题：自带思源宋体优先 → 系统思源宋体 → macOS 系统衬线（Songti SC / STSong）兜底 */
  --serif:"Margin Serif","Source Han Serif SC","Source Han Serif CN","Noto Serif SC","Noto Serif CJK SC","Songti SC","STSong",serif;
  /* 仅小号元信息（刊名英文、期号、图表注脚、来源）保留无衬线 */
  --meta:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --mono:"SF Mono","Menlo",monospace;
  --radius:20px;
}

/* ---------- 六套预设主题色板（低饱和深色，全部通过 WCAG 校验） ----------
   t1 深赭红 成本 / 涨价　　t2 深靛蓝 资本 / IPO　　　t3 墨绿 人与公司 / 经营
   t4 深褐   政策 / 监管　　t5 紫蓝   科技 / 算力　　 t6 深橄榄 能源 / 制造
   ------------------------------------------------------------------------- */
[data-theme="t1"]{--accent:#983C28;--accent-ink:#7A2A18;--accent-soft:#F7E4DC;--accent-line:#B47260;}
[data-theme="t2"]{--accent:#1F3F73;--accent-ink:#16305A;--accent-soft:#E2E9F5;--accent-line:#7189A8;}
[data-theme="t3"]{--accent:#1C5340;--accent-ink:#123E2E;--accent-soft:#E1EDE6;--accent-line:#6F9284;}
[data-theme="t4"]{--accent:#6B4520;--accent-ink:#513114;--accent-soft:#F3E8D7;--accent-line:#A48464;}
[data-theme="t5"]{--accent:#473178;--accent-ink:#32235C;--accent-soft:#E8E3F4;--accent-line:#8E81AD;}
[data-theme="t6"]{--accent:#565B1C;--accent-ink:#3F4413;--accent-soft:#ECECDA;--accent-line:#8E9166;}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--serif);
  font-size:17px;
  line-height:1.95;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;}
a{color:var(--accent);text-decoration:none;}
a:hover{text-decoration:none;color:var(--ink);}
h1,h2,h3,h4,h5{font-family:var(--serif);font-weight:700;}

/* ---------- 阅读进度条 ---------- */
.progress{
  position:fixed;top:0;left:0;height:3px;width:0%;
  background:linear-gradient(90deg,var(--accent),var(--accent-line));
  z-index:100;transition:width .08s linear;
}

/* ---------- 顶部条（首页与文章页统一） ---------- */
.topbar{
  position:sticky;top:0;z-index:90;
  background:rgba(253,253,251,.9);
  backdrop-filter:saturate(180%) blur(14px);
}
.topbar-in{
  max-width:1180px;margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.brand{
  font-family:var(--serif);font-size:19px;letter-spacing:.2em;
  color:var(--ink);font-weight:700;
  display:inline-flex;align-items:center;gap:9px;
}
.brand .brand-logo{
  display:block;flex:0 0 auto;width:auto;height:clamp(20px,2vw,26px);
}
.brand:hover{color:var(--ink);}
.brand i{
  font-style:normal;font-family:var(--meta);font-size:10px;letter-spacing:.24em;
  color:var(--muted);margin-left:2px;font-weight:400;
}
.topbar-meta{
  font-family:var(--meta);font-size:12px;color:var(--muted);letter-spacing:.08em;
  display:flex;align-items:center;gap:14px;
}
.topbar-meta a{color:var(--ink-soft);}
.topbar-meta a:hover{color:var(--accent);}
.topbar-meta .dot{color:var(--line);}

/* ---------- 首页刊头 ---------- */
.masthead{max-width:1180px;margin:0 auto;padding:56px 24px 0;}
.masthead .kicker{
  font-family:var(--meta);font-size:11px;letter-spacing:.34em;color:var(--accent);
  text-transform:uppercase;
}
/* 刊名视觉锤：几何化字标（SVG 字标，主色 #7A2A18 / 深墨 #1F1F1D），高度 40–52px 自适应 */
.masthead h1{
  font-size:66px;line-height:1;margin:18px 0 18px;letter-spacing:.08em;
}
.masthead h1 .logo{
  display:block;height:clamp(43px,4.3vw,52px);width:auto;max-width:100%;
}
.masthead .sub{
  font-size:15px;color:var(--ink-soft);letter-spacing:.04em;max-width:none;
  text-wrap:pretty;
}
@media (min-width:861px){
  .masthead .sub{white-space:nowrap;}
}
.masthead .rule{height:1px;background:var(--ink);margin:32px 0 0;opacity:.85;}
.masthead .rule-thin{height:1px;background:var(--line);margin:4px 0 0;}

/* ---------- 首页栏目说明（v10：细线分区、栏目名与文案分层） ---------- */
.notebox{max-width:1180px;margin:0 auto;padding:34px 24px 0;}
.notebox-in{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  padding:0;
  border-top:1px solid var(--ink);border-bottom:1px solid var(--line);
}
.notebox-in b{color:var(--ink);}
.notebox-in .col-note{display:block;margin:0;padding:24px 36px 26px 0;}
.notebox-in .col-note + .col-note{
  margin:0;border-top:0;border-left:1px solid var(--line);
  padding:24px 0 26px 36px;
}
.notebox-in .col-note-h{display:flex;align-items:baseline;gap:12px;white-space:nowrap;margin:0 0 11px;}
.notebox-in .col-name{
  font-family:var(--serif);font-size:19px;font-weight:700;letter-spacing:.08em;
  color:var(--ink);line-height:1.25;
}
.notebox-in .col-en{
  font-family:var(--meta);font-size:9.5px;font-weight:400;letter-spacing:.22em;
  color:var(--muted);text-transform:uppercase;
}
.notebox-in .col-note p{
  margin:0;max-width:29em;
  font-size:13.8px;line-height:1.9;color:var(--muted);
}
@media (max-width:640px){
  .notebox-in{grid-template-columns:1fr;}
  .notebox-in .col-note{padding:20px 0 22px;}
  .notebox-in .col-note + .col-note{padding:20px 0 22px;border-left:0;border-top:1px solid var(--line);}
  .notebox-in .col-name{font-size:17.5px;}
  .notebox-in .col-note p{font-size:13.4px;line-height:1.85;}
}

/* ---------- 栏目徽标 ---------- */
.badge{
  display:inline-block;font-family:var(--meta);font-size:11.5px;letter-spacing:.14em;
  color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:5px 13px;
  line-height:1.5;
}
.badge.person{color:var(--person-accent);background:var(--person-soft);}
.badge.soon{color:var(--accent-ink);background:transparent;border:1px solid var(--accent-line);}

/* ---------- 关键词 chip（首页条目与文章题头共用） ---------- */
.kws{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;}
.kws .kw{
  display:inline-block;font-family:var(--meta);font-size:11.5px;letter-spacing:.08em;
  color:var(--accent-ink);background:var(--accent-soft);border-radius:999px;
  padding:4px 12px;line-height:1.55;white-space:nowrap;
}
.article-head .kws{margin:-6px 0 20px;}

/* ---------- 小红书式竖版内容流 ---------- */
.feed{max-width:1180px;margin:0 auto;padding:38px 24px 80px;}
.feed-head{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  margin:0 0 22px;
}
.feed-head h2{
  font-size:20px;letter-spacing:.14em;margin:0;padding-left:15px;position:relative;
}
.feed-head h2::before{
  content:"";position:absolute;left:0;top:.28em;width:5px;height:1.05em;
  background:var(--accent);border-radius:2px;
}
.feed-head span{font-family:var(--meta);font-size:11.5px;color:var(--muted);letter-spacing:.14em;}
.feed-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 30px;align-items:start;
}
.tile{display:flex;flex-direction:column;min-width:0;}
.tile-cover{
  position:relative;display:block;border-radius:var(--radius);overflow:hidden;
  background:var(--paper-2);box-shadow:0 14px 34px -26px rgba(27,42,56,.5);
}
.tile-cover img{
  width:100%;aspect-ratio:3 / 4;object-fit:cover;object-position:center;
  transition:transform .55s cubic-bezier(.22,.61,.36,1);
}
.tile:hover .tile-cover img{transform:scale(1.025);}
.tile-body{padding:16px 4px 0;}
.tile h3{
  font-size:22px;line-height:1.45;margin:12px 0 8px;letter-spacing:.01em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.tile h3 a{color:var(--ink);}
.tile h3 a:hover{color:var(--accent);}
.tile p{
  margin:0 0 12px;font-size:15px;line-height:1.82;color:var(--ink-soft);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.tile .meta{
  font-family:var(--meta);font-size:11.5px;letter-spacing:.1em;color:var(--muted);
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.tile-more{
  display:inline-flex;align-items:center;gap:5px;
  min-height:32px;min-width:32px;padding:0 2px;
  font-family:var(--meta);font-size:12px;letter-spacing:.1em;
  color:var(--accent-ink);white-space:nowrap;
  transition:color .2s,transform .2s;
}
.tile-more svg{width:13px;height:13px;display:block;transition:transform .2s;}
.tile-more:hover{color:var(--accent);}
.tile-more:hover svg{transform:translateX(3px);}
.tile-more:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px;}
.tile.soon .tile-cover{box-shadow:none;opacity:.94;}
/* 待刊标识：头图底部自下而上的黑色渐变带，带内居中「即将刊出」+ 线性信封 */
.soon-band{
  position:absolute;left:0;right:0;bottom:0;height:33%;
  --ico:14px;--gap:8px;
  display:flex;align-items:center;justify-content:center;gap:var(--gap);
  padding-right:calc(var(--ico) + var(--gap));
  background:linear-gradient(to top,
    rgba(11,13,16,.90) 0%,
    rgba(11,13,16,.72) 30%,
    rgba(11,13,16,.42) 58%,
    rgba(11,13,16,.16) 78%,
    rgba(11,13,16,0) 100%);
  color:#fff;pointer-events:none;
}
.soon-band svg{
  width:var(--ico);height:var(--ico);flex:none;display:block;
  fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
  opacity:.96;
}
.soon-band .soon-t{
  font-family:var(--meta);font-size:12.5px;font-weight:600;
  letter-spacing:.22em;text-indent:.22em;
  line-height:1;white-space:nowrap;
  text-shadow:0 1px 2px rgba(0,0,0,.35);
}
@media (max-width:640px){
  .soon-band{height:34%;--ico:12px;--gap:6px;}
  .soon-band svg{stroke-width:1.8;}
  .soon-band .soon-t{font-size:10.5px;letter-spacing:.18em;text-indent:.18em;}
}

/* ---------- 首页两期预告卡（只预告最近两期） ---------- */
.soon-deck{max-width:1180px;margin:0 auto;padding:44px 24px 0;}
.deck-head{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  margin:0 0 22px;padding-bottom:12px;border-bottom:1px solid var(--line);
}
.deck-head h2{
  font-family:var(--serif);font-size:22px;line-height:1.35;letter-spacing:.01em;
  position:relative;padding-left:14px;
}
.deck-head h2::before{
  content:"";position:absolute;left:0;top:.28em;width:5px;height:1.05em;
  background:var(--accent);border-radius:2px;
}
.deck-head span{font-family:var(--meta);font-size:11.5px;color:var(--muted);letter-spacing:.14em;}
.deck-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 30px;align-items:start;}
.deck-item{display:flex;gap:18px;min-width:0;align-items:flex-start;}
.deck-cover{
  position:relative;flex:none;width:134px;display:block;
  border-radius:12px;overflow:hidden;background:var(--paper-2);
}
.deck-cover img{width:100%;aspect-ratio:3 / 4;object-fit:cover;display:block;}
.deck-cover .soon-band{height:auto;padding:16px 6px 8px;--ico:11px;--gap:5px;padding-right:calc(var(--ico) + var(--gap) + 4px);}
.deck-cover .soon-band .soon-t{font-size:9.5px;letter-spacing:.12em;text-indent:.12em;}
.deck-body{min-width:0;padding-top:2px;}
.deck-k{display:flex;align-items:center;gap:10px;margin:0 0 8px;}
.deck-no{font-family:var(--meta);font-size:11.5px;letter-spacing:.12em;color:var(--muted);}
.deck-item h3{
  font-size:19px;line-height:1.45;margin:0 0 8px;letter-spacing:.01em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.deck-item h3 a{color:var(--ink);}
.deck-item h3 a:hover{color:var(--accent);}
.deck-item p{
  margin:0 0 10px;font-size:13.5px;line-height:1.8;color:var(--ink-soft);
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;
}
.deck-meta{font-family:var(--meta);font-size:11px;letter-spacing:.1em;color:var(--muted);}
@media (max-width:860px){
  .deck-grid{grid-template-columns:1fr;gap:24px;}
}
@media (max-width:640px){
  .soon-deck{padding-top:34px;}
  .deck-head h2{font-size:18px;}
  .deck-head span{font-size:10px;letter-spacing:.1em;}
  .deck-cover{width:98px;border-radius:10px;}
  .deck-item{gap:13px;}
  .deck-item h3{font-size:16px;line-height:1.5;margin-bottom:6px;}
  .deck-item p{font-size:12.5px;line-height:1.7;-webkit-line-clamp:3;margin-bottom:8px;}
  .deck-meta{font-size:10px;}
}

/* ---------- 文章页版式 ---------- */
.article-shell{
  max-width:1120px;margin:0 auto;padding:46px 24px 90px;
  display:grid;grid-template-columns:196px minmax(0,1fr);gap:56px;
  align-items:start;
}
.toc{position:sticky;top:78px;font-family:var(--serif);}
.toc .toc-title{
  font-family:var(--meta);font-size:11px;letter-spacing:.24em;color:var(--muted);
  margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line);
}
.toc ol{list-style:none;margin:0;padding:0;counter-reset:toc;}
.toc li{counter-increment:toc;margin:0 0 11px;font-size:13.5px;line-height:1.6;}
.toc li::before{
  content:counter(toc,decimal-leading-zero);
  font-family:var(--meta);font-size:10.5px;color:var(--accent);margin-right:8px;
}
.toc a{color:var(--ink-soft);}
.toc a:hover{color:var(--accent);}

.article{
  max-width:660px;font-size:18px;line-height:2.02;letter-spacing:.01em;
}
.article-head{padding-bottom:34px;margin-bottom:44px;border-bottom:1px solid var(--line);}
.article-head h1{
  font-size:46px;line-height:1.3;margin:20px 0 16px;letter-spacing:.02em;
}
.article-head .deck{
  font-size:18.5px;line-height:1.92;color:var(--ink-soft);margin:0 0 24px;
}
.article-head .meta{
  font-family:var(--meta);font-size:12px;color:var(--muted);letter-spacing:.06em;
  display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;
}

.article h2{
  font-size:28px;line-height:1.52;margin:70px 0 8px;letter-spacing:.03em;
  scroll-margin-top:84px;
}
.article h2 .num{
  display:block;font-family:var(--meta);font-size:11px;letter-spacing:.22em;
  color:var(--accent-ink);margin-bottom:10px;
}
.article h2::after{
  content:"";display:block;width:58px;height:3px;background:var(--accent);margin-top:16px;
}
.article p{margin:0 0 26px;text-align:justify;text-justify:inter-ideograph;}
.article p strong{font-weight:700;color:var(--ink);}
.article .lede{font-size:19.5px;line-height:2;color:var(--ink);}
.article .lede::first-letter{
  font-size:56px;line-height:.9;float:left;margin:6px 10px 0 0;color:var(--accent);
}

/* 金句 */
.pull{
  margin:42px 0;padding:30px 34px;background:var(--accent-soft);
  border-left:3px solid var(--accent);border-radius:0 14px 14px 0;
  font-family:var(--serif);font-size:22px;line-height:1.88;color:var(--ink);
  position:relative;
}
.pull::before{
  content:"“";position:absolute;top:-6px;left:16px;font-size:52px;color:var(--accent);opacity:.26;
}
.pull span{display:block;}

/* 图表 */
figure{margin:46px 0;}
figure img{
  width:100%;border-radius:14px;background:#fff;
  box-shadow:0 12px 30px -26px rgba(27,42,56,.45);
}
figcaption{
  font-family:var(--meta);font-size:12.5px;line-height:1.78;color:var(--muted);
  margin-top:12px;padding-left:2px;
}
figcaption b{color:var(--ink-soft);font-weight:600;}

/* 题图（插画型，不带数据图表的卡片投影，避免与图表混淆） */
figure.illo{margin:40px 0 46px;position:relative;}
figure.illo img{
  background:var(--paper);border:1px solid var(--line);
  border-radius:4px;box-shadow:none;
}
/* 题图左上角刊头字标（取代文字「余量」）：宽度按图宽比例，窄屏按最小值收缩，不换行不越界 */
.illo-mark{
  position:absolute;left:4.2%;top:5%;display:block;line-height:0;
  pointer-events:none;
}
figure.illo .illo-mark img{
  display:block;width:clamp(58px,11.5%,104px);height:auto;
  background:none;border:0;border-radius:0;box-shadow:none;
}

/* 数据表 */
.tablewrap{margin:34px 0;-webkit-overflow-scrolling:touch;}
.tcap{
  font-family:var(--meta);font-size:12px;letter-spacing:.06em;color:var(--muted);
  margin:0 0 10px;text-align:left;
}
.dtable{
  width:100%;border-collapse:collapse;margin:34px 0;font-family:var(--serif);font-size:14.8px;
}
.tablewrap .dtable{margin:0;}
.dtable th,.dtable td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);}
.dtable th{font-weight:700;color:var(--ink);border-bottom:1.5px solid var(--ink);}
.dtable td.num{font-family:var(--mono);text-align:right;font-size:13px;}

/* 观察指标清单 */
.checklist{list-style:none;padding:0;margin:26px 0 30px;border-top:1px solid var(--line);}
.checklist li{
  padding:13px 0 13px 26px;border-bottom:1px solid var(--line);
  position:relative;font-size:17.2px;line-height:1.92;
}
.checklist li::before{
  content:"";position:absolute;left:2px;top:23px;width:8px;height:8px;background:var(--accent);
  border-radius:2px;
}

/* 来源 */
.sources{
  margin-top:20px;padding-top:26px;border-top:1px solid var(--line);
  font-family:var(--meta);font-size:12.5px;line-height:1.9;color:var(--muted);
}
.sources h3{font-size:18px;color:var(--ink);margin:0 0 14px;letter-spacing:.08em;}
.sources ol{padding-left:20px;margin:0;}
.sources li{margin-bottom:7px;word-break:break-word;}
.sources a{color:var(--ink-soft);border-bottom:1px dotted var(--line);word-break:break-all;}
.sources a:hover{color:var(--accent);}


/* ---------- 脚注：正文上标 + 文末注释 ---------- */
sup.fn{font-size:.62em;line-height:0;vertical-align:super;white-space:nowrap;}
sup.fn a{color:var(--accent-ink);text-decoration:none;border:0;padding:0 .12em;font-family:var(--meta);font-weight:700;}
sup.fn a:hover{color:var(--accent);}
.notes{
  margin-top:18px;padding-top:22px;border-top:1px solid var(--line);
  font-family:var(--meta);font-size:12.5px;line-height:1.88;color:var(--muted);
}
.notes h3{font-size:18px;color:var(--ink);margin:0 0 12px;letter-spacing:.08em;}
.notes ol{padding-left:20px;margin:0;}
.notes li{margin-bottom:9px;word-break:break-word;overflow-wrap:anywhere;}
.notes li:target{background:var(--accent-soft);color:var(--ink);}
.notes .who{color:var(--ink);font-weight:600;}

/* ---------- 正文字体统一落地（衬线，逐元素显式声明，避免只改局部选择器） ----------
   覆盖：正文段落 / lede / h2·h3·h4（含章节编号）/ 金句 pull / 列表 / 清单
         / 表格（含数字列，改等宽数字排版保留对齐）/ 图注 / 表题 / 来源 / 注释 / 上标角标
   例外：代码类元素仍用等宽字体
   ------------------------------------------------------------------------- */
.article,
.article p, .article p strong, .article .lede, .article .deck,
.article h1, .article h2, .article h3, .article h4, .article h2 .num,
.article .pull, .article .pull span,
.article ul, .article ol, .article li, .article .checklist li, .article .skel li,
.article figure, .article figcaption, .article figcaption b,
.article .tcap, .article .dtable, .article .dtable th, .article .dtable td,
.article .dtable td.num,
.article .sources, .article .sources h3, .article .sources ol, .article .sources li,
.article .notes, .article .notes h3, .article .notes ol, .article .notes li, .article .notes .who,
.article .footnote, .article .soon-note p, .article sup.fn a{
  font-family:var(--serif);
}
.article .dtable td.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;}
.article code, .article pre, .article kbd, .article samp, .article var{font-family:var(--mono);}

/* ---------- 待刊期占位页 ---------- */
.soon-note{
  margin:28px 0 10px;padding:18px 20px;
  background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:14px;
}
.soon-note .t{
  display:block;margin-bottom:8px;
  font-family:var(--meta);font-size:11px;letter-spacing:.18em;color:var(--accent-ink);
}
.soon-note p{margin:0;font-size:15.5px;line-height:1.88;color:var(--ink);}
.skel{list-style:none;margin:14px 0 0;padding:0;}
.skel li{
  padding:12px 0;border-top:1px dashed var(--line);
  font-size:15px;line-height:1.85;color:var(--ink-soft);
}
.skel li:first-child{border-top:0;padding-top:2px;}
.skel b{
  display:inline-block;margin-right:10px;
  font-family:var(--meta);font-size:11.5px;letter-spacing:.12em;color:var(--accent-ink);
}

/* 上下篇 */
.pager{
  display:grid;grid-template-columns:1fr 1fr;gap:16px;
  margin:64px 0 0;padding-top:30px;border-top:1px solid var(--line);
}
/* 上下篇：浅底文字卡片（上版设计），底纹用极低调背景图，不铺封面、不加暗色遮罩 */
.pager a.pg{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;
  border-radius:16px;padding:20px 22px;overflow:hidden;
  background:var(--paper-2);border:1px solid var(--line);color:var(--ink);height:100%;min-height:120px;
  transition:background-color .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.pager a.pg::before{
  content:"";position:absolute;inset:0;z-index:0;
  background-image:url("pager-bg.png");background-size:cover;background-position:center;
  opacity:1;transition:opacity .3s ease,transform .6s cubic-bezier(.22,.61,.36,1);
}
.pager a.pg > *{position:relative;z-index:1;}
.pager .lab{
  font-family:var(--meta);font-size:11px;letter-spacing:.18em;
  color:var(--muted);
  display:block;margin-bottom:9px;
}
.pager b{display:block;font-size:17px;line-height:1.62;font-weight:700;color:var(--ink);}
.pager a.pg:hover{background:var(--accent-soft);border-color:var(--accent-line);
  box-shadow:0 14px 30px -26px rgba(27,42,56,.55);}
.pager a.pg:hover::before{opacity:.38;transform:scale(1.015);}
.pager a.pg:hover b{color:var(--accent-ink);}
.pager a.pg:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
.pager .next{text-align:right;}
.pager .empty{
  background:transparent;border:1px dashed var(--line);color:var(--muted);
  display:flex;align-items:center;justify-content:center;text-align:center;
  border-radius:16px;padding:18px 20px;height:100%;
  font-family:var(--meta);font-size:12.5px;letter-spacing:.06em;
}

/* 返回首页 */
.backhome{
  margin:40px 0 0;font-family:var(--meta);font-size:13px;letter-spacing:.08em;
}

/* 页脚（首页与文章页统一） */
.foot{max-width:1180px;margin:0 auto;padding:34px 24px 64px;}
.foot-in{
  border-top:1px solid var(--line);padding-top:24px;
  font-family:var(--meta);font-size:12px;color:var(--muted);line-height:1.9;
  display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;
}
.foot-in .foot-logo{
  display:inline-block;vertical-align:-4px;width:auto;height:17px;
}
.foot-in b{font-family:var(--serif);color:var(--ink-soft);font-weight:700;letter-spacing:.16em;}

/* ---------- 响应式 ---------- */
@media (max-width:1024px){
  .feed-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px;}
  .tile h3{font-size:20px;}
  .masthead h1{font-size:54px;}
  .article-shell{grid-template-columns:170px minmax(0,1fr);gap:36px;}
}

@media (max-width:860px){
  .article-shell{grid-template-columns:1fr;padding:26px 18px 70px;gap:26px;}
  .toc{position:static;border:1px solid var(--line);border-radius:16px;padding:18px 20px;background:#fff;}
  .toc .toc-title{margin-bottom:10px;border-bottom:0;padding-bottom:0;}
  .toc ol{display:flex;flex-wrap:wrap;gap:8px 18px;}
  .toc li{margin:0;}
  .article{max-width:100%;}
  .article-head h1{font-size:31px;line-height:1.36;}
  .article-head .deck{font-size:16.5px;}
  .article{font-size:17.2px;line-height:1.98;}
  .article .lede{font-size:17.6px;}
  .article h2{font-size:23px;margin:48px 0 6px;}
  .pull{font-size:19px;padding:24px 22px;margin:34px 0;}
  .masthead{padding:34px 18px 0;}
  .masthead h1{font-size:42px;margin:16px 0 14px;}
  .masthead .sub{font-size:14px;white-space:normal;text-wrap:pretty;}
  .notebox{padding:26px 18px 0;}
  .notebox-in{padding:0;}
  .feed{padding:28px 18px 60px;}
  .topbar-in{padding:12px 18px;}
  .brand{font-size:16px;letter-spacing:.16em;}
  .brand i{display:none;}
  .topbar-meta{font-size:11px;gap:8px;}
  .foot{padding:26px 18px 48px;}
}

/* 手机端：保持两列竖版卡片 */
@media (max-width:640px){
  .feed-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px;}
  .tile-cover{border-radius:14px;}
  .tile-body{padding:10px 2px 0;}
  .tile h3{font-size:15px;line-height:1.5;margin:8px 0 6px;}
  .tile p{font-size:12.5px;line-height:1.68;-webkit-line-clamp:2;margin-bottom:8px;}
  .tile .meta{font-size:10px;letter-spacing:.06em;}
  .badge{font-size:10px;padding:3px 9px;letter-spacing:.1em;}
  .kws{gap:6px;margin-bottom:9px;}
  .kws .kw{font-size:9.5px;padding:3px 8px;letter-spacing:.04em;}
  .masthead h1{font-size:36px;}
  .masthead .kicker{font-size:10px;letter-spacing:.24em;}
  .feed-head h2{font-size:17px;letter-spacing:.1em;}
  .feed-head span{font-size:10.5px;}
  .pager{grid-template-columns:1fr;gap:12px;}
  .pager .next{text-align:left;}
  .dtable{font-size:12px;margin:26px 0;}
  .dtable th,.dtable td{padding:8px 6px;}
  .dtable td.num{font-size:11.5px;}
  .article ol,.article ul{padding-left:20px;}
  .sources ol{padding-left:18px;}
  .sources li{font-size:11.5px;}
  .notes ol{padding-left:18px;}
  .notes li{font-size:11.5px;line-height:1.8;}
}

/* ---------- 打印：A4 竖版 ---------- */
@media print{
  @page{size:A4 portrait;margin:16mm 15mm 18mm;}
  body{background:#fff;color:#000;font-size:11.2pt;line-height:1.82;}
  .progress,.topbar,.toc,.pager,.backhome,.foot,.notebox,.tile-cover{display:none!important;}
  .article-shell{display:block;padding:0;max-width:none;}
  .article{max-width:none;}
  .article-head h1{font-size:25pt;line-height:1.3;}
  .article-head .deck{font-size:12pt;}
  .article h2{font-size:15pt;margin:22pt 0 4pt;page-break-after:avoid;}
  .article p{margin:0 0 6.5pt;}
  .article .lede{font-size:11.6pt;}
  figure{margin:11pt 0 12pt;page-break-inside:avoid;break-inside:avoid;}
  figure img{border:0;box-shadow:none;max-height:62mm;width:auto;margin:0 auto;}
  figure.illo{margin:10pt 0 12pt;}
  figure.illo img{max-height:96mm;}
  figure.illo .illo-mark img{width:26mm;max-height:none;}
  h2{page-break-after:avoid;break-after:avoid;}
  figcaption{font-size:8.6pt;}
  .pull{margin:12pt 0;padding:11pt 15pt;background:#F7EFE8;font-size:12pt;page-break-inside:avoid;border-radius:0;}
  .checklist li{font-size:10.5pt;padding:6pt 0 6pt 22pt;}
  .sources{font-size:8.3pt;line-height:1.66;}
  .sources h3{font-size:12pt;}
  .notes{font-size:8.4pt;line-height:1.62;margin-top:10pt;padding-top:14pt;page-break-inside:avoid;break-inside:avoid;}
  .notes h3{font-size:11pt;}
  .notes ol{padding-left:14pt;}
  .notes li{margin-bottom:3pt;page-break-inside:avoid;}
  sup.fn a{color:#000;}
}

/* ---------- 文章页栏目徽标行 ---------- */
.badges{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 2px;}
.badges .cat{
  font-family:var(--meta);font-size:11.5px;letter-spacing:.2em;color:var(--muted);
}

/* ---------- 正文注（风险提示等） ---------- */
.footnote{
  font-size:15.8px;line-height:1.95;color:var(--muted);margin:30px 0 0;
  padding-top:18px;border-top:1px solid var(--line);
}
/* ---------- 首页「即将刊出」单行循环条（v8） ----------
   可视窗高度恒等于一行（50px），两期待刊期号上下无缝循环；
   左侧 3:4 头图缩略随当前行同步切换；控件仅保留一个圆形播放/暂停按钮。
   ------------------------------------------------------------------ */
.upcoming{max-width:1180px;margin:0 auto;padding:26px 24px 0;}
.up-bar{
  display:flex;align-items:center;gap:18px;
  padding:10px 16px;border-radius:16px;
  background:linear-gradient(112deg,#E4EEEE 0%,#D8E7E8 36%,#E6F0EF 68%,#DFEBEC 100%);
  border:1px solid #CFE0E1;
}

/* 待刊头图缩略：3:4（72×96），单层描边，不做阴影堆叠 */
.up-thumb{
  position:relative;flex:0 0 auto;width:72px;height:96px;
  border-radius:8px;overflow:hidden;background:#DDEAEB;
  box-shadow:0 0 0 1px rgba(207,224,225,.95);
}
.up-thumb img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity .5s ease;
}
.up-thumb img.is-on{opacity:1;}

.up-head{display:flex;align-items:center;gap:12px;flex:0 0 auto;}
.up-head h2{
  display:flex;align-items:center;gap:8px;margin:0;white-space:nowrap;
  font-size:14px;font-weight:700;letter-spacing:.14em;color:var(--ink);
}
.up-head h2::before{
  content:"";display:inline-block;width:4px;height:14px;border-radius:2px;
  background:#2F5A5F;
}

/* 圆形广播 / 静音图标按钮：冷色实底、白色图形，触控区 36px，无脉动动画 */
.up-btn{
  width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;
  padding:0;border:0;border-radius:50%;
  background:#2F5A5F;color:#fff;cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  transition:background .2s ease,transform .16s ease;
}
.up-btn:hover{background:#23464A;}
.up-btn:active{transform:scale(.94);}
.up-btn:focus-visible{outline:2px solid #2F5A5F;outline-offset:3px;}
.up-btn svg{width:15px;height:15px;display:block;fill:currentColor;}
.up-btn .ico-play{display:none;}
.up-btn.is-paused .ico-pause{display:none;}
.up-btn.is-paused .ico-play{display:block;}

/* 按钮只切换图标，不附加任何动画 */
@media (prefers-reduced-motion: reduce){
  .up-track{transition:none;}
  .up-thumb img{transition:none;}
}

/* 可视窗：高度=单期行高（由 JS 统一设定为最大行高），一期完整展示，不做单行裁切 */
.up-window{
  position:relative;flex:1 1 auto;min-width:0;
  height:104px;overflow:hidden;border-radius:12px;
  background:rgba(255,255,255,.72);
  box-shadow:inset 0 0 0 1px rgba(207,224,225,.95);
}
.up-window:focus-visible{outline:2px solid #2F5A5F;outline-offset:2px;}
.up-track{will-change:transform;transition:transform .7s cubic-bezier(.32,.06,.18,1);}
.up-track.no-anim{transition:none;}
/* 单期制式（v6）：右侧一列两行小字（期号 / 日期），中部主题一行大字居中、关键词一行小字居中；
   左右占位列等宽 104px，保证中部内容严格居中；全部取消 nowrap / ellipsis / line-clamp，文字完整显示 */
.up-row{
  display:grid;
  grid-template-columns:104px minmax(0,1fr) 104px;
  grid-template-areas:"gapL cat no" "gapL ttl no" "gapL kw date";
  align-items:center;column-gap:18px;row-gap:9px;
  min-height:112px;padding:16px 22px;
  white-space:normal;overflow:visible;font-family:var(--serif);
}
.up-row .no{
  grid-area:no;justify-self:end;align-self:end;
  font-family:var(--meta);font-size:11.5px;letter-spacing:.16em;color:#2F5A5F;
  white-space:nowrap;text-overflow:clip;
}
.up-row .cat{
  grid-area:cat;justify-self:center;align-self:end;
  font-family:var(--meta);font-size:11px;letter-spacing:.08em;color:#2F5A5F;
  background:rgba(47,90,95,.10);box-shadow:inset 0 0 0 1px rgba(47,90,95,.20);
  border-radius:999px;padding:2px 9px;white-space:nowrap;
}
.up-row .ttl{
  grid-area:ttl;align-self:end;
  display:block;text-align:center;
  font-size:19px;font-weight:700;color:var(--ink);letter-spacing:.02em;
  line-height:1.4;white-space:normal;overflow:visible;text-overflow:clip;
  -webkit-line-clamp:none;-webkit-box-orient:initial;
}
.up-row .kwin{
  grid-area:kw;align-self:start;
  display:flex;flex-wrap:wrap;justify-content:center;gap:6px;min-width:0;
  -webkit-line-clamp:none;
}
.up-row .kwin .kw{
  font-family:var(--meta);font-size:11.5px;letter-spacing:.04em;line-height:1.35;
  color:#2C4A50;background:rgba(47,90,95,.10);
  box-shadow:inset 0 0 0 1px rgba(47,90,95,.18);
  border-radius:999px;padding:4px 10px;white-space:nowrap;
}
.up-row .date{
  grid-area:date;justify-self:end;align-self:start;text-align:right;
  font-family:var(--meta);font-size:11.5px;letter-spacing:.06em;color:#40565C;
  white-space:nowrap;
}

@media (max-width:900px){
  .up-bar{gap:14px;padding:10px 14px;}
  .up-head{gap:10px;}
  .up-thumb{width:64px;height:84px;}
  /* 中等宽度收窄左右占位列，中部仍严格居中；日期省去年份保证不挤压 */
  .up-row{grid-template-columns:96px minmax(0,1fr) 96px;column-gap:14px;}
  .up-row .date .yr{display:none;}
  .up-row .kwin .kw{font-size:10.5px;padding:3px 8px;}
}
@media (max-width:680px){
  .up-bar{flex-wrap:wrap;gap:10px 12px;}
  .up-window{flex:1 1 100%;order:3;}
}
@media (max-width:560px){
  .upcoming{padding:22px 18px 0;}
  .up-bar{padding:10px 12px;border-radius:14px;}
  .up-thumb{width:60px;height:80px;}
  .up-btn{width:38px;height:38px;}
  /* 窄屏沿用同一制式，左右占位列压到 60px，中部仍保持严格居中，标题与关键词完整显示不省略 */
  .up-window{height:120px;}
  .up-row{
    grid-template-columns:62px minmax(0,1fr) 62px;
    grid-template-areas:"gapL cat no" "gapL ttl no" "gapL kw date";
    min-height:120px;padding:13px 12px;column-gap:8px;row-gap:8px;
  }
  .up-row .cat{font-size:9.5px;padding:1.5px 7px;letter-spacing:.04em;}
  .up-row .no{font-size:10px;letter-spacing:.08em;}
  .up-row .date{font-size:10px;letter-spacing:0;}
  .up-row .date .yr{display:none;}   /* 窄屏只留月-日，避免右侧列过宽挤压中部 */
  .up-row .ttl{font-size:16px;line-height:1.42;}
  .up-row .kwin{gap:4px;}
  .up-row .kwin .kw{font-size:9.5px;padding:1.5px 6px;letter-spacing:.02em;}
}
@media print{
  .upcoming{display:none;}
}

/* ==========================================================================
   v9 新增：读者留言（文章页）与「读者回声」（首页）
   静态站无后端，数据存 localStorage；样式沿用纸底 + 次级底 + 低饱和主题色，
   1px 描边、无重阴影，对比度全部 ≥4.5。
   ========================================================================== */

/* ---------- 文章页：点赞 ---------- */
.lk{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  margin:46px 0 0;padding:0 2px;
}
.lk-btn{
  display:inline-flex;align-items:center;gap:9px;
  min-height:46px;padding:8px 20px 8px 16px;cursor:pointer;
  border:1px solid var(--line);border-radius:999px;background:var(--paper-2);
  color:var(--ink-soft);font-family:var(--meta);font-size:13px;letter-spacing:.1em;
  transition:border-color .2s ease,color .2s ease,background .2s ease,transform .16s ease;
  -webkit-tap-highlight-color:transparent;
}
.lk-btn:hover{border-color:var(--accent-line);color:var(--accent-ink);}
.lk-btn:active{transform:scale(.97);}
.lk-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
.lk-ico{
  width:21px;height:21px;flex:0 0 auto;
  fill:none;stroke:currentColor;stroke-width:1.55;
  stroke-linejoin:round;stroke-linecap:round;
  transition:fill .18s ease;
}
.lk-btn.is-on{
  background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink);
}
.lk-btn.is-on .lk-ico{fill:currentColor;}
.lk-num{
  font-family:var(--meta);font-size:13px;letter-spacing:.04em;
  font-variant-numeric:tabular-nums;
}
.lk-btn.is-on .lk-num{color:var(--accent);}
.lk-tip{
  font-family:var(--meta);font-size:11.5px;letter-spacing:.06em;color:var(--muted);
}

/* ---------- 文章页：行内引用链接 ---------- */
.sources a,.article a.al{
  color:var(--accent);text-decoration:underline;
  text-decoration-thickness:1px;text-underline-offset:.22em;
  text-decoration-color:var(--accent-line);
  transition:color .18s ease,text-decoration-color .18s ease;
}
.sources a:hover,.sources a:focus-visible,
.article a.al:hover,.article a.al:focus-visible{
  color:var(--accent-ink);text-decoration-color:var(--accent-ink);
}
.sources a:focus-visible,.article a.al:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

/* ---------- 文章页：读者留言 ---------- */
.rc{
  margin:54px 0 0;padding:26px 28px;
  background:var(--paper-2);border:1px solid var(--line);border-radius:18px;
}
.rc-head{
  display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  margin:0 0 18px;flex-wrap:wrap;
}
.rc-head h2{
  position:relative;margin:0;padding-left:14px;
  font-size:20px;letter-spacing:.12em;line-height:1.4;
}
.rc-head h2::before{
  content:"";position:absolute;left:0;top:.24em;width:5px;height:1.02em;
  background:var(--accent);border-radius:2px;
}
.rc-stat{
  font-family:var(--meta);font-size:11.5px;letter-spacing:.1em;color:var(--muted);
}
.rc-ident{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  margin:-4px 0 16px;padding:0 0 14px;border-bottom:1px dashed var(--line);
}
.rc-ident-lab{
  font-family:var(--meta);font-size:11px;letter-spacing:.16em;color:var(--muted);
}
.rc-ident-name{
  display:inline-block;padding:3px 12px;border-radius:999px;
  background:var(--accent-soft);border:1px solid var(--accent-line);
  font-family:var(--serif);font-size:14px;font-weight:700;line-height:1.6;
  color:var(--accent-ink);letter-spacing:.02em;
}
.rc-ident-tip{
  font-family:var(--meta);font-size:11px;letter-spacing:.05em;color:var(--muted);
}
.rc-form{display:flex;flex-wrap:wrap;gap:10px;margin:0;}
.rc-text{
  flex:1 1 100%;width:100%;min-height:84px;padding:11px 13px;
  border:1px solid var(--line);border-radius:11px;background:var(--paper);color:var(--ink);
  font-family:var(--serif);font-size:15px;line-height:1.85;resize:vertical;
}
.rc-text:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.rc-actions{
  flex:1 1 100%;display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.rc-hint{
  font-family:var(--meta);font-size:11.5px;letter-spacing:.06em;color:var(--muted);
  min-height:1em;
}
.rc-hint:empty{display:none;}
.rc-submit{
  padding:9px 24px;border:0;border-radius:999px;cursor:pointer;
  background:var(--accent);color:#FDFDFB;
  font-family:var(--meta);font-size:12.5px;letter-spacing:.16em;
  transition:background .2s ease,transform .16s ease;
  -webkit-tap-highlight-color:transparent;
}
.rc-submit:hover{background:var(--accent-ink);}
.rc-submit:active{transform:scale(.97);}
.rc-submit:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

.rc .rc-list{list-style:none;margin:20px 0 0;padding:0;}
.rc-list:empty{display:none;}
.rc-item{
  padding:15px 0;border-bottom:1px dashed var(--line);
}
.rc-list .rc-item:last-child{border-bottom:0;padding-bottom:6px;}
.rc-item{position:relative;}
.rc-item.is-feat::before{content:"";position:absolute;left:-9px;top:6px;bottom:6px;width:2px;background:var(--accent-line);border-radius:2px;}
@media (max-width:900px){.rc-item.is-feat::before{left:-7px;}}
.rc-top{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 0 6px;
}
.rc-name{font-size:14.5px;font-weight:700;color:var(--ink);letter-spacing:.02em;}
.rc-badge{
  font-family:var(--meta);font-size:10px;letter-spacing:.12em;
  color:var(--accent-ink);background:var(--accent-soft);
  border-radius:999px;padding:3px 9px;
}
.rc-time{font-family:var(--meta);font-size:11px;letter-spacing:.04em;color:var(--muted);}
.rc-tools{margin-left:auto;display:flex;gap:6px;flex:0 0 auto;}
.rc-btn{
  min-height:28px;padding:4px 11px;cursor:pointer;
  border:1px solid var(--line);border-radius:999px;background:transparent;
  font-family:var(--meta);font-size:11px;letter-spacing:.06em;color:var(--ink-soft);
  transition:border-color .2s ease,color .2s ease,background .2s ease;
}
.rc-btn:hover{border-color:var(--accent-line);color:var(--accent-ink);}
.rc-btn.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink);}
.rc-btn[data-act="del"]{color:var(--muted);border-color:transparent;}
.rc-btn[data-act="del"]:hover{color:var(--ink);border-color:var(--line);background:var(--paper);}
.rc-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.rc-body{
  margin:0;font-size:15px;line-height:1.85;color:var(--ink);
  white-space:pre-wrap;overflow-wrap:anywhere;
}
.rc-empty{
  margin:18px 0 0;font-size:14px;line-height:1.8;color:var(--muted);
}
.rc-empty[hidden]{display:none;}

/* ---------- 首页：读者回声 ---------- */
.echo{max-width:1180px;margin:0 auto;padding:30px 24px 0;}
.echo[hidden]{display:none;}
.echo-grid{
  display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start;
}
.echo-card{
  min-width:0;padding:22px 24px;
  background:var(--paper-2);border:1px solid var(--line);border-radius:18px;
}
.echo-card[hidden]{display:none;}
.echo-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 12px;}
.echo-head h2{
  position:relative;margin:0;padding-left:14px;
  font-size:17px;letter-spacing:.14em;line-height:1.4;
}
.echo-head h2::before{
  content:"";position:absolute;left:0;top:.26em;width:4px;height:1.02em;
  background:var(--accent);border-radius:2px;
}
.echo-head span{font-family:var(--meta);font-size:11px;letter-spacing:.12em;color:var(--muted);}

.echo-list{list-style:none;margin:0;padding:0;}
.echo-list li{padding:13px 0;border-top:1px dashed var(--line);min-width:0;}
.echo-list li:first-child{border-top:0;padding-top:2px;}
.echo-link{
  display:block;font-size:15.5px;font-weight:700;line-height:1.55;color:var(--ink);
  letter-spacing:.01em;overflow-wrap:anywhere;padding:2px 0;
}
.echo-link:hover{color:var(--accent);}
.echo-meta{
  margin-top:4px;font-family:var(--meta);font-size:11px;letter-spacing:.05em;color:var(--muted);
}
.echo-quote{
  margin:6px 0 0;font-size:14.5px;line-height:1.8;color:var(--ink-soft);
  overflow-wrap:anywhere;
}

@media (max-width:900px){
  .echo-grid{grid-template-columns:minmax(0,1fr);gap:18px;}
}
@media (max-width:560px){
  .rc{margin-top:42px;padding:20px 16px;border-radius:14px;}
  .rc-head h2{font-size:18px;}
  .rc-ident{gap:7px;margin-bottom:14px;padding-bottom:12px;}
  .rc-ident-name{font-size:13.5px;padding:3px 10px;}
  .rc-ident-tip{display:none;}
  .rc-tools{gap:5px;}
  .rc-btn{padding:4px 9px;font-size:10.5px;}
  .lk{margin-top:36px;gap:10px;}
  .lk-btn{min-height:44px;padding:7px 16px 7px 13px;font-size:12.5px;}
  .lk-ico{width:19px;height:19px;}
  .echo{padding:24px 18px 0;}
  .echo-card{padding:18px 16px;border-radius:14px;}
  .echo-head h2{font-size:16px;}
  .echo-link{font-size:14.5px;}
}
@media print{
  .rc,.echo,.lk{display:none;}
}

/* ---------- 窄屏：数据表横向滚动，避免页面溢出 ---------- */
@media screen and (max-width:560px){
  .tablewrap{overflow-x:auto;overflow-y:hidden;padding-bottom:4px;min-width:0;max-width:100%;}
  .article,.wrap,.layout{min-width:0;max-width:100%;}
  .dtable{font-size:12.5px;min-width:520px;margin:0;}
  .dtable th,.dtable td{padding:9px 8px;}
  .tcap{font-size:11.5px;}
}
