/* ============================================================
   Tax Center Web — PHASE WEB-UX/UI-V1.6
   视觉规范：专业 / 克制 / 清晰 / 高信息价值
   Design Tokens 详见 docs/68_TaxCenter-Web-UXUI-DESIGN-TOKENS.md
   ============================================================ */

/* ---------- 1. Design Tokens（§二十九 / §七 颜色语义） ---------- */
:root {
  /* 布局 */
  --page-max-width: 1200px;
  --header-h: 60px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;

  /* 字体 */
  --font-body: "Segoe UI", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", Arial, sans-serif;
  --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --text-xs: 12px;
  --text-sm: 13px;
  --text-md: 14px;
  --text-lg: 16px;
  --text-h2: 18px;
  --text-h1: 22px;
  --text-headline: 24px;

  /* 颜色（§七） */
  --brand: #1468C8;         /* 品牌蓝 */
  --headline-bg: #1A5FB4;   /* 深蓝头条背景 */
  --accent: #3584E4;        /* 辅助蓝 */
  --ok: #2E9B67;            /* 成功 */
  --watch: #D79A16;         /* 警告 / 待核实 */
  --err: #C74646;           /* 危险 */
  --bg: #F6F8FC;            /* 背景（原型 #F6F8FC） */
  --ink: #2B3A48;           /* 标题 */
  --body: #5C6B7A;          /* 正文 */
  --muted: #6D7A89;         /* 辅助（原型 --muted） */
  --panel: #ffffff;
  --line: #DCE5EF;          /* 原型 --line */
  --brand-soft: #EAF3FF;       /* 原型 --brand-soft */

  /* 形状与阴影（克制） */
  --radius-s: 4px;
  --radius-m: 8px;
  --radius-l: 12px;
  --shadow-1: 0 1px 2px rgba(16, 24, 40, .05);
  --shadow-2: 0 2px 8px rgba(20, 104, 200, .08);

  /* 触控 */
  --touch: 44px;

  /* 原型 token（V2 FINAL UI 1:1 落地，独立命名避免影响既有页面） */
  --brand-deep: #0E4F96;
  --card: #ffffff;
  --text: #1C1C1C;
  --text-proto-muted: #6D7A89;
  --line-proto: #DCE5EF;
  --shadow-proto: 0 6px 22px rgba(19,64,116,.08);
  --radius-proto: 14px;
  --brand-soft-proto: #EAF3FF;
  --badge-blue-bg: #EAF3FF;
  --badge-blue-fg: #0E4F96;
  --badge-green-bg: #EAF8F1;
  --badge-green-fg: #1C7E53;
  --badge-amber-bg: #FFF2C9;
  --badge-amber-fg: #7A5200;
  --badge-red-bg: #FDE8E8;
  --badge-red-fg: #A52121;
  --badge-white-bg: rgba(255,255,255,.14);
  --badge-white-fg: #fff;
}

/* ---------- 2. 基础 ---------- */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--body);
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 1.6;
}
a { color: var(--brand); text-decoration: none; }
a:hover { text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
  border-radius: var(--radius-s);
}
h1, h2, h3 { margin: 0; color: var(--ink); }
img { max-width: 100%; }

