/* 具身出海日报 · 内页共享版式
   设计语言：淡紫底（呼应首页 hero 球体 #dcd2f2）+ 白色内容框
   副级别文字/装饰统一用淡紫色系 */

:root{
  /* 页面底：几乎白（①） */
  --lav:#f5f3fb;
  --lav-soft:#f9f7fd;
  --lav-deep:#c9bcf0;
  /* 线条 / 描边：淡紫（③） */
  --lav-line:#ebe7f6;
  --hover:#f0edf9;

  /* 框体：白底 + 淡紫描边 */
  --card:#ffffff;
  --card-line:#ebe7f6;

  /* 文字 */
  --ink:#1c1a24;
  --ink2:#4a4658;
  --ink3:#7a7590;

  /* 副级别色：淡紫 */
  --sub:#6b5a9e;
  --sub-bg:rgba(255,255,255,.62);
  --sub-bg-hover:rgba(255,255,255,.92);

  --accent:#5b46a8;
  --accent-bg:#efeafd;
  --radius-lg:22px;
  --radius:14px;
}

*{box-sizing:border-box;margin:0;padding:0}

html{-webkit-text-size-adjust:100%}

body{
  font-family:'Resist Sans Txt Light','PingFang SC','Microsoft YaHei',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--lav);
  color:var(--ink);
  line-height:1.75;
  min-height:100vh;
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* 底色：纯色 --lav，无渐变、无光晕 */

/* ============ 顶栏 ============ */
.topbar{
  position:relative;
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  max-width:1240px;
  margin:0 auto;
  padding:22px 28px 6px;
}
.brandline{
  display:flex;
  align-items:baseline;
  gap:10px;
  text-decoration:none;
  color:var(--ink);
}
.brandline b{font-weight:600;font-size:15px;letter-spacing:.01em}
.brandline i{font-style:normal;font-size:12.5px;color:var(--sub);opacity:.85}

.navpill{
  display:flex;
  align-items:center;
  gap:14px;
  background:var(--sub-bg);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  border:1px solid rgba(255,255,255,.7);
  border-radius:9999px;
  padding:8px 18px;
  box-shadow:0 3px 14px rgba(97,78,160,.10);
}
.navpill a{
  color:var(--ink);
  font-size:13px;
  letter-spacing:.02em;
  text-decoration:none;
  transition:opacity .2s;
}
.navpill a:hover{opacity:.6}
.navpill a.on{color:var(--accent);font-weight:600;opacity:1}
.navpill .sep{width:1px;height:14px;background:rgba(28,26,36,.14)}

/* ============ 页面外壳 ============ */
.shell{
  position:relative;
  z-index:2;
  max-width:1240px;
  margin:0 auto;
  padding:18px 28px 72px;
}

/* ============ 白框通用 ============ */
.panel{
  background:var(--card);
  border:1px solid var(--card-line);
  border-radius:var(--radius-lg);
  box-shadow:0 12px 40px rgba(97,78,160,.13);
}

/* 页面标题块（白框） */
.pagehead{
  padding:30px 36px;
  margin-bottom:18px;
}
.pagehead h1{
  font-size:clamp(1.55rem,3vw,2.1rem);
  font-weight:600;
  letter-spacing:-.01em;
  line-height:1.25;
}
.pagehead .sub{
  margin-top:9px;
  font-size:13.5px;
  color:var(--sub);
}

