/* Si-TokenX · 前端样式（浅色出版风，M1 令牌体系不变——用户明示"风格不要变！还是浅色！"）
   设计基准：docs/架构进度_极简版.html + PRD §7.2 令牌升级表。
   Stripe/Linear/Bloomberg 浅色档审美：暖纸白底、克制高级灰阶、深靛蓝品牌色、
   哑铜金仅用于会员标识、等宽数字、双级分隔线、微交互过渡。零外域资源（CSP）。
   v2 新增：信号雷达页组件（核心信号横带/概览条/系统脉络条/异动卡/方法徽章/
   证据抽屉/方法论区），全部在浅色体系内实现"精密感"（tabular-nums / precision
   对齐 / 克制信号色）。 */

:root {
  /* ══ AI-Native Quintet（2026-07-25 配色升级 · 方案 A 全冷）══
     五原色只做「底与面」，标记与文字一律用同色相推导的深阶。
     依据：原色直接当标记色实测对比度仅 1.22–1.86:1、色度低于地板会读成灰
     （scripts/validate_palette.js 判 FAILED），故必须分层。
       Mist #F5F7F6 底 · Sea-Salt #CFE6DF 生成面 · Peri-Blue #AEB6D9 主色浅阶
       Apricot #F2C7A7 强调面 · Spectral Night #1E2631 墨与重块              */

  /* 面 / 卡 / 墨阶 —— 底=Mist，墨=Night（全冷，取代原暖纸白+暖墨） */
  --surface: #F5F7F6;      /* Ultra-Entropy Mist */
  --surface-2: #EAEFEF;
  --card: #FFFFFF;
  --ink-1: #1E2631;        /* Spectral Night，正文对比 ≥14:1 */
  --ink-2: #46505F;
  --ink-3: #78828F;
  --line: #E3E8E9;         /* 常规分隔 */
  --line-strong: #CDD5D7;  /* 强分隔 */

  /* 主色阶 · Low-Freq Peri-Blue（链接/选中/主按钮） */
  --accent: #4A57A8;       /* 深阶：承载文字与标记 */
  --accent-deep: #2E3670;
  --accent-bg: #EEF0F7;
  --accent-line: #C9D0E8;
  --accent-soft: #AEB6D9;  /* 原色：选中底 / focus ring */

  /* 生成阶 · Coherent Sea-Salt（研究/已处理/正向面） */
  --gen: #067A57;
  --gen-deep: #0A5140;
  --gen-bg: #EAF4F1;
  --gen-line: #BFDCD4;
  --gen-soft: #CFE6DF;     /* 原色：区块底 */

  /* 会员/独家 · Thermal Apricot（取代哑铜金；冷底上的唯一暖点，克制使用） */
  --gold: #B4652C;         /* 深阶：徽章文字/按钮底 */
  --gold-deep: #8A4A1E;
  --gold-bg: #FDF2E9;
  --gold-line: #F2C7A7;    /* 原色：描边 */
  --gold-soft: #F2C7A7;

  /* 信号语义色（zh：红涨绿跌，语义不可改；en 区经 body.locale-en 互换）
     实测 protan ΔE 10.4 落 8–12 floor band → 必须保留 ▲▼ 与正负号作第二重编码 */
  --up: #B4413A;    /* 涨/利好（暖相，与 Apricot 同族） */
  --down: #067A57;  /* 跌/利空（绿相，与 Sea-Salt 同族） */

  /* 方向色系（雷达卡：涨/跌/新增/消失/混合/沉默） */
  --dir-up: #B4413A;
  --dir-down: #067A57;
  --dir-new: #4A57A8;
  --dir-gone: #78828F;
  --dir-mixed: #B4652C;
  --dir-silent: #78828F;

  /* 类别固定序列色 ×7（绝不轮转）
     按真实赋值序经 validate_palette 全通过；tritan 最差 11.4 落 floor band
     → 类型徽章必须始终带文字标签（现已满足），严禁只靠颜色区分 */
  --cat-price: #4A57A8;
  --cat-api: #067A57;
  --cat-deal: #B4652C;
  --cat-project: #A34A72;
  --cat-corp: #6E5AC4;
  --cat-equity: #9A6207;
  --cat-region: #0077A8;
  --cat-deep: #7462C9;   /* 第15类：复合信号（P3，随方案A冷调补色） */

  /* 状态色（保留位，绝不当序列色用） */
  --good: #067A57;
  --warning: #B4652C;
  --critical: #B4413A;

  --shadow-sm: 0 1px 2px rgba(30,38,49,.04);
  --shadow-md: 0 6px 22px -8px rgba(30,38,49,.13), 0 2px 6px -3px rgba(30,38,49,.07);
  --radius: 8px;
  --radius-lg: 12px;
  --tab: "PingFang SC" tabular-nums;

  --font-sans: "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC",
               "Noto Sans SC", "Helvetica Neue", Arial, sans-serif;
  --font-serif: "Source Serif 4", "Songti SC", "Noto Serif SC", Georgia, "Times New Roman", serif;
  --font-mono: "SF Mono", "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
}

@media (prefers-color-scheme: dark) {
  :root {
    /* 深色不是浅色的翻转，是从同一组色相另取一档：
       深色带 L 0.48–0.67（比浅色带更窄更暗），故系列色取中调而非粉彩。
       经 validate_palette --mode dark --surface #151B24 全通过。 */
    --surface: #151B24;      /* Spectral Night 更深阶 */
    --surface-2: #1B222D;
    --card: #1E2631;         /* Spectral Night 原色作卡面 */
    --ink-1: #EDF1F2;
    --ink-2: #AFB8C0;
    --ink-3: #7A848F;
    --line: #2C3542;
    --line-strong: #3D4855;
    --accent: #7683CE;
    --accent-deep: #9AA5DF;
    --accent-bg: #1E2438;
    --accent-line: #333C58;
    --accent-soft: #3A4463;
    --gen: #1DA383;
    --gen-deep: #38BF9E;
    --gen-bg: #142A26;
    --gen-line: #24463E;
    --gen-soft: #1E3A34;
    --gold: #C4803F;
    --gold-deep: #DA9A58;
    --gold-bg: #2A2018;
    --gold-line: #4A3928;
    --gold-soft: #3A2C1E;
    --up: #D2685C;
    --down: #1DA383;
    --dir-up: #D2685C;
    --dir-down: #1DA383;
    --dir-new: #7683CE;
    --dir-gone: #7A848F;
    --dir-mixed: #C4803F;
    --dir-silent: #7A848F;
    --cat-price: #7683CE;
    --cat-api: #1DA383;
    --cat-deal: #C4803F;
    --cat-project: #C96F9E;
    --cat-corp: #9782E2;
    --cat-equity: #B3873F;
    --cat-region: #2A9CC0;
    --good: #1DA383;
    --warning: #C4803F;
    --critical: #D2685C;
    --cat-deep: #A18FE8;  /* 复合信号深色档（Spectral Night 中调） */
    --shadow-sm: 0 1px 2px rgba(0,0,0,.3);
    --shadow-md: 0 8px 26px -10px rgba(0,0,0,.55);
  }
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }
body {
  background: var(--surface);
  color: var(--ink-1);
  font: 15px/1.55 var(--font-sans);
  -webkit-font-smoothing: antialiased;
  font-variant-numeric: tabular-nums;
  min-height: 100vh;
}
.num, .stat-n, td.num, th.num { font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1; }
a { color: var(--accent); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--accent-deep); text-decoration: underline; text-underline-offset: 2px; }
::selection { background: var(--accent-bg); }

/* ------------------------------------------------------------ 顶栏 */
.topbar {
  position: sticky; top: 0; z-index: 40;
  background: color-mix(in srgb, var(--surface) 82%, transparent);
  backdrop-filter: saturate(1.4) blur(12px);
  border-bottom: 1px solid var(--line);
}
.topbar .inner {
  max-width: 1220px; margin: 0 auto; padding: 0 24px;
  height: 80px; display: flex; align-items: center; gap: 28px;
  /* 2026-07-26 用户反馈两轮：顶栏 56→68→80px，logo 40→46→54px，导航 13.5→15→16px */
}
/* 品牌锁定图：原图为米底纸纹，已去背成透明 PNG，故可直接压在半透明顶栏上。
   高度 34px（56px 顶栏内留呼吸），宽度按比例自适应；width/height 属性写死
   原始像素比防止加载期抖版（CLS）。 */
