/* =====================================================================
   投研实验室 /labs/research/ + 实验室 hub /labs/
   ---------------------------------------------------------------------
   颜色一律取 nav.css 的 token（三轴语义：--pos/--neg 涨跌、--good/--warn/
   --bad 状态、--ink/--muted 中性）。本文件不定义色值，只写组件与排版。
   日/夜盘由 nav.css 的 html[data-mode="night"] 覆盖；美股涨跌翻转由
   html[data-dash-market="us"] 生效（research.js 在渲染前设置）。
   ===================================================================== */

/* ---------- 1. 页面骨架 ---------- */
.research-page .wrap{max-width:1120px}
.labs-page .wrap{max-width:1120px}

.rs-tabs{
  display:flex;gap:6px;flex-wrap:wrap;
  margin:0 0 22px;padding-bottom:12px;
  border-bottom:1px solid var(--line);
}
.rs-tabs a{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;
  padding:7px 13px;border-radius:999px;border:1px solid var(--line);
  color:var(--muted);background:var(--card);
}
.rs-tabs a:hover{color:var(--ink);border-color:var(--line-2)}
.rs-tabs a.is-on{background:var(--ink);color:var(--card);border-color:var(--ink)}

.rs-app{position:relative;min-height:40vh}
.rs-view{animation:rs-in .12s ease-out}
@keyframes rs-in{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}

.rs-view:focus{outline:none}
/* 视图切换时把焦点移到标题（供读屏播报），标题非交互元素，不显示焦点环 */
.rs-app h1:focus,.rs-app h2:focus,.rs-app h3:focus{outline:none}
.rs-view-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 6px}
.rs-view-head h2{margin:0;font-size:clamp(21px,2.6vw,27px);letter-spacing:-.01em}
.rs-view-sub{margin:0 0 20px;color:var(--muted);font-size:14px;line-height:1.75;max-width:70ch}

.rs-section{margin:0 0 26px}
.rs-section-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px}
.rs-section-head h3{margin:0;font-size:15.5px;letter-spacing:.01em}
.rs-section-head .rs-hint{font-size:11.5px;color:var(--faint)}
.rs-h{font-size:12px;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:0 0 8px}

/* 顶部免责小字（标题区右侧的常驻合规文案） */
.rs-disclaimer-top{
  font-size:11.5px;line-height:1.6;color:var(--faint);
  margin:14px 0 0;max-width:62ch;
  padding-left:10px;border-left:2px solid var(--line-2);
}
.rs-ai-badge{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;
  padding:4px 9px;border-radius:6px;
  color:var(--ink-2);background:var(--card-2);border:1px solid var(--line);
}
.rs-ai-badge::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--brand)}

/* ---------- 2. 通用组件 ---------- */
.rs-card{
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);
}
.rs-card + .rs-card{margin-top:14px}
.rs-card-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 8px}
.rs-card-head h3,.rs-card-head h4{margin:0;font-size:15px}
.rs-card-head .rs-tag{margin-left:auto}

.rs-panel{
  background:var(--card);border:1px solid var(--line);
  border-radius:20px;padding:20px 22px;box-shadow:var(--shadow);
}
.rs-panel-dark{
  background:var(--panel);color:var(--panel-ink);border:1px solid var(--panel);
  border-radius:20px;padding:20px 22px;
}
.rs-panel-dark .rs-h,.rs-panel-dark .rs-hint{color:var(--panel-muted)}
.rs-panel-dark a{color:var(--panel-ink);text-decoration:underline;text-underline-offset:2px}

.rs-btn{
  display:inline-flex;align-items:center;gap:7px;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;
  padding:8px 13px;border-radius:var(--radius-sm);
  border:1px solid var(--line-2);background:var(--card);color:var(--ink);
  transition:background-color .12s ease,border-color .12s ease;
}
.rs-btn:hover{background:var(--card-2);border-color:var(--ink)}
.rs-btn.is-primary{background:var(--ink);color:var(--card);border-color:var(--ink)}
.rs-btn.is-primary:hover{background:var(--ink-2)}
.rs-btn[aria-pressed="true"]{background:var(--ink);color:var(--card);border-color:var(--ink)}
.rs-btn:disabled{opacity:.55;cursor:not-allowed}
.rs-btn.is-small{padding:5px 9px;font-size:10px}

.rs-link-arrow{font-family:var(--font-mono);font-size:11.5px;color:var(--brand);text-decoration:underline;text-underline-offset:2px}
.rs-link-arrow:hover{color:var(--ink)}

/* 提示圆点（口径说明），与看板 .dash-help 同模式 */
.rs-help{
  display:inline-flex;align-items:center;justify-content:center;
  width:15px;height:15px;border-radius:50%;
  border:1px solid var(--line-2);color:var(--faint);
  font-family:var(--font-mono);font-size:9px;line-height:1;
  vertical-align:1px;margin-left:4px;cursor:help;
}
.rs-help:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.rs-help:hover{color:var(--ink);border-color:var(--ink)}

