:root {
  --bg: #f7f9fc;
  --surface: #ffffff;
  --surface-2: #f0f4f9;
  --text: #1a2233;
  --text-muted: #5b6b77;
  --border: #e3e9f2;
  --accent: #1f6feb;
  --accent-soft: #e8f0fe;
  --accent-2: #0f9d8a;
  --shadow: 0 1px 3px rgba(20, 40, 80, 0.06), 0 6px 24px rgba(20, 40, 80, 0.06);
  --radius: 14px;
  --maxw: 1080px;
  --font: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--font);
  color: var(--text);
  background: var(--bg);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  /* 页脚贴底（2026-09-19）：body 撑满视口并纵向排列，
     内容不足一屏时由 main 吸收剩余高度，把页脚推到页面底部。
     两行 min-height：100dvh 是移动端「动态视口高度」，地址栏收起/展开时
     不会像 100vh 那样留出多余空白或产生抖动；不支持 dvh 的浏览器回退到 100vh。 */
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}

a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ---------- Header ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--border);
  /* body 已是 flex 纵向容器：显式禁止收缩，sticky 头不会变形 */
  flex: 0 0 auto;
}
.nav {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 14px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 18px;
  color: var(--text);
}
.brand:hover { text-decoration: none; }
/* 品牌标识：「花朵图案 + luojbo.cn 词标」作为一个整体排版
 * 2026-09-23：由纯图案方形版（28x28）重做为图字一体的横版（显示高 28 → 宽约 113）。
 * 排版基准：词标的垂直中线对准花瓣圆心，故图与字读作一个整体。
 * 深色底场景由 HTML 内的 <picture> + prefers-color-scheme 切换 dark 版。 */
.brand picture { display: block; flex: 0 0 auto; }
.brand .brand-logo {
  display: block;
  width: auto;
  /* 横版整体图，高 28px；宽度由图片比例决定（约 149px） */
  height: 28px;
  flex: 0 0 auto;
  /* 透明 PNG 缩放时的边缘柔化，避免高速屏出现硬边 */
  image-rendering: auto;
}
/* 页头品牌文字：横版 logo 已含「luojbo.cn」词标，
 * 故中文站名与内嵌标语不再显示（避免页头出现两个品牌名）。
 * 节点保留，仅隐藏 —— 可访问性由 <img alt="luojbo.cn 财报分析"> 承担。 */
.brand .name { display: none; }
.brand .sub { color: var(--text-muted); font-weight: 500; font-size: 12px; }
.nav-links { display: flex; gap: 6px; align-items: center; }
.nav-links a {
  color: var(--text-muted);
  padding: 8px 14px;
  border-radius: 9px;
  font-size: 15px;
  font-weight: 500;
  white-space: nowrap;
}
.nav-links a:hover { background: var(--surface-2); text-decoration: none; color: var(--text); }
.nav-links a.active { color: var(--accent); background: var(--accent-soft); }

/* ---------- Layout ---------- */
.container { max-width: var(--maxw); margin: 0 auto; padding: 0 20px; }
/* 页脚贴底：main 吸收剩余高度（flex-grow:1）。
 * flex-basis 用 auto，内容超出一屏时正常增高，不裁切、不出现内部滚动。
 *
 * ⚠️ width:100% 不可删（2026-09-19 修）。
 * main 是 body（display:flex; flex-direction:column）的子项，而 .container 带 margin:0 auto。
 * 按 flex 规范，交叉轴外边距为 auto 时 align-self:stretch 失效，子项改用「收缩包裹」尺寸
 * → main 被压成内容宽度：首页搜索卡只剩 475px，博客/文章页正文也被挤窄。
 * width:100% 让 main 重新撑满，上限仍由 .container 的 max-width:1080px 兜住。 */
main { padding: 32px 0 64px; flex: 1 0 auto; width: 100%; }

