/* 结构化总结正文（前端渲染 analysis 用），类名统一 an- 前缀，避免与站点样式冲突。 */

.an-body {
  --an-bull: #e03b3b;
  --an-bear: #1a9850;
  --an-neutral: #8a8f99;
  --an-primary: #2b7bba;
  --an-hint: #b8860b;
  --an-bg: #f4f5f7;
  --an-card: #ffffff;
  --an-text: #1f2329;
  --an-text-sub: #646a73;
  --an-border: #eaecf0;
  color: var(--an-text);
  font-size: 15px;
  line-height: 1.6;
}

.an-body * { box-sizing: border-box; }

.an-section-title {
  font-size: 20px;
  font-weight: 600;
  margin: 22px 4px 10px;
  padding-left: 10px;
  border-left: 5px solid #f4b183;
}

.an-card {
  background: var(--an-card);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 14px;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.05);
}

.an-empty,
.an-loading {
  padding: 24px 16px;
  color: var(--an-neutral);
  font-size: 14px;
  text-align: center;
}

/* 折叠通用 */
.an-fold-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  user-select: none;
}

.an-arrow {
  flex-shrink: 0;
  color: var(--an-primary);
  margin-left: 10px;
  transition: transform 0.15s ease;
}

.an-fold.open > .an-fold-head > .an-arrow,
.an-fold.open > .an-fold-head .an-arrow { transform: rotate(90deg); }

.an-fold > .an-fold-body { display: none; }
.an-fold.open > .an-fold-body { display: block; }

/* 大盘概览 */
.an-ov-block {
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--an-border);
}

