/* ============================================================
   Flying Log · home.css —— 首页版式（仪表条 + 左文章流 / 右 AI 动态）
   ------------------------------------------------------------
   加载顺序在 style.css 之后：这里只做「版式重排 + 新栏目」，
   不重新定义 .post-card / .stat-item / .chip 的语义与配色变量，
   以免与 style.css 的设计语言分叉。
   时间维度色板：今天/本周 = 工程蓝，头条 = Java 橙，重要 = 蓝，普通 = 灰。

   2026-10-09 改版：去掉 Hero 横幅与终端启动条。
   因此 style.css 里的 .boot-lines / .home-hero / .tech-card / .spec-row
   在本页不再出现（.boot-term-bar 仍被「关于」页的 manifesto 复用，勿删）。
   ============================================================ */

/* ---------- ① 顶部仪表条：原 Hero 只留 4 个统计数字 ---------- */
.home-stats {
  display: flex;
  gap: 46px;
  flex-wrap: wrap;
  margin: 26px 0 34px;
  padding: 15px 2px 17px;
  border-bottom: 1px dashed var(--line);
}
.home-stats .stat-num { font-size: 25px; }
.home-stats .stat-num b { font-size: 13px; }
.home-stats .stat-label { margin-top: 4px; letter-spacing: 1.4px; }

/* ---------- ② 双栏主体：左 = 最新文章（流） / 右 = AI 动态（侧栏） ---------- */
.home-cols {
  display: grid;
  grid-template-columns: minmax(0, 1.66fr) minmax(320px, 1fr);
  gap: 44px;
  align-items: start;
}
.home-col-main,
.home-col-side { min-width: 0; }

/* ---------- ③ 区块通用 ---------- */
.home-block { margin-bottom: 54px; }
.home-block .section-head { margin: 0 0 20px; }
.home-block .section-head h2 { font-size: 23px; }

/* 左栏：文章卡片网格（窄容器里自然落到 2 列），标题与摘要同步收一档 */
#latestBlock .posts-grid {
  grid-template-columns: repeat(auto-fill, minmax(268px, 1fr));
  gap: 20px;
  margin-bottom: 18px;
}
#latestBlock .post-card { padding: 20px 20px 16px; gap: 11px; }
#latestBlock .post-card::after { font-size: 34px; top: 8px; right: 12px; }
#latestBlock .card-title { font-size: 18.5px; }
#latestBlock .card-excerpt {
  font-size: 13.5px;
  line-height: 1.7;
  -webkit-line-clamp: 2;
}
/* 折叠只作用于视觉；卡片仍在 DOM 中（检索/无 JS 兜底完整） */
.posts-grid.is-collapsed .post-card:nth-child(n + 7) { display: none; }

.grid-foot { display: flex; justify-content: center; }
.grid-more {
  appearance: none;
  font: 600 12.5px var(--font-mono);
  letter-spacing: .6px;
  color: var(--ink-soft);
  background: var(--card);
  border: 1px dashed var(--line);
  border-radius: 999px;
  padding: 9px 22px;
  cursor: pointer;
  transition: color .18s ease, border-color .18s ease, transform .18s ease;
}
.grid-more:hover {
  color: var(--orange);
  border-color: var(--orange);
  transform: translateY(-1px);
}

/* ---------- ④ 右栏 AI 动态：窄栏变体（与 ≤640px 同一套收敛规则） ----------
   侧栏宽度约 320–420px，放不下「竖时间轴 + 右对齐时间」的宽排版：
   收敛为「时间在标题上方 + 无竖轴无圆点」，DOM 与语义完全不变。 */