/* ---------- Hero（首页 / 博客页品牌横幅） ---------- */
.hero {
  position: relative;
  overflow: hidden;
  /* 满宽：左右两端与下方搜索卡片严格对齐（占据容器内容区全宽） */
  margin: 13px 0 0;
  padding: 16px 34px 14px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #1f6feb 0%, #0f9d8a 100%);
  color: #fff;
  box-shadow: 0 5px 13px rgba(31, 111, 235, 0.18);
}
/* 左上柔光，避免纯色块发闷 */
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(120% 150% at 8% -20%, rgba(255, 255, 255, 0.34) 0%, rgba(255, 255, 255, 0) 58%);
  pointer-events: none;
}
.hero > * { position: relative; z-index: 1; }
.hero h1 {
  margin: 0 0 4px;
  font-size: 13.5px;
  line-height: 1.32;
  letter-spacing: 0.01em;
}
.hero p {
  margin: 0;
  max-width: 100%;
  font-size: 7.75px;
  line-height: 1.75;
  opacity: 0.93;
}

/* ---------- Section title ---------- */
/* 深蓝横条：宽 = 内容区满宽（1040），高 40；左标题 / 中数据 / 右入口 */
.section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  height: 40px;
  margin: 40px 0 18px;
  padding: 0 16px;
  border-radius: 12px;
  background: linear-gradient(100deg, #0a2148 0%, #123a7d 62%, #155a86 100%);
  box-shadow: 0 4px 14px rgba(10, 33, 72, 0.22);
  color: #fff;
}
.section-head h2 {
  margin: 0;
  font-size: 15.5px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;
  color: #fff;
}
/* 标题前的小竖条，取 Hero 的蓝→青渐变做呼应 */
.section-head h2::before {
  content: "";
  display: inline-block;
  width: 3px;
  height: 13px;
  margin-right: 8px;
  border-radius: 2px;
  background: linear-gradient(180deg, #6aa8ff 0%, #35d0b5 100%);
  vertical-align: -2px;
}
.section-head .meta { color: rgba(255, 255, 255, 0.78); font-size: 12.5px; }

/* 中部：全站数据小结（原 Hero 内的统计，下移至此；深蓝底上改为通透排版） */
.section-head .head-stats {
  display: flex;
  align-items: center;
  gap: 16px;
  align-self: center;
  color: rgba(255, 255, 255, 0.72);
  font-size: 11.5px;
  line-height: 1;
  white-space: nowrap;
}
.section-head .head-stats > span { display: inline-flex; align-items: center; }
/* 三格之间的细分隔线 */
.section-head .head-stats > span + span::before {
  content: "";
  width: 1px;
  height: 11px;
  margin-right: 16px;
  background: rgba(255, 255, 255, 0.22);
}
.section-head .head-stats b {
  margin-right: 3px;
  font-size: 13px;
  font-weight: 700;
  color: #9ec5ff;
  letter-spacing: 0.01em;
}

/* ---------- Filters / tags ---------- */
/* 标签栏：可折叠，默认只显示一行（「全部」+ 展开按钮） */
.toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 0;
}
/* 折叠时隐藏「全部」之外的标签；展开后恢复多行平铺 */
.tag-fold:not(.expanded) .toolbar-rest { display: none; }
.toolbar-rest { display: contents; }
.tag-fold { margin-bottom: 22px; }

.tag-fold-toggle {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 10px;
  padding: 5px 12px;
  border-radius: 999px;
  background: transparent;
  border: 1px dashed var(--border);
  color: var(--text-muted);
  font-family: inherit;
  font-size: 12px;
  cursor: pointer;
  transition: all .15s ease;
}
.tag-fold-toggle:hover { border-color: var(--accent); color: var(--accent); }
.tag-fold-arrow { transition: transform .2s ease; }
.tag-fold.expanded .tag-fold-arrow { transform: rotate(180deg); }

