/* 阿洛哈投资研究 · 统一设计规格（2026-10-07，design-unify-20261007.1）
   全站最后加载。规格正文见 docs/DESIGN_SYSTEM.md；新增页面、模块直接复用这里的令牌与角色，不再自带标题、按钮、表格、卡片样式。
   只统一外观角色（标题、折叠摘要、切换按钮、按钮、表头、卡片、标签）。
   不碰：品牌页头、主导航、字体族；红涨绿跌等数据语义色；热力图、条形与图表线色。
   作用范围 P = html:not(#ds) main>section:not(#page-admin):not(#page-kb)：
   两个 :not(#id) 把特异性抬到模块样式之上（含模块用 JS 注入的 <style>），管理页与个人知识库不受影响。 */

:root {
  --ds-ink: #0e1a28;            /* rgb(14,26,40) 标题与正文墨色 */
  --ds-muted: #5f6975;          /* rgb(95,105,117) 次要文字、表头；米白底对比度约 4.9:1（2026-10-18 由 #6c7682 加深） */
  --ds-accent: #2b5483;         /* rgb(43,84,131) 链接、折叠摘要 */
  --ds-accent-dark: #11263a;    /* rgb(17,38,58) 选中态底色 */
  --ds-line: #ddd7c9;           /* rgb(221,215,201) 分隔线、控件边框 */
  --ds-card: #fffdf8;           /* rgb(255,253,248) 卡片底 */
  --ds-card-line: #e9e4d8;      /* rgb(233,228,216) 卡片边框 */
  --ds-tag-fg: #626c78;         /* 浅底小标签文字，保持普通文字对比度 */
  --ds-tag-bg: #f3f0e8;         /* rgb(243,240,232) 中性标签底、强调面板底 */
  --ds-shadow: 0 1px 0 rgba(255,255,255,.7) inset, 0 1px 2px rgba(35,27,12,.04), 0 18px 40px -28px rgba(35,27,12,.28);
  --ds-r-card: 16px;
  --ds-r-panel: 10px;
}

/* 方法与回测：原页自带一套墨色、灰色、强调色变量，改指向统一令牌（图表线色不读这些变量） */
html:not(#ds) main>section#page-backtest {
  --method-ink: var(--ds-ink);
  --method-muted: var(--ds-muted);
  --method-accent: var(--ds-accent);
  --method-line: var(--ds-line);
  --method-surface: var(--ds-tag-bg);
  color: var(--ds-ink);
}

/* AI 日报原用紫色强调（序号圆点、筛选选中、链接、分组标题），改为统一链接色与浅蓝底 */
html:not(#ds) main :is(#page-ai-news, #dw-ind-ai-news) {
  --ai-accent: var(--ds-accent);
  --ai-tint: #e9eef5;
}

/* ───────── 标题 ───────── */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(h2,h3,h4) {
  color: var(--ds-ink); letter-spacing: normal;
}
/* 卡片标题 h2 21/700 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) h2 {
  font-size: 21px; font-weight: 700; line-height: 1.4;
}
/* 页面标题 h2 28/700（Tab 页头、首页信息流页头） */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.dw-head h2, .ru-feed-head h2) {
  font-size: 28px; line-height: 1.2;
}
/* 小节标题 h3 17/650 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) h3 {
  font-size: 18px; font-weight: 650; line-height: 1.5;
}
/* 紧凑卡片标题（看板小卡、评分卡名、国债国别、信息流日期）15/650 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.hd-grid h3, .is-name h3, .ry-country h3, h3.ru-feed-day, .ru-news-title) {
  font-size: 15px; font-weight: 650;
}
/* 次级标题 h4 15/700 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) h4 {
  font-size: 15px; font-weight: 700; line-height: 1.5;
}
/* 可点开的新闻标题：保留链接色 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .ai-news-top h4 { color: var(--ds-accent); }
/* 小标签式标题（要点、什么会增强判断、对比说明等）12/600 灰 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(h4.mo-label, .ot-evidence-pair h4, .ot-next-indicators h4, .ai-explanation-metrics h4, .ai-compare h4, .mi-note-label, .mo-grp h4, .an-drivers h4) {
  font-size: 12px; font-weight: 600; color: var(--ds-muted);
}
/* 用 h4 写的卡片级标题（首页信息流卡、十倍股研究各段）按卡片标题 21/700 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(h4.ru-feed-title, .tb-block>h4) {
  font-size: 21px; font-weight: 700; line-height: 1.45;
}

/* ───────── 折叠摘要 ───────── */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) details>summary {
  font-size: 13px; font-weight: 600; color: var(--ds-accent);
}
/* 列表、表格、新闻条目里的次级折叠 13/400 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(td details>summary, li details>summary, .ai-news-item>summary, .ai-detail>summary, .dr-entry>summary, .cyclical-credit>summary, .hd-alt>summary, .mi-full>summary, .mi-highlight>summary, .mi-original-summary>summary, .ru-news>summary, .ru-story>summary, .ru-news-more>summary) {
  font-weight: 400;
}
/* 整块可折叠的卡片或段落：摘要就是标题 16/650 墨色 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(details.card>summary, details.dw-details>summary, details.mo-section>summary) {
  font-size: 16px; font-weight: 650; color: var(--ds-ink);
}

/* 红利财务快照的摘要写在行内样式里，只能用 !important 对齐 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) #financial-database>details>summary {
  font-size: 16px !important; font-weight: 650 !important; color: var(--ds-ink) !important;
}

/* ───────── 页内分栏（产业、宏观、红利、市场子页签）：统一胶囊 ───────── */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .dw-subtabs {
  background: transparent; box-shadow: none; padding: 0; gap: 6px; border: 0;
}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .dw-subtabs [role=tab] {
  font-size: 14px; font-weight: 600; letter-spacing: normal;
  padding: 6px 16px; border-radius: 999px;
  border: 1px solid var(--ds-line); background: transparent; color: var(--ds-ink); box-shadow: none;
}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .dw-subtabs [role=tab][aria-selected=true] {
  background: var(--ds-accent-dark); border-color: var(--ds-accent-dark); color: #fff;
}

/* ───────── 切换胶囊（日期、区间、筛选、比较窗口） ───────── */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(
  .monthly-chips .btn, .ai-sector-acts button, .ai-news-filter button, .ai-pagenav button,
  .ru-day-chip, .ru-chip, .cm-filter button, .cm-cols, .mb-range, .hd-periods .btn, .toolbar.hd-periods .btn,
  .gt-range button, .ait-factor-tools button, .sxo-cap .btn, .sxo-presets .btn, .mo-group-nav button, .ec-filter button, .mi-channels [role=tab], .an-root .an-chip, .er-filter, .cus-tog button, .ef-tog button
) {
  font-size: 13px; font-weight: 500; letter-spacing: normal; line-height: 1.5;
  min-height: 30px; padding: 4px 12px; border-radius: 999px;
  border: 1px solid var(--ds-line); background: transparent; color: var(--ds-ink); box-shadow: none;
}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(
  .monthly-chips .btn, .ai-sector-acts button, .ai-news-filter button, .ai-pagenav button,
  .ru-day-chip, .ru-chip, .cm-filter button, .cm-cols, .mb-range, .hd-periods .btn, .toolbar.hd-periods .btn,
  .gt-range button, .ait-factor-tools button, .sxo-cap .btn, .sxo-presets .btn, .mo-group-nav button, .ec-filter button, .mi-channels [role=tab], .an-root .an-chip, .er-filter, .cus-tog button, .ef-tog button
):is([aria-pressed=true], [aria-selected=true], .on, .active, .is-active) {
  background: var(--ds-accent-dark); border-color: var(--ds-accent-dark); color: #fff; font-weight: 500;
}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.ai-sector-acts button, .ai-news-filter button, .ai-pagenav button, .cm-filter button, .cm-cols, .gt-range button, .ait-factor-tools button, .mo-group-nav button, .an-root .an-chip):hover:not(:disabled):not([aria-pressed=true]) {
  border-color: var(--ds-ink); color: var(--ds-ink);
}