.brand { display: flex; align-items: center; gap: 10px; }
.brand .mk-img {
  height: 54px; width: auto; display: block;
  image-rendering: -webkit-optimize-contrast;
}
.brand .tag {
  font-size: 13px; color: var(--ink-3); font-family: var(--font-sans);
  letter-spacing: .06em; white-space: nowrap;
  padding-left: 10px; border-left: 1px solid var(--line-strong);
}
/* 窄屏只留图标区域会挤掉导航，标语先行让位 */
@media (max-width: 860px) {
  .brand .tag { display: none; }
  .brand .mk-img { height: 36px; }
}
.nav { display: flex; gap: 2px; margin-left: 6px; flex: 1; overflow-x: auto; scrollbar-width: none; }
.nav::-webkit-scrollbar { display: none; }
.nav a {
  color: var(--ink-2); font-size: 16px; font-weight: 500; white-space: nowrap;
  padding: 10px 15px; border-radius: 6px; position: relative; transition: all .15s ease;
}
.nav a:hover { color: var(--ink-1); background: var(--surface-2); text-decoration: none; }
.nav a.active { color: var(--accent); }
.nav a.active::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: -1px; height: 2px;
  background: var(--accent); border-radius: 2px;
}
.topbar .right { display: flex; align-items: center; gap: 10px; }

/* ------------------------------------------------------------ 布局 */
.wrap { max-width: 1220px; margin: 0 auto; padding: 30px 24px 80px; }  /* 顶部留白（07-26 用户追加） */
.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 12px; flex-wrap: wrap; }
h1.title { font-family: var(--font-serif); font-size: 24px; font-weight: 600; letter-spacing: .005em; }
.page-head .sub { color: var(--ink-3); font-size: 13px; margin-top: 5px; }
.row { display: flex; gap: 14px; flex-wrap: wrap; }
.grid { display: grid; gap: 14px; }

/* ------------------------------------------------------------ 卡片 */
.card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm); padding: 18px 18px;
}
.card.pad-lg { padding: 22px 22px; }
.card-t { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 12px; font-weight: 600; }
.card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.card-head h3 { font-size: 15px; font-weight: 600; }

/* ------------------------------------------------------------ 统计条 */
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; }
.stat { background: var(--card); padding: 16px 18px; }
.stat-n { font-size: 27px; font-weight: 650; line-height: 1.15; letter-spacing: -.01em; }
.stat-l { font-size: 12px; color: var(--ink-3); margin-top: 3px; }
.stat-d { font-size: 11.5px; color: var(--ink-3); margin-top: 6px; }

/* ------------------------------------------------------------ 徽章 */
.badge { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 600; padding: 2px 7px; border-radius: 5px; line-height: 1.4; white-space: nowrap; letter-spacing: .01em; }
/* 分级 L0–L4：青灰 → 靛蓝渐进 */
/* 证据等级 L0–L4 是顺序阶：单色相（Peri-Blue）浅→深，绝不用彩虹。
   L0 保持中性灰＝"无/最低"，L1 起进入主色相并逐档加深。 */
