/* ==========================================================================
   PC 资讯页展示层优化（publish-redesign.css）
   仅被 publish.html 引用；mobile-publish.html 不加载本文件。
   层级：排在 publish-p1.css / search-family.css 之后，同名特异性下后到优先。

   范围（2026-10-06 用户授权，PC-owned presentation 层）：
   1) 搜索框 focus：去 input 原生深色 outline（含 :focus-visible 路径），
      统一为品牌蓝系表单反馈；键盘可达性由「表单 :focus-within 蓝环 +
      提交按钮既有 focus-visible 描边」承载，不是无替代的 outline:none。
   2) 「35条短讯」计数签：仅隐藏视觉（#radar-count 文本仍由 JS 回填，
      统计逻辑不动）。
   3) 模块署名统一：卡片底部「经由智能门锁研究Pro 整理」逐卡重复 → 隐藏，
      改由 Hero 说明一次性承载（publish.html 文案）。
   4) meta 带：发布/事件日期（左下信息来源 · 右下日期签）保持既有几何，
      归档条目日期签加「收录于」前缀（对应未来 ingestedAt 语义）；
      publishedAt 字段由 Codex 侧就绪后落同一插槽，缺字段时两者都不渲染
      （news-board.js 已有 verified/regex 双闸，不会出现 undefined/假日期）。
   不改：news-board.js（Shared，PC/Mobile 共用）、抓取/AI/API/排序/数据字段。
   ========================================================================== */

/* ---------- 1. 搜索框 focus ---------- */
html body[data-page="publish"]:not(.mobile-page) #news-search-form.ui-search input[type="search"] {
  outline: none !important;
}

/* focus 反馈落在表单容器上（鼠标点击与 Tab 键盘路径同款），配色取品牌浅蓝族 */
html body[data-page="publish"]:not(.mobile-page) #news-search-form.ui-search:focus-within {
  border-color: #63c9ed !important;
  box-shadow: 0 10px 26px rgba(12, 36, 64, .10), 0 0 0 3px rgba(0, 172, 235, .12) !important;
}

/* ---------- 2. 计数签隐藏（视觉层） ---------- */
html body[data-page="publish"]:not(.mobile-page) .ui-search-hero__meta #radar-count {
  display: none !important;
}

/* ---------- 2b. 模块说明第二句（核验署名）——已退役 ----------
   原 ::after 追加「内容基于公开信息整理…」第二句（2026-10-06 设计）。
   2026-10-10 文案合并为单句「汇总…，经智能门锁研究Pro整理、编辑后发布。」，
   静态 HTML 与 site-content.json 已同步改写，::after 追加行随之删除。
   ---------------------------------------------------------- */

/* ---------- 3. 卡片逐卡署名隐藏（模块说明已在 Hero 统一出现） ---------- */
html body[data-page="publish"]:not(.mobile-page) .news-item .news-attribution {
  display: none !important;
}

/* ---------- 4. meta 带：日期签与「收录于」语义插槽 ---------- */
/* 归档条目的入库日期 → 「收录于 YYYY-MM-DD」（数据已有 ingestedDate，
   仅 newsDisplayTier=archive 且格式合法时渲染，优雅降级） */
html body[data-page="publish"]:not(.mobile-page) .news-item .news-archive-badge::before {
  content: '收录于 ';
}

/* 归档日期签与事件日期签同族：浅灰签底、次级灰蓝文字 */
html body[data-page="publish"]:not(.mobile-page) .news-item .news-archive-badge {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  border-radius: 6px;
  background: #f2f5f9;
  color: var(--pub-text-2, #45607a);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0;
}

/* ==========================================================================
   N1 三形态层级（2026-10-06 授权；LEVEL-1 VISUAL CORRECTION 定稿）
   --------------------------------------------------------------------------
   结构：每栏目 左 1 深度 / 中 2 标准 / 右 5~6 快讯。
   数据现状：news-board.js（Shared）渲染扁平卡片流，item 尚无 contentType，
   本层用「位置」承担三形态；[data-news-type] 属性钩子（写在位置规则之后）
   待 Codex 输出真实类型后接管。
   视觉身份（LEVEL-1 修正）：深度=品牌蓝实底角标 + 深色渐变 hero 卡（最强）；
   标准=浅蓝细边角标 + 横向缩略图位；快讯=珊瑚红栏头 + 高密度列表行。
   栏底处理：自然高度差（不做底部对齐、无填充面板——LEVEL-1 明令移除）。
   ========================================================================== */

html body[data-page="publish"]:not(.mobile-page) .timeline-track {
  position: relative;
  display: grid !important;
  /* 严格视觉还原（STRICT VISUAL RESTORE，2026-10-07，以已确认效果图为契约）：
     列宽比例 = 深度 40% / 标准 34% / 快讯 26%（1.5 : 1.28 : 1，非均分三列）。
     行模型 = 27 细分行带（13 + 12px 中缝 + 13）：中列两卡各占 13 带（等高、
     间距=12px 中缝带），深度跨满 1/-1，快讯按条数均分行带——三列顶边同在
     带 1 顶线、底边同在带 27 底线，几何由构造保证，不依赖空白撑高。 */
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1.28fr) minmax(0, 1fr) !important;
  grid-template-rows: repeat(13, minmax(0, 1fr)) 12px repeat(13, minmax(0, 1fr)) !important;
  column-gap: 14px !important;
  row-gap: 0 !important;
  align-items: stretch !important;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item {
  margin: 0 !important;
}

/* PC browse uses presentation slots; search falls back to canonical type selectors. */
/* 快讯堆叠容器：grid 定位到第三列整高，内部 flex 顶部锚定。
   padding-top = 栏头高 22px + 16~20px 间距 → 首条行顶 = 栏头底 + 17px
   （四栏目同构，由构造保证）。 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack {
  grid-column: 3 !important;
  grid-row: 1 / -1 !important;
  align-self: stretch !important;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding-top: 39px;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item {
  margin: 0 !important;
}

/* 每栏目快讯上限 6 条：超出部分视觉层隐藏（窄屏/检索态解除见下方）。 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item:nth-child(n+7) {
  display: none !important;
}

/* --- canonical 类型及同档位版位 --- */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) {
  grid-column: 1 !important;
  grid-row: 1 / -1 !important;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="standard"], [data-news-type="standard"]:where(:not([data-presentation-slot]))) {
  grid-column: 2 !important;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="standard"], [data-news-type="standard"]:where(:not([data-presentation-slot])))[data-news-slot="standard-1"] {
  grid-row: 1 / 14 !important;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="standard"], [data-news-type="standard"]:where(:not([data-presentation-slot])))[data-news-slot="standard-2"] {
  grid-row: 15 / 28 !important;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot]))) {
  grid-column: 3 !important;
  align-self: stretch !important;
}