.home-col-side .ai-pulse { --rail-x: 0px; }
.home-col-side .pg-list::before { display: none; }
.home-col-side .pi {
  grid-template-columns: minmax(0, 1fr);
  padding: 10px 0;
}
.home-col-side .pi-dot { display: none; }
.home-col-side .pi-time {
  text-align: left;
  padding: 0 0 3px;
  font-size: 11px;
}
.home-col-side .pi-main { padding-left: 0; }
.home-col-side .pi-title { font-size: 14.5px; line-height: 1.45; }
.home-col-side .pi-sum {
  font-size: 12.5px;
  line-height: 1.65;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.home-col-side .pulse-bar { gap: 10px; margin-bottom: 16px; }
.home-col-side .pulse-tabs { width: 100%; }
.home-col-side .pulse-tab { flex: 1; justify-content: center; padding: 6px 10px; }
.home-col-side .pulse-tab b { font-size: 12.5px; }
.home-col-side .pulse-meta { margin-left: 0; width: 100%; font-size: 11.5px; }
.home-col-side .pg-head { padding: 6px 10px; gap: 8px; }
.home-col-side .pg-label { font-size: 12px; }
.home-col-side .pi-foot { gap: 6px; margin-top: 6px; }
.home-col-side .pulse-note { font-size: 11px; }
.home-col-side .pulse-more { align-self: stretch; }

/* ============================================================
   ④ AI 动态栏目（日 / 周 双视图）
   ============================================================ */
.ai-pulse { --rail-x: 100px; }

.pulse-bar {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.pulse-tabs {
  display: inline-flex;
  gap: 2px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--card);
  box-shadow: var(--shadow-1);
}
.pulse-tab {
  appearance: none;
  border: none;
  background: transparent;
  cursor: pointer;
  display: inline-flex;
  align-items: baseline;
  gap: 7px;
  padding: 6px 16px;
  border-radius: 999px;
  color: var(--ink-soft);
  font-family: var(--font-body);
  transition: background .2s ease, color .2s ease;
}
.pulse-tab b { font-size: 13.5px; font-weight: 700; }
.pulse-tab span {
  font: 600 9px var(--font-mono);
  letter-spacing: 1.2px;
  color: var(--ink-faint);
  text-transform: uppercase;
}
.pulse-tab:hover { color: var(--orange); }
.pulse-tab.active { background: var(--ink); color: #fff; }
.pulse-tab.active span { color: rgba(255, 255, 255, .62); }
.pulse-tab:focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }

.pulse-meta {
  margin-left: auto;
  font: 500 12px var(--font-mono);
  color: var(--ink-faint);
  letter-spacing: .4px;
}

/* ---------- 分组（周 / 日 共用骨架） ---------- */
.pulse-group { margin-bottom: 20px; }
.pg-head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 7px 14px;
  border-left: 3px solid var(--blue);
  border-radius: 0 3px 3px 0;
  background: linear-gradient(90deg, rgba(29, 95, 191, .07), rgba(29, 95, 191, 0));
}
.pg-key {
  font: 700 12px var(--font-mono);
  letter-spacing: .8px;
  color: var(--blue);
}
.pg-label { font-size: 13px; color: var(--ink-soft); }
.pg-count {
  margin-left: auto;
  font: 700 11px var(--font-mono);
  color: var(--ink-faint);
}

.pg-list {
  list-style: none;
  position: relative;
  padding: 6px 0 0;
}
/* 时间轴竖线：落在圆点列的中心（--rail-x） */
.pg-list::before {
  content: "";
  position: absolute;
  left: var(--rail-x);
  top: 14px;
  bottom: 10px;
  width: 1px;
  background: linear-gradient(180deg, var(--line), rgba(214, 222, 230, 0));
}

.pi {
  display: grid;
  grid-template-columns: 92px 16px minmax(0, 1fr);
  gap: 0 0;
  align-items: start;
  padding: 9px 0;
}
.pi-time {
  font: 500 12px var(--font-mono);
  color: var(--ink-faint);
  text-align: right;
  padding-top: 3px;
  padding-right: 8px;
}
.pi-dot {
  width: 9px;
  height: 9px;
  margin: 7px auto 0;
  border-radius: 50%;
  background: var(--card);
  border: 2px solid var(--line);
  position: relative;
  z-index: 1;
}
.pi-main { min-width: 0; padding-left: 12px; }

.pi-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.5;
  display: inline-block;
}
a.pi-title:hover { color: var(--orange); }
.pi-out {
  font-size: 11px;
  margin-left: 5px;
  color: var(--ink-faint);
  vertical-align: super;
}
a.pi-title:hover .pi-out { color: var(--orange); }

.pi-sum {
  font-size: 13px;
  line-height: 1.7;
  color: var(--ink-soft);
  margin-top: 3px;
}
.pi-foot {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 7px;
}
.pi-src {
  font: 500 11px var(--font-mono);
  color: var(--ink-faint);
  letter-spacing: .4px;
}
.pi-cat {
  font: 600 11px var(--font-body);
  color: var(--blue);
  background: var(--blue-soft);
  padding: 1px 8px;
  border-radius: 3px;
}
.pi-foot .chip { font-size: 11px; padding: 1px 8px; }

/* 类型标识：外链=灰（点了离开本站），站内=蓝（点了进详情页） */
.pi-kind {
  font-size: 10.5px;
  letter-spacing: .6px;
  padding: 1px 7px;
  border-radius: 3px;
  border: 1px solid var(--line);
  color: var(--ink-faint);
}
.pi-kind.kind-article {
  color: var(--blue);
  background: var(--blue-soft);
  border-color: rgba(29, 95, 191, .25);
}
.pi-in {
  font-size: 12px;
  margin-left: 5px;
  color: var(--ink-faint);
  vertical-align: super;
}
a.pi-title-in:hover .pi-in { color: var(--orange); }

