/* 案例库列表 + 详情（独立于 main.css：避免与主样式并行改动冲突；cases.hbs/post-case.hbs 引入） */
.cases-intro { max-width: 760px; font-size: 16px; line-height: 1.9; color: var(--body, #444); }
/* 页头首段末句挑红（用户裁定 2026-07-30）：只改颜色不加粗——加粗会与 .page-title
   抢层级，而这句是图例不是标题。红取站点 --red，与 .cases-notice 的链接同一支。 */
.cases-intro .cases-hl { color: var(--red, #df2020); }
/* 2026-07-25：`.cases-wip`「信号表…建设中，敬请期待」整条删除——建仓价触发与触发状态
   本批已随行式终端上线，那句话在说一个刚做完的功能还没做。占位样式一并撤。 */
.cases-notice { max-width: 760px; margin: 14px 0 0; font-size: 13px; line-height: 1.8; color: var(--body, #444); }
.cases-notice a { color: var(--red, #df2020); text-decoration: underline; text-underline-offset: 2px; }
/* T2 终端（2026-07-17）：旧列表 DOM（toolbar/filter/grid/case-card 族）随 cases-list.js
   删除，样式由 SPA 内 cst: 前缀类接管——本文件只保留 header/加载占位/详情页族。 */
.cases-loading { color: var(--muted, #6b6b6b); }
/* 信号灯终端破格（spec §3.5，2026-07-25）：全站唯一超出 --content(1200px) 的区块。
   刻意用局部类而非改全局 --content——后者会波及其余八个用 .wrap 的页面。
   负 margin 把 .wrap 已经施加的水平内边距抵消掉，再自己居中到 1760px；
   min() 保证窄屏不产生横向溢出。 */
.cases-terminal-wide {
  max-width: 1760px;
  width: min(1760px, calc(100vw - 40px));
  /* 居中不用 transform（2026-09-25 看板段 B）：带 transform 的祖先会成为 position:fixed 后代的包含块，
     ≤1179px 的详情抽屉与遮罩会钉在本区块上而不是视口上。负外边距等价居中：50% − 自身宽度的一半。 */
  margin-left: calc(50% - min(880px, calc(50vw - 20px)));
}
/* 视觉审计 round1（2026-07-16）：页头与正文共轴——.gh-content 是居中 760px 窄列，
   页头原钉在 .wrap 左缘产生 ~220px 贯穿式错列；对齐到同一内容轴（研报页同模式） */
.case-detail .page-head { max-width: 760px; margin: 0 auto; }
/* H1 移动端孤字断行（「案/例」被拆）：balance 让多行标题均衡断行 */
.case-detail .h-page { text-wrap: balance; }
.case-content h3 { font-family: var(--font-display, serif); font-weight: 900; margin-top: 28px; }
/* 裁决徽章（详情页 case-badge.js 注入用；列表侧已由 SPA 接管） */
.case-verdict-badge { flex-shrink: 0; font-size: 11px; font-weight: 700; line-height: 1; padding: 4px 9px; border-radius: 999px; border: 1px solid transparent; }
.case-verdict-badge.is-invest { background: var(--red, #df2020); color: #fff; }
.case-verdict-badge.is-skip { background: #555; color: #fff; }
.case-verdict-badge.is-watch { border-color: var(--red, #df2020); color: var(--red, #df2020); }
.case-verdict-badge.is-none { border-color: var(--line, #ededed); color: var(--muted, #6b6b6b); }
/* round2 #6：详情页头徽章（case-badge.js 注入到 sec-label 行内）。
   letter-spacing:normal——.sec-label 的 6px 字距是可继承属性，会把徽章文字撑裂（审阅 P1） */
.case-detail .page-head .case-verdict-badge { margin-left: 12px; vertical-align: 2px; display: inline-block; letter-spacing: normal; }

/* 审计 #6：详情页关键数字段内加重。payload.py 发 strong.case-num，但 Ghost Admin API
   source=html→lexical 转换会剥掉 strong 上的 class（2026-07-16 生产实证）——选择器改挂
   p strong。T3 审查 P1-4：IC/preview 内嵌后「段内 strong 恰好六处」前提失效（真 IC 实测
   104 处普通加粗被误放大）——收窄为子代 > p strong：六处数字段是顶层直系段，
   .case-reports 内容嵌套在 section/details/div 更深层天然免伤，两种载体通用。
   letter-spacing 显式归一——.sec-label 类 6px 字距继承坑（HANDOFF 2026-07-16 §四）防御 */
.case-content > p strong { font-size: 1.06em; letter-spacing: normal; }

/* ── 阅读器区块（spec 2026-07-19 §3；用户裁决 2026-07-20 极简阅读器壳）：页头元信息行 +
   同源内嵌 pdf.js viewer。2026-09-23 IC 单版：只挂 IC 一份文档，分段控件（case-reader-tabs）
   与 case-reader.js 一并撤除。主题 light-only（main.css 无 dark），单主题。sans 家族显式
   设在区块（主题无 --font-sans），子元素继承。 */
.case-reader { margin: 24px 0; font-family: -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif; }
/* .case-reader 前缀提 specificity 到 (0,2,0) 压 main.css:251 .gh-content p{margin:0 0 24px}
   (0,1,1)——阅读器 <p> 在 .gh-content.case-content 内，裸类选择器会被正文段边距吞掉（同
   .case-reader noscript p 既有防御；审计 Task7 review P2） */
.case-reader .case-reader-meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px;
  margin: 0 0 4px; font-size: 13px; color: var(--muted, #6b6b6b); font-variant-numeric: tabular-nums;
}
/* 文档说明行。同上 .case-reader 前缀压 .gh-content p 段边距 */
.case-reader .case-reader-caption { margin: 12px 0 0; font-size: 13px; line-height: 1.65; color: var(--muted, #6b6b6b); max-width: 66ch; }
/* 同源内嵌 pdf.js viewer：固定视口高 + 内部自滚（pdf.js canvas 自管滚动/缩放/翻页） */
.case-reader-frame {
  display: block; width: 100%; height: min(74vh, 780px);
  margin-top: 16px; border: 1px solid #ddd9d2; border-radius: 10px; background: #faf9f7;
}
.case-reader noscript p { margin-top: 16px; color: var(--body, #444); }
@media (max-width: 720px) {
  .case-reader-frame { height: 76vh; }
}