/* 空状态占位卡：整栏铺满（栏目级空态） */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item.empty-card {
  grid-column: 1 / -1 !important;
  grid-row: 1 / -1 !important;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item.empty-card::before {
  display: none !important;
}

/* --- 类型角标（::before 注入，不依赖 Shared DOM 变更） -----------------
   色彩层级（以已确认效果图为契约）：深度=珊瑚红实底白字、快讯=珊瑚红栏头。
   资讯角标已退役（2026-10-10 用户拍板）：标准卡缩略位已有真实图/分类默认图
   承载视觉，「透明资讯标签」冗余——content:none 根除（角标为绝对定位悬层，
   删除零布局位移；检索态本就 content:none，窄屏单列只恢复快讯角标不受影响）。 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item::before {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  height: 24px;
  margin: 0 0 12px;
  padding: 0 12px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot])))::before {
  content: '深度';
  background: #ff5c6c;
  color: #fff;
  box-shadow: 0 2px 8px rgba(255, 92, 108, .30);
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="standard"], [data-news-type="standard"]:where(:not([data-presentation-slot])))::before {
  content: none;
}

/* 快讯行不逐行贴角标：身份由右栏顶部「快讯」栏头承载（LEVEL-1 §五）；
   窄屏单列（无栏头）在下方媒体查询恢复行级角标。 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item::before,
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot])))::before {
  content: none;
}

/* --- 深度卡：Hero 封面文章（目标稿 §3） --------------------------------
   数据无授权新闻图（禁止造图）→ 统一深度 fallback hero：本地抽象科技
   封面资产（深海军渐变 + 细网格 + 青蓝辉光 + 线稿智能门锁纹理，images/
   news/deep-hero-fallback.svg）整卡 cover 覆盖，左缘暗部承载文字——
   是「有封面设计的深度文章」，不是纯色矩形（目标稿 §9 红线）。 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) {
  padding: 24px 26px 20px !important;
  border: 0 !important;
  border-radius: 16px;
  background:
    linear-gradient(90deg, rgba(3, 15, 26, .90) 0%, rgba(3, 15, 26, .55) 52%, rgba(3, 15, 26, .08) 100%),
    url("../../images/news/deep-hero-fallback.svg") center / cover no-repeat,
    linear-gradient(135deg, #054a70, #032538) !important;
  box-shadow: 0 16px 38px rgba(0, 32, 51, .24) !important;
  /* 深度跨满整列（=中列两卡+中缝总高）：封面背景铺满全卡不产生「空白」，
     内部空间用 space-between 分配成段落呼吸（角标|标题|摘要|来源） */
  justify-content: space-between !important;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot])))[data-detail-href]:hover {
  border-color: transparent !important;
  box-shadow: 0 20px 44px rgba(0, 32, 51, .34) !important;
}