.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 13px;
  border-radius: 999px;
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--text-muted);
  font-size: 13px;
  cursor: pointer;
  transition: all .15s ease;
}
.chip:hover { border-color: var(--accent); color: var(--accent); text-decoration: none; }
.chip.active { background: var(--accent); color: #fff; border-color: var(--accent); }
.chip .count { font-size: 11px; opacity: .7; }
a.chip { text-decoration: none; }

/* ---------- Search ---------- */
.search-wrap {
  position: relative;
  margin-bottom: 18px;
}
.search-input {
  width: 100%;
  padding: 13px 16px 13px 42px;
  font-size: 15px;
  font-family: inherit;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow);
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.search-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.search-input::placeholder { color: #9aa7b4; }
.search-icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 15px;
  opacity: .6;
  pointer-events: none;
}

/* ---------- Article list ---------- */
.post-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.post-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: transform .15s ease, box-shadow .15s ease;
  box-shadow: var(--shadow);
  /* 卡片内的标题 / 摘要也可能带长链接（AI 日报按条目罗列来源 URL），
     同样需要降 min-content，否则卡片自身会把网格列撑宽 */
  overflow-wrap: break-word;
  overflow-wrap: anywhere;
}
.post-card:hover { transform: translateY(-3px); box-shadow: 0 10px 30px rgba(20,40,80,.12); }
.post-card .date { color: var(--text-muted); font-size: 13px; }
.post-card h3 { margin: 0; font-size: 19px; line-height: 1.4; }
.post-card h3 a { color: var(--text); }
.post-card h3 a:hover { color: var(--accent); text-decoration: none; }
.post-card .excerpt { color: #44505e; font-size: 14.5px; margin: 0; flex: 1; }
.post-card .tags { display: flex; flex-wrap: wrap; gap: 6px; }
.tag {
  font-size: 12px;
  padding: 3px 10px;
  border-radius: 6px;
  background: var(--accent-soft);
  color: var(--accent);
}
.tag:hover { text-decoration: none; filter: brightness(0.96); }

/* ---------- Post detail ---------- */
.post-header { margin-bottom: 26px; }
.post-header h1 { font-size: 30px; line-height: 1.35; margin: 14px 0 12px; }
.post-meta { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; color: var(--text-muted); font-size: 14px; }
.back-link { display: inline-flex; align-items: center; gap: 6px; color: var(--text-muted); font-size: 14px; }
.back-link:hover { color: var(--accent); text-decoration: none; }
.article {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 36px 40px;
  box-shadow: var(--shadow);
  font-size: 16.5px;
  /* 长不可断串（URL / 下划线变量名）防溢出：
     break-word 给老引擎兜底；anywhere 额外降低 min-content，
     否则 repeat(2,1fr) 的网格轨道会被撑宽、整页横向溢出。
     该属性可继承，一处即覆盖 p / li / blockquote / td / h2 / h3 */
  overflow-wrap: break-word;
  overflow-wrap: anywhere;
}
.article h2 { font-size: 24px; margin: 32px 0 14px; padding-bottom: 8px; border-bottom: 1px solid var(--border); }
.article h3 { font-size: 20px; margin: 26px 0 10px; }
.article p { margin: 14px 0; }
.article ul, .article ol { padding-left: 24px; margin: 14px 0; }
.article li { margin: 6px 0; }
.article blockquote {
  margin: 18px 0;
  padding: 12px 18px;
  border-left: 4px solid var(--accent);
  background: var(--surface-2);
  border-radius: 0 10px 10px 0;
  color: #44505e;
}
.article code {
  background: var(--surface-2);
  padding: 2px 6px;
  border-radius: 5px;
  font-size: 14px;
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}
.article pre {
  background: #0f1729;
  color: #e6edf3;
  padding: 16px 18px;
  border-radius: 10px;
  overflow-x: auto;
  font-size: 14px;
  line-height: 1.6;
}
.article pre code { background: none; padding: 0; color: inherit; }
.article table {
  width: 100%;
  border-collapse: collapse;
  margin: 18px 0;
  font-size: 14.5px;
  display: block;
  overflow-x: auto;
}
.article th, .article td { border: 1px solid var(--border); padding: 9px 12px; text-align: left; }
.article th { background: var(--surface-2); font-weight: 600; }
.article img { max-width: 100%; border-radius: 10px; }
.article hr { border: none; border-top: 1px solid var(--border); margin: 28px 0; }

.disclaimer {
  margin-top: 28px;
  padding: 14px 18px;
  background: #fff7e6;
  border: 1px solid #ffe0a3;
  border-radius: 10px;
  color: #8a6d1f;
  font-size: 13.5px;
}

/* ---------- Tags page ---------- */
.tag-cloud { display: flex; flex-wrap: wrap; gap: 10px; }
.tag-cloud .chip { font-size: 14px; padding: 8px 16px; }

/* ---------- About ---------- */
.about-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 40px;
  box-shadow: var(--shadow);
}
.about-card h2 { margin-top: 0; }
.about-card ul { padding-left: 22px; }

