
:root {
  color-scheme: light;
  --g-blue:#1A73E8; --g-blue-soft:#E8F0FE;
  --g-red:#EA4335; --g-red-soft:#FCE8E6;
  --g-yellow:#F9AB00; --g-yellow-soft:#FEF7E0; --g-amber-ink:#B06B00;
  --g-green:#1E8E3E; --g-green-soft:#E6F4EA;
  --g-purple:#9334E6; --g-purple-soft:#F3E8FD;
  --g-teal:#12B5CB; --g-teal-soft:#E1F5F8; --g-teal-ink:#0B7C8C;
  --ink:#202124; --ink-2:#3C4043; --muted:#5F6368;
  --line:#DADCE0; --line-2:#E8EAED;
  --surface:#fff; --surface-2:#F8F9FA; --surface-3:#F1F3F4;
  --shadow-1:0 1px 2px 0 rgba(60,64,67,.10),0 1px 3px 1px rgba(60,64,67,.06);
  --shadow-2:0 1px 3px 0 rgba(60,64,67,.14),0 4px 8px 3px rgba(60,64,67,.08);
  --radius:12px; --radius-lg:16px; --pill:999px;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--surface-2);
  color: var(--ink);
  font-family: "Google Sans", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 15px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
.mono { font-family: "Roboto Mono", ui-monospace, Menlo, monospace; font-variant-numeric: tabular-nums; }
a { color: var(--g-blue); text-decoration: none; overflow-wrap: anywhere; }
a:hover { text-decoration: underline; }

.appbar {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  min-height: 64px;
  padding: 12px 32px;
  border-bottom: 1px solid var(--line-2);
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(12px);
}
.appbar-brandline { display: flex; align-items: center; min-width: 0; gap: 10px; }
.brand { display: flex; align-items: center; gap: 12px; color: var(--ink); font-weight: 500; }
.brand:hover { text-decoration: none; }
.logo-dots { display: inline-grid; grid-template-columns: 9px 9px; gap: 4px; }
.logo-dots i { width: 9px; height: 9px; border-radius: 50%; display: block; }
.logo-dots i:nth-child(1) { background: var(--g-blue); }
.logo-dots i:nth-child(2) { background: var(--g-red); }
.logo-dots i:nth-child(3) { background: var(--g-yellow); }
.logo-dots i:nth-child(4) { background: var(--g-green); }
.brand-name { font-size: 17px; letter-spacing: .2px; }
.brand-name b { font-weight: 700; }
.site-trail-sep { color: var(--line); }
.site-trail { color: var(--muted); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.site-trail:hover { color: var(--g-blue); text-decoration: none; }
.site-meta { display: flex; align-items: center; gap: 8px; color: var(--muted); font: 500 12px/1.2 "Roboto Mono", monospace; white-space: nowrap; }
.site-meta-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--g-green); }
.navtabs { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.navtabs a {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  border: 1px solid var(--line);
  border-radius: var(--pill);
  background: var(--surface);
  color: var(--ink-2);
  padding: 7px 14px;
  font: 500 13px/1 "Google Sans", "Noto Sans SC", sans-serif;
  transition: background .12s, border-color .12s, color .12s;
}
.navtabs a:hover { background: var(--surface-2); text-decoration: none; }
.navtabs a.active { background: var(--ink); border-color: var(--ink); color: #fff; }

.page {
  width: min(1180px, calc(100vw - 40px));
  margin: 0 auto;
  padding: 30px 0 80px;
}
.hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 400px);
  gap: 24px;
  align-items: end;
  padding: 6px 0 24px;
  border-bottom: 1px solid var(--line-2);
}
.hero h1 { margin: 0 0 8px; font: 700 clamp(26px, 3.4vw, 38px)/1.15 "Google Sans", "Noto Sans SC", sans-serif; color: var(--ink); text-wrap: balance; }
.hero p, .muted { color: var(--muted); }
.hero p { margin: 0; font-size: 14.5px; }
.metrics { display: grid; grid-template-columns: repeat(2, minmax(120px, 1fr)); gap: 10px; }
.metric {
  border: 1px solid var(--line-2);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-1);
  padding: 12px 16px;
}
.metric strong { display: block; font: 500 24px/1.1 "Google Sans"; color: var(--ink); font-variant-numeric: tabular-nums; }
.metric span { color: var(--muted); font-size: 12px; }
.section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 36px 0 14px; }
.section-head h2 { margin: 0; font: 500 20px/1.3 "Google Sans", "Noto Sans SC", sans-serif; color: var(--ink); display: flex; align-items: center; gap: 9px; }
.section-head h2::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--g-blue); }