/* 深度卡真实 hero 图（图片优先级 P1-P3 命中时）：绝对定位铺满整卡，
   覆盖背景 fallback；深色 overlay 改由 ::after 承接（z1），文字层 z2——
   overlay 参数沿用已确认 fallback 视觉（不重新设计，左缘白字可读性不变）。
   onerror 移除 <img> 后 :has 不再匹配：overlay 撤除、背景 fallback 回归。 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) .news-thumb {
  grid-column: auto;
  grid-row: auto;
  inset: 0;
  border-radius: 16px;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))):has(.news-thumb)::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: 16px;
  background: linear-gradient(90deg, rgba(3, 15, 26, .90) 0%, rgba(3, 15, 26, .55) 52%, rgba(3, 15, 26, .08) 100%);
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) > strong,
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) > .news-summary,
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) > .news-source {
  position: relative;
  z-index: 2;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) .news-item-top {
  z-index: 2;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) strong {
  color: #fff;
  font-size: 22px;
  line-height: 1.4;
  margin-bottom: 10px;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) .news-summary {
  -webkit-line-clamp: 4;
  color: rgba(255, 255, 255, .86);
  font-size: 13.5px;
  line-height: 1.75;
  margin-bottom: 0;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) .news-source {
  color: rgba(255, 255, 255, .68) !important;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) .news-source .source-static {
  color: rgba(255, 255, 255, .68) !important;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) .news-source .source-link {
  color: #7fd8f7 !important;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) .news-source .news-attribution {
  color: rgba(255, 255, 255, .55);
}

/* 深色卡上的日期签（已核实事件日期 / 归档收录日期）：白系透明签 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) .news-date,
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) .news-archive-badge {
  background: rgba(255, 255, 255, .16);
  color: #fff;
}

/* LIST → DETAIL WIRING（2026-10-08）：深度卡内联展开正文已移除，
   其暗底白字排版规则随之删除，正文阅读由 news-article.html 承担。 */

/* --- 标准卡：横向缩略图 + 文字（LEVEL-1 §四） ---------------------------
   数据无授权图：缩略图位用品牌蓝系装饰瓦片（纹理 + 线稿图标，aria 语义
   为纯装饰），真实 heroImage 就绪后由 Codex 在 renderItem 换 <img>。 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="standard"], [data-news-type="standard"]:where(:not([data-presentation-slot]))) {
  display: grid !important;
  grid-template-columns: 116px minmax(0, 1fr);
  /* BADGE OVER MEDIA（2026-10-06）：角标移出正文流 → 4 行模型
     标题 | 摘要 | 展开正文 | meta，全 auto + 顶对齐（§四：TITLE→摘要→meta
     连续节奏）。行不用 1fr——1fr = minmax(auto,1fr)，其 auto 最小值会把
     摘要 clamp 盒未折减的 min-content 高度计入行高（实测行多撑 ~40-55px、
     摘要删除都无效）；全 auto 行消除这层放大。残余固有地板来自文本块自身
     min-content（Chrome 对 clamp 盒不折减，min-height:fit-content 实测无效，
     消融证据见 outputs/metrics），继续压低只能裁文本或破坏冻结视觉，不做。 */
  /* FINAL COLUMN COMPRESSION（2026-10-06）：摘要行定值 45px。摘要 clamp 固定
     2 行（13.5×1.65×2=44.55），auto 行的 min-content 最小值会把未折减的
     固有高度计入卡片地板（实测行多撑 ~36px、栏目整体被托高）——定值行根除
     该放大；1 行摘要顶对齐留下方空气。行高依赖摘要行距，改行距需同步。 */
  grid-template-rows: auto 45px auto auto;
  align-content: start;
  column-gap: 14px;
  /* FINAL TIGHTENING：上下 padding 16/14→14/12——行 1-4 行高由标准卡决定，
     此处每卡省 ~8px 直接收紧整个栏目（快讯行 1-4 为 stretch 共享行）。 */
  padding: 14px 16px 12px !important;
}

/* 角标覆盖缩略位（BADGE OVER MEDIA，2026-10-06→2026-10-10 退役）：
   原「资讯」角标 absolute 悬层随上役撤除——缩略位视觉由真实图/分类默认图
   完整承载，正文网格 4 行模型（标题|摘要|展开正文|meta）不受影响。 */

/* 正式缩略图式占位（目标稿 §5，2026-10-07 定稿）：无图标准卡使用本地
   SVG 占位资产（images/news/thumb-fallback-industry.svg——冰蓝渐变 + 细网格
   + 折角 + 居中「行业资讯」字标），object-fit:cover 语义（background cover）
   保持所有缩略位视觉尺寸一致；不是纯色空块、不是巨大文字块。
   缩略位只跨内容行（角标→摘要），与目标稿「图高≈卡高 70%」一致；
   未来 Codex 输出真实 <img class="news-thumb">（授权 heroImage，handoff
   E1/E4）时由下方 :has 规则自动整体让位。 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="standard"], [data-news-type="standard"]:where(:not([data-presentation-slot])))::after {
  content: '';
  grid-column: 1;
  grid-row: 1 / 5;
  /* TILE BALANCE（2026-10-08 用户复核）：占位图跨行延至 meta 行底（与右侧
     「授权信源」行底齐平，消除图下 55px 空白带），并 margin-top 整体再下移
     8px——上下留白趋衡。真实图 .news-thumb 同步同跨行同下移。 */
  margin-top: 8px;
  align-self: stretch;
  border-radius: 10px;
  background: url("../../images/news/thumb-fallback-industry.svg") center / cover no-repeat;
  box-shadow: inset 0 0 0 1px rgba(11, 106, 143, .10);
  min-height: 92px;
}