/* 叙事摘要沿用正文、来源附注、搜索框与键盘焦点角色。 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.an-root .an-copy,.an-root .an-conclusion,.an-root .an-points li,.an-root .an-state-note,.an-root .an-unresolved,.an-root .an-baseline-note){font-size:14px;font-weight:400;line-height:1.85;color:var(--ds-ink)}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.an-root .an-meta,.an-root .an-source-nature,.an-root .an-code){font-size:12px;font-weight:400;line-height:1.7;color:var(--ds-muted)}
.an-root .an-query{font:inherit;color:var(--ds-ink);background:var(--ds-card);border:1px solid var(--ds-line);border-radius:var(--ds-r-panel)}
.an-root :is(button,input,summary):focus-visible{outline:2px solid var(--ds-accent);outline-offset:2px}
/* 叙事评分：同一套表格、文字按钮与指标数值角色，局限在该模块。 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root .an-driver-list{font-size:13px;line-height:1.7;color:var(--ds-ink)}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root .an-driver-name{font:inherit;color:var(--ds-accent);background:none;border:0;padding:0;text-align:left;cursor:pointer}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root :is(.an-cell-code,.an-score-values dt){font-size:12px;font-weight:400;line-height:1.7;color:var(--ds-muted)}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root .an-score-name{font:inherit;font-size:13px;font-weight:600;color:var(--ds-accent);background:none;border:0;border-radius:0;padding:2px 0;cursor:pointer}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root .an-score-name[aria-pressed=true]{font-weight:700;color:var(--ds-ink)}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root .an-selected-row>:is(th,td){background:var(--ds-tag-bg)}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root .an-score-table tbody :is(th,td){border-bottom:1px solid var(--ds-line)}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root .an-score-table tbody tr:last-child>:is(th,td){border-bottom:0}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root .an-net-value{font-size:21px;font-weight:700;font-variant-numeric:tabular-nums}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root .an-score-values dd{font-size:24px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root .an-main-score dd{font-size:32px}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root .an-change-value{font-size:21px;font-weight:700;line-height:1.4;font-variant-numeric:tabular-nums}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root .an-text-link{font:inherit;font-size:13px;font-weight:400;color:var(--ds-accent);padding:4px 0;background:none;border:0;cursor:pointer}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root .an-reader{border-left:1px solid var(--ds-line)}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root :is(.an-research,.an-overview,.an-related-section,.an-score-events>li+li){border-top:1px solid var(--ds-line)}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root .an-research>summary{font-size:16px;font-weight:650;color:var(--ds-ink)}
@media(hover:hover) and (pointer:fine){html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root .an-score-table tr[data-an-row]:hover>:is(th,td){background:var(--ds-tag-bg)}}
@media(max-width:980px){html:not(#ds) main>section:not(#page-admin):not(#page-kb) .an-root .an-reader{border-left:0;border-top:1px solid var(--ds-line)}}

/* ───────── 按钮 ───────── */
/* 次要按钮：胶囊 13/600 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.btn, .alt-jump, .is-jump, .ru-older-button, .cm-pager button) {
  font-size: 13px; font-weight: 600; letter-spacing: normal; line-height: 1.5;
  min-height: 32px; padding: 6px 14px; border-radius: 999px;
  border: 1px solid var(--ds-line); background: var(--ds-card); color: var(--ds-ink);
}
/* 主操作（登录、提交）与按下状态：深色胶囊 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.btn.on, .btn.primary, .pp-auth button[type=submit]) {
  background: var(--ds-accent-dark); border-color: var(--ds-accent-dark); color: #fff;
}
/* 我的组合登录区原用 !important 着色 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .btn.pp-primary {
  background: var(--ds-accent-dark) !important; border-color: var(--ds-accent-dark) !important; color: #fff !important;
}
/* 市场页三段导航：当前时段保留铜色提示 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .dw-today-nav .btn.dw-now {
  background: var(--aw-copper-soft, #f4e4d9); border-color: var(--aw-copper, #b4532a); color: #8f3d1c;
}
/* 文字按钮：13/400 链接色，无底无框 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.dr-company-link, .dc-link, .ai-link-btn, .iw-more, .cm-more, .pw-link, .dw-inline-button) {
  font-size: 13px; font-weight: 400; letter-spacing: normal;
  padding: 4px 0; border: 0; border-radius: 0; background: none; color: var(--ds-accent);
}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .dr-company-link:hover { background: none; text-decoration: underline; text-underline-offset: 3px; }

/* ───────── 表格 ───────── */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) th {
  font-size: 12px; font-weight: 600; color: var(--ds-muted); background: var(--ds-card);
  padding: 8px 10px;
}
/* 表体里的行标题保持墨色，便于读行 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) tbody th { color: var(--ds-ink); }
html:not(#ds) main>section:not(#page-admin):not(#page-kb) td {
  font-size: 13px; padding: 8px 10px;
}

/* ───────── 卡片 ───────── */
/* 一级卡片：16px 圆角、卡片底、细边、原有轻阴影 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.card, .dw-card, .ru-feed-card, .is-card, .iw-card, .ot-panel, .hd-section, .sf-section, .mi-surface, #ae-weekly-opinions) {
  border-radius: var(--ds-r-card); background: var(--ds-card);
  border: 1px solid var(--ds-card-line); box-shadow: var(--ds-shadow);
}
/* 卡内面板：10px 圆角、透明底、分隔线色细边、无阴影 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(
  .ai-explanation-event, .ai-explanation-factor, .mi-story, .ai-factor, .hd-grid .factor, .dc-card, .de-panel,
  .dr-index-day, .mo-core, .mo-risk, .ot-track, .value-daily-refresh, .sf-card, .pw-panel, .ry-country, .sxo-plan, .sxo-profile, .mo-current,
  .mo-mech-grid>article, .mo-scenario-grid>article, .tb-cards>article
) {
  border-radius: var(--ds-r-panel); background: transparent; box-shadow: none;
}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(
  .ai-explanation-event, .ai-explanation-factor, .mi-story, .ai-factor, .hd-grid .factor, .dc-card, .de-panel,
  .dr-index-day, .mo-core, .mo-risk, .ot-track, .value-daily-refresh, .sf-card, .pw-panel, .ry-country,
  .mo-mech-grid>article, .mo-scenario-grid>article:not(.mo-current), .tb-cards>article
) {
  border: 1px solid var(--ds-line);
}
/* 强调面板（当期判断、今日核心总结、复核概览）：同内面板，底色用中性浅沙 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.mo-judgment, .mo-rates, .mi-summary, .dr-overview) {
  border-radius: var(--ds-r-panel); background: var(--ds-tag-bg); border: 1px solid var(--ds-line); box-shadow: none;
}

/* ───────── 标签 ───────── */
/* 中性标签：11/500 胶囊 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.pw-chip, .ru-supplement, .pw-today-event-title>span, .fp-pill, .ae-author-tag, .ec-tag, .mi-tag, .ru-news-tag, .ru-news-n, .er-exch-tag, .er-follow-type) {
  font-size: 12px; font-weight: 500; letter-spacing: normal; padding: 2px 8px; border-radius: 999px;
  background: var(--ds-tag-bg); color: var(--ds-tag-fg); border-color: transparent;
}
/* 有含义的状态标签（上升／收购中、有缺项、现在）：只统一尺寸，颜色不改 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.tb-tag, .ru-partial, .dw-slot-flag, .er-verdict) {
  font-size: 12px; font-weight: 500; letter-spacing: normal; padding: 2px 8px; border-radius: 999px;
}

/* 渠道正文复用统一阅读角色；单线分隔归后一个列表项，不套内层卡片。 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.mi-copy,.mi-points,.mi-entry-dispute,.mi-entry-dispute>p:not(.mi-note-label),.mi-paid-note,.mi-digest-lead) { font-size:14px; font-weight:400; line-height:1.85; color:var(--ds-ink); }
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.mi-entry-meta,.mi-channel-date,.mi-attribution,.mi-link-note,.mi-hl-basis,.mi-empty,.mi-digest-date) { font-size:12px; font-weight:400; line-height:1.7; color:var(--ds-muted); }
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.mi-entry-links a,.mi-ref) { color:var(--ds-accent); }
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.mi-entry+.mi-entry,.mi-highlight-list>li+li,.mi-xo-account+.mi-xo-account,.mi-xo-post+.mi-xo-post,.mi-channel-panel>.mi-highlights+.mi-subsection,.mi-channel-panel>.mi-entry+.mi-subsection) { border-top:1px solid var(--ds-line); }
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.mi-channel:focus-visible,.mi-highlight:focus-visible,.mi-entry:focus-visible) { outline:2px solid var(--ds-accent); outline-offset:2px; }

/* 展开研究的解释正文仍是正文，不继承全局 details p 的小号灰字。 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.at-lead,.at-fold-body>p:not(.at-muted)) { font-size:14px; font-weight:400; line-height:1.85; color:var(--ds-ink); }
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.at-answer,.at-verdict) { color:var(--ds-ink); }
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.mo-no,.at-no) { color:var(--ds-tag-fg); }

/* 首页晨报的编辑层级：头条与两重点专题同级，其他简讯内的题材为小标题。 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) #home-ai-news .ru-news-group-heading { font-size:15px; font-weight:650; color:var(--ds-ink); letter-spacing:normal; }
html:not(#ds) main>section:not(#page-admin):not(#page-kb) #home-ai-news .ru-news-topic-title { font-size:12px; font-weight:600; color:var(--ds-muted); letter-spacing:normal; }
#home-ai-news .ru-news-group summary:focus-visible { outline:2px solid var(--ds-accent); outline-offset:2px; }

/* ───────── 手机 ───────── */
@media (max-width: 640px) {
  html:not(#ds) main>section:not(#page-admin):not(#page-kb) h2 { font-size: 18px; }
  html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.dw-head h2, .ru-feed-head h2) { font-size: 22px; }
  html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(h4.ru-feed-title, .tb-block>h4) { font-size: 18px; }
  html:not(#ds) main>section:not(#page-admin):not(#page-kb) h3 { font-size: 16px; }
  html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.hd-grid h3, .is-name h3, .ry-country h3, h3.ru-feed-day, .ru-news-title) { font-size: 14px; }
  html:not(#ds) main>section:not(#page-admin):not(#page-kb) th,
  html:not(#ds) main>section:not(#page-admin):not(#page-kb) td { padding: 7px 8px; }
  html:not(#ds) main>section:not(#page-admin):not(#page-kb) .sxo-presets .btn { padding: 4px 4px; }
  html:not(#ds) main>section:not(#page-admin):not(#page-kb) .dw-subtabs [role=tab] { padding: 6px 12px; }
  html:not(#ds) main>section:not(#page-admin):not(#page-kb) .dw-today-nav .btn { font-size: 12px; padding: 8px 8px; white-space: normal; }
}

/* Site blog: shared roles, personal article content is not editorially rewritten. */
body[data-blog-page]{color:var(--ds-ink)}
body[data-blog-page] .blog-page-title,body[data-blog-page] .blog-article-title{font-size:28px;font-weight:700;color:var(--ds-ink);letter-spacing:normal}
body[data-blog-page] .blog-post-card h2,body[data-blog-page] .blog-drafts h2,body[data-blog-page] #blog-preview-section>.blog-row h2,body[data-blog-page] .blog-document h2{font-size:21px;font-weight:700;color:var(--ds-ink)}
body[data-blog-page] .blog-document h3{font-size:17px;font-weight:650;color:var(--ds-ink)}
body[data-blog-page] .blog-meta,body[data-blog-page] .blog-document figcaption{font-size:13px;color:var(--ds-muted)}
body[data-blog-page] .blog-button{font-size:13px;font-weight:600;padding:6px 14px;border-radius:999px;border:1px solid var(--ds-line);background:var(--ds-card);color:var(--ds-ink);text-decoration:none}
body[data-blog-page] .blog-button.primary,body[data-blog-page] .blog-button[aria-pressed=true]{background:var(--ds-accent-dark);color:white}
body[data-blog-page] .card{border-radius:var(--ds-r-card);background:var(--ds-card);border:1px solid var(--ds-card-line);box-shadow:0 4px 18px rgba(14,26,40,.04)}
body[data-blog-page] .blog-field{font-size:13px;font-weight:600;color:var(--ds-ink)}
body[data-blog-page] .blog-field input,body[data-blog-page] .blog-field textarea,body[data-blog-page] .blog-editor{font-size:16px;font-weight:400;color:var(--ds-ink);background:transparent;border:1px solid var(--ds-line);border-radius:var(--ds-r-panel)}
body[data-blog-page] .blog-editor,body[data-blog-page] .blog-document{font-size:15px;line-height:1.85}
#mainnav .blog-nav-entry{display:inline-flex;align-items:center;text-decoration:none;border:1px solid var(--ds-line);border-radius:999px;padding:6px 14px;background:transparent;color:var(--ds-ink);font:inherit}
@media(max-width:640px){body[data-blog-page] .blog-page-title,body[data-blog-page] .blog-article-title{font-size:22px}body[data-blog-page] .blog-post-card h2,body[data-blog-page] .blog-drafts h2{font-size:18px}}
/* 手机：站长博客入口缩成“博客”小按钮，不挤占七个主导航（2026-10-08） */
@media (max-width:700px){.dw-mode #mainnav .blog-nav-entry{flex:0 0 auto;padding:5px 8px;font-size:0;white-space:nowrap}.dw-mode #mainnav .blog-nav-entry::after{content:"博客";font-size:13px;font-weight:600}}
/* 主导航里的 AI 图谱入口（2026-10-18）：与大区按钮同一排，外链用 ↗ 标出，不加底色。 */
#mainnav .dw-areas .dw-chain-nav{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--ds-accent);font-weight:600;white-space:nowrap;padding:0 10px;min-height:36px;border-radius:999px}
#mainnav .dw-areas .dw-chain-nav .nav-short{display:none}
#mainnav .dw-areas .dw-chain-nav:hover{background:rgba(43,84,131,.08)}
@media (max-width:700px){#mainnav .dw-areas .dw-chain-nav{padding:0 6px;min-height:44px;font-size:14px}#mainnav .dw-areas .dw-chain-nav .nav-full{display:none}#mainnav .dw-areas .dw-chain-nav .nav-short{display:inline}}

/* 龙虎榜：沿用全站角色，仅补新控件选择器。 */
.lhb-meta{font-size:13px;font-weight:400;color:var(--ds-muted)}
.lhb-price{font-size:13px}.lhb-metrics dt,.lhb-table td::before{font-size:12px;font-weight:600;color:var(--ds-muted)}
.lhb-search-label{font-size:13px}.lhb-search{font:inherit;color:var(--ds-ink);background:var(--ds-card);border:1px solid var(--ds-line);border-radius:var(--ds-r-panel)}
.lhb-broker,.lhb-window{border:1px solid var(--ds-line);border-radius:var(--ds-r-panel);background:transparent;box-shadow:none}
.lhb-table tbody tr,.lhb-history-row{border-bottom:1px solid var(--ds-line)}

/* ===== 全站精修（2026-10-09）：去重复分隔线、补内边距、统一间距。规则只调排版，不改颜色体系与文字。 ===== */
/* 页脚分隔线：深墨色改为统一分隔线色。 */
.wrap>footer{border-top-color:rgb(221,215,201)!important}
/* 首页：板块列表末行已有底线，下方“AI产业链影响”不再加顶线。 */
.ru-boards+.ru-ai-impact{border-top:0;padding-top:4px;margin-top:22px}
/* 市场 · 今日概览：外盘块已有分组小标题，去掉自带顶线；借来的卡片不带底色以免贴边。 */
#dw-mkt-overview .dw-morning-markets{border-top:0;padding-top:6px}
#dw-mkt-overview .dw-morning-markets>.card{background:none!important;box-shadow:none!important;border:0!important;padding:0!important}
/* 对齐：完整温度、完整复盘、景气评分三块外层多一层左右缩进，卡片与页面标题、其他卡片左缘对齐。 */
#dw-indicators,#page-daily-review{padding-left:0!important;padding-right:0!important}
#dw-detail-ai-news.dw-nested{margin-left:0!important;margin-right:0!important}
/* 市场页：分组小标题自带一条线，紧跟的第一行不再画线，避免双线。 */
.dw-mkt-block .dw-group+.dw-row,.dw-mkt-block .dw-group+.dw-morning-markets{border-top:0}
/* 区块编号标题（01 · 阿洛哈温度…）：3px 粗条改为 1px 分隔线。 */
h2.page-anchor{border-top-width:1px!important}
/* 阿洛哈温度三个分位卡：去掉彩色顶边，与全站卡片一致。 */
.aloha-factors>.aloha-factor{border-top:1px solid rgb(233,228,216)!important}
.aloha-factors{margin-top:12px}
/* 成长价值比四个读数：一行排开，不让最后一个单独换行。 */
.sr-metrics{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important}
/* 标题旁的“更新于…/数据截至…”：去掉灰底胶囊，改为一行灰色小字。 */
span.ru-heading{background:none!important;border:0!important;padding:0!important;border-radius:0!important;box-shadow:none!important}
/* 产业数据卡内目录条：去掉灰底大框，只留胶囊。 */
nav.hd-toc{background:none!important;border:0!important;padding:0!important}
/* 卡片里第一块内容不再画顶线、不再空一截。 */
.hd-part>.hd-block:first-child,.hd-part>[hidden]+.hd-block,.hd-section>.hd-block:first-child{margin-top:0;padding-top:0;border-top:0}
/* 宏观预警线小节：2px 顶线改 1px，上方留足间距。 */
.mo-screens>article{border-top-width:1px!important;padding-top:18px}
/* 十倍股：顶部 2px 深色线改为统一分隔线；内容放进与红利研究相同的卡片。 */
#page-dividend .tb-intro{border-top:1px solid rgb(221,215,201)!important}
#cy-tenbagger.tb{background:rgb(255,253,248);border:1px solid rgb(233,228,216);border-radius:16px;padding:24px;margin-top:8px}
#cy-tenbagger.tb th{background:transparent}
/* 收起状态的折叠卡片不要太高。 */
details.ai-fold-card:not([open]){padding-top:14px!important;padding-bottom:14px!important}
details.ai-fold-card+details.ai-fold-card{margin-top:-12px}
/* 产业“完整研究”折叠行：箭头、标题、展开同一行。 */
.dw-topic-fold>summary{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.dw-topic-fold>summary .dw-section-toggle{margin-left:auto}
/* 龙虎榜分析：与上下卡片一样放进卡片。 */
#dr-lhb:not(.card)>.lhb-analysis{background:rgb(255,253,248);border:1px solid rgb(233,228,216);border-radius:16px;padding:20px;margin:0 0 16px}
/* 红利逐公司列表：一行只留一条分隔线。 */
.dc-company+.dc-company{border-top:0}
/* 手机表格：右侧渐隐提示加强，让“还能横向滑动”更明显；表头不折行。 */
@media(max-width:640px){
 .mt-hint:not(.mt-end){-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 44px),rgba(0,0,0,.08))!important;mask-image:linear-gradient(90deg,#000 calc(100% - 44px),rgba(0,0,0,.08))!important}
 table.mt-fit thead th{white-space:nowrap;vertical-align:bottom}
 #cy-tenbagger.tb{padding:16px;border-radius:12px}
 #dr-lhb:not(.card)>.lhb-analysis{padding:14px;border-radius:12px}
}
/* 手机子页签：放不下时换成两行，不再截断（如产业五个子页）。 */
@media(max-width:480px){
 .dw-subtabs:has(>[role=tab]:nth-child(4)){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));overflow-x:visible!important}
 .dw-subtabs:has(>[role=tab]:nth-child(5)){grid-template-columns:repeat(6,minmax(0,1fr))}
 .dw-subtabs:has(>[role=tab]:nth-child(5))>[role=tab]{grid-column:span 2}
 .dw-subtabs:has(>[role=tab]:nth-child(5))>[role=tab]:nth-child(n+4){grid-column:span 3}
 .dw-subtabs:has(>[role=tab]:nth-child(6)){grid-template-columns:repeat(3,minmax(0,1fr))}
 .dw-subtabs:has(>[role=tab]:nth-child(6))>[role=tab]{grid-column:auto}
 .dw-subtabs [role=tab]{min-width:0;padding-left:6px;padding-right:6px}
}
/* 十倍股卡片内第一块不再画顶线。 */
#cy-tenbagger .tb-intro{border-top:0!important;padding-top:0!important}
/* 市场 · 外盘：分组标题已写“外盘”，去掉内层“市场背景/昨夜美股与日韩开盘”两级重复标题。 */
#dw-mkt-overview .dw-morning-markets .ai-section-label,#dw-mkt-overview .dw-morning-markets>.card>h3{display:none}
/* 市场 · 今日概览：“仓位”小标题与下方“参考配置”重复，隐藏。 */
#dw-mkt-overview-body>.dw-group:first-of-type{display:none}
#dw-mkt-overview-body>.dw-group:first-of-type+.dw-row{border-top:1px solid rgb(221,215,201)}

/* ===== 全站精修第二轮（2026-10-09） ===== */
/* 收盘复盘：右上角日期从米色小方块改为灰色小字；读数小卡按宽度均分，不让最后一个单独掉行。 */
.dr-top .dr-pill{background:none!important;padding:0!important;color:rgb(108,118,130)!important;border-radius:0!important}
@media(min-width:641px){.dr-metrics{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important}}
/* 中美国债：折叠卡里不再套一层卡片，内层标题与折叠标题重复，隐藏。 */
.dr-fold>section.card{border:0!important;padding:0!important;margin:0!important;background:none!important;box-shadow:none!important}
.dr-fold>section.card>h2:first-child{display:none}
/* 红利目标收益读数：标签折行时数字底部对齐。 */
.dividend-income{align-items:end}
/* 页脚与最后一块内容之间留统一间距。 */
.wrap>footer{margin-top:48px}
/* 红利逐股表：数据行与其下“个股分析报告”行之间不画线，一只股票只在最后一条线。 */
#company-model tr.company-model-row:has(+ tr.company-report-row)>*{border-bottom-color:transparent!important}
#company-model tr.company-report-row>td{padding-top:0}
/* 宏观预警线：两列卡片按各自内容高度、顶部对齐，不拉齐留空。 */
.mo-screens{align-items:start}
/* 宏观背景页：2px 深色线改为统一细分隔线。 */
.vt-intro,.vt-lessons{border-top:1px solid rgb(221,215,201)!important}

/* 龙虎榜独立日期/比较与收盘专题池，复用现行角色。 */
.lhb-controls label,.lhb-compare-controls label{font-size:13px;color:var(--ds-muted)}
.lhb-controls select,.lhb-compare-controls select,.crp-date,.crp-search{font:inherit;border:1px solid var(--ds-line);border-radius:var(--ds-r-panel);background:var(--ds-card);color:var(--ds-ink)}
.lhb-day-chip,[data-lhb-latest]{font:inherit;font-size:13px;border:1px solid var(--ds-line);border-radius:999px;background:transparent;padding:4px 12px;color:var(--ds-ink)}
.lhb-day-chip[aria-pressed=true],[data-lhb-latest][aria-pressed=true]{background:var(--ds-accent-dark);color:white}
.crp-note,.crp-asof,.crp-source,.crp-root small,.crp-matrix caption{font-size:13px;color:var(--ds-muted)}
.crp-label{font-size:12px;font-weight:600;color:var(--ds-muted)}
.crp-metric strong{font-size:24px;font-weight:700;color:var(--ds-ink)}
.crp-tag{font-size:11px;border-radius:999px;background:var(--ds-tag-bg);color:var(--ds-muted);padding:2px 8px}
.crp-retry{font-size:13px;font-weight:600;border:1px solid var(--ds-line);border-radius:999px;background:var(--ds-card);color:var(--ds-ink);padding:6px 14px}
.crp-ladder-row+.crp-ladder-row,.crp-promotion-row+.crp-promotion-row,.crp-high-row+.crp-high-row,.crp-calendar-day+.crp-calendar-day{border-top:1px solid var(--ds-line)}

/* ===== 全站精修第三轮（2026-10-09，按复查清单） ===== */
/* 回测页说明列表：圆点收进灰底框内，不压在左边线上。 */
ul.sxo-why{padding-left:2.2em!important}
/* 十倍股：表格底线后紧跟折叠行时去掉折叠行顶线，避免双线。 */
#cy-tenbagger .tb-table+details.tb-more{border-top:0;margin-top:6px}
/* 宏观背景页“当前资料支持什么判断”：2px 深色线改统一细线。 */
.vt-current{border-top:1px solid rgb(221,215,201)!important}
/* 晨报“全部新闻”筛选：行标签与该行第一排胶囊顶部对齐。 */
.ai-filter-row{align-items:flex-start!important}
.ai-filter-row>.ai-filter-label{padding-top:6px;flex:none}
/* 景气评分“完整证据”：收起的折叠卡统一高度与间距。 */
#page-ai-news>details.card.ai-detail:not([open]){padding-top:14px!important;padding-bottom:14px!important;min-height:0!important}
/* 收盘复盘：“市场收盘”卡片自带标题，外层同名小标签隐藏。 */
#dw-mkt-review-body .dw-row:has(.dw-lead-card){display:block}
#dw-mkt-review-body .dw-row:has(.dw-lead-card)>.dw-row-k{display:none}
/* 市场 · 我的组合：第一行不画顶线；组合净值卡撑满一行。 */
#dw-mkt-mine-body>.dw-row:first-child{border-top:0}
#dw-mkt-mine-body .dw-tiles{grid-template-columns:minmax(0,1fr)!important}
/* 红利目标收益读数：数字统一顶部对齐（覆盖上一轮的底部对齐）。 */
.dividend-income{align-items:start!important}
@media(max-width:700px){
 /* 状态行换行后分隔竖线会落在行首：手机上去掉竖线，只靠间距区分。 */
 .editorial-layout .dw-strip-item+.dw-strip-item,.dw-strip-item+.dw-strip-item{border-left:0!important;padding-left:0!important}
 /* 表格、卡片标签、说明小字：避免单字孤行。 */
 td,th,small,.dw-tile-k,.muted,.ai-meta,.ru-heading,label{text-wrap:pretty}
}

/* 红利逐股表：未到价行的“公司”固定列与旁边单元格同为卡片底色，不再出现白色矩形接缝（2026-10-09）。 */
#company-research-table .company-identity{background:rgb(255,253,248)!important}
#company-research-table tr.entry-price_met .company-identity{background:rgb(238,248,242)!important}
#company-research-table thead .company-identity{background:rgb(255,253,248)!important}

/* ===== 全站精修第四轮（2026-10-09） ===== */
/* 市场温度、收盘复盘页内目录：与产业子页目录同一组件，放在子页内容上方。 */
.dw-mkt-toc{margin:0 0 16px!important}
/* 产业专题“当前判断与评分”：与卡片标题同级，不大于专题标题；上下留距。 */
.is-heading h2{font-size:17px!important;font-weight:650!important;line-height:1.4}
.is-heading{margin:26px 0 12px}
/* 评分方法：收起时是一枚胶囊按钮（同算力租赁页“看评分方法”），展开后才显示说明框。 */
details.is-method{border:0!important;padding:0!important;background:none!important;margin-top:12px}
details.is-method>summary{display:inline-flex;align-items:center;gap:6px;list-style:none;cursor:pointer;padding:4px 12px;border:1px solid rgb(221,215,201);border-radius:999px;font-size:13px;font-weight:600;color:rgb(14,26,40);background:rgb(255,253,248)}
details.is-method>summary::-webkit-details-marker{display:none}
details.is-method>summary::after{content:'›';color:rgb(108,118,130);transition:transform .2s}
details.is-method[open]>summary::after{transform:rotate(90deg)}
details.is-method[open]>:not(summary){margin-left:0}
details.is-method[open]{border:1px solid rgb(233,228,216)!important;border-radius:12px!important;padding:12px 16px 14px!important;background:rgb(255,253,248)!important}
details.is-method[open]>summary{border:0;padding:0 0 6px;background:none}
/* 外盘指数卡：涨跌幅统一在数字下一行。 */
.ai-market strong>span{display:block;margin-top:2px;font-size:13px}
/* 产业 · 今日晨报日期选择框：与首页日期选择框同一样式。 */
#ai-date-select{min-height:32px;padding:4px 30px 4px 12px;border:1px solid rgb(221,215,201);border-radius:8px;background:rgb(255,253,248) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236c7682' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 11px center;color:rgb(14,26,40);font:inherit;font-size:13px;font-variant-numeric:tabular-nums;cursor:pointer;-webkit-appearance:none;appearance:none}
#ai-date-select:focus-visible{outline:2px solid rgb(43,84,131);outline-offset:2px}
@media(max-width:640px){
 /* 回测净值图：最小宽度 900→640，一屏看到更多年份；右侧渐隐提示可横向滑动。 */
 #page-backtest .sxo-chart .bt-chart,#page-backtest [data-lab="out"]>.bt-chart{min-width:640px!important}
 #page-backtest .sxo-chart,#page-backtest [data-lab="out"]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),rgba(0,0,0,.12));mask-image:linear-gradient(90deg,#000 calc(100% - 40px),rgba(0,0,0,.12))}
 /* 红利逐股表：单元格顶对齐，数字列不折行，行高收紧。 */
 #company-research-table td{vertical-align:top}
 #company-research-table td.num{white-space:nowrap}
}
/* 首页“今天最新变化”：第一列板块名加宽且不换行（“美国就业、通胀与政策 10/8”等长名不再折成两行，2026-10-09）。 */
@media(min-width:641px){
 #home-main-changes .ru-board>summary{grid-template-columns:max-content minmax(0,1fr) auto 3.2em 12px!important}
 #home-main-changes .ru-board-name{white-space:nowrap;min-width:13.6em}
}
/* ===== 全站精修第五轮（2026-10-09） ===== */
/* AE 周报：原稿“>”引用改为左边线引用样式（与完整稿页一致）。 */
#ae-weekly-opinions blockquote{margin:6px 0;padding-left:12px;border-left:2px solid rgb(221,215,201);color:rgb(108,118,130);font-size:13px;line-height:1.7}
/* 今日最重要的变化：小标签改为全站中性标签（浅底圆角，无边框）。 */
.ai-tag{border:0!important;background:rgb(243,240,232)!important;border-radius:999px!important;padding:1px 8px!important;font-size:11px;vertical-align:1px}
/* 产业数据评分卡：说明行避免把最后一个数字单独挤到下一行。 */
.hd-cmp-score{text-wrap:pretty}
/* 北美云厂商季度表：不再把剩余宽度全给最后一列。 */
#dw-capex-quarterly table{width:auto;min-width:62%}
/* 十倍股候选表：第二列（行业）给足宽度，不把行业名拆成两行。 */
#cy-tenbagger table tr>:nth-child(2){min-width:6.5em}
@media(max-width:640px){
 /* 红利筛选胶囊：手机上一行横向滑动，不排成参差的三行。 */
 .cm-filter{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);padding-right:24px}
 .cm-filter::-webkit-scrollbar{display:none}
 .cm-filter>*{flex:none}
}

/* 龙虎榜：全市场与个股查询复用子页签角色。 */
.lhb-tabs>[role=tab]{font:inherit;font-size:14px;font-weight:600;padding:6px 14px;border:1px solid var(--ds-line);border-radius:999px;background:transparent;color:var(--ds-ink)}
.lhb-tabs>[role=tab][aria-selected=true]{background:var(--ds-accent-dark);color:white}
/* 手机字号大一号（2026-10-09 用户要求，正文约 14→15px）。
   iPhone/iPad（WebKit）用系统文字放大：只放大文字、不改坐标，图表指针读数不受影响；
   其他手机（Chromium 等）主内容区 zoom 1.07，按放大后宽度重排，不横向溢出（已实测）。页头与主导航不变。 */
@media(max-width:640px){main{zoom:1.07}}
@supports(-webkit-touch-callout:none){@media(max-width:640px){main{zoom:1}html{-webkit-text-size-adjust:107%;text-size-adjust:107%}}}

/* ===== 一处边界只画一条线（2026-10-10，ui-rules）。scripts/ui_check.mjs 检查“重复横线”。 ===== */
@media(min-width:681px){.ot-change-feed>.ot-event:nth-last-child(-n+2){border-bottom-color:transparent}}
/* 表格最后一行不画收尾线：全站没有四周格线的表格，后面接的块自带分隔线或留白。只取最后一个 tbody，分组表格各组之间的线保留。 */
main table>tbody:last-child>tr:last-child,main table>tbody:last-child>tr:last-child>:is(td,th){border-bottom-color:transparent!important}
/* 列表最后一项与外层块边线重叠 */
.ot-check-list>li:last-child,.ot-changes>.ot-event:last-child,.ot-change-feed>.ot-event:last-child,.ot-changes .ot-detail>.ot-event:last-child,.cyclical-credit .cc-item>.cc-evidence:last-child .cc-fact:last-child{border-bottom-color:transparent}
.ot-changes+.ot-detail{border-top-color:transparent}
/* 手机上龙虎榜表格每行改成卡片（整行一条下边线），格内不再画线。 */
@media(max-width:640px){.lhb-table td{border-bottom:0!important}}

/* 首页核心图谱导览（用户2026-10-12确认预览）：仅本入口使用展示标题，其他卡片规格保持。 */
html:not(#ds) :is(#page-home #home-chain-entry,#page-industry #dw-ai-chain).chain-guide{background:var(--ds-card);border:1px solid var(--ds-card-line);border-radius:var(--ds-r-card);box-shadow:0 4px 20px -14px rgba(14,26,40,.18)}
html:not(#ds) :is(#page-home #home-chain-entry,#page-industry #dw-ai-chain) .chain-guide-kicker{color:var(--ds-muted);font-size:10px;font-weight:600;line-height:1.2;letter-spacing:.16em}
html:not(#ds) :is(#page-home #home-chain-entry,#page-industry #dw-ai-chain) .chain-guide-mark{color:var(--ds-accent);font-size:17px;line-height:1}
html:not(#ds) :is(#page-home #home-chain-entry,#page-industry #dw-ai-chain) :is(#home-chain-title,#dw-ai-chain-title){color:var(--ds-ink);font-size:28px;font-weight:700;letter-spacing:-.035em;line-height:1.25}
html:not(#ds) :is(#page-home #home-chain-entry,#page-industry #dw-ai-chain) .chain-guide-desc{color:var(--ds-muted);font-size:14px;font-weight:400;line-height:1.7}
html:not(#ds) :is(#page-home #home-chain-entry,#page-industry #dw-ai-chain) .chain-guide-art{color:var(--ds-accent)}
html:not(#ds) :is(#page-home #home-chain-entry,#page-industry #dw-ai-chain) .chain-guide-action{background:var(--ds-accent-dark);color:#fff;border:1px solid var(--ds-accent-dark);border-radius:999px;font-size:14px;font-weight:600;line-height:1.3;text-decoration:none}
html:not(#ds) :is(#page-home #home-chain-entry,#page-industry #dw-ai-chain) .chain-guide-action span{font-size:20px;line-height:1}
html:not(#ds) :is(#page-home #home-chain-entry,#page-industry #dw-ai-chain) .chain-guide-action:focus-visible{outline:2px solid var(--ds-accent);outline-offset:4px}
@media(hover:hover) and (pointer:fine){html:not(#ds) :is(#page-home #home-chain-entry,#page-industry #dw-ai-chain) .chain-guide-action:hover{background:var(--ds-accent)}}
@media(max-width:640px){
 html:not(#ds) :is(#page-home #home-chain-entry,#page-industry #dw-ai-chain) :is(#home-chain-title,#dw-ai-chain-title){font-size:25px;line-height:1.3}
 html:not(#ds) :is(#page-home #home-chain-entry,#page-industry #dw-ai-chain) .chain-guide-kicker{font-size:9px}
 html:not(#ds) :is(#page-home #home-chain-entry,#page-industry #dw-ai-chain) .chain-guide-desc{font-size:14px}
 html:not(#ds) :is(#page-home #home-chain-entry,#page-industry #dw-ai-chain) .chain-guide-action{font-size:13px}
}

/* ===== 阅读排版（2026-10-18，ui-review-20261018.1）：长文限宽、正文字号与对比度、刷新动作统一 ===== */
/* 长段落每行约 50 个汉字：正文 15px/1.8，最宽 820px；表格、图表不受影响，仍占满卡片。 */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.mi-copy,.ai-compare-event,.ai-prose,.ot-report-section>p,.cy-body>p,.ru-news-body>p,.dk-body>p) {
  max-width: 820px;
}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) :is(.mi-copy,.ai-compare-event,.ru-news-body>p) {
  font-size: 15px; line-height: 1.8;
}
/* 晨报完整解读：外层 .ai-detail 是 12px 的说明字号，正文与前后日对照要回到正文字号（手机原来反而比桌面大）。 */
html:not(#ds) main #ai-full-reading :is(.ai-prose,.ai-compare p,.ai-compare-content,.ai-compare-event) {
  font-size: 15px; line-height: 1.85;
}
html:not(#ds) main #ai-full-reading .ai-compare-event h5 { font-size: 15px; }
/* 页头“刷新视图”只保留一种样式：标题旁的文字按钮（市场页原为描边胶囊）。 */
html:not(#ds) main>section .dw-head :is([data-dw-refresh],[data-dw-industry-refresh]) {
  border: 0; background: none; box-shadow: none; padding: 0; min-height: 0;
  font-size: 14px; font-weight: 400; color: var(--ds-accent); cursor: pointer;
  text-decoration: underline; text-underline-offset: 3px; border-radius: 0;
}
html:not(#ds) main>section .dw-head :is([data-dw-refresh],[data-dw-industry-refresh]):disabled { color: var(--ds-muted); text-decoration: none; cursor: default; }
html:not(#ds) main>section .dw-head:has([data-dw-refresh]) { justify-content: flex-start; align-items: baseline; gap: 14px; flex-wrap: wrap; }
/* 手机主导航按钮至少 44px 高，便于点按。 */
@media(max-width:640px){ .dw-areas [data-dw-area] { min-height: 44px; } }

/* 我的组合未登录示例（2026-10-18）：虚构数据，只说明登录后能看到什么。 */
html:not(#ds) #page-risk .pp-sample{margin-top:20px;border-top:1px solid var(--ds-line);padding-top:14px}
html:not(#ds) #page-risk .pp-sample-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}
html:not(#ds) #page-risk .pp-sample-kpis div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--ds-line);border-radius:var(--ds-r-panel)}
html:not(#ds) #page-risk .pp-sample-kpis span{font-size:12px;color:var(--ds-muted)}
html:not(#ds) #page-risk .pp-sample-kpis b{font-size:18px;font-variant-numeric:tabular-nums}
html:not(#ds) #page-risk .pp-sample .up{color:#c8503c}
@media(max-width:640px){html:not(#ds) #page-risk .pp-sample-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* AE 观点周报：分隔线后紧跟自带上边线的折叠块时只留一条线（2026-10-18）。 */
#ae-weekly-opinions hr:has(+ details){display:none}

/* ===== 组件分级（2026-10-18，外部评审）：页内分栏用分段控件，筛选与区间仍是胶囊，标签是浅底小胶囊，动作是按钮或文字链。 ===== */
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .dw-subtabs {
  background: var(--ds-tag-bg); padding: 4px; border-radius: 12px; gap: 4px; border: 1px solid var(--ds-line);
}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .dw-subtabs [role=tab] {
  border: 0; border-radius: 9px; background: transparent; color: var(--ds-muted); font-weight: 600; box-shadow: none;
}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .dw-subtabs [role=tab]:hover { color: var(--ds-ink); }
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .dw-subtabs [role=tab][aria-selected=true] {
  background: var(--ds-card); color: var(--ds-ink); border: 0; box-shadow: 0 1px 3px rgba(14,26,40,.14), 0 0 0 1px rgba(14,26,40,.04);
}

/* ===== 简约收尾（2026-10-19，site-ui-20261019.1）：减装饰，不改结构与文字。只改样式，不增加请求。 ===== */
/* 1. 动效：滚动显现会让首屏之外的内容先是空白，去掉；切页只留很短的淡入，不再上浮；卡片、按钮悬停不再上浮投影。 */
.aw-pre,.aw-pre.aw-in{opacity:1!important;transform:none!important;transition:none!important}
@keyframes aw-page{from{opacity:.4}}
main>section:not([hidden]){animation-duration:.18s}
@media(hover:hover) and (pointer:fine){
 .card:hover,.dw-card:hover{box-shadow:var(--ds-shadow)!important;border-color:var(--ds-card-line)!important}
 .ru-root .ru-feed-card:hover,.ru-root .ru-item:hover{transform:none!important}
 .btn:hover:not(:disabled){transform:none!important;box-shadow:none!important}
 .ru-root .ru-chip:hover{transform:none}
}
/* 2. 卡片阴影收轻：只留一层很淡的投影，靠细边分层。 */
:root{--ds-shadow:0 1px 2px rgba(35,27,12,.05);--aw-shadow:var(--ds-shadow);--aw-shadow-up:var(--ds-shadow)}
.editorial-layout .dw-slot,.dw-slot,.dw-section{box-shadow:var(--ds-shadow)}
/* 3. 浅色填充统一：原来的深一档米灰底（读数小格、外盘指数、板块温度读数、当前判断等）改为与标签同一浅沙色。 */
:root{--card2:var(--ds-tag-bg)}
html:not(#ds) main .ai-market{background:transparent}
/* 4. 渐变底改纯色：结论条、栏目标题条不再用渐变。 */
html:not(#ds) main :is(.dw-conclusion,.dw-lead-card){background:var(--ds-tag-bg)}
html:not(#ds) main .dw-lead-card{background:transparent}
.dw-section-heading,.dw-section>summary,.editorial-layout .dw-slot>summary{background:none!important}
/* 5. 页面标题下的铜色短横去掉；“刷新视图”在市场页也回到文字按钮（原规则被按钮胶囊的高优先级盖住）。 */
.editorial-layout .dw-head h2::after{display:none}
.editorial-layout .dw-head h2{padding-bottom:0}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) .dw-head :is([data-dw-refresh],[data-dw-industry-refresh]){
 border:0;background:none;box-shadow:none;padding:0;min-height:0;border-radius:0;
 font-size:14px;font-weight:400;color:var(--ds-accent);text-decoration:underline;text-underline-offset:3px}
/* 6. 宏观与长期：页头与市场、产业、日历一致，不再是一张卡片；页内目录用同一种胶囊。 */
html:not(#ds) main>section#page-cycles:not(#page-admin):not(#page-kb) .cy-hero{background:none;border:0;box-shadow:none;padding:0;margin:18px 0 20px}
html:not(#ds) main>section#page-cycles:not(#page-admin):not(#page-kb) .cy-hero h1{font-size:28px;font-weight:700;line-height:1.2;letter-spacing:normal;margin:4px 0 8px}
@media(max-width:640px){html:not(#ds) main>section#page-cycles:not(#page-admin):not(#page-kb) .cy-hero h1{font-size:22px}html:not(#ds) main>section#page-cycles:not(#page-admin):not(#page-kb) .cy-hero{margin:10px 0 16px}}
html:not(#ds) main>section#page-cycles:not(#page-admin):not(#page-kb) .cy-hero p{color:var(--ds-muted);font-size:14px}
html:not(#ds) main>section#page-cycles:not(#page-admin):not(#page-kb) .cy-section-nav a{border:1px solid var(--ds-line);border-radius:999px;padding:4px 12px;font-size:13px;color:var(--ds-ink);background:transparent;text-decoration:none}
@media(hover:hover) and (pointer:fine){html:not(#ds) main>section#page-cycles .cy-hero.card:hover{box-shadow:none!important}}
/* 7. 卡片里不套卡片：卡内的卡片去掉底色与投影，只留细边面板。 */
html:not(#ds) main :is(.card,.dw-card) :is(.card,.dw-card){background:transparent!important;box-shadow:none!important;border-color:var(--ds-line)!important;border-radius:var(--ds-r-panel)!important}
/* 8. 偏色底改中性：琥珀提示条、淡紫承接卡、浅蓝前后对比、偏绿合计行与白底表格。 */
html:not(#ds) main .notice{background:var(--ds-tag-bg);border-left-color:var(--ds-line);color:var(--ds-ink)}
html:not(#ds) main .dt-wrap{background:transparent}
html:not(#ds) main .ai-compare{color:var(--ds-ink);background:transparent;border-left:2px solid var(--ds-line);border-radius:0;padding:4px 0 4px 16px}
html:not(#ds) main .ai-compare-events{gap:0}
html:not(#ds) main .ai-compare-event{background:transparent;border:0;border-top:1px solid var(--ds-line);border-radius:0;padding:12px 0}
html:not(#ds) main .ai-compare-event:first-child{border-top:0;padding-top:4px}
html:not(#ds) main .hd-total>td{background:var(--ds-tag-bg)}
html:not(#ds) main .hd-table table{background:transparent}
/* 9. 折叠区里的正文不再继承全局“details p 小号灰字”（晨报完整解读正文原为 12px 灰）。 */
html:not(#ds) main details :is(.ai-prose,.ai-compare,.ai-compare-content,.ai-compare-event,.ru-news-body,.cy-body,.dk-body,.ot-report-section) p{font-size:inherit;color:inherit}
html:not(#ds) main #ai-full-reading .ai-prose{color:var(--ds-ink)}
/* 10. 链接统一链接色（产业数据、经营验证里原为绿色，易与“下跌”混淆）。 */
html:not(#ds) main :is(.hd-section,.sf-section) a{color:var(--ds-accent)}
/* 11. 表格：表头不再加字距；表体行标题与单元格同号；数字列右对齐，文字列左对齐。 */
html:not(#ds) main th{letter-spacing:normal}
html:not(#ds) main>section:not(#page-admin):not(#page-kb) tbody th{font-size:13px}
html:not(#ds) main .sf-table :is(th,td):not(:first-child){text-align:right}
html:not(#ds) main .dt-ind td.num{text-align:left}
html:not(#ds) main .pw-supp-table td{text-align:left}
html:not(#ds) main .pw-supp-table th:not(:first-child){text-align:left}
html:not(#ds) main .pw-supp-table td small{margin-left:6px}
/* 12. 细节对齐：页脚与内容左缘对齐；AE 周报“阅读完整稿”靠右贴日期；首页六板块卡“PE 数值”不拆行；国债两栏顶对齐。 */
.wrap>footer{margin-left:0!important;margin-right:0!important}
#ae-weekly-opinions .ae-full-report{margin-left:auto}
#home-ai-today .act-dom span{text-wrap:pretty}
html:not(#ds) main .ry-grid{align-items:start}
@media(max-width:640px){
 /* 手机：卡内面板收窄内边距，正文多留宽度。 */
 html:not(#ds) main :is(.card,.dw-card) :is(.card,.dw-card):not(.dr-fold>.card):not(.dw-morning-markets>.card){padding:14px!important}
 html:not(#ds) main .ai-compare{padding-left:12px}
}
/* 页头“关注公司”入口（2026-10-20，focus-entry-20261020.1）：与账户按钮同一外观；≤640px 只留图标（无障碍名称仍为“关注公司”）。 */
.aloha-brand-actions a#header-focus{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:42px;min-width:42px;padding:0 12px 0 10px;border:1px solid rgba(223,235,248,.48);border-radius:11px;background:rgba(255,255,255,.08);color:#edf3fa;font-size:13px;font-weight:600;letter-spacing:.04em;white-space:nowrap;text-decoration:none;box-sizing:border-box}
.aloha-brand-actions a#header-focus:hover{background:rgba(255,255,255,.17)}
.aloha-brand-actions a#header-focus:focus-visible{outline:2px solid #fff;outline-offset:3px}
.aloha-brand-actions a#header-focus svg{flex:none;pointer-events:none}
.aloha-brand-actions a#header-focus{border-radius:999px}
@media(max-width:640px){.aloha-brand-actions a#header-focus{width:40px;height:40px;min-width:0;padding:0}.aloha-brand-actions a#header-focus .focus-label{display:none}.aloha-brand-actions a#header-focus svg{width:18px;height:18px}}
/* 手机 360—420：多一个图标后仍排一行——标志、间距、搜索按钮各收几像素，账户按钮保留“登录/账户”文字。 */
@media(max-width:420px){
 .aloha-brand.site-search-header{column-gap:4px}
 .aloha-brand.site-search-header .aloha-brand-mark{width:32px;height:32px}
 .aloha-brand.site-search-header .aloha-brand-copy{padding-left:9px}
 .aloha-brand.site-search-header h1{letter-spacing:.04em}
 .aloha-brand.site-search-header .site-search-trigger{min-width:38px;width:38px;height:38px;flex:0 0 38px}
 .aloha-brand.site-search-header .aloha-brand-actions{gap:4px}
 .aloha-brand.site-search-header .aloha-brand-actions a#header-focus{width:36px;height:38px}
 .aloha-brand.site-search-header .aloha-brand-actions button#header-account{height:38px;padding:0 7px 0 5px;gap:2px}
}
@media(max-width:380px){.aloha-brand.site-search-header .aloha-brand-actions button#header-account{width:38px;min-width:0;padding:0;justify-content:center}.aloha-brand.site-search-header #header-account .acct-label{display:none}}
@media print{.aloha-brand-actions a#header-focus{display:none}}

/* 季报解读：标题、说明、数字、控件与边界沿用统一角色。 */
html:not(#ds) #page-earnings :is(.er-bar,.er-meta,.er-sort-note,.er-intro,.er-foot,.er-base,.er-metric dt,.er-metric small,.er-comparison small,.er-table small,.er-table time,.er-day,.er-day-rest,.er-exch-hosts,.er-qa small,.er-follow-quote,.er-follow-next){font-size:12px;font-weight:400;line-height:1.5;color:var(--ds-muted)}
html:not(#ds) #page-earnings :is(.er-src,.er-sources){font-size:12px;font-weight:400;line-height:1.5;color:var(--ds-muted)}
html:not(#ds) #page-earnings a{color:var(--ds-accent)}
html:not(#ds) #page-earnings .er-name a{color:var(--ds-ink)}
html:not(#ds) #page-earnings :is(.er-comparison,.er-checks,.er-extra-numbers,.er-exch-head,.er-follow-sum,.er-follow-said){font-size:13px;line-height:1.6;color:var(--ds-ink)}
html:not(#ds) #page-earnings .er-research p,html:not(#ds) #page-earnings .er-method p,html:not(#ds) #page-earnings .er-qa-a p{font-size:13px;line-height:1.7;color:var(--ds-ink)}
html:not(#ds) #page-earnings .er-headline{font-size:15px;font-weight:650;line-height:1.55;color:var(--ds-ink)}
html:not(#ds) #page-earnings .er-label{font-size:12px;font-weight:600;color:var(--ds-muted)}
html:not(#ds) #page-earnings .er-point-title,html:not(#ds) #page-earnings .er-follow-ref{font-size:13px;font-weight:600;color:var(--ds-ink)}
html:not(#ds) #page-earnings .er-metric dd{font-size:15px;font-weight:650;line-height:1.6}
html:not(#ds) #page-earnings :is(.er-find input,.er-find select,.er-period select){font:inherit;font-size:13px;color:var(--ds-ink);background:var(--ds-card);border:1px solid var(--ds-line);border-radius:var(--ds-r-panel);padding:6px 10px;min-height:34px}
html:not(#ds) #page-earnings .er-reset{font:inherit;font-size:13px;font-weight:400;color:var(--ds-accent);border:0;background:none;padding:4px 0;cursor:pointer}
html:not(#ds) #page-earnings .er-verdict{background:var(--ds-tag-bg)}
html:not(#ds) #page-earnings .er-verdict[data-score="0"]{color:var(--ds-muted)}
html:not(#ds) #page-earnings .er-metrics,html:not(#ds) #page-earnings .er-research,html:not(#ds) #page-earnings .er-row+.er-row,html:not(#ds) #page-earnings .er-days li+li{border-top:1px solid var(--ds-line)}
html:not(#ds) #page-earnings :is(.er-filter,.er-reset,input,select):focus-visible{outline:2px solid var(--ds-accent);outline-offset:3px}
@media(max-width:640px){
 html:not(#ds) #page-earnings .er-filter{padding:6px;font-size:12px;min-height:44px;white-space:nowrap}
 html:not(#ds) #page-earnings .er-table:not(.er-ind-table) td{border:0}
 html:not(#ds) #page-earnings .er-table:not(.er-ind-table) tr+tr{border-top:1px solid var(--ds-line)}
 html:not(#ds) #page-earnings .er-table td[data-label]::before{color:var(--ds-muted);font-size:12px}
}


/* 手机产业页图谱入口收短（2026-10-24，investor-workflow）：首页导览大卡保持原样。 */
@media(max-width:640px){
 html:not(#ds) #page-industry #dw-ai-chain.chain-guide.card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 12px;padding:14px}
 html:not(#ds) #page-industry #dw-ai-chain .chain-guide-art,
 html:not(#ds) #page-industry #dw-ai-chain .chain-guide-desc{display:none}
 html:not(#ds) #page-industry #dw-ai-chain .chain-guide-copy{min-width:0}
 html:not(#ds) #page-industry #dw-ai-chain .chain-guide-kicker{margin:0 0 3px}
 html:not(#ds) #page-industry #dw-ai-chain #dw-ai-chain-title{font-size:18px;line-height:1.3;letter-spacing:normal}
 html:not(#ds) #page-industry #dw-ai-chain .chain-guide-action{padding:6px 12px;white-space:nowrap}
 html:not(#ds) #page-industry #dw-ai-chain .dw-ind-chain{grid-column:1/-1;padding-top:6px}
}