.an-ov-block:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: none; }
.an-ov-head {
  display: flex;
  align-items: center;
  padding-left: 10px;
  border-left: 4px solid #f4b183;
  margin-bottom: 8px;
}
.an-ov-subtitle { font-size: 16px; font-weight: 700; color: var(--an-text); }
.an-ov-item { padding-bottom: 10px; margin-bottom: 10px; border-bottom: 1px solid var(--an-border); }
.an-ov-item:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: none; }
.an-ov-item-title { font-size: 14px; font-weight: 600; margin-bottom: 2px; }
.an-ov-item-text { font-size: 14px; }
.an-hot-summary { font-size: 13px; margin: 8px 0; color: var(--an-text-sub); }
.an-hot-item { padding-bottom: 10px; margin-bottom: 10px; border-bottom: 1px solid var(--an-border); }
.an-hot-item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.an-hot-head { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.an-hot-name { font-size: 14px; }
.an-hot-tendency {
  font-size: 12px;
  padding: 2px 10px;
  border-radius: 5px;
}
.an-hot-tendency-bull {
  color: var(--an-bull);
  background: rgba(224, 59, 59, 0.1);
}
.an-hot-tendency-bear {
  color: var(--an-bear);
  background: rgba(26, 152, 80, 0.1);
}
.an-hot-tendency-neutral {
  color: var(--an-neutral);
  background: rgba(138, 143, 153, 0.14);
}
.an-hot-window {
  font-size: 12px;
  color: var(--an-text-sub);
  background: var(--an-bg);
  padding: 2px 10px;
  border-radius: 5px;
}
.an-hot-cond { font-size: 13px; color: var(--an-text-sub); margin-top: 6px; }

/* 重要暗示 */
.an-hint-card { background: #fff8e6; }
.an-hint-item { margin-bottom: 8px; }
.an-hint-item:last-child { margin-bottom: 0; }
.an-hint-line { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; }
.an-hint-tag {
  flex-shrink: 0;
  font-size: 12px;
  color: var(--an-hint);
  background: rgba(184, 134, 11, 0.12);
  padding: 2px 10px;
  border-radius: 5px;
}
.an-hint-summary { font-size: 13px; flex: 1; }

/* 短期机会 */
.an-opp-item { padding-bottom: 8px; margin-bottom: 10px; border-bottom: 1px solid var(--an-border); }
.an-opp-item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.an-opp-head { font-size: 0; }
.an-opp-head > * { font-size: 15px; }
.an-opp-asset { font-size: 15px; font-weight: 600; margin-right: 8px; }
.an-opp-tag {
  font-size: 12px;
  color: var(--an-bull);
  background: rgba(224, 59, 59, 0.1);
  padding: 2px 10px;
  border-radius: 5px;
}
.an-opp-reason { font-size: 13px; color: var(--an-text-sub); margin-top: 6px; }

/* 板块 */
.an-sector-card { padding: 0; overflow: hidden; }
.an-sector-head { padding: 14px 16px; align-items: flex-start; transition: background 0.15s ease; }
.an-sector-head:hover { background: #fafbfc; }
.an-sector-info { flex: 1; min-width: 0; }
.an-sector-name { display: flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 600; }
.an-sector-dur { font-size: 12px; color: var(--an-neutral); font-weight: 400; }
.an-sector-counts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.an-count-chip {
  font-size: 12px;
  color: var(--an-text-sub);
  background: var(--an-bg);
  padding: 2px 10px;
  border-radius: 5px;
}
.an-sector-body { padding: 0 16px 6px; }
.an-sub { border-top: 1px solid var(--an-border); }
.an-sub-head { padding: 12px 0; }
.an-sub-label { font-size: 14px; font-weight: 600; }
.an-reftime-list { display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 8px; }
.an-reftime-chip {
  font-size: 12px;
  color: var(--an-text-sub);
  background: var(--an-bg);
  padding: 2px 10px;
  border-radius: 5px;
}
.an-stock { padding: 8px 0; }
.an-stock-title { font-size: 15px; font-weight: 600; margin-bottom: 8px; }
.an-stance { margin-bottom: 8px; }
.an-stance-reason { font-size: 13px; color: var(--an-text-sub); margin-top: 4px; }
.an-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 6px;
  font-size: 12px;
  margin: 0 8px 4px 0;
}
.an-badge-label { font-weight: 600; margin-right: 6px; opacity: 0.85; }
.an-badge-bull { background: rgba(224, 59, 59, 0.12); color: var(--an-bull); }
.an-badge-bear { background: rgba(26, 152, 80, 0.12); color: var(--an-bear); }
.an-badge-cheap { background: rgba(43, 123, 186, 0.12); color: var(--an-primary); }
.an-badge-neutral { background: rgba(138, 143, 153, 0.14); color: var(--an-neutral); }

.an-event,
.an-knowledge { padding: 6px 0; border-top: 1px dashed var(--an-border); }
.an-event:first-of-type,
.an-knowledge:first-of-type { border-top: none; }
.an-event-title,
.an-knowledge-title { font-size: 14px; font-weight: 600; margin-bottom: 4px; }
.an-event-assets { font-size: 12px; color: var(--an-text); margin-bottom: 3px; }
.an-event-impact { font-size: 14px; margin-bottom: 3px; }
.an-event-logic { font-size: 13px; color: var(--an-text-sub); margin-bottom: 3px; }
.an-event-basis {
  display: inline-block;
  font-size: 12px;
  color: var(--an-neutral);
  background: var(--an-bg);
  padding: 1px 10px;
  border-radius: 5px;
}
.an-knowledge-content { font-size: 14px; }
.an-opinion { padding: 6px 0; border-top: 1px dashed var(--an-border); }
.an-opinion:first-of-type { border-top: none; }
.an-opinion-name { font-size: 14px; font-weight: 600; }
.an-opinion-text { font-size: 14px; margin-top: 2px; }
.an-opinion-label {
  display: inline-block;
  font-size: 12px;
  color: var(--an-neutral);
  background: var(--an-bg);
  padding: 1px 8px;
  border-radius: 4px;
  margin-right: 6px;
}
.an-chain-link { font-size: 13px; color: var(--an-text-sub); margin-top: 4px; }
.an-chain-type {
  display: inline-block;
  font-size: 12px;
  color: var(--an-primary);
  background: rgba(43, 123, 186, 0.1);
  padding: 1px 8px;
  border-radius: 5px;
  margin-right: 6px;
}

/* 交易技巧 */
.an-tip-name { flex: 1; min-width: 0; font-size: 15px; font-weight: 600; }
.an-tip-body { margin-top: 10px; }
.an-tip-method { font-size: 14px; }
.an-tip-scope {
  font-size: 12px;
  color: var(--an-text-sub);
  background: var(--an-bg);
  padding: 8px 12px;
  border-radius: 6px;
  margin-top: 8px;
}

/* 引用（按钮 float:right 右贴容器右缘、文字环绕；展开列表 clear:right 出现在按钮下方。
   按钮 float 不撑高父容器，需由下方 BFC 规则兜底包含，避免被挤到下一行时溢出到 padding） */
.an-quote-wrap { display: contents; }
.an-quote-toggle {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  float: right;
  margin-left: 8px;
  font-size: 12px;
  color: var(--an-primary);
  cursor: pointer;
  user-select: none;
}
.an-quote-list { clear: right; margin-top: 8px; margin-bottom: 0; text-align: left; }
.an-quote-item { display: block; margin-bottom: 10px; }
.an-quote-item:last-child { margin-bottom: 0; }
.an-quote-time { display: inline-block; font-size: 12px; color: var(--an-neutral); margin-bottom: 2px; }
.an-quote-subtitle {
  display: inline-block;
  margin-left: 8px;
  font-size: 12px;
  color: var(--an-primary);
  text-decoration: none;
}
.an-quote-subtitle:hover { text-decoration: underline; }
.an-quote-text {
  display: block;
  font-size: 13px;
  color: var(--an-text-sub);
  background: var(--an-bg);
  padding: 8px 12px;
  border-radius: 6px;
}

/* 引用按钮 float 右对齐时，其父容器必须是 BFC 才能包含 float（否则按钮被挤到下一行后
   溢出到 padding、紧贴分割线）。统一给所有「正文 + 引用」的块级容器加 overflow:hidden。 */
.an-ov-item-text,
.an-hot-cond,
.an-hint-summary,
.an-opp-head,
.an-opp-reason,
.an-stance-reason,
.an-inline-line,
.an-opinion-text,
.an-chain-link,
.an-event-title,
.an-event-impact,
.an-event-logic,
.an-knowledge-content,
.an-trade-field,
.an-other-field,
.an-tip-method,
.an-tip-scope {
  overflow: hidden;
}

/* 板块观点的 hot-head 是 flex 容器（flex 内 float 被忽略），用 margin-left:auto
   把引用按钮推到最右对齐（单篇总结页无「总结链接」的场景） */
.an-hot-head .an-quote-toggle { margin-left: auto; }

/* 聚合页 hot-head 里「总结链接」在引用按钮之前（DOM 相邻）：自由空间全部由链接的
   margin-left:auto 吸收，按钮去掉 auto 间距，保证两者相邻成组靠右
   （链接居左、引用居右），不被均分的 auto margin 撑开 */
.an-hot-head .ov-src-link + .an-quote-wrap .an-quote-toggle { margin-left: 0; }

/* hot-head / hint-line 是 flex 容器，float/clear 失效：展开的引用列表会作为 flex 项
   与标题挤在同一行右侧。flex-basis:100% 借助容器的 flex-wrap:wrap 强制它换行、
   独占整行，与块级容器（clear:right）的换行表现一致。 */
.an-hot-head .an-quote-list,
.an-hint-line .an-quote-list { flex-basis: 100%; }

.an-trade,
.an-other-item { padding: 6px 0; border-top: 1px dashed var(--an-border); }
.an-trade:first-of-type,
.an-other-item:first-of-type { border-top: none; }
.an-trade-name { font-size: 14px; font-weight: 600; margin-bottom: 4px; }
.an-trade-field,
.an-other-field { font-size: 13px; margin-top: 3px; }

/* ---- 关键词检索：命中高亮 ---- */
.an-body mark {
  background: #fff3b0;
  color: inherit;
  padding: 0 2px;
  border-radius: 2px;
}

/* ---- 关键词检索：结果卡片 ---- */
.search-header { padding: 16px; }
.search-header-title { font-size: 20px; font-weight: 600; margin-bottom: 6px; }
.search-header-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 8px; }
.search-tag {
  font-size: 12px; color: var(--an-primary); background: rgba(43, 123, 186, .1);
  padding: 2px 10px; border-radius: 5px;
}
.search-disclaimer { font-size: 12px; color: var(--an-neutral); }
.search-stats { font-size: 14px; }
.search-hierarchy { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 6px 0 6px; }
.search-hierarchy-topic {
  font-size: 12px; font-weight: 600; color: var(--an-text-sub); background: rgba(120, 130, 140, .14);
  padding: 1px 8px; border-radius: 4px;
}
.search-hierarchy-type {
  font-size: 12px; color: var(--an-neutral); background: rgba(120, 130, 140, .12);
  padding: 1px 8px; border-radius: 4px;
}
.search-kv { padding: 3px 0; font-size: 14px; overflow: hidden; }
.search-kv-label { font-weight: 600; color: var(--an-text-sub); margin-right: 6px; }
.search-kv-indent { padding-left: 16px; color: var(--an-text-sub); }
.search-section-title { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.search-src-link { color: var(--an-text); font-weight: 600; text-decoration: none; }
.search-src-link:hover { color: var(--an-primary); }
.search-src-meta { font-size: 12px; color: var(--an-neutral); font-weight: 400; }
.search-src-actions { float: right; margin-left: 8px; display: inline-flex; align-items: center; gap: 8px; }
.search-item-link { float: right; margin-left: 8px; }
.search-hit-card { padding: 0; overflow: hidden; }
.search-hit-body { padding: 0 16px 12px; overflow: hidden; }
.search-hit-sep { border-top: 1px dashed var(--an-border); margin: 10px 0; }

/* ---- 概览「总结链接」跳入：被引用条目高亮定位 ---- */
.an-hl { background: #fff8e1; }