/* 分类默认图（CATEGORY DEFAULT COVERS，2026-10-09 用户供图）：无图标准卡
   的缩略位按所属栏目落对应分类默认图（行业动态=industry / 产品发布=launch /
   国外视野=global / 数据报告=report，源图 1448x1086 压缩为 800x600 JPEG）。
   变量挂在栏目节点（.news-column[data-news-section]）由卡片继承；下方覆盖
   规则与上方兜底规则镜像同一选择器集（nth-child(2)/(3) + 预留的
   data-news-type），仅替换 background-image——几何/圆角/发丝描边/跨行
   完全继承兜底规则，真实图 <img class="news-thumb"> 仍绝对定位覆盖其上
   优先（图片优先级契约不变）。快讯行与检索态平铺卡沿用既有整体抑制；
   Mobile 页不加载本文件，移动端维持通用 SVG 兜底。 */
html body[data-page="publish"]:not(.mobile-page) .news-column[data-news-section="industry"] { --news-default-cover: url("../../images/news/default-industry.jpg"); }
html body[data-page="publish"]:not(.mobile-page) .news-column[data-news-section="launch"] { --news-default-cover: url("../../images/news/default-launch.jpg"); }
html body[data-page="publish"]:not(.mobile-page) .news-column[data-news-section="global"] { --news-default-cover: url("../../images/news/default-global.jpg"); }
html body[data-page="publish"]:not(.mobile-page) .news-column[data-news-section="report"] { --news-default-cover: url("../../images/news/default-report.jpg"); }

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="standard"], [data-news-type="standard"]:where(:not([data-presentation-slot])))::after {
  background-image: var(--news-default-cover, url("../../images/news/thumb-fallback-industry.svg"));
}

/* 真实缩略图优先（FINAL IMAGE PRIORITY CLOSEOUT，2026-10-07）：
   renderer 在条目携带合法真实图时输出 <img class="news-thumb">（PC 门控，
   Mobile DOM 不变）。绝对定位 + 显式 grid-area → 包含块=缩略位网格区，
   与 fallback 瓦片同框像素对齐；绝对定位不参与行尺寸计算——卡片高度/
   双卡等高/摘要 clamp 零影响。img 覆盖在 fallback 瓦片之上（渐进显示，
   瓦片即加载期占位）；加载失败 onerror 移除 <img>，瓦片自动回归兜底。 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item .news-thumb {
  grid-column: 1 / 2;
  grid-row: 1 / 5;
  margin-top: 8px;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  border-radius: 10px;
  display: block;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="standard"], [data-news-type="standard"]:where(:not([data-presentation-slot]))) strong {
  grid-column: 2;
  grid-row: 1;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="standard"], [data-news-type="standard"]:where(:not([data-presentation-slot]))) .news-summary {
  grid-column: 2;
  grid-row: 2;
  /* 摘要=2 行 clamp（§4）。行已改全 auto（无 1fr 拉伸），clamp 正常生效；
     align-self:start 保留为防御（行若被外部拉伸时盒子仍自收缩）。 */
  align-self: start;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

/* LIST → DETAIL WIRING（2026-10-08）：标准卡内联展开正文已移除，
   原「展开正文横跨缩略图全宽」的网格规则随之删除。 */

html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="standard"], [data-news-type="standard"]:where(:not([data-presentation-slot]))) .news-source {
  grid-column: 2;
  grid-row: 4;
}

/* --- 标题锚点（LIST → DETAIL WIRING）：标题是真实 <a>，继承卡片排印；
   focus-visible 沿用 PC 既有链接焦点体系（#0087b3），不引入新粗蓝框。 --- */
html body[data-page="publish"]:not(.mobile-page) .news-title-link {
  color: inherit;
  text-decoration: none;
}

html body[data-page="publish"]:not(.mobile-page) .news-title-link:focus-visible {
  outline: 2px solid #0087b3;
  outline-offset: 2px;
}

/* --- C. 栏目段落感（FINAL TIGHTENING §C，轻量处理） --------------------
   栏间距 56→48px，后续栏目顶部 1px 极浅分隔线（#e9eef5）+ 30px 呼吸，
   标题区与内容区间距 16→13px；不加大色块、不加容器、字号体系不动。 */
html body[data-page="publish"]:not(.mobile-page) .news-column {
  margin-bottom: 48px !important;
}

html body[data-page="publish"]:not(.mobile-page) .news-column:last-child {
  margin-bottom: 0 !important;
}

html body[data-page="publish"]:not(.mobile-page) .news-column + .news-column {
  border-top: 1px solid #e9eef5;
  padding-top: 30px;
}

html body[data-page="publish"]:not(.mobile-page) .column-head {
  margin-bottom: 13px !important;
}