.rs-tag{
  display:inline-flex;align-items:center;gap:5px;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;
  padding:3px 8px;border-radius:5px;
  border:1px solid var(--line);background:var(--card-2);color:var(--ink-2);
}
.rs-tag.is-good{color:var(--good-ink);border-color:color-mix(in srgb,var(--good) 40%,transparent);background:color-mix(in srgb,var(--good) 10%,transparent)}
.rs-tag.is-warn{color:var(--warn-ink);border-color:color-mix(in srgb,var(--warn) 42%,transparent);background:color-mix(in srgb,var(--warn) 12%,transparent)}
.rs-tag.is-bad{color:var(--bad-ink);border-color:color-mix(in srgb,var(--bad) 42%,transparent);background:color-mix(in srgb,var(--bad) 12%,transparent)}
.rs-tag.is-muted{color:var(--muted)}
.rs-tag.is-danger{color:color-mix(in srgb,var(--danger) 82%,var(--ink));border-color:color-mix(in srgb,var(--danger) 45%,transparent);background:color-mix(in srgb,var(--danger) 10%,transparent)}

/* 立场徽标：看多用 good、看空用 bad、中性用 muted；文字始终存在 */
.rs-stance{
  display:inline-flex;align-items:center;gap:6px;
  font-size:11.5px;font-weight:600;letter-spacing:.02em;
  padding:3px 10px;border-radius:999px;border:1px solid transparent;
}
.rs-stance::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.rs-stance.is-bull{color:var(--good-ink);background:color-mix(in srgb,var(--good) 12%,transparent);border-color:color-mix(in srgb,var(--good) 38%,transparent)}
.rs-stance.is-bear{color:var(--bad-ink);background:color-mix(in srgb,var(--bad) 12%,transparent);border-color:color-mix(in srgb,var(--bad) 38%,transparent)}
.rs-stance.is-neutral{color:var(--muted);background:var(--card-2);border-color:var(--line)}
html[data-mode="night"] .rs-stance.is-bull{color:var(--good-2)}
html[data-mode="night"] .rs-stance.is-bear{color:var(--bad-2)}

/* 数值徽标：按市场翻转的涨跌色 */
.rs-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.rs-num.pos{color:var(--pos-ink)}
.rs-num.neg{color:var(--neg-ink)}
.rs-num.is-flat{color:var(--muted)}

/* 置信度条 */
.rs-confidence{display:grid;gap:5px;min-width:140px}
.rs-confidence-track{height:7px;border-radius:5px;background:var(--card-2);border:1px solid var(--line);overflow:hidden}
.rs-confidence-fill{display:block;height:100%;border-radius:5px;background:var(--good)}
.rs-confidence.is-mid .rs-confidence-fill{background:var(--warn)}
.rs-confidence.is-low .rs-confidence-fill{background:var(--bad)}
.rs-confidence-meta{display:flex;justify-content:space-between;gap:8px;font-family:var(--font-mono);font-size:10px;color:var(--faint)}
.rs-note{font-size:11.5px;color:var(--faint);line-height:1.6;margin:4px 0 0}

/* 数据截止徽标 */
.rs-asof{font-family:var(--font-mono);font-size:11px;color:var(--muted)}
.rs-asof.is-stale{color:var(--warn-ink);font-weight:600}
html[data-mode="night"] .rs-asof.is-stale{color:var(--warn-2)}
.rs-stale-note{display:block;margin-top:3px;font-size:10.5px;color:var(--warn-ink)}
html[data-mode="night"] .rs-stale-note{color:var(--warn-2)}

