/* 案例库列表 + 详情（独立于 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-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));
  margin-left: 50%;
  transform: translateX(-50%);
}
/* 视觉审计 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。demo 迭代 3 形态移植；主题 light-only（main.css 无 dark），
   单主题。分段激活取 [aria-current="true"] 值选择器（非存在选择器）——case-reader.js 非激活
   removeAttribute，两类选择器都安全，此处显式钉值选择器（spec §4 model）。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;
}
/* 分段控件（业界 segmented control 语言，demo 迭代 3） */
.case-reader-tabs {
  display: inline-flex; flex-wrap: wrap; gap: 4px;
  margin-top: 18px; padding: 4px;
  border: 1px solid var(--line, #ededed); border-radius: 13px; background: #faf9f7;
}
.crt {
  display: flex; flex-direction: column; align-items: flex-start; gap: 2px;
  border-radius: 9px; padding: 9px 18px 8px; cursor: pointer;
  text-decoration: none; color: var(--muted, #6b6b6b);
}
.crt .n { font-size: 14px; font-weight: 600; line-height: 1.35; color: inherit; }
.crt .s { font-size: 11.5px; line-height: 1.3; letter-spacing: .02em; }
.crt:hover { color: var(--red, #df2020); }
.crt[aria-current="true"] {
  background: var(--bg, #fff); color: var(--ink, #111);
  box-shadow: 0 1px 4px rgba(25, 20, 14, .14), 0 0 0 1px var(--line, #ededed);
}
.crt[aria-current="true"] .n { color: var(--red, #df2020); }
.crt:focus-visible { outline: 2px solid var(--red, #df2020); outline-offset: 2px; }
/* 文档说明行（case-reader.js 切显隐；父容器 aria-live 播报当前版本）。同上 .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; }
.case-reader .case-reader-caption[hidden] { display: none; }
/* 同源内嵌 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-tabs { display: flex; }        /* 窄屏满宽、三钮等分 */
  .crt { flex: 1 1 auto; }
  .case-reader-frame { height: 76vh; }
}
/* 打印面：分段钮 href 是内部 viewer URL（非直链 PDF），抑制 main.css:376 的
   .gh-content a[href]::after URL 展开（审计 Task7 review P2）。noscript 直链是真 .pdf URL，留展开有用 */
@media print { .case-reader .crt[href]::after { content: none; } }