/* --- 快讯区栏头（目标稿 §6）：珊瑚红「快讯」短角标 + 栏目名深色粗体 ----
   绝对定位覆盖在快讯列顶部、不占行带（三列顶边同在 track 顶线的实现关键）；
   角标左锚定收缩为短 badge（不拉满列宽）；栏目名跟在角标右侧。
   「更多快讯→」因无栏目路由不做（交接 E8，不做死链）。
   第三列左缘 = 100% - (100% - 28px 列距) / 3.78fr 份数和。 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track:not(.is-empty)::before {
  position: absolute;
  top: 0;
  left: calc(100% - (100% - 28px) / 3.78);
  z-index: 2;
  height: 22px;
  display: inline-flex;
  align-items: center;
  padding: 0 10px;
  border-radius: 6px;
  background: #ff5c6c;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1;
  box-shadow: 0 2px 8px rgba(255, 92, 108, .30);
  content: '快讯';
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track:not(.is-empty)::after {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
  width: calc((100% - 28px) / 3.78);
  padding-left: 58px;
  box-sizing: border-box;
  line-height: 22px;
  color: #22303f;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .01em;
  content: '行业快讯';
}

html body[data-page="publish"]:not(.mobile-page) [data-list="industry"] .timeline-track:not(.is-empty)::after {
  content: '行业快讯';
}

html body[data-page="publish"]:not(.mobile-page) [data-list="launch"] .timeline-track:not(.is-empty)::after {
  content: '产品快讯';
}

html body[data-page="publish"]:not(.mobile-page) [data-list="global"] .timeline-track:not(.is-empty)::after {
  content: '海外快讯';
}

html body[data-page="publish"]:not(.mobile-page) [data-list="report"] .timeline-track:not(.is-empty)::after {
  content: '数据快讯';
}

/* 小图栏目和检索态没有快讯列时不出栏头；三栏中的空快讯位仍保留身份。 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track:not(:has(.flash-stack))::before,
html body[data-page="publish"]:not(.mobile-page) .timeline-track:not(:has(.flash-stack))::after {
  content: none;
}

/* --- 快讯行：高密度纯信息流（目标稿 §6：标题+日期、发丝分割、不放图、
   不逐条贴角标；摘要按目标稿视觉不进列表行——要素在展开区与详情页）
   FLASH COLUMN CONTRACT：所有行统一 padding / line-height / border /
   gap，首条无特殊高度，不做行带垂直居中（顶部锚定由 .flash-stack 承担）。 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item,
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot]))) {
  padding: 9px 76px 9px 2px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(20, 40, 60, .08) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  min-height: 0 !important;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item[data-detail-href]:hover,
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot])))[data-detail-href]:hover {
  background: #f8fbfd !important;
  transform: none !important;
  box-shadow: none !important;
  border-color: rgba(20, 40, 60, .08) !important;
}

/* 标题行：珊瑚红圆点 + 标题（13.5px/600），日期签浮右 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item strong::before,
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot]))) strong::before {
  content: '';
  display: inline-block;
  flex: 0 0 auto;
  width: 5px;
  height: 5px;
  margin-right: 7px;
  border-radius: 50%;
  background: #ff5c6c;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item strong,
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot]))) strong {
  font-size: 13.5px;
  font-weight: 600;
  margin-bottom: 3px;
}

/* 快讯行不放摘要（目标稿：紧凑标题流；摘要保留在展开区与详情页）；
   窄屏单列与检索态在下方规则恢复。 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item .news-summary,
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot]))) .news-summary {
  display: none !important;
}

/* 日期签：行右上（仅 eventTimeVerified=true 渲染，数据闸门不变） */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item .news-item-top,
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot]))) .news-item-top {
  top: 9px;
  right: 2px;
  bottom: auto;
}

html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item .news-date,
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot]))) .news-date,
html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item .news-archive-badge,
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot]))) .news-archive-badge {
  height: 19px;
  padding: 0 7px;
  font-size: 11.5px;
  font-weight: 600;
}

/* 快讯行不放图片（纯信息流契约）：真实图字段命中也不改变快讯行形态 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item .news-thumb,
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot]))) .news-thumb {
  display: none !important;
}

/* 快讯行不放来源（LEVEL-1 §五要素：标题/极短摘要/日期）；来源在展开区与详情页 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item .news-source,
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot]))) .news-source {
  display: none !important;
}

/* （原「快讯条数自适应行带分配 :has 计数」5/4/3/2/1 条分支已整体移除：
   FLASH COLUMN CONTRACT 下快讯为 .flash-stack 自然堆叠，任意条数
   顶部锚定、底部留白，无需按计数改写行带区间。） */