.list { display: flex; flex-direction: column; gap: 14px; }
.card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  border: 1px solid var(--line-2);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-1);
  padding: 16px 18px 16px 20px;
  transition: box-shadow .14s, border-color .14s;
}
.card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; border-radius: var(--radius) 0 0 var(--radius); background: var(--g-blue); }
.card.cat-stock::before { background: var(--g-blue); }
.card.cat-industry::before { background: var(--g-purple); }
.card.cat-tracking::before { background: var(--g-green); }
.card.cat-trend::before { background: var(--g-teal); }
.card.cat-earnings::before { background: var(--g-yellow); }
.card.cat-earnings-report::before { background: var(--g-blue); }
.card.cat-s::before { background: var(--g-red); }
.card.cat-a::before { background: var(--g-yellow); }
.card:hover { box-shadow: var(--shadow-2); border-color: var(--line); }
.title-row { display: flex; gap: 13px; align-items: flex-start; }
.card h3 { margin: 0; font: 500 17px/1.4 "Google Sans", "Noto Sans SC", sans-serif; color: var(--ink); text-wrap: pretty; }
.card h3 a { color: var(--ink); }
.card h3 a:hover { color: var(--g-blue); text-decoration: none; }
.card-desc { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }

.cal { flex: 0 0 auto; width: 46px; display: flex; flex-direction: column; text-align: center; border: 1px solid var(--line-2); border-radius: 9px; overflow: hidden; background: var(--surface); box-shadow: var(--shadow-1); }
.cal .cm { background: var(--g-red); color: #fff; font: 500 10px/1 "Google Sans", sans-serif; letter-spacing: .4px; padding: 3px 0; }
.cal .cd { font: 500 20px/1 "Google Sans", sans-serif; color: var(--ink); padding: 6px 0; font-variant-numeric: tabular-nums; }
.cal.lg { width: 54px; }
.cal.lg .cm { font-size: 11px; padding: 4px 0; }
.cal.lg .cd { font-size: 24px; padding: 8px 0; }

.meta, .chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.card-foot { margin-top: 2px; padding-top: 12px; border-top: 1px solid var(--line-2); }
.chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border-radius: var(--pill);
  background: var(--surface-2);
  border: 1px solid var(--line-2);
  color: var(--ink-2);
  padding: 4px 11px;
  font-size: 12.5px;
}
.chip.mono { font-family: "Roboto Mono", monospace; font-size: 11px; color: var(--muted); background: var(--surface-3); border-color: transparent; }
.chip.stock { background: var(--g-blue-soft); color: var(--g-blue); border-color: transparent; }
.chip.industry { background: var(--g-purple-soft); color: var(--g-purple); border-color: transparent; }
.chip.tracking { background: var(--g-green-soft); color: var(--g-green); border-color: transparent; }
.chip.trend { background: var(--g-teal-soft); color: var(--g-teal-ink); border-color: transparent; }
.chip.earnings { background: var(--g-yellow-soft); color: var(--g-amber-ink); border-color: transparent; }
.chip.earnings-report { background: var(--g-blue-soft); color: var(--g-blue); border-color: transparent; }
.chip.rating-s { background: var(--g-red-soft); color: var(--g-red); border-color: transparent; font-weight: 700; }
.chip.rating-a { background: var(--g-yellow-soft); color: var(--g-amber-ink); border-color: transparent; font-weight: 700; }