.g-L0 { background: #EDF0F0; color: #5E6873; }
.g-L1 { background: #EDF0F7; color: #5A6690; }
.g-L2 { background: #E4E8F4; color: #4A57A8; }
.g-L3 { background: #DBE0F0; color: #3B4790; }
.g-L4 { background: #D2D8EB; color: #2E3670; }
@media (prefers-color-scheme: dark) {
  .g-L0 { background:#232A33; color:#8A939C; } .g-L1 { background:#1E2438; color:#8E99C8; }
  .g-L2 { background:#222945; color:#9AA5DF; } .g-L3 { background:#262E52; color:#A8B2E8; }
  .g-L4 { background:#2A345F; color:#B6BFF0; }
}
/* 源可信 T1–T4 描边徽章 */
.tsrc { border: 1px solid var(--line-strong); color: var(--ink-2); background: transparent; }
/* Tier 会员档 */
.tier { text-transform: uppercase; }
.tier-anon { background: var(--surface-2); color: var(--ink-3); }
.tier-free { background: var(--accent-bg); color: var(--accent); border: 1px solid var(--accent-line); }
.tier-pro  { background: var(--gold-bg); color: var(--gold); border: 1px solid var(--gold-line); }
.badge.eng { background: var(--gold-bg); color: var(--gold); border: 1px solid var(--gold-line); }
.badge.soft { background: var(--surface-2); color: var(--ink-2); }
.up { color: var(--up); } .down { color: var(--down); }
.dot-off { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--up); box-shadow: 0 0 0 3px color-mix(in srgb, var(--up) 18%, transparent); }

/* 类别徽章（固定序列色，左色条 + 极浅同色底） */
.cat {
  border-left: 2px solid currentColor; border-radius: 4px;
  background: color-mix(in srgb, currentColor 8%, var(--card));
  padding: 2px 7px 2px 6px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .04em;
}
.cat-price { color: var(--cat-price); } .cat-api { color: var(--cat-api); }
.cat-deal { color: var(--cat-deal); } .cat-project { color: var(--cat-project); }
.cat-corp { color: var(--cat-corp); } .cat-equity { color: var(--cat-equity); }
.cat-region { color: var(--cat-region); }

/* 方向标 */
.dir { font: 700 12px var(--font-mono); letter-spacing: .02em; }
.dir-up { color: var(--dir-up); } .dir-down { color: var(--dir-down); }
.dir-new { color: var(--dir-new); } .dir-gone { color: var(--dir-gone); }
.dir-mixed { color: var(--dir-mixed); } .dir-silent { color: var(--dir-silent); }

/* 信号发生日期（日期纪律：每卡可见，含 hero；等宽小字） */
.a-date { font: 500 11px var(--font-mono); color: var(--ink-3); white-space: nowrap; letter-spacing: .02em; }

/* 检测方法徽章（方法透明化——科学严谨性可见） */
.method {
  font: 500 10.5px var(--font-mono); letter-spacing: .03em; color: var(--ink-2);
  border: 1px dashed var(--line-strong); border-radius: 4px; padding: 2px 7px;
  background: var(--surface); white-space: nowrap;
}

/* confidence 横条 */
.conf-wrap { display: inline-flex; align-items: center; gap: 6px; }
.conf-track { width: 52px; height: 3px; border-radius: 2px; background: var(--line-strong); overflow: hidden; }
.conf-fill { height: 100%; border-radius: 2px; background: var(--accent); }
.conf-num { font: 500 10.5px var(--font-mono); color: var(--ink-3); }

/* severity 圆点（1–5 递进填充；≥4 用状态色示警） */
.sev { display: inline-flex; gap: 3px; align-items: center; }
.sev i { width: 6px; height: 6px; border-radius: 50%; background: var(--line-strong); }
.sev.s1 i.on, .sev.s2 i.on { background: var(--ink-3); }
.sev.s3 i.on { background: var(--warning); }
.sev.s4 i.on { background: var(--warning); }
.sev.s5 i.on { background: var(--critical); }

/* ------------------------------------------------------------ 按钮 */
.btn {
  display: inline-flex; align-items: center; gap: 6px; justify-content: center;
  font: 500 13.5px var(--font-sans); padding: 8px 15px; border-radius: 7px;
  border: 1px solid var(--line-strong); background: var(--card); color: var(--ink-1);
  cursor: pointer; transition: all .15s ease; white-space: nowrap;
}
.btn:hover { border-color: var(--ink-3); background: var(--surface-2); text-decoration: none; }
.btn:active { transform: translateY(.5px); }
.btn-primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn-primary:hover { background: var(--accent-deep); border-color: var(--accent-deep); color: #fff; }
.btn-gold { background: var(--gold); border-color: var(--gold); color: #fff; }
.btn-gold:hover { filter: brightness(1.06); color:#fff; }
.btn-sm { padding: 5px 10px; font-size: 12.5px; }
.btn-ghost { border-color: transparent; background: transparent; color: var(--ink-2); }
.btn-ghost:hover { background: var(--surface-2); color: var(--ink-1); }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.link-btn { background: none; border: none; color: var(--accent); cursor: pointer; font: inherit; padding: 0; }
.link-btn:hover { text-decoration: underline; }

/* ------------------------------------------------------------ 表格 */
.tbl-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--card); box-shadow: var(--shadow-sm); }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
thead th {
  text-align: left; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
  color: var(--ink-3); padding: 11px 14px; border-bottom: 1px solid var(--line-strong);
  position: sticky; top: 56px; background: var(--card); z-index: 2;
}
tbody td { padding: 10px 14px; border-bottom: 1px solid var(--line); color: var(--ink-1); vertical-align: middle; line-height: 1.45; }
tbody tr:last-child td { border-bottom: none; }
tbody tr { transition: background .12s ease; }
tbody tr:hover { background: var(--surface-2); }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
.muted { color: var(--ink-3); }
.mono { font-family: var(--font-mono); font-size: 12px; }
.ell { max-width: 420px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ------------------------------------------------------------ 信号卡（旧信号墙沿用） */
.sig-list { display: grid; gap: 10px; }
.sig {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 12px 14px; display: grid; gap: 6px; transition: border-color .15s ease, box-shadow .15s ease;
}
.sig:hover { border-color: var(--line-strong); box-shadow: var(--shadow-sm); }
.sig .head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sig .hl { font-size: 14px; font-weight: 500; color: var(--ink-1); }
.sig .meta { display: flex; gap: 12px; flex-wrap: wrap; font-size: 12px; color: var(--ink-3); align-items: center; }
.sig .meta .ev:hover { color: var(--accent); }

/* ------------------------------------------------------------ 雷达页 · 核心信号横带（浅色：靛蓝细边 + 微靛底渐变） */
.core-band {
  border: 1px solid var(--accent-line); border-radius: var(--radius-lg);
  background: linear-gradient(180deg, var(--accent-bg), var(--card) 55%);
  box-shadow: var(--shadow-sm);
  padding: 0; margin-bottom: 18px; overflow: hidden;
}
.core-band .cb-head {
  display: flex; align-items: center; gap: 10px; padding: 10px 18px;
  border-bottom: 1px solid var(--accent-line); font: 600 11px var(--font-mono);
  letter-spacing: .14em; text-transform: uppercase; color: var(--accent);
}
.core-band .cb-head .pulse { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); animation: pulse 2.2s ease infinite; }
.core-list { display: grid; }
.core-item {
  display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center;
  padding: 15px 18px; border-bottom: 1px solid var(--line);
}
.core-item:last-child { border-bottom: none; }
.core-item .ci-arrow { font: 700 22px var(--font-mono); width: 34px; text-align: center; }
.core-item .ci-sum { font-family: var(--font-serif); font-size: 16px; font-weight: 600; line-height: 1.5; color: var(--ink-1); }
.core-item .ci-meta { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; margin-top: 7px; }
.core-item .ci-num { text-align: right; }
.core-item .ci-num .v { font: 650 22px var(--font-mono); letter-spacing: -.01em; display: block; }
.core-item .ci-num .u { font: 500 10.5px var(--font-mono); color: var(--ink-3); }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: .35; } }

/* ------------------------------------------------------------ 雷达页 · 今日产业动态速览 */
.corp-digest {
  border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--card);
  box-shadow: var(--shadow-sm); padding: 12px 16px 10px; margin-bottom: 14px;
}
.cd-head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.cd-t { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--cat-corp); font-weight: 600; }
.cd-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px 20px; }
.cd-row {
  display: grid; grid-template-columns: auto 1fr auto auto; gap: 10px; align-items: center;
  padding: 6px 8px; border: none; background: transparent; border-radius: 6px;
  cursor: pointer; text-align: left; font: inherit; color: inherit; min-width: 0;
  transition: background .12s ease;
}
.cd-row:hover { background: var(--surface-2); }
.cd-d { font: 500 11px var(--font-mono); color: var(--ink-3); }
.cd-hl { font-size: 13px; color: var(--ink-1); min-width: 0; max-width: none; }
.cd-src { font: 400 11px var(--font-mono); color: var(--ink-3); }
/* 速览行点击 → 目标卡片短暂高亮 */
.acard.flash { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-bg); }

/* ------------------------------------------------------------ 雷达页 · 概览条 */
.ov-strip {
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
  /* 2026-07-26 用户反馈：一行统计占一整块空卡片 → 去卡片化，纤细信息行 + 下分隔线 */
  border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent;
  box-shadow: none;
  padding: 2px 2px 10px; margin-bottom: 12px; font-size: 12px; color: var(--ink-2);
}
.ov-strip .ov-cat { display: inline-flex; align-items: center; gap: 5px; font-family: var(--font-mono); font-size: 11.5px; }
.ov-strip .ov-cat b { color: var(--ink-1); font-weight: 650; }
.ov-strip .ov-sep { width: 1px; height: 16px; background: var(--line-strong); }
.ov-strip .swdot { width: 7px; height: 7px; border-radius: 2px; display: inline-block; }
.sev-matrix { display: inline-flex; gap: 3px; align-items: flex-end; }
.sev-matrix .col { display: flex; flex-direction: column-reverse; gap: 2px; }
.sev-matrix .col i { width: 6px; height: 6px; border-radius: 1.5px; background: var(--line); }
.sev-matrix .col i.on { background: var(--accent); }
.sev-matrix .col.hot i.on { background: var(--critical); }
.ov-strip .upd { margin-left: auto; font: 500 11px var(--font-mono); color: var(--ink-3); }

/* ------------------------------------------------------------ 雷达页 · 系统脉络条 */
.pipe {
  display: flex; align-items: stretch; gap: 0; border: 1px solid var(--line);
  border-radius: var(--radius-lg); background: var(--card); box-shadow: var(--shadow-sm);
  overflow: hidden; margin-bottom: 14px;
}
.pipe .st { flex: 1; padding: 11px 18px; display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.pipe .st + .st { border-left: 1px solid var(--line); }
.pipe .st .k { font: 600 10px var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.pipe .st .n { font: 650 17px var(--font-mono); color: var(--ink-1); }
.pipe .st .l { font-size: 11px; color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pipe .st .k::after { content: " ▸"; color: var(--line-strong); }
.pipe .st:last-child .k::after { content: ""; }

/* ------------------------------------------------------------ 雷达页 · 卡片流 */
.day-head {
  display: flex; align-items: center; gap: 10px; margin: 24px 0 10px;
  font: 600 12px var(--font-mono); letter-spacing: .08em; color: var(--ink-2);
}
.day-head .cnt { color: var(--ink-3); font-weight: 500; }
.day-head::after { content: ""; flex: 1; height: 1px; background: var(--line-strong); }

.acard {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: 14px 16px; display: grid; gap: 8px; transition: border-color .15s ease, box-shadow .15s ease;
}
.acard:hover { border-color: var(--line-strong); box-shadow: var(--shadow-md); }
.acard .a-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.acard .a-head .spacer { flex: 1; }
/* 内容富化（2026-07-12）：summary 携带构成信号内容摘要变长——正常换行不截断 */
.acard .a-sum { font-size: 14.5px; font-weight: 500; line-height: 1.55; color: var(--ink-1);
  white-space: normal; word-break: break-word; overflow-wrap: anywhere; }
.acard .a-body { display: grid; grid-template-columns: 1fr auto; gap: 14px; align-items: center; }
.acard .a-body.noviz { grid-template-columns: 1fr; }
.acard .a-viz { width: 220px; max-width: 100%; }
.acard .a-metric { font: 500 11.5px var(--font-mono); color: var(--ink-2); display: flex; gap: 10px; flex-wrap: wrap; }
.acard .a-metric .delta-up { color: var(--dir-up); } .acard .a-metric .delta-down { color: var(--dir-down); }
.acard .a-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.acard .a-chips .tag { font-size: 10.5px; color: var(--ink-2); background: var(--surface-2); border-radius: 4px; padding: 2px 7px; }
.acard .a-chips .tag.more { background: transparent; border: 1px dashed var(--line-strong); color: var(--ink-3); cursor: default; }
/* 卡底诊断栏（2026-07-25 复活）：强度 / 置信 / 分级 / 检测方法 / 行动建议 / 实体档案 */
.acard .a-foot {
  display: flex; gap: 12px; align-items: center; flex-wrap: wrap;
  font-size: 11.5px; color: var(--ink-3);
  border-top: 1px dashed var(--line); padding-top: 8px;
}
.acard .a-ep { font: 500 11px var(--font-mono); color: var(--ink-2); white-space: nowrap; }
.alert-tag { font: 600 10.5px var(--font-sans); border-radius: 999px; padding: 2px 9px; white-space: nowrap; }
.alert-tag.alert-info { color: var(--ink-2); background: var(--surface-2); }
.alert-tag.alert-watch { color: var(--warning); background: color-mix(in srgb, var(--warning) 12%, transparent); }
.alert-tag.alert-act { color: var(--critical); background: color-mix(in srgb, var(--critical) 13%, transparent); }

/* 产业链传导（it.transmission）：上下游影响链，卡内显眼位 */
.acard .a-trans { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
.acard .a-trans-k {
  font: 600 10px var(--font-mono); letter-spacing: .1em; text-transform: uppercase;
  color: var(--ink-3); white-space: nowrap;
}
.acard .a-trans-chips { display: flex; gap: 5px; flex-wrap: wrap; align-items: center; }
.acard .tchip {
  font-size: 11px; line-height: 1.5; color: var(--accent-deep); border-radius: 999px; padding: 2px 9px;
  background: var(--accent-bg); border: 1px solid var(--accent-line); white-space: nowrap;
}
.acard .tarrow { font: 500 11px var(--font-mono); color: var(--ink-3); }

/* 产业链归位（it.chain）：环节 / 撬动变量 / 要回答的问题 */
.acard .a-chain { display: grid; gap: 4px; }
.acard .a-chain-row { display: flex; gap: 9px; align-items: baseline; }
.acard .a-chain-row .ck {
  font: 600 10px var(--font-mono); letter-spacing: .06em; color: var(--ink-3);
  min-width: 62px; white-space: nowrap;
}
.acard .a-chain-row .cv { font-size: 12px; line-height: 1.65; color: var(--ink-2); overflow-wrap: anywhere; }

/* 处理量证据（it.processing）：一行小字，"每天处理几百条"可见 */
.acard .a-proc { font: 500 10.5px var(--font-mono); letter-spacing: .02em; color: var(--ink-3); }
.pair-viz { display: inline-flex; align-items: center; gap: 8px; font: 500 12px var(--font-mono); color: var(--ink-2); }
.pair-viz .rel { color: var(--cat-corp); border: 1px dashed var(--line-strong); border-radius: 4px; padding: 1px 7px; font-size: 10.5px; background: var(--surface); }

/* ------------------------------------------------------------ 雷达页 · 产业动态（低门槛层） */
/* 产业动态＝"已处理但未成异动"的沉淀层，用生成面 Sea-Salt 与异动流区分：
   卡面自上而下由 Sea-Salt 原色渐隐到白，读起来是一块独立的面而不是又一张卡。 */
.dyn-sec {
  margin-top: 26px; padding: 16px 18px 6px;
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--gen-soft) 55%, var(--card)) 0%,
    var(--card) 190px);
  border: 1px solid var(--gen-line); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}
.dyn-head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.dyn-head h3 { font-family: var(--font-serif); font-size: 15px; font-weight: 600; color: var(--ink-1); }
.dyn-n { font: 500 11px var(--font-mono); color: var(--ink-3); }
.dyn-sub { font-size: 12.5px; line-height: 1.7; color: var(--ink-3); margin: 5px 0 8px; }
/* 处理规模三连（scanned 为主，"今天处理了多少条"的直接证据） */
.dyn-stats {
  display: flex; gap: 10px 22px; flex-wrap: wrap; align-items: baseline;
  margin: 8px 0 12px; padding-bottom: 12px; border-bottom: 1px solid var(--line);
}
.dyn-stat {
  display: inline-flex; gap: 6px; align-items: baseline;
  font-size: 11.5px; color: var(--ink-3); white-space: nowrap;
}
.dyn-stat b { font: 600 16px var(--font-mono); color: var(--ink-2); letter-spacing: -.01em; }
/* 「N 条落点已处理」是整站唯一用 Spectral Night 作"面"的地方——
   冷浅底上压一块深墨，把处理规模钉成该区的视觉锚点。深色模式下另给一档。 */
.dyn-stat.dyn-stat-lead {
  font-size: 12.5px; color: #C3CCD6;
  background: #1E2631; padding: 9px 14px; border-radius: var(--radius);
}
.dyn-stat.dyn-stat-lead b { font-size: 24px; color: #F5F7F6; }
@media (prefers-color-scheme: dark) {
  .dyn-stat.dyn-stat-lead { background: var(--surface-2); color: var(--ink-2); }
  .dyn-stat.dyn-stat-lead b { color: var(--ink-1); }
}
.dyn-list > .dyn-row:first-child { border-top: none; }
.dyn-list { display: grid; }
.dyn-row {
  display: grid; grid-template-columns: 84px 128px minmax(0, 1fr) 132px auto; gap: 12px;
  align-items: baseline; padding: 8px 0; border-top: 1px solid var(--line); font-size: 12.5px;
}
.dyn-row .dyn-date { font: 500 11px var(--font-mono); color: var(--ink-3); white-space: nowrap; }
.dyn-row .dyn-ent { font-weight: 600; color: var(--ink-1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dyn-row .dyn-main { display: grid; gap: 4px; min-width: 0; }
.dyn-row .dyn-t { color: var(--ink-2); line-height: 1.65; overflow-wrap: anywhere; }
.dyn-row a.dyn-a { color: var(--ink-2); text-decoration: none; border-bottom: 1px solid var(--line-strong); }
.dyn-row a.dyn-a:hover { color: var(--accent); border-bottom-color: var(--accent-line); }
.dyn-row .dyn-sub-line { display: flex; gap: 5px; flex-wrap: wrap; align-items: center; }
.dyn-row .dyn-sub-line .tchip {
  font-size: 10.5px; line-height: 1.5; color: var(--accent-deep); border-radius: 999px; padding: 1px 8px;
  background: var(--accent-bg); border: 1px solid var(--accent-line); white-space: nowrap;
}
.dyn-row .dyn-sub-txt { font: 500 10.5px var(--font-mono); color: var(--ink-3); }
.dyn-row .dyn-node { font-size: 11.5px; color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dyn-row .dyn-meta { font: 500 10.5px var(--font-mono); color: var(--ink-3); white-space: nowrap; }
.dyn-more { padding: 10px 0 4px; border-top: 1px solid var(--line); }
.dyn-lock { padding: 12px 0 8px; border-top: 1px solid var(--line); }

/* ------------------------------------------------------------ 实时情报页（Si-TokenX 2.0 S1） */
.intel-card { display: grid; gap: 8px; }
.intel-card .intel-h { font-size: 14.5px; font-weight: 600; color: var(--ink-1); line-height: 1.5;
  display: block; white-space: normal; word-break: break-word; overflow-wrap: anywhere; }
.intel-card a.intel-h:hover { color: var(--accent); }
.intel-card .intel-h.locked { color: var(--ink-3); cursor: not-allowed; }
.intel-card .meta { display: flex; gap: 12px; flex-wrap: wrap; font-size: 11.5px; color: var(--ink-3); align-items: center; }

/* 会员级情报展开（detail_zh，仅 pro 响应携带；铜金细节标识 PRO 权益） */
.detail-drawer { border-top: 1px dashed var(--gold-line); padding-top: 8px; }
.detail-drawer > summary {
  cursor: pointer; font: 600 11.5px var(--font-mono); color: var(--gold); list-style: none;
  display: inline-flex; gap: 7px; align-items: center; user-select: none;
}
.detail-drawer > summary::-webkit-details-marker { display: none; }
.detail-drawer > summary::before { content: "▸"; transition: transform .15s; display: inline-block; }
.detail-drawer[open] > summary::before { transform: rotate(90deg); }
/* 段落式情报展开（2026-07-05 用户指令：不再分号切行，连贯段落；
   2026-07-12 用户指令：与标题同宽对齐，撤 72ch 窄栏 */
.detail-drawer .dt-body { margin: 9px 0 4px; }
.detail-drawer .dt-p {
  font-size: 13px; line-height: 1.85; color: var(--ink-2);
  margin: 0 0 9px; text-align: justify;
}
.detail-drawer .dt-p:last-child { margin-bottom: 2px; }
/* 构成信号小节头（2026-07-12 内容富化：【实体｜日期】→ 强调行，正文段落式不变） */
.detail-drawer .dt-p .dt-h {
  display: block; font: 600 11.5px var(--font-mono); color: var(--ink-1);
  letter-spacing: .02em; margin-bottom: 2px;
}
/* 免费档：克制的会员展开提示（整体可点 → #/account） */
.detail-lock {
  display: inline-flex; gap: 7px; align-items: center; margin-top: 2px; width: fit-content;
  font-size: 11.5px; color: var(--gold); text-decoration: none;
  border: 1px dashed var(--gold-line); border-radius: 5px; padding: 3px 9px;
  background: var(--gold-bg); transition: filter .15s;
}
.detail-lock:hover { filter: brightness(.97); color: var(--gold); text-decoration: none; }
.detail-lock .lk { font-size: 9px; }

/* 材料全文卡：正文按空行分段（付费级阅读体验） */
.tx-body { max-width: 74ch; }
.tx-p { font-size: 12.5px; line-height: 1.8; color: var(--ink-2); margin: 0 0 8px; white-space: pre-wrap; }
.tx-p:last-child { margin-bottom: 2px; }

/* ------------------------------------------------------------ 产业情报 */
.wrap.wrap-reports {
  max-width: min(1640px, calc(100vw - 48px));
}
.intel-workbench {
  display: grid; gap: 16px; min-width: 0;
}
.intel-date-strip {
  display: grid; grid-template-columns: auto minmax(0, 1fr);
  gap: 14px; align-items: center;
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-sm);
  padding: 12px 14px;
}
.intel-date-strip-head {
  display: grid; gap: 2px; min-width: 150px;
}
.intel-date-strip .card-t { margin-bottom: 0; letter-spacing: .08em; }
.intel-date-strip .report-section-meta { margin-bottom: 0; }
.intel-date-scroll {
  display: flex; gap: 8px; overflow-x: auto; overflow-y: hidden;
  padding: 2px 2px 4px; scrollbar-gutter: stable; scroll-snap-type: x proximity;
}
.report-list-btn {
  display: grid !important; grid-template-columns: 1fr auto; align-items: center;
  gap: 10px; text-align: left; flex: 0 0 auto;
  border: 1px solid transparent; border-radius: 7px;
  background: transparent; color: var(--ink-2); cursor: pointer;
  font: inherit; padding: 9px 10px; transition: background .15s, border-color .15s, color .15s;
}
.report-list-btn:hover {
  background: var(--surface-2); color: var(--ink-1);
}
.report-list-btn.on {
  background: var(--accent-bg); color: var(--accent);
  border-color: var(--accent-line); font-weight: 600;
}
.intel-date-btn {
  min-height: 42px; min-width: 188px; scroll-snap-align: start;
}
.report-list-date {
  font: 650 13px var(--font-mono); color: inherit; white-space: nowrap;
}
.report-list-badges { display: inline-flex; gap: 4px; align-items: center; justify-content: flex-end; }
.report-detail { display: grid; gap: 16px; min-width: 0; }
.intel-summary {
  display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(310px, .8fr);
  gap: 16px; align-items: start;
  border: 1px solid var(--line); border-radius: var(--radius-lg);
  background: linear-gradient(180deg, var(--card), var(--surface));
  box-shadow: var(--shadow-sm); padding: 18px 20px;
}
.intel-summary-copy { min-width: 0; }
.report-kicker {
  font: 650 11px var(--font-mono); letter-spacing: .14em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 5px;
}
.report-day-title {
  font-family: var(--font-serif); font-size: 28px; font-weight: 600; letter-spacing: .01em;
}
.intel-steps {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px; margin-top: 16px;
}
.intel-step {
  display: grid; grid-template-columns: auto 1fr; gap: 10px;
  border: 1px solid var(--line); border-radius: var(--radius);
  background: color-mix(in srgb, var(--surface) 72%, var(--card)); padding: 11px 12px;
}
.intel-step .step-no {
  font: 650 11px var(--font-mono); color: var(--accent);
  border: 1px solid var(--accent-line); background: var(--accent-bg);
  border-radius: 5px; padding: 1px 5px; height: fit-content;
}
.intel-step b { display: block; font-size: 13px; color: var(--ink-1); margin-bottom: 2px; }
.intel-step p { font-size: 12px; color: var(--ink-3); line-height: 1.55; }
.intel-summary-panel {
  border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--card); padding: 14px; display: grid; gap: 10px;
}
.intel-summary-panel .panel-title {
  font-size: 13px; font-weight: 650; color: var(--ink-1);
}
.intel-summary-panel p { font-size: 12.5px; color: var(--ink-3); line-height: 1.6; }
.intel-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.intel-metric { background: var(--card); padding: 10px 9px; min-width: 0; }
.intel-metric .im-label { font: 500 10.5px var(--font-mono); color: var(--ink-3); margin-bottom: 3px; }
.intel-metric .im-value { font-size: 12.5px; font-weight: 650; color: var(--ink-1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.intel-metric.ready .im-value { color: var(--accent); }
.intel-metric.locked .im-value { color: var(--gold); }
.intel-workbench-grid {
  display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: 16px; align-items: start; min-width: 0;
}
.report-section {
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-sm);
  padding: 18px; min-width: 0;
}
.intel-pane {
  display: flex; flex-direction: column; padding: 0; overflow: hidden; min-width: 0;
}
.report-section-head {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 14px; margin-bottom: 14px;
}
.intel-pane > .report-section-head {
  margin: 0; min-height: 86px; padding: 17px 20px 14px;
  border-bottom: 1px solid var(--line);
}
.report-section-head.compact { margin-bottom: 0; }
.report-section-head h3 { font-size: 17px; font-weight: 650; line-height: 1.35; }
.report-section-desc {
  margin-top: 4px; font-size: 12.5px; color: var(--ink-3); line-height: 1.6;
}
.report-section-meta {
  font: 500 12px var(--font-mono); color: var(--ink-3); margin-bottom: 10px;
}
.intel-pane-body {
  min-height: 0; padding: 16px 18px 18px;
}
.intel-observation-body {
  overflow: hidden;
}
/* 双栏等高（2026-07-26 用户裁决）：观察 iframe 与情报全文滚动区共用一个体高变量，
   两侧都用固定 height（此前一边 height 一边 max-height，内容短时右栏缩短、底缘不齐）。 */
.intel-workbench-grid { --intel-pane-h: clamp(720px, calc(100vh - 200px), 1040px);  /* 2026-07-26 用户裁决：双栏同步拉长 */ }
.intel-observation-body { height: var(--intel-pane-h); }
.report-iframe {
  width: 100%; height: 100%; min-height: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius); background: var(--card);
}
.report-material-list { display: grid; gap: 10px; }
/* 滚动容器不留 padding-top：sticky 子元素 top:0 钉的是 padding box 起点，
   留 14px 上边距会让正文从条上方露出半截（用户截图报的"横条压住正文"）。
   上边距改由工具条自己的 padding-top 承担。 */
.intel-material-scroll {
  height: var(--intel-pane-h, clamp(560px, calc(100vh - 320px), 780px));
  overflow-y: auto; overflow-x: hidden; padding: 0 16px 18px;
  scrollbar-gutter: stable;
}
.intel-material-toolbar {
  position: sticky; top: 0; z-index: 2;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  /* 实底不透明：半透明背景会让滚过的正文透出来 */
  background: var(--card);
  border-bottom: 1px solid var(--line);
  margin: 0 -16px 12px;          /* 横向抵消容器 padding，满幅遮盖 */
  padding: 14px 16px 10px;
}
.intel-material-toolbar .report-section-meta { margin-bottom: 0; }
.report-material-grid { grid-template-columns: 1fr; gap: 12px; }
.report-material-shell .sig { padding: 15px 17px; min-width: 0; width: 100%; }
.report-material-shell .sig .hl {
  font-size: 15px; font-weight: 650; line-height: 1.55;
  overflow-wrap: anywhere; word-break: normal;
}
.report-material-shell .tx-body { max-width: none; margin-top: 8px; }
.report-material-shell .tx-p {
  font-size: 13px; line-height: 1.85; margin-bottom: 10px;
  overflow-wrap: anywhere; word-break: normal;
}
/* 材料分层（2026-07-25）：全文区 / 标题级区。标题级 = 已监测到但源站未放出正文，
   视觉上收敛（无正文、弱底色、细左边线），但绝不藏起来——它本身就是情报。 */
.tx-tier-head {
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
  margin: 14px 0 2px; padding-bottom: 7px; border-bottom: 1px solid var(--line-strong);
}
.tx-tier-head:first-child { margin-top: 0; }
.tx-tier-head .tt-k { font: 600 12px var(--font-mono); letter-spacing: .08em; color: var(--ink-2); }
.tx-tier-head .tt-n { font: 500 11px var(--font-mono); color: var(--ink-3); }
.tx-tier-head .tt-d { font-size: 11.5px; color: var(--ink-3); line-height: 1.6; }
.tx-tier-head.tx-tier-title .tt-k { color: var(--ink-3); }
.report-material-shell .sig.sig-title-only {
  padding: 11px 15px; background: var(--surface); border-left: 2px solid var(--line-strong);
}
.report-material-shell .sig.sig-title-only .hl { font-size: 13.5px; font-weight: 600; color: var(--ink-2); }
.badge.soft.tier-title-only { color: var(--ink-3); border-style: dashed; }
.tx-nobody { margin-top: 6px; font: 500 10.5px var(--font-mono); color: var(--ink-3); }
.report-lock {
  display: grid; gap: 9px; align-items: start;
  border: 1px dashed var(--gold-line); border-radius: var(--radius);
  background: var(--gold-bg); padding: 12px 14px;
}
.report-lock .detail-lock { margin-top: 0; background: transparent; }

/* 证据抽屉 */
.ev-drawer { border-top: 1px dashed var(--line); padding-top: 8px; }
.ev-drawer summary {
  cursor: pointer; font: 500 11.5px var(--font-mono); color: var(--ink-3); list-style: none;
  display: inline-flex; gap: 6px; align-items: center; user-select: none;
}
.ev-drawer summary::-webkit-details-marker { display: none; }
.ev-drawer summary::before { content: "▸"; transition: transform .15s; display: inline-block; }
.ev-drawer[open] summary::before { transform: rotate(90deg); }
.ev-drawer summary:hover { color: var(--accent); }
.ev-drawer .ev-list { display: grid; gap: 5px; margin-top: 8px; }
.ev-drawer .ev-row { display: flex; gap: 8px; align-items: baseline; font-size: 12px; color: var(--ink-2); }
.ev-drawer .ev-row .n { font-family: var(--font-mono); color: var(--ink-3); font-size: 10.5px; }
.ev-drawer .ev-lock { font-size: 11.5px; color: var(--gold); margin-top: 6px; }

/* 方法论折叠区 */
.method-sec { margin-top: 30px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--card); box-shadow: var(--shadow-sm); }
.method-sec > summary {
  cursor: pointer; padding: 13px 18px; font-size: 12px; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); list-style: none;
}
.method-sec > summary::-webkit-details-marker { display: none; }
.method-sec > summary:hover { color: var(--ink-1); }
.method-sec .m-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1px; background: var(--line); border-top: 1px solid var(--line); }
.method-sec .m-cell { background: var(--card); padding: 15px 18px; }
.method-sec .m-cell h4 { font-family: var(--font-serif); font-size: 14px; font-weight: 600; margin-bottom: 6px; color: var(--ink-1); }
.method-sec .m-cell p { font-size: 12.5px; color: var(--ink-2); line-height: 1.65; }

/* ------------------------------------------------------------ 付费墙卡 */
.paywall {
  border: 1px dashed var(--gold-line); background: linear-gradient(180deg, var(--gold-bg), var(--card));
  border-radius: var(--radius-lg); padding: 20px 22px; text-align: center; display: grid; gap: 10px; justify-items: center;
  margin-top: 16px;
}
.paywall .pw-t { font-size: 15px; font-weight: 600; color: var(--ink-1); }
.paywall .pw-d { font-size: 13px; color: var(--ink-2); max-width: 460px; }
.paywall .lock { font-size: 20px; }

/* ------------------------------------------------------------ 图表 */
.chart-box { width: 100%; overflow: hidden; }
svg.chart { display: block; width: 100%; height: auto; }
svg .grid-line { stroke: var(--line); stroke-width: 1; }
svg .axis-txt { fill: var(--ink-3); font: 10px var(--font-mono); }
svg .band { fill: var(--accent); opacity: .07; }
svg .line { fill: none; stroke: var(--accent); stroke-width: 1.6; }
svg .line-2 { stroke: var(--gold); }
svg .bar { fill: var(--accent); opacity: .82; transition: opacity .15s; }
svg .bar:hover { opacity: 1; }
svg .off { fill: var(--up); }
svg .spark-line { fill: none; stroke-width: 1.4; }
svg .spark-fill { opacity: .09; }
svg .spark-dot { r: 2.2; }
.legend-row { display: flex; gap: 16px; flex-wrap: wrap; font-size: 12px; color: var(--ink-2); margin-top: 10px; }
.legend-row .k { display: inline-flex; align-items: center; gap: 5px; }
.swatch { width: 11px; height: 3px; border-radius: 2px; display: inline-block; }

/* series 选择器 */
.series-pick { display: grid; gap: 3px; max-height: 420px; overflow-y: auto; padding-right: 4px; }
.series-pick button {
  text-align: left; font: 12px var(--font-mono); padding: 7px 9px; border-radius: 6px;
  border: 1px solid transparent; background: transparent; color: var(--ink-2); cursor: pointer;
  display: flex; justify-content: space-between; gap: 8px; transition: all .12s;
}
.series-pick button:hover { background: var(--surface-2); color: var(--ink-1); }
.series-pick button.on { background: var(--accent-bg); color: var(--accent); border-color: var(--accent-line); font-weight: 600; }

/* ------------------------------------------------------------ 控件条 */
.toolbar { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 16px; }
.chip {
  font: 500 12.5px var(--font-sans); padding: 6px 12px; border-radius: 20px;
  border: 1px solid var(--line-strong); background: var(--card); color: var(--ink-2); cursor: pointer; transition: all .13s;
}
.chip:hover { border-color: var(--ink-3); color: var(--ink-1); }
.chip.on { background: var(--accent); border-color: var(--accent); color: #fff; }
.chip .c-n { opacity: .65; margin-left: 3px; font-variant-numeric: tabular-nums; }
.toolbar .tsep { width: 1px; height: 18px; background: var(--line-strong); margin: 0 3px; }
.pager { display: flex; align-items: center; gap: 12px; justify-content: center; margin-top: 18px; font-size: 13px; color: var(--ink-2); }

/* 表单 */
.field { display: grid; gap: 5px; margin-bottom: 14px; }
.field label { font-size: 12.5px; font-weight: 600; color: var(--ink-2); }
.input {
  font: 14px var(--font-sans); padding: 9px 12px; border-radius: 7px; border: 1px solid var(--line-strong);
  background: var(--card); color: var(--ink-1); width: 100%; transition: border-color .15s, box-shadow .15s;
}
/* focus ring 用 Peri-Blue 原色：浅底上够醒目又不刺眼，是该原色最合适的岗位 */
.input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
select.input {
  cursor: pointer;
  /* 2026-07-26 用户反馈：原生 select 渲染系统默认渐变外观与站内风格不符 →
     去原生皮肤，与 .input 同底同边框，自绘细箭头 */
  -webkit-appearance: none; -moz-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23878E9C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; background-size: 12px 8px;
  padding-right: 34px;
}
select.input::-ms-expand { display: none; }
/* 2026-07-26 用户反馈：下拉框蓝色须归拢站内主色——聚焦光环改主色 20% 柔光
   （原 --accent-soft 不透明周边蓝偏系统感），弹出菜单勾选/高亮经 accent-color 跟随主色 */
select.input { accent-color: var(--accent); }
select.input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent);
}
select.input option { background: var(--card); color: var(--ink-1); }

/* ------------------------------------------------------------ 模态 */
.modal-back {
  position: fixed; inset: 0; background: color-mix(in srgb, var(--ink-1) 32%, transparent);
  display: grid; place-items: center; z-index: 60; padding: 20px; animation: fade .18s ease;
}
.modal { width: 100%; max-width: 400px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-md); padding: 24px; }
.modal h2 { font-family: var(--font-serif); font-size: 20px; margin-bottom: 4px; }
.modal .m-sub { font-size: 13px; color: var(--ink-3); margin-bottom: 18px; }
.seg { display: flex; background: var(--surface-2); border-radius: 8px; padding: 3px; margin-bottom: 18px; }
.seg button { flex: 1; font: 500 13px var(--font-sans); padding: 7px; border: none; background: transparent; color: var(--ink-2); border-radius: 6px; cursor: pointer; transition: all .13s; }
.seg button.on { background: var(--card); color: var(--ink-1); box-shadow: var(--shadow-sm); }