/* ---------- Empty / loading ---------- */
.empty { text-align: center; color: var(--text-muted); padding: 60px 0; }
.loading { text-align: center; color: var(--text-muted); padding: 40px 0; }

/* ---------- Footer ---------- */
/* 2026-09-19 Hugo 指定：①字号较原 13.5px 缩小一倍 → 6.75px；
   ②页脚内所有文字统一为同一种浅灰色（不再区分正文灰 / 链接蓝 / 数字深色）。
   统一色值用 --footer-ink 一处定义，改色只动这里。
   ── 同日追加（合规修正）────────────────────────────────────────
   备案号与举报投诉入口属**法定必须公示**的内容，不适用上面的"观感缩小"：
     · ICP 备案号：《非经营性互联网信息服务备案管理办法》第13条"标明其备案编号"
     · 举报投诉：网安备案/安全评估考察"已建立有效投诉举报机制"
   6.75px + #9aa7b4 实测对比度仅 2.45:1（低于 WCAG AA 4.5:1），
   原文里"极小字体/隐藏色"属禁止项，故这两处单独提到 12px / #5a6b7d（5.48:1 达标）。
   其余页脚文案（访问统计 / 版权 / 免责声明）不受法规约束，维持原观感。 */
.site-footer {
  --footer-ink: #9aa7b4;      /* 观感用：访问统计 / 版权 / 免责声明 */
  --footer-legal: #5a6b7d;    /* 合规用：备案号 / 举报投诉入口（对比度 5.48:1，达 AA） */
  border-top: 1px solid var(--border);
  padding: 26px 20px 22px;
  color: var(--footer-ink);
  font-size: 6.75px;
  text-align: center;
  /* 页脚贴底：不参与收缩，高度恒等于内容高度；
     剩余空间由 main 吸收，页脚因此始终落在页面最底部。 */
  flex: 0 0 auto;
}
.site-footer a { color: var(--footer-ink); }
/* 页脚内一切可能覆盖颜色的元素，统一回 --footer-ink */
.site-footer b,
.site-footer strong { color: var(--footer-ink); }

/* 页脚两行布局：
 *   第 1 行 = 访问统计 + 意见反馈
 *   第 2 行 = 备案号 + 版权声明
 * 行内用 flex 居中，窗口过窄时自动折行，不会挤成一行溢出。
 */
.footer-row {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 20px;
}
.footer-row + .footer-row { margin-top: 10px; }