/* ============ 日报正文排版（今日 / 往期两页共用） ============ */
.today-wrap{
  padding:8px 0 0;
}
.doc-frame{
  padding:40px 46px 52px;
  max-width:860px;
  margin:0 auto;
}
.doc-frame h1{
  font-size:clamp(1.4rem,2.6vw,1.85rem);
  font-weight:600;
  letter-spacing:-.01em;
  margin:0 0 18px;
  padding-bottom:15px;
  border-bottom:1px solid var(--lav-line);
}
.doc-frame h2,
.issue-frame h2{
  font-size:1.1rem;
  font-weight:600;
  margin:30px 0 12px;
  padding-left:11px;
  border-left:3px solid var(--lav-deep);
  line-height:1.4;
}
.doc-frame h3,.issue-frame h3{font-size:.98rem;font-weight:600;margin:22px 0 9px}
.doc-frame h4,.issue-frame h4{font-size:.92rem;font-weight:600;margin:17px 0 7px}
.doc-frame p,.issue-frame p{font-size:14.5px;color:var(--ink2);margin-bottom:13px}
.doc-frame ul,.doc-frame ol,.issue-frame ul,.issue-frame ol{padding-left:22px;margin-bottom:14px}
.doc-frame li,.issue-frame li{font-size:14.5px;color:var(--ink2);margin-bottom:7px}
.doc-frame a,.issue-frame a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(91,70,168,.28);word-break:break-all}
.doc-frame a:hover,.issue-frame a:hover{border-bottom-color:var(--accent)}
.doc-frame code,.issue-frame code{
  background:var(--accent-bg);padding:1.5px 5px;border-radius:4px;font-size:13px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink);
}
.doc-frame pre,.issue-frame pre{background:#f0edf9;border-radius:9px;padding:15px 17px;overflow-x:auto;margin-bottom:15px}
.doc-frame pre code,.issue-frame pre code{background:none;padding:0;font-size:12.5px;line-height:1.65}
.doc-frame hr,.issue-frame hr{border:none;border-top:1px solid var(--lav-line);margin:26px 0}
.doc-frame blockquote,.issue-frame blockquote{
  border-left:3px solid var(--lav-deep);
  background:#f7f5fc;
  padding:13px 17px;border-radius:0 10px 10px 0;margin:0 0 15px;
}
.doc-frame blockquote p,.issue-frame blockquote p{color:var(--sub);margin:0;font-size:14px}
.doc-frame strong,.issue-frame strong{color:var(--ink);font-weight:600}
.doc-frame em,.issue-frame em{font-style:normal;color:var(--ink3)}

/* 表格（日报正文通用，today/archive 共用） */
.tbl{overflow-x:auto;margin-bottom:17px;border:1px solid var(--lav-line);border-radius:10px;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th,td{padding:10px 13px;text-align:left;border-bottom:1px solid var(--lav-line);vertical-align:top}
th{background:#f0edf9;font-weight:600;font-size:12.5px;color:var(--sub);white-space:nowrap}
tr:last-child td{border-bottom:none}

.loading{font-size:14px;color:var(--ink3);padding:48px 0;text-align:center}
.err{font-size:14px;color:#a32d2d;background:#fcebeb;padding:16px 18px;border-radius:10px}

/* ============ 往期日报：左小框目录 + 右大框 ============ */
.split{
  display:flex;
  gap:18px;
  align-items:flex-start;
}
.side{
  flex:0 0 232px;
  position:sticky;
  top:18px;
  padding:16px;
  max-height:calc(100vh - 40px);
  overflow-y:auto;
}
.side h3{
  font-size:11.5px;
  color:var(--sub);
  font-weight:500;
  letter-spacing:.06em;
  text-transform:uppercase;
  margin:0 0 10px;
  padding-left:2px;
}
.side a.issue{
  display:block;
  text-decoration:none;
  color:var(--ink2);
  padding:10px 12px;
  border-radius:10px;
  margin-bottom:3px;
  border:1px solid transparent;
  transition:background-color .18s,border-color .18s;
}
.side a.issue:hover{background:var(--hover);color:var(--ink);border-color:var(--card-line)}
.side a.issue.on{background:var(--hover);color:var(--accent);border-color:var(--card-line)}
.side a.issue .no{display:block;font-size:13.5px;font-weight:600;line-height:1.5}
.side a.issue .dt{display:block;font-size:11.5px;opacity:.7;margin-top:1px}
.side a.issue.on .dt{opacity:.85}

.issue-frame{flex:1;min-width:0;padding:36px 42px 46px}
.doc-frame .meta,
.issue-frame .meta{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  font-size:12.5px;
  color:var(--sub);
  padding-bottom:16px;
  margin-bottom:20px;
  border-bottom:1px solid var(--lav-line);
}
.doc-frame .meta .badge,
.issue-frame .meta .badge{
  background:var(--accent-bg);
  color:var(--accent);
  font-weight:600;
  padding:2px 11px;
  border-radius:9999px;
  font-size:12px;
}
.doc-frame .meta .dot,
.issue-frame .meta .dot{opacity:.4}

/* 表头右侧定格的说明小字 */
.doc-frame .meta .meta-right,
.issue-frame .meta .meta-right{
  margin-left:auto;
  font-size:12px;
  color:var(--ink3);
  opacity:.85;
  white-space:nowrap;
}

/* ============ 关于我们：右小目录 + 左大框 ============ */
.split-rev{
  display:flex;
  gap:18px;
  align-items:flex-start;
}
.about-frame{flex:1;min-width:0;padding:40px 46px 48px;overflow-wrap:anywhere}
.about-frame section{margin-bottom:34px}
.about-frame section:last-child{margin-bottom:0}
.about-frame h2{
  font-size:1.12rem;
  font-weight:600;
  margin:0 0 13px;
  padding-left:11px;
  border-left:3px solid var(--lav-deep);
  line-height:1.4;
  scroll-margin-top:24px;
}
.about-frame p{font-size:14.5px;color:var(--ink2);margin-bottom:12px}
.about-frame ul{padding-left:21px;margin-bottom:13px}
.about-frame li{font-size:14.5px;color:var(--ink2);margin-bottom:7px}
.about-frame strong{color:var(--ink);font-weight:600}
.about-frame a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(91,70,168,.28);word-break:break-all}
.about-frame a:hover{border-bottom-color:var(--accent)}

.lead{
  font-size:15.5px;
  color:var(--ink);
  line-height:1.8;
  margin-bottom:16px;
}

/* 补充说明 / 规则生效注记 */
.about-frame .tip{
  font-size:12.5px;
  color:var(--ink3);
  line-height:1.7;
  margin-top:-4px;
  padding-left:11px;
  border-left:2px solid var(--lav-line);
}

.arch{
  background:#f7f5fc;
  border:1px solid var(--lav-line);
  border-radius:12px;
  padding:16px 18px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:12.5px;
  line-height:1.85;
  color:var(--ink2);
  overflow-x:auto;
  margin-bottom:15px;
  white-space:pre;
}

.stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(152px,1fr));
  gap:12px;
  margin-bottom:18px;
}
.stat{
  background:#f7f5fc;
  border:1px solid var(--lav-line);
  border-radius:12px;
  padding:15px 16px;
}
.stat b{display:block;font-size:1.4rem;font-weight:600;color:var(--accent);line-height:1.25}
.stat span{display:block;font-size:12px;color:var(--ink3);margin-top:3px}

.toc-side{order:2}
.about-frame{order:1}
.toc-side a{
  display:block;
  font-size:13px;
  color:var(--ink2);
  text-decoration:none;
  padding:7px 11px;
  border-radius:9px;
  margin-bottom:2px;
  transition:background-color .18s,color .18s;
}
.toc-side a:hover{background:var(--hover);color:var(--ink)}
.toc-side a.on{background:var(--hover);color:var(--accent);font-weight:500}
.toc-side .contact{
  margin-top:14px;
  padding-top:13px;
  border-top:1px solid var(--lav-line);
  font-size:12.5px;
  color:var(--ink3);
  padding-left:11px;
  line-height:1.7;
}
.toc-side .contact a{display:inline;padding:0;color:var(--accent);background:none}

/* ============ 页脚 ============ */
.foot{
  position:relative;
  z-index:2;
  max-width:1240px;
  margin:0 auto;
  padding:0 28px 46px;
  font-size:12.5px;
  color:var(--sub);
  opacity:.8;
  text-align:center;
}

/* 日报页脚：右下角小字 */
.foot.foot-note{
  text-align:right;
  font-size:12px;
  opacity:.7;
  padding-bottom:34px;
}

/* ============ 动效（2026-09-23 第七轮） ============
   全部纯 CSS，JS 只做观测增强；文字始终在 HTML 里，不阻塞首屏。
   检测到系统「减少动态效果」时全部关闭。 */

/* 正文分段渐入：由 IntersectionObserver 加 .in 触发 */
.reveal{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .55s cubic-bezier(.16,1,.3,1),transform .55s cubic-bezier(.16,1,.3,1);
}
.reveal.in{opacity:1;transform:none}

/* 期数卡片：交错入场 */
.side a.issue{
  opacity:0;
  animation:issueIn .5s cubic-bezier(.16,1,.3,1) forwards;
}
@keyframes issueIn{
  from{opacity:0;transform:translateX(-10px)}
  to{opacity:1;transform:none}
}

/* 期数卡片：悬停浮起（仅桌面端，触屏无意义） */
@media(hover:hover) and (pointer:fine){
  .side a.issue{
    transition:background-color .18s,border-color .18s,transform .18s,box-shadow .18s;
  }
  .side a.issue:hover{
    transform:translateY(-2px);
    box-shadow:0 6px 16px rgba(97,78,160,.16);
  }
}

/* 换期内容过渡 */
.issue-frame.switching{
  opacity:0;
  transform:translateY(8px);
  transition:opacity .18s ease,transform .18s ease;
}
.issue-frame.switched{
  opacity:1;
  transform:none;
  transition:opacity .38s cubic-bezier(.16,1,.3,1),transform .38s cubic-bezier(.16,1,.3,1);
}

/* 顶部阅读进度条 */
.readbar{
  position:fixed;
  top:0;
  left:0;
  height:2px;
  width:0;
  background:var(--accent);
  z-index:99;
  pointer-events:none;
  transition:width .08s linear;
}

/* ============ 出处分级筛选 ============ */
.gradefilter{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  padding:0 0 16px;
  margin-bottom:18px;
  border-bottom:1px solid var(--lav-line);
}
.gradefilter .gf-label{
  font-size:12px;
  color:var(--ink3);
  margin-right:2px;
}
.gradefilter button{
  font:inherit;
  font-size:12.5px;
  color:var(--ink2);
  background:#fff;
  border:1px solid var(--card-line);
  border-radius:9999px;
  padding:4px 13px;
  cursor:pointer;
  transition:background-color .18s,color .18s,border-color .18s;
}
.gradefilter button:hover{background:var(--hover);color:var(--ink)}
.gradefilter button.on{
  background:var(--accent-bg);
  color:var(--accent);
  border-color:rgba(91,70,168,.32);
  font-weight:600;
}
.gradefilter .gf-hint{
  font-size:11.5px;
  color:var(--ink3);
  margin-left:auto;
}
.gradefilter .gf-hint b{font-weight:600;color:var(--sub)}

/* 被筛掉的条目 */
.grade-hidden{display:none}

/* 出处分级徽标（正文内自动标注） */
.grade-badge{
  display:inline-block;
  font-size:10.5px;
  font-weight:600;
  line-height:1.5;
  padding:0 6px;
  border-radius:4px;
  margin-right:5px;
  vertical-align:1px;
  white-space:nowrap;
}
.grade-badge.gA{background:#e1f5ee;color:#0f6e56}
.grade-badge.gB{background:#e6f1fb;color:#185fa5}
.grade-badge.gC{background:#faeeda;color:#854f0b}

/* 关闭动效 */
@media(prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .side a.issue{opacity:1;animation:none}
  .issue-frame.switching,.issue-frame.switched{opacity:1;transform:none;transition:none}
  .readbar{transition:none}
}

/* ============ 响应式 ============ */
@media(max-width:980px){
  .split,.split-rev{flex-direction:column;gap:14px;align-items:stretch}
  .side{
    position:static;
    flex:none;
    width:100%;
    max-width:100%;
    max-height:none;
    order:1;
  }
  .side a.issue{display:inline-block;width:auto;margin-right:6px}
  .side a.issue .no{display:inline;font-size:13px}
  .side a.issue .dt{display:inline;margin-left:6px}
  .toc-side{order:1;width:100%;max-width:100%}
  .toc-side a{display:inline-block;margin-right:5px}
  .about-frame{order:2}
  .issue-frame,.about-frame{width:100%;max-width:100%;padding:24px 22px 32px}
  .pagehead{padding:24px 22px}
}
@media(max-width:640px){
  .shell{padding:12px 14px 52px}
  .topbar{padding:16px 14px 4px}
  .foot{padding:0 14px 32px}
  .navpill{padding:7px 14px;gap:11px}
  .navpill a{font-size:12.5px}
  .brandline i{display:none}
  .doc-frame h1{font-size:1.3rem}
  .stats{grid-template-columns:repeat(2,1fr)}
}