/* ------------------------------------------------------------ toast */
.toasts { position: fixed; right: 20px; bottom: 20px; z-index: 90; display: grid; gap: 8px; }
.toast {
  background: var(--card); border: 1px solid var(--line-strong); border-left: 3px solid var(--accent);
  border-radius: 8px; box-shadow: var(--shadow-md); padding: 11px 15px; font-size: 13px; color: var(--ink-1);
  max-width: 340px; animation: slidein .2s ease;
}
.toast.err { border-left-color: var(--up); }
.toast.ok { border-left-color: var(--down); }

/* 刷新提示 pill */
.refresh-pill {
  position: fixed; left: 50%; transform: translateX(-50%); top: 68px; z-index: 50;
  background: var(--accent); color: #fff; font-size: 12.5px; font-weight: 500; padding: 7px 16px;
  border-radius: 20px; box-shadow: var(--shadow-md); cursor: pointer; animation: slidedown .25s ease;
  display: flex; align-items: center; gap: 7px;
}
.refresh-pill:hover { background: var(--accent-deep); }

/* ------------------------------------------------------------ 骨架屏 */
.sk { background: linear-gradient(90deg, var(--surface-2) 25%, var(--line) 37%, var(--surface-2) 63%); background-size: 400% 100%; animation: shimmer 1.3s ease infinite; border-radius: 6px; }
.sk-line { height: 13px; margin: 8px 0; }
.sk-card { height: 84px; border-radius: var(--radius-lg); }
@keyframes shimmer { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }
@keyframes fade { from { opacity: 0; } }
@keyframes slidein { from { opacity: 0; transform: translateY(6px); } }
@keyframes slidedown { from { opacity: 0; transform: translate(-50%,-8px); } }