.home-page, .archive-page { width: min(1420px, calc(100vw - 64px)); padding-top: 28px; }
/* 首页放宽到两侧各留 5%：状态卡组在 home-layout 之外占满整幅，
   分类栏只与「更新报告」以下的内容分栏。报告页仍走 .page 的窄栏，正文行宽不受影响。 */
.home-page { width: min(1800px, 90vw); }
.home-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 28px; align-items: start; }
.home-layout > * { min-width: 0; }
.category-rail { position: sticky; top: 92px; min-width: 0; max-width: 100%; }
.category-label { margin: 0 0 12px 16px; color: var(--muted); font-size: 12px; font-weight: 500; }
.category-list { display: grid; gap: 8px; }
.category-link {
  min-height: 42px;
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: var(--pill);
  background: var(--surface);
  color: var(--ink-2);
  padding: 8px 14px;
  font-size: 13px;
  box-shadow: 0 1px 1px rgba(60,64,67,.03);
  transition: border-color .12s, background .12s, color .12s;
}
.category-link:hover { border-color: #BDC1C6; background: var(--surface-2); text-decoration: none; }
.category-link.active { border-color: var(--ink); background: var(--ink); color: #fff; }
.category-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--g-blue); }
.category-link.color-ink .category-dot { background: currentColor; }
.category-link.color-teal .category-dot { background: var(--g-teal); }
.category-link.color-red .category-dot { background: var(--g-red); }
.category-link.color-blue .category-dot { background: var(--g-blue); }
.category-link.color-purple .category-dot { background: var(--g-purple); }
.category-link.color-green .category-dot { background: var(--g-green); }
.category-link.color-amber .category-dot { background: var(--g-amber-ink); }
.category-count { color: #9AA0A6; font-size: 11px; }
.category-link.active .category-count { color: rgba(255,255,255,.72); }
.home-feed, .archive-feed { min-width: 0; }
.today-card, .archive-card {
  overflow: hidden;
  border: 1px solid var(--line-2);
  border-radius: 14px;
  background: var(--surface);
  box-shadow: var(--shadow-1);
}
.home-feed .today-card + .today-card { margin-top: 28px; }
.today-head {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 20px;
  border-bottom: 1px solid var(--line-2);
}
.today-head h1 { display: flex; align-items: center; gap: 11px; margin: 0; font-size: 20px; line-height: 1.2; font-weight: 700; }
.today-head h1 > span { width: 9px; height: 9px; border-radius: 50%; background: var(--g-blue); }
.events-card .today-head h1 > span { background: var(--g-red); }
.today-head time { color: #9AA0A6; font-size: 11px; }
.group-label { padding: 7px 20px; border-bottom: 1px solid var(--line-2); background: var(--surface-2); color: #9AA0A6; font-size: 11px; font-weight: 500; }
.daily-row, .update-row, .archive-link {
  color: var(--ink);
  border-bottom: 1px solid var(--line-2);
  transition: background .12s;
}
.daily-row:last-child, .update-row:last-child, .archive-item:last-child .archive-link { border-bottom: 0; }
.daily-row:hover, .update-row:hover, .archive-link:hover { background: #F8FAFD; text-decoration: none; }
.daily-row { min-height: 52px; display: grid; grid-template-columns: 130px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 10px 20px; }
.daily-kind { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 13px; }
.daily-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--g-teal); }
.daily-row strong { font-size: 14px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.daily-row time, .update-row time { color: #9AA0A6; font-size: 11px; white-space: nowrap; }
.update-row { min-height: 74px; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 10px 20px; }
.report-update { grid-template-columns: 48px minmax(0, 1fr); }
.update-copy { min-width: 0; display: grid; gap: 4px; }
.update-copy strong { color: var(--ink); font-size: 14px; line-height: 1.45; font-weight: 600; text-wrap: pretty; }
.update-copy small { color: #9AA0A6; font-size: 11.5px; line-height: 1.45; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rating-block { width: 34px; height: 34px; display: inline-grid; place-items: center; border-radius: 8px; font-size: 14px; font-weight: 700; }
.rating-block.rating-a { color: var(--g-red); background: var(--g-red-soft); }
.rating-block.rating-s { color: #fff; background: var(--g-red); }
.home-page .cal, .archive-page .cal { width: 42px; border-radius: 8px; box-shadow: none; }
.home-page .cal .cm, .archive-page .cal .cm { font-size: 9px; padding: 3px 0; }
.home-page .cal .cd, .archive-page .cal .cd { font-size: 17px; padding: 5px 0; }
.archive-kind { display: inline-flex; width: fit-content; border-radius: var(--pill); padding: 2px 8px; font-size: 10.5px; line-height: 1.5; }
.kind-catalyst { color: var(--g-red); background: var(--g-red-soft); }
.kind-us-daily, .kind-a-daily { color: var(--g-teal-ink); background: var(--g-teal-soft); }
.kind-stock { color: var(--g-blue); background: var(--g-blue-soft); }
.kind-industry { color: var(--g-purple); background: var(--g-purple-soft); }
.kind-tracking { color: var(--g-green); background: var(--g-green-soft); }
.kind-earnings { color: var(--g-amber-ink); background: var(--g-yellow-soft); }
.kind-earnings-report { color: var(--g-blue); background: var(--g-blue-soft); }
.empty-row, .archive-empty { padding: 20px; color: var(--muted); text-align: center; }

.archive-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.archive-head h1 { margin: 0 0 4px; font-size: 24px; line-height: 1.2; }
.archive-head p { margin: 0; color: var(--muted); font-size: 13px; }
.archive-head > strong { min-width: 72px; color: var(--g-blue); font-size: 28px; line-height: 1; text-align: right; }
.archive-item[hidden] { display: none; }
.archive-link { min-height: 76px; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 11px 18px; }
.archive-link time { color: #9AA0A6; font-size: 11px; white-space: nowrap; }
.archive-kind { margin-bottom: 1px; }

/* 右栏由 sectionTocJs 建好后才切成两列（.av-toc-on）；无章节的报告保持单列满宽 */
.report-layout { display: block; }
article.report {
  border: 1px solid var(--line-2);
  border-radius: var(--radius-lg);
  background: var(--surface);
  padding: min(5vw, 44px);
  box-shadow: var(--shadow-1);
}
article.report h1, article.report h2, article.report h3, article.report h4 { font-family: "Google Sans", "Noto Sans SC", sans-serif; line-height: 1.3; color: var(--ink); text-wrap: pretty; }
article.report h1 { margin: 0 0 20px; font-size: 30px; font-weight: 700; }
article.report h2 { margin-top: 40px; padding-bottom: 8px; border-bottom: 1px solid var(--line-2); font-size: 22px; font-weight: 500; }
article.report h3 { margin-top: 26px; font-size: 18px; font-weight: 500; }
article.report p, article.report li { color: var(--ink-2); }
blockquote {
  margin: 18px 0;
  border-left: 3px solid var(--g-blue);
  background: var(--g-blue-soft);
  padding: 11px 15px;
  border-radius: 0 var(--radius) var(--radius) 0;
  color: var(--ink-2);
}
pre {
  overflow: auto;
  border-radius: var(--radius);
  background: #202124;
  color: #F8F9FA;
  padding: 15px;
}
code { font-family: "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .92em; }
/* 围栏代码块内的 code 必须放弃行内代码的底色与内边距，否则浅底叠在 pre 深底上、文字不可读 */
pre code { background: none; padding: 0; border-radius: 0; color: inherit; font-size: inherit; }
mark { background: var(--g-yellow-soft); padding: 1px 4px; border-radius: 4px; }
.table-wrap { overflow-x: auto; margin: 16px 0; }
table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
th, td { border-bottom: 1px solid var(--line-2); padding: 9px 8px; text-align: left; vertical-align: top; }
th { color: var(--muted); font-weight: 500; background: var(--surface-2); }
/* 原右栏「报告信息」下沉到正文末尾，右栏改由章节导航独占 */
article.report .report-meta { margin-top: 40px; padding-top: 22px; border-top: 1px solid var(--line-2); }
article.report .report-meta > h3 { margin: 0 0 14px; font-size: 15px; font-weight: 500; }
.report-meta dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 8px 18px; margin: 0; }
.report-meta dt { color: var(--muted); font-size: 12px; }
.report-meta dd { margin: 0; color: var(--ink-2); font-size: 13.5px; overflow-wrap: anywhere; }
.report-meta dd code { font-size: 12px; color: var(--muted); }
@media (max-width: 640px) {
  .report-meta dl { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .report-meta dt { margin-top: 8px; }
}
.tracking-snapshot {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  margin: 0 0 26px;
}
.tracking-stat {
  min-width: 0;
  border: 1px solid var(--line-2);
  border-radius: 10px;
  background: var(--surface-2);
  padding: 10px 12px;
}
.tracking-stat strong { display: block; color: var(--ink); font-size: 15px; line-height: 1.35; overflow-wrap: anywhere; }
.tracking-stat span { display: block; margin-top: 2px; color: var(--muted); font-size: 10.5px; line-height: 1.35; }
@media (max-width: 900px) {
  .appbar { padding: 12px 16px; }
  .site-meta { display: none; }
  .navtabs { justify-content: flex-start; }
  .hero { grid-template-columns: 1fr; }
  .home-page, .archive-page { width: min(calc(100% - 28px), 760px); padding-top: 18px; }
  .home-layout { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .category-rail { position: static; }
  .category-label { margin-left: 2px; }
  .category-list { display: flex; max-width: 100%; gap: 8px; overflow-x: auto; padding: 0 1px 6px; scrollbar-width: thin; }
  .category-link { flex: 0 0 auto; min-width: 132px; }
  .category-link:first-child { min-width: 144px; }
}
@media (max-width: 560px) {
  .appbar { min-height: 56px; }
  .brand-name { font-size: 16px; }
  .site-trail-sep, .site-trail { display: none; }
  .home-page, .archive-page { width: calc(100% - 20px); padding-bottom: 48px; }
  .daily-row { grid-template-columns: 105px minmax(0, 1fr) auto; gap: 8px; padding: 10px 12px; }
  .daily-row strong { font-size: 12.5px; }
  .group-label, .today-head { padding-left: 14px; padding-right: 14px; }
  .update-row { grid-template-columns: 38px minmax(0, 1fr) auto; gap: 9px; padding: 10px 12px; }
  .report-update { grid-template-columns: 42px minmax(0, 1fr); }
  .update-copy strong { font-size: 13px; }
  .update-copy small { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .rating-block { width: 32px; height: 32px; }
  .archive-head { align-items: start; }
  .archive-head p { max-width: 250px; }
  .archive-link { grid-template-columns: 42px minmax(0, 1fr); gap: 9px; padding: 10px 12px; }
  .archive-link > time { display: none; }
}
/* ---------- 首页状态卡组 ---------- */
.status-deck { margin-bottom: 18px; }
/* 三卡一行：纳指 K 线｜宏观温度计（含地缘烈度）｜A 股市场内况（含市场状态）。
   align-items:stretch 让三张卡等高对齐。 */
.status-grid {
  display: grid; gap: 18px; margin-bottom: 18px; align-items: stretch;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.status-card { background: var(--surface); border-radius: var(--radius-lg); box-shadow: var(--shadow-1); border: 1px solid var(--line); padding: 18px; position: relative; overflow: hidden; }
.status-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.status-card.macro::before { background: var(--g-blue); }
.status-card.index::before { background: var(--g-purple); }
.status-card.sentiment::before { background: var(--g-green); }
.status-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 0 0 12px; }
.status-card-title { font-size: 15px; font-weight: 700; margin: 0; }
.status-card-stamp { font-size: 11px; color: var(--muted); font-family: "Roboto Mono", monospace; white-space: nowrap; }
.card-note { margin-top: 10px; font-size: 11px; color: var(--muted); }
/* 市场状态与情绪值同构：一行内的两个「标签 + 数值」模块，状态值沿用 regime 配色 */
.stat-state { display: flex; flex-direction: column; gap: 3px; }
.stat-state-name { font-size: 18px; font-weight: 700; color: var(--regime-ink); line-height: 1.2; white-space: nowrap; }
.stat-state-date { font-size: 10px; font-family: "Roboto Mono", monospace; color: var(--muted); }
.metric-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
/* 地缘烈度格：红色浅底与宏观指标区分开，格内带地缘态势链接 */
.metric-geo { background: var(--g-red-soft); border-color: #F6D5D1; }
.metric-geo-link { display: inline-block; margin-top: 4px; font-size: 11px; color: var(--g-red); }
.metric { padding: 10px 12px; background: var(--surface-2); border-radius: 10px; border: 1px solid var(--line-2); min-width: 0; }
.metric-name { font-size: 12px; color: var(--muted); margin-bottom: 4px; }
/* 回退取值日的角标：当日快照缺字段、展示最近一次有值时标注 */
.metric-stale { font-size: 10px; font-family: "Roboto Mono", monospace; color: var(--muted); background: var(--surface-3); border-radius: 4px; padding: 0 4px; margin-left: 5px; white-space: nowrap; }
.metric-value { font-size: 19px; font-weight: 700; font-family: "Roboto Mono", monospace; letter-spacing: -0.5px; line-height: 1.3; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.metric-spark { height: 22px; margin: 4px 0 0; }
.metric-spark:empty { display: none; }
.spark { width: 100%; height: 100%; display: block; overflow: visible; }
/* 宏观项统一中性色：涨跌对 A 股的方向含义因指标而异，套红绿会误导 */
.metric-change { font-size: 11px; font-weight: 500; padding: 1px 6px; border-radius: 4px; white-space: nowrap; background: var(--surface-3); color: var(--ink-2); letter-spacing: 0; }
.index-grid { display: grid; gap: 16px; }
.index-col { min-width: 0; }
/* 名称与报价靠左紧挨：space-between 在宽列里会把两者推到两端、窄列里又换行不对齐 */
.index-header { display: flex; align-items: baseline; margin-bottom: 8px; gap: 12px; flex-wrap: wrap; }
.index-name { font-size: 14px; font-weight: 500; }
.index-code { font-family: "Roboto Mono", monospace; font-size: 11px; color: var(--muted); }
.index-quote { display: inline-flex; align-items: baseline; gap: 8px; }
.index-price { font-size: 18px; font-weight: 700; font-family: "Roboto Mono", monospace; }
.index-chg { font-size: 12px; font-weight: 500; }
/* 全站统一 A 股口径：红涨绿跌（含美股指数） */
.index-chg.up { color: var(--g-red); }
.index-chg.down { color: var(--g-green); }
.kline-chart { width: 100%; height: auto; display: block; }
.kline-foot { font-size: 11px; color: var(--muted); margin-top: 6px; text-align: right; }
/* A 股市场内况：成交额/两融/情绪三格 */
.market-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.market-stat-wide { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.stat-side { display: flex; flex-direction: column; gap: 4px; text-align: right; }
.market-stat { padding: 12px; background: var(--surface-2); border-radius: 10px; border: 1px solid var(--line-2); min-width: 0; }
.market-stat.cool { background: var(--g-teal-soft); border-color: #CBEAF0; }
.market-stat.warm { background: var(--g-red-soft); border-color: #F6D5D1; }
.stat-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 4px; }
.stat-label { font-size: 12px; color: var(--muted); }
.stat-num { font-size: 22px; font-weight: 700; font-family: "Roboto Mono", monospace; letter-spacing: -0.5px; line-height: 1.2; }
.stat-sub { font-size: 11px; color: var(--muted); margin-top: 3px; }
.market-stat .tag { font-size: 10px; padding: 2px 7px; border-radius: var(--pill); white-space: nowrap; }
.market-stat .tag.cool { background: #fff; color: var(--g-teal-ink); border: 1px solid #CBEAF0; }
.market-stat .spark, .market-stat .mini-bars { width: 100%; height: 34px; display: block; margin-top: 6px; }
/* 中等宽度回落成 2 列，窄屏单列 */
@media (max-width: 1500px) {
  .status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .status-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .status-card { padding: 14px; }
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .metric { padding: 10px; }
  .metric-value { font-size: 17px; }
  .market-stats { grid-template-columns: 1fr; }
}

.page.av-toc-on { display: grid; grid-template-columns: minmax(0, 1fr) 268px; gap: 24px; align-items: start; }
/* 栅格子项会被自身 min-content（宽表格 / nowrap 表头）撑出轨道，需同时归零下限并夹住上限；
 * 夹住后宽内容按改版前的方式在 .table-wrap 里横向滚动，不再顶开整页。 */
.page.av-toc-on > * { min-width: 0; max-width: 100%; }
.page.av-toc-on > .doc-head { grid-column: 1 / -1; }
/* 站点模板页（.report-layout）沿用原页宽；Skill 页加宽，让正文列保持原来的阅读宽度 */
.page.av-toc-on:not(.report-layout) { width: min(1408px, calc(100vw - 40px)); }
.toc-panel {
  --toc-line: var(--line-2, #e8eaed);
  --toc-surface: var(--surface, #fff);
  --toc-surface-2: var(--surface-2, #f8f9fa);
  --toc-muted: var(--muted, #5f6368);
  --toc-ink: var(--ink-2, #3c4043);
  --toc-accent: var(--accent, var(--g-blue, #1a73e8));
  --toc-accent-ink: var(--accent-ink, var(--g-blue, #1a73e8));
  --toc-accent-soft: var(--accent-soft, var(--g-blue-soft, #e8f0fe));
  align-self: start;
  position: sticky;
  top: 78px;
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 102px);
  border: 1px solid var(--toc-line);
  border-radius: 14px;
  background: var(--toc-surface);
  box-shadow: 0 1px 2px rgba(60, 64, 67, .08);
  padding: 14px 10px 12px;
}
.toc-head { display: flex; align-items: center; gap: 8px; padding: 0 8px 10px; border-bottom: 1px solid var(--toc-line); }
.toc-title {
  display: flex; align-items: center; gap: 8px;
  flex: 1 1 auto; min-width: 0;
  font-family: var(--font-serif, "Georgia", "Songti SC", serif);
  font-size: 13.5px; font-weight: 600; color: var(--toc-accent-ink);
}
.toc-title::before { content: ""; flex: 0 0 auto; width: 6px; height: 6px; border-radius: 50%; background: var(--toc-accent); }
.toc-count { flex: 0 0 auto; color: var(--toc-muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.toc-toggle { display: none; flex: 0 0 auto; border: 1px solid var(--toc-line); border-radius: 999px; background: var(--toc-surface-2); color: var(--toc-muted); font: inherit; font-size: 11px; padding: 2px 10px; cursor: pointer; }
.toc-list { position: relative; overflow-y: auto; overscroll-behavior: contain; margin-top: 8px; scrollbar-width: thin; }
.toc-link {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  border-left: 2px solid transparent;
  border-radius: 0 7px 7px 0;
  padding: 5px 9px 5px 10px;
  color: var(--toc-muted);
  font-size: 12.5px; line-height: 1.5;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.toc-link.lvl-2 { padding-left: 22px; font-size: 12px; color: var(--toc-muted); opacity: .88; }
.toc-link:hover { background: var(--toc-surface-2); color: var(--toc-accent-ink); text-decoration: none; }
.toc-link.is-active { background: var(--toc-accent-soft); border-left-color: var(--toc-accent); color: var(--toc-accent-ink); font-weight: 600; opacity: 1; }
@media (max-width: 900px) {
  .page.av-toc-on { grid-template-columns: minmax(0, 1fr); }
  .page.av-toc-on > .doc-head { order: -2; }
  .page.av-toc-on > .toc-panel { order: -1; position: static; max-height: none; }
  .toc-toggle { display: inline-block; }
  .toc-panel.is-collapsed .toc-list { display: none; }
  .toc-list { max-height: 46vh; }
}
