/* ================================================================
   重点项目管控系统 · 视觉升级 3.0（2026-11-10）
   设计基线：landing-page-design Part B + figma-designer 令牌规范
   - 双层颜色令牌：品牌原色 → 语义令牌（此处以 CSS 变量落地）
   - 字号只用 Tailwind 阶梯：12 / 14 / 16 / 18 / 20 / 24 / 30 / 36
   - 间距只用 4 / 8 / 12 / 16 / 24 / 32 / 40 / 48
   - 圆角只用 4 / 6 / 8 / 12 / 16 / 999
   - 背景一律纯色，无渐变（标题装饰条亦为纯色）
   - 动效统一 cubic-bezier(.22,1,.36,1)，只动 opacity / transform
   本文件在 style.css 之后加载，用于覆盖旧版视觉，不改动业务逻辑。
   ================================================================ */

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(data:font/woff2;base64,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) format('woff2');
  unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122;
}

:root {
  /* 品牌原色 */
  --blue-50: #eff6ff;
  --blue-100: #dbeafe;
  --blue-200: #bfdbfe;
  --blue-500: #3b82f6;
  --blue-600: #2563eb;
  --blue-700: #1d4ed8;
  /* 中性原色 */
  --slate-00: #ffffff;
  --slate-50: #fafbfc;
  --slate-100: #f4f5f8;
  --slate-200: #e6e8ee;
  --slate-300: #d7dbe3;
  --slate-400: #98a0ae;
  --slate-500: #6b7280;
  --slate-700: #3f4759;
  --slate-900: #0f172a;
  --navy-950: #0b1220;
  /* 语义令牌 */
  --primary: var(--blue-600);
  --primary-dark: var(--blue-700);
  --primary-light: var(--blue-500);
  --primary-50: var(--blue-50);
  --primary-700: var(--blue-700);
  --bg: #f5f6f8;
  --card: #ffffff;
  --surface-2: var(--slate-50);
  --surface-3: var(--slate-100);
  --text: var(--slate-900);
  --text-2: var(--slate-700);
  --muted: var(--slate-500);
  --muted-2: var(--slate-400);
  --border: var(--slate-200);
  --border-strong: var(--slate-300);
  --danger: #dc2626;
  --danger-50: #fef2f2;
  --warn: #b45309;
  --warn-50: #fffbeb;
  --ok: #15803d;
  --ok-50: #f0fdf4;
  --ring: rgba(37, 99, 235, .24);
  --sidebar-w: 236px;
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);
  --shadow: 0 6px 16px rgba(15, 23, 42, .06);
  --shadow-md: 0 12px 32px rgba(15, 23, 42, .10);
  --ease: cubic-bezier(.22, 1, .36, 1);
  --font-cn: "Noto Sans SC", "HarmonyOS Sans SC", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;
  --font-num: "Manrope", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
}

/* ---------------- 基础排版 ---------------- */
body {
  font-family: var(--font-cn);
  font-size: 14px;
  line-height: 1.5715;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
a { color: var(--blue-600); }
a:hover { color: var(--blue-700); }
h1, h2, h3, h4 { font-family: var(--font-cn); color: var(--text); }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: #c9d0dc; border-radius: 4px; border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background: #aab4c4; background-clip: content-box; border: 2px solid transparent; }
::-webkit-scrollbar-track { background: transparent; }

/* 数字统一使用 Manrope + 表格数字对齐 */
.ls-v, .kh-num, .kc-num, .f4-num, .bc-num, .bh-v, .fn-count, .ann-amt,
.tbl .num, .num, .ls-v, .bb-h-count, .amt-cell b, .sk b, .bb-amt {
  font-family: var(--font-num);
  font-variant-numeric: tabular-nums;
}

/* ---------------- 登录页 ---------------- */
#loginView {
  background: #0a1020;
  position: relative;
  overflow: hidden;
}
#loginView::before {
  content: '';
  position: absolute;
  width: 760px; height: 760px;
  right: -260px; top: -320px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .07);
  background: none;
}
#loginView::after {
  content: '';
  position: absolute;
  width: 420px; height: 420px;
  left: -180px; bottom: -200px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .05);
  background: none;
}
.login-wrap {
  width: 900px;
  min-height: 540px;
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(255, 255, 255, .10);
  box-shadow: 0 48px 120px rgba(0, 0, 0, .48);
  position: relative;
  z-index: 1;
}
.login-left {
  flex: 1 1 auto;
  background: #0e1728;
  padding: 44px 44px 40px;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}