/* ------------------------------------------------------------ 空态 */
.empty { text-align: center; padding: 48px 20px; color: var(--ink-3); }
.empty .ic { font-size: 30px; opacity: .5; }
.empty .et { font-size: 15px; color: var(--ink-2); margin-top: 10px; font-weight: 500; }
.empty .ed { font-size: 13px; margin-top: 5px; }

/* ------------------------------------------------------------ 落地页 hero（旧 cockpit 沿用） */
.hero {
  display: grid; grid-template-columns: 1.05fr .95fr; gap: 40px; align-items: center;
  padding: 30px 0 40px; border-bottom: 1px solid var(--line); margin-bottom: 34px;
}
.hero .eyebrow { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); font-weight: 600; }
.hero h1 { font-family: var(--font-serif); font-size: 40px; line-height: 1.15; font-weight: 600; margin: 12px 0 14px; letter-spacing: -.01em; }
.hero p.lede { font-size: 16px; color: var(--ink-2); line-height: 1.6; max-width: 520px; }
.hero .cta { display: flex; gap: 12px; margin-top: 24px; flex-wrap: wrap; }
.hero .trust { margin-top: 22px; font-size: 12.5px; color: var(--ink-3); display: flex; gap: 18px; flex-wrap: wrap; }
.feat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 14px; margin: 30px 0; }
.feat { padding: 18px; }
.feat .fi { font-size: 20px; }
.feat h4 { font-size: 14.5px; font-weight: 600; margin: 8px 0 5px; }
.feat p { font-size: 13px; color: var(--ink-2); line-height: 1.55; }
.section-t { font-size: 12px; color: var(--ink-3); letter-spacing: .12em; text-transform: uppercase; margin: 40px 0 14px; font-weight: 600; }