/* 横幅 */
.rs-banner{
  display:block;border-radius:var(--radius-sm);padding:13px 15px;
  border:1px solid var(--line);background:var(--card-2);
  font-size:13px;line-height:1.65;margin:0 0 18px;
}
.rs-banner b{display:block;font-size:13.5px;margin-bottom:2px}
.rs-banner p{margin:0}
.rs-banner.is-warn{border-color:color-mix(in srgb,var(--warn) 48%,transparent);background:color-mix(in srgb,var(--warn) 10%,transparent);color:var(--warn-ink)}
html[data-mode="night"] .rs-banner.is-warn{color:var(--warn-2);border-color:color-mix(in srgb,var(--warn-2) 42%,transparent)}
.rs-banner.is-danger{border-color:color-mix(in srgb,var(--danger) 50%,transparent);background:color-mix(in srgb,var(--danger) 10%,transparent);color:color-mix(in srgb,var(--danger) 82%,var(--ink))}
.rs-banner.is-info{border-color:color-mix(in srgb,var(--good) 40%,transparent);background:color-mix(in srgb,var(--good) 8%,transparent)}
.rs-banner a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* 空态 / 错误态 / 加载态 */
.rs-empty,.rs-error{
  border:1px dashed var(--line-2);border-radius:var(--radius);
  padding:34px 24px;text-align:center;background:var(--card-2);
}
.rs-empty h3,.rs-error h3{margin:0 0 6px;font-size:17px}
.rs-empty p,.rs-error p{margin:0 auto 16px;max-width:52ch;color:var(--muted);font-size:13.5px;line-height:1.75}
.rs-error{border-style:solid;border-color:color-mix(in srgb,var(--danger) 45%,transparent)}
.rs-loading{display:flex;align-items:center;gap:10px;padding:40px 20px;justify-content:center;color:var(--muted);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.06em}
.rs-loading i{width:12px;height:12px;border-radius:50%;border:2px solid var(--line-2);border-top-color:var(--brand);animation:rs-spin .8s linear infinite;display:block}
@keyframes rs-spin{to{transform:rotate(360deg)}}

.rs-skeleton{display:grid;gap:14px}
.rs-skeleton-card{height:104px;border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(90deg,var(--card) 25%,var(--card-2) 37%,var(--card) 63%);background-size:400% 100%;animation:rs-shimmer 1.4s ease infinite}
@keyframes rs-shimmer{0%{background-position:100% 0}100%{background-position:0 0}}

/* 筛选 chips */
.rs-chips{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 14px}
.rs-chips .rs-chip{
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.05em;
  padding:5px 10px;border-radius:999px;border:1px solid var(--line);
  background:var(--card);color:var(--muted);
}
.rs-chips .rs-chip[aria-pressed="true"]{background:var(--ink);color:var(--card);border-color:var(--ink)}

/* 表格（窄屏横向滚动 + 滚动阴影提示） */
.rs-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);
  background-image:linear-gradient(to right,var(--card) 30%,transparent),linear-gradient(to left,var(--card) 30%,transparent);
  background-position:0 0,100% 0;background-repeat:no-repeat;background-size:36px 100%;}
.rs-table{width:100%;border-collapse:collapse;font-size:13px;min-width:560px}
.rs-table caption{text-align:left;padding:12px 14px 4px;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.rs-table th{
  text-align:left;font-family:var(--font-mono);font-size:10px;letter-spacing:.07em;
  text-transform:uppercase;color:var(--faint);font-weight:500;
  padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap;
  position:sticky;top:0;background:var(--card);
}
.rs-table td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.6}
.rs-table tr:last-child td{border-bottom:0}
.rs-table tbody tr{touch-action:manipulation}
.rs-table .is-num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.rs-table--sectors tbody tr{cursor:pointer}
.rs-table--sectors tbody tr:hover, .rs-table--sectors tbody tr:focus-within{background:var(--card-2)}
.rs-table--sectors tbody tr a{display:block;color:inherit}
.rs-table .rs-row-link{font-weight:600}
.rs-badge-mini{font-size:10px;color:var(--faint);margin-left:6px}

/* ---------- 3. L1 总览 ---------- */
.rs-overview-top{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:18px;margin:0 0 26px}
.rs-highlight-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.rs-highlight{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 12px;
  padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);
}
.rs-highlight p{margin:0;font-size:14px;line-height:1.7}
.rs-highlight-meta{grid-column:2;display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--faint)}

.rs-questions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}
.rs-question{display:block;padding:11px 13px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);font-size:13.5px;line-height:1.6}
.rs-question:hover{border-color:var(--line-2);background:var(--card-2)}
.rs-question span{display:block;font-size:10.5px;color:var(--faint);margin-top:4px;font-family:var(--font-mono)}

.rs-case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}
.rs-case{height:100%}
.rs-case a.rs-case-link{display:flex;flex-direction:column;gap:9px;height:100%;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow)}
.rs-case a.rs-case-link:hover{border-color:var(--line-2);background:var(--card-2)}
.rs-case-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rs-case-title{margin:0;font-size:15.5px;line-height:1.5}
.rs-case-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--faint);font-family:var(--font-mono)}
.rs-case-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:4px}
.rs-group-h{
  display:flex;align-items:center;gap:10px;margin:22px 0 10px;
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);
}
.rs-group-h::after{content:"";flex:1;height:1px;background:var(--line)}

