/* =============================================================================
   阿洛哈 · 研报编辑风主题层 v4 (aloha-theme.css)
   -----------------------------------------------------------------------------
   设计原则：只改皮肤，不改结构。本文件加载在所有样式之后，通过重定义
   设计变量与组件配色实现全站换肤；不改动任何布局、JS 与数据语义。
   品牌锚点：藏青 #16334b / 沙 #f4ead7 / 珊瑚朱红 #d77c68 / 金 #d7b677。
   v3（2026-09-23 用户补充）：上扬箭头贴合 A；珊瑚色用于页顶饰带与主标题细线；
   v4 用户补充：晨温大字改中性深黑，单色趋势线保留藏青；箭头起点贴左斜线下三分之一。
   红涨绿跌、区间色标与热力图保持。

   v2 修订（2026-09-22 用户反馈）：
   ① 全站统一使用原有字体栈（黑体系），不再引入衬线标题；
   ② 移动端报头副题不再断行（去掉英文前缀），报头布局加守护；
   ③ 选中态去掉金色下衬线，改为纯藏青填充；
   ④ 数字千分位格式化：用户已明确暂缓（2026-09-22），无伴生脚本；
   ⑤ logo 重设计由 HTML 内 SVG 直接替换（见 index.html 补丁）。

   约定：
   --accent          交互主色（链接 / 选中态 / 进度）：深海青
   --ink             标题墨色：藏青
   --gold            品牌金，仅装饰线与强调，不用于交互选中态
   数据色约定不变：红涨 (#c23a2b) / 绿跌 (#0f7a5c) / 琥珀警示；
   板块温度计色标 (.mb-*) 与温度渐变条 (.bar) 是数据编码，不在本文件改动范围。
   ============================================================================= */

/* ------------------------------------------------------------------ 1. 设计变量 */
:root {
  --bg: #f5f4ef;            /* 暖纸底：呼应站徽沙滩 */
  --card: #ffffff;
  --card2: #f2f0e9;         /* 沙色内衬，替代原冷灰 */
  --line: #e5e2d8;          /* 沙调发丝线 */
  --txt: #242a33;           /* 正文墨 */
  --sub: #6f7276;
  --red: #c23a2b;           /* 涨 / 错误（A股红涨绿跌保持） */
  --green: #0f7a5c;         /* 跌 */
  --amber: #96660f;         /* 警示与边界说明 */
  --blue: #0e6259;          /* 兼容名：全站交互主色 → 深海青 */
  --accent: #0e6259;
  --ink: #16334b;           /* 标题藏青（站徽同源） */
  --brand-rise: #d77c68;    /* 品牌上扬曲线与装饰，不作为行情数据色 */
  --gold: #d7b677;          /* 品牌金，装饰与强调线 */
  --gold-ink: #8a6d1f;      /* 金的可读文字版 */
  --accent-tint: #edf4f2;   /* 海青的 8% 内衬 */
  --accent-line: #c8ddd8;   /* 海青调边框 */
  --font-ui: -apple-system, "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei",
             "Helvetica Neue", sans-serif;
  --shadow-card: 0 1px 2px rgba(22, 51, 75, .04), 0 6px 18px -6px rgba(22, 51, 75, .06);
}