/* --- 窄桌面（≤1180px）：三区退化为单列纵向 --- */
@media (max-width: 1180px) {
  html body[data-page="publish"]:not(.mobile-page) .timeline-track {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: none !important;
  }

  html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item[data-news-type] {
    grid-column: 1 !important;
    grid-row: auto !important;
  }

  /* 单列下堆叠容器退为普通纵向块：撤销栏头让位与第三列定位，解除 6 条上限 */
  html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack {
    grid-column: auto !important;
    grid-row: auto !important;
    padding-top: 0;
  }

  html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item:nth-child(n+7) {
    display: flex !important;
  }

  html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item,
  html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot]))) {
    align-self: auto !important;
  }

  html body[data-page="publish"]:not(.mobile-page) .timeline-track:not(.is-empty)::before,
  html body[data-page="publish"]:not(.mobile-page) .timeline-track:not(.is-empty)::after {
    content: none;
  }

  /* 单列没有快讯栏头：恢复行级「快讯」角标（珊瑚红描边弱化版）保类型可辨 */
  html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item::before,
  html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot])))::before {
    content: '快讯';
    height: 20px;
    margin-bottom: 6px;
    padding: 0 9px;
    background: rgba(255, 92, 108, .10);
    border: 1px solid rgba(255, 92, 108, .28);
    color: #c9313f;
    box-shadow: none;
    font-size: 11.5px;
    font-weight: 600;
  }

  html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item,
  html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot]))) {
    padding-left: 14px !important;
    justify-content: flex-start !important;
  }

  /* 单列下快讯恢复两行摘要，避免长标题信息损失 */
  html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item .news-summary,
  html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot]))) .news-summary {
    display: -webkit-box !important;
    -webkit-box-orient: vertical;
    overflow: hidden;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    margin-left: 0 !important;
  }

  /* 单列下快讯行恢复来源行（无右栏语境，按标准卡元信息呈现） */
  html body[data-page="publish"]:not(.mobile-page) .timeline-track .flash-stack .news-item .news-source,
  html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot]))) .news-source {
    display: block !important;
    padding-right: 0 !important;
  }
}

/* --- 检索态（body.news-search-active，由 publish.html PC-owned 脚本标记） ---
   关键词检索结果是平铺匹配集：退回均匀双列列表，去掉三区位置、类型徽章、
   快讯上限与缺料占位，避免任意第一条结果被位置规则贴上「深度」徽章。 */
html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-template-rows: none !important;
  row-gap: 14px !important;
}

/* 检索态平铺：快讯堆叠容器溶解（display:contents），条目回归均匀网格流 */
html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .flash-stack {
  display: contents;
}

html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item {
  grid-column: auto !important;
  grid-row: auto !important;
  align-self: stretch !important;
  justify-content: flex-start !important;
  margin-bottom: 0 !important;
  padding: 18px 20px 16px !important;
  border-color: var(--pub-border, #e6ebf2) !important;
  box-shadow: none !important;
}

html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item::before,
html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item::after {
  content: none !important;
}

/* 检索态平铺卡不放缩略图（退平铺契约）：真实图在列表态/详情页承载 */
html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item .news-thumb {
  display: none !important;
}

html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item strong {
  font-size: var(--type-item-title-size, 15px);
}

html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item .news-summary {
  display: -webkit-box !important;
  -webkit-box-orient: vertical;
  overflow: hidden;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  font-size: 13.5px;
  line-height: 1.65;
}

html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item:nth-child(n+10),
html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .flash-stack .news-item:nth-child(n+7) {
  display: flex !important;
}

html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track:not(.is-empty)::before,
html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track:not(.is-empty)::after {
  content: none !important;
}

/* 检索态还原（撤三形态专属形态）：深度 hero 回白卡、标准卡缩略图网格退回
   flex、快讯弹点/日期浮签/来源行还原为普通卡元信息。 */
html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) {
  display: flex !important;
  justify-content: flex-start !important;
  background: var(--pub-surface, #fff) !important;
  box-shadow: none !important;
}

html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) strong {
  color: var(--pub-text-1, #172033) !important;
  font-size: var(--type-item-title-size, 15px);
}

html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) .news-summary {
  color: var(--ink-muted, #2a5f7a) !important;
}

html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) .news-source,
html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) .news-source .source-static {
  color: var(--pub-text-3, #5a6b7e) !important;
}

html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .flash-stack .news-item strong::before,
html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot]))) strong::before {
  content: none !important;
}

html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .flash-stack .news-item .news-source,
html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item:is([data-presentation-slot="flash"], [data-news-type="flash"]:where(:not([data-presentation-slot]))) .news-source {
  display: block !important;
}

html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item .news-item-top {
  position: static;
  margin: 0 0 8px;
}

html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item:has(.news-item-top) .news-source {
  padding-right: 0;
}

html body[data-page="publish"].news-search-active:not(.mobile-page) .news-layout .timeline-track .news-item .news-summary {
  margin-left: 0 !important;
}

/* ---------- 5. 未来字段预留（休眠样式，数据/渲染就绪前不产生任何视觉） ----------
   a) 列表卡「关键信息」bullet 组：keyFacts 当前只在展开区渲染（Shared renderer
      边界，见报告 CODEX_ESCALATION）；Codex 在 renderItem 输出
      <ul class="news-card-facts"> 后本样式即生效。 */
html body[data-page="publish"]:not(.mobile-page) .news-item .news-card-facts {
  margin: 0 0 12px;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 4px;
}