/* ---------- 4. L2 市场 ---------- */
.rs-state-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden;margin:0 0 18px}
.rs-state-cell{background:var(--card);padding:15px 16px;display:flex;flex-direction:column;gap:6px;min-width:0}
.rs-state-k{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);display:flex;align-items:center;gap:4px}
.rs-state-v{font-family:var(--font-mono);font-size:clamp(22px,3vw,29px);font-weight:600;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.rs-state-sub{font-size:11px;color:var(--muted);line-height:1.5}
.rs-state-scale{height:4px;border-radius:3px;background:var(--card-2);overflow:hidden;margin-top:2px}
.rs-state-scale i{display:block;height:100%;background:var(--good)}

.rs-breadth{display:grid;gap:8px}
.rs-bar-row{display:grid;grid-template-columns:88px minmax(0,1fr) 60px;align-items:center;gap:10px;font-size:12px}
.rs-bar-track{height:7px;border-radius:4px;background:var(--card-2);overflow:hidden}
.rs-bar-fill{display:block;height:100%;border-radius:4px;background:var(--good)}
.rs-bar-fill.is-warn{background:var(--warn)}
.rs-bar-fill.is-bad{background:var(--bad)}
.rs-bar-val{text-align:right;font-family:var(--font-mono);font-size:11.5px;color:var(--ink-2);font-variant-numeric:tabular-nums}

.rs-watch-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.rs-watch{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:10px 13px;border:1px solid var(--line);border-left-width:3px;border-radius:var(--radius-sm);background:var(--card)}
.rs-watch.is-triggered{border-left-color:var(--bad)}
.rs-watch.is-normal{border-left-color:var(--good)}
.rs-watch p{margin:0;font-size:13px}
.rs-watch-v{font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.rs-watch-meta{grid-column:1/-1;font-size:10.5px;color:var(--faint)}

.rs-quick-links{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 0}

/* ---------- 5. L3 行业 ---------- */
.rs-back{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 16px;font-size:12.5px;color:var(--muted)}
.rs-back a{color:var(--brand);text-decoration:underline;text-underline-offset:2px}
.rs-back .rs-asof{margin-left:auto}

.rs-conclusion{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start}
.rs-conclusion-main{min-width:0}
.rs-conclusion h2{margin:0 0 6px;font-size:clamp(22px,3.2vw,30px);letter-spacing:-.015em;line-height:1.25}
.rs-conclusion .rs-summary{font-size:14.5px;line-height:1.75;color:var(--ink-2);margin:0;max-width:66ch}
.rs-conclusion-side{display:grid;gap:10px;justify-items:end;min-width:150px}

.rs-claim-list{display:grid;gap:10px;margin:0;padding:0;list-style:none;counter-reset:rsclaim}
.rs-claim{
  position:relative;padding:12px 14px 12px 15px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);
}
.rs-claim::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--muted)}
.rs-claim.is-high::before{background:var(--good)}
.rs-claim.is-mid::before{background:var(--warn)}
.rs-claim.is-low::before{background:var(--muted)}
.rs-claim p{margin:0 0 4px;font-size:13.5px;line-height:1.7}
.rs-claim-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:10.5px;color:var(--faint)}
.rs-claim .rs-falsifier{margin:6px 0 0;font-size:11.5px;color:var(--muted);line-height:1.6}
.rs-claim .rs-falsifier b{color:var(--ink-2);font-weight:600}

/* 证据上标 */
.rs-ref{
  display:inline-block;font-family:var(--font-mono);font-size:9px;
  padding:1px 4px;margin-left:2px;border-radius:3px;
  border:1px solid var(--line-2);background:var(--card-2);color:var(--muted);
  cursor:pointer;vertical-align:super;line-height:1.2;
}
.rs-ref:hover,.rs-ref:focus-visible{color:var(--ink);border-color:var(--ink);background:var(--card)}

