/* ============================================================
   C4 · 统一样式表（全队共用，队员1/组长维护）
   ------------------------------------------------------------
   用法：每个 html 的 <head> 里加一行：
        <link rel="stylesheet" href="style.css">

   设计定位：政务业务系统界面，不是宣传页
   · 颜色：深藏青 / 政务蓝 / 中性灰，红色仅用于风险与关键词
   · 版式：左对齐、单一栏宽、圆角极小（2–3px）、不用渐变与浮起动效
   · 层次：靠字号、字重、1px 分隔线和留白，不靠阴影
   · 想调整配色：只改 :root 里的变量，全站生效
   ============================================================ */

/* ---------- 1. 全站颜色变量 ---------- */
:root {
  --navy:    #022c90;   /* 深蓝：页头、页脚、重色块 */
  --main:    #2e63b4;   /* 主色：门户蓝（郑州大学门户风格） */
  --main-d:  #1e4a94;   /* 主色加深：按钮悬停 */
  --gold:    #cfa976;   /* 金色点缀：门户顶线 / 强调 */
  --gold-l:  #e8cf9f;
  --dark:    #1e2a38;   /* 正文 */
  --gray:    #66748a;   /* 次要说明 */
  --bg:      #eef2f7;   /* 页面底色 */
  --card:    #ffffff;
  --line:    #dde3ec;   /* 分隔线 */
  --red:     #c0392b;   /* 高风险 / 关键词标红 */
  --orange:  #b3651a;   /* 中风险 */
  --blue:    #2f6fc4;   /* 低风险 */
  --green:   #17794f;

  --r: 3px;             /* 统一圆角：小、克制（卡片/面板边角） */
  --r-btn: 999px;       /* 按钮圆角：胶囊形，流畅感 */
  --r-card: 14px;       /* 卡片圆角：柔和 */
  --shadow-sm: 0 2px 8px rgba(2, 44, 144, .08);
  --shadow-md: 0 8px 24px rgba(2, 44, 144, .12);
  --shadow-lg: 0 16px 40px rgba(2, 44, 144, .16);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", sans-serif;
  /* 全站背景图：柔和白纱覆盖，保证文字清晰可读 */
  background:
    linear-gradient(rgba(255, 255, 255, .58), rgba(244, 248, 252, .58)),
    url("bg.jpg") no-repeat fixed center / cover;
  color: var(--dark);
  font-size: 14px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--main); }

/* ---------- 2. 通用容器 ---------- */
.container { max-width: 1080px; margin: 0 auto; padding: 8px 20px 64px; }

/* ============================================================
   3. 首页：导航 → 首屏（标题 + 系统概览）→ 检索 → 模块目录 → 流程 → 页脚
   ============================================================ */