/* 定价（账户页并入沿用） */
.price-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.plan { padding: 24px 22px; display: grid; gap: 14px; align-content: start; }
.plan.pro { border-color: var(--gold-line); box-shadow: var(--shadow-md); position: relative; }
.plan .pn { font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-3); }
.plan.pro .pn { color: var(--gold); }
.plan .pp { font-family: var(--font-serif); font-size: 30px; font-weight: 600; }
.plan .pp small { font-size: 13px; color: var(--ink-3); font-weight: 400; font-family: var(--font-sans); }
.plan ul { list-style: none; display: grid; gap: 9px; }
.plan li { font-size: 13px; color: var(--ink-2); display: flex; gap: 8px; align-items: flex-start; }
.plan li::before { content: "✓"; color: var(--down); font-weight: 700; }
.plan li.no { color: var(--ink-3); }
.plan li.no::before { content: "—"; color: var(--ink-3); }

/* 热力矩阵 */
.matrix-cell { stroke: var(--card); stroke-width: 1; }
.kv { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; font-size: 13px; }
.kv dt { color: var(--ink-3); } .kv dd { color: var(--ink-1); font-weight: 500; }

/* ------------------------------------------------------------ 响应式（3 页导航移动端保留，可横滑） */
@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; gap: 24px; }
  .hero h1 { font-size: 32px; }
  .price-grid { grid-template-columns: 1fr; }
  .prices-layout { grid-template-columns: 1fr !important; }
  .core-item { grid-template-columns: auto 1fr; }
  .core-item .ci-num { grid-column: 2; text-align: left; }
  .acard .a-body { grid-template-columns: 1fr; }
  .acard .a-viz { width: 100%; }
  .ov-strip .upd { margin-left: 0; width: 100%; }
  .pipe { flex-direction: column; }
  .pipe .st + .st { border-left: none; border-top: 1px solid var(--line); }
  .cd-grid { grid-template-columns: 1fr; }
  .cd-src { display: none; }
  .brand .tag { display: none; }
  .wrap.wrap-reports { max-width: 100%; }
  .intel-date-strip { grid-template-columns: 1fr; }
  .intel-date-strip-head { min-width: 0; }
  .intel-summary, .intel-workbench-grid { grid-template-columns: 1fr; }
  .intel-steps { grid-template-columns: 1fr; }
  .intel-metrics { grid-template-columns: 1fr 1fr 1fr; }
  .report-section-head { flex-direction: column; }
  .intel-pane > .report-section-head { min-height: 0; }
  .report-iframe { height: 640px; min-height: 640px; }
  .intel-material-scroll { height: auto; overflow: visible; }
  .intel-observation-body { height: auto; }
  /* 窄屏下 scroll 容器退化成整页滚动，sticky 祖先随之变整页——工具条会被
     z-index:40 的 .topbar 盖住，索性取消 sticky。 */
  .intel-material-toolbar { position: static; }
  .dyn-row { grid-template-columns: 1fr; gap: 3px; padding: 9px 0; }
  .dyn-row .dyn-ent, .dyn-row .dyn-meta, .dyn-row .dyn-node { white-space: normal; }
  .dyn-stats { gap: 16px; }
}
.prices-layout { display: grid; grid-template-columns: 300px 1fr; gap: 16px; align-items: start; }
.deals-layout { display: grid; grid-template-columns: 1fr; gap: 16px; }