/* 多空双列 */
.rs-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}
.rs-side{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:16px 18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.rs-side-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rs-side-head h3{margin:0;font-size:15px}
.rs-side-head .rs-stance{margin-left:auto}
.rs-side .rs-core-claim{margin:0;font-size:13.5px;line-height:1.7;color:var(--ink-2)}
.rs-side.is-bull{border-top:3px solid var(--good)}
.rs-side.is-bear{border-top:3px solid var(--bad)}
.rs-side .rs-side-conf{font-size:11px;color:var(--faint);font-family:var(--font-mono);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rs-side ul{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.rs-side li{padding-top:9px;border-top:1px solid var(--line);font-size:13px;line-height:1.65}
.rs-side li:first-child{border-top:0;padding-top:0}
.rs-side li .rs-strength{font-family:var(--font-mono);font-size:9.5px;color:var(--faint);margin-right:6px}
.rs-side li .rs-falsifier{display:block;margin-top:3px;font-size:11px;color:var(--muted)}

/* ---------- 6. 证据台账 ---------- */
.rs-evidence-group{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);margin:0 0 10px;overflow:hidden}
.rs-evidence-group > summary{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  padding:11px 14px;cursor:pointer;list-style:none;font-size:13.5px;font-weight:600;
  background:var(--card-2);
}
.rs-evidence-group > summary::-webkit-details-marker{display:none}
.rs-evidence-group > summary::before{
  content:"▸";font-size:10px;color:var(--faint);transition:transform .12s ease;display:inline-block;
}
.rs-evidence-group[open] > summary::before{transform:rotate(90deg)}
.rs-evidence-group > summary .rs-tag{margin-left:auto;font-weight:400}
.rs-evidence-body{padding:6px 14px 10px}
.rs-evidence-list{margin:0;padding:0;list-style:none}
.rs-evidence{
  padding:10px 0;border-top:1px solid var(--line);
}
.rs-evidence:first-child{border-top:0}
.rs-evidence-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-family:var(--font-mono);font-size:10px;color:var(--faint);margin-bottom:3px}
.rs-evidence-id{color:var(--brand);font-weight:600}
.rs-evidence p{margin:0;font-size:13px;line-height:1.7}
.rs-evidence.is-conflict{border-left:2px solid var(--warn);padding-left:10px}
.rs-evidence.is-flash{background:color-mix(in srgb,var(--accent) 26%,transparent);border-radius:6px;box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 18%,transparent)}
.rs-conflict-flag{color:var(--warn-ink);font-family:var(--font-mono);font-size:9.5px;letter-spacing:.04em}
html[data-mode="night"] .rs-conflict-flag{color:var(--warn-2)}
.rs-evidence-toggle{display:flex;justify-content:flex-start;padding:6px 0 2px}
.rs-evidence-refs{margin:6px 0 0;padding:8px 10px;border-radius:6px;background:var(--card-2);font-size:11.5px;display:none}
.rs-evidence-refs.is-open{display:block}
.rs-evidence-refs ul{margin:4px 0 0;padding-left:16px;display:grid;gap:3px}
.rs-evidence-refs li{line-height:1.55}

/* ---------- 7. L4 档案 ---------- */
.rs-case-head{display:grid;gap:12px;margin:0 0 20px}
.rs-case-head h2{margin:0;font-size:clamp(23px,3.4vw,33px);letter-spacing:-.02em;line-height:1.25}
.rs-case-question{margin:0;font-size:15px;line-height:1.7;color:var(--ink-2);max-width:72ch}
.rs-case-facts{display:flex;flex-wrap:wrap;gap:8px 18px;font-family:var(--font-mono);font-size:11px;color:var(--faint);margin:0}
.rs-case-facts span b{color:var(--ink-2);font-weight:600}

/* 阶段回放条 */
.rs-phases{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:0 0 8px}
.rs-phase{
  border:1px solid var(--line);border-radius:9px;background:var(--card);
  padding:8px 8px 9px;display:flex;flex-direction:column;gap:4px;min-width:0;position:relative;
}
.rs-phase-k{font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;color:var(--faint)}
.rs-phase-name{font-size:11px;line-height:1.4;color:var(--ink-2);min-height:2.8em}
.rs-phase-state{font-size:9.5px;font-family:var(--font-mono);display:inline-flex;align-items:center;gap:4px}
.rs-phase-state::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--muted)}
.rs-phase.is-done{border-color:color-mix(in srgb,var(--good) 38%,transparent)}
.rs-phase.is-done .rs-phase-state{color:var(--good-ink)}
.rs-phase.is-done .rs-phase-state::before{background:var(--good)}
.rs-phase.is-skip{background:var(--card-2);border-style:dashed}
.rs-phase.is-skip .rs-phase-state{color:var(--faint)}
.rs-phase.is-degraded{border-color:color-mix(in srgb,var(--warn) 45%,transparent)}
.rs-phase.is-degraded .rs-phase-state{color:var(--warn-ink)}
.rs-phase.is-degraded .rs-phase-state::before{background:var(--warn)}
html[data-mode="night"] .rs-phase.is-done .rs-phase-state{color:var(--good-2)}
html[data-mode="night"] .rs-phase.is-degraded .rs-phase-state{color:var(--warn-2)}
.rs-phase-ms{font-family:var(--font-mono);font-size:9px;color:var(--faint)}
.rs-phase-reason{font-size:10px;line-height:1.5;color:var(--muted);margin:2px 0 0}
.rs-phase-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 18px}
.rs-phase-progress{flex:1;min-width:120px;height:4px;border-radius:3px;background:var(--card-2);overflow:hidden}
.rs-phase-progress i{display:block;height:100%;width:0;background:var(--brand);transition:width .2s linear}
.rs-phase-note{font-size:10.5px;color:var(--faint);font-family:var(--font-mono)}

/* 研究计划 */
.rs-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.rs-plan-item{min-width:0}
.rs-plan-item dt{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:0 0 3px}
.rs-plan-item dd{margin:0;font-size:13px;line-height:1.65}
.rs-focus-list{margin:8px 0 0;padding-left:18px;font-size:13px;line-height:1.7}