.login-left::after {
  content: '';
  position: absolute;
  width: 300px; height: 300px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .06);
  right: -120px; bottom: -140px;
  background: none;
}
.ll-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 56px;
  position: relative;
  z-index: 1;
}
.ll-mark {
  width: 34px; height: 34px;
  border-radius: 9px;
  background: var(--blue-600);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-num);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .6px;
  flex-shrink: 0;
}
.ll-brand span:last-child {
  font-family: var(--font-num);
  font-size: 11px;
  letter-spacing: 2px;
  color: #8593a8;
  text-transform: uppercase;
}
.login-left .ll-badge { display: none; }
.login-left h2 {
  font-size: 36px;
  line-height: 40px;
  font-weight: 600;
  color: #fff;
  letter-spacing: .5px;
  margin-bottom: 16px;
  position: relative;
  z-index: 1;
}
.login-left .ll-sub {
  font-size: 14px;
  line-height: 24px;
  color: rgba(255, 255, 255, .62);
  margin-bottom: 0;
  position: relative;
  z-index: 1;
}
.login-features {
  list-style: none;
  margin-top: auto;
  padding-top: 40px;
  position: relative;
  z-index: 1;
}
.login-features li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  line-height: 20px;
  color: rgba(255, 255, 255, .78);
  padding: 7px 0;
}
.login-features li .lf-dot {
  width: 4px; height: 4px;
  border-radius: 50%;
  background: #60a5fa;
  flex-shrink: 0;
  margin-left: 6px;
  margin-right: 4px;
}
.ll-meta {
  margin-top: 24px;
  font-size: 12px;
  line-height: 18px;
  color: rgba(255, 255, 255, .34);
  position: relative;
  z-index: 1;
}
.login-right {
  width: 420px;
  flex-shrink: 0;
  padding: 56px 48px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #fff;
}
.login-right .lr-title {
  font-size: 24px;
  line-height: 32px;
  font-weight: 600;
  color: var(--slate-900);
  margin-bottom: 6px;
  letter-spacing: 0;
}
.login-right .lr-subtitle { font-size: 14px; line-height: 20px; color: var(--muted); margin-bottom: 32px; }
.login-right label {
  display: block;
  margin-bottom: 6px;
  font-size: 12px;
  line-height: 18px;
  color: #5b6472;
  font-weight: 500;
}
.login-right input {
  width: 100%;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  font-size: 14px;
  margin-bottom: 20px;
  background: #fff;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.login-right input:hover { border-color: #b9c6da; }
.login-right input:focus { outline: none; border-color: var(--blue-600); box-shadow: 0 0 0 3px rgba(37, 99, 235, .14); }
.login-right .err { color: var(--danger); font-size: 12px; line-height: 18px; min-height: 18px; margin-bottom: 10px; text-align: left; }
.login-right .btn.primary {
  width: 100%;
  height: 40px;
  justify-content: center;
  padding: 0;
  font-size: 14px;
  font-weight: 600;
  border-radius: 8px;
  margin-top: 4px;
  letter-spacing: 1px;
}
.login-foot {
  position: absolute;
  bottom: 20px; left: 0; right: 0;
  text-align: center;
  font-size: 12px;
  line-height: 18px;
  color: rgba(255, 255, 255, .38);
  z-index: 1;
}

/* ---------------- 侧栏 ---------------- */
.sidebar {
  background: var(--navy-950);
  color: #a7b1c2;
  border-right: 1px solid rgba(255, 255, 255, .06);
}
.sidebar .brand {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 20px 18px;
  border-bottom: 1px solid rgba(255, 255, 255, .07);
  font-size: 15px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0;
}
.brand-mark {
  width: 34px; height: 34px;
  flex-shrink: 0;
  border-radius: 9px;
  background: var(--blue-600);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-num);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .5px;
}
.brand-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  font-size: 15px;
  line-height: 20px;
  font-weight: 600;
  color: #fff;
}
.sidebar .brand small {
  display: block;
  font-size: 10px;
  line-height: 14px;
  font-weight: 400;
  letter-spacing: 1.4px;
  color: #7f8ca1;
  margin-top: 3px;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sidebar nav {
  padding: 14px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  overflow-y: auto;
}
.nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: 8px;
  margin-bottom: 0;
  font-size: 13px;
  line-height: 20px;
  color: #aab4c4;
  transition: background .2s var(--ease), color .2s var(--ease);
}
.nav-item:hover { background: rgba(255, 255, 255, .05); color: #fff; }
.nav-item.active {
  background: rgba(37, 99, 235, .16);
  color: #fff;
  box-shadow: inset 2px 0 0 var(--blue-500);
}
.nav-icon { color: #8b96a8; transition: color .2s var(--ease); }
.nav-item:hover .nav-icon, .nav-item.active .nav-icon { color: #bfdbfe; }
.nav-item .badge {
  margin-left: auto;
  background: #ef4444;
  color: #fff;
  border-radius: 999px;
  padding: 1px 7px;
  font-size: 11px;
  line-height: 16px;
}
.sidebar .foot {
  padding: 16px 20px;
  border-top: 1px solid rgba(255, 255, 255, .07);
  font-size: 12px;
  line-height: 18px;
  color: #8b96a8;
}
.sidebar .foot .foot-role { color: #7f8ca1; font-size: 11px; line-height: 16px; }

/* ---------------- 顶栏与内容区 ---------------- */
.topbar {
  height: 56px;
  background: rgba(255, 255, 255, .92);
  border-bottom: 1px solid var(--border);
  padding: 0 24px;
  gap: 12px;
  backdrop-filter: saturate(1.4) blur(12px);
}
.topbar .title {
  font-size: 18px;
  line-height: 28px;
  font-weight: 600;
  color: var(--slate-900);
  letter-spacing: 0;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#userBox {
  font-size: 12px;
  line-height: 16px;
  color: #5b6472;
  background: var(--surface-3);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 4px 10px;
  white-space: nowrap;
  max-width: 280px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.content {
  padding: 24px 24px 40px;
  width: 100%;
}
body.fullscreen .content { padding: 16px; }
body.fullscreen #fsBtn { top: 16px; right: 20px; }

/* ---------------- 按钮 ---------------- */
.btn.sm.icon-btn { width: 30px; padding: 0; flex: 0 0 auto; justify-content: center; }
.btn.icon-btn svg { width: 16px; height: 16px; display: block; margin: 0 auto; flex: 0 0 auto; }
.btn.icon-btn .ic-sun { display: none; }
html[data-theme="dark"] .btn.icon-btn .ic-sun { display: block; }
html[data-theme="dark"] .btn.icon-btn .ic-moon { display: none; }
.btn {
  height: 34px;
  padding: 0 14px;
  border-radius: 8px;
  border: 1px solid #dde1e8;
  background: #fff;
  color: #374151;
  font-size: 13px;
  font-weight: 500;
  gap: 6px;
  white-space: nowrap;
  box-shadow: none;
  transition: background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), transform .15s var(--ease);
}
.btn:hover {
  background: #f7faff;
  border-color: #c9d8f0;
  color: var(--blue-700);
  transform: none;
  box-shadow: none;
}
.btn:active { transform: scale(.985); box-shadow: none; }
.btn:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--card), 0 0 0 4px var(--ring); }
.btn.primary {
  background: var(--blue-600);
  border-color: var(--blue-600);
  color: #fff;
  box-shadow: 0 1px 2px rgba(37, 99, 235, .16);
}
.btn.primary:hover {
  background: var(--blue-700);
  border-color: var(--blue-700);
  color: #fff;
  box-shadow: 0 2px 6px rgba(37, 99, 235, .22);
  transform: none;
}
.btn.primary:active { transform: scale(.985); box-shadow: 0 1px 2px rgba(37, 99, 235, .16); }
.btn.danger { color: #b91c1c; border-color: #edd5d5; background: #fff; }
.btn.danger:hover { background: var(--danger-50); border-color: #e5b8b8; color: #b91c1c; }
.btn.sm { height: 30px; padding: 0 11px; font-size: 12px; border-radius: 6px; }
.btn:disabled, .btn[disabled] { opacity: .5; cursor: not-allowed; transform: none !important; box-shadow: none !important; }
.btn-spinner { width: 12px; height: 12px; }

/* ---------------- 输入控件 ---------------- */
input:where(:not([type="checkbox"]), :not([type="radio"]), :not([type="file"])),
select, textarea {
  height: 36px;
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  padding: 0 11px;
  font-size: 13px;
  font-family: inherit;
  background: #fff;
  color: var(--text);
  box-shadow: none;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease);
}
textarea { height: auto; padding: 8px 11px; line-height: 1.6; }
input:where(:not([type="checkbox"]), :not([type="radio"]), :not([type="file"])):hover,
select:hover, textarea:hover { border-color: #b9c6da; }
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--blue-600);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .13);
}
input::placeholder, textarea::placeholder { color: #a4abb8; }
input[type="date"]::-webkit-calendar-picker-indicator { opacity: .5; }
.edit-input {
  height: 30px;
  padding: 0 8px;
  border-radius: 6px;
  font-size: 13px;
  border: 1px solid var(--border-strong);
  background: #fff;
}
.edit-input:focus { border-color: var(--blue-600); box-shadow: 0 0 0 3px rgba(37, 99, 235, .12); }

/* ---------------- 卡片 ---------------- */
.card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 16px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .03);
  transition: border-color .2s var(--ease), box-shadow .25s var(--ease);
}
.card:hover {
  border-color: #dfe3ea;
  box-shadow: 0 6px 18px rgba(15, 23, 42, .05);
  transform: none;
}
.card h3 {
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  letter-spacing: 0;
  margin-bottom: 14px;
  color: var(--slate-900);
}
.grid2, .grid3 { gap: 16px; }

