/* dos-stock-merged.css · 由 _dev/scope_stock_css.js 从 merged_extra.css 自动生成
 * ★ 请勿手改。所有规则已限定在 .rp 作用域内 ——
 *   股票报告直接渲染进主文档，裸选择器（尤其 body{max-width:920px}）会压垮整个应用布局。
 *   改样式请改 _dev/merged_extra.css 后重新生成。 */
/* ============================================================================
 * 合并版股票报告 · 新增章节样式
 * 只补新章节需要的规则；配色一律走 .rp[data-asset] 上的令牌，不写死颜色。
 * 红绿盘面下：危险态 var(--risk-bad)=深赭，良好态 var(--risk-ok)=蓝，
 * 避免与「红=盈利 / 绿=亏损」的数据色撞车。
 * ========================================================================= */

/* ---------- 版心 ---------- */
.rp{font-family:var(--font);max-width:920px;margin:0 auto;padding:30px 22px 72px;
  color:#1d1d1f;line-height:1.62;background:#fff;-webkit-font-smoothing:antialiased}
.rp *{box-sizing:border-box}

.rp .ms{margin:0 0 30px}
.rp .ms h2{font-size:17px;margin:34px 0 13px;padding-bottom:8px;border-bottom:2px solid #1d1d1f;
  letter-spacing:.2px}
.rp .ms-n{font-size:11.5px;color:var(--muted);line-height:1.75;margin-top:11px;
  padding-top:9px;border-top:1px dotted var(--line)}
.rp .ms-note{font-size:11.5px;color:var(--muted);line-height:1.75;margin:10px 0 0}
.rp .fine{font-size:11px;color:var(--muted);line-height:1.7;margin:6px 0}

/* ---------- 待引擎填入：全局唯一留白出口 ---------- */
.rp .pend{display:inline-block;font-size:11.5px;font-weight:500;color:#6b7280;
  background:repeating-linear-gradient(135deg,#f4f4f6 0 6px,#ececed 6px 12px);
  border:1px dashed #c9cace;border-radius:4px;padding:1px 7px;letter-spacing:.2px}
.rp .pend-why{display:block;font-size:10.5px;color:var(--muted);line-height:1.6;margin-top:4px;font-weight:400}

/* ---------- 指标格 ---------- */
.rp .sgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:0 0 14px}
.rp .sg-c{background:#fff;padding:11px 13px}
.rp .sg-c.ok{background:var(--risk-ok-bg)}
.rp .sg-c.bad{background:var(--risk-bad-bg)}
.rp .sg-c .k{font-size:10.5px;color:var(--muted);margin-bottom:3px;letter-spacing:.3px}
.rp .sg-c .v{font-size:17px;font-weight:600;color:var(--ink);line-height:1.35}
.rp .sg-c .s{font-size:10.5px;color:var(--muted);margin-top:4px;line-height:1.55}
.rp .sg-c.ok .v{color:var(--risk-ok)}
.rp .sg-c.bad .v{color:var(--risk-bad)}

/* ---------- 图表 ---------- */
.rp .chart{border:1px solid var(--line);border-radius:10px;padding:14px 16px 12px;
  margin:14px 0;background:var(--panel)}
.rp .chart figcaption{margin:0 0 10px}
.rp .chart figcaption b{display:inline-block;font-size:12px;color:var(--ink);margin-right:8px}
.rp .chart figcaption span{font-size:11.5px;color:var(--muted)}
.rp .chart .ch-n{font-size:11px;color:var(--muted);line-height:1.7;margin-top:9px}
.rp svg text.lbl{font-size:11.5px;fill:var(--ink);font-family:var(--font)}
.rp svg text.sub{font-size:9.5px;fill:var(--muted);font-family:var(--font)}
.rp svg text.val{font-size:10.5px;fill:var(--ink);font-family:var(--font)}
.rp svg line.axis{stroke:#d5d6d9;stroke-width:1}

/* ---------- 表格 ---------- */
.rp .tb{width:100%;border-collapse:collapse;font-size:11.5px;margin:6px 0}
.rp .tb th{text-align:left;font-weight:600;color:var(--muted);font-size:10.5px;
  padding:7px 9px;border-bottom:1px solid var(--line);white-space:nowrap}
.rp .tb td{padding:6px 9px;border-bottom:1px dotted var(--line);color:var(--ink);vertical-align:top}
.rp .tb tbody tr:nth-child(even){background:var(--panel2)}

/* ---------- 证据抽屉 ---------- */
.rp .dw{border:1px solid var(--line);border-radius:8px;margin:10px 0 0;background:#fff}
.rp .dw>summary{cursor:pointer;font-size:11.5px;color:var(--accent);padding:9px 13px;
  list-style:none;font-weight:500}
.rp .dw>summary::-webkit-details-marker{display:none}
.rp .dw>summary::before{content:"▸ ";color:var(--muted)}
.rp .dw[open]>summary::before{content:"▾ "}
.rp .dw[open]>summary{border-bottom:1px solid var(--line)}
.rp .dw-b{padding:10px 13px 13px;max-height:460px;overflow:auto}

.rp .rowchips{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin:6px 0}
.rp .rowchips .lb{font-size:10px;color:var(--muted);margin-right:4px}
.rp .rowchips code{font-family:var(--mono);font-size:10px;color:var(--muted);
  background:var(--panel2);border:1px solid var(--line);border-radius:3px;padding:1px 5px}
.rp .rowchips .more{font-size:10px;color:var(--faint);margin-left:4px}

/* ---------- 提示框 ---------- */
.rp .warnbox{border-left:3px solid var(--risk-warn);background:var(--risk-warn-bg);
  padding:11px 14px;border-radius:0 7px 7px 0;font-size:12px;line-height:1.72;margin:0 0 14px}
.rp .dangerbox{border:1px solid var(--risk-bad);background:var(--risk-bad-bg);
  border-radius:9px;padding:15px 17px;font-size:12.5px;line-height:1.75}
.rp .dangerbox>b{display:block;font-size:13px;color:var(--risk-bad);margin-bottom:9px}
.rp .dangerbox ul{margin:0;padding-left:19px}
.rp .dangerbox li{margin:5px 0}
.rp .dangerbox hr{border:0;border-top:1px dotted var(--risk-bad);margin:12px 0;opacity:.45}
.rp .stat{font-size:12px;padding:9px 13px;border-radius:7px;margin:10px 0 0;line-height:1.7}
.rp .stat.ok{background:var(--risk-ok-bg);color:var(--risk-ok)}
.rp .stat.bad{background:var(--risk-bad-bg);color:var(--risk-bad)}

/* ---------- 门控框（本层级不出图） ---------- */
.rp .gatebox{border:1px dashed #c9cace;border-radius:9px;padding:15px 17px;background:var(--panel2)}
.rp .gatebox .gb-h{font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:11px}
.rp .gatebox .gb-r{font-size:11.5px;line-height:1.72;margin:9px 0;color:var(--ink)}
.rp .gatebox .gb-f{font-size:11px;color:var(--muted);line-height:1.7;margin-top:12px;
  padding-top:10px;border-top:1px dotted var(--line)}

/* ---------- 能力面板 ---------- */
.rp .cap-lead{font-size:11.5px;color:var(--muted);line-height:1.72;margin:0 0 13px}
.rp .cap-g{margin:0 0 15px}
.rp .cap-h{font-size:11px;color:var(--muted);letter-spacing:.6px;margin:0 0 6px;font-weight:600}
.rp .cap-r{display:grid;grid-template-columns:150px 74px 1fr;gap:10px;align-items:baseline;
  padding:8px 11px;border-radius:6px;margin-bottom:3px;background:var(--panel2);
  border-left:3px solid var(--muted)}
.rp .cap-r .n{font-size:12px;color:var(--ink);font-weight:500}
.rp .cap-r .t{font-size:10.5px;font-weight:600}
.rp .cap-r .r{font-size:11px;color:var(--muted);line-height:1.6}
.rp .cap-r.ok{border-left-color:var(--risk-ok);background:var(--risk-ok-bg)}
.rp .cap-r.ok .t{color:var(--risk-ok)}
.rp .cap-r.warn{border-left-color:var(--risk-warn);background:var(--risk-warn-bg)}
.rp .cap-r.warn .t{color:var(--risk-warn)}
.rp .cap-r.off{border-left-color:#c9cace;background:var(--panel2)}
.rp .cap-r.off .t{color:var(--faint)}

/* ---------- 五轴不评分 ---------- */
.rp .axoff{border:1px dashed #c9cace;border-radius:9px;padding:15px 17px;margin:0 0 16px;background:#fff}
.rp .axoff .ax-h{font-size:12.5px;font-weight:600;color:var(--ink)}
.rp .axoff .ax-b{font-size:11.5px;color:var(--risk-warn);margin:5px 0 11px}
.rp .axoff .ax-l{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:8px}
.rp .axoff .ax-l li{background:var(--panel2);border-radius:6px;padding:9px 11px}
.rp .axoff .ax-l b{display:block;font-size:11.5px;color:var(--ink);margin-bottom:4px}
.rp .axoff .ax-f{font-size:11px;color:var(--muted);line-height:1.72;margin-top:12px;
  padding-top:10px;border-top:1px dotted var(--line)}

/* ---------- 身份证 ---------- */
.rp .idcard{border:1px solid var(--line);border-radius:9px;overflow:hidden}
.rp .id-r{display:grid;grid-template-columns:132px 210px 1fr;gap:12px;padding:10px 14px;
  border-bottom:1px solid var(--hair);align-items:baseline}
.rp .id-r:last-child{border-bottom:0}
.rp .id-r .k{font-size:11px;color:var(--muted)}
.rp .id-r .v{font-size:12.5px;color:var(--ink);font-weight:600}
.rp .id-r .s{font-size:10.5px;color:var(--muted);line-height:1.62}

/* ---------- 行为簇 ---------- */
.rp .clusters{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:11px}
.rp .cl{border:1px solid var(--line);border-radius:9px;padding:13px 15px;background:#fff}
.rp .cl-h{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.rp .cl-h b{font-size:12.5px;color:var(--ink)}
.rp .cl-h .tag{font-size:9.5px;color:var(--risk-warn);background:var(--risk-warn-bg);
  border-radius:3px;padding:1px 6px}
.rp .cl-h .rg{font-size:10.5px;color:var(--muted)}
.rp .cl-h .warn{font-size:10px;color:var(--risk-bad)}
.rp .cl-g{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;margin-bottom:9px}
.rp .cl-g>div{display:flex;justify-content:space-between;align-items:baseline;
  border-bottom:1px dotted var(--line);padding-bottom:3px}
.rp .cl-g .k{font-size:10.5px;color:var(--muted)}
.rp .cl-g .v{font-size:12.5px;font-weight:600;color:var(--ink)}
.rp .cl-g .v.up{color:var(--pos)}
.rp .cl-g .v.dn{color:var(--neg)}
.rp .cl-i{font-size:10.5px;color:var(--muted);line-height:1.6}

/* ---------- 行为特征卡 ---------- */
.rp .fpc{border:1px solid var(--line);border-radius:9px;padding:13px 16px;margin:0 0 11px;background:#fff}
.rp .fp-h{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.rp .fp-h b{font-size:13px;color:var(--ink)}
.rp .fp-h .conf{font-size:10px;border-radius:3px;padding:1px 7px}
.rp .fp-h .conf.high{color:var(--risk-ok);background:var(--risk-ok-bg)}
.rp .fp-h .conf.medium{color:var(--risk-warn);background:var(--risk-warn-bg)}
.rp .fp-h .conf.low{color:var(--muted);background:var(--panel2)}
.rp .fpc .lb{display:block;font-size:10px;color:var(--muted);letter-spacing:.5px;margin-bottom:3px}
.rp .fpc ul{margin:0 0 9px;padding-left:18px}
.rp .fpc li{font-size:11.5px;line-height:1.68;margin:3px 0}
.rp .fpc p{font-size:11.5px;color:var(--muted);margin:0 0 9px}
.rp .fp-c{border-left:2px solid var(--risk-warn);padding-left:10px;margin:0 0 9px}
.rp .fp-l{border-top:1px dotted var(--line);padding-top:8px}
.rp .fp-l li{color:var(--muted)}

/* ---------- 观察与复核 ---------- */
.rp .rev{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:11px}
.rp .rv{border-radius:9px;padding:13px 15px;border:1px solid var(--line);background:#fff}
.rp .rv .h{font-size:12px;font-weight:600;margin-bottom:8px}
.rp .rv ul{margin:0;padding-left:17px}
.rp .rv li{font-size:11.5px;line-height:1.68;margin:6px 0}
.rp .rv .ev{display:block;font-size:10px;color:var(--muted);margin-top:2px}
.rp .rv.ok{border-left:3px solid var(--risk-ok)}
.rp .rv.ok .h{color:var(--risk-ok)}
.rp .rv.warn{border-left:3px solid var(--risk-warn)}
.rp .rv.warn .h{color:var(--risk-warn)}
.rp .rv.off{border-left:3px solid var(--muted)}
.rp .rv.off .h{color:var(--muted)}

/* ---------- 秒懂版 ---------- */
.rp .dg-lead{font-size:12.5px;line-height:1.75;color:var(--ink);margin:0 0 14px}
.rp .dg-l{list-style:none;margin:0 0 13px;padding:0}
.rp .dg-l li{border-radius:9px;padding:13px 16px;margin-bottom:9px;background:var(--panel2);
  border-left:3px solid var(--muted)}
.rp .dg-l li b{display:block;font-size:13px;margin-bottom:5px;color:var(--ink)}
.rp .dg-l li p{margin:0;font-size:12px;line-height:1.72;color:#3a3a3e}
.rp .dg-l li.ok{background:var(--risk-ok-bg);border-left-color:var(--risk-ok)}
.rp .dg-l li.warn{background:var(--risk-warn-bg);border-left-color:var(--risk-warn)}
.rp .dg-l li.bad{background:var(--risk-bad-bg);border-left-color:var(--risk-bad)}
.rp .dg-foot{font-size:11.5px;color:var(--muted);line-height:1.72;padding-top:11px;
  border-top:1px dotted var(--line)}

/* ---------- 附录术语 ---------- */
.rp .terms{border-top:1px solid var(--line)}
.rp .terms .tm{display:grid;grid-template-columns:104px 1fr;gap:4px 13px;padding:8px 0;
  border-bottom:1px dotted var(--line);font-size:12px}
.rp .terms .tm b{color:var(--ink)}
.rp .terms .tm .say{color:#3a3a3e;line-height:1.65}
.rp .terms .tm .def{grid-column:2;font-size:11px;color:var(--muted);line-height:1.65}

/* ============================================================================
 * 打印 / PDF
 * 规格：A4，上18 / 下16 / 左右12 mm（页边距由渲染器传入，不写在 @page 里，
 *       否则会与渲染器参数叠加）。
 * 硬要求：图表、证据卡、结论卡、术语条目禁止跨页断开；深色底与徽章需精确取色。
 * ========================================================================= */
@media print{
  .rp{padding:0;max-width:none}
  .rp *{-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important}
  .rp /* 封面独占首页 */
  .rp-cover{break-after:page;page-break-after:always}
  .rp /* 禁止跨页断开 */
  .chart,.rp .sg-c,.rp .cl,.rp .fpc,.rp .rv,.rp .idcard,.rp .dangerbox,.rp .gatebox,.rp .axoff,.rp .warnbox,.rp .stat,.rp .terms .tm,.rp .ed-take li,.rp .ct,.rp .cap-r,.rp .dw{
    break-inside:avoid;page-break-inside:avoid}
  .rp .sgrid,.rp .clusters,.rp .rev,.rp .ax-l{break-inside:avoid;page-break-inside:avoid}
  .rp svg{break-inside:avoid;page-break-inside:avoid}
  .rp /* 标题不许落在页底 */
  .ms h2{break-after:avoid;page-break-after:avoid}
  .rp .chart figcaption{break-after:avoid;page-break-after:avoid}
  .rp /* 抽屉在纸面上全部展开——PDF 里没人能点开 */
  .dw{border-color:var(--line)}
  .rp .dw>summary{color:var(--muted)}
  .rp .dw-b{max-height:none;overflow:visible}
  .rp /* 长表格允许断，但表头每页重复 */
  .tb{break-inside:auto;page-break-inside:auto}
  .rp .tb thead{display:table-header-group}
  .rp .tb tr{break-inside:avoid;page-break-inside:avoid}
  .rp a{text-decoration:none;color:inherit}

}

/* ---------- 可观察交易能力面板（评估条） ---------- */
.rp .asp{border:1px solid var(--line);border-radius:9px;overflow:hidden}
.rp .as-r{display:grid;grid-template-columns:132px 1fr 54px;gap:10px;align-items:center;
  padding:10px 13px;border-bottom:1px solid var(--hair)}
.rp .as-r:last-child{border-bottom:0}
.rp .as-n{font-size:12px;color:var(--ink);font-weight:500}
.rp .as-t{display:flex;align-items:center;gap:9px}
.rp .as-bar{flex:1;height:19px;background:var(--hair);border-radius:4px;overflow:hidden;position:relative}
.rp .as-bar span{display:block;height:100%;border-radius:4px;background:var(--muted)}
.rp .as-t b{font-size:11px;white-space:nowrap;min-width:96px}
.rp .as-c{font-size:10px;color:var(--muted);text-align:right}
.rp .as-w{grid-column:1 / -1;font-size:10.5px;color:var(--muted);line-height:1.6;margin-top:-3px}
.rp .as-r.ok .as-bar span{background:#4a9d5f}
.rp .as-r.ok .as-t b{color:#2f7a45}
.rp .as-r.warn .as-bar span{background:#d9a441}
.rp .as-r.warn .as-t b{color:#9a7320}
.rp .as-r.off .as-bar span{background:transparent}
.rp .as-r.off .as-t b{color:var(--faint)}
.rp .as-f{font-size:11px;color:var(--muted);line-height:1.72;margin-top:11px;
  padding-top:9px;border-top:1px dotted var(--line)}

/* 嵌套抽屉：图 → 区间/行业/窗口 → 逐笔 */
.rp .dw .dw{margin:6px 0 0;background:var(--panel2)}
.rp .dw .dw>summary{font-size:11px;padding:7px 11px}
.rp .dw .dw .dw-b{padding:8px 11px 11px;max-height:380px}

@media print{
  .rp .as-r{break-inside:avoid;page-break-inside:avoid}
  .rp .asp{break-inside:auto}

}

/* 二级抽屉在 PDF 里保持折叠，只留一行指引 */
.rp .only-print{display:none}
@media print{
  .rp .only-print{display:inline;font-size:9.5px;color:var(--faint);margin-left:6px}
  .rp .dw-sub>.dw-b{display:none}
  .rp .dw-sub{break-inside:avoid;page-break-inside:avoid}

}

/* ---------- 图表交互 ---------- */
.rp [data-dos-hit]{cursor:pointer}
.rp [data-dos-hit]:focus{outline:2px solid var(--accent);outline-offset:2px}
.rp svg [data-dos-hit].row-hit:hover,.rp svg [data-dos-hit].cum-hit:hover{fill:rgba(29,29,31,.045)}
.rp svg [data-dos-hit].row-hit.sel,.rp svg [data-dos-hit].cum-hit.sel{fill:rgba(21,101,192,.10)}
.rp svg [data-dos-hit].pt-hit:hover{stroke:var(--ink);stroke-width:1.6}
.rp svg [data-dos-hit].pt-hit.sel{stroke:var(--ink);stroke-width:2}
.rp .cl[data-dos-hit]:hover{border-color:var(--accent)}
.rp .cl[data-dos-hit].sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--pos-soft)}

.rp .dos-hint{font-size:10.5px;color:var(--accent);margin-left:8px}
.rp .dos-readout{display:none;flex-wrap:wrap;gap:6px 16px;align-items:baseline;
  margin:10px 0 0;padding:9px 12px;border-radius:7px;background:#fff;
  border:1px solid var(--line);border-left:3px solid var(--accent)}
.rp .dos-readout.on{display:flex}
.rp .dos-readout .ro-h{font-size:10px;color:var(--muted);letter-spacing:.6px;
  border-right:1px solid var(--line);padding-right:12px}
.rp .dos-readout .ro-i{display:flex;flex-direction:column;gap:1px}
.rp .dos-readout .ro-i i{font-size:9.5px;color:var(--muted);font-style:normal}
.rp .dos-readout .ro-i b{font-size:12px;color:var(--ink);font-weight:600}
.rp .dos-readout .ro-i b.up{color:var(--pos)}
.rp .dos-readout .ro-i b.dn{color:var(--neg)}

/* 抽屉被图点中时的高亮 */
.rp .dw.dw-hit{box-shadow:0 0 0 2px var(--accent);transition:box-shadow .25s}
.rp .dw.dw-hit>summary{color:var(--accent);font-weight:600}

@media print{
  .rp .dos-hint,.rp .dos-readout{display:none !important}
  .rp [data-dos-hit]{cursor:auto}

}

/* ---------- R4：PDF 里的证据抽屉形态 ----------
 * 打印时 .dw-sub 的正文被隐藏，只剩一圈边框；一个直方图有 9 个分箱就叠出
 * 9 个空框，在 PDF 上看就是一片没有内容的『下划线』。这里改成：去掉框体，
 * 压成一行灰色小字的分组清单；重复 9 遍的提示语只在父抽屉上说一次。 */
@media print{
  .rp .dw-sub{border:0!important;background:none!important;margin:0!important;padding:0!important}
  .rp .dw-sub>summary{padding:1px 0!important;font-size:9.5px!important;color:var(--faint)!important;
    list-style:none;border:0!important}
  .rp .dw-sub>summary::before{content:'· '!important;color:var(--faint)!important}
  .rp .dw-sub .only-print{display:none!important}
  .rp .dw>summary::after{content:'（以下为分组索引，逐笔明细见文末「全量证据索引」）';
    display:block;font-size:9px;color:var(--faint);font-weight:400;margin-top:2px}
  .rp .dw .dw>summary::after{content:none}
}