/* ------------------------------------------------------------------ 2. 基础与底色 */
body {
  font-family: var(--font-ui);
  background:
    linear-gradient(180deg, rgba(215, 182, 119, .07), rgba(215, 182, 119, 0) 220px),
    var(--bg);
}
/* 页顶品牌色带：藏青 → 珊瑚朱红 → 金，3px，仅为品牌装饰 */
body::before {
  content: "";
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, #16334b 0 34%, var(--brand-rise) 34% 67%, #d7b677 67% 100%);
  z-index: 60;
  pointer-events: none;
}
footer { color: var(--sub); letter-spacing: .02em; }
footer a { color: var(--gold-ink); }
::selection { background: #cfe5e1; color: var(--ink); }

/* 文字全局：统一字体，不再有任何衬线覆盖 */
.muted, .stamp { color: var(--sub); }
.badge { background: var(--accent-tint); color: var(--accent); }
a { color: var(--accent); }
a:hover { color: #0a4c46; }

/* ------------------------------------------------------------------ 3. 报头与导航 */
/* 报头：单行副题，任何宽度不断行 */
.aloha-brand { margin-top: 14px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.aloha-brand h1 {
  color: var(--ink);
  letter-spacing: .02em;
  line-height: 1.3;
  white-space: nowrap;
}
.aloha-brand .stamp {
  color: #63817b;
  letter-spacing: .04em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  display: block;
}

/* 导航：分组药丸弱化为沙色托盘，活动钮纯藏青填充（无装饰线） */
#mainnav .nav-btns { background: #ebe9e1; border-color: var(--line); border-radius: 12px; }
#mainnav button { color: #4b5157; font-weight: 500; }
#mainnav button:hover { background: #e0ddd2; color: var(--ink); }
#mainnav button.on,
#mainnav button.on:hover {
  background: var(--ink);
  color: #fff;
  font-weight: 600;
}
#mainnav .nav-label { color: var(--gold-ink); letter-spacing: .14em; }
nav#mainnav { border-bottom: 1px solid rgba(229, 226, 216, .65); }

/* 大区页签（dw-areas）与子页签：同一藏青语言，选中态无装饰线 */
.dw-mode #mainnav .dw-areas button.on { background: #e3ece9; color: var(--ink); font-weight: 650; }
.dw-subtabs { background: #e9e7df; border-color: #d9d6ca; }
.dw-subtabs [role=tab] { background: #dfdcd0; color: #40525c; box-shadow: inset 0 0 0 1px #bfc7bd; }
/* 选中态：显式压掉站点原有金色下衬线（workspace-layout.css 的 inset 金线），纯藏青填充 */
.dw-subtabs [role=tab][aria-selected=true] {
  background: var(--ink);
  color: #fff;
  box-shadow: none;
}

/* ------------------------------------------------------------------ 4. 卡片体系 */
.card, .dw-card {
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: var(--shadow-card);
  transition: border-color .25s ease;
}
.card:hover { border-color: #d6d2c4; }

/* 段落锚（一 / 二 / 三……）：藏青上规则线 + 编号章头（统一黑体） */
.page-anchor {
  color: var(--ink);
  border-top: 1px solid var(--ink);
  padding-top: 16px;
}
.page-anchor-no { background: var(--ink); color: #fff; }

/* 结论条 / 导语块：海青左规线 */
.dw-conclusion { border-left-color: var(--accent); background: #eef4f2; }
.dw-longterm-intro { border-left-color: var(--accent); }
.sentiment-reading { background: var(--accent-tint); }
.ai-insight { border-left-color: #a9c9c3; }

/* 卡片内标题：藏青加重，不换字体 */
h2, .dw-head h2, .dw-section-heading h2, .dw-section-title h2, h3 { color: var(--ink); }
h2 { font-size: 17px; letter-spacing: .01em; }
h3 { font-weight: 650; }
/* 主页面标题的细规线呼应 Logo，不给正文和业务数值铺红底。 */
.dw-head h2 { border-left: 3px solid var(--brand-rise); padding-left: 10px; }
.kicker, .dw-kicker, .ai-kicker, .ai-section-label { color: var(--gold-ink); }

/* ---------------------------------------------------------------------------
   5. 数据大字：黑体 + 表格数字 + 藏青；
   数值内容与格式沿用现行脚本，不新增千分位处理 */
.value, .small-value, .ms-state-value, .ms-gauge-value, .ms-action-value,
.dw-number, .dw-tile strong, .dw-tile-muted strong, .dw-morning-temp strong,
.dw-ai-temp-item b, .dw-cycle-tag b, .dw-turnover > strong,
.dr-metric strong, .ai-metric strong, .ai-factor-value strong,
.ai-market strong, .dw-position b {
  font-variant-numeric: tabular-nums lining-nums;
  color: var(--ink);
}
.value { font-weight: 700; letter-spacing: -.01em; }
.ms-gauge-value { color: var(--ms-tone, var(--ink)); }

/* ------------------------------------------------------------------ 6. 按钮 */
.btn {
  background: var(--card);
  border: 1px solid #ccd9d5;
  color: var(--ink);
  border-radius: 8px;
  font-weight: 600;
  box-shadow: 0 1px 0 rgba(22, 51, 75, .03);
}
.btn:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-tint); }
.btn-ghost { color: var(--sub); border-color: var(--line); }
.btn:disabled { opacity: .45; }
button:focus-visible, a:focus-visible, .btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.dw-inline-button { color: var(--accent); }
details > summary { color: var(--accent); }
.st-more summary { color: var(--accent); }

/* ------------------------------------------------------------------ 7. 表格 */
th { background: var(--card2); color: var(--ink); font-weight: 600; letter-spacing: .03em; font-size: 12px; }
tbody tr:hover td { background: #faf9f4; }
.dr-table td:first-child, .dr-table th:first-child { background: var(--card); }
tbody tr:hover td:first-child { background: #f7f5ee; }
.ms-tg { background: var(--card2); }
tr.ms-current td { background: #e8f0ee !important; }
th { border-bottom: 1px solid var(--line); }

/* 细滚动条 */
.scroll, .dr-table, .dw-table-wrap, .ai-table-wrap {
  scrollbar-width: thin;
  scrollbar-color: #c9c5b8 transparent;
}
.scroll::-webkit-scrollbar, .dr-table::-webkit-scrollbar,
.dw-table-wrap::-webkit-scrollbar, .ai-table-wrap::-webkit-scrollbar { width: 8px; height: 8px; }
.scroll::-webkit-scrollbar-thumb, .dr-table::-webkit-scrollbar-thumb,
.dw-table-wrap::-webkit-scrollbar-thumb, .ai-table-wrap::-webkit-scrollbar-thumb {
  background: #c9c5b8; border-radius: 8px; border: 2px solid var(--card);
}

/* ------------------------------------------------------------------ 8. 提示与状态 */
.notice { color: var(--gold-ink); background: #f7f1df; border-left: 3px solid var(--gold); border-radius: 8px; }
.ai-alert { background: #f7f1df; border-color: #e6d9b4; color: var(--gold-ink); }
.dr-pill { background: #f7f1df; color: var(--gold-ink); }
.dr-stale-tag { background: #f7f1df; color: var(--gold-ink); }
.meter { background: #e9e6dc; }
.meter span { background: var(--accent); }
.ai-download { background: var(--accent); }
.ai-download:hover { background: #0a4c46; }
.up { color: var(--red); }
.down { color: var(--green); }

/* 红涨绿跌并行号（decision 区硬编码色统一） */
.dw-up, .dw-mkt-feature { color: #c8503c; background: none; }
.dw-mkt-feature { background: rgba(194, 58, 43, .08); }
.dw-down { color: #1a8571; }
.dw-spark { color: #8f9a94; }
.dw-spark-up { color: var(--red); }
.dw-spark-down { color: var(--green); }

/* ------------------------------------------------------------------ 9. 工作区组件 (dw-*) */
.dw-section { border-radius: 16px; }
.dw-section-heading, .dw-section > summary {
  background: linear-gradient(100deg, #eef2f0, #fbfbf9);
  border-bottom: 1px solid var(--line);
}
.dw-section .dw-section-number { background: #e0e9e6; color: var(--ink); }
.dw-section-heading p { color: var(--sub); }
.dw-lead-card { border-top-color: var(--ink); background: linear-gradient(135deg, #fff, #f4f8f6); }
.dw-focus { border-top-color: #2f8577; }
.dw-focus:last-child { border-top-color: #354e6b; }
.dw-ref, .dw-line-label, .dw-tag { color: var(--accent); background: var(--accent-tint); }
.dw-journal { color: var(--accent); }
.dw-journal-due { border-left-color: var(--red); }
.dw-health-table tr.dw-h-ok td b { color: #4a5568; }
.dw-badge-late { color: var(--accent); background: var(--accent-tint); }
.dw-slot-now { border-color: var(--accent); box-shadow: 0 0 0 2px rgba(14, 98, 89, .12); }
.dw-section > summary .dw-slot-flag { background: var(--accent); }
.dw-mode [data-job].btn, .dw-mode .btn[data-job] { border-color: var(--accent-line); background: var(--accent-tint); color: var(--accent); }
.dw-btn-legend .dw-legend-collect { border-color: var(--accent-line); background: var(--accent-tint); }
.dw-tile-link:hover { border-color: var(--accent); }
.dw-headline { border-left: 2px solid var(--gold); }
#dw-detail-ai-news > summary { border-bottom: 2px solid var(--line); }

/* 晨温卡 */
.dw-morning-temp { border-color: #ccdcd7; background: linear-gradient(120deg, #eef4f2, #fff); }
.dw-morning-temp strong { color: #242424; }
.dw-morning-temp .dw-morning-temp-spark { color: var(--ink); }
.dw-ai-news li { border-left-color: #a9c9c3; }
.dw-ai-changes > summary { color: var(--accent); }
.dw-watch-line strong b { color: var(--accent); }
.dw-today-nav .btn.dw-now, .dw-slot-nav .btn.dw-now { border-color: var(--accent); background: var(--accent-tint); }
.dw-cycle-tag b { color: var(--accent); }
.dw-cycle-tag:hover { border-color: var(--accent); }
.dw-topic-button { color: var(--accent); background: var(--accent-tint); border-color: var(--accent-line); }

/* 状态胶囊按钮系列 */
.aloha-range button[aria-pressed="true"] { background: var(--accent); color: #fff; }
.mb-tools button.on { background: var(--accent); border-color: var(--accent); color: #fff; }
.mb-tools button:hover:not([disabled]) { border-color: var(--accent); color: var(--accent); }

/* ------------------------------------------------------------------ 10. 各模块紫色残留清除 */
.sentiment-aux { background: #f5f4ee; }
.sentiment-raw-unit { color: var(--sub); }

#page-ai-news { --ai-accent: #0e6259; --ai-tint: #edf4f2; }
#page-ai-news .update-btn { background: var(--accent-tint); border-color: var(--accent-line); color: var(--accent); }
.ai-head { background: linear-gradient(120deg, #fff 30%, #eef4f2); border-top-color: var(--accent); }
.ai-compare { border-left-color: #a9c9c3; }
.ai-table th { background: var(--accent-tint); color: #2d5e56; }
.ai-prose { color: #33373f; }

.st-rule { border-top-color: var(--ink); }
.st-pillar { background: var(--card2); }
.st-pillar-k { color: var(--ink); }
.lab-grid fieldset { border-color: var(--line); }
.lab-grid legend { color: var(--ink); }
.lab-grid select { background: var(--card); }

.ms-action { border-color: #b9c3bd; }
.ms-gauge { border-top-color: var(--ms-tone); }

.de-panel { border-color: var(--line); }

#page-cycles .cy-hero h1, .cy-page h1 { color: var(--ink); }

.de-full, .de-ok-count { color: var(--accent); }

.dr-metric { background: var(--card2); }
.dr-index-day { border-color: var(--line); }
.dr-controls select, .dr-controls input, .dr-date-filter select,
.lab-grid select, .ai-select {
  border-color: #cfc9b9;
  background: var(--card);
}
.dr-cutoff { background: var(--card2); }
.dr-status-box { background: var(--card2); }
.dr-flows { border-bottom-color: var(--line); }
.dr-state { color: var(--green); }
.pending .dr-state { color: var(--amber); }

/* ------------------------------------------------------------------ 11. 空状态与细节 */
.empty { color: var(--sub); }
.log strong { color: var(--ink); }
.chart { border-color: var(--line); }
.toolbar .job { color: var(--sub); }
.dw-status { color: var(--sub); }

/* ------------------------------------------------------------------ 12. 移动端排版守护 */
@media (max-width: 640px) {
  .aloha-brand { gap: 12px; }
  .aloha-brand h1 { font-size: clamp(20px, 5.6vw, 26px); white-space: nowrap; }
  .aloha-brand .stamp {
    font-size: 11px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .aloha-brand-copy { min-width: 0; }
}

/* ------------------------------------------------------------------ 13. 打印与减动效偏好 */
@media print {
  body::before { display: none; }
  body { background: #fff; }
  .card, .dw-card { box-shadow: none; }
}
@media (prefers-reduced-motion: reduce) {
  .card, .btn, #mainnav button { transition: none; }
}