/* ---------- 3. Header / 导航（§三 / §十九） ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 60;
  background: #fff;
  border-bottom: 1px solid var(--line);
}
.header-inner {
  max-width: var(--page-max-width);
  margin: 0 auto;
  min-height: var(--header-h);
  padding: 0 var(--space-5);
  display: flex;
  align-items: center;
  gap: var(--space-5);
}
.brand { display: flex; align-items: baseline; gap: 10px; color: var(--ink); min-width: 0; }
.brand:hover { text-decoration: none; }
.brand-mark { font-weight: 700; font-size: 18px; color: var(--brand); white-space: nowrap; }
.brand-sub { font-size: var(--text-xs); color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.nav { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.nav a {
  color: var(--body);
  padding: 12px 14px;
  border-radius: var(--radius-s);
  font-size: var(--text-md);
  min-height: var(--touch);
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}
.nav a:hover { background: var(--brand-soft); text-decoration: none; }
.nav a.active { color: var(--brand); font-weight: 600; box-shadow: inset 0 -2px 0 var(--brand); }

/* 移动端：右上菜单按钮（右对齐 + 当前模块名） */
.nav-toggle {
  display: none;
  margin-left: auto;
  background: var(--brand);
  border: 1px solid var(--brand);
  color: #fff;
  border-radius: var(--radius-s);
  min-height: var(--touch);
  padding: 0 14px;
  font-size: var(--text-md);
  cursor: pointer;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.nav-toggle:hover { background: var(--accent); }
.nav-toggle-icon { font-size: 18px; line-height: 1; }
.nav-toggle-label { font-size: var(--text-md); }
.nav-toggle[aria-expanded="true"] { background: var(--headline-bg); }

/* 遮罩层 */
.nav-overlay {
  position: fixed;
  inset: var(--header-h) 0 0 0;
  background: rgba(20, 30, 45, .45);
  z-index: 55;
}

/* ---------- 4. 页元信息条（更新时间 / 免责，轻量） ---------- */
.page-meta {
  max-width: var(--page-max-width);
  margin: 0 auto;
  padding: 8px var(--space-5) 0;
  font-size: var(--text-xs);
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.page-meta .src { margin-left: auto; }
.dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; flex: none; }
.dot-ok { background: var(--ok); }
.dot-loading { background: var(--watch); }
.dot-error { background: var(--err); }

/* ---------- 5. 内容容器（sticky header 防遮挡） ---------- */
.content { max-width: var(--page-max-width); margin: 0 auto; padding: var(--space-4) var(--space-5) var(--space-5); }
.page-head { margin-bottom: var(--space-4); }
.page-head h1 { font-size: var(--text-h1); margin: 0 0 6px; }
.crumb { font-size: var(--text-sm); color: var(--muted); margin-bottom: 6px; }
.crumb a { color: var(--brand); }
.muted { color: var(--muted); font-size: var(--text-sm); }
[id] { scroll-margin-top: calc(var(--header-h) + 16px); }

/* ---------- 6. 今日头条（§五：深蓝主色） ---------- */
.headline {
  background: var(--headline-bg);
  color: #fff;
  border-radius: var(--radius-l);
  padding: var(--space-5);
  margin-bottom: var(--space-4);
  box-shadow: var(--shadow-2);
}
.headline-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: var(--text-xs); color: #CBE0F8; }
.headline-type { background: rgba(255,255,255,.14); padding: 2px 8px; border-radius: var(--radius-s); }
.headline-title { font-size: var(--text-headline); margin: 10px 0 8px; color: #fff; font-weight: 700; line-height: 1.35; }
.headline-title a { color: #fff; }
.headline-title a:hover { text-decoration: underline; }
.headline-summary { margin: 0 0 12px; color: #D7E6F8; font-size: var(--text-md); }
.headline-foot { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; font-size: var(--text-sm); color: #CBE0F8; }
.headline-org { font-weight: 600; color: #fff; }
.headline-amount { color: #FFE9A8; }
.headline-more { margin-left: auto; color: #fff; font-weight: 600; }
.headline-empty { background: linear-gradient(135deg, #2C4670, var(--headline-bg)); }

/* ---------- 7. 四项全局指标（§六：紧凑横向指标条） ---------- */
.metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius-m);
  overflow: hidden;
  margin-bottom: var(--space-2);
}
.metric {
  background: var(--panel);
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  color: var(--body);
}
.metric:hover { background: var(--brand-soft); text-decoration: none; }
.metric-label { font-size: var(--text-xs); color: var(--muted); }
.metric-value { font-size: var(--text-lg); font-weight: 700; color: var(--brand); }
.metric-warn .metric-value { color: var(--watch); }
.metric-note { margin: 0 0 var(--space-4); }

/* ---------- 8. 面板 / 卡片 ---------- */
.panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: var(--shadow-proto);
  padding: var(--space-4) var(--space-5);
  margin-bottom: var(--space-4);
}
.panel h2 { font-size: var(--text-h2); margin: 0 0 12px; padding-bottom: 8px; border-bottom: 1px solid var(--line); }

/* ---------- 8a. 详情头卡（详情页重设计：徽章行 + 大标题 + 摘要 + 元信息） ---------- */
.detail-hero {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: var(--shadow-proto);
  padding: 22px 24px;
  margin-bottom: var(--space-4);
}
.detail-badges { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; }
.detail-title { font-size: 21px; line-height: 1.55; color: var(--ink); font-weight: 700; margin: 0 0 10px; }
.detail-desc { color: var(--body); font-size: 14px; line-height: 1.75; margin: 0 0 16px; }
.detail-meta {
  display: flex; flex-wrap: wrap; gap: 6px 22px;
  padding-top: 14px; border-top: 1px solid var(--line);
  font-size: 13px; color: var(--muted);
}
.detail-meta b { color: var(--ink); font-weight: 600; }
.detail-meta .amount { color: var(--brand); font-weight: 700; }
.detail-meta a { color: var(--brand); }
@media (max-width: 800px) {
  .detail-hero { padding: 18px 16px; }
  .detail-title { font-size: 18px; }
}

/* 最新动态 feed */
.feed { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); }
.feed-item {
  border: 1px solid var(--line);
  border-radius: var(--radius-m);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: #fff;
}
.feed-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: var(--text-xs); color: var(--muted); }
.feed-name { color: var(--body); font-weight: 600; }
.feed-imp { margin-left: auto; }
.feed-title { font-size: var(--text-md); font-weight: 600; line-height: 1.45; }
.feed-title a { color: var(--ink); }
.feed-title a:hover { color: var(--brand); }
.feed-summary { color: var(--body); font-size: var(--text-sm); flex: 1; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.feed-foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: var(--text-xs); color: var(--muted); }

/* 政策速递 */
.policy-list { list-style: none; margin: 0; padding: 0; }
.policy-item { padding: 10px 0; border-bottom: 1px dashed var(--line); }
.policy-item:last-child { border-bottom: none; }
.policy-head { display: flex; gap: 8px; align-items: center; font-size: var(--text-xs); color: var(--muted); }
.policy-title { font-size: var(--text-md); font-weight: 600; margin: 4px 0; }
.policy-meta { font-size: var(--text-xs); color: var(--muted); }

/* ---------- 9. 标签 / 徽章 / 状态（§七 颜色语义） ---------- */
.tag { display: inline-block; padding: 2px 8px; border-radius: var(--radius-s); font-size: var(--text-xs); border: 1px solid transparent; white-space: nowrap; }
.tag-brand { color: var(--brand); background: var(--brand-soft); border-color: #CFE1F7; }
.tag-cand { color: #6B4FA8; background: #F1ECFA; border-color: #E0D3F2; }
/* SCAN_SET_FIX：C 类「拟上市观察」标签（§四：不得显示为已上市） */
.tag-ipo { color: #8A6D1A; background: #FBF3DC; border-color: #EFDFAF; }

.badge { display: inline-block; padding: 2px 9px; border-radius: var(--radius-s); font-size: var(--text-xs); border: 1px solid transparent; white-space: nowrap; vertical-align: middle; }
.badge-ok, .badge-healthy { color: var(--ok); background: #E9F6EF; border-color: #C8E8D8; }
.badge-watch, .badge-degraded { color: var(--watch); background: #FDF6E6; border-color: #F0E0B6; }
.badge-err, .badge-failed, .badge-error { color: var(--err); background: #FCEDED; border-color: #F3CFCE; }
.badge-candidate { color: #6B4FA8; background: #F1ECFA; border-color: #E0D3F2; }
.badge-muted, .badge-disabled, .badge-unknown { color: var(--muted); background: #F2F3F5; border-color: #E3E5E8; }

.etype { display: inline-block; padding: 2px 8px; border-radius: var(--radius-s); font-size: var(--text-xs); border: 1px solid transparent; white-space: nowrap; vertical-align: middle; }
.etype-INVESTMENT { color: var(--brand); background: var(--brand-soft); border-color: #CFE1F7; }
.etype-LAND { color: var(--ok); background: #E9F6EF; border-color: #C8E8D8; }
.etype-REAL_ESTATE { color: #1F7A7A; background: #E6F5F5; border-color: #C6E4E4; }
.etype-PROJECT { color: #6B4FA8; background: #F1ECFA; border-color: #E0D3F2; }
.etype-PRODUCTION { color: var(--watch); background: #FDF6E6; border-color: #F0E0B6; }
.etype-EQUITY { color: #2A4C9B; background: #EAEFFA; border-color: #D0D9F0; }
.etype-LITIGATION { color: var(--err); background: #FCEDED; border-color: #F3CFCE; }
.etype-MANAGEMENT, .etype-OTHER { color: var(--body); background: #F2F3F5; border-color: #E3E5E8; }

/* ---------- 10. 按钮 ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 18px;
  border-radius: var(--radius-s);
  border: 1px solid var(--line);
  background: #fff;
  color: var(--brand);
  font-size: var(--text-md);
  cursor: pointer;
  text-decoration: none;
}
.btn:hover { text-decoration: none; background: var(--brand-soft); }
.btn-primary { background: var(--brand); color: #fff; border-color: var(--brand); }
.btn-primary:hover { background: var(--accent); }
.btn-sm { min-height: 32px; padding: 0 12px; font-size: var(--text-sm); }
.btn[disabled], .btn.loading { opacity: .7; cursor: progress; }

/* ---------- 11. 筛选器（§二十一：移动端横向滚动，不折行） ---------- */
.filters {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius-m);
  padding: var(--space-3) var(--space-4);
  margin-bottom: var(--space-3);
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: var(--space-3);
  align-items: end;
}
.filters .filter-row-strip { margin-top: 0; }
@media (max-width: 768px) {
  .filters { grid-template-columns: 1fr; }
}
.filter-search input {
  width: 100%;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius-s);
  font-size: var(--text-md);
  font-family: inherit;
}
.filter-strip {
  display: flex;
  gap: var(--space-3);
  margin-top: 10px;
  flex-wrap: wrap;             /* V2 §11：禁止横向滚动才能找到筛选条件 */
  padding-bottom: 2px;
}
.filter-item { display: flex; align-items: center; gap: 6px; flex: none; font-size: var(--text-xs); color: var(--muted); }
.filter-item input, .filter-item select {
  min-height: 36px;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: var(--radius-s);
  font-size: var(--text-sm);
  font-family: inherit;
  background: #fff;
  color: var(--body);
}
.filter-actions { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.result-count { margin: 0 0 var(--space-3); }

/* ---------- 12. 表格 ---------- */
.tbl { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
.tbl th, .tbl td { text-align: left; padding: 9px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.tbl th { background: #F4F8FD; color: var(--muted); font-weight: 600; }
.tbl tbody tr:hover { background: #FAFCFF; }
.tbl .title { max-width: 420px; }
.tbl .summary { max-width: 300px; color: var(--body); }
.tbl tr.clickable { cursor: pointer; }
.tbl tr.clickable:hover { background: var(--brand-soft); }
.kv { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
.kv th, .kv td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.kv th { width: 110px; color: var(--muted); font-weight: 600; background: #F4F8FD; }
.mono { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--muted); }
.amount { color: var(--brand); font-weight: 600; }

/* ---------- 13. 卡片：事件 / 税源 / 数据源 / 状态 ---------- */
.ev-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-3); }
.ev-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius-m);
  box-shadow: var(--shadow-1);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ev-card .ev-title { font-size: var(--text-md); font-weight: 600; line-height: 1.45; }
.ev-card .ev-title a { color: var(--ink); }
.ev-card .ev-name { font-size: var(--text-sm); color: var(--brand); }
.ev-card .ev-desc { color: var(--body); font-size: var(--text-sm); flex: 1; }
.ev-card .ev-meta { display: flex; flex-wrap: wrap; gap: 6px 12px; font-size: var(--text-xs); color: var(--muted); }
.ev-card .ev-foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 4px; }
.link-more { font-size: var(--text-sm); font-weight: 600; color: var(--brand); white-space: nowrap; }

.cand-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-3); }
.cand-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius-m);
  box-shadow: var(--shadow-1);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.cand-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cand-title { font-size: var(--text-md); font-weight: 600; }
.cand-kv { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; margin: 0; font-size: var(--text-xs); color: var(--body); }
.cand-kv dt { color: var(--muted); }
.cand-kv dd { margin: 0; word-break: break-all; }
.cand-foot { margin-top: 4px; display: flex; justify-content: space-between; gap: 8px; align-items: center; }

.src-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); }
.src-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-m); box-shadow: var(--shadow-1); padding: var(--space-4); display: flex; flex-direction: column; gap: 8px; }
.src-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.src-name { font-size: var(--text-md); font-weight: 600; }
.src-code { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--muted); }
.src-card dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; font-size: var(--text-xs); }
.src-card dt { color: var(--muted); }
.src-card dd { margin: 0; word-break: break-all; }

.status-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); }
.status-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-m); box-shadow: var(--shadow-1); padding: var(--space-4); }
.status-card .k { font-size: var(--text-xs); color: var(--muted); }
.status-card .v { font-size: var(--text-md); font-weight: 600; margin-top: 4px; word-break: break-all; }

/* AI 涉税提示 / 土地税务提示（§十二 / §十五） */
.ai-hint, .tax-hint { border-left: 3px solid var(--watch); }
.ai-disclaimer { background: #FDF6E6; color: #8A6212; border: 1px solid #F0E0B6; border-radius: var(--radius-s); padding: 8px 12px; font-size: var(--text-sm); }

/* 分页 */
.pager { display: flex; align-items: center; gap: var(--space-3); margin-top: var(--space-4); flex-wrap: wrap; }

/* ---------- 14. 空状态 / 提示 ---------- */
.alert { padding: 12px 14px; border-radius: var(--radius-m); margin-bottom: var(--space-4); font-size: var(--text-sm); }
.alert-error { color: var(--err); background: #FCEDED; border: 1px solid #F3CFCE; }
.empty { padding: 28px; text-align: center; color: var(--muted); background: var(--panel); border: 1px dashed var(--line); border-radius: var(--radius-m); }
.empty p { margin: 0 0 6px; }

/* ---------- 15. 页脚 ---------- */
.footer {
  max-width: var(--page-max-width);
  margin: 0 auto var(--space-5);
  padding: var(--space-3) var(--space-5);
  font-size: var(--text-xs);
  color: var(--muted);
  display: flex;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  border-top: 1px solid var(--line);
}

/* ---------- 16. 响应式 ---------- */
.mobile-only { display: none; }

@media (max-width: 768px) {
  .brand-sub { display: none; }
  .nav-toggle { display: inline-flex; }
  .nav {
    position: absolute;
    top: var(--header-h);
    right: 0;
    left: auto;
    width: min(280px, 78vw);
    background: #fff;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 8px;
    margin: 0;
    box-shadow: var(--shadow-2);
    border-left: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    display: none;               /* 默认收起 */
  }
  .nav.open { display: flex; }
  .nav a { padding: 14px; border-bottom: 1px solid var(--line); border-radius: 0; color: var(--ink); }
  .nav a:last-child { border-bottom: none; }
  .nav a.active { box-shadow: none; background: var(--brand-soft); }

  .headline { padding: var(--space-4); }
  .headline-title { font-size: 20px; }
  .headline-more { margin-left: 0; }
  .metrics { grid-template-columns: repeat(2, 1fr); }   /* 2×2 */
  .feed { grid-template-columns: 1fr; }
  .ev-grid, .cand-grid { grid-template-columns: 1fr; }
  .src-grid, .status-cards { grid-template-columns: 1fr; }
  .content { padding: var(--space-4) var(--space-4) var(--space-5); }
  .page-meta { padding: 8px var(--space-4) 0; }
  .page-meta .src { margin-left: 0; }
  .desktop-only { display: none; }
  .mobile-only { display: block; }
  .tbl { font-size: var(--text-xs); }
}

@media (max-width: 480px) {
  .metrics { grid-template-columns: repeat(2, 1fr); }
  .header-inner { padding: 0 var(--space-4); gap: var(--space-3); }
}

/* ---------- 17. 数据治理 V1 新增组件 ---------- */
.tag-muted { color: var(--body); background: #F2F3F5; border-color: #E3E5E8; }

/* /updates 三过滤器（§五） */
.kind-filter { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: var(--space-3); }
.kind-filter .btn { min-height: 40px; }

/* 动态列表模式（/updates 纵向列表，非 3 列网格） */
.feed-list { display: grid; grid-template-columns: 1fr; gap: var(--space-3); }
.feed-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

/* 数据源卡片：来源等级 / 失效标记（§二十三/§二十四） */
.src-level { display: inline-block; padding: 1px 7px; border-radius: var(--radius-s); font-size: 11px; border: 1px solid transparent; }
.src-level-A { color: var(--ok); background: #E9F6EF; border-color: #C8E8D8; }
.src-level-B { color: var(--watch); background: #FDF6E6; border-color: #F0E0B6; }
.src-level-C { color: var(--muted); background: #F2F3F5; border-color: #E3E5E8; }
.src-broken { color: var(--err); background: #FCEDED; border: 1px solid #F3CFCE; border-radius: var(--radius-s); padding: 2px 8px; font-size: 12px; }
.src-alt { font-size: var(--text-xs); color: var(--muted); }
.src-card-warn { border-color: #F3CFCE; background: #FFFCFC; }

/* ============================================================
   V2 最终 UI（PHASE_PRODUCTIZATION_V2）
   ============================================================ */

/* ---------- V2-1. 昨日重点深蓝卡片（§六：整卡可点，右下角 →） ---------- */
.hero-card {
  display: block;
  background: var(--headline-bg);
  color: #fff;
  border-radius: var(--radius-l);
  padding: var(--space-5);
  margin-bottom: var(--space-4);
  box-shadow: var(--shadow-2);
  transition: transform .12s ease, box-shadow .12s ease;
}
.hero-card:hover { text-decoration: none; transform: translateY(-1px); box-shadow: 0 6px 18px rgba(20, 104, 200, .18); }
.hero-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: var(--text-xs); color: #CBE0F8; }
.hero-date { font-weight: 600; color: #fff; letter-spacing: .5px; }
.hero-label { background: rgba(255,255,255,.16); padding: 2px 10px; border-radius: 999px; font-weight: 600; }
.hero-title { font-size: 24px; margin: 12px 0 8px; color: #fff; font-weight: 700; line-height: 1.35; }
.hero-summary { margin: 0 0 14px; color: #D7E6F8; font-size: var(--text-md); line-height: 1.7; }
.hero-foot { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; font-size: var(--text-sm); color: #CBE0F8; }
.hero-tag { font-weight: 600; color: #fff; }
.hero-badge { font-style: normal; background: rgba(255,255,255,.14); padding: 1px 8px; border-radius: var(--radius-s); margin-left: 6px; font-weight: 400; }
.hero-cat { background: rgba(255,255,255,.12); padding: 2px 8px; border-radius: var(--radius-s); }
.hero-amount { color: #FFE9A8; }
.hero-arrow { margin-left: auto; font-size: 22px; line-height: 1; color: #fff; font-weight: 700; }
.hero-card-empty { background: linear-gradient(135deg, #2C4670, var(--headline-bg)); }

/* ---------- V2-2. 昨日更新概览（§七：三指标 + 日期口径） ---------- */
.metrics-head { display: flex; align-items: baseline; gap: 8px; margin-bottom: 8px; font-size: var(--text-md); color: var(--ink); font-weight: 600; }
.metrics-date { color: var(--muted); font-weight: 400; font-size: var(--text-sm); }
.metrics-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); margin-bottom: var(--space-4); }
.metric-static { border: 1px solid var(--line); border-radius: var(--radius-m); padding: 12px 16px; display: flex; flex-direction: column; gap: 2px; background: var(--panel); }
.metric-static .metric-value { font-size: var(--text-md); color: var(--body); font-weight: 600; }
.metric-static .metric-label { font-size: var(--text-xs); }

/* ---------- V2-3. 重要程度四档（v4：实心饱和白字胶囊，与「细分类别」浅底深字形成区分） ---------- */
.badge-imp, .badge.imp-1, .badge.imp-2, .badge.imp-3, .badge.imp-4 { border-radius: 999px; font-weight: 600; color: #fff; border-color: transparent; }
.badge-imp-1, .badge.imp-1 { background: #5F6B78; }
.badge-imp-2, .badge.imp-2 { background: #0F8A6C; }
.badge-imp-3, .badge.imp-3 { background: #A2751A; }
.badge-imp-4, .badge.imp-4 { background: #A34E53; }

/* ---------- V2-3b. 类型标签配色（v4：浅底深字、提高饱和度，与重要程度实心 chip 形成对比） ---------- */
.badge-type { border-radius: 6px; font-weight: 500; border-color: transparent; }
.badge-type.type-equity      { color: #5B3FA0; background: #ECE4FA; }  /* 股权变动 */
.badge-type.type-investment  { color: #0B4384; background: #DCEBFD; }  /* 投资事项 */
.badge-type.type-land        { color: #8A5A12; background: #FBE7D2; }  /* 土地成交 */
.badge-type.type-realestate  { color: #3F4F9E; background: #E3E8FB; }  /* 房产变化 */
.badge-type.type-project     { color: #0B6B64; background: #D6F1ED; }  /* 项目建设 */
.badge-type.type-production  { color: #157A4E; background: #DDF3E9; }  /* 投产经营 */
.badge-type.type-litigation  { color: #9E1D1D; background: #FCDBDB; }  /* 诉讼仲裁 */
.badge-type.type-management  { color: #3F4F5E; background: #E6EBF1; }  /* 经营管理 */
.badge-type.type-ipo         { color: #7A5410; background: #F9E9C8; }  /* IPO进展 */
.badge-type.type-other       { color: #5C6773; background: #E9ECF0; }  /* 其他 */

/* 拟上市观察（C 类）：浅紫底无边框，避免与「重要程度=琥珀」撞色 */
.badge-ipo { color: #6B4FA8; background: #F1EBFA; border-color: transparent; border-radius: 6px; font-weight: 500; }

/* ---------- V2-4. 来源链接（§十：蓝色可点击来源名称） ---------- */
.src-link { color: var(--brand); font-weight: 600; white-space: nowrap; }
.src-link:hover { text-decoration: underline; }

/* ---------- V2-5. 列表卡片（§15：PC/移动端统一卡片化，整卡可点） ---------- */
.card-list { display: grid; grid-template-columns: 1fr; gap: var(--space-3); }
.data-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius-m);
  box-shadow: var(--shadow-1);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: 8px;
  cursor: pointer;
  transition: border-color .12s ease, box-shadow .12s ease;
}
.clickable-card:hover { border-color: var(--brand); box-shadow: var(--shadow-2); }
.card-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: var(--text-xs); }
.tag-kind { font-weight: 600; }
.card-title { font-size: var(--text-md); font-weight: 600; line-height: 1.5; }
.card-title a { color: var(--ink); }
.card-title a:hover { color: var(--brand); }
.card-summary { color: var(--body); font-size: var(--text-sm); line-height: 1.65; }
.card-kv { display: flex; gap: 16px; flex-wrap: wrap; font-size: var(--text-xs); color: var(--body); }
.card-kv-item b { color: var(--muted); font-weight: 400; margin-right: 4px; }
.card-foot { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: var(--text-xs); color: var(--muted); margin-top: 2px; }
.card-name { font-weight: 600; }
.card-name a { color: var(--brand); }
.card-arrow, .feed-arrow { margin-left: auto; color: var(--brand); font-size: 16px; font-weight: 700; }

/* ---------- V2-6. 搜索 + 筛选（§11：第一行 搜索框+按钮；第二行 时间/类型/重要程度） ---------- */
.filter-row-search { display: flex; gap: 8px; }
.filter-row-search input[type="search"] {
  flex: 1 1 0%;
  max-width: 100%;
  min-height: 42px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius-s);
  font-size: var(--text-md);
  font-family: inherit;
  background: #fff;
  color: var(--body);
  min-width: 0;
}
.filter-row-search .btn { flex: none; }
.filter-row-strip {
  display: flex;
  gap: var(--space-3);
  margin-top: 10px;
  flex-wrap: wrap;            /* §11：禁止横向滚动才找到筛选条件 */
  align-items: center;
}
.filter-datepair { display: inline-flex; align-items: center; gap: 4px; }
.date-sep { color: var(--muted); }

/* ---------- V2-7. 详情页：涉税提醒 / 假设测算（§16-§22） ---------- */
.detail-subject { font-size: var(--text-md); margin: 0 0 4px; }
.detail-time { margin: 0; }
.risk-list { margin: 0; padding-left: 18px; }
.risk-list li { margin-bottom: 2px; }
.calc-block { border: 1px dashed var(--line); border-radius: var(--radius-m); padding: var(--space-3) var(--space-4); background: #FBFDFF; }
.calc-tag { margin: 0 0 8px; font-size: var(--text-xs); color: var(--muted); }
.calc-line { margin: 0 0 6px; font-size: var(--text-sm); color: var(--body); }
.calc-formula { font-family: var(--font-mono); font-size: var(--text-sm); color: var(--ink); }
.calc-result { font-size: var(--text-md); color: var(--brand); font-weight: 700; }
.calc-note { margin: 4px 0 0; font-size: var(--text-xs); }

/* ---------- V2-8. 日报（§30-§36） ---------- */
.panel-report { border-color: #CFE1F7; }
.report-entry-desc { color: var(--body); font-size: var(--text-sm); margin: 0 0 12px; }
.report-sec { font-size: var(--text-h2); margin: 18px 0 10px; padding-top: 14px; border-top: 1px solid var(--line); }
.report-list { list-style: none; margin: 0; padding: 0; }
.report-item { padding: 8px 0; border-bottom: 1px dashed var(--line); font-size: var(--text-sm); }
.report-item-meta { display: block; color: var(--muted); font-size: var(--text-xs); margin-top: 2px; }
.report-archive { list-style: none; margin: 0; padding: 0; }
.report-archive-item { padding: 8px 0; border-bottom: 1px dashed var(--line); display: flex; gap: 12px; align-items: baseline; flex-wrap: wrap; font-size: var(--text-sm); }
.report-archive-item a { font-weight: 600; font-size: var(--text-md); }
.report-archive-item a.archive-current { color: var(--ok); }

/* ---------- V2-9. 控制台：监控企业名单（§38） ---------- */
.wl-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); }
.wl-col { border: 1px solid var(--line); border-radius: var(--radius-m); padding: var(--space-3) var(--space-4); background: #FBFCFE; }
.wl-head { font-size: var(--text-sm); font-weight: 600; color: var(--ink); margin-bottom: 6px; }
.wl-col ul { margin: 0; padding-left: 16px; font-size: var(--text-xs); color: var(--body); }
.wl-col li { margin-bottom: 2px; }
.src-meta { font-size: var(--text-xs); margin-top: 2px; }
.src-detail summary { font-size: var(--text-xs); color: var(--brand); cursor: pointer; margin-top: 4px; }
.src-detail dl { margin: 6px 0 0; display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; font-size: var(--text-xs); }
.src-detail dt { color: var(--muted); }
.src-detail dd { margin: 0; word-break: break-all; }

/* ---------- V2-10. 页脚免责声明（§43） ---------- */
.footer-disclaimer { color: var(--body); }
.footer-meta { color: var(--muted); }

/* ---------- V2-11. 移动端（390x844 / 414x896） ---------- */
@media (max-width: 768px) {
  .hero-card { padding: var(--space-4); }
  .hero-title { font-size: 20px; }
  .metrics-grid { grid-template-columns: 1fr; gap: var(--space-2); }
  .metrics-grid .metric-static { flex-direction: row; justify-content: space-between; align-items: center; }
  .metric-static .metric-value { font-size: var(--text-md); }
  .filter-row-search input[type="search"] { min-width: 0; }   /* 搜索框独立一整行，按钮紧贴右侧 */
  .filter-row-strip { gap: 8px; }
  .filter-item { width: 100%; }
  .filter-item > span:first-child { width: 56px; flex: none; }
  .filter-item input[type="date"], .filter-item select { flex: 1 1 auto; min-width: 0; }
  .filter-datepair { flex: 1 1 auto; }
  .filter-datepair input[type="date"] { width: 46%; }
  .wl-grid { grid-template-columns: 1fr; }
  .card-kv { gap: 8px 14px; }
}
@media (max-width: 480px) {
  .hero-title { font-size: 18px; }
}

/* ============================================================
   V2 FINAL UI（原型 v3 1:1 落地）—— 新增原型组件类
   仅作用于首页/控制台/日报等重写模板；不动既有服务器类。
   ============================================================ */

/* 头部对齐原型（深蓝品牌 + 毛玻璃） */
.site-header {
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(10px);
}
.brand-mark { color: var(--brand-deep); font-weight: 900; letter-spacing: -.02em; font-size: 19px; }
.brand-tax { color: #1F2937; }
.brand-center { color: #3A5687; }

/* 昨日重点深蓝卡（原型 .hero） */
a.hero, .hero {
  display: block;
  margin-top: 18px;
  border-radius: var(--radius-proto);
  background: var(--brand-deep);
  color: #fff;
  box-shadow: 0 12px 34px rgba(14,79,150,.22);
  padding: 28px 30px;
  cursor: pointer;
  transition: .2s;
  position: relative;
  overflow: hidden;
  text-decoration: none;
}
a.hero:hover, .hero:hover { transform: translateY(-2px); text-decoration: none; }
.hero:before { content: ""; position: absolute; inset: auto -80px -120px auto; width: 340px; height: 340px; background: rgba(255,255,255,.06); border-radius: 50%; }
.hero-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.hero h2 { font-size: 27px; line-height: 1.35; margin: 12px 0 10px; max-width: 900px; color: #fff; font-weight: 700; }
.hero p { margin: 0; max-width: 920px; color: rgba(255,255,255,.86); font-size: 15px; line-height: 1.7; }
.hero-foot { display: flex; justify-content: flex-end; align-items: center; margin-top: 18px; color: rgba(255,255,255,.74); font-size: 12px; }
.hero-arrow { font-size: 28px; line-height: 1; font-weight: 300; color: #fff; opacity: .92; }
.hero-empty { background: linear-gradient(135deg, #2C4670, var(--brand-deep)); }
/* 昨日为空保护提示（阶段 C §六）：明确区分「近期动态」与「昨日重点」 */
.hero-note { margin-top: 12px; font-size: 12.5px; color: rgba(255,255,255,.82); }
.panel-note { padding: 10px 18px; font-size: 12.5px; color: var(--text-proto-muted); background: #F7FAFF; border-bottom: 1px solid var(--line-proto); }

/* 监控范围说明（阶段 C §十一：移至列表页底部） */
.scope-note {
  margin-top: 26px;
  padding: 16px 18px;
  background: #F7FAFF;
  border: 1px solid var(--line-proto);
  border-radius: 12px;
}
.scope-note-title { font-size: 13px; font-weight: 700; color: #425264; margin-bottom: 6px; }
.scope-note p { margin: 0; font-size: 12.5px; line-height: 1.75; color: var(--text-proto-muted); }

/* 通用徽章（原型调色，全部 pill） */
.badge { border-radius: 999px; }
.badge.blue { background: var(--badge-blue-bg); color: var(--badge-blue-fg); }
.badge.green { background: var(--badge-green-bg); color: var(--badge-green-fg); }
.badge.amber { background: var(--badge-amber-bg); color: var(--badge-amber-fg); }
.badge.red { background: var(--badge-red-bg); color: var(--badge-red-fg); }
.badge.white { background: var(--badge-white-bg); color: #fff; }

/* 昨日更新概览（原型 .stats-caption / .stats） */
.stats-caption { margin-top: 18px; font-size: 13px; font-weight: 700; color: #425264; }
.stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-top: 16px; }
a.stat, .stat { background: var(--card); border: 1px solid var(--line-proto); border-radius: 12px; padding: 16px 18px; box-shadow: var(--shadow-proto); text-decoration: none; color: inherit; display: block; }
a.stat:hover, .stat:hover { text-decoration: none; }
.stat .label { color: var(--text-proto-muted); font-size: 13px; }
.stat .num { font-size: 28px; font-weight: 800; margin-top: 4px; color: var(--brand-deep); }
.stat.warn .num { color: var(--watch); }
.stat.good .num { color: var(--ok); }

/* 情报日报入口（原型 .report-entry） */
a.report-entry, .report-entry {
  margin-top: 14px; background: #fff; border: 1px solid #C9DCF5; border-radius: 12px; padding: 14px 16px;
  display: flex; align-items: center; justify-content: space-between; box-shadow: var(--shadow-proto); transition: .18s; text-decoration: none; color: inherit;
}
a.report-entry:hover, .report-entry:hover { transform: translateY(-1px); box-shadow: 0 10px 26px rgba(19,64,116,.1); text-decoration: none; }
.report-kicker { font-size: 12px; color: #7B8794; }
.report-title { font-size: 16px; font-weight: 800; color: var(--brand-deep); margin-top: 2px; }
.report-desc { font-size: 12px; color: #6D7A89; margin-top: 2px; }
.report-arrow { font-size: 25px; color: var(--brand); padding-left: 16px; }

/* 区块（原型 .section / .section-head） */
.section { margin-top: 28px; }
.section-head { display: flex; justify-content: space-between; align-items: end; gap: 12px; margin-bottom: 12px; }
.section-head h3 { margin: 0; font-size: 18px; color: var(--ink); }
.section-head a { font-size: 13px; color: var(--brand); }

/* 双栏（原型 .grid2） */
.grid2 { display: grid; grid-template-columns: 1.15fr .85fr; gap: 16px; }

/* 面板头/体（配合 .panel-flush 去除外层 padding，避免与既有 .panel h2 冲突） */
.panel-flush { padding: 0; }
.panel-head { padding: 15px 18px; border-bottom: 1px solid var(--line-proto); display: flex; justify-content: space-between; align-items: center; }
.panel-head strong { font-size: 15px; color: var(--ink); }
.panel-body { padding: 16px 18px; }

/* 列表项（原型 .item） */
a.item, .item { padding: 14px 0; border-bottom: 1px solid #edf1f5; display: block; cursor: pointer; text-decoration: none; color: inherit; }
a.item:last-child, .item:last-child { border-bottom: 0; }
a.item:hover .item-title, .item:hover .item-title { color: var(--brand-deep); }
.item-title { font-weight: 750; font-size: 15px; margin: 6px 0; color: var(--ink); }
.item-meta { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; color: var(--text-proto-muted); font-size: 12px; }
.item-meta .badge { line-height: 1.5; }
.item-summary { color: #596675; margin-top: 6px; font-size: 13px; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.item-foot { margin-top: 7px; color: #8B97A5; font-size: 12px; }
.source-link { color: var(--brand); text-decoration: underline; text-underline-offset: 2px; font-weight: 650; }

/* 政策（原型 .policy-empty / .policy） */
.policy-empty { background: #F9FBFD; border: 1px dashed var(--line-proto); padding: 14px; border-radius: 10px; color: var(--text-proto-muted); margin-bottom: 12px; }
a.policy, .policy { padding: 14px 0; border-bottom: 1px solid #edf1f5; cursor: pointer; text-decoration: none; color: inherit; display: block; }
a.policy:last-child, .policy:last-child { border-bottom: 0; }
.policy .title2 { font-weight: 750; color: var(--ink); font-size: 15px; }
.policy .meta { font-size: 12px; color: var(--text-proto-muted); margin-top: 4px; }

/* 控制台（原型 .controlgrid / .source-row / .status-dot） */
.controlgrid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 16px; }
/* 栅格内面板允许收缩（宽表格在容器内滚动，禁止把页面撑破） */
.controlgrid > .panel, .grid2 > .panel { min-width: 0; }
.control-list { display: grid; gap: 10px; }
.source-row { display: flex; justify-content: space-between; gap: 14px; padding: 12px 0; border-bottom: 1px solid #edf1f5; align-items: center; }
.source-row:last-child { border-bottom: 0; }
.source-row strong { color: var(--ink); font-size: 14px; }
/* v4：数据来源行改为可下钻入口（点击跳转 /sources#<code>） */
a.source-row { text-decoration: none; color: inherit; transition: background .15s ease; border-radius: var(--radius-m); }
a.source-row:hover { background: var(--brand-soft); }
.src-card[id] { scroll-margin-top: 84px; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; margin-right: 6px; }
.dot-green { background: var(--ok); }
.dot-amber { background: var(--watch); }

/* 运维明细折叠（保留功能数据，不干扰三入口视图） */
.ops-details { margin-top: 16px; border: 1px solid var(--line); border-radius: var(--radius-m); padding: 10px 16px; background: var(--panel); }
.ops-details > summary { cursor: pointer; font-size: var(--text-sm); color: var(--brand); font-weight: 600; }
.ops-details[open] > summary { margin-bottom: 10px; }

/* 移动端原型适配（贴合原型 390/414，覆盖部分既有规则） */
@media (max-width: 800px) {
  .grid2, .controlgrid, .listgrid { grid-template-columns: 1fr; }
  .hero { padding: 22px 18px; border-radius: 15px; }
  .hero h2 { font-size: 20px; }
  .hero p { font-size: 14px; }
  .hero-foot { align-items: flex-start; gap: 8px; flex-direction: column; }
  .stats { grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
  .stat { padding: 12px 10px; }
  .stat .num { font-size: 20px; }
  .stat .label { font-size: 12px; }
  .section { margin-top: 22px; }
  .section-head h3 { font-size: 17px; }
  .item-title { font-size: 15px; }
  .report-entry { padding: 12px 13px; }
  .report-title { font-size: 15px; }
}

/* ============ 原型 v3 列表页组件（tabs / filterbar / field / search / listgrid / card） ============ */
.tabs { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0 14px; }
.tab { padding: 8px 12px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: #526171; cursor: pointer; font-size: 13px; text-decoration: none; display: inline-block; }
.tab:hover { color: var(--brand-deep); }
.tab.active { background: var(--brand-soft); color: var(--brand-deep); border-color: #C9DCF5; font-weight: 600; }

/* §搜索栏优化（整改③）：PC 两列——左搜索框、右筛选条件；控件统一 42px 高度、按钮文字垂直居中 */
.filterbar { display: grid; grid-template-columns: minmax(260px, 1fr) 2.4fr; gap: 10px; align-items: end; margin-bottom: 14px; }
.filter-row-search { display: flex; gap: 8px; align-items: stretch; flex-wrap: wrap; min-width: 0; }
.filter-row-search .btn { flex: none; min-height: 42px; }
.filter-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; min-width: 0; align-items: stretch; }
.field { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 6px 12px; color: var(--muted); display: flex; align-items: center; gap: 8px; min-width: 0; min-height: 42px; }
.field.search { outline: none; flex: 1 1 0%; min-width: 0; color: var(--text); }
.filter-label { white-space: nowrap; color: var(--muted); font-size: 13px; }
.field select { border: 0; background: transparent; color: var(--text); font: inherit; outline: none; width: 100%; cursor: pointer; min-height: 26px; }
.field input[type="date"] { border: 0; background: transparent; color: var(--text); font: inherit; outline: none; min-height: 26px; }
.filter-datepair { display: inline-flex; align-items: center; gap: 6px; }
.filter-datepair input[type="date"] { border: 0; background: transparent; color: var(--text); font: inherit; outline: none; }
.date-sep { color: var(--muted); }

/* §新闻卡片合并（整改④）：整卡可点 + 来源链接独立可点，修复 <a> 嵌套导致的卡片破碎 */
.card, .item { position: relative; }
.stretched-link { position: absolute; inset: 0; z-index: 1; color: inherit; text-decoration: none; border-radius: inherit; }
.stretched-link:hover { text-decoration: none; }
.source-link { position: relative; z-index: 2; }

.listgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.card { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 16px; box-shadow: var(--shadow-proto); cursor: pointer; transition: .18s; display: block; text-decoration: none; color: inherit; }
.card:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(19, 64, 116, .12); }
.card h4 { font-size: 16px; margin: 9px 0 7px; color: var(--text); line-height: 1.5; }
.card:hover h4 { color: var(--brand-deep); }
.card .item-summary { margin-top: 6px; line-height: 1.65; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.card .item-foot { margin-top: 8px; }

/* 名单变更记录下钻页（整改①）：按日期分组的时间线排版 */
.changelog { display: block; }
.changelog-date { font-size: 13px; font-weight: 700; color: #425264; margin: 18px 0 8px; padding-bottom: 6px; border-bottom: 1px solid var(--line-proto); }
.changelog-date:first-child { margin-top: 0; }
.changelog-list { display: grid; gap: 10px; }
.changelog-row { display: flex; gap: 12px; align-items: flex-start; background: var(--card); border: 1px solid var(--line-proto); border-radius: 12px; padding: 12px 14px; box-shadow: var(--shadow-proto); }
.changelog-action { flex: none; margin-top: 1px; }
.changelog-body { flex: 1; min-width: 0; }
.changelog-name { font-size: 14px; font-weight: 600; color: var(--ink); }
.changelog-detail { font-size: 13px; margin-top: 3px; line-height: 1.6; }
.changelog-time { font-size: 12px; margin-top: 4px; }

/* 列表页移动端：搜索/筛选两行式、卡片单列（原型 390/414） */
@media (max-width: 800px) {
  .filterbar { grid-template-columns: 1fr; align-items: stretch; }
  .filter-row { grid-template-columns: repeat(3, 1fr); gap: 6px; }
  .filter-row-search { flex-wrap: wrap; }
  .field.search { min-width: 0; flex: 1 1 0%; }
  .field { padding: 8px 9px; font-size: 12px; }
  .field .filter-label { font-size: 12px; }
  .filter-datepair { flex: 1; min-width: 0; }
  .filter-datepair input[type="date"] { width: 100%; min-width: 0; font-size: 12px; }
  .tabs { gap: 6px; }
  .tab { padding: 7px 10px; font-size: 12px; }
  .listgrid { grid-template-columns: 1fr; }
  .card { padding: 14px; }
  .card h4 { font-size: 15px; }
  /* 控制台/详情表格：容器内横向滚动，禁止撑破页面（移动端无横向溢出） */
  .tbl, table.tbl, .kv { display: block; overflow-x: auto; }
}

/* 数据更新时间条（置顶导航栏下方：绿色圆点 + 文字，按定时任务最近成功运行时间每日动态更新） */
.data-update-bar {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 6px 24px;
  font-size: 12px;
  color: var(--muted);
  background: #F3FAF6;
  border-top: 1px solid #E7F2EC;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.data-update-bar .status-dot {
  width: 9px;
  height: 9px;
  margin: 0;
  flex: none;
  box-shadow: 0 0 0 3px rgba(46, 155, 103, .16);
}
.data-update-bar strong { color: var(--success); font-weight: 700; }

@media (max-width: 800px) {
  .data-update-bar { padding: 6px 14px; font-size: 11px; white-space: normal; }
}



/* ===== Phase 2F：AI 涉税分析（Agent 生成，仅供参考） ===== */
.tag-warn { color: var(--warning, #D79A16); background: #FCF3E2; border: 1px solid #F0D9A8; border-radius: 6px; padding: 1px 7px; font-size: 12px; }
.tag-muted { color: var(--muted, #6D7A89); background: #EEF2F7; border: 1px solid #DCE5EF; border-radius: 6px; padding: 1px 7px; font-size: 12px; }
.ai-analysis { border-left: 3px solid var(--brand, #1468C8); background: linear-gradient(180deg, #F4F9FF 0%, #FFFFFF 60%); }
.ai-analysis h2 .badge-imp-2 { margin-left: 6px; }
.ai-line { margin: 7px 0; line-height: 1.6; }
.ai-impact { color: #1C1C1C; }
.ai-impact b { color: var(--brand, #1468C8); }
.ai-meta { margin: 8px 0; display: flex; gap: 8px; flex-wrap: wrap; }
.ai-disclaimer { margin-top: 8px; padding: 7px 10px; background: #FFF8EC; border: 1px solid #F2E2C2; border-radius: 8px; color: #8a6d3b; font-size: 12.5px; }
.hero-ai { margin: 8px 0 0; font-size: 13.5px; color: #1C1C1C; }
.hero-ai .badge, .item-ai .badge { margin-right: 6px; }
.item-ai { color: #2a2a2a; font-size: 12.5px; }

/* ============================================================
   v4 迁移：已移除固定底部导航（bottom-nav），改为顶部品牌导航栏
   ============================================================ */

/* 内容区与页脚底部留白（原先为固定底部导航预留，v4 保留为常规留白） */
.content { padding-bottom: var(--space-5); }
.footer { margin-bottom: var(--space-5); }

/* 首页重排版：区块标题左竖线（信息聚合站常见区块样式） */
.section-head h3 { display: flex; align-items: center; }
.section-head h3::before {
  content: "";
  flex: none;
  width: 4px;
  height: 16px;
  border-radius: 2px;
  background: var(--brand);
  margin-right: 9px;
}

/* 首页重排版：昨日更新概览卡片 hover 轻微上浮 */
a.stat { transition: transform .15s ease, box-shadow .15s ease; }
a.stat:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(19, 64, 116, .1); }

/* 控制台入口（首页最下方，整改：控制台入口迁移至此） */
.console-entry {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px;
  border-radius: 14px;
  border: 1px solid #C9DCF5;
  background: linear-gradient(135deg, var(--brand-soft) 0%, #F7FBFF 55%, #FFFFFF 100%);
  box-shadow: var(--shadow-proto);
}
.console-entry-title { font-size: 16px; font-weight: 800; color: var(--brand-deep); }
.console-entry-desc { font-size: 13px; color: var(--text-proto-muted); margin-top: 3px; }
.console-entry .btn { flex: none; min-width: 136px; }

/* 移动端适配（控制台入口） */
@media (max-width: 800px) {
  .console-entry { flex-direction: column; align-items: stretch; text-align: center; }
  .console-entry .btn { width: 100%; }
}

/* ============================================================
   Web 整改（2026-08-31 晚）：顶部品牌删除 / 时间条入内容区 /
   重点动态瀑布流连接 / 政策速递 3 条 / 搜索栏筛选居中
   ============================================================ */

/* 数据更新时间条：由顶部 header 移入内容区顶部（圆角小条） */
.content > .data-update-bar {
  margin: 0 0 16px;
  border: 1px solid #E7F2EC;
  border-top: 1px solid #E7F2EC;
  border-radius: 10px;
}

/* v4：移除重点动态左侧瀑布流连接线与环形节点（改为普通内嵌卡片列表，与 v4 原型一致） */

/* 搜索栏调整（整改⑦）：筛选条件水平居中、宽度贴合交互控件（不超按钮宽） */
.filter-row { display: flex; justify-content: center; align-items: stretch; gap: 10px; flex-wrap: wrap; }
.filter-row .field { flex: 0 1 auto; width: auto; justify-content: center; padding: 6px 12px; }
.filter-row .field .filter-label { flex: none; }
.filter-row .field select, .filter-row .field input[type="date"] { min-width: 0; }
@media (max-width: 800px) {
  .filter-row { gap: 8px; }
  .filter-row .field { flex: 1 1 100%; width: 100%; justify-content: flex-start; }
}

/* 搜索栏最终优化（整改：点击「搜索」按钮 → 下拉展开筛选条件面板） */
.filterbar { display: grid; grid-template-columns: 1fr; gap: 10px; align-items: stretch; margin-bottom: 14px; }

/* 下拉筛选面板（默认隐藏，点击搜索按钮展开） */
.filter-panel {
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(19, 64, 116, .10);
  padding: 14px;
  display: grid;
  gap: 12px;
  animation: filterDrop .18s ease-out;
}
.filter-panel[hidden] { display: none; }
@keyframes filterDrop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }

.filter-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; align-items: stretch; justify-content: stretch; }
.filter-row .field { width: 100%; justify-content: center; padding: 6px 12px; }
.filter-panel-actions { display: flex; justify-content: flex-end; gap: 8px; }
.filter-panel-actions .btn { min-height: 40px; }

@media (max-width: 800px) {
  .filter-row { grid-template-columns: 1fr; gap: 8px; }
  .filter-row .field { justify-content: flex-start; }
  .filter-panel-actions { justify-content: stretch; }
  .filter-panel-actions .btn { flex: 1 1 auto; }
}

/* ============================================================
   设计系统 v3.1 对齐层（2026-09-03，对照 tax-center-ui-redesign/index.html）
   1:1 落地：serif 标题 / 品牌深蓝 / 渐变 hero / 三卡大数字 / 胶囊徽章 /
   圆角 6-10-14 / 容器 1120 / 导航 56 / 间距阶梯 16-20-24-32
   保留既定差异：重要程度三档 + imp-2 青绿(AI 徽标)
   ============================================================ */

:root {
  --page-max-width: 1120px;
  --header-h: 56px;
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-8: 32px; --space-10: 40px; --space-12: 48px;
  --bg: #F5F7FA;
  --surface: #FFFFFF; --surface-alt: #FAFBFD;
  --line: #E4EAF1; --line-strong: #D3DDE9;
  --ink: #1F2937; --body: #3B4757; --muted: #6E7D8C; --ink-300: #9AA7B4;
  --brand: #4A6BA6; --brand-deep: #3A5687;
  --brand-50: #F3F7FC; --brand-100: #E6EEF9; --brand-200: #CBDCF1; --brand-300: #A9C2E5;
  --brand-500: #5C82C0; --brand-600: #4A6BA6; --brand-700: #3A5687; --brand-800: #2E4570;
  --brand-soft: #EDF3FB;
  --accent: #4A6BA6;
  --headline-bg: #2E4570;
  --ok: #4A8A70; --watch: #B08A42; --err: #A85F63;
  --ok-bg: #E9F3EE; --warn-bg: #FAF3E4; --danger-bg: #FBEDEE;
  --grad-hero: linear-gradient(135deg, #3E6098 0%, #2E4570 100%);
  --radius-s: 6px; --radius-m: 10px; --radius-l: 14px; --radius-pill: 999px;
  --shadow-1: 0 1px 2px rgba(35,55,84,.04);
  --shadow-2: 0 2px 8px rgba(35,55,84,.06);
  --shadow-3: 0 8px 24px rgba(35,55,84,.09);
  --font-serif: "Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",Georgia,serif;
  --font-sans: "PingFang SC","Microsoft YaHei","Hiragino Sans GB","Segoe UI",system-ui,-apple-system,sans-serif;
}

body { font-family: var(--font-sans); color: var(--body); background: var(--bg); }
h1, h2, h3, h4 { font-family: var(--font-serif); color: var(--ink); font-weight: 700; line-height: 1.35; }
a { color: var(--brand-600); }

/* —— 顶部导航 / 品牌（56px，品牌 23px/900） —— */
.header-inner { min-height: var(--header-h); padding: 0 var(--space-4); }
.brand-mark { font-weight: 900; font-size: 23px; letter-spacing: -0.015em; color: var(--ink-900, var(--ink)); }
.brand-sub { display: none; }
.nav a { font-size: var(--text-md); color: var(--body); min-height: 44px; }
.nav a.active { color: var(--brand-700); font-weight: 600; box-shadow: inset 0 -2px 0 var(--brand-700); }
.nav-toggle { border-radius: var(--radius-m); background: var(--brand-700); border-color: var(--brand-700); }

/* —— 页面容器 / 标题 —— */
.content { padding-top: var(--space-4); }
.page-head h1, .page-title { font-family: var(--font-serif); font-size: 24px; color: var(--ink); font-weight: 700; margin: 0 0 4px; }
.page-head .muted, .page-sub { font-size: 13px; color: var(--muted); }
@media (min-width: 760px) { .page-head h1, .page-title { font-size: 30px; } }

/* —— 首页头条卡：全站唯一渐变 —— */
.hero {
  background: var(--grad-hero); color: #fff; border-radius: var(--radius-l);
  padding: var(--space-6) var(--space-5); box-shadow: var(--shadow-3);
  min-height: 214px; display: flex; flex-direction: column; justify-content: space-between;
  margin-bottom: var(--space-4); position: relative;
}
.hero:hover { text-decoration: none; }
.hero h2 { font-family: var(--font-serif); font-size: 20px; line-height: 1.45; color: #fff; margin: 10px 0 8px; }
.hero p { color: #D6E3F5; font-size: 13px; line-height: 1.65; margin: 0; }
.hero-top { display: flex; gap: var(--space-2); flex-wrap: wrap; align-items: center; }
.hero-note { color: #C6D8F0; font-size: 12px; margin-top: 10px; }
.hero-foot { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; font-size: 13px; color: #C6D8F0; }
.hero-arrow { font-size: 22px; line-height: 1; color: #fff; }
.hero-empty { background: linear-gradient(135deg,#2C4670,#2E4570); justify-content: flex-start; }
.hero-empty h2 { margin-top: 0; }
.badge.white, .badge-white { background: rgba(255,255,255,.16); color: #fff; border-color: rgba(255,255,255,.26); }
@media (min-width: 760px) { .hero h2 { font-size: 24px; } }

/* —— 昨日更新概览：三卡大数字 —— */
.stats-caption { font-size: 13px; color: var(--muted); margin: 4px 0 10px; }
.stats { display: grid; grid-template-columns: 1fr; gap: var(--space-3); margin-bottom: var(--space-6); }
.stat {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-4);
  background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--brand-600);
  border-radius: var(--radius-m); padding: var(--space-4) var(--space-5); box-shadow: var(--shadow-1);
  min-height: 76px;
}
.stat:hover { box-shadow: var(--shadow-2); text-decoration: none; }
.stat .label { font-size: 13px; color: var(--muted); }
.stat .num { font-family: var(--font-serif); font-size: 30px; font-weight: 700; line-height: 1.15; color: var(--brand-600); }
.stat.warn { border-left-color: #E8A85C; } .stat.warn .num { color: var(--watch); }
.stat.good { border-left-color: var(--ok); }  .stat.good .num { color: var(--ok-700, #3F7A62); }
@media (min-width: 760px) { .stats { grid-template-columns: repeat(3, 1fr); } }

/* —— 日报入口（entry 卡） —— */
.report-entry {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-4);
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-m);
  padding: var(--space-4) var(--space-5); box-shadow: var(--shadow-1); margin-bottom: var(--space-6);
}
.report-entry:hover { box-shadow: var(--shadow-2); border-color: var(--brand-200); text-decoration: none; }
.report-title { font-family: var(--font-serif); font-size: 16px; font-weight: 700; color: var(--ink); }
.report-arrow { color: var(--ink-300); font-size: 18px; }

/* —— 区块标题（左侧 3px 蓝条） —— */
.section { margin-top: var(--space-8); }
.section-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-4); }
.section-head h3 { font-family: var(--font-serif); font-size: 18px; position: relative; padding-left: 12px; }
.section-head h3::before { content: ""; position: absolute; left: 0; top: 3px; bottom: 3px; width: 3px; border-radius: 2px; background: var(--brand-600); }
.section-head a { font-size: 13px; color: var(--brand-600); }
.grid2 { display: grid; grid-template-columns: 1fr; gap: var(--space-4); }
@media (min-width: 760px) { .grid2 { grid-template-columns: 1fr 1fr; } }

/* —— 面板 —— */
.panel { border-radius: var(--radius-l); padding: 0; border: 1px solid var(--line); box-shadow: var(--shadow-1); margin-bottom: var(--space-4); overflow: hidden; }
.panel-flush { padding: 0; }
.panel-head {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-3);
  padding: 13px var(--space-5); border-bottom: 1px solid var(--line); background: var(--surface-alt);
}
.panel-head strong { font-family: var(--font-serif); font-size: 16px; color: var(--ink); }
.panel-body { padding: var(--space-3) var(--space-5) var(--space-5); }
.badge.blue { background: #E2EBF8; color: #2F4D85; border-color: #C5D3EC; }
.badge.amber { background: #FBEBC9; color: #7A5C0E; border-color: #EED79A; }
.badge.green { background: #D6F0E0; color: #28624A; border-color: #A9DCC2; }
.badge.red { background: #FADCE7; color: #76334F; border-color: #EEB9CD; }

/* —— 内嵌卡片（重点动态 .item / 政策） —— */
.timeline { padding-top: 6px; }
.timeline .item, .timeline .policy {
  position: relative; display: block; background: var(--surface);
  border: 1px solid var(--line); border-left: 3px solid var(--brand-600);
  border-radius: var(--radius-m); padding: 14px 18px; box-shadow: var(--shadow-1);
}
.timeline .item + .item { margin-top: var(--space-3); }
.timeline .item:hover, .timeline .policy:hover { box-shadow: var(--shadow-2); border-color: var(--brand-200); }
.timeline .item-meta, .item .item-meta, .card .item-meta { display: flex; gap: var(--space-2); flex-wrap: wrap; align-items: center; margin-bottom: 8px; }
.item-title { font-family: var(--font-serif); font-size: 16px; font-weight: 700; line-height: 1.5; color: var(--ink); margin-bottom: 6px; }
.item-summary { font-size: 13px; color: var(--muted); line-height: 1.65; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.item-foot { display: flex; gap: var(--space-2); flex-wrap: wrap; font-size: 12px; color: var(--muted); margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--line); }
.policy { position: relative; display: block; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-m); padding: 12px 18px; box-shadow: var(--shadow-1); margin-top: var(--space-3); }
.policy:hover { box-shadow: var(--shadow-2); border-color: var(--brand-200); text-decoration: none; }
.policy .title2 { font-family: var(--font-serif); font-size: 16px; font-weight: 700; color: var(--ink); line-height: 1.5; margin: 8px 0 4px; }
.policy .meta { font-size: 12px; color: var(--muted); }
.policy-empty, .empty-panel {
  padding: var(--space-6) var(--space-4); text-align: center; color: var(--muted); font-size: 13px;
  background: var(--surface-alt); border: 1px dashed var(--line-strong); border-radius: var(--radius-m);
}
.policy-empty { margin-top: var(--space-3); }

/* —— 徽章：胶囊统一规格（重要程度三档实心 + AI 青绿为既定差异） —— */
.badge { border-radius: var(--radius-pill); padding: 5px 11px; font-weight: 400; font-size: 12px; line-height: 1; gap: 6px; vertical-align: middle; }
.badge-imp, .badge-imp-1, .badge-imp-2, .badge-imp-3, .badge-imp-4,
.badge.imp-1, .badge.imp-2, .badge.imp-3, .badge.imp-4 { font-weight: 500; }
.badge-type, .etype { border-radius: var(--radius-pill); font-weight: 400; border-color: transparent; }
.tag { border-radius: var(--radius-sm, var(--radius-s)); }
.tag-ipo, .badge-ipo { border-radius: var(--radius-pill); }

/* —— 列表页：listgrid + card —— */
.listgrid { display: grid; grid-template-columns: 1fr; gap: var(--space-3); }
@media (min-width: 760px) { .listgrid { grid-template-columns: repeat(2, 1fr); } }
.listgrid .card {
  position: relative; display: flex; flex-direction: column; gap: 4px;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-m);
  padding: var(--space-4) var(--space-5); box-shadow: var(--shadow-1);
}
.listgrid .card:hover { box-shadow: var(--shadow-2); border-color: var(--brand-200); }
.listgrid .card h4, .card h4 { font-family: var(--font-serif); font-size: 16px; font-weight: 700; line-height: 1.5; color: var(--ink); margin: 2px 0 6px; }
.listgrid .card .item-summary { color: var(--muted); }
.listgrid .card .item-foot {
  display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap;
  margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--line);
  font-size: 12px; color: var(--muted);
}
.stretched-link { position: absolute; inset: 0; z-index: 1; }
.card:hover .stretched-link { text-decoration: none; }

/* —— filterbar / 按钮 / 输入 —— */
.filterbar { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-l); padding: var(--space-4); box-shadow: var(--shadow-1); margin-bottom: 12px; }
.filter-row-search { display: flex; gap: var(--space-2); }
.filter-row-search .field, .filter-row-search input.field { height: 44px; border: 1px solid var(--line-strong); border-radius: var(--radius-m); font-size: 14px; }
.filter-panel { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px dashed var(--line); }
.filter-row { display: grid; grid-template-columns: 1fr; gap: var(--space-4); }
.filter-item { flex-direction: row; align-items: center; }
.filter-item input, .filter-item select, .filter-item .field input { min-height: 40px; border-radius: var(--radius-m); border-color: var(--line-strong); }
.filter-label { font-size: 12px; color: var(--muted); }
.result-count { font-size: 13px; color: var(--muted); margin: var(--space-4) 0; }
.btn { min-height: 44px; padding: 0 var(--space-4); border-radius: var(--radius-m); border: 1px solid var(--line-strong); color: var(--brand-700); background: var(--surface); font-size: 14px; }
.btn:hover { background: var(--brand-50, #F3F7FC); text-decoration: none; }
.btn-primary { background: var(--brand-700); border-color: var(--brand-700); color: #fff; }
.btn-primary:hover { background: var(--brand-800); color: #fff; }
.btn-sm { min-height: 34px; font-size: 13px; padding: 0 12px; }

/* —— 详情页 —— */
.detail-hero { border-radius: var(--radius-l); padding: 24px var(--space-5); }
.detail-badges { gap: var(--space-2); }
.detail-title { font-family: var(--font-serif); font-size: 24px; line-height: 1.4; color: var(--ink); }
@media (min-width: 760px) { .detail-title { font-size: 30px; } }
.detail-desc { color: var(--body); }
.detail-meta { font-size: 13px; color: var(--muted); }
.detail-meta b { color: var(--ink); }
.block { border-radius: var(--radius-l); }
.block-head { background: var(--surface-alt); padding: var(--space-4) var(--space-5); }
.block-head h2 { font-family: var(--font-serif); font-size: 16px; }
.block-ico { background: var(--brand-700); border-radius: var(--radius-sm, 6px); }
.amount { font-family: var(--font-serif); font-weight: 700; color: var(--brand-700); }

/* —— 表格 —— */
.tbl { font-size: 13px; }
.tbl th { background: var(--surface-alt); color: var(--muted); }
.kv th { color: var(--muted); width: 108px; }
.kv td { color: var(--body); }

/* —— 控制台 / 数据源 —— */
.src-grid, .status-cards, .ev-grid, .cand-grid { gap: var(--space-3); }
.src-card, .ev-card, .cand-card, .status-card { border-radius: var(--radius-m); box-shadow: var(--shadow-1); }
.src-name, .source-name { font-size: 14px; font-weight: 600; color: var(--ink); }
.src-code, .source-meta, .source-meta { font-size: 12px; color: var(--muted); }
.source-row { padding: var(--space-4) 0; }
.status-dot { width: 8px; height: 8px; }
.dot-green { background: var(--ok); } .dot-amber { background: var(--watch); } .dot-red { background: var(--err); }

/* —— 页脚 / 空态 / 提示 —— */
.footer { margin-top: var(--space-10); color: var(--muted); }
.empty { background: var(--surface-alt); border-color: var(--line-strong); border-radius: var(--radius-m); }
.alert-error { color: var(--err); background: var(--danger-bg); border-color: #EBC9CB; }

/* —— 桌面增强（≥760px，对应原型） —— */
@media (min-width: 760px) {
  .filter-row { grid-template-columns: repeat(3, 1fr); }
  .content { padding-top: var(--space-5); }
  .footer { flex-direction: row; justify-content: space-between; }
}

/* —— 移动端（≤768px）钉死原有关键行为 —— */
@media (max-width: 768px) {
  .page-head h1 { font-size: 22px; }
  .hero { padding: var(--space-4); }
  .hero h2 { font-size: 19px; }
  .stat .num { font-size: 26px; }
  .listgrid .card, .timeline .item { padding: 14px 16px; }
  .panel-head { padding: 12px 16px; }
  .panel-body { padding: 10px 16px 16px; }
  .detail-hero { padding: 18px 16px; }
  .detail-title { font-size: 20px; }
  /* FIX ①：展开菜单浮于遮罩之上，导航链接可点可跳（遮罩 z=55） */
  .nav.open { z-index: 60; }
  /* FIX ③：首页/日报更新卡片移动端强制单列（提高特异性，杜绝历史规则竞争） */
  body .stats { grid-template-columns: 1fr; }
  body .metrics-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   Baseline v1.0 Fix（2026-09-03，经用户批准）
   ① 移动端导航点击修复 ② 事件详情按原型 v3.1 排版/文字/配色 ③ 移动单列
   ============================================================ */

/* —— 事件详情（v1.9：卡片标题视觉强调 + 涉税分析底色区分） —— */
.panel > .panel-title, .panel > h2.panel-title { display: none; }
.tax-hint, .ai-analysis, .calc { overflow: hidden; }

/* v1.9 卡片标题强调：左侧色条 + 图标 + 背景渐变 */
.panel > h2.block-title {
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  margin: 0;
  padding: 13px 20px 13px 16px;
  background: linear-gradient(90deg, #F0F4FA 0%, #F8FAFD 100%);
  border-bottom: 1px solid var(--line);
  border-left: 4px solid var(--brand-600, #1468C8);
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.panel > h2.block-title::before {
  content: '';
  width: 18px; height: 18px;
  background: var(--brand-600, #1468C8);
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3C/svg%3E") center/contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3C/svg%3E") center/contain no-repeat;
  flex: none;
  opacity: .9;
}

/* 涉税分析卡片：浅青底色 + 深青左条区分 */
.panel.tax-analy {
  background: #F6FBFA;
  border: 1px solid #CDE8E2;
  border-left: 4px solid #2E9B67;
}
.panel.tax-analy > h2.block-title {
  background: linear-gradient(90deg, #E8F5F1 0%, #F6FBFA 100%);
  border-left-color: #2E9B67;
  border-bottom-color: #CDE8E2;
}
.panel.tax-analy > h2.block-title::before {
  background: #2E9B67;
}

/* 原文摘要卡片：淡紫左条（与涉税分析形成冷暖对比） */
.panel.digest > h2.block-title {
  border-left-color: #7B68EE;
  background: linear-gradient(90deg, #F3F0FF 0%, #FAF9FF 100%);
}
.panel.digest > h2.block-title::before {
  background: #7B68EE;
}

/* AI 子区块在涉税分析卡内：淡青分隔 */
.analy-part.ai-part {
  background: #EDF7F4;
  border-radius: 10px;
  margin: 12px 20px 16px;
  padding: 14px 16px;
}
.ai-analysis > h2 { color: var(--ink); }
.detail-badges { align-items: center; }
.detail-meta {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px 24px;
  align-items: start;
}
@media (min-width: 760px) {
  .detail-meta { grid-template-columns: repeat(3, 1fr); }
}
.ai-disclaimer {
  background: #FAF3E4;
  color: #96762F;
  border: 1px solid #E9D8B2;
  border-radius: var(--radius-m);
  padding: 10px 14px;
  font-size: 12px;
  line-height: 1.7;
  margin: 12px 0 0;
}
.ai-line { line-height: 1.75; margin: 8px 0; }
.ai-meta { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0 0; }
.ai-meta .tag, .ai-meta .badge { margin: 0; }
/* 涉税提醒税种胶囊化 + 深青浅底（原型 c-taxsrc 语义） */
.tax-hint .kv .tag { border-radius: var(--radius-pill); padding: 4px 10px; background: #D5EDE8; color: #28544D; border-color: #AEDBD1; }
.kv th { color: var(--muted); font-weight: 400; }
.kv td { color: var(--body); }
/* 事件详情面板内容留白（块式：头带 + 内容） */
.panel > h2.block-title + .empty,
.panel > h2.block-title + ul,
.calc > h2.block-title + .calc-block,
.tax-hint > h2.block-title + .empty { margin: 16px 20px; }
.panel > h2.block-title + p { margin: 12px 20px 0; }
.panel > h2.block-title ~ p.muted { margin: 8px 20px 16px; }
.ai-analysis { padding: 4px 20px 18px; }
.ai-analysis > h2.block-title { margin: -4px -20px 4px; }
.tax-hint .kv, .panel > h2.block-title + table.kv { margin: 0; }
.ai-meta { margin: 12px 0 0; }
/* 原文内容概述卡片（概述 + 重要信息两段式） */
.digest-body { font-size: 14px; color: var(--body); line-height: 1.85; }
.digest-part { margin: 14px 20px 0; }
.digest-part:first-of-type { margin-top: 16px; }
.digest-part .digest-body { margin: 0; }
.digest-label { font-size: 12px; color: var(--muted); font-weight: 600; letter-spacing: .02em; margin-bottom: 4px; }
.digest-note { font-size: 12px; color: var(--muted); line-height: 1.6; margin: 10px 20px 16px; }

/* ============================================================
   Baseline v1.2 Fix（2026-09-03，用户四项整改：移动端优先）
   ① 顶栏下拉被遮罩压制→header z 提至60（见 .site-header）
   ② 移动端更新卡单列强化（见 ≤768 body .stats）
   ③ 重点动态内嵌卡片左侧线条=重要程度色
   ④ 政策速递/日报汇总文字与卡片边缘对齐
   ============================================================ */

/* FIX ③：左侧线条与「重要程度」徽章同色（timeline 内嵌卡片）
   默认品牌蓝；有重要程度徽章时跟随其色；无徽章保持品牌蓝 */
.timeline .item { border-left-color: var(--brand-600); }
.timeline .item:has(.badge.imp-1, .badge-imp-1) { border-left-color: #5F6B78; }
.timeline .item:has(.badge.imp-2, .badge-imp-2) { border-left-color: #0F8A6C; }
.timeline .item:has(.badge.imp-3, .badge-imp-3) { border-left-color: #A2751A; }
.timeline .item:has(.badge.imp-4, .badge-imp-4) { border-left-color: #A34E53; }

/* FIX ④-1：政策速递——面板内条目化，文字与卡片内边缘对齐（取消嵌套卡重影） */
.panel-flush .policy {
  display: block;
  margin: 0;
  padding: 13px 2px;
  background: transparent;
  border: 0;
  border-bottom: 1px dashed var(--line);
  border-radius: 0;
  box-shadow: none;
}
.panel-flush .policy:hover { background: transparent; border-color: transparent; box-shadow: none; }
.panel-flush .policy:first-of-type { padding-top: 4px; }
.panel-flush .policy:last-child { border-bottom: 0; }
.panel-flush .policy .item-meta { margin-bottom: 0; }
.panel-flush .policy .title2 { font-size: 15px; line-height: 1.5; margin: 6px 0 4px; }
.panel-flush .policy .meta { font-size: 12px; color: var(--muted); }

/* FIX ④-2：日报汇总入口——标题行高与箭头对齐、左右留白一致 */
.report-entry { padding: 14px 18px; }
.report-entry .report-title { font-size: 16px; line-height: 1.45; }
.report-arrow { font-size: 18px; color: var(--ink-300); }

/* 移动端：政策标题字号与留白微调 */
@media (max-width: 768px) {
  .panel-flush .policy { padding: 12px 0; }
  .panel-flush .policy .title2 { font-size: 14px; }
  .report-entry { padding: 13px 14px; }
}

/* ============================================================
   Baseline v1.3 Fix（2026-09-03，用户 6 项整改：移动端优先）
   ① /sources 移出一级导航（见 base.html/console.html）
   ② 移动端更新卡强制单列(!important) + 卡片左色块加粗
   ③ 日报中心排版统一内缩
   ④ 标签色彩规则（重要程度/业务细分 鲜明化）
   ⑤ 首页重点卡与重点动态去重（见 home.html）
   ============================================================ */

/* —— ② 移动端更新卡单列（最高优先级，绝不被任何规则覆盖） —— */
@media (max-width: 767px) {
  body .stats { grid-template-columns: 1fr !important; }
  body .metrics-grid { grid-template-columns: 1fr !important; }
}
/* 更新卡左色块加粗 */
.stat { border-left-width: 6px; }

/* —— 控制台 head-actions（数据源→二级页入口） —— */
.head-actions { display: inline-flex; align-items: center; gap: 12px; }
.head-actions .source-link { font-size: 13px; font-weight: 600; }

/* —— ④-1 重要程度（实心白字；三档+AI青绿既定） —— */
.badge-imp-1, .badge.imp-1 { background: #55606E; border-color: #55606E; }  /* 常规-石墨 */
.badge-imp-2, .badge.imp-2 { background: #0D7A5E; border-color: #0D7A5E; }  /* AI-青绿 */
.badge-imp-3, .badge.imp-3 { background: #B45309; border-color: #B45309; }  /* 重要-琥珀深 */
.badge-imp-4, .badge.imp-4 { background: #BE3B44; border-color: #BE3B44; }  /* 重大-绯红 */

/* —— ④-2 业务细分类别（浅底深字、鲜明配色，文本对比度≥4.5:1） —— */
.badge-type.type-equity      { color: #413B9B; background: #E6E1FF; border-color: #B5AAEE; } /* 股权变动 */
.badge-type.type-investment  { color: #0C6472; background: #CFEEF4; border-color: #8ED6E4; } /* 投资事项 */
.badge-type.type-land        { color: #7C4A0F; background: #F8D9A9; border-color: #E2BA7E; } /* 土地成交 */
.badge-type.type-realestate  { color: #9E2552; background: #FCD8E6; border-color: #EFA8C5; } /* 房产变化 */
.badge-type.type-project     { color: #1B54A8; background: #D5E6FF; border-color: #A5C8F4; } /* 项目建设 */
.badge-type.type-production  { color: #176B3B; background: #C9EFD7; border-color: #8ED8AC; } /* 投产经营 */
.badge-type.type-litigation  { color: #A11C1C; background: #FBD6D6; border-color: #EFA9A9; } /* 诉讼仲裁 */
.badge-type.type-management  { color: #3E4C59; background: #E1E8EE; border-color: #C4CDD8; } /* 经营管理 */
.badge-type.type-ipo         { color: #7A5000; background: #FBE3AF; border-color: #E9C879; } /* IPO进展 */
.badge-type.type-other       { color: #3E4C59; background: #E3E8EE; border-color: #C4CDD8; } /* 其他 */

/* —— ③ 日报中心：文字整体相对卡片内缩、区块分隔 —— */
.panel-report { overflow: hidden; }
.panel-report > h2:not(.block-title) {
  font-family: var(--font-serif); font-size: 18px; color: var(--ink);
  margin: 0; padding: 18px 20px 0; border-bottom: none;
}
.panel-report > .muted { margin: 6px 20px 0; }
.panel-report > .metrics-grid { margin: 8px 20px 4px !important; }
.panel-report > .report-sec {
  font-family: var(--font-serif); font-size: 15px; color: var(--ink);
  margin: 20px 20px 2px; padding-top: 14px; border-top: 1px dashed var(--line);
}
.panel-report > .panel-note { margin: 0 20px; }
.panel-report > .listgrid { margin: 0 20px; }
.panel-report > .calc-block { margin: 6px 20px; }
.panel-report > .policy-empty, .panel-report > .empty { margin: 8px 20px 0; }
.panel-report > .report-list, .panel-report > .policy-list { margin: 4px 20px 0; padding: 0; list-style: none; }
.panel-report .report-item, .panel-report .policy-item { padding: 10px 0; border-bottom: 1px dashed var(--line); line-height: 1.6; }
.panel-report .report-item:last-child, .panel-report .policy-item:last-child { border-bottom: none; }
.panel-report .report-item a, .panel-report .policy-title a { color: var(--brand-700); }
.panel-report .report-item-meta, .panel-report .policy-meta { font-size: 12px; color: var(--muted); }
.panel-report .calc-line { margin: 6px 0; line-height: 1.75; }
/* 日报归档（页面下方独立面板） */
.panel > .report-archive { margin: 6px 20px 18px; padding: 0; list-style: none; }
.report-archive-item { display: flex; flex-wrap: wrap; gap: 4px 12px; padding: 9px 0; border-bottom: 1px dashed var(--line); }
.report-archive-item:last-child { border-bottom: none; }
.report-archive-item a { color: var(--brand-700); font-weight: 600; }
.report-archive-item a.archive-current { color: var(--ink); }

/* ============================================================
   Baseline v1.4 Fix（2026-09-03）
   ② 更新卡单列扩至 ≤900px（覆盖 768 平板等边界）+ 左色块加粗至 8px
   ③ 重要程度柔和鲜明：常规-青绿 / 重要-橙 / 重大-红（低饱和浅底深字）
   ============================================================ */
@media (max-width: 900px) {
  body .stats { grid-template-columns: 1fr !important; }
}
.stat { border-left-width: 8px; }

/* 重要程度：浅底深字柔和色（不深邃、低透明高可读） */
.badge-imp-1, .badge.imp-1 {
  background: rgba(46, 157, 118, .14);
  color: #15775A;
  border: 1px solid rgba(46, 157, 118, .42);
}
.badge-imp-3, .badge.imp-3 {
  background: rgba(240, 146, 68, .15);
  color: #B35A12;
  border: 1px solid rgba(240, 146, 68, .48);
}
.badge-imp-4, .badge.imp-4 {
  background: rgba(224, 86, 96, .13);
  color: #B02A35;
  border: 1px solid rgba(224, 86, 96, .42);
}
/* 重点动态左侧线条随新配色（与重要程度徽章同色系） */
.timeline .item:has(.badge.imp-1, .badge-imp-1) { border-left-color: #2F9D78; }
.timeline .item:has(.badge.imp-3, .badge-imp-3) { border-left-color: #E08B3C; }
.timeline .item:has(.badge.imp-4, .badge-imp-4) { border-left-color: #C93845; }

/* ============================================================
   Baseline v1.5 Fix（2026-09-03）
   ① 深蓝 hero 上的重要程度标签单独高对比（实心白字，不受浅底影响）
   ② 更新卡单列终极锁：默认单列，仅 ≥901px 才三列（防任何缓存/边界问题）
   ============================================================ */
/* ① hero（深蓝渐变卡）重要程度实心高对比 */
.hero .badge.badge-imp-1, .hero .badge-imp-1 { background: #2F9D78; color: #fff; border: 1px solid #2F9D78; font-weight: 600; }
.hero .badge.badge-imp-3, .hero .badge-imp-3 { background: #E08B3C; color: #fff; border: 1px solid #E08B3C; font-weight: 600; }
.hero .badge.badge-imp-4, .hero .badge-imp-4 { background: #C93845; color: #fff; border: 1px solid #C93845; font-weight: 600; }
.hero .badge.badge-imp-2, .hero .badge-imp-2 { background: #0D7A5E; color: #fff; border: 1px solid #0D7A5E; font-weight: 600; }

/* ② 更新卡：全屏 3 列（已见过图）+ 移动端紧凑、字号缩小
   v1.7：由 v1.6 的"移动端垂直单列"修复为"移动端三列并排"，参考用户截图 */
body .stats {
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 10px;
}
body .stat {
  padding: 10px 12px !important;
  min-height: 0;
  border-left-width: 4px;
}
body .stat .label { font-size: 11px; line-height: 1.3; }
body .stat .num   { font-size: 18px !important; line-height: 1.25; letter-spacing: -.01em; }
@media (min-width: 901px) {
  body .stats { gap: var(--space-4); }
  body .stat  { padding: var(--space-4) var(--space-5); border-left-width: 3px; }
  body .stat .label { font-size: 13px; }
  body .stat .num   { font-size: 28px; letter-spacing: 0; }
}

/* ============================================================
   v1.8（2026-09-03 预览基准）：任务六项 + 报告中心
   ① hero 标题衬线加粗放大、摘要完整句留白
   ② 更新概览首卡描边=数字色；政策卡锚点跳本页政策速递
   ⑤ events/tax 业务细分类型筛选 chips
   ⑥ 报告中心（报告下载入口卡）
   ============================================================ */

/* —— ① hero 标题：衬线 + 字重 800 + 更大字号 —— */
.hero h2 {
  font-weight: 800;
  font-size: 24px;
  letter-spacing: -0.01em;
  max-width: 34em;
}
@media (min-width: 760px) {
  .hero h2 { font-size: 30px; }
}
/* hero 摘要行距与留白（完整句可读性） */
.hero p { line-height: 1.75; max-width: 60em; }

/* —— ② 更新概览三卡：描边色与数字色同源（默认=品牌蓝 / warn=琥珀 / good=绿） —— */
body .stats a.stat,
body .stats a.stat .num {
  border-left-color: var(--brand-600);
  color: var(--brand-600);
}
body .stats a.stat.warn,
body .stats a.stat.warn .num { border-left-color: #E8A85C; color: var(--watch); }
body .stats a.stat.good,
body .stats a.stat.good .num { border-left-color: var(--ok); color: var(--ok-700, #3F7A62); }
/* 锚点平滑滚动 + sticky header 避让 */
html { scroll-behavior: smooth; }
#policy-section { scroll-margin-top: 84px; }

/* —— ③ 首页 hero 徽章组（中文类型胶囊，白字浅透明白底） —— */
.hero-top .badge { border-radius: var(--radius-pill); font-weight: 600; }
.hero-top .badge.white { background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.35); }

/* —— ⑤ 类型筛选 chips（搜索栏下方横排） —— */
.type-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 2px;
  align-items: center;
}
.type-chip {
  display: inline-flex;
  align-items: center;
  padding: 5px 14px;
  border-radius: var(--radius-pill);
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.4;
  text-decoration: none;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.type-chip:hover { background: var(--brand-soft); border-color: var(--brand-300, #9DB8E0); color: var(--brand-deep); text-decoration: none; }
.type-chip.active {
  background: var(--brand-600, #3A5687);
  border-color: var(--brand-600, #3A5687);
  color: #fff;
  font-weight: 600;
}
@media (min-width: 901px) {
  .type-chips { margin: 12px 0 4px; }
  .type-chip { padding: 6px 16px; font-size: 13px; }
}

/* —— 新业务细分类型（STRATEGY/POLICY/BIDDING）浅底深字 —— */
.badge-type.type-strategy { color: #22408E; background: #E0E8FB; border-color: #AFC4EE; } /* 战略事项 靛蓝 */
.badge-type.type-policy   { color: #0E5F73; background: #D6F0F5; border-color: #97D3E0; } /* 政策影响 海青 */
.badge-type.type-bidding  { color: #9A4B05; background: #FDEAD3; border-color: #F0C48C; } /* 中标事项 深橙 */

/* —— ⑥ 报告中心：下载入口卡（报告库） —— */
.report-library {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin: 18px 0 4px;
}
.report-lib-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 4px solid var(--brand-600);
  border-radius: var(--radius-m);
  padding: 16px 18px;
  box-shadow: var(--shadow-1);
  text-decoration: none;
  color: inherit;
  transition: box-shadow .18s ease, transform .18s ease;
}
.report-lib-card:hover { box-shadow: var(--shadow-2); transform: translateY(-1px); text-decoration: none; }
.report-lib-card.amber { border-left-color: var(--watch); }
.report-lib-card.green { border-left-color: var(--ok); }
.report-lib-card .lib-main { min-width: 0; }
.report-lib-card .lib-title { font-family: var(--font-serif); font-weight: 700; font-size: 16px; color: var(--ink); }
.report-lib-card .lib-desc { font-size: 12.5px; color: var(--muted); margin-top: 3px; line-height: 1.55; }
.report-lib-card .lib-arrow { font-size: 20px; color: var(--brand-600); flex-shrink: 0; }
.report-lib-card.disabled { opacity: .72; }
.report-lib-card.disabled .lib-arrow { color: var(--muted); }
@media (min-width: 901px) {
  .report-library { grid-template-columns: repeat(3, 1fr); }
}

/* —— 首页当日日报入口副标题（v1.8 报告中心文案配套） —— */
.report-entry .report-sub {
  font-size: 12px;
  color: var(--muted);
  margin-top: 3px;
  line-height: 1.5;
}

/* ---------- 控制台五个总入口卡片（2026-09-03 整改） ---------- */
.entrygrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
}
.entry-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: var(--card, #fff);
  border: 1px solid var(--line, #DCE5EF);
  border-radius: 14px;
  padding: 18px 16px;
  box-shadow: var(--shadow-proto, 0 6px 22px rgba(19, 64, 116, .08));
  text-decoration: none;
  color: inherit;
  transition: .18s;
  min-height: 132px;
}
.entry-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(19, 64, 116, .12);
  border-color: var(--brand-200, #BBD4F2);
}
.entry-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.entry-arrow { color: var(--brand, #1468C8); font-weight: 700; font-size: 15px; }
.entry-card h3 { margin: 0; font-size: 17px; color: var(--text, #1C1C1C); }
.entry-card:hover h3 { color: var(--brand-deep, #0E4F96); }
.entry-card p { margin: 0; font-size: 12px; color: var(--muted, #6D7A89); line-height: 1.65; }

/* ---------- 意见反馈表单（2026-09-03） ---------- */
.feedback-form { display: flex; flex-direction: column; gap: 12px; }
.feedback-form .field { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--muted, #6D7A89); }
.feedback-form textarea,
.feedback-form input[type="text"] {
  font: inherit;
  padding: 10px 12px;
  border: 1px solid var(--line, #DCE5EF);
  border-radius: 10px;
  background: #fff;
  color: var(--text, #1C1C1C);
}
.feedback-form textarea { resize: vertical; min-height: 110px; }
.feedback-form textarea:focus,
.feedback-form input[type="text"]:focus { outline: 2px solid var(--brand-soft, #EAF3FF); border-color: var(--brand, #1468C8); }

/* ---------- 业务类型分级徽标 A / B / C（2026-09-04） ---------- */
.grade-badge { font-weight: 600; letter-spacing: .02em; }
.grade-a { background: #FDECEC; color: #C0392B; border-color: #F5C6C6; }
.grade-b { background: #FFF6E5; color: #A9701A; border-color: #F3DCB0; }
.grade-c { background: #EEF6F1; color: #2E7D5B; border-color: #CDE7DA; }

/* ---------- 同企业动态归集卡片（2026-09-04 用户要求） ---------- */
.ent-card { cursor: default; }
.ent-card:hover { transform: none; }
.ent-events { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.ent-event {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 8px 10px;
  border: 1px solid var(--line, #DCE5EF);
  border-radius: 10px;
  background: #FBFCFE;
  text-decoration: none;
  color: inherit;
  transition: .15s;
}
.ent-event:hover {
  background: var(--brand-soft, #EAF3FF);
  border-color: var(--brand-200, #BBD4F2);
}
.ent-date {
  font-size: 12px;
  color: var(--muted, #6D7A89);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.ent-title { font-size: 13px; color: var(--text, #1C1C1C); line-height: 1.5; }
.ent-event:hover .ent-title { color: var(--brand-deep, #0E4F96); }

/* ---------- 企业动态 A/B 视图（2026-09-04，动态流 / 企业视图） ---------- */
.view-tabs { display: flex; gap: 8px; margin: 4px 0 12px; }
.view-tab {
  flex: 1; padding: 10px 0; font-size: 14px; font-weight: 600;
  border: 1px solid var(--line, #DCE5EF); border-radius: 12px;
  background: #fff; color: var(--muted, #6D7A89); cursor: pointer; transition: .15s;
}
.view-tab.active { background: var(--brand, #1468C8); border-color: var(--brand, #1468C8); color: #fff; }
.stats-line { margin: 8px 2px 14px; font-size: 12px; }

.stream-group { margin-bottom: 18px; }
.stream-head { display: flex; align-items: center; gap: 8px; margin: 4px 0 10px; font-size: 14px; }
.stream-sub { font-size: 12px; }
.stream-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.dot-red { background: #C74646; }
.dot-amber { background: #D79A16; }
.dot-gray { background: #9AA7B5; }

.stream-card { border-left-width: 4px; margin-bottom: 12px; cursor: default; }
.stream-card:hover { transform: none; }
.edge-imp-4 { border-left-color: #C74646; }
.edge-imp-3 { border-left-color: #D79A16; }
.edge-imp-1 { border-left-color: #9AA7B5; }
.stream-card-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.stream-date { font-size: 12px; color: var(--muted, #6D7A89); font-variant-numeric: tabular-nums; }
.stream-count { margin-left: auto; font-size: 12px; color: var(--muted, #6D7A89); }
.stream-ent { display: flex; align-items: center; gap: 8px; margin: 8px 0 2px; }
.ent-link { font-size: 13px; font-weight: 700; color: var(--brand-deep, #0E4F96); text-decoration: none; }
.stock-code { font-size: 12px; color: var(--muted, #6D7A89); }
.stream-title { font-size: 15px; margin: 4px 0 6px; line-height: 1.5; }
.stream-title a { color: var(--text, #1C1C1C); text-decoration: none; }
.stream-title a:hover { color: var(--brand-deep, #0E4F96); }
.stream-extra { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.stream-foot {
  display: flex; align-items: center; justify-content: space-between;
  margin-top: 10px; padding-top: 8px; border-top: 1px dashed var(--line, #DCE5EF);
  font-size: 12px; color: var(--muted, #6D7A89);
}
.expand-btn {
  border: 0; background: transparent; color: var(--brand, #1468C8);
  font-size: 12px; cursor: pointer; padding: 0;
}
.new-badge {
  display: inline-block; padding: 1px 7px; border-radius: 999px;
  background: #FDECEC; color: #C0392B; font-size: 11px; font-weight: 700;
}

/* ---------- 企业详情页（时间线版） ---------- */
.detail-head { display: flex; align-items: center; gap: 12px; }
.back-link { font-size: 13px; color: var(--brand, #1468C8); text-decoration: none; }
.ent-profile { margin-bottom: 16px; }
.ent-name { margin: 0; font-size: 20px; display: flex; align-items: center; gap: 8px; }
.stock-code-badge {
  font-size: 11px; padding: 1px 8px; border-radius: 999px;
  background: #FDECEC; color: #C0392B; border: 1px solid #F5C6C6; font-weight: 600;
}
.ent-sub { margin-top: 4px; font-size: 12px; }
.ent-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 14px; }
.ent-stat {
  background: #F6F8FC; border-radius: 12px; padding: 12px 0; text-align: center;
}
.ent-stat .num { font-size: 20px; font-weight: 700; color: var(--text, #1C1C1C); }
.stat-major .num { color: #C74646; }
.stat-important .num { color: #D79A16; }
.stat-normal .num { color: #2E9B67; }
.ent-stat .label { font-size: 12px; color: var(--muted, #6D7A89); margin-top: 2px; }

.timeline { display: flex; flex-direction: column; gap: 14px; margin-top: 12px; }
.tl-node { display: flex; gap: 10px; }
.tl-dot { width: 9px; height: 9px; border-radius: 50%; margin-top: 6px; flex: none; }
.tl-card {
  flex: 1; background: #fff; border: 1px solid var(--line, #DCE5EF);
  border-radius: 12px; padding: 12px 14px;
}
.tl-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tl-date { font-size: 12px; color: var(--muted, #6D7A89); font-variant-numeric: tabular-nums; }
.tl-title { font-size: 15px; margin: 6px 0; line-height: 1.5; }
.tl-title a { color: var(--text, #1C1C1C); text-decoration: none; }
.tl-title a:hover { color: var(--brand-deep, #0E4F96); }
.tl-src { font-size: 12px; margin-top: 6px; }

/* ---------- 动态流卡片关注标识（红点+重点关注 / 灰点+常规动态） ---------- */
.att { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--muted, #6D7A89); white-space: nowrap; }
.att-dot { width: 7px; height: 7px; border-radius: 50%; flex: none; display: inline-block; }

/* ---------- 2026-09-05 预览 v1.1 调整 ---------- */
/* 1) NEW 标签改蓝色（原红底红字） */  /* v1.7：用户要求「不要胶囊状、更显眼」——
   改为红底白字带前置白点的尖角标签（border-radius 3px，非 999px 胶囊）。
   v1.8：用户要求「不需要阴影、扁平化处理」——改为**纯色扁平**（去掉 v1.7 的红渐变
   与投影），仅保留实心红底 + 白字 + 白点 + 尖角，视觉仍醒目但不立体。 */
.new-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 7px 2px 5px;
  background: #C74646;                 /* v1.8：纯色扁平（与 --danger 同色），无渐变 */
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.6px;
  border-radius: 3px;
  border: none;
  text-transform: uppercase;
  box-shadow: none;                    /* v1.8：无阴影 */
  vertical-align: middle;
  line-height: 1.4;
}
.new-badge::before {
  content: '';
  width: 5px;
  height: 5px;
  background: #fff;
  border-radius: 50%;
  display: inline-block;
}
/* 2) 卡片与卡片之间的间距（动态流卡 / 企业卡） */
.stream-card { margin-bottom: 16px; }
.ent-card { margin-bottom: 16px; }
.stream-group { margin-bottom: 22px; }
/* 3) 企业详情时间线：白色圈圆点 + 竖线瀑布连接 */
.timeline { position: relative; }
.tl-node { position: relative; }
.tl-node::before {
  content: ""; position: absolute; left: 4px; top: 18px; bottom: -20px;
  width: 1px; background: var(--line, #DCE5EF);
}
.tl-node:last-child::before { display: none; }
.tl-dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: #fff; border: 2px solid var(--line, #DCE5EF);
}
.tl-dot.dot-red { border-color: #C74646; }
.tl-dot.dot-amber { border-color: #D79A16; }
.tl-dot.dot-gray { border-color: #9AA7B5; }

/* ---------- 2026-09-05 预览 v1.2 调整 ---------- */
/* 1) 折叠区隐藏修复：作者样式 display:flex 会覆盖 [hidden] 的浏览器默认 display:none，
      导致「其余动态」仍显示在卡片内 → 必须显式声明隐藏 */
.stream-extra[hidden], .ent-events[hidden] { display: none; }
/* 2) 企业详情时间线圆点：10px 等级色实心 + 2px 白色描边（v1.1 为白底+等级色描边，此处反转） */
.tl-dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--line, #DCE5EF); border: 2px solid #fff;
}
.tl-dot.dot-red { background: #C74646; }
.tl-dot.dot-amber { background: #D79A16; }
.tl-dot.dot-gray { background: #9AA7B5; }

/* ---------- 2026-09-05 预览 v1.3 调整 ---------- */
/* 1) 修复：鼠标点击圆角矩形（按钮/链接/chips/tab）时蓝色矩形轮廓一闪而过
      —— 关闭鼠标点击产生的 focus 框，但保留键盘 Tab 的 focus-visible（无障碍不降级） */
a:focus, button:focus, input:focus, select:focus, textarea:focus,
.type-chip:focus, .view-tab:focus, .expand-btn:focus, .ent-event:focus, .card:focus {
  outline: none;
}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
.type-chip:focus-visible, .view-tab:focus-visible, .expand-btn:focus-visible, .ent-event:focus-visible {
  outline: 2px solid var(--brand, #1468C8);
  outline-offset: 2px;
}
/* 移动端点击高亮（部分内核会出现蓝色/灰色块一闪） */
a, button, input, select, textarea, .type-chip, .view-tab, .expand-btn, .ent-event, .card {
  -webkit-tap-highlight-color: transparent;
}

/* 2) 搜索栏：去掉搜索框最外层白框（白底 + 描边 → 融入页面底色，聚焦才显边框） */
.field.search,
.filter-row-search input[type="search"] {
  background: var(--bg, #F6F8FC);
  border: 1px solid transparent;
  box-shadow: none;
}
.field.search:focus,
.filter-row-search input[type="search"]:focus {
  background: #fff;
  border-color: var(--brand, #1468C8);
}

/* 3) 企业视图卡片间距统一：此前仅 .ent-card 有 16px 下边距，
      未匹配企业的单条 .card 无边距 → 卡间距不一致。统一为 16px，末张不留白 */
.view-panel > .card { margin-bottom: 16px; }
.view-panel > .card:last-child { margin-bottom: 0; }

/* ---------- 2026-09-05 预览 v1.4 调整（移动端体验） ---------- */
/* 1) 搜索区：移动端默认收起为「放大镜」小按钮，点击展开搜索行；桌面端常显完整行 */
.search-area { margin-bottom: 6px; }
.search-toggle {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 16px; margin: 4px 0 2px;
  border: 1px solid var(--line, #DCE5EF); border-radius: 999px;
  background: #fff; color: var(--brand, #1468C8);
  font-size: 13px; font-weight: 600; cursor: pointer; transition: .15s;
}
.search-toggle:hover { background: var(--brand-soft, #EAF3FF); border-color: var(--brand-200, #BBD4F2); }
.si { display: inline-flex; }
.search-area form.filterbar { margin-bottom: 4px; }
/* 搜索框融入底色（v1.3 延续），展开时输入框宽度自适应 */
.filter-row-search input[type="search"].field.search { min-height: 40px; }
/* 移动端：type-chips 单行横向滚动（不再换行 3 列撑版面） */
.type-chips {
  display: flex; flex-wrap: nowrap; gap: 8px;
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  padding: 2px 2px 8px; margin-bottom: 0;
  scrollbar-width: none;              /* Firefox 隐藏滚动条 */
}
.type-chips::-webkit-scrollbar { display: none; }
.type-chip { flex: none; white-space: nowrap; }

/* 2) 移动端右下悬浮按钮组（仅在窄屏显示；向下滚动超过阈值出现） */
.fab-group {
  display: none;                       /* 桌面端隐藏（默认） */
  position: fixed; right: 14px; bottom: 20px; z-index: 90;
  flex-direction: column; align-items: center; gap: 10px;
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.fab {
  width: 44px; height: 44px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  border: 0; cursor: pointer; text-decoration: none;
  box-shadow: 0 8px 18px rgba(19, 64, 116, .22);
  -webkit-tap-highlight-color: transparent;
}
.fab-top { background: var(--brand, #1468C8); color: #fff; }
.fab-home { background: #fff; color: var(--brand, #1468C8); border: 1px solid var(--line, #DCE5EF); }
.fab:active { transform: scale(.94); }

@media (max-width: 768px) {
  .fab-group { display: flex; }
  .fab-group.show { opacity: 1; visibility: visible; transform: none; }
  /* 搜索区：放大镜按钮常显、搜索表单默认收起 */
  .search-toggle { display: inline-flex; }
}
/* 桌面端：隐藏放大镜触发钮、搜索表单常显（覆盖 hidden） */
@media (min-width: 769px) {
  .search-toggle { display: none; }
  .search-area form.filterbar[hidden] { display: grid; }
}

/* ---------- 2026-09-05 预览 v1.5 调整（UI Designer 复审） ---------- */
/* ① 视图切换 → 紧凑胶囊（不再两等分大按钮占版面）；与搜索钮同行工具栏 */
.list-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 2px 0 10px; }
.list-toolbar-single { justify-content: flex-end; }
.view-tabs { display: inline-flex; gap: 6px; margin: 0; }
.view-tab {
  flex: 0 0 auto; padding: 6px 14px; font-size: 13px; font-weight: 600;
  border: 1px solid var(--line, #DCE5EF); border-radius: 999px;
  background: #fff; color: var(--muted, #6D7A89); cursor: pointer; transition: .15s;
}
.view-tab.active { background: var(--brand, #1468C8); border-color: var(--brand, #1468C8); color: #fff; }

/* ② 搜索触发：工具栏右端 40px 圆钮（触控 40px、无障碍 44px 内） */
.search-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; padding: 0; border-radius: 50%; flex: none;
  border: 1px solid var(--line, #DCE5EF); background: #fff; color: var(--brand, #1468C8);
  font-size: 13px; font-weight: 600; cursor: pointer; transition: .15s;
}
.search-toggle .search-toggle-text { display: none; }
.search-toggle:hover { background: var(--brand-soft, #EAF3FF); border-color: var(--brand-200, #BBD4F2); }

/* ③ 搜索表单：彻底无最外层白框；hidden 必须真收起（.filterbar 的 display:grid 会覆盖 hidden —— v1.4 漏修） */
.search-area form.filterbar {
  display: grid; grid-template-columns: 1fr; gap: 8px;
  margin: 0 0 12px; padding: 0;
  background: transparent; border: 0; box-shadow: none;
}
.search-area form.filterbar[hidden] { display: none !important; }
.search-area .filter-row-search { display: flex; gap: 8px; }
.search-area .filter-row-search input[type="search"].field.search,
.search-area .filter-row-search input[type="search"] {
  flex: 1 1 0%; min-width: 0; min-height: 42px; padding: 0 14px;
  border: 1px solid var(--line, #DCE5EF); border-radius: 10px;
  background: #fff; color: var(--text, #1C1C1C); font: inherit;
}
.search-area .filter-row-search input[type="search"]:focus {
  outline: none; border-color: var(--brand, #1468C8); box-shadow: 0 0 0 3px rgba(20, 104, 200, .12);
}
/* 桌面端：隐藏放大镜、搜索表单常显（需 !important 压过收起规则） */
@media (min-width: 769px) {
  .list-toolbar { margin-bottom: 2px; }
  .search-toggle { display: none; }
  .search-area form.filterbar[hidden] { display: grid !important; }
}

/* ↑ 回顶动画过程中的按钮反馈（图标上跃，体现"上滑"过程） */
.fab-top.scrolling { animation: fab-up-jump .45s ease-out infinite; }
@keyframes fab-up-jump {
  0%, 100% { transform: none; }
  40% { transform: translateY(-5px); }
}

/* ---------- 2026-09-05 预览 v1.7 调整 ---------- */
/* ① 视图切换胶囊作为 <a> 链接使用时去除下划线（税源监测页视图切换 = 服务端链接） */
a.view-tab { text-decoration: none; }
a.view-tab:hover { text-decoration: none; }

/* ② 长文本防溢出：标题/摘要/正文等超长时不顶破卡片边缘 */
.stream-title,
.parcel-title,
.detail-title,
.item-summary,
.digest-body,
.ai-line,
.ai-disclaimer,
.tl-title,
.tl-src,
.policy-title,
.policy-meta,
.calc-line,
.card h4 {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* ③ 税源监测「按地块归集」分组卡（v1.7） */
.parcel-group { margin-bottom: 16px; }
.parcel-group .stream-head { margin: 2px 0 4px; }
.parcel-item {
  position: relative;
  border-top: 1px dashed var(--line, #DCE5EF);
  padding: 12px 0;
}
.parcel-group > .parcel-item:first-of-type { border-top: 0; padding-top: 6px; }
.parcel-title { font-size: 15px; margin: 4px 0 6px; line-height: 1.5; }

/* ④ 事件详情页整合后的「涉税分析」卡（v1.7：涉税提醒/政策依据/假设测算合一） */
.tax-analy .analy-part { padding: 12px 0; border-top: 1px dashed var(--line, #DCE5EF); }
.tax-analy .analy-part:first-of-type { padding-top: 4px; border-top: 0; }
.tax-analy .analy-subtitle {
  font-size: 13px; font-weight: 700; color: var(--text, #1C1C1C);
  margin-bottom: 8px; display: flex; align-items: center; gap: 6px;
}
.tax-analy .analy-subtitle::before {
  content: ''; width: 4px; height: 12px; border-radius: 2px;
  background: var(--brand, #1468C8); display: inline-block;
}
.tax-analy .analy-part .policy-list,
.tax-analy .analy-part .calc-block { margin-top: 0; }

/* ============ v1.9 事件详情改版补强（须置于旧规则之后，保证覆盖） ============ */
/* AI 子区块在「涉税分析」卡内：独立浅青底 + 内边距（覆盖 .tax-analy .analy-part 的 padding/border-top） */
.tax-analy .analy-part.ai-part {
  background: #EDF7F4;
  border: 1px solid #CDE8E2;
  border-radius: 10px;
  margin: 14px 20px 18px;
  padding: 14px 16px;
}
.tax-analy .analy-part.ai-part + .analy-part { border-top: 0; }
/* AI 免责声明在浅青底上改用深青描边 */
.tax-analy .analy-part.ai-part .ai-disclaimer {
  background: #E0F0EB;
  color: #256E5A;
  border: 1px solid #B9DCD2;
}
/* 原文摘要来源链接行：浅色底 + 小字号 + 链接下钻 */
.digest .digest-source {
  margin: 12px 20px 16px;
  padding: 8px 12px;
  background: #F4F7FB;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.6;
}
.digest .digest-source .source-link {
  color: var(--brand, #1468C8);
  font-weight: 600;
}
.digest .digest-source .source-link::after {
  content: ' ↗';
}