/* ---- 3.1 顶部导航栏（门户蓝） ---- */
.navbar {
  position: sticky; top: 0; z-index: 50;
  background: linear-gradient(180deg, #2e63b4 0%, #1e4a94 100%);
  border-bottom: 1px solid rgba(0, 0, 0, .18);
  box-shadow: 0 2px 10px rgba(2, 44, 144, .18);
}
/* 顶边 3px 金色条：门户的固定签名 */
.navbar::before, .topbar::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, #cfa976, #e8cf9f, #cfa976);
}
.nav-inner {
  max-width: 1080px; margin: 0 auto; padding: 0 20px;
  height: 62px; display: flex; align-items: center; justify-content: space-between;
}
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: #fff; }
.brand-mark {
  width: 32px; height: 32px; border-radius: var(--r); background: rgba(255,255,255,.18);
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-weight: bold; font-size: 13px; letter-spacing: .5px; flex: none;
  border: 1px solid rgba(255,255,255,.28);
}
.brand-name { font-size: 15px; font-weight: bold; line-height: 1.35; color: #fff; }
.brand-sub  { display: block; font-size: 12px; color: rgba(255,255,255,.72); font-weight: normal; }
.nav-links { display: flex; gap: 22px; align-items: center; }
.nav-links a { color: rgba(255,255,255,.88); text-decoration: none; font-size: 13.5px; }
.nav-links a:hover { color: #ffd479; }
/* 导航按钮：描边胶囊，区别于实心的 .nav-enter */
.nav-links .nav-btn {
  color: #fff; text-decoration: none; font-size: 13px;
  background: transparent; border: 1px solid rgba(255,255,255,.45);
  padding: 7px 18px; border-radius: var(--r-btn);
  transition: all .15s;
}
.nav-links .nav-btn:hover {
  color: #022c90; border-color: #fff; background: #fff;
  transform: translateY(-1px);
}
.nav-links .nav-enter {
  color: #022c90; background: linear-gradient(135deg, #e8cf9f, #cfa976); padding: 7px 20px;
  border-radius: var(--r-btn); font-size: 13px; font-weight: bold;
  box-shadow: var(--shadow-sm);
}
.nav-links .nav-enter:hover { background: #fff; color: #022c90; transform: translateY(-1px); }
@media (max-width: 720px) { .nav-links { display: none; } }

/* ---- 3.2 首屏：左标题 / 右系统概览 ---- */
.hero {
  background: #fff;
  border-bottom: 1px solid var(--line);
  display: flex; flex-direction: column;
  min-height: calc(100vh - 63px);
}
.hero-inner {
  flex: 1; width: 100%; max-width: 1080px; margin: 0 auto; padding: 0 20px;
  display: grid; grid-template-columns: 1fr 336px; gap: 64px; align-items: center;
}
@media (max-width: 900px) {
  .hero { min-height: 0; }
  .hero-inner { grid-template-columns: 1fr; gap: 36px; padding: 52px 20px; }
}

/* 首屏底部状态条：把版面收住，避免大片留白 */
.hero-status { border-top: 1px solid var(--line); }
.status-inner {
  max-width: 1080px; margin: 0 auto; padding: 0 20px;
  display: flex; flex-wrap: wrap; gap: 0 40px;
  font-size: 12.5px; color: var(--gray); line-height: 46px;
}
@media (max-width: 900px) { .status-inner { gap: 0 20px; line-height: 1.9; padding: 12px 20px; } }

.hero-kicker {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; color: var(--gray); letter-spacing: .5px;
}
.kicker-line { display: block; width: 26px; height: 2px; background: var(--main); flex: none; }

.hero-title {
  margin: 18px 0 18px;
  font-size: 44px; line-height: 1.42; font-weight: bold;
  letter-spacing: 1px; color: var(--navy);
}
.hero-desc { font-size: 14.5px; color: var(--gray); line-height: 2.15; }
.hero-cta { margin-top: 34px; display: flex; gap: 12px; flex-wrap: wrap; }

@media (max-width: 900px) { .hero-title { font-size: 30px; } }
@media (max-width: 560px) {
  .hero-title { font-size: 23px; letter-spacing: 0; }
  .hero-desc br { display: none; }
}

/* 按钮：胶囊形、实心/描边两种，带过渡 */
.btn-solid, .btn-line {
  display: inline-block; text-decoration: none; font-size: 14px;
  padding: 12px 32px; border-radius: var(--r-btn); letter-spacing: 1px;
  transition: background .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.btn-solid { background: var(--main); color: #fff; box-shadow: var(--shadow-sm); }
.btn-solid:hover { background: var(--main-d); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn-line { background: #fff; color: var(--dark); border: 1px solid #c3cfdf; }
.btn-line:hover { color: var(--main); border-color: var(--main); transform: translateY(-2px); }

/* 右侧系统概览面板 */
.hero-panel {
  background: #fff; border: 1px solid var(--line);
  border-radius: var(--r); padding: 18px 20px 14px;
}
.panel-title {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 14px; font-weight: bold; color: var(--navy);
  padding-bottom: 11px; border-bottom: 1px solid var(--line);
}
.panel-tag {
  font-style: normal; font-size: 11.5px; font-weight: normal; color: var(--gray);
  border: 1px solid var(--line); border-radius: 2px; padding: 1px 6px;
}
.panel-list > div {
  display: flex; align-items: baseline; justify-content: space-between;
  padding: 8px 0; border-bottom: 1px dashed #eaeef5;
}
.panel-list > div:last-child { border-bottom: none; }
.panel-list dt { font-size: 13px; color: var(--gray); }
.panel-list dd { font-size: 17px; font-weight: bold; color: var(--navy); }
.panel-list dd i { font-style: normal; font-size: 12px; font-weight: normal; color: var(--gray); margin-left: 2px; }
.panel-foot { margin-top: 10px; font-size: 12px; color: var(--gray); }

/* ---- 3.3 区块：门户式面板标题条（全站统一，内页也用同一套） ---- */
.block { margin-top: 52px; }
.block-head {
  background: linear-gradient(90deg, #e8f0fb 0%, #f5f8fc 100%);
  border: 1px solid #d9e4f2;
  border-left: 4px solid var(--main);
  border-radius: 4px;
  padding: 12px 16px; margin-bottom: 18px;
}
.block-head h2 { font-size: 19px; font-weight: bold; color: var(--navy); line-height: 1.5; }
.block-head h2::before {
  content: ""; display: inline-block; width: 9px; height: 9px; border-radius: 2px;
  background: var(--gold); margin-right: 10px; vertical-align: 1px;
}
.block-head p  { font-size: 13px; color: var(--gray); margin-top: 3px; }

/* ---- 3.4 功能模块：编号目录式列表（不用卡片） ---- */
.mod-list { border-top: 1px solid var(--line); }
.mod-row {
  display: grid; grid-template-columns: 44px 1fr 172px 58px;
  align-items: center; gap: 16px;
  padding: 16px 12px; border-bottom: 1px solid var(--line);
  border-left: 3px solid transparent;
  text-decoration: none; color: var(--dark);
  transition: background .15s, border-left-color .15s;
}
.mod-row:hover { background: #fff; border-left-color: var(--main); }
.mod-no { font-size: 19px; font-weight: bold; color: #b6c2d4; letter-spacing: 1px; }
.mod-row:hover .mod-no { color: var(--main); }
.mod-body { display: flex; flex-direction: column; gap: 2px; }
.mod-name { font-size: 15.5px; font-weight: bold; color: var(--navy); }
.mod-desc { font-size: 13px; color: var(--gray); line-height: 1.7; }
.mod-data { font-size: 12.5px; color: var(--gray); text-align: right; white-space: nowrap; }
.mod-data b { font-size: 15px; color: var(--navy); }
.mod-go {
  font-size: 12.5px; color: var(--main); text-align: center;
  border: 1px solid #c3cfdf; border-radius: 2px; padding: 4px 0;
}
.mod-row:hover .mod-go { background: var(--main); color: #fff; border-color: var(--main); }
@media (max-width: 760px) {
  .mod-row { grid-template-columns: 32px 1fr; gap: 4px 12px; }
  .mod-data { grid-column: 2; text-align: left; }
  .mod-go { grid-column: 2; width: 92px; }
}
.mod-note { margin-top: 12px; font-size: 13px; color: var(--gray); }

/* ---- 3.5 工作流程：编号三栏，竖线分隔 ---- */
.flow {
  display: grid; grid-template-columns: repeat(3, 1fr);
  list-style: none; border-top: 1px solid var(--line); padding-top: 20px;
}
.flow-item { padding: 0 26px; border-right: 1px solid var(--line); }
.flow-item:first-child { padding-left: 0; }
.flow-item:last-child { border-right: none; padding-right: 0; }
.flow-no { display: block; font-size: 12px; font-weight: bold; color: var(--main); letter-spacing: 2px; margin-bottom: 6px; }
.flow-item h3 { font-size: 15px; color: var(--navy); margin-bottom: 5px; }
.flow-item p { font-size: 13px; color: var(--gray); line-height: 1.85; }
@media (max-width: 760px) {
  .flow { grid-template-columns: 1fr; }
  .flow-item { padding: 14px 0; border-right: none; border-bottom: 1px solid var(--line); }
  .flow-item:last-child { border-bottom: none; }
}

/* ---- 3.6 页脚：门户蓝 ---- */
.site-footer {
  background: linear-gradient(180deg, #022c90 0%, #081f45 100%);
  border-top: 3px solid #cfa976;
  padding: 22px 20px 26px;
}
.footer-inner { max-width: 1080px; margin: 0 auto; font-size: 12.5px; color: rgba(255,255,255,.65); line-height: 2; }
.footer-line b { color: #fff; font-size: 13.5px; }
.site-footer .sep { opacity: .4; margin: 0 8px; }

/* ============================================================
   4. 内页公共骨架（功能页统一）
   ============================================================ */

/* ---- 4.1 顶部导航条（门户蓝） ---- */
.topbar {
  position: sticky; top: 0; z-index: 50;
  background: linear-gradient(180deg, #2e63b4 0%, #1e4a94 100%);
  border-bottom: 1px solid rgba(0, 0, 0, .18);
  padding: 11px 22px; display: flex; align-items: center; gap: 16px;
}
.back {
  color: #fff; text-decoration: none; font-size: 12.5px;
  padding: 6px 16px; border: 1px solid rgba(255,255,255,.45); border-radius: var(--r-btn);
  background: transparent; transition: color .15s, border-color .15s, background .15s, transform .15s;
}
.back:hover { color: #022c90; border-color: #fff; background: #fff; transform: translateY(-1px); }
.page-title { font-size: 15px; font-weight: bold; color: #fff; }
.page-title::before {
  content: ""; display: inline-block; width: 3px; height: 13px;
  background: #e8cf9f; margin-right: 9px; vertical-align: -2px;
}

/* ---- 4.2 内容分区 ---- */
.section {
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--r); padding: 22px 24px; margin-top: 18px;
}
.section h2 {
  font-size: 17px; color: var(--navy); margin-bottom: 8px;
  padding-left: 10px; border-left: 3px solid var(--main);
}
.tip { color: var(--gray); font-size: 13px; margin-bottom: 14px; }
.center { text-align: center; }

/* 分析任务条：左边说明，右边操作按钮（业务系统常见排布） */
.task-bar { display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.task-text { flex: 1; min-width: 0; }
.task-text h2 { margin-bottom: 5px; }
.task-text .tip { margin-bottom: 0; }
.task-text .status { margin-top: 4px; }
.task-bar .big-btn { flex: none; }
@media (max-width: 640px) {
  .task-bar { flex-direction: column; align-items: stretch; gap: 16px; }
  .task-bar .big-btn { width: 100%; }
}

/* ---- 4.3 巡察文档卡片（可展开收起） ---- */
.doc-card {
  border: 1px solid var(--line); border-radius: 2px;
  padding: 12px 16px; margin-bottom: 8px; background: #fafbfd;
}
.doc-card summary {
  cursor: pointer; display: flex; flex-wrap: wrap;
  justify-content: space-between; gap: 6px; list-style: none;
}
.doc-title { font-weight: bold; font-size: 14.5px; }
.doc-meta { color: var(--gray); font-size: 12.5px; }
.doc-content { margin-top: 10px; font-size: 14px; text-indent: 2em; line-height: 1.95; }

/* ---- 4.4 按钮 ---- */
.big-btn {
  background: var(--main); color: #fff; border: none; cursor: pointer;
  font-size: 14.5px; padding: 12px 44px; border-radius: var(--r-btn); letter-spacing: 3px;
  transition: background .2s, transform .2s, box-shadow .2s;
  box-shadow: var(--shadow-sm);
}
.big-btn:hover { background: var(--main-d); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.big-btn:disabled { background: #9aa7b8; cursor: not-allowed; transform: none; box-shadow: none; }
.status { color: var(--gray); font-size: 13px; margin-top: 10px; min-height: 20px; }

/* ---- 4.5 线索 / 风险结果 ---- */
.summary {
  background: #eef3fa; border-left: 2px solid var(--main);
  padding: 10px 16px; font-size: 13.5px; margin-bottom: 14px;
}

.clue-card {
  border: 1px solid var(--line); border-left: 3px solid var(--main);
  border-radius: 2px; padding: 14px 16px; margin-bottom: 10px; background: #fff;
}
.clue-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.clue-type { font-weight: bold; font-size: 15px; color: var(--navy); }
.clue-desc { color: var(--gray); font-size: 13px; margin-top: 4px; }
/* 证据原文片段：左侧细竖线，关键词用 .hl 标红 */
.clue-evi {
  font-size: 12.5px; color: #4a5a72; line-height: 1.9;
  margin-top: 8px; padding-left: 10px; border-left: 2px solid #e2e8f0;
}
.clue-more { font-size: 12px; color: var(--main); margin-top: 7px; }

/* 等级徽章：浅底 + 同色描边 + 深色字（系统式，不用纯色填充） */
.badge { font-size: 12px; padding: 1px 8px; border-radius: 2px; border: 1px solid; }
.badge-high { color: var(--red);    background: #fbeeec; border-color: #eccac4; }
.badge-mid  { color: var(--orange); background: #fbf2e8; border-color: #ecd6be; }
.badge-low  { color: var(--blue);   background: #edf3fc; border-color: #cbdcf2; }

.lv-high { color: var(--red);    font-weight: bold; }
.lv-mid  { color: var(--orange); font-weight: bold; }
.lv-low  { color: var(--blue);   font-weight: bold; }

.evidence-list { margin: 10px 0 0 20px; font-size: 13.5px; }
.evidence-list li { margin-bottom: 6px; line-height: 1.9; }

/* 关键词标红（本系统最核心的视觉效果） */
.hl { color: var(--red); font-weight: bold; }

/* ---- 4.6 占位页 ---- */
.placeholder { text-align: center; padding: 60px 0; }
.placeholder h2 { margin-bottom: 8px; }
.placeholder p { color: var(--gray); font-size: 14px; }

/* ============================================================
   5. 首页检索区（系统式表单，不用胶囊搜索条）
   ============================================================ */
.search-wrap { max-width: 100%; }

.search-row {
  display: flex; align-items: stretch;
  background: #fff; border: 1px solid #c3cfdf; border-radius: 10px;
  overflow: hidden; transition: border-color .15s, box-shadow .15s;
  box-shadow: var(--shadow-sm);
}
.search-row:focus-within { border-color: var(--main); box-shadow: 0 0 0 3px rgba(36, 82, 143, .12); }
.search-label {
  display: flex; align-items: center; flex: none;
  background: #f4f6f9; border-right: 1px solid var(--line);
  padding: 0 16px; font-size: 13px; color: var(--gray);
}
.search-row input {
  flex: 1; min-width: 0; height: 44px; border: none; outline: none;
  font-size: 14px; padding: 0 16px; background: #fff;
  color: var(--dark); font-family: inherit;
}
.search-row input::placeholder { color: #9aa7b8; }
.search-btn {
  flex: none; background: var(--main); color: #fff; border: none; cursor: pointer;
  font-size: 14px; letter-spacing: 2px; padding: 0 30px; font-family: inherit;
  transition: background .15s;
}
.search-btn:hover { background: var(--main-d); }

/* 常用检索：纯文字链接，不用胶囊按钮 */
.search-cases { margin-top: 10px; font-size: 13px; color: var(--gray); }
.search-cases span { margin-right: 12px; }
.search-cases a { color: var(--main); text-decoration: none; margin-right: 14px; }
.search-cases a:hover { text-decoration: underline; }

/* 检索结果 */
.search-hint {
  color: var(--gray); font-size: 13px; line-height: 1.9;
  background: #fff; border: 1px solid var(--line); border-left: 2px solid #c3cfdf;
  padding: 11px 16px; margin-top: 14px;
}
.search-total { font-size: 13px; color: var(--gray); margin: 16px 0 10px; }
.search-total b { color: var(--navy); }
.result-group {
  background: #fff; border: 1px solid var(--line); border-radius: var(--r);
  padding: 14px 18px 6px; margin-bottom: 10px;
}
.result-group h3 {
  font-size: 14px; color: var(--navy); font-weight: bold;
  border-bottom: 1px solid var(--line); padding-bottom: 9px; margin-bottom: 2px;
}
.rg-link { float: right; font-size: 12.5px; font-weight: normal; text-decoration: none; }
.rg-link:hover { text-decoration: underline; }
.result-item { font-size: 13.5px; color: #3c4a5e; padding: 8px 0; line-height: 1.85; }
.result-item + .result-item { border-top: 1px solid #f0f3f8; }
.ri-sub { color: var(--gray); font-size: 12.5px; }

/* ============================================================
   6. 弹窗（模块内嵌 / 报告展示）
   ============================================================ */
.modal-overlay {
  position: fixed; inset: 0; z-index: 200;
  background: rgba(22, 35, 61, .5);
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
}
.modal-panel {
  background: #fff; border-radius: var(--r);
  width: min(880px, 100%); max-height: 88vh;
  display: flex; flex-direction: column;
  box-shadow: 0 18px 46px rgba(10, 18, 40, .28);
  overflow: hidden;
}
.modal-panel.wide { width: min(1040px, 100%); }
.modal-header {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 13px 20px; border-bottom: 1px solid var(--line); background: #fff;
  flex: none;
}
.modal-title { font-size: 15px; font-weight: bold; color: var(--navy); }
.modal-close {
  border: 1px solid var(--line); background: #fff; color: var(--gray); cursor: pointer;
  width: 28px; height: 28px; border-radius: 2px; font-size: 17px; line-height: 1;
  flex: none; transition: background .15s, color .15s, border-color .15s;
}
.modal-close:hover { background: var(--red); color: #fff; border-color: var(--red); }
/* 关键：flex:1 + min-height:0 让内容区在 flex 容器里正确滚动，关闭按钮不会被推出视口 */
.modal-body { padding: 20px 22px 22px; overflow-y: auto; flex: 1; min-height: 0; }
/* 弹窗底部固定关闭按钮：滚到底也能退出 */
.modal-footer {
  flex: none; padding: 12px 20px; border-top: 1px solid var(--line);
  background: #fafbfd; text-align: center;
}
.modal-close-footer {
  padding: 9px 36px; border: 1px solid var(--line); border-radius: var(--r-btn);
  background: #fff; color: var(--dark); font-size: 14px; cursor: pointer;
  transition: all .15s;
}
.modal-close-footer:hover { background: var(--main); color: #fff; border-color: var(--main); }
.modal-actions { text-align: center; margin-top: 18px; }
.modal-iframe { width: 100%; height: 72vh; border: none; display: block; background: #fff; }
.modal-note { margin-top: 10px; font-size: 12.5px; color: var(--gray); text-align: center; }
.modal-note a { text-decoration: none; }
.modal-note a:hover { text-decoration: underline; }
.report-box {
  background: #fafbfd; border: 1px solid var(--line); border-radius: 2px;
  padding: 20px 24px; font-size: 14.5px; line-height: 2; color: var(--dark);
  margin-top: 16px;
}
body.modal-open { overflow: hidden; }

/* ============================================================
   7. 工作台首屏（新版首页）——欢迎语 + 今日重点关注
   ============================================================ */

.dash-hero {
  background: linear-gradient(180deg, #ffffff 0%, #f4f6f9 100%);
  border-bottom: 1px solid var(--line);
}
.dash-hero::before {
  content: ""; display: block; height: 3px; background: var(--navy);
}
.dash-hero-inner {
  max-width: 1080px; margin: 0 auto; padding: 56px 20px 48px;
  display: grid; grid-template-columns: 1fr 360px; gap: 56px; align-items: stretch;
}
@media (max-width: 900px) {
  .dash-hero-inner { grid-template-columns: 1fr; gap: 32px; padding: 36px 20px; }
}

/* —— 左侧欢迎语 —— */
.welcome { display: flex; flex-direction: column; }
.welcome-kicker {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; color: var(--gray); letter-spacing: .5px;
}
.kicker-line { display: block; width: 26px; height: 2px; background: var(--main); flex: none; }

.welcome-title {
  margin: 18px 0 16px;
  font-size: 40px; line-height: 1.32; font-weight: bold;
  letter-spacing: 1px; color: var(--navy);
}
.welcome-title .hl-em { color: var(--main); position: relative; }
.welcome-title .hl-em::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -4px;
  height: 8px; background: rgba(36, 82, 143, .14); border-radius: 2px; z-index: -1;
}
@media (max-width: 900px) { .welcome-title { font-size: 28px; } }
@media (max-width: 560px) { .welcome-title { font-size: 23px; letter-spacing: 0; } }

.welcome-desc { font-size: 14.5px; color: var(--gray); line-height: 2.1; }
.welcome-actions { margin-top: 28px; display: flex; gap: 14px; flex-wrap: wrap; }
.btn-lg { padding: 13px 30px; font-size: 14.5px; }

.welcome-foot {
  margin-top: 28px; font-size: 12.5px; color: var(--gray);
  display: flex; flex-wrap: wrap; gap: 0 12px; line-height: 2;
}
.welcome-foot .sep { opacity: .4; }

/* —— 右侧「今日重点关注」待办面板 —— */
.todo-panel {
  background: #fff; border: 1px solid var(--line);
  border-top: 3px solid var(--main);
  border-radius: var(--r); padding: 18px 18px 14px;
  box-shadow: 0 2px 12px rgba(22, 35, 61, .04);
  display: flex; flex-direction: column;
}
.todo-head {
  display: flex; align-items: center; justify-content: space-between;
  padding-bottom: 12px; border-bottom: 1px solid var(--line);
}
.todo-head h2 { font-size: 15px; font-weight: bold; color: var(--navy); }
.todo-tag {
  font-size: 11px; color: #fff; background: var(--red);
  padding: 1px 8px; border-radius: 2px; letter-spacing: .5px;
}

.todo-list { list-style: none; flex: 1; }
.todo-item {
  display: grid; grid-template-columns: 48px 1fr auto;
  gap: 12px; align-items: center;
  padding: 12px 0; border-bottom: 1px dashed #eaeef5;
}
.todo-item:last-child { border-bottom: none; }
.todo-count {
  width: 44px; height: 44px; border-radius: var(--r);
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; font-weight: bold; flex: none;
}
.todo-item.t-red    .todo-count { background: #fbeeec; color: var(--red); }
.todo-item.t-orange .todo-count { background: #fbf2e8; color: var(--orange); }
.todo-item.t-blue   .todo-count { background: #edf3fc; color: var(--blue); }

.todo-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.todo-main b { font-size: 14px; color: var(--navy); font-weight: bold; line-height: 1.4; }
.todo-main i { font-style: normal; font-size: 12.5px; color: var(--gray); line-height: 1.55;
  overflow: hidden; text-overflow: ellipsis; display: -webkit-box;
  -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.todo-go {
  font-size: 12.5px; color: var(--main); text-decoration: none;
  white-space: nowrap; padding: 5px 12px; border: 1px solid #c3cfdf;
  border-radius: var(--r-btn); transition: all .15s;
}
.todo-go:hover { background: var(--main); color: #fff; border-color: var(--main); }

.todo-all {
  display: block; margin-top: 12px; padding-top: 10px;
  border-top: 1px solid var(--line);
  font-size: 12.5px; color: var(--main); text-decoration: none; text-align: center;
}
.todo-all:hover { text-decoration: underline; }

/* ============================================================
   8. 数据指标条（横向铺陈）
   ============================================================ */
.metrics-bar {
  background: var(--navy); padding: 18px 20px;
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px;
}
@media (max-width: 760px) {
  .metrics-bar { grid-template-columns: repeat(3, 1fr); gap: 1px 0; padding: 12px 16px; }
}
@media (max-width: 480px) { .metrics-bar { grid-template-columns: repeat(2, 1fr); } }

.metric {
  text-align: center; padding: 6px 8px;
  border-right: 1px solid rgba(255, 255, 255, .08);
  color: #fff;
}
.metric:last-child { border-right: none; }
@media (max-width: 760px) {
  .metric:nth-child(3n) { border-right: none; }
  .metric { padding: 8px 4px; }
}
.metric b {
  font-size: 26px; font-weight: bold; line-height: 1.1;
  color: #fff; display: inline-block;
}
.metric i {
  font-style: normal; font-size: 12px; color: rgba(255, 255, 255, .7);
  margin-left: 3px;
}
.metric span {
  display: block; margin-top: 4px;
  font-size: 12px; color: rgba(255, 255, 255, .7); letter-spacing: .5px;
}
/* 各指标强调色 */
.metric.mc-x b { color: #ffd479; }
.metric.mc-c b { color: #ff9b9b; }
.metric.mc-g b { color: #87d7ff; }
.metric.mc-f b { color: #b5f0c0; }
.metric.mc-ct b { color: #ffd479; }
.metric.mc-r b { color: #ff9b9b; }

/* ============================================================
   9. 三大功能模块卡片（视觉强化）
   ============================================================ */
.block-modules { margin-top: 48px; }
.module-cards {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
}
@media (max-width: 880px) { .module-cards { grid-template-columns: 1fr; gap: 14px; } }

.m-card {
  display: flex; flex-direction: column;
  background: #fff; border: 1px solid var(--line);
  border-radius: var(--r-card); padding: 26px 24px 22px;
  text-decoration: none; color: var(--dark);
  border-top: 4px solid var(--main);
  transition: transform .22s, box-shadow .22s, border-top-color .22s;
  position: relative; overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.m-card::after {
  content: ""; position: absolute; top: 0; right: 0;
  width: 90px; height: 90px;
  background: radial-gradient(circle at top right, rgba(36, 82, 143, .08), transparent 70%);
  pointer-events: none;
}
.m-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
}

/* 三个模块分色 */
.m-xuncha { border-top-color: var(--main); }
.m-ganbu  { border-top-color: var(--green); }
.m-caiwu  { border-top-color: var(--orange); }
.m-xuncha::after { background: radial-gradient(circle at top right, rgba(36, 82, 143, .10), transparent 70%); }
.m-ganbu::after  { background: radial-gradient(circle at top right, rgba(23, 121, 79, .10), transparent 70%); }
.m-caiwu::after  { background: radial-gradient(circle at top right, rgba(179, 101, 26, .10), transparent 70%); }

.m-top {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 14px;
}
.m-no {
  font-size: 22px; font-weight: bold; letter-spacing: 1px;
  color: #c3cfdf;
}
.m-card:hover .m-no { color: var(--main); }
.m-ganbu:hover .m-no  { color: var(--green); }
.m-caiwu:hover .m-no  { color: var(--orange); }

.m-icon {
  width: 38px; height: 38px; border-radius: var(--r);
  display: flex; align-items: center; justify-content: center;
}
.m-xuncha .m-icon { background: #eef3fa; color: var(--main); }
.m-ganbu  .m-icon { background: #e9f5ee; color: var(--green); }
.m-caiwu  .m-icon { background: #fbf2e8; color: var(--orange); }

.m-name {
  font-size: 18px; font-weight: bold; color: var(--navy);
  margin-bottom: 8px;
}
.m-desc {
  font-size: 13px; color: var(--gray); line-height: 1.8;
  flex: 1;
}

/* 指标三宫格 */
.m-stats {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px; margin: 16px 0 14px;
  background: var(--line); border: 1px solid var(--line);
  border-radius: var(--r); overflow: hidden;
}
.m-stat {
  background: #fafbfd; padding: 10px 6px; text-align: center;
}
.m-stat b {
  font-size: 19px; font-weight: bold; color: var(--navy);
  display: block; line-height: 1.1;
}
.m-stat span {
  font-size: 11.5px; color: var(--gray); display: block; margin-top: 3px;
}
.m-stat-urgent b { color: var(--red); }
.m-xuncha .m-stat-urgent b { color: var(--red); }
.m-ganbu  .m-stat-urgent b { color: var(--orange); }
.m-caiwu  .m-stat-urgent b { color: var(--red); }

.m-go {
  text-align: center; font-size: 13.5px; font-weight: bold;
  padding: 11px 0; border-radius: var(--r-btn);
  color: #fff; background: var(--main);
  letter-spacing: 1px; transition: background .2s, transform .2s;
}
.m-ganbu .m-go { background: var(--green); }
.m-caiwu .m-go { background: var(--orange); }
.m-xuncha:hover .m-go { background: var(--main-d); }
.m-ganbu:hover  .m-go { background: #13603f; }
.m-caiwu:hover  .m-go { background: #955316; }

/* ============================================================
   10. 工作流程 v2（轻微视觉强化）
   ============================================================ */
.flow-v2 {
  background: #fff; border: 1px solid var(--line);
  border-radius: var(--r); padding: 26px 30px;
}
/* v2 版去掉原 .flow 的 border-top 与 padding-top 重复 */
.flow-v2 { border-top: 1px solid var(--line); padding-top: 26px; }
.flow-v2 .flow-item { padding: 0 22px; }
.flow-v2 .flow-item:first-child { padding-left: 0; }
.flow-v2 .flow-item:last-child { padding-right: 0; }
.flow-v2 .flow-no {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 50%;
  background: var(--main); color: #fff;
  font-size: 12px; font-weight: bold; letter-spacing: 0;
  margin-bottom: 12px;
}
.flow-v2 .flow-item:nth-child(2) .flow-no { background: var(--green); }
.flow-v2 .flow-item:nth-child(3) .flow-no { background: var(--orange); }

/* 模块卡片下方说明与下一区块间距优化 */
.block-modules .mod-note {
  margin-top: 18px; padding: 10px 14px;
  background: #fafbfd; border: 1px solid var(--line);
  border-radius: var(--r); font-size: 13px; color: var(--gray);
}
.block-modules .mod-note a { color: var(--main); }

/* ============================================================
   11. 子页统一模块页头（替换原 .topbar）—— 门户蓝
   ============================================================ */
.mod-header {
  position: sticky; top: 0; z-index: 50;
  background: linear-gradient(180deg, #2e63b4 0%, #1e4a94 100%);
  border-bottom: 1px solid rgba(0, 0, 0, .18);
  box-shadow: 0 2px 10px rgba(2, 44, 144, .16);
}
.mod-header::before {
  content: ""; display: block; height: 3px;
  background: linear-gradient(90deg, #cfa976, #e8cf9f, #cfa976);
}
/* 顶部条 */
.mh-top {
  max-width: 1080px; margin: 0 auto; padding: 0 20px;
  height: 56px; display: flex; align-items: center; justify-content: space-between;
  gap: 16px;
}
.mh-left { display: flex; align-items: center; gap: 18px; min-width: 0; }
.mh-back {
  color: #fff; text-decoration: none; font-size: 13px; font-weight: bold;
  padding: 8px 20px; border: 1.5px solid rgba(255,255,255,.5); border-radius: var(--r-btn);
  background: rgba(255,255,255,.08); flex: none; transition: all .15s;
}
.mh-back:hover { color: #022c90; background: #fff; border-color: #fff; transform: translateY(-1px); }
.mh-title {
  display: flex; align-items: center; gap: 10px;
  font-size: 16px; font-weight: bold; color: #fff; white-space: nowrap;
}
.mh-bar { display: inline-block; width: 4px; height: 18px; border-radius: 2px; background: #e8cf9f; }
.mh-blue   .mh-bar { background: #87d7ff; }
.mh-green  .mh-bar { background: #b5f0c0; }
.mh-orange .mh-bar { background: #ffd479; }
.mh-navy   .mh-bar { background: #e8cf9f; }

.mh-nav { display: flex; gap: 6px; align-items: center; flex: none; }
.mh-nav a {
  font-size: 12.5px; color: rgba(255,255,255,.85); text-decoration: none;
  padding: 5px 12px; border-radius: 2px;
  transition: color .15s, background .15s;
}
.mh-nav a:hover { color: #fff; background: rgba(255,255,255,.15); }
.mh-nav a.cur { color: #022c90; background: #fff; font-weight: bold; }
@media (max-width: 720px) {
  .mh-nav { display: none; }
  .mh-top { height: 50px; }
}

/* 模块概要指标条（mini metrics） */
.mh-metrics {
  max-width: 1080px; margin: 0 auto; padding: 14px 20px;
  display: flex; gap: 0; flex-wrap: wrap; align-items: stretch;
}
.mh-metric {
  flex: 1; min-width: 110px;
  padding: 4px 18px; border-right: 1px solid rgba(255,255,255,.18);
  display: flex; flex-direction: column; gap: 2px;
}
.mh-metric:first-child { padding-left: 0; }
.mh-metric:last-child { border-right: none; padding-right: 0; }
.mh-metric b {
  font-size: 22px; font-weight: bold; color: #fff; line-height: 1.1;
}
.mh-metric span {
  font-size: 12px; color: rgba(255,255,255,.75); letter-spacing: .5px;
}
.mh-metric.urgent b { color: #ff9b9b; }
.mh-metric.warn   b { color: #ffd479; }
.mh-metric.good   b { color: #b5f0c0; }

@media (max-width: 720px) {
  .mh-metrics { gap: 12px 18px; padding: 12px 20px; }
  .mh-metric { min-width: 0; flex: 1 1 30%; padding: 6px 8px; border-right: none; }
}

/* 子页主内容区下移，避开 sticky header */
body:has(.mod-header) .container { padding-top: 18px; }

/* ============================================================
   12. 欢迎页（Landing）—— 门户风格 + 「开始工作」CTA
   ============================================================ */
.landing {
  min-height: 100vh;
  background:
    linear-gradient(rgba(255, 255, 255, .42), rgba(232, 240, 250, .55)),
    url("bg.jpg") no-repeat center / cover;
  color: var(--dark);
  display: flex; flex-direction: column;
  position: relative; overflow: hidden;
}
/* 顶部金色装饰线 */
.landing::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, transparent, #cfa976 30%, #2e63b4 70%, transparent);
  z-index: 3;
}
/* 右下角抽象装饰：柔和蓝光晕 */
.landing::after {
  content: ""; position: absolute; top: 50%; right: -200px;
  width: 500px; height: 500px; border-radius: 50%;
  background: radial-gradient(circle, rgba(46, 99, 180, .12), transparent 65%);
  pointer-events: none; transform: translateY(-50%);
}

/* 装饰层：关键词水印 */
.landing-deco {
  position: absolute; inset: 0; pointer-events: none; z-index: 1;
  overflow: hidden;
}

/* 关键词水印 */
.landing-keywords {
  position: absolute; bottom: 60px; left: -24px;
  font-size: 88px; font-weight: bold; line-height: 1.1;
  color: rgba(46, 99, 180, .06); letter-spacing: 8px;
  white-space: nowrap; transform: rotate(-90deg); transform-origin: left bottom;
  pointer-events: none; z-index: 1;
}

/* 顶部 logo */
.landing-nav {
  position: relative; z-index: 2;
  padding: 24px 40px;
  display: flex; align-items: center; gap: 12px;
}
.landing-brand {
  width: 40px; height: 40px; border-radius: 10px;
  background: linear-gradient(135deg, #2e63b4, #1e4a94);
  display: flex; align-items: center; justify-content: center;
  font-weight: bold; font-size: 14px; letter-spacing: .5px;
  color: #fff; box-shadow: 0 2px 8px rgba(2, 44, 144, .2);
}
.landing-brand-name {
  font-size: 15px; font-weight: bold; line-height: 1.4; color: #022c90;
}
.landing-brand-sub {
  display: block; font-size: 11.5px; font-weight: normal;
  color: var(--gray); letter-spacing: .5px;
}

/* 主内容居中 */
.landing-main {
  flex: 1; position: relative; z-index: 2;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 40px 20px;
}
.landing-kicker {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 6px 16px; border-radius: var(--r-btn);
  background: rgba(255, 255, 255, .75);
  border: 1px solid rgba(46, 99, 180, .25);
  font-size: 12.5px; color: var(--main); letter-spacing: 1px;
  margin-bottom: 28px;
}
.landing-kicker::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: #cfa976; box-shadow: 0 0 8px #cfa976;
}
.landing-title {
  font-size: 72px; font-weight: bold; line-height: 1.2;
  letter-spacing: 3px; margin-bottom: 48px;
  color: #022c90;
  text-shadow: 0 2px 18px rgba(255, 255, 255, .6);
}
@media (max-width: 720px) { .landing-title { font-size: 42px; letter-spacing: 1px; } }
@media (max-width: 480px)  { .landing-title { font-size: 32px; } }

.landing-desc {
  font-size: 16px; line-height: 2; color: #44546a;
  max-width: 620px; margin-bottom: 44px;
}
@media (max-width: 720px) { .landing-desc { font-size: 14px; margin-bottom: 32px; } }

/* 大圆角 CTA 按钮（门户蓝） */
.landing-cta {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 18px 48px; border-radius: var(--r-btn);
  background: linear-gradient(135deg, #2e63b4, #1e4a94);
  color: #fff; font-size: 16px; font-weight: bold; letter-spacing: 2px;
  text-decoration: none;
  box-shadow: 0 12px 32px rgba(2, 44, 144, .28);
  transition: transform .25s, box-shadow .25s;
  position: relative; overflow: hidden;
}
.landing-cta::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(120deg, transparent, rgba(255, 255, 255, .22), transparent);
  transform: translateX(-100%); transition: transform .6s;
}
.landing-cta:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 18px 40px rgba(2, 44, 144, .4);
}
.landing-cta:hover::before { transform: translateX(100%); }
.landing-cta .arrow {
  display: inline-block; transition: transform .25s;
}
.landing-cta:hover .arrow { transform: translateX(4px); }

/* ============================================================
   13. 工作台页面（workbench.html）专属样式
   ============================================================ */
.wb-hero {
  background: linear-gradient(135deg, #f4f6f9 0%, #e8edf5 100%);
  border-bottom: 1px solid var(--line);
  padding: 48px 20px 40px;
}
.wb-hero-inner {
  max-width: 1080px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between; gap: 32px;
  flex-wrap: wrap;
}
.wb-hero-text { flex: 1; min-width: 280px; }
.wb-hero-kicker {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 5px 14px; border-radius: var(--r-btn);
  background: #eef3fa; color: var(--main);
  font-size: 12px; letter-spacing: .5px; margin-bottom: 14px;
}
.wb-hero-title {
  font-size: 32px; font-weight: bold; color: var(--navy);
  line-height: 1.35; margin-bottom: 10px;
}
.wb-hero-desc { font-size: 14px; color: var(--gray); line-height: 1.9; }
.wb-hero-cta { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
@media (max-width: 720px) {
  .wb-hero { padding: 32px 20px 28px; }
  .wb-hero-title { font-size: 24px; }
}

/* 工作台模块卡片：更大、更饱满、更立体 */
.wb-cards {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  margin-top: 24px;
}
@media (max-width: 980px) { .wb-cards { grid-template-columns: 1fr 1fr; gap: 18px; } }
@media (max-width: 680px) { .wb-cards { grid-template-columns: 1fr; gap: 16px; } }

/* 工作台容器更宽敞 */
body:has(.wb-cards) .container { max-width: 1240px; padding-top: 4px; }
.block-modules { margin-top: 28px !important; }

.wb-card {
  display: flex; flex-direction: column;
  background: #fff; border-radius: var(--r-card);
  padding: 36px 30px 28px;
  text-decoration: none; color: var(--dark);
  position: relative; overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform .25s, box-shadow .25s, border-color .25s;
  border: 2px solid #b8c5d6;
  min-height: 320px;
}
.wb-card:hover { border-color: var(--main); }
.wb-card.wb-blue:hover   { border-color: var(--main); }
.wb-card.wb-green:hover  { border-color: var(--green); }
.wb-card.wb-orange:hover { border-color: var(--orange); }
.wb-card::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 6px;
  background: var(--main);
}
.wb-card.wb-blue::before   { background: linear-gradient(90deg, var(--main), #4a7bc8); }
.wb-card.wb-green::before  { background: linear-gradient(90deg, var(--green), #3aa876); }
.wb-card.wb-orange::before { background: linear-gradient(90deg, var(--orange), #d68a3a); }
/* 卡片底部模块色淡填充，消除空旷感 */
.wb-card::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 120px;
  background: linear-gradient(180deg, transparent, rgba(36, 82, 143, .05));
  pointer-events: none; z-index: 0;
}
.wb-card.wb-blue::after   { background: linear-gradient(180deg, transparent, rgba(36, 82, 143, .06)); }
.wb-card.wb-green::after  { background: linear-gradient(180deg, transparent, rgba(23, 121, 79, .06)); }
.wb-card.wb-orange::after { background: linear-gradient(180deg, transparent, rgba(179, 101, 26, .06)); }
.wb-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-lg);
}

/* 图标区：大图标 + 右上角小编号徽章 */
.wb-icon-wrap {
  position: relative; display: inline-flex; margin-bottom: 24px;
  z-index: 1;
}
.wb-icon {
  width: 72px; height: 72px; border-radius: 20px;
  display: flex; align-items: center; justify-content: center;
  position: relative; z-index: 1;
}
.wb-card.wb-blue   .wb-icon { background: linear-gradient(135deg, #eef3fa, #dbe7f7); color: var(--main); }
.wb-card.wb-green  .wb-icon { background: linear-gradient(135deg, #e9f5ee, #d3ebdd); color: var(--green); }
.wb-card.wb-orange .wb-icon { background: linear-gradient(135deg, #fbf2e8, #f5e2c8); color: var(--orange); }

/* 编号小徽章：图标右上角，精致 */
.wb-badge {
  position: absolute; top: -8px; right: -10px;
  min-width: 26px; height: 26px; padding: 0 7px;
  border-radius: 13px;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: bold; color: #fff;
  background: var(--main);
  box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
  z-index: 2; letter-spacing: .5px;
}
.wb-card.wb-green  .wb-badge { background: var(--green); }
.wb-card.wb-orange .wb-badge { background: var(--orange); }

/* 右上角圆形箭头：暗示可点击进入 */
.wb-corner {
  position: absolute; top: 24px; right: 24px;
  width: 36px; height: 36px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: #eef3fa; color: var(--main);
  transition: all .22s; z-index: 2;
  border: 1px solid #d6e2f5;
}
.wb-card.wb-blue   .wb-corner { background: #eef3fa; color: var(--main); border-color: #d6e2f5; }
.wb-card.wb-green  .wb-corner { background: #e9f5ee; color: var(--green); border-color: #c9e6d4; }
.wb-card.wb-orange .wb-corner { background: #fbf2e8; color: var(--orange); border-color: #ecd6be; }
.wb-card:hover .wb-corner { transform: translate(3px, -3px); }
.wb-card.wb-blue:hover   .wb-corner { background: var(--main); color: #fff; border-color: var(--main); }
.wb-card.wb-green:hover  .wb-corner { background: var(--green); color: #fff; border-color: var(--green); }
.wb-card.wb-orange:hover .wb-corner { background: var(--orange); color: #fff; border-color: var(--orange); }

.wb-name {
  font-size: 26px; font-weight: bold; color: var(--navy);
  margin-bottom: 10px; position: relative; z-index: 1; line-height: 1.3;
}
/* 副标题：一行关键词，不是描述段落 */
.wb-sub {
  font-size: 13.5px; color: var(--gray); line-height: 1.7;
  margin-bottom: auto; padding-bottom: 22px; position: relative; z-index: 1;
  letter-spacing: .3px;
}

.wb-go {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  padding: 16px 0; border-radius: var(--r-btn);
  color: #fff; font-size: 15px; font-weight: bold; letter-spacing: 1.5px;
  background: var(--main);
  transition: background .2s, transform .2s;
  position: relative; z-index: 1;
}
.wb-card.wb-green  .wb-go { background: var(--green); }
.wb-card.wb-orange .wb-go { background: var(--orange); }
.wb-card:hover .wb-go { transform: scale(1.02); }
.wb-card.wb-blue:hover   .wb-go { background: var(--main-d); }
.wb-card.wb-green:hover  .wb-go { background: #13603f; }
.wb-card.wb-orange:hover .wb-go { background: #955316; }

/* ============================================================
   14. 欢迎页「今日重点关注」浮窗（放大 · 白色卡片）
   ============================================================ */
.landing-main { flex: 1; position: relative; z-index: 2; }
.landing-grid {
  flex: 1; width: 100%; max-width: 1200px; margin: 0 auto;
  padding: 20px 40px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 0;
}
@media (max-width: 960px) {
  .landing-grid { padding: 20px; }
}
.landing-left {
  display: flex; flex-direction: column; align-items: center;
  text-align: center;
}
.landing-left .landing-kicker { margin-bottom: 28px; }
.landing-left .landing-title { margin-bottom: 48px; text-align: center; }
@media (max-width: 720px) {
  .landing-left { align-items: center; text-align: center; }
  .landing-left .landing-title { text-align: center; }
}

/* 今日重点关注小窗：放大，白色卡片 */
.landing-focus {
  position: absolute; bottom: 48px; right: 40px;
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(46, 99, 180, .18);
  border-radius: 16px;
  padding: 20px 20px 14px;
  box-shadow: 0 12px 32px rgba(2, 44, 144, .18);
  max-width: 380px;
  z-index: 3;
}
@media (max-width: 960px) {
  .landing-focus { position: static; margin-top: 32px; max-width: 420px; width: 100%; }
}
.landing-focus::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, #2e63b4, #cfa976);
  border-radius: 16px 16px 0 0;
}
.lf-head {
  display: flex; align-items: center; justify-content: space-between;
  padding-bottom: 10px; margin-bottom: 8px;
  border-bottom: 1px solid #e6ecf4;
}
.lf-title {
  font-size: 18px; font-weight: bold; color: #022c90;
  display: flex; align-items: center; gap: 8px;
}
.lf-title::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%;
  background: #e0554a; box-shadow: 0 0 8px rgba(224, 85, 74, .7);
  animation: lf-pulse 1.8s ease-in-out infinite;
}
@keyframes lf-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: .5; transform: scale(.8); }
}
.lf-tag {
  font-size: 11px; color: #fff; background: #e0554a;
  padding: 2px 10px; border-radius: 999px; letter-spacing: .5px;
}
.lf-list { list-style: none; }
.lf-item {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 0; border-bottom: 1px solid #eef2f7;
}
.lf-item:last-child { border-bottom: none; }
.lf-num {
  width: 40px; height: 40px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; font-weight: bold; flex: none;
}
.lf-item.lf-red    .lf-num { background: #fdecea; color: #d64545; border: 1px solid #f4c9c6; }
.lf-item.lf-orange .lf-num { background: #fdf3e2; color: #c98a1b; border: 1px solid #f0ddb8; }
.lf-item.lf-blue   .lf-num { background: #eaf3fd; color: #2e63b4; border: 1px solid #c9dcf3; }
.lf-body { flex: 1; min-width: 0; }
.lf-body b {
  display: block; font-size: 14px; color: #1e2a38; font-weight: bold; line-height: 1.35;
}
.lf-body i {
  font-style: normal; font-size: 12px; color: #66748a;
  line-height: 1.4; display: block; margin-top: 2px;
  overflow: hidden; text-overflow: ellipsis; display: -webkit-box;
  -webkit-line-clamp: 1; -webkit-box-orient: vertical;
}
.lf-go {
  font-size: 12px; color: #2e63b4; text-decoration: none;
  padding: 4px 12px; border-radius: 999px;
  border: 1px solid rgba(46, 99, 180, .35);
  transition: all .18s; white-space: nowrap; flex: none;
}
.lf-go:hover { background: #2e63b4; color: #fff; }
.lf-foot {
  margin-top: 10px; padding-top: 8px;
  border-top: 1px solid #e6ecf4;
  display: flex; justify-content: space-between; align-items: center;
}
.lf-foot a {
  font-size: 12.5px; color: #2e63b4; text-decoration: none;
}
.lf-foot a:hover { text-decoration: underline; }
.lf-foot span { font-size: 11px; color: #9aa7b8; letter-spacing: .5px; }

/* ============================================================
   15. 工作台 Hero 强化（深色控制中心）
   ============================================================ */
.wb-hero-v2 {
  background:
    radial-gradient(circle at 15% 20%, rgba(47, 127, 220, .32), transparent 50%),
    radial-gradient(circle at 85% 80%, rgba(23, 121, 79, .18), transparent 55%),
    linear-gradient(135deg, #022c90 0%, #2e63b4 60%, #2f6fc4 100%);
  color: #fff;
  padding: 28px 20px 26px;
  position: relative; overflow: hidden;
}
.wb-hero-v2::before {
  content: ""; position: absolute; top: -60px; right: -60px;
  width: 280px; height: 280px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, .06), transparent 70%);
  pointer-events: none;
}
.wb-hero-v2-inner {
  max-width: 1080px; margin: 0 auto; position: relative; z-index: 1;
  display: flex; align-items: center; justify-content: space-between; gap: 36px; flex-wrap: wrap;
}
.wb-hero-v2-text { flex: 1; min-width: 300px; }
.wb-hero-v2-kicker {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 5px 14px; border-radius: 999px;
  background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .2);
  font-size: 12px; color: rgba(255, 255, 255, .9); letter-spacing: 1px;
  margin-bottom: 16px;
}
.wb-hero-v2-kicker::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: #5dd5a4; box-shadow: 0 0 8px #5dd5a4;
}
.wb-hero-v2-title {
  font-size: 26px; font-weight: bold; line-height: 1.3;
  letter-spacing: 1px; margin-bottom: 0;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .2);
}
.wb-hero-v2-title .accent {
  background: linear-gradient(90deg, #ffd479, #ff9b9b);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.wb-hero-v2-desc {
  font-size: 14.5px; color: rgba(255, 255, 255, .78); line-height: 1.95;
  max-width: 540px; margin-bottom: 22px;
}
.wb-hero-v2-stats {
  display: flex; gap: 0; flex-wrap: wrap;
}
.wb-hero-v2-stat {
  padding: 0 24px; border-right: 1px solid rgba(255, 255, 255, .15);
}
.wb-hero-v2-stat:first-child { padding-left: 0; }
.wb-hero-v2-stat:last-child { border-right: none; }
.wb-hero-v2-stat b {
  font-size: 26px; font-weight: bold; color: #fff; display: block; line-height: 1.1;
}
.wb-hero-v2-stat span {
  font-size: 12px; color: rgba(255, 255, 255, .6); letter-spacing: .5px;
}
.wb-hero-v2-cta { display: flex; flex-direction: column; gap: 10px; align-items: flex-end; }
.wb-hero-v2-cta .btn-line {
  background: rgba(255, 255, 255, .1); color: #fff; border-color: rgba(255, 255, 255, .25);
}
.wb-hero-v2-cta .btn-line:hover { background: rgba(255, 255, 255, .2); border-color: rgba(255, 255, 255, .5); }
.wb-hero-v2-cta .wb-quick {
  font-size: 11.5px; color: rgba(255, 255, 255, .5);
}
@media (max-width: 720px) {
  .wb-hero-v2 { padding: 40px 20px 32px; }
  .wb-hero-v2-title { font-size: 26px; }
  .wb-hero-v2-cta { align-items: flex-start; width: 100%; }
}

/* ============================================================
   16. 全平台检索（独立大模块）
   ============================================================ */
.search-section {
  background: linear-gradient(180deg, #fff 0%, #f4f6f9 100%);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 36px 36px 28px;
  margin-top: 12px;
  box-shadow: var(--shadow-sm);
  position: relative; overflow: hidden;
}
.search-section::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, var(--main), #4a7bc8, var(--green), var(--orange));
}
.search-section-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 22px; flex-wrap: wrap; gap: 12px;
}
.search-section-title {
  display: flex; align-items: center; gap: 12px;
}
.search-section-title .ss-icon {
  width: 44px; height: 44px; border-radius: 12px;
  background: linear-gradient(135deg, #eef3fa, #dbe7f7);
  color: var(--main);
  display: flex; align-items: center; justify-content: center;
}
.search-section-title h2 {
  font-size: 22px; font-weight: bold; color: var(--navy); line-height: 1.3;
}
.search-section-title p {
  font-size: 12.5px; color: var(--gray); margin-top: 2px;
}
.search-section-tag {
  font-size: 11px; color: var(--main); background: #eef3fa;
  padding: 4px 12px; border-radius: 999px; letter-spacing: .5px;
  border: 1px solid #d6e2f5;
}

/* 大搜索框 */
.search-big {
  display: flex; align-items: stretch;
  background: #fff; border: 2px solid #c3cfdf; border-radius: 14px;
  overflow: hidden; transition: border-color .18s, box-shadow .18s;
  box-shadow: 0 2px 12px rgba(22, 35, 61, .06);
}
.search-big:focus-within {
  border-color: var(--main);
  box-shadow: 0 0 0 4px rgba(36, 82, 143, .12);
}
.search-big-icon {
  display: flex; align-items: center; justify-content: center;
  width: 56px; flex: none; color: var(--gray);
  background: #fafbfd; border-right: 1px solid var(--line);
}
.search-big input {
  flex: 1; min-width: 0; height: 60px; border: none; outline: none;
  font-size: 16px; padding: 0 20px; background: #fff;
  color: var(--dark); font-family: inherit;
}
.search-big input::placeholder { color: #9aa7b8; font-size: 15px; }
.search-big-btn {
  flex: none; background: var(--main); color: #fff; border: none; cursor: pointer;
  font-size: 15px; letter-spacing: 2px; padding: 0 40px; font-family: inherit;
  font-weight: bold;
  transition: background .18s;
  display: flex; align-items: center; gap: 8px;
}
.search-big-btn:hover { background: var(--main-d); }

/* 分类筛选标签 */
.search-tabs {
  display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px;
}
.search-tab {
  font-size: 12.5px; color: var(--gray); text-decoration: none;
  padding: 6px 16px; border-radius: 999px;
  background: #fff; border: 1px solid var(--line);
  transition: all .15s; cursor: pointer;
}
.search-tab:hover { color: var(--main); border-color: var(--main); }
.search-tab.active {
  color: #fff; background: var(--main); border-color: var(--main);
}
.search-tab .tab-count {
  font-size: 11px; opacity: .7; margin-left: 4px;
}

/* 常用检索胶囊 */
.search-chips {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin-top: 14px;
}
.search-chips-label {
  font-size: 12.5px; color: var(--gray); margin-right: 4px;
}
.search-chip {
  font-size: 12.5px; color: var(--dark); text-decoration: none;
  padding: 5px 14px; border-radius: 999px;
  background: #fff; border: 1px solid var(--line);
  transition: all .15s;
}
.search-chip:hover {
  color: var(--main); border-color: var(--main);
  background: #eef3fa;
}

/* 检索范围说明（6 类数据表） */
.search-scope {
  display: flex; gap: 0; flex-wrap: wrap;
  margin-top: 18px; padding: 14px 18px;
  background: #fafbfd; border: 1px solid var(--line); border-radius: 10px;
}
.search-scope-item {
  flex: 1; min-width: 120px;
  padding: 4px 16px; border-right: 1px solid var(--line);
  display: flex; flex-direction: column; gap: 2px;
}
.search-scope-item:last-child { border-right: none; }
.search-scope-item b {
  font-size: 16px; color: var(--navy); font-weight: bold;
}
.search-scope-item span {
  font-size: 11.5px; color: var(--gray);
}
.search-scope-item.urgent b { color: var(--red); }

/* 检索结果容器（独立大区块） */
.search-results-box {
  margin-top: 20px;
  min-height: 80px;
}

/* ============================================================
   17. 工作流程过程图（SVG 思维导图样式）
   ============================================================ */
.flow-diagram {
  background: linear-gradient(180deg, #fff 0%, #f8fafd 100%);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 40px 24px 32px;
  position: relative; overflow: hidden;
}
.flow-diagram::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--main), var(--green), var(--orange));
}
.flow-diagram-title {
  text-align: center; margin-bottom: 28px;
}
.flow-diagram-title h3 {
  font-size: 18px; font-weight: bold; color: var(--navy); margin-bottom: 4px;
}
.flow-diagram-title p {
  font-size: 12.5px; color: var(--gray);
}

/* SVG 流程图容器 */
.flow-svg-wrap {
  width: 100%; overflow-x: auto;
  display: flex; justify-content: center;
}
.flow-svg {
  min-width: 720px; width: 100%; max-width: 960px;
  height: auto;
}
/* 节点样式（用 foreignObject 嵌入 HTML） */
.flow-node-main {
  fill: #fff; stroke-width: 2;
}
.flow-node-main.n-blue   { stroke: var(--main); }
.flow-node-main.n-green  { stroke: var(--green); }
.flow-node-main.n-orange { stroke: var(--orange); }
.flow-node-label {
  font-size: 14px; font-weight: bold;
}
.flow-node-num {
  font-size: 11px; font-weight: bold; letter-spacing: 1px;
}
/* 子节点（思维导图叶节点） */
.flow-sub {
  fill: #fafbfd; stroke: var(--line); stroke-width: 1;
}
.flow-sub-text {
  font-size: 11.5px; fill: var(--gray);
}
/* 连接线 */
.flow-line {
  fill: none; stroke: #c3cfdf; stroke-width: 2;
}
.flow-arrow {
  fill: #c3cfdf;
}

/* 移动端：简化版文字流程 */
.flow-mobile {
  display: none;
}
@media (max-width: 760px) {
  .flow-svg-wrap { display: none; }
  .flow-mobile { display: block; }
}
.flow-mobile-item {
  position: relative;
  padding: 16px 16px 16px 56px;
  background: #fff; border: 1px solid var(--line);
  border-radius: 12px; margin-bottom: 12px;
}
.flow-mobile-item::before {
  content: attr(data-no);
  position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  width: 32px; height: 32px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 13px; font-weight: bold;
}
.flow-mobile-item.fn-blue::before   { background: var(--main); }
.flow-mobile-item.fn-green::before  { background: var(--green); }
.flow-mobile-item.fn-orange::before { background: var(--orange); }
.flow-mobile-item h4 {
  font-size: 14.5px; font-weight: bold; color: var(--navy); margin-bottom: 4px;
}
.flow-mobile-item p {
  font-size: 12.5px; color: var(--gray); line-height: 1.7;
}
.flow-mobile-item ul {
  margin-top: 6px; padding-left: 16px; font-size: 12px; color: var(--gray);
}
.flow-mobile-item li { line-height: 1.8; }

/* 模块卡片下方间距 */
#modules + #search { margin-top: 48px; }
#search + #workflow { margin-top: 48px; }

/* ============================================================
   18. 检索维度说明 + 热门风险关键词（search.html 丰富内容）
   ============================================================ */

/* 检索维度说明：6 个卡片网格 */
.search-guide {
  margin-top: 24px;
}
.search-guide-head {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 14px;
}
.search-guide-head h3 {
  font-size: 15px; font-weight: bold; color: var(--navy);
}
.search-guide-head span {
  font-size: 12px; color: var(--gray);
}
.sg-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
}
@media (max-width: 760px) { .sg-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .sg-grid { grid-template-columns: 1fr; } }

.sg-card {
  background: #fff; border: 1px solid var(--line);
  border-radius: 12px; padding: 16px 18px;
  display: flex; align-items: flex-start; gap: 12px;
  transition: border-color .15s, box-shadow .15s;
}
.sg-card:hover {
  border-color: var(--main); box-shadow: var(--shadow-sm);
}
.sg-icon {
  width: 36px; height: 36px; border-radius: 10px; flex: none;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: bold;
}
.sg-card.sg-blue   .sg-icon { background: #eef3fa; color: var(--main); }
.sg-card.sg-green  .sg-icon { background: #e9f5ee; color: var(--green); }
.sg-card.sg-orange .sg-icon { background: #fbf2e8; color: var(--orange); }
.sg-card.sg-red    .sg-icon { background: #fbeeec; color: var(--red); }
.sg-body h4 {
  font-size: 14px; font-weight: bold; color: var(--navy); margin-bottom: 2px;
}
.sg-body p {
  font-size: 12px; color: var(--gray); line-height: 1.6;
}
.sg-body .sg-eg {
  font-size: 11px; color: var(--main); margin-top: 3px;
}

/* 热门风险关键词标签云 */
.hot-keywords {
  margin-top: 28px;
  background: #fff; border: 1px solid var(--line);
  border-radius: 14px; padding: 22px 24px;
}
.hk-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 14px;
}
.hk-head h3 {
  font-size: 15px; font-weight: bold; color: var(--navy);
  display: flex; align-items: center; gap: 8px;
}
.hk-head h3::before {
  content: ""; width: 4px; height: 16px; border-radius: 2px;
  background: var(--red);
}
.hk-head span {
  font-size: 11.5px; color: var(--gray);
}
.hk-cloud {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.hk-tag {
  font-size: 13px; text-decoration: none;
  padding: 6px 16px; border-radius: 999px;
  border: 1px solid var(--line); background: #fafbfd;
  color: var(--dark); transition: all .15s;
  cursor: pointer;
}
.hk-tag:hover {
  color: var(--red); border-color: var(--red); background: #fbeeec;
}
.hk-tag.hk-lg { font-size: 15px; font-weight: bold; padding: 7px 20px; }
.hk-tag.hk-md { font-size: 14px; }
.hk-tag.hk-sm { font-size: 12px; color: var(--gray); }

/* 检索提示框（使用指引） */
.search-tip-box {
  margin-top: 20px; padding: 14px 18px;
  background: linear-gradient(135deg, #eef3fa, #f4f6f9);
  border: 1px solid #d6e2f5; border-radius: 12px;
  display: flex; align-items: flex-start; gap: 12px;
}
.search-tip-box .stb-icon {
  width: 32px; height: 32px; border-radius: 8px; flex: none;
  background: var(--main); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: bold;
}
.search-tip-box .stb-body b {
  font-size: 13.5px; color: var(--navy); display: block; margin-bottom: 2px;
}
.search-tip-box .stb-body p {
  font-size: 12.5px; color: var(--gray); line-height: 1.7;
}

/* ============================================================
   19. 子页面模块介绍区（module-intro）
   ============================================================ */
.module-intro {
  background: linear-gradient(135deg, #f4f6f9 0%, #e8edf5 100%);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 28px 30px 24px;
  margin-top: 18px;
  position: relative; overflow: hidden;
}
.module-intro::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: var(--main);
}
.module-intro.mi-blue::before   { background: linear-gradient(90deg, var(--main), #4a7bc8); }
.module-intro.mi-green::before  { background: linear-gradient(90deg, var(--green), #3aa876); }
.module-intro.mi-orange::before { background: linear-gradient(90deg, var(--orange), #d68a3a); }

.mi-head {
  display: flex; align-items: center; gap: 14px;
  margin-bottom: 14px;
}
.mi-icon {
  width: 48px; height: 48px; border-radius: 12px; flex: none;
  display: flex; align-items: center; justify-content: center;
}
.mi-blue   .mi-icon { background: linear-gradient(135deg, #eef3fa, #dbe7f7); color: var(--main); }
.mi-green  .mi-icon { background: linear-gradient(135deg, #e9f5ee, #d3ebdd); color: var(--green); }
.mi-orange .mi-icon { background: linear-gradient(135deg, #fbf2e8, #f5e2c8); color: var(--orange); }
.mi-head h2 {
  font-size: 22px; font-weight: bold; color: var(--navy);
}
.mi-head h2 span {
  display: block; font-size: 12.5px; color: var(--gray); font-weight: normal; margin-top: 2px;
}

.mi-desc {
  font-size: 14px; color: var(--dark); line-height: 1.95;
  margin-bottom: 18px;
}

.mi-steps {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
  margin-bottom: 16px;
}
@media (max-width: 720px) { .mi-steps { grid-template-columns: 1fr; } }
.mi-step {
  background: #fff; border: 1px solid var(--line);
  border-radius: 10px; padding: 14px 16px;
  display: flex; align-items: flex-start; gap: 12px;
}
.mi-step-num {
  width: 28px; height: 28px; border-radius: 50%; flex: none;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: bold; color: #fff;
}
.mi-blue   .mi-step-num { background: var(--main); }
.mi-green  .mi-step-num { background: var(--green); }
.mi-orange .mi-step-num { background: var(--orange); }
.mi-step-body b {
  font-size: 13.5px; color: var(--navy); display: block; line-height: 1.4;
}
.mi-step-body p {
  font-size: 12px; color: var(--gray); line-height: 1.6; margin-top: 2px;
}

.mi-metrics {
  display: flex; gap: 0; flex-wrap: wrap;
  border-top: 1px solid var(--line); padding-top: 14px;
}
.mi-metric {
  flex: 1; min-width: 100px;
  padding: 0 18px; border-right: 1px solid var(--line);
}
.mi-metric:last-child { border-right: none; }
.mi-metric b {
  font-size: 20px; font-weight: bold; color: var(--navy);
}
.mi-metric.urgent b { color: var(--red); }
.mi-metric span {
  font-size: 12px; color: var(--gray); display: block; margin-top: 2px;
}

/* ============================================================
   20. 工作流程丰富：各阶段详细卡片 + 数据流转
   ============================================================ */
.flow-detail {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
  margin-top: 32px;
}
@media (max-width: 880px) { .flow-detail { grid-template-columns: 1fr; } }

.fd-card {
  background: #fff; border: 1px solid var(--line);
  border-radius: 14px; padding: 24px 22px;
  position: relative; overflow: hidden;
  border-top: 4px solid var(--main);
}
.fd-card.fd-blue   { border-top-color: var(--main); }
.fd-card.fd-green  { border-top-color: var(--green); }
.fd-card.fd-orange { border-top-color: var(--orange); }

.fd-head {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 14px;
}
.fd-no {
  width: 32px; height: 32px; border-radius: 50%; flex: none;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: bold; color: #fff;
}
.fd-blue   .fd-no { background: var(--main); }
.fd-green  .fd-no { background: var(--green); }
.fd-orange .fd-no { background: var(--orange); }
.fd-head h3 {
  font-size: 17px; font-weight: bold; color: var(--navy);
}

.fd-section {
  margin-bottom: 14px;
}
.fd-section:last-child { margin-bottom: 0; }
.fd-label {
  font-size: 11.5px; color: var(--gray); letter-spacing: .5px;
  margin-bottom: 6px; text-transform: uppercase;
}
.fd-items {
  display: flex; flex-wrap: wrap; gap: 6px;
}
.fd-tag {
  font-size: 12px; padding: 4px 12px; border-radius: 999px;
  background: #fafbfd; border: 1px solid var(--line); color: var(--dark);
}
.fd-blue   .fd-tag { border-color: #d6e2f5; }
.fd-green  .fd-tag { border-color: #c9e6d4; }
.fd-orange .fd-tag { border-color: #ecd6be; }

.fd-output {
  background: #fafbfd; border: 1px solid var(--line);
  border-radius: 10px; padding: 12px 14px;
  font-size: 12.5px; color: var(--gray); line-height: 1.8;
}
.fd-output b { color: var(--navy); }
.fd-blue   .fd-output { border-left: 3px solid var(--main); }
.fd-green  .fd-output { border-left: 3px solid var(--green); }
.fd-orange .fd-output { border-left: 3px solid var(--orange); }

/* ============================================================
   8. 模块页：左侧功能菜单 + 右侧内容区（全屏布局）
   ============================================================ */
.module-page {
  display: flex; align-items: stretch;
  min-height: 65vh;
}
.side-menu {
  width: 220px; flex: none;
  background: #fff; border-right: 1px solid var(--line);
}
.side-menu .side-title {
  font-size: 12px; color: var(--gray); padding: 14px 20px 8px;
  border-bottom: 1px solid var(--line);
}
.side-item {
  padding: 14px 20px; cursor: pointer; font-size: 14px; color: var(--dark);
  border-bottom: 1px solid #f0f3f8; border-left: 3px solid transparent;
  display: flex; align-items: center; gap: 8px;
  transition: background .15s, color .15s, border-left-color .15s;
}
.side-item:hover { background: #f6f8fb; color: var(--main); }
.side-item.active {
  background: #eef3fa; color: var(--main); border-left-color: var(--main); font-weight: bold;
}
.side-item .ico { width: 18px; text-align: center; font-size: 15px; flex: none; }

.content-area {
  flex: 1; min-width: 0;
  padding: 20px 28px 48px;
}

@media (max-width: 760px) {
  .module-page { flex-direction: column; min-height: 0; }
  .side-menu { width: 100%; display: flex; flex-wrap: wrap; border-right: none; border-bottom: 1px solid var(--line); }
  .side-menu .side-title { display: none; }
  .side-item { flex: 1; justify-content: center; border-left: none; }
  .content-area { padding: 16px; }
}

/* 功能面板 */
.func-panel { display: none; }
.func-panel.active { display: block; }

/* 收藏按钮（星标） */
.fav-btn {
  display: inline-flex; align-items: center; gap: 4px; cursor: pointer;
  font-size: 12.5px; color: var(--gray); border: 1px solid var(--line);
  border-radius: 2px; padding: 2px 10px; background: #fff;
  transition: color .15s, border-color .15s, background .15s; user-select: none;
}
.fav-btn:hover { color: var(--main); border-color: var(--main); }
.fav-btn.on { color: #b3651a; border-color: #e0b98a; background: #fbf5ec; }

/* 收藏夹空状态 */
.fav-empty {
  text-align: center; color: var(--gray); font-size: 13.5px;
  padding: 50px 0; line-height: 2;
}

/* 页头指标可点击（点击查看对应数据明细） */
.mh-metric { cursor: pointer; }
.mh-metric:hover { opacity: 0.8; }

/* 弹窗内容正文统一黑色字体（保留等级徽章、廉洁分红绿等语义颜色） */
.modal-body { color: #1a1a1a; }
.modal-body .clue-desc,
.modal-body .clue-more,
.modal-body .sub,
.modal-body .doc-meta,
.modal-body .doc-content,
.modal-body .r-post { color: #1a1a1a; }
.modal-body table td { color: #1a1a1a; }
.modal-body table th { color: #1a1a1a !important; }