html body[data-page="publish"]:not(.mobile-page) .news-item .news-card-facts li {
  position: relative;
  padding-left: 14px;
  color: var(--pub-text-2, #45607a);
  font-size: 12.5px;
  line-height: 1.6;
}

html body[data-page="publish"]:not(.mobile-page) .news-item .news-card-facts li::before {
  content: '';
  position: absolute;
  left: 2px;
  top: .62em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: rgba(0, 172, 235, .55);
}

/* --- Deep Hero 标题链接对比度（2026-10-08 用户复核，VISUAL NARROW FIX）---
   标题链接化后，Deep Hero 深蓝底上的标题被全局链接色体系带成青蓝。
   仅 scope 到深度卡标题链接（data-detail-type="deep"）；标准卡链接视觉
   （白底蓝青）与快讯行保持不变。全状态白字、禁下划线；hover 仅轻微降不透明度。 */
html body[data-page="publish"]:not(.mobile-page) :is(.news-title-link[data-detail-type="deep"], [data-presentation-slot="hero"] .news-title-link),
html body[data-page="publish"]:not(.mobile-page) :is(.news-title-link[data-detail-type="deep"], [data-presentation-slot="hero"] .news-title-link):visited,
html body[data-page="publish"]:not(.mobile-page) :is(.news-title-link[data-detail-type="deep"], [data-presentation-slot="hero"] .news-title-link):hover,
html body[data-page="publish"]:not(.mobile-page) :is(.news-title-link[data-detail-type="deep"], [data-presentation-slot="hero"] .news-title-link):active {
  color: #fff !important;
  text-decoration: none !important;
}

html body[data-page="publish"]:not(.mobile-page) :is(.news-title-link[data-detail-type="deep"], [data-presentation-slot="hero"] .news-title-link):hover {
  opacity: .92;
}

html body[data-page="publish"]:not(.mobile-page) :is(.news-title-link[data-detail-type="deep"], [data-presentation-slot="hero"] .news-title-link):focus-visible {
  color: #fff !important;
  outline: 2px solid rgba(255, 255, 255, .85);
  outline-offset: 2px;
}

/* ============================================================
   浏览态范围提示行退役（2026-10-10 用户拍板）：「当前展示2026年1月1日
   至今的全部行业资讯，可按关键词或时间继续筛选。」整行删除。
   实现与 N1 检索态标记同构：publish.html 页内脚本读 Shared 写入的
   #news-search-status 文案，浏览态打 body.news-browse-hint，这里隐藏——
   加载（正在读取…）/检索（已为你检索…）/失败（资讯读取失败）不匹配
   该前缀，照常显示（status 行兼任 loading/error 提示区，pub-p1 §状态行）。
   ============================================================ */
html body[data-page="publish"].news-browse-hint:not(.mobile-page) #news-search-status {
  display: none !important;
}