/* ---------------- 统计条 ---------------- */
.list-stats {
  display: flex;
  align-items: stretch;
  gap: 0;
  padding: 0;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: none;
  margin-bottom: 16px;
  overflow: hidden;
}
.ls-item { padding: 16px 24px; border-right: 1px solid #f0f1f4; min-width: 0; }
.ls-v {
  font-size: 24px;
  line-height: 32px;
  font-weight: 600;
  color: var(--slate-900);
  letter-spacing: -.2px;
}
.ls-v.blue { color: var(--blue-700); }
.ls-v.red { color: var(--danger); }
.ls-v.green { color: var(--ok); }
.ls-c { font-size: 12px; line-height: 18px; color: var(--muted); margin-top: 4px; }
.ls-stage {
  flex: 1;
  padding: 14px 20px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
  text-align: right;
  min-width: 180px;
}

/* ---------------- 工具栏 ---------------- */
.toolbar { gap: 8px; row-gap: 8px; margin-bottom: 16px; align-items: center; }
.toolbar .sep { flex: 1 1 8px; min-width: 8px; }
.toolbar input[type="text"], .toolbar input:not([type]) { font-size: 13px; }

/* ---------------- 标签 ---------------- */
.tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 12px;
  line-height: 18px;
  font-weight: 500;
  white-space: nowrap;
}
.tag.gray { background: #f2f3f6; color: #4b5563; }
.tag.green { background: var(--ok-50); color: var(--ok); }
.tag.orange { background: var(--warn-50); color: var(--warn); }
.tag.red { background: var(--danger-50); color: #b91c1c; }
.tag.blue { background: #eef4ff; color: var(--blue-700); }
.tag.yellow { background: #fef9e7; color: #a16207; }
.tag.purple { background: #f4f1fd; color: #6d28d9; }
.star { color: #f59e0b; }
.empty { padding: 40px 0; color: var(--muted-2); font-size: 13px; }

/* ---------------- 表格 ---------------- */
.tbl th {
  background: var(--surface-2);
  color: #667085;
  font-size: 12px;
  font-weight: 600;
  padding: 11px 12px;
  border-bottom: 1px solid var(--border);
  line-height: 1.45;
  letter-spacing: 0;
  vertical-align: middle;
  white-space: normal;
}
.tbl td {
  padding: 11px 12px;
  border-bottom: 1px solid #f1f2f5;
  font-size: 13px;
  line-height: 20px;
  color: #3f4759;
  vertical-align: middle;
}
.tbl tbody tr:hover td { background: #f8faff !important; }
.tbl tbody tr.row-overdue td { background: #fef6f6; }
.tbl tbody tr.row-severe td { background: #fdeeee; }
.tbl tbody tr.row-duesoon td { background: #fffbf0; }
.tbl tbody tr.row-overdue:hover td,
.tbl tbody tr.row-severe:hover td,
.tbl tbody tr.row-duesoon:hover td { background: #f8faff !important; }
.tbl td.tbl-sec { background: var(--surface-2); color: #667085; font-size: 12px; padding: 7px 12px; }
.wide-tbl th, .wide-tbl td { overflow: hidden; text-overflow: ellipsis; }
.wide-tbl td.proj-name-cell { line-height: 1.5; }
.wide-tbl td:nth-child(3) .tag { flex-shrink: 0; }
.wide-tbl td:nth-child(3) .tag.orange {
  font-size: 10px;
  line-height: 16px;
  padding: 0 4px;
  border-radius: 4px;
  vertical-align: 1px;
}
#batchBar .hint { white-space: nowrap; }
#batchBar { flex-wrap: wrap; row-gap: 8px; }
.wide-tbl td.proj-name-cell a b, .wide-tbl td.proj-name-cell a { font-weight: 600; }
.tbl td.k { color: var(--muted); }
.kv-long { border-bottom: 1px solid #f1f2f5; padding: 10px 12px; font-size: 13px; }
.kv-long > span { color: var(--muted); font-size: 12px; }

/* ---------------- 分页 ---------------- */
.pager { border-top: 1px solid #f1f2f5; padding-top: 12px; margin-top: 16px; }
.pager .btn { height: 30px; min-width: 32px; padding: 0 8px; }
.pager .pg-size { height: 30px; border-radius: 6px; padding: 0 8px; font-size: 12px; }
.pager .pg-jump-input { height: 30px; padding: 0 6px; border-radius: 6px; }

/* ---------------- 看板摘要条 ---------------- */
.dash-head {
  padding: 18px 20px;
  border-radius: 12px;
  border: 1px solid var(--border);
  box-shadow: none;
  margin-bottom: 16px;
}
.dh-date { font-size: 18px; line-height: 28px; font-weight: 600; color: var(--slate-900); letter-spacing: 0; }
.dh-sub { font-size: 12px; line-height: 18px; color: var(--muted); margin-top: 4px; }

/* ---------------- KPI 概览横条 ---------------- */
.kpi-hero {
  padding: 20px 24px;
  border-radius: 12px;
  border: 1px solid var(--border);
  box-shadow: none;
  gap: 20px;
  transition: border-color .2s var(--ease), box-shadow .25s var(--ease);
}
.kpi-hero:hover { box-shadow: 0 6px 20px rgba(15, 23, 42, .06); transform: none; border-color: #dfe3ea; }
.kpi-hero:active { transform: none; }
.kh-title { font-size: 16px; line-height: 24px; font-weight: 600; margin-bottom: 4px; letter-spacing: 0; }
.kh-sub { font-size: 12px; line-height: 18px; color: var(--muted); }
.kh-stats { gap: 28px; }
.kh-stat { min-width: 104px; }
.kh-num { font-size: 30px; line-height: 36px; font-weight: 600; letter-spacing: -.4px; }
.kh-cap { font-size: 12px; line-height: 18px; color: var(--muted); margin-top: 2px; }
.kh-sep { width: 1px; height: 40px; background: #eef0f4; }
.kh-arrow { font-size: 12px; font-weight: 600; color: var(--blue-700); }

/* ---------------- KPI 状态卡片 ---------------- */
.kpi-card {
  padding: 16px;
  border-radius: 12px;
  border: 1px solid var(--border);
  box-shadow: 0 1px 2px rgba(15, 23, 42, .03);
  transition: border-color .2s var(--ease), box-shadow .25s var(--ease);
}
.kpi-card:hover { box-shadow: 0 6px 18px rgba(15, 23, 42, .06); transform: none; border-color: #dfe3ea; }
.kpi-card.c-gray, .kpi-card.c-blue, .kpi-card.c-orange, .kpi-card.c-green, .kpi-card.c-red {
  border-top: 1px solid var(--border);
}
.kc-head { margin-bottom: 8px; }
.kc-title {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 600;
  color: #374151;
}
.kc-title::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: 2px;
  background: var(--slate-400);
  flex-shrink: 0;
}
.kpi-card.c-blue .kc-title::before { background: var(--blue-500); }
.kpi-card.c-green .kc-title::before { background: #16a34a; }
.kpi-card.c-orange .kc-title::before { background: #f59e0b; }
.kpi-card.c-red .kc-title::before { background: #ef4444; }
.kc-badge { font-size: 11px; line-height: 18px; background: var(--surface-3); color: #5b6472; border-radius: 6px; padding: 0 7px; }
.kc-num { font-size: 24px; line-height: 32px; font-weight: 600; color: var(--slate-900); letter-spacing: -.2px; }
.kc-sub { font-size: 12px; line-height: 18px; color: var(--muted); margin-top: 2px; margin-bottom: 8px; }
.kpi-card .bid-scroll, .bid-scroll { border-top: 1px solid #f0f1f4; margin-top: 8px; padding-top: 8px; }
.bid-date { background: #eef4ff; color: var(--blue-700); border-radius: 4px; padding: 1px 6px; font-size: 11px; min-width: 40px; }
.bid-date.overdue { background: var(--danger-50); color: var(--danger); }
.bid-name { font-size: 12px; color: #4b5563; }
.bid-amt { font-size: 11px; }
.bid-item { padding: 4px 0; gap: 8px; }

/* ---------------- 阶段推进图 ---------------- */
.flow { padding: 4px 0; }
.flow-node {
  border-radius: 10px;
  padding: 14px 8px 12px;
  margin-right: 24px;
  transition: border-color .2s var(--ease), background .2s var(--ease), box-shadow .25s var(--ease);
}
.flow-node:hover { background: #f8fbff; box-shadow: 0 4px 12px rgba(15, 23, 42, .05); transform: none; }
.flow-node::after { right: -19px; width: 14px; height: 1px; background: #e2e5ea; }
.fn-idx { width: 20px; height: 20px; line-height: 20px; font-size: 11px; margin: 0 auto 8px; border-radius: 999px; }
.flow-node .fn-name { font-size: 13px; line-height: 20px; margin-bottom: 2px; }
.flow-node .fn-count { font-size: 20px; line-height: 28px; font-weight: 600; }
.flow-node .fn-amount { font-size: 12px; line-height: 18px; }

/* ---------------- 时间轴 ---------------- */
.timeline::before { background: #eef0f4; width: 1px; }
.tl-item::before { width: 10px; height: 10px; left: -23px; }
.tl-item.done::before { background: #16a34a; box-shadow: 0 0 0 2px #dcfce7; }
.tl-item.overdue::before { box-shadow: 0 0 0 2px #fee2e2; }
.tl-item.due::before { background: #f59e0b; box-shadow: 0 0 0 2px #fef3c7; }
.tl-head b { font-size: 14px; font-weight: 600; }
.tl-body { font-size: 13px; line-height: 20px; }

/* ---------------- 看板：四个一批流程带 ---------------- */
.f4-title, .daily-title {
  font-size: 18px;
  line-height: 28px;
  font-weight: 600;
  color: var(--slate-900);
  letter-spacing: 0;
}
.f4-title::before, .daily-title::before {
  width: 3px;
  height: 18px;
  border-radius: 2px;
  background: var(--blue-600);
  vertical-align: -3px;
  margin-right: 10px;
}
.daily-title::before { background: var(--danger); }
.f4-sum, .daily-sum { font-size: 13px; line-height: 20px; color: #667085; margin-top: 2px; }
.f4-sum b, .daily-sum b { font-size: 14px; font-weight: 600; }
.f4-all, .daily-all { font-size: 12px; line-height: 18px; }
.f4-head, .daily-head { margin-bottom: 14px; }

.f4-seg {
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-top-width: 1px;
  border-radius: 12px;
  padding: 14px 16px;
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
}
.f4-seg:hover {
  transform: none;
  background: #fff;
  border-color: #cdd8e8;
  box-shadow: 0 6px 18px rgba(15, 23, 42, .05);
}
.f4-seg.s0, .f4-seg.s1, .f4-seg.s2, .f4-seg.s3 {
  border-top-color: var(--border);
  background: var(--surface-2);
}
.f4-seg.s3 { background: #f8fcf9; border-color: #e3efe7; }
.f4-sname {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  color: var(--slate-900);
}
.f4-sname::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: 2px;
  background: var(--slate-400);
  flex-shrink: 0;
}
.f4-seg.s1 .f4-sname::before { background: var(--blue-500); }
.f4-seg.s2 .f4-sname::before { background: #f59e0b; }
.f4-seg.s3 .f4-sname::before { background: #16a34a; }
.f4-sname .f4-week { margin-left: auto; font-size: 11px; line-height: 18px; font-weight: 500; color: #15803d; background: #ecfdf3; border-radius: 4px; padding: 0 6px; }
.f4-range { font-size: 11px; line-height: 16px; color: var(--muted-2); margin-top: 4px; min-height: 16px; }
.f4-num { font-size: 24px; line-height: 32px; font-weight: 600; color: #334155; margin-top: 6px; }
.f4-seg.s1 .f4-num { color: var(--blue-700); }
.f4-seg.s2 .f4-num { color: #b45309; }
.f4-seg.s3 .f4-num { color: var(--ok); }
.f4-num i { font-size: 12px; margin-left: 4px; color: var(--muted); }
.f4-amt { font-size: 12px; line-height: 18px; margin-top: 6px; }
.f4-amt b { font-size: 14px; font-weight: 600; }
.f4-daily { border-top: 1px solid #e6f2ea; margin-top: 10px; padding-top: 8px; font-size: 12px; line-height: 18px; color: #166534; }
.f4-daily b { font-size: 14px; }
.f4-tip { border-radius: 8px; font-size: 12px; line-height: 18px; background: #fbfcfd; }

/* ---------------- 看板：四批卡片 ---------------- */
.batch-card {
  padding: 16px;
  border-radius: 12px;
  border: 1px solid var(--border);
  box-shadow: 0 1px 2px rgba(15, 23, 42, .03);
  transition: border-color .2s var(--ease), box-shadow .25s var(--ease);
}
.batch-card:hover { border-color: #dfe3ea; box-shadow: 0 6px 18px rgba(15, 23, 42, .06); transform: none; }
.batch-card:active { transform: none; }
.bc0, .bc1, .bc2, .bc3 { border-top: 1px solid var(--border); }
.bc-name { display: flex; align-items: center; gap: 8px; font-size: 14px; line-height: 20px; font-weight: 600; }
.bc-name::before { content: ''; width: 6px; height: 6px; border-radius: 2px; background: var(--slate-400); flex-shrink: 0; }
.bc1 .bc-name::before { background: var(--blue-500); }
.bc2 .bc-name::before { background: #f59e0b; }
.bc3 .bc-name::before { background: #16a34a; }
.bc-week { font-size: 11px; line-height: 18px; color: var(--muted); }
.bc-range { font-size: 11px; line-height: 16px; color: var(--muted-2); margin-top: 4px; min-height: 16px; }
.bc-num { font-size: 24px; line-height: 32px; font-weight: 600; color: var(--slate-900); }
.bc1 .bc-num { color: var(--blue-700); }
.bc2 .bc-num { color: #b45309; }
.bc3 .bc-num { color: var(--ok); }
.bc-unit { font-size: 12px; }
.bc-amt { font-size: 12px; line-height: 18px; }
.b9 { height: 26px; margin-top: 10px; }
.b9-col span { font-size: 9px; color: #c3cad6; }
.bc-daily { border-top: 1px solid #f0f1f4; font-size: 12px; line-height: 18px; }

/* ---------------- 区块标题条 ---------------- */
.section-bar { margin: 2px 0 12px; }
.sb-title { font-size: 13px; line-height: 20px; font-weight: 600; gap: 8px; }
.sb-dot { width: 3px; height: 14px; border-radius: 2px; background: var(--blue-600); }
.sb-note { font-size: 12px; line-height: 18px; }

/* ---------------- 标讯 / 消息 ---------------- */
.ann-head { margin-bottom: 12px; }
.ann-head h3 { font-size: 16px !important; line-height: 24px; font-weight: 600; }
.ann-src-group {
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface-3);
  box-shadow: none;
  padding: 3px;
  gap: 2px;
}
.ann-src-btn { font-size: 12px; line-height: 18px; padding: 5px 12px; border-radius: 6px; color: #5b6472; }
.ann-src-btn:hover { background: transparent; color: var(--blue-700); }
.ann-src-btn.active { background: #fff; color: var(--blue-700); font-weight: 600; box-shadow: 0 1px 2px rgba(15, 23, 42, .08); }
.flow-opt-group { border-radius: 8px; background: var(--surface-3); box-shadow: none; padding: 3px; gap: 2px; }
.flow-opt-btn { font-size: 12px; padding: 5px 12px; border-radius: 6px; }
.flow-opt-btn.active { background: #fff; color: var(--blue-700); font-weight: 600; box-shadow: 0 1px 2px rgba(15, 23, 42, .08); }

.ann-tabs { gap: 6px; margin-bottom: 10px; }
.ann-tab {
  padding: 4px 12px;
  border-radius: 6px;
  background: var(--surface-3);
  color: #5b6472;
  font-size: 12px;
  line-height: 18px;
  border: 1px solid transparent;
  font-weight: 500;
  transition: background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.ann-tab:hover { background: #eef4ff; color: var(--blue-700); }
.ann-tab b { background: #e6e9ef; color: #475569; border-radius: 4px; padding: 0 6px; font-size: 11px; }
.ann-tab.active { background: #eef4ff; color: var(--blue-700); border-color: #d3e0f8; font-weight: 600; }
.ann-tab.active b { background: #fff; color: var(--blue-700); }
.ann-lg-tabs { gap: 24px; margin-bottom: 18px; border-bottom: 1px solid var(--border); }
.ann-lg-tab {
  padding: 10px 2px;
  font-size: 14px;
  line-height: 20px;
  color: #667085;
  font-weight: 500;
  border-bottom: 2px solid transparent;
}
.ann-lg-tab:hover { color: var(--blue-700); }
.ann-lg-tab.active { color: var(--blue-700); font-weight: 600; border-bottom-color: var(--blue-600); }
.ann-item {
  grid-template-columns: 44px 88px minmax(0, 2.2fr) 72px minmax(0, 1fr) 88px 56px;
  gap: 10px;
  padding: 7px 10px;
  border-radius: 6px;
  transition: background .15s var(--ease);
}
.ann-item:hover { background: #f8faff; }
.ann-title { font-size: 13px; line-height: 20px; }
.ann-date { font-size: 12px; line-height: 18px; }
.ann-cat { border-radius: 4px; padding: 1px 6px; font-size: 11px; line-height: 16px; background: #eef4ff; color: var(--blue-700); }
.ann-dist, .ann-unit { font-size: 12px; line-height: 18px; }
.ann-amt-cell { justify-content: flex-end; }
.ann-amt { color: var(--slate-900); font-size: 12px; font-weight: 600; }
.ann-amt.none { color: var(--muted-2); font-weight: 400; }
.ann-origin {
  font-size: 11px;
  line-height: 16px;
  padding: 2px 8px;
  border-radius: 4px;
  background: #f4f8ff;
  border: 1px solid #dbe3f2;
  color: var(--blue-700);
  font-weight: 500;
  transition: background .2s var(--ease), border-color .2s var(--ease);
}
.ann-origin:hover { background: #e9f1ff; border-color: #c2d5f2; color: var(--blue-700); }
.ann-scroll { max-height: 240px; }
.msg-scroll { max-height: 132px; }
.msg-item { padding: 6px 8px; border-radius: 6px; font-size: 13px; line-height: 20px; }
.msg-item:hover { background: #f8faff; }
.msg-dot { width: 6px; height: 6px; }
.msg-time { font-size: 11px; }
.feed-item { padding: 10px 0; border-bottom: 1px solid #f1f2f5; }
.feed-dot { width: 5px; height: 5px; margin-top: 8px; }
.feed-txt { font-size: 13px; line-height: 20px; }
.feed-time { font-size: 11px; }

/* ---------------- 弹窗 ---------------- */
.modal-mask {
  background: rgba(10, 15, 28, .48);
  backdrop-filter: blur(4px);
  padding: 48px 0;
}
.modal {
  border-radius: 16px;
  border: 1px solid #e6e8ee;
  box-shadow: 0 30px 80px rgba(10, 15, 28, .30);
  animation: modalIn .28s var(--ease);
}
@keyframes modalIn {
  from { opacity: 0; transform: translateY(10px) scale(.99); }
  to { opacity: 1; transform: none; }
}
.modal .m-head { padding: 20px 24px; border-bottom: 1px solid #eef0f4; }
.modal .m-head b { font-size: 18px; line-height: 28px; font-weight: 600; color: var(--slate-900); }
.modal .m-close {
  width: 32px; height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-size: 18px;
  color: #8b93a1;
  transition: background .2s var(--ease), color .2s var(--ease);
}
.modal .m-close:hover { background: var(--surface-3); color: var(--danger); }
.modal .m-body { padding: 24px; max-height: 68vh; }
.modal .m-foot { padding: 16px 24px; border-top: 1px solid #eef0f4; background: var(--surface-2); border-radius: 0 0 16px 16px; gap: 8px; }
.form-row { grid-template-columns: 130px 1fr; gap: 12px; margin-bottom: 14px; }
.form-row label { font-size: 12px; line-height: 20px; color: #5b6472; font-weight: 500; text-align: right; white-space: nowrap; }
.form-row .req::after { color: var(--danger); }
.form-2col { gap: 0 16px; }
.form-3col { gap: 0 16px; }
.form-2col .form-row, .form-3col .form-row { grid-template-columns: 112px 1fr; }
.form-section {
  border: 1px solid #eef0f4;
  border-radius: 10px;
  padding: 16px 18px 4px;
  margin-bottom: 16px;
  background: var(--surface-2);
}
.form-section .form-row { margin-bottom: 12px; }
.fs-title { font-size: 13px; line-height: 20px; font-weight: 600; color: var(--blue-700); margin-bottom: 14px; }
.fs-sub { font-size: 12px; font-weight: 400; color: var(--muted-2); }
.hint { font-size: 12px; line-height: 18px; }
.date-clear { border-radius: 6px; font-size: 11px; padding: 3px 8px; color: #b91c1c; border-color: var(--border-strong); }
.chk-pill { border-radius: 8px; padding: 6px 12px; font-size: 12px; height: 32px; transition: background .2s var(--ease), border-color .2s var(--ease); }
.chk-pill:hover { background: #f8faff; border-color: #cdd8e8; }
.chk-pill:has(input:checked) { background: #eef4ff; border-color: #bfd3f5; color: var(--blue-700); }
.vp-chips { border: 1px solid var(--border); border-radius: 8px; background: #fff; }
.vp-chip { border-radius: 6px; padding: 2px 8px; font-size: 12px; }
.vp-list { border-radius: 8px; border-color: var(--border); }
.link-search, .link-cat { border-radius: 8px; }
.row-menu { border-radius: 10px; border: 1px solid var(--border); box-shadow: 0 12px 30px rgba(15, 23, 42, .14); padding: 6px; }
.row-menu a { padding: 8px 10px; border-radius: 6px; font-size: 13px; }
.row-menu a:hover { background: #f8faff; }

/* ---------------- 系统设置 ---------------- */
.set-tiles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}
@media (max-width: 900px) {
  .set-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .set-tiles { grid-template-columns: 1fr; }
}
.set-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 20px;
  padding-bottom: 0;
  border-bottom: 1px solid var(--border);
  flex-wrap: wrap;
}
.set-tab {
  padding: 10px 14px;
  border: none;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  color: #667085;
  font-size: 13px;
  line-height: 20px;
  font-weight: 500;
  margin-bottom: -1px;
  transition: color .2s var(--ease), border-color .2s var(--ease);
}
.set-tab:hover { border-color: transparent; border-bottom-color: #d3e0f8; color: var(--blue-700); }
.set-tab.active {
  background: transparent;
  border: none;
  border-bottom: 2px solid var(--blue-600);
  color: var(--blue-700);
  font-weight: 600;
}
.set-card { padding: 20px; transition: border-color .2s var(--ease), box-shadow .25s var(--ease); }
.set-card:hover { box-shadow: 0 6px 18px rgba(15, 23, 42, .05); transform: none; border-color: #dfe3ea; }
.card-head { margin-bottom: 18px; gap: 12px; }
.ch-icon { width: 36px; height: 36px; border-radius: 10px; }
.ch-icon svg { width: 18px; height: 18px; }
.set-card:hover .ch-icon { transform: none; }
.ch-title { font-size: 16px; line-height: 24px; font-weight: 600; }
.ch-badge { font-size: 11px; line-height: 18px; background: var(--surface-3); color: #5b6472; border-radius: 6px; padding: 0 8px; }
.ch-note { font-size: 12px; color: var(--muted); }
.warn-row {
  border: 1px solid #eef0f4;
  border-left-width: 3px;
  border-radius: 8px;
  padding: 10px 14px;
  margin-bottom: 10px;
}
.warn-row.pill-blue { background: #f5f9ff; border-color: #e3ecfb; border-left-color: var(--blue-500); }
.warn-row.pill-orange { background: #fffaf0; border-color: #f6ecd8; border-left-color: #f59e0b; }
.warn-row.pill-red { background: #fef6f6; border-color: #f6e0e0; border-left-color: #ef4444; }
.warn-row .wlabel { font-size: 13px; width: 92px; }
.wtag { font-size: 11px; line-height: 18px; border-radius: 4px; padding: 0 8px; }
.wtag.t-blue { background: #eef4ff; color: var(--blue-700); }
.wtag.t-orange { background: #fff7e6; color: #b45309; }
.wtag.t-red { background: var(--danger-50); color: #b91c1c; }
.warn-row input[type=number] { width: 68px; height: 30px; font-weight: 600; }
.stage-idx { width: 22px; height: 22px; background: #eef4ff; color: var(--blue-700); font-size: 11px; }
label.chk { border-radius: 8px; padding: 6px 12px; font-size: 12px; background: var(--surface-2); }
label.chk:hover { background: #f6faff; border-color: #cdd8e8; }
#unitOwnerBox .btn.primary {
  background: #fff;
  border-color: #cfdcf5;
  color: var(--blue-700);
  box-shadow: none;
}
#unitOwnerBox .btn.primary:hover { background: #eef4ff; border-color: #bfd3f5; }
.stage-tbl th, .stage-tbl td { padding: 8px 10px !important; }
.stage-tbl td input { height: 30px; font-size: 13px; }
.set-card .list-scroll { scrollbar-width: thin; }

/* ---------------- 四个一批页 ---------------- */
.batch-toolbar {
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid var(--border);
  box-shadow: none;
  margin-bottom: 16px;
  gap: 10px;
}
.batch-board { gap: 16px; }
.bb-col { background: #f7f8fa; border: 1px solid var(--border); border-radius: 12px; }
.bb-head { padding: 14px 16px; background: #fff; border-bottom: 1px solid var(--border); }
.bb-head.bc0, .bb-head.bc1, .bb-head.bc2, .bb-head.bc3 { border-top: 1px solid var(--border); }
.bb-h-name { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.bb-h-name::before { content: ''; width: 6px; height: 6px; border-radius: 2px; background: var(--slate-400); flex-shrink: 0; }
.bb-head.bc1 .bb-h-name::before { background: var(--blue-500); }
.bb-head.bc2 .bb-h-name::before { background: #f59e0b; }
.bb-head.bc3 .bb-h-name::before { background: #16a34a; }
.bb-h-count { font-size: 18px; line-height: 26px; font-weight: 600; color: var(--blue-700); }
.bb-h-unit { font-size: 12px; }
.bb-h-sub { font-size: 11px; line-height: 16px; color: #667085; }
.bb-h-amt { font-size: 12px; }
.bb-h-daily { border-top: 1px solid #e8f2eb; font-size: 12px; }
.bb-body { gap: 10px; padding: 12px; }
.bb-item {
  border-radius: 8px;
  padding: 12px;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.bb-item:hover { border-color: #cdd8e8; box-shadow: 0 4px 12px rgba(15, 23, 42, .05); transform: none; }
.bb-name { font-size: 13px; line-height: 20px; font-weight: 600; }
.bb-meta { font-size: 11px; line-height: 16px; gap: 6px; }
.bb-stage { background: var(--surface-3); border-radius: 4px; }
.bb-foot { font-size: 11px; }

/* ---------------- 九阶段步骤条 ---------------- */
.s9 { padding: 10px 0 4px; }
.s9-item::before { top: 15px; height: 1px; background: #eceef2; }
.s9-dot {
  width: 30px; height: 30px;
  font-size: 12px;
  border-width: 1.5px;
  border-color: #cbd3df;
  color: #667085;
  margin-bottom: 8px;
  transition: box-shadow .2s var(--ease), border-color .2s var(--ease);
}
.s9-item.done .s9-dot { background: #f0fdf4; border-color: #16a34a; color: #15803d; }
.s9-item.done.skipped .s9-dot { background: #fffbeb; border-color: #f59e0b; color: #b45309; }
.s9-item.cur .s9-dot { background: var(--blue-600); border-color: var(--blue-600); color: #fff; box-shadow: 0 0 0 4px rgba(37, 99, 235, .16); }
.s9-item.next .s9-dot { background: #eff6ff; border-color: var(--blue-600); color: var(--blue-700); box-shadow: none; }
.s9-item:hover .s9-dot { transform: none; box-shadow: 0 0 0 3px rgba(37, 99, 235, .10); }
.s9-name { font-size: 12px; line-height: 18px; color: #334155; }
.s9-date { font-size: 11px; line-height: 16px; }
.s9-item.done .s9-name { color: var(--ok); }
.s9-item.done.skipped .s9-name { color: var(--warn); }
.s9-item.cur .s9-name, .s9-item.next .s9-name { color: var(--blue-700); }

/* ---------------- 详情页金额块 ---------------- */
.stage-card { padding: 20px 22px 16px; border-radius: 12px; }
.sk { background: var(--surface-2); border-radius: 8px; padding: 8px 14px; }
.sk span { font-size: 11px; }
.sk b { font-size: 16px; line-height: 24px; font-weight: 600; }
.stage-bar { height: 3px; margin: 16px 0 6px; }
.stage-bar-fill { transition: width .3s var(--ease); }
.amt-grid { gap: 12px; }
.amt-cell { border-radius: 8px; background: var(--surface-2); padding: 10px 14px; }
.amt-cell span { font-size: 11px; }
.amt-cell b { font-size: 18px; line-height: 26px; font-weight: 600; }
.src-tag { font-size: 10px; border-radius: 4px; }
.prog-item { border: 1px solid #eef0f4; border-left: 3px solid #14b8a6; border-radius: 8px; background: #fbfdfd; }
.prog-date { font-size: 12px; background: var(--ok-50); }

/* ---------------- 汇报与通报 ---------------- */
.brief-hero { gap: 12px; }
.bh-item { border-radius: 10px; padding: 14px 10px; transition: border-color .2s var(--ease), box-shadow .25s var(--ease); }
.bh-item:hover { transform: none; box-shadow: 0 4px 12px rgba(15, 23, 42, .05); border-color: #dfe3ea; }
.bh-v { font-size: 24px; line-height: 32px; font-weight: 600; color: var(--slate-900); }
.bh-v.teal { font-size: 20px; }
.bh-c { font-size: 11px; line-height: 16px; }
.rep-batchbar { border-radius: 12px; border: 1px solid var(--border); box-shadow: none; padding: 10px 14px; margin-bottom: 16px; }
.rep-batchlab { font-size: 12px; }
.rep-chip { height: 30px; border-radius: 6px; font-size: 12px; }
.rep-chip.on { background: #eef4ff; border-color: #bfd3f5; color: var(--blue-700); font-weight: 600; }
.rep-chip.on b { color: var(--blue-700); }
.rep-chip.ghost { color: #667085; }

/* 汇报纸张 */
.report-paper {
  border-radius: 12px;
  box-shadow: none;
  padding: 32px 36px;
  border: 1px solid var(--border);
}
.report-title { font-size: 24px; line-height: 32px; font-weight: 600; letter-spacing: 1px; color: var(--slate-900); }
.report-sub { font-size: 12px; line-height: 18px; margin: 8px 0 20px; }
.report-sec-title { font-size: 14px; line-height: 20px; font-weight: 600; color: #1e293b; border-left: 3px solid var(--blue-600); padding-left: 10px; margin: 20px 0 10px; }
.report-tbl th, .report-tbl td { border: 1px solid #e4e7ec; padding: 6px 6px; font-size: 12px; line-height: 18px; }
.report-tbl thead th { background: #f4f7fc; color: #1e293b; font-weight: 600; }
.report-tbl thead tr:first-child th { font-size: 13px; }
.report-tbl tbody tr:nth-child(even) td { background: #fafbfc; }
.report-tbl tbody tr:hover td { background: #f2f7ff; }
.report-tbl .total-row td { background: #e8f0fe !important; border-top: 1px solid #c7d8f4; }
.report-summary { border: 1px solid var(--border); border-left: 3px solid var(--blue-600); border-radius: 8px; background: var(--surface-2); padding: 16px 18px; }
.rs-title { font-size: 14px; font-weight: 600; color: #1e293b; }
.rs-text { font-size: 13px; line-height: 2; }
.bf-tbl th, .bf-tbl td { padding: 10px 8px; font-size: 12px; line-height: 1.6; }
.bf-prog { font-size: 12px; }

/* ---------------- 离线导出条 / 提示 ---------------- */
.toast, #toast { font-family: var(--font-cn); }

/* ---------------- 响应式 ---------------- */
@media (max-width: 1200px) {
  .content { padding: 20px 18px 36px; }
  .topbar { padding: 0 18px; }
}
@media (max-width: 1100px) {
  .content { padding: 18px 16px 32px; }
  .card { padding: 18px; }
  .list-stats { flex-wrap: wrap; }
  .ls-item { flex: 1 1 auto; }
  .ls-item:last-of-type { border-right: 0; }
  .ls-stage { flex: 1 1 100%; justify-content: flex-start; padding: 12px 24px 16px; border-top: 1px solid #f0f1f4; }
}
@media (max-width: 900px) {
  .sidebar { width: 64px; }
  .sidebar .brand { padding: 16px 0; justify-content: center; }
  .brand-text { display: none; }
  .brand-mark { width: 32px; height: 32px; }
  .sidebar nav { padding: 12px 8px; }
  .sidebar nav .nav-item { justify-content: center; padding: 10px 0; gap: 0; }
  .nav-item span:not(.nav-icon):not(.badge) { display: none; }
  .topbar { padding: 0 14px; gap: 10px; }
  .topbar .title { font-size: 16px; }
  #userBox { display: none; }
  .kpi-card { padding: 14px; }
  .dash-head { padding: 16px; }
}
@media (max-width: 720px) {
  .content { padding: 16px 12px 28px; }
  .topbar { height: 52px; padding: 0 12px; }
  .topbar .title { font-size: 15px; max-width: 46vw; }
  #offlineBtn { display: none; }
  .login-right { width: 100%; padding: 40px 28px; }
  .login-wrap { width: 400px; min-height: 0; border-radius: 16px; }
  .list-stats { border-radius: 10px; }
  .ls-item { padding: 14px 16px; }
  .ls-v { font-size: 20px; line-height: 28px; }
  .kpi-row { gap: 12px; }
  .f4-seg { padding: 12px 14px; }
  .card { padding: 16px; border-radius: 10px; }
  .btn.sm { height: 32px; }
  .modal-mask { padding: 16px 0; }
  .modal .m-body { padding: 16px; }
  .modal .m-head, .modal .m-foot { padding-left: 16px; padding-right: 16px; }
}
@media (max-width: 560px) {
  .ls-item { flex: 1 1 50%; border-right: 0; border-bottom: 1px solid #f0f1f4; }
  .ls-item:nth-child(2n) { border-left: 1px solid #f0f1f4; }
  .ls-stage { border-top: 0; padding: 12px 16px; }
  .topbar .title { max-width: 40vw; }
  .kpi-card { padding: 14px 12px; }
  .kc-num { font-size: 20px; line-height: 28px; }
  .ann-tabs { gap: 4px; }
  .ann-tab { padding: 4px 8px; font-size: 11px; }
}

/* ---------------- 空状态 ---------------- */
.empty, .bb-empty, .ann-empty {
  color: #8b93a1;
  font-size: 13px;
  text-align: center;
  line-height: 20px;
}
.empty, .bb-empty { padding: 40px 16px; }
.empty::before, .bb-empty::before, .ann-empty::before {
  content: '';
  display: block;
  width: 40px;
  height: 40px;
  margin: 0 auto 10px;
  border-radius: 12px;
  border: 1px solid #e8ebf1;
  background: #f4f6f9 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23b6bfcd' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M3 8.5h18'/><path d='M4.5 8.5 6 19h12l1.5-10.5'/><path d='M9 8.5V5.5h6v3'/></svg>") center/20px no-repeat;
}
.bb-empty { padding: 56px 16px; }

/* ---------------- 标讯"原文"按钮 ---------------- */
.btn.ann-origin, a.ann-origin {
  height: 26px;
  padding: 0 8px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 500;
  background: #f4f8ff;
  border: 1px solid #dbe3f2;
  color: var(--blue-700);
  box-shadow: none;
}
.btn.ann-origin:hover, a.ann-origin:hover {
  background: #e9f1ff;
  border-color: #c2d5f2;
  color: var(--blue-700);
  box-shadow: none;
}

/* ---------------- 移动端修正 ---------------- */
@media (max-width: 720px) {
  .toolbar .btn { width: auto !important; flex: 0 1 auto; }
}
@media (max-width: 720px) {
  .brief-hero { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .bh-v { white-space: nowrap; word-break: normal; font-size: 20px; }
  .bh-v.teal { font-size: 18px; }
  .ann-lg-tabs { flex-wrap: nowrap; overflow-x: auto; gap: 18px; padding-bottom: 0; padding-right: 20px; }
  .ann-lg-tab { white-space: nowrap; padding: 10px 0; }
  .report-paper { padding: 22px 16px; }
  .report-title { font-size: 20px; line-height: 28px; }
  .report-tbl th, .report-tbl td { padding: 5px 4px; font-size: 11px; }
}
@media (max-width: 560px) {
  .brief-hero { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .bh-v, .bh-v.teal { font-size: 18px; }
  .bh-c { font-size: 11px; }
  .f4-body { flex-wrap: wrap; }
  .f4-seg { flex: 1 1 100%; margin: 0 0 8px; }
  .f4-sname { white-space: nowrap; }
  .list-stats { gap: 0; flex-wrap: wrap; }
  .ls-item {
    flex: 1 1 33.333%;
    padding: 12px 10px;
    border-right: 1px solid #f0f1f4;
    border-bottom: 0;
  }
  .ls-item:nth-child(2n) { border-left: 0; }
  .ls-v { font-size: 18px; line-height: 26px; }
  .ls-c { font-size: 11px; line-height: 16px; margin-top: 2px; }
  .ls-stage { flex: 1 1 100%; padding: 10px; border-top: 1px solid #f0f1f4; }
}

/* ---------------- 骨架屏（加载态） ---------------- */
.skel { display: flex; flex-direction: column; gap: 16px; }
.skel-b {
  background: #e4e8ee;
  border-radius: 8px;
  animation: skelPulse 1.4s var(--ease) infinite;
}
.skel-panel {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.skel-grid4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.skel-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.skel-row { display: flex; align-items: center; gap: 12px; }
.skel-tbl { display: flex; flex-direction: column; gap: 0; }
.skel-tr {
  display: grid;
  grid-template-columns: 44px minmax(120px, 2fr) 90px 100px 90px 90px 120px;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border-bottom: 1px solid #f1f2f5;
}
.skel-tr:first-child { background: var(--surface-2); border-radius: 8px 8px 0 0; }
.skel-bar { height: 34px; flex: 1 1 auto; }
.skel-col { display: flex; flex-direction: column; gap: 8px; }
@keyframes skelPulse {
  0%, 100% { opacity: .6; }
  50% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .skel-b { animation: none; opacity: .8; }
}
@media (max-width: 900px) {
  .skel-grid4, .skel-grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .skel-grid4, .skel-grid3 { grid-template-columns: 1fr; }
  .skel-tr { grid-template-columns: 28px minmax(80px, 1fr) 60px; }
  .skel-tr > :nth-child(n+4) { display: none; }
}

/* ---------------- 动态效果 ---------------- */
@keyframes pageIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes riseIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes rowIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes numIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes maskIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes modalPop { from { opacity: 0; transform: translateY(10px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes toastIn { from { opacity: 0; transform: translate(-50%, -10px) scale(.98); } to { opacity: 1; transform: translate(-50%, 0) scale(1); } }

/* 页面内容错峰入场 */
.content.page-in > * { animation: riseIn .38s var(--ease) both; }
.content.page-in > *:nth-child(1) { animation-delay: 0ms; }
.content.page-in > *:nth-child(2) { animation-delay: 30ms; }
.content.page-in > *:nth-child(3) { animation-delay: 60ms; }
.content.page-in > *:nth-child(4) { animation-delay: 90ms; }
.content.page-in > *:nth-child(5) { animation-delay: 120ms; }
.content.page-in > *:nth-child(n+6) { animation-delay: 150ms; }

/* 表格行淡入，前 10 行依次错开 */
.tbl tbody tr { animation: rowIn .26s var(--ease) both; }
.tbl tbody tr:nth-child(1) { animation-delay: 0ms; }
.tbl tbody tr:nth-child(2) { animation-delay: 25ms; }
.tbl tbody tr:nth-child(3) { animation-delay: 50ms; }
.tbl tbody tr:nth-child(4) { animation-delay: 75ms; }
.tbl tbody tr:nth-child(5) { animation-delay: 100ms; }
.tbl tbody tr:nth-child(6) { animation-delay: 125ms; }
.tbl tbody tr:nth-child(7) { animation-delay: 150ms; }
.tbl tbody tr:nth-child(8) { animation-delay: 175ms; }
.tbl tbody tr:nth-child(9) { animation-delay: 200ms; }
.tbl tbody tr:nth-child(n+10) { animation-delay: 225ms; }

/* 关键数字入场 */
.ls-v, .kc-num, .kh-num, .f4-num, .bc-num, .bb-h-count, .report-kpi b { animation: numIn .5s var(--ease) both; }

/* 卡片悬浮 */
.kpi-card, .batch-card, .bb-item, .bh-item, .f4-seg, .card, .ann-item, .msg-item,
.kc, .stat-item, .rep-kpi {
  transition: transform .3s var(--ease), box-shadow .3s var(--ease),
              border-color .3s var(--ease), background-color .3s var(--ease);
}
.kpi-card:hover, .batch-card:hover, .bb-item:hover, .bh-item:hover, .f4-seg:hover, .kc:hover, .stat-item:hover {
  transform: translateY(-2px);
}
.ann-item:hover, .msg-item:hover { transform: translateY(-1px); }

/* 导航悬停轻移 */
.nav-item {
  transition: background .28s var(--ease), color .28s var(--ease),
              transform .28s var(--ease), box-shadow .28s var(--ease);
}
.nav-item:hover { transform: translateX(2px); }
.nav-item.active { transform: none; }

/* 弹窗与轻提示 */
.modal-mask.show { animation: maskIn .22s var(--ease) both; }
.modal-mask.show .modal { animation: modalPop .32s var(--ease) both; }
.toast-pop { animation: toastIn .3s var(--ease) both; }

/* 主题切换时的底色过渡 */
body, .topbar, .sidebar, .card, .tbl th, .tbl td, .modal, .set-tab {
  transition: background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}

/* ---------------- 动效与无障碍 ---------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