/* 情报全文目录化（2026-07-26 用户裁决）：默认收起只列标题，点开展开全文 */
.tx-acc > summary { cursor: pointer; list-style: none; outline: none; }
.tx-acc > summary::-webkit-details-marker { display: none; }
.tx-acc > summary .hl { position: relative; padding-right: 26px; }
.tx-acc > summary .hl::after {
  content: "›"; position: absolute; right: 2px; top: 50%;
  transform: translateY(-54%) rotate(90deg);
  color: var(--ink-3); font-size: 16px; line-height: 1;
  transition: transform .15s ease;
}
.tx-acc[open] > summary .hl::after { transform: translateY(-54%) rotate(-90deg); }
.tx-acc > summary:hover .hl { color: var(--blue, #1D4ED8); }
.report-material-shell .sig.tx-acc { padding: 11px 17px; }
.tx-acc .tx-acc-body { margin-top: 6px; }

/* 产业研究日摘要压缩（2026-07-26 用户反馈：样板说明块撤下，只留单行状态摘要） */
.intel-summary-compact {
  display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap;
  padding: 2px 2px 12px; margin-bottom: 14px; border-bottom: 1px solid var(--line);
}
.intel-summary-compact .isc-left { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.intel-summary-compact .report-day-title { font-size: 20px; font-weight: 700; }
.intel-summary-compact .isc-sub { color: var(--ink-3); font-size: 12.5px; }
.intel-summary-compact .isc-right { display: flex; gap: 18px; align-items: baseline; flex-wrap: wrap; }
.isc-chip { display: inline-flex; align-items: baseline; gap: 6px; font-size: 12.5px; color: var(--ink-3); }
.isc-chip .isc-v { color: var(--ink-1); font-weight: 650; font-size: 13px; }
.isc-chip.ready .isc-v { color: var(--positive, #157F3D); }
.isc-chip.locked .isc-v { color: #A16207; }

/* 定向监控·我的关键词卡压缩（2026-07-26 用户反馈） */
.card.kw-compact { padding: 14px 18px 12px; }
.kw-title-row { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.kw-title-row .kw-t { margin-bottom: 0; white-space: nowrap; }

/* 自绘下拉（管理后台产品选择；2026-07-26 用户裁决：原生弹层无法跟随站内风格） */
.cselect { position: relative; width: 100%; }
.cselect .cs-btn {
  display: flex; align-items: center; text-align: left; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23878E9C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; background-size: 12px 8px;
  padding-right: 34px;
}
.cselect.open .cs-btn {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent);
}
.cselect .cs-list {
  position: absolute; z-index: 30; top: calc(100% + 6px); left: 0; right: 0;
  background: var(--card); border: 1px solid var(--line-strong); border-radius: 10px;
  box-shadow: 0 12px 32px rgba(20, 28, 48, .14);
  padding: 6px; display: none;
}
.cselect.open .cs-list { display: block; }
.cs-item {
  display: flex; align-items: center; gap: 8px; padding: 9px 10px; border-radius: 7px;
  cursor: pointer; font-size: 14px; color: var(--ink-1);
}
.cs-item:hover { background: var(--accent-bg); }
.cs-item .cs-check { width: 14px; color: var(--accent); visibility: hidden; font-weight: 700; }
.cs-item.on .cs-check { visibility: visible; }
.cs-item.on { color: var(--accent); font-weight: 600; }


/* ── 项目跟踪页（2026-08-11）── */
.trk-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
  gap: 10px; margin: 14px 0 6px; }
.trk-stat { background: var(--card); border: 1px solid var(--line); border-radius: 12px;
  padding: 11px 13px 9px; }
.trk-stat b { display: block; font-family: var(--font-mono); font-size: 21px;
  font-weight: 700; color: var(--ink-1); line-height: 1.2; }
.trk-stat span { font-size: 11.5px; color: var(--ink-3); }
.trk-proj { font-weight: 700; color: var(--accent-deep); }
.trk-quote { margin-top: 8px; padding: 8px 12px; background: var(--surface);
  border-left: 3px solid var(--line-strong); border-radius: 0 6px 6px 0;
  font-size: 12.5px; color: var(--ink-2); line-height: 1.7; }
.trk-quote a { color: var(--accent); text-decoration: none; font-size: 12px; }
.trk-sec { font-size: 17px; font-weight: 700; margin: 26px 0 10px; color: var(--ink-1); }
.proj-list { display: flex; flex-direction: column; gap: 8px; }
.proj-row { display: flex; align-items: center; gap: 14px; background: var(--card);
  border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; }
.pr-main { flex: 1; min-width: 0; }
.pr-name { font-weight: 700; font-size: 13.5px; color: var(--ink-1);
  white-space: normal; line-height: 1.45; word-break: break-word; }
.pr-geo { font-size: 12px; color: var(--ink-3); margin-top: 2px; }
.pr-mw { font-size: 13px; color: var(--accent-deep); min-width: 90px; text-align: right; }
.pr-meta { font-size: 12px; color: var(--ink-3); min-width: 66px; text-align: right; }
@media (max-width: 640px) { .pr-mw, .pr-meta { min-width: 0; } }


/* ── 项目跟踪 v2：大型滑动表格 + 三态信号灯（2026-08-12）── */
.trk-wrap { overflow: auto; max-height: 72vh; border: 1px solid var(--line);
  border-radius: 14px; background: var(--card); }
.trk-table { border-collapse: separate; border-spacing: 0; min-width: 1480px;
  width: 100%; font-size: 13px; }
.trk-table thead th { position: sticky; top: 0; z-index: 3; background: var(--surface-2);
  color: var(--ink-2); font-size: 11.5px; font-weight: 700; letter-spacing: .06em;
  text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line-strong);
  white-space: nowrap; }
.trk-table td { padding: 10px 12px; border-bottom: 1px solid var(--line);
  vertical-align: top; background: var(--card); }
.trk-table .sticky-c0 { position: sticky; left: 0; z-index: 2; min-width: 96px; }
.trk-table .sticky-c1 { position: sticky; left: 96px; z-index: 2; min-width: 140px;
  max-width: 172px; box-shadow: 6px 0 8px -6px rgba(30, 38, 49, .12); }
.trk-table thead .sticky-c0, .trk-table thead .sticky-c1 { z-index: 4; background: var(--surface-2); }
.trk-row.clickable { cursor: pointer; }
.trk-row.clickable:hover td { background: var(--accent-bg); }
.trk-row.open td { background: var(--accent-bg); }
.td-wrap { max-width: 190px; }
.td-latest { min-width: 320px; max-width: 430px; }
.td-pub { white-space: nowrap; color: var(--ink-2); }
.pt-line, .pw-line, .fu-line { font-size: 12px; color: var(--ink-2); line-height: 1.6;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 185px; }
.fu-line { color: var(--accent-deep); }
.fu-none { color: var(--ink-3); }
.lt-sum { font-size: 12.5px; color: var(--ink-2); margin-top: 4px; line-height: 1.62; }
.trk-hint { font-size: 12px; margin: 10px 2px; color: var(--ink-3); }

.lt-wrap { display: inline-flex; align-items: center; gap: 7px; }
.lt { width: 11px; height: 11px; border-radius: 50%; flex: none; }
.lt-label { font-size: 11.5px; color: var(--ink-2); white-space: nowrap; }
.lt-prep { background: #D97706;
  box-shadow: 0 0 0 3px rgba(217, 119, 6, .14), 0 0 9px rgba(217, 119, 6, .55); }
.lt-build { background: #2563EB;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .14), 0 0 9px rgba(37, 99, 235, .55);
  animation: lt-pulse 2.4s ease-in-out infinite; }
.lt-op { background: #059669;
  box-shadow: 0 0 0 3px rgba(5, 150, 105, .14), 0 0 9px rgba(5, 150, 105, .55); }
.lt-halt { background: #9AA1AB; box-shadow: 0 0 0 3px rgba(154, 161, 171, .16); }
.lt-unknown { background: transparent; border: 2px solid var(--faint, #C9CED8); }
@keyframes lt-pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(37, 99, 235, .14), 0 0 8px rgba(37, 99, 235, .45); }
  50% { box-shadow: 0 0 0 5px rgba(37, 99, 235, .10), 0 0 14px rgba(37, 99, 235, .75); } }

.trk-tl { padding: 6px 4px 2px; }
.tl-item { padding: 9px 10px; border-left: 2px solid var(--line-strong); margin: 0 0 8px 6px; }
.tl-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tl-evd { font-size: 11px; color: var(--ink-3); }
.tl-sum { font-size: 12.5px; color: var(--ink-1); margin-top: 5px; line-height: 1.6; }


/* 统计块即筛选（2026-08-12 用户反馈：合并双层按钮） */
.trk-stat.clickable { cursor: pointer; transition: border-color .12s, background .12s; }
.trk-stat.clickable:hover { border-color: var(--accent-line); }
.trk-stat.on { border-color: var(--accent); background: var(--accent-bg); }
.trk-stat.on span { color: var(--accent-deep); }
.trk-tier { margin: 12px 0 2px; }

/* Reversible full-text research mode; observation styles remain available. */
.intel-workbench-grid.intel-material-only { grid-template-columns: minmax(0, 1fr); }
.research-material-controls { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.research-material-controls label { font-size: 13px; color: var(--ink-2); }
.research-material-controls select { min-width: 170px; max-width: 100%; padding: 9px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); color: var(--ink-1); font: inherit; }

/* Tracking news summary v1: detail reading width follows the viewport, not 11 columns. */
.trk-wrap { container-type: inline-size; }
.trk-detail > td { padding: 0; }
.trk-tl { box-sizing: border-box; position: sticky; left: 0; width: 100cqw;
  max-width: calc(100vw - 32px); padding: 18px 22px; }
.trk-news { padding: 14px 0; border-bottom: 1px solid var(--line); }
.trk-news:last-child { border-bottom: 0; }
.trk-news-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; font-size: 12px; }
.trk-news-head a { color: var(--accent); margin-left: auto; }
.trk-news-summary { margin: 10px 0; font-size: 14px; line-height: 1.85; overflow-wrap: anywhere; }
.trk-news-evidence > summary { cursor: pointer; color: var(--accent); font-size: 12px; padding: 5px 0; }
.trk-evidence-item { margin: 12px 0; padding: 10px 14px; background: var(--surface-2); border-radius: 6px; }
.trk-evidence-item p { font-size: 13px; line-height: 1.75; overflow-wrap: anywhere; }
.trk-evidence-meta { color: var(--ink-2); font-size: 12px; }
.trk-news .trk-quote { margin: 8px 0 0; font-size: 12px; line-height: 1.75;
  white-space: normal; overflow-wrap: anywhere; }
.trk-expand { display: block; padding: 4px 0; border: 0; background: transparent;
  color: var(--accent); cursor: pointer; font: inherit; font-size: 11px; }
.trk-expand:focus-visible, .trk-news-evidence > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