/* ============================================================
   深度文章轮播（2026-10-10）：同一栏目多篇深度时，深度卡内复刻首页
   banner 翻页（platform-strength-carousel 引擎 + platform-strength-
   banner.css 的进度点/轨道样式原值）。单篇时进度点 hidden、引擎不启动，
   视觉与原深度卡一致；news-board.js 仅 PC 浏览态构建该包装。
   包装器接管深度列 grid 位（原 .news-item[data-news-type=deep] 的
   grid-column/row 规则对非 grid 子元素无效果，无需覆盖）。
   ============================================================ */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .deep-carousel {
  grid-column: 1 !important;
  grid-row: 1 / -1 !important;
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
}
html body[data-page="publish"]:not(.mobile-page) .timeline-track .deep-carousel .platform-strength-carousel__viewport {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  border-radius: 16px;
}
html body[data-page="publish"]:not(.mobile-page) .timeline-track .deep-carousel .platform-strength-carousel__track {
  display: flex;
  flex-direction: column;
  height: 100%;
  transform: translate3d(0, 0, 0);
  will-change: transform;
}
html body[data-page="publish"]:not(.mobile-page) .timeline-track .deep-carousel .platform-strength-carousel__track.is-animating {
  transition: transform .62s cubic-bezier(.22, .72, .2, 1);
}
html body[data-page="publish"]:not(.mobile-page) .timeline-track .deep-carousel .platform-strength-carousel__track > .news-item:is([data-presentation-slot="hero"], [data-news-type="deep"]:where(:not([data-presentation-slot]))) {
  flex: 0 0 auto;
  height: 100%;
  min-height: 0;
}
/* 进度点：platform-strength-banner.css 原值复刻（右缘垂直点列，
   激活点拉长为竖形胶囊、#00aceb 填充随周期 scaleX 扫入）。 */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .deep-carousel .platform-strength-carousel__progress {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: clamp(14px, 1.35vw, 22px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 10px;
  margin: 0;
  padding: 8px 0;
  pointer-events: none;
  transform: translateY(-50%);
}
html body[data-page="publish"]:not(.mobile-page) .timeline-track .deep-carousel .platform-strength-carousel__progress > span {
  display: block;
  width: 6px;
  height: 6px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(0, 75, 101, .34);
  box-shadow: none;
  opacity: .76;
  transition: height .24s ease, background-color .24s ease, opacity .24s ease, box-shadow .24s ease;
}
html body[data-page="publish"]:not(.mobile-page) .timeline-track .deep-carousel .platform-strength-carousel__progress > span.is-active {
  height: 28px;
  background: rgba(0, 172, 235, .16);
  box-shadow: none;
  opacity: 1;
}
html body[data-page="publish"]:not(.mobile-page) .timeline-track .deep-carousel .platform-strength-carousel__progress > span > i {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: #00aceb;
  box-shadow: 0 0 8px rgba(0, 172, 235, .42);
  transform: scaleX(0);
  transform-origin: center top;
}

/* 资讯页 hero 描述单行化（2026-10-10）：文案合并为单句（约 585px），
   search-family 的 560px 共享帽会折行——仅 PC 资讯页放宽到 640px，
   (0,5,3)!important 压过 family 规则 (0,4,3)；其他页面的 560px 帽不受影响。 */
html body[data-page="publish"]:not(.mobile-page) .container.ui-search-hero .search-head p {
  max-width: 640px !important;
}

/* Legacy hero uses the frozen badge geometry without claiming business deep. */
html body[data-page="publish"]:not(.mobile-page):not(.news-search-active) .timeline-track .news-item[data-presentation-slot="hero"][data-news-type="standard"]::before {
  content: "资讯";
}
@media (max-width: 1180px) {
  html body[data-page="publish"]:not(.mobile-page):not(.news-search-active) .timeline-track .news-item[data-presentation-slot="flash"][data-news-type="standard"]::before {
    content: "资讯";
  }
}

/* PC category layout (2026-10-21): industry/global keep the editorial
   order deep / standard / flash. Launch/report use thumbnail cards only.
   A missing format is an explicit empty slot, never a shifted or relabeled item. */
html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-slot-empty {
  min-width: 0;
  min-height: 132px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 22px 20px;
  border: 1px dashed var(--pub-border-strong, #dce6ef);
  border-radius: 13px;
  background: #fbfcfe;
  text-align: center;
  color: var(--pub-text-2, #45607a);
}
html body[data-page="publish"]:not(.mobile-page) .news-slot-empty strong {
  font-size: 14.5px;
  color: var(--pub-text-1, #172033);
}
html body[data-page="publish"]:not(.mobile-page) .news-slot-empty p {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.65;
}
html body[data-page="publish"]:not(.mobile-page) .news-slot-empty--hero {
  grid-column: 1;
  grid-row: 1 / -1;
}
html body[data-page="publish"]:not(.mobile-page) .news-slot-empty--standard {
  grid-column: 2;
  grid-row: 1 / -1;
}
html body[data-page="publish"]:not(.mobile-page) .timeline-track.news-compact-list {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-template-rows: none !important;
  gap: 14px !important;
}
html body[data-page="publish"]:not(.mobile-page) .timeline-track.news-compact-list .news-item {
  grid-column: auto !important;
  grid-row: auto !important;
  align-self: stretch !important;
}
html body[data-page="publish"]:not(.mobile-page) .timeline-track.news-compact-list .empty-card {
  grid-column: 1 / -1 !important;
}
html body[data-page="publish"]:not(.mobile-page) .timeline-track.news-compact-list::before,
html body[data-page="publish"]:not(.mobile-page) .timeline-track.news-compact-list::after {
  content: none !important;
}
@media (max-width: 1180px) {
  html body[data-page="publish"]:not(.mobile-page) .timeline-track.news-three-column {
    gap: 14px !important;
  }
  html body[data-page="publish"]:not(.mobile-page) .timeline-track.news-three-column .news-item[data-news-slot] {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
  html body[data-page="publish"]:not(.mobile-page) .timeline-track.news-three-column > .deep-carousel,
  html body[data-page="publish"]:not(.mobile-page) .timeline-track .news-slot-empty {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
  html body[data-page="publish"]:not(.mobile-page) .timeline-track.news-three-column > .deep-carousel {
    min-height: 286px;
  }
}
@media (max-width: 760px) {
  html body[data-page="publish"]:not(.mobile-page) .timeline-track.news-compact-list {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* PC launch/report: four real records per page. Numbered controls follow the
   product library; selected colors come from shared brand-actions.css. */
html body[data-page="publish"]:not(.mobile-page) .news-section-pager {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  padding-top: 16px;
}
html body[data-page="publish"]:not(.mobile-page) .news-section-pager[hidden] { display: none; }
html body[data-page="publish"]:not(.mobile-page) .news-section-pager .catalog-page-btn {
  min-width: 36px;
  height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(148, 163, 184, .24);
  border-radius: 10px;
  background: #fff;
  color: var(--text-2, #52718a);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
html body[data-page="publish"]:not(.mobile-page) .news-section-pager .catalog-page-btn:hover:not(:disabled):not(.active) {
  border-color: #72d1f2;
  background: #effaff;
}
html body[data-page="publish"]:not(.mobile-page) .news-section-pager .catalog-page-btn:focus-visible {
  outline: 2px solid #007da9;
  outline-offset: 3px;
}
html body[data-page="publish"]:not(.mobile-page) .news-section-pager .catalog-page-btn:disabled { opacity: .42; cursor: not-allowed; }
html body[data-page="publish"]:not(.mobile-page) .news-pagination-count { margin-right: 4px; color: var(--text-2, #52718a); font-size: 12px; }