.footer-stats {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
/* 分隔点不再单独调淡：页脚要求「全部同一种颜色」 */
.footer-stats .sep { opacity: 1; }
.footer-stats b { color: var(--footer-ink); font-weight: 700; }

/* 举报投诉入口：法定公示项，保持可辨认（12px / 对比度 5.48:1） */
.footer-feedback { font-size: 12px; color: var(--footer-legal); }
.footer-feedback a { color: var(--footer-legal); margin: 0 4px; }
.footer-feedback a:hover { text-decoration: underline; }

/* 备案号：法定公示项。★不再同比例减半★
 * 广东省管局口径：广东省网站必须标「主体备案号」，不带 -1 / -2 网站序号。 */
.footer-beian { font-size: 12px; }
.footer-beian a { color: var(--footer-legal); }
.footer-beian a:hover { text-decoration: underline; }
/* 公安备案图标：官方格式要求「备案编号图标在前，备案编号在右」，须与编号同轨、清晰可辨 */
.footer-beian .sep { margin: 0 6px; }
.footer-beian img { height: 16px; width: auto; vertical-align: -3px; margin-right: 4px; }

/* 版权行不再单独降透明度：统一色值即可，避免出现「两种浅灰」 */
.footer-copy { opacity: 1; }

/* ---------- 首页：工具 + 博客合并 ---------- */
.section-head a.meta { font-weight: 500; }
.section-head a.meta:hover { color: var(--accent); text-decoration: none; }
.tool-scope { margin-top: 22px; }
.tool-scope .hidden { display: none !important; }

/* ---------- Responsive ---------- */
@media (max-width: 760px) {
  .post-list { grid-template-columns: 1fr; }
  /* 窄屏：横幅占满宽度（半宽在窄屏无法阅读），留白与字号同步收紧 */
  .hero { width: 100%; margin-top: 18px; padding: 20px 18px 18px; border-radius: 12px; }
  .hero h1 { font-size: 18px; }
  .hero p { font-size: 12px; }
  /* 窄屏：深蓝条改为自适应高度，数据小结折到第二行，避免挤压「全部文章」 */
  .section-head {
    height: auto;
    min-height: 40px;
    padding: 9px 14px;
    flex-wrap: wrap;
    row-gap: 8px;
  }
  .section-head .head-stats {
    order: 3;
    width: 100%;
    flex-wrap: wrap;
    justify-content: flex-start;
    row-gap: 7px;
    white-space: normal;
  }
  .article { padding: 24px 20px; }
  .about-card { padding: 26px 22px; }
  /* 导航：窄屏时整体换行，避免链接文字被挤成竖排 */
  .nav { flex-wrap: wrap; row-gap: 6px; padding: 12px 16px; }
  .brand { min-width: 0; }
  .nav-links { width: 100%; justify-content: space-between; gap: 2px; }
  .nav-links a { padding: 7px 10px; font-size: 14px; }
}

/* ---------- 页脚补充（2026-09-19）：意见反馈 / 举报投诉 与受理时间 ---------- */
.footer-feedback {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0 4px;
}
/* 受理时间属举报投诉公示的一部分，随入口同色 */
.footer-hours { color: var(--footer-legal); opacity: 1; }

/* ============================================================
   手机版适配（2026-09-19 Hugo 指定：字体样式 / 版面 / 页脚，总体整洁美观）
   全部规则限定在 760px 断点内，桌面端（含已上线的备案号 12px 合规版式）零影响。
   集中放在文件末尾，确保对上方同特异性声明形成覆盖。
   ============================================================ */
@media (max-width: 760px) {

  /* ---------- 页头：压掉冗余行高，导航改为等宽标签栏 ---------- */
  /* 品牌副标语「· 读财报，看本质」在 390px 下被推到最右侧（实测 x215..309），
     与左侧 logo 断开成两块，手机端隐藏，品牌只保留 logo + 站名，整体更整。 */
  .brand .sub { display: none; }
  /* 导航条底部不留 padding，让选中指示条正好压在页头下边框上（见下） */
  .nav { padding: 10px 16px 0; row-gap: 4px; }
  .brand { font-size: 17px; }

  /* 导航四项等宽均分。原为 space-between + 各自内容宽（实测 76/56/56/56），
     四格左右不齐；改 flex:1 后严格等分，形成规整的标签栏。
     链接底部 padding 取 10px，使 2px 指示条贴在页头下边缘，
     与 header 自身的 1px 分隔线连成一条 —— 视觉上是"页签"，不再是悬空的短线；
     顺带把整行做成通到底边的点击区，手指更好按。 */
  .nav-links { gap: 0; }
  .nav-links a {
    flex: 1 1 0;
    text-align: center;
    padding: 6px 0 10px;
    border-radius: 0;
    line-height: 1.4;
    border-bottom: 2px solid transparent;
  }
  .nav-links a:hover { background: transparent; }
  /* 选中态由「胶囊底」改「底部指示条」：手机上更轻，
     也不会因圆角背景落在等宽格子里而显得左右不齐 */
  .nav-links a.active {
    background: transparent;
    color: var(--accent);
    border-bottom-color: var(--accent);
  }

  /* ---------- 版面：卡片在剩余空间里垂直居中 ---------- */
  /* 首页内容只占一屏的 1/3，原来空白全部堆在卡片下方（实测 438.5px），页面重心严重偏上。
     改为上下均分。这里用 auto 外边距而不用 justify-content:center ——
     内容超出一屏时 auto 外边距会自动归零，退化为正常文档流，
     既不会裁切，页面顶部也不会变得无法滚到。 */
  /* padding-bottom 取 12 而非 24：搜索卡自身带 16px margin-bottom，
     两边相加才与顶部 28px 对齐，卡片上下留白严格相等（实测各 212.2px）。 */
  main.no-hero { padding: 28px 20px 12px; display: flex; flex-direction: column; }
  .tool-scope { margin-top: auto; margin-bottom: auto; width: 100%; }

  /* ---------- 页脚：统一字号阶梯 + 分组分行 ---------- */
  /* 原字号实测 6.75 / 12 / 12 / 6.75 共四种，手机屏上既碎又糊。
     手机端基础字号统一 11.5px；备案号与举报投诉属**法定公示项**，
     保持 12–12.5px（不低于桌面端的合规线），其余文案随基础字号。 */
  .site-footer {
    padding: 22px 16px 20px;
    font-size: 11.5px;
    line-height: 1.65;
  }
  /* 一行放不下两组信息时，原来靠 flex-wrap 自动折行 → 各组各自居中、参差不齐。
     改为「一组一行」，全部居中，纵向节奏统一。 */
  .footer-row { flex-direction: column; align-items: center; gap: 10px; }
  .footer-row + .footer-row { margin-top: 10px; }
  .footer-stats { justify-content: center; gap: 6px; }
  /* 举报投诉块：主文案一行，「受理时间」独立成行居中。
     gap 与 a 的外边距都回到桌面端的 4px——「在线留言」与邮箱之间合计 12px，
     不会像原来两处各 2px（合计 6px）那样两个可点目标糊在一起。
     已在 320/360/390 三档实测：主文案仍为一行，不折行。 */
  .footer-feedback { justify-content: center; font-size: 12px; gap: 0 4px; }
  .footer-hours { display: block; width: 100%; text-align: center; margin-top: 3px; }
  /* 法定公示项：手机端不再下探，保持清晰可辨 */
  .footer-beian { font-size: 12.5px; }
}

/* ============================================================
   博客页：品牌横幅（.hero）与「最新文章」深蓝条（.section-head）
   由「两块分离的色条」合并为**一块无缝卡片**（2026-10-12 Hugo 指定）。
   仅调整这两段的布局与间距 —— 字体、字号、行高、文案与既有功能一律不动。
   两段各自的背景渐变**原样保留**，接缝处不留空白、不做内圆角。
   ============================================================ */
.blog-head {
  /* 原 .hero 的 13px 上边距 + .section-head 的 18px 下边距，改由包裹层统一承担，
     两张条之间的 40px 外边距在此归零 */
  margin: 13px 0 18px;
  border-radius: var(--radius);   /* 14px，沿用原 .hero 的圆角，与文章卡片一致 */
  overflow: hidden;               /* 接缝处保持直角，外缘四角由本层统一裁切 */
  box-shadow: 0 6px 18px rgba(16, 48, 100, 0.20);   /* 合并为单层投影，接缝处不再互相投射 */
}
.blog-head .hero,
.blog-head .section-head {
  margin: 0;            /* ★ 消除两色条中间 40px 的空白间隙 */
  border-radius: 0;     /* 接缝处与外缘都不再各自圆角，交给包裹层裁 */
  box-shadow: none;     /* 去掉各自的投影，避免在接缝处叠出一条暗带 */
}

/* 窄屏：沿用原 .hero 在 760px 断点下的 18px 上边距与 12px 圆角。
   媒体查询追加在文件末尾，确保对上方同特异性的基础声明形成覆盖。 */
@media (max-width: 760px) {
  .blog-head { margin-top: 18px; border-radius: 12px; }
}

/* ================= 文章列表分页（2026-10-29） =================
   按钮沿用 .chip 的胶囊观感（同圆角、同边框、同 hover 色），保证与标签栏一致。
   禁用态不用浏览器默认灰，而是降透明度 + 保留边框，避免深色模式下变黑块。 */
.pager {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin: 30px 0 10px;
}
.pager[hidden] { display: none; }

/* 日报分页用 hidden 属性收起卡片；.post-card 自带 display:flex，
   会盖掉浏览器默认的 [hidden]{display:none}，必须显式补一条 */
.post-card[hidden] { display: none; }

.pager-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  font-family: inherit;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 999px;
  cursor: pointer;
  transition: color .15s ease, border-color .15s ease, background .15s ease;
}
.pager-btn:hover:not(:disabled) {
  color: var(--accent);
  border-color: var(--accent);
  background: var(--accent-soft);
}
.pager-btn:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.pager-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.pager-info {
  font-size: 13px;
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}
.pager-info b { color: var(--text); font-weight: 600; }

@media (max-width: 760px) {
  .pager { margin: 24px 0 6px; gap: 8px 10px; }
  .pager-btn { padding: 8px 15px; font-size: 13.5px; }
}