/* 分析师卡 */
.rs-analysts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rs-analyst{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);padding:14px 16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.rs-analyst-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rs-analyst-head h4{margin:0;font-size:13.5px}
.rs-analyst-head .rs-tag{margin-left:auto}
.rs-analyst p{margin:0;font-size:12.5px;line-height:1.65;color:var(--ink-2)}
.rs-analyst-meta{font-family:var(--font-mono);font-size:10px;color:var(--faint);display:flex;gap:12px;flex-wrap:wrap}
.rs-analyst .rs-gaps{margin:0;padding-left:16px;font-size:11.5px;color:var(--muted);line-height:1.6}
.rs-thinking{margin-top:2px;border-top:1px dashed var(--line);padding-top:6px}
.rs-thinking summary{font-size:11px;color:var(--faint);cursor:pointer;font-family:var(--font-mono);letter-spacing:.04em}
.rs-thinking p{font-size:11.5px;color:var(--muted);margin:6px 0 0;line-height:1.65}

/* 辩论线程 */
.rs-debate{display:grid;gap:14px}
.rs-debate-frame{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);overflow:hidden}
.rs-debate-frame > header{padding:10px 14px;background:var(--card-2);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px}
.rs-debate-frame > header b{font-weight:600}
.rs-debate-frame > header .rs-tag{margin-left:auto}
.rs-debate-turns{margin:0;padding:10px 14px 12px;list-style:none;display:grid;gap:9px}
.rs-debate-turn{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.rs-debate-turn:first-child{border-top:0;padding-top:0}
.rs-debate-action{
  font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;align-self:start;
  padding:3px 7px;border-radius:5px;border:1px solid var(--line);text-align:center;white-space:nowrap;
}
.rs-debate-turn p{margin:0;font-size:12.5px;line-height:1.65}
.rs-debate-turn .rs-attack-type{display:inline-block;font-family:var(--font-mono);font-size:9.5px;color:var(--faint);margin-right:6px}
.rs-debate-turn.is-attack .rs-debate-action{color:var(--warn-ink);border-color:color-mix(in srgb,var(--warn) 45%,transparent);background:color-mix(in srgb,var(--warn) 12%,transparent)}
.rs-debate-turn.is-defend .rs-debate-action{color:var(--muted);background:var(--card-2)}
.rs-debate-turn.is-revise .rs-debate-action{color:var(--warn-ink);border-color:color-mix(in srgb,var(--warn) 45%,transparent);background:color-mix(in srgb,var(--warn) 8%,transparent)}
.rs-debate-turn.is-concede .rs-debate-action{color:var(--good-ink);border-color:color-mix(in srgb,var(--good) 45%,transparent);background:color-mix(in srgb,var(--good) 10%,transparent)}
html[data-mode="night"] .rs-debate-turn.is-attack .rs-debate-action,
html[data-mode="night"] .rs-debate-turn.is-revise .rs-debate-action{color:var(--warn-2)}
html[data-mode="night"] .rs-debate-turn.is-concede .rs-debate-action{color:var(--good-2)}

/* 盲判 vs 终判 */
.rs-verdict-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}
.rs-verdict-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:16px 18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.rs-verdict-card.is-blind{background:var(--card-2)}
.rs-verdict-card.is-final{border-color:var(--line-2);box-shadow:var(--shadow)}
.rs-verdict-card h3{margin:0;font-size:14.5px}
.rs-verdict-card .rs-summary{margin:0;font-size:13px;line-height:1.7;color:var(--ink-2)}
.rs-verdict-delta{
  display:flex;align-items:center;gap:8px;justify-content:center;
  font-family:var(--font-mono);font-size:11px;color:var(--muted);
  padding:8px 0;text-align:center;
}
.rs-verdict-delta b{color:var(--ink)}
.rs-revision{margin:12px 0 0;padding:12px 14px;border-radius:var(--radius-sm);background:var(--card-2);border:1px solid var(--line);font-size:12.5px;line-height:1.7;color:var(--ink-2)}
.rs-revision b{display:block;font-size:11px;font-family:var(--font-mono);letter-spacing:.06em;color:var(--faint);margin-bottom:3px;text-transform:uppercase}

/* 风险表 / 分歧表共用 .rs-table */
.rs-resolution{font-family:var(--font-mono);font-size:10.5px;white-space:nowrap}
.rs-resolution.is-resolvable{color:var(--good-ink)}
.rs-resolution.is-unresolvable{color:var(--bad-ink)}
.rs-resolution.is-data{color:var(--warn-ink)}
html[data-mode="night"] .rs-resolution.is-resolvable{color:var(--good-2)}
html[data-mode="night"] .rs-resolution.is-unresolvable{color:var(--bad-2)}
html[data-mode="night"] .rs-resolution.is-data{color:var(--warn-2)}