/* 重要度：头条=橙（实心点），重要=蓝（空心点） */
.pi.imp-2 .pi-dot { border-color: var(--orange); background: var(--orange); }
.pi.imp-1 .pi-dot { border-color: var(--blue); background: var(--card); }
.pi.imp-2 .pi-title { font-weight: 800; }

/* ---------- 栏目页脚 ---------- */
.pulse-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 6px;
}
.pulse-more {
  appearance: none;
  font: 600 12.5px var(--font-mono);
  letter-spacing: .6px;
  color: var(--ink-soft);
  background: var(--card);
  border: 1px dashed var(--line);
  border-radius: 999px;
  padding: 8px 20px;
  cursor: pointer;
  transition: color .18s ease, border-color .18s ease, transform .18s ease;
}
.pulse-more:hover {
  color: var(--blue);
  border-color: var(--blue);
  transform: translateY(-1px);
}
.pulse-note {
  font: 400 11.5px var(--font-mono);
  color: var(--ink-faint);
  letter-spacing: .3px;
}
.pulse-empty {
  font: 400 13px var(--font-mono);
  color: var(--ink-faint);
  padding: 18px 0 22px;
}

/* ============================================================
   AI 动态详情页（#/ai-news/{id}，仅 type=article 条目）
   骨架复用文章详情的 .article-wrap，这里只补动态特有的头部元素。
   ============================================================ */
.ain-sum {
  margin-top: 14px;
  padding-left: 12px;
  border-left: 3px solid var(--orange);
  font-size: 14.5px;
  line-height: 1.85;
  color: var(--ink-soft);
}
.ain-week {
  margin-top: 14px;
  font: 500 11.5px var(--font-mono);
  letter-spacing: .6px;
  color: var(--ink-faint);
}
.ain-ori {
  font-size: 12px;
  font-weight: 600;
  color: var(--orange);
  text-decoration: none;
}
.ain-ori:hover { text-decoration: underline; }

/* ============================================================
   响应式
   ============================================================ */
/* ≤1180：中屏收窄侧栏与栏距 */
@media (max-width: 1180px) {
  .home-cols { grid-template-columns: minmax(0, 1.5fr) minmax(300px, 1fr); gap: 34px; }
  .home-stats { gap: 34px; }
}

/* ≤980：双栏折回单栏；AI 动态回到「时间轴 + 右对齐时间」的宽排版 */
@media (max-width: 980px) {
  .home-cols { grid-template-columns: 1fr; gap: 0; }
  .home-stats { gap: 30px; }

  .home-col-side .ai-pulse { --rail-x: 76px; }
  .home-col-side .pg-list::before { display: block; }
  .home-col-side .pi { grid-template-columns: 68px 16px minmax(0, 1fr); padding: 9px 0; }
  .home-col-side .pi-dot { display: block; }
  .home-col-side .pi-time { text-align: right; padding: 3px 8px 0 0; font-size: 11.5px; }
  .home-col-side .pi-main { padding-left: 12px; }
  .home-col-side .pi-title { font-size: 15px; }
  .home-col-side .pi-sum { font-size: 13px; -webkit-line-clamp: unset; display: block; }
  .home-col-side .pulse-tabs { width: auto; }
  .home-col-side .pulse-tab { flex: none; padding: 6px 16px; }
  .home-col-side .pulse-meta { margin-left: auto; width: auto; }
}

@media (max-width: 640px) {
  .home-stats { gap: 20px; margin: 18px 0 26px; padding: 12px 0 14px; }
  .home-stats .stat-num { font-size: 19px; }
  #latestBlock .posts-grid { grid-template-columns: 1fr; }
  .home-block { margin-bottom: 42px; }
  .home-block .section-head { flex-wrap: wrap; gap: 6px 12px; }
  .home-block .section-head .sec-count { margin-left: 0; }
  .pulse-meta { margin-left: 0; width: 100%; }

  /* 窄屏：抽掉时间轴竖线，时间移到标题上方 */
  .ai-pulse { --rail-x: 0px; }
  .pg-list::before { display: none; }
  .pi { grid-template-columns: minmax(0, 1fr); padding: 10px 0 10px 0; }
  .pi-dot { display: none; }
  .pi-time { text-align: left; padding: 0 0 2px; font-size: 11px; }
  .pi-main { padding-left: 0; }
}