/* 边界区 */
.rs-boundary-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rs-boundary-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);padding:14px 16px}
.rs-boundary-card h4{margin:0 0 6px;font-size:13px;display:flex;align-items:center;gap:6px}
.rs-boundary-card ul{margin:0;padding-left:18px;font-size:12.5px;line-height:1.7;color:var(--ink-2)}
.rs-boundary-card.is-calibration{border-color:color-mix(in srgb,var(--warn) 42%,transparent);background:color-mix(in srgb,var(--warn) 6%,transparent)}
.rs-boundary-card p{margin:0;font-size:12.5px;line-height:1.7;color:var(--ink-2)}

/* 报告卡 / 复制 */
.rs-report{background:var(--panel);color:var(--panel-ink);border-radius:var(--radius);padding:20px 22px;border:1px solid var(--panel)}
.rs-report .rs-report-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px}
.rs-report .rs-report-head h3{margin:0;font-size:14px;color:var(--panel-ink)}
.rs-report .rs-report-head .rs-btn{margin-left:auto;border-color:var(--panel-line);background:var(--panel-2);color:var(--panel-ink)}
.rs-report .rs-report-head .rs-btn:hover{background:var(--panel-3);border-color:var(--panel-muted)}
.rs-report pre{
  margin:0;white-space:pre-wrap;word-break:break-word;
  font-family:var(--font-mono);font-size:12px;line-height:1.75;
  color:var(--panel-ink);max-height:360px;overflow:auto;
}
.rs-copy-note{font-family:var(--font-mono);font-size:10.5px;color:var(--accent);margin-left:8px}
.rs-report-end{
  text-align:center;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.18em;
  color:var(--faint);margin:26px 0 10px;text-transform:uppercase;
}
.rs-end-disclaimer{font-size:12px;line-height:1.7;color:var(--muted);text-align:center;max-width:64ch;margin:0 auto 6px}
.rs-end-disclaimer b{color:var(--ink-2)}

/* ---------- 8. 实验室 hub ---------- */
.labs-hub{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0 0 26px}
.labs-card{
  display:flex;flex-direction:column;gap:11px;
  padding:22px 24px;border:1px solid var(--line);border-radius:var(--radius);
  background:var(--card);box-shadow:var(--shadow);
  transition:transform .12s ease,border-color .12s ease,background-color .12s ease;
}
.labs-card:hover{transform:translateY(-2px);border-color:var(--line-2);background:var(--card-2)}
.labs-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.labs-kicker{margin:0;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--brand)}
.labs-badge{margin-left:auto;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.05em;color:var(--faint);border:1px solid var(--line);border-radius:999px;padding:3px 9px}
.labs-card h2{margin:0;font-size:clamp(22px,2.9vw,27px);letter-spacing:-.015em}
.labs-desc{margin:0;font-size:14px;line-height:1.75;color:var(--muted)}
.labs-points{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:12.5px;line-height:1.65;color:var(--ink-2)}
.labs-points li{padding-left:16px;position:relative}
.labs-points li::before{content:"—";position:absolute;left:0;color:var(--faint)}
.labs-go{margin-top:auto;padding-top:6px;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.04em;color:var(--brand);border-top:1px solid var(--line)}
.labs-note{border:1px solid var(--line);border-radius:var(--radius);background:var(--card-2);padding:18px 22px}
.labs-note h2{margin:0 0 6px;font-size:16px}
.labs-note p{margin:0;font-size:13.5px;line-height:1.75;color:var(--muted);max-width:80ch}

/* ---------- 9. 静态说明区 ---------- */
.rs-static{margin:30px 0 0;padding-top:22px;border-top:1px solid var(--line)}
.rs-static h2{font-size:17px;margin:0 0 10px}
.rs-static p{font-size:13.5px;line-height:1.75;color:var(--muted);max-width:82ch}
.rs-static a{color:var(--brand);text-decoration:underline;text-underline-offset:2px}
.rs-method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:6px 0 0}
.rs-method{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);padding:14px 16px}
.rs-method h3{margin:0 0 5px;font-size:13.5px}
.rs-method p{margin:0;font-size:12.5px;line-height:1.7}
.rs-boundary ul{margin:0 0 14px;padding-left:20px;font-size:13px;line-height:1.8;color:var(--muted)}
.rs-boundary b{color:var(--ink-2)}

/* ---------- 10. 响应式 ---------- */
@media(max-width:960px){
  .rs-overview-top{grid-template-columns:1fr}
  .rs-state-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rs-phases{grid-template-columns:repeat(4,minmax(0,1fr))}
  .rs-analysts{grid-template-columns:1fr}
}
@media(max-width:820px){
  .rs-split,.rs-verdict-compare,.rs-boundary-cards,.rs-case-grid,.rs-method-grid,.rs-questions,.labs-hub{grid-template-columns:1fr}
  .rs-conclusion{grid-template-columns:1fr}
  .rs-conclusion-side{justify-items:start}
  .rs-debate-turn{grid-template-columns:1fr}
  .rs-debate-turn .rs-debate-action{justify-self:start}
  .rs-confidence{min-width:0;width:100%}
}
@media(max-width:640px){
  .research-page .wrap{padding:22px 16px 56px}
  .rs-phases{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rs-state-grid{grid-template-columns:1fr}
  .rs-bar-row{grid-template-columns:74px minmax(0,1fr) 52px}
  .rs-card,.rs-panel,.rs-panel-dark{padding:15px 16px;border-radius:16px}
  .rs-highlight{grid-template-columns:1fr}
  .rs-highlight-meta{grid-column:1}
  .rs-table{min-width:520px}
  .rs-case-facts{gap:6px 12px}
}
@media(max-width:400px){
  .rs-tabs a{font-size:10px;padding:6px 10px}
  .rs-case{font-size:13px}
  .rs-state-v{font-size:24px}
}

/* 打印：去掉装饰，保证结论可读（复制/保存 PDF 场景） */
@media print{
  .rs-tabs,.rs-help,.rs-copy-note,.rs-phase-bar{display:none}
  .rs-card,.rs-panel,.rs-panel-dark{box-shadow:none}
}

/* 减少动效 */
@media(prefers-reduced-motion:reduce){
  .rs-view{animation:none}
  .rs-skeleton-card{animation:none}
  .rs-loading i{animation:none}
  .rs-phase-progress i{transition:none}
  .labs-card{transition:none}
}

/* ---------- 11. 交互补充（research.js 运行时状态） ---------- */
.rs-sort{
  font:inherit;color:inherit;background:none;border:0;padding:0;
  letter-spacing:inherit;text-transform:inherit;cursor:pointer;
  display:inline-flex;align-items:center;gap:2px;
}
.rs-sort:hover{color:var(--ink)}
.rs-sort:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:3px}
.rs-table th[aria-sort="ascending"] .rs-sort,
.rs-table th[aria-sort="descending"] .rs-sort{color:var(--ink)}

.rs-phase.is-waiting{opacity:.4}
.rs-side li.is-flash,.rs-claim.is-flash{
  background:color-mix(in srgb,var(--accent) 26%,transparent);
  box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 16%,transparent);
  border-radius:6px;
}

/* 深色结论区内的通用组件适配 */
.rs-panel-dark .rs-tag{background:var(--panel-2);border-color:var(--panel-line);color:var(--panel-muted)}
.rs-panel-dark .rs-btn{border-color:var(--panel-line);background:var(--panel-2);color:var(--panel-ink)}
.rs-panel-dark .rs-btn:hover{background:var(--panel-3);border-color:var(--panel-muted)}
.rs-panel-dark .rs-confidence-track{background:var(--panel-2);border-color:var(--panel-line)}
.rs-panel-dark .rs-confidence-meta{color:var(--panel-muted)}
.rs-panel-dark .rs-summary,.rs-panel-dark .rs-focus-list{color:var(--panel-ink)}
.rs-panel-dark .rs-stance.is-neutral{background:var(--panel-2);border-color:var(--panel-line);color:var(--panel-muted)}
.rs-panel-dark .rs-num.pos{color:var(--accent)}
.rs-panel-dark .rs-stance.is-bull{color:var(--good-2);border-color:color-mix(in srgb,var(--good-2) 40%,transparent);background:color-mix(in srgb,var(--good-2) 12%,transparent)}
.rs-panel-dark .rs-stance.is-bear{color:var(--bad-2);border-color:color-mix(in srgb,var(--bad-2) 40%,transparent);background:color-mix(in srgb,var(--bad-2) 12%,transparent)}
.rs-panel-dark .rs-num.neg{color:var(--warn-2)}
.rs-ai-badge-wrap{display:flex;justify-content:center;margin:14px 0 0}

.rs-none{color:var(--muted);font-size:.86em;white-space:nowrap}

/* 深链层（行业/档案）里静态标题区徽标让位给档案自己的徽标，避免重复 */
.rs-layer-deep .rs-head-ai{display:none}

.rs-plan-more{margin-top:14px;border-top:1px dashed var(--line);padding-top:10px}
.rs-plan-more summary{cursor:pointer;font-weight:600;color:var(--ink)}
.rs-plan-more summary:hover{color:var(--brand)}
.rs-plan-answer{display:block;color:var(--muted);font-size:.94em;margin-top:4px}
