/* ═══════════════════════════════════════════
   Design System · 壹号食品·食品产业创新平台
   从 index.html 独立拆分
   ═══════════════════════════════════════════ */

/* ═══════════════════════════════════════════
   Design System · 壹号食品·食品产业创新平台
   ═══════════════════════════════════════════ */
:root {
  --blue: #2b5fd9;
  --blue-light: #e8f0fe;
  --blue-bg: #f4f8ff;
  --green: #1e8c3a;
  --green-light: #e6f7ee;
  --orange: #e67e22;
  --orange-light: #fef5ec;
  --red: #d93025;
  --red-light: #fce8e6;
  --purple: #7b3fe4;
  --purple-light: #f4edfc;
  --cyan: #0a8c8c;
  --cyan-light: #e5f7f7;
  --gray-50: #f8f9fa;
  --gray-100: #f1f3f4;
  --gray-200: #e8eaed;
  --gray-300: #dadce0;
  --gray-400: #bdc1c6;
  --gray-500: #9aa0a6;
  --gray-600: #80868b;
  --gray-700: #5f6368;
  --gray-800: #3c4043;
  --gray-900: #202124;
  --white: #ffffff;
  --shadow-xs: 0 1px 2px rgba(0,0,0,.04);
  --shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --shadow-md: 0 4px 6px rgba(0,0,0,.05), 0 2px 4px rgba(0,0,0,.03);
  --shadow-lg: 0 10px 25px rgba(0,0,0,.06), 0 4px 10px rgba(0,0,0,.03);
  --radius-sm: 6px;
  --radius: 10px;
  --radius-lg: 14px;
}

*{margin:0;padding:0;box-sizing:border-box}

body{
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', 'Helvetica Neue', sans-serif;
  background: #f0f2f5;
  min-height: 100vh;
  font-size: 12px;
  color: #1a1a1a;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
}

/* ═══════ 左侧边栏 · 专业融合（v5.1 浅色版） ═══════ */
.sidebar{
  position: fixed; top: 0; left: 0; bottom: 0; width: 224px;
  background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
  display: flex; flex-direction: column;
  z-index: 200;
  overflow-y: auto;
  user-select: none;
  border-right: 1px solid #e8ecf2;
  box-shadow: 2px 0 8px rgba(0,0,0,0.02);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}
.sidebar::-webkit-scrollbar{width:3px}
.sidebar::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.12);border-radius:2px}

.sidebar-header{
  padding: 22px 18px 16px;
  background: #fff;
  border-bottom: 1px solid #f0f2f5;
  position: relative;
}
.sidebar-logo{
  display: flex; align-items: center; gap: 11px;
}
.sidebar-logo-icon{
  width: 38px; height: 38px;
  background: linear-gradient(145deg, #34a069, #1e6f42);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; color: #fff8e7;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(30,111,66,0.35), inset 0 1px 0 rgba(255,255,255,0.18);
  flex-shrink: 0;
  position: relative;
}
.sidebar-logo-icon::before{
  content:''; position:absolute; inset:-1px;
  background: linear-gradient(145deg, rgba(255,255,255,0.08), transparent);
  border-radius: 11px; pointer-events: none;
}
.sidebar-logo-text strong{
  display: block; font-size: 14px; font-weight: 700;
  color: #1a1a1a; line-height: 1.3;
  letter-spacing: 0.02em;
}
.sidebar-logo-text small{
  display: block; font-size: 10px;
  color: #6b7280; font-weight: 400;
  margin-top: 2px;
  letter-spacing: 0.03em;
}

/* 导航菜单 */
.sidebar-nav{flex:1;padding:10px 0 6px}
.nav-group-label{
  display: none; /* v5.1 去掉分组标签 */
}
.nav-item{
  display: flex; align-items: center;
  width: calc(100% - 12px); margin: 1px 6px;
  padding: 9px 14px;
  border: none; background: none;
  color: #1a1a1a;
  font-size: 13px; font-weight: 400;
  cursor: pointer;
  text-align: left; gap: 12px;
  border-radius: 8px;
  position: relative;
  transition: all .15s cubic-bezier(.4,0,.2,1);
}
.nav-item:hover{
  background: #e8f5ed;
  color: #16643a;
}
.nav-item.active{
  background: linear-gradient(90deg, #34a069, #2a8e5c);
  color: #fff;
  font-weight: 600;
  box-shadow: 0 2px 6px rgba(42,142,92,0.25);
}
.nav-item.active::before{
  content:'';
  position:absolute; left:-6px; top:6px; bottom:6px;
  width: 3px;
  background: linear-gradient(180deg, #34a069, #1e6f42);
  border-radius: 0 3px 3px 0;
}
.nav-icon{font-size: 15px;width:20px;text-align:center;flex-shrink:0}
.nav-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:0.02em}
.nav-arrow{
  color:#cbd5e0;font-size:14px;margin-left:auto;
  transition: transform .15s;
}
.nav-item:hover .nav-arrow{transform:translateX(2px);color:#94a3b8}
.nav-badge{
  background: linear-gradient(135deg, #c0392b, #922b21);
  color: #fff;
  font-size: 10px; font-weight: 700;
  padding: 0 7px; border-radius: 9px;
  min-width: 18px; height: 18px;
  line-height: 18px; text-align: center;
  margin-left: auto; flex-shrink: 0;
  box-shadow: 0 1px 3px rgba(192,57,43,0.3);
}
.nav-placeholder{cursor:pointer;opacity:0.55}
.nav-placeholder:hover{background:#f7fafc}

/* 快捷入口 */
.sidebar-shortcuts{
  border-top: 1px solid #f0f2f5;
  padding: 0 0 8px;
  margin-top: 4px;
  background: linear-gradient(0deg, #fafbfc, transparent);
}
.shortcut-item{
  display: flex; align-items: center; gap: 10px;
  width: calc(100% - 12px); margin: 1px 6px;
  padding: 8px 14px 8px 18px;
  border: none; background: none;
  color: #1a1a1a;
  font-size: 12px; cursor: pointer;
  border-radius: 6px;
  transition: all .12s;
}
.shortcut-item:hover{
  color: #16643a;
  background: #e8f5ed;
}
.shortcut-item.shortcut-pending{ opacity: 0.45; color: #8c8c8c; }
.shortcut-item.shortcut-pending:hover{ opacity: 0.7; color: #8c8c8c; background: #f5f5f5; }
.shortcut-item span{
  font-size: 13px; font-weight: 600;
  color: #34a069;
  width: 16px; text-align: center;
  flex-shrink: 0;
}

/* 侧栏底部 */
.sidebar-footer{
  display: flex; align-items: center; flex-wrap: wrap; gap: 5px 10px;
  padding: 12px 18px;
  border-top: 1px solid #f0f2f5;
  font-size: 11px; color: #6b7785;
  background: #fafbfc;
}
.db-status-chip{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:27px;padding:4px 10px;border:1px solid #dfe7e2;border-radius:999px;background:#f5f8f6;color:#65766b;font-family:inherit;font-size:11px;font-weight:700;line-height:1.2;white-space:nowrap;cursor:pointer;transition:background .2s,border-color .2s,color .2s;}
.db-status-chip:hover{filter:brightness(.97)}
.db-status-dot{width:7px;height:7px;flex:none;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px currentColor;opacity:.75;}
.db-status-chip.connected{color:#16805a;border-color:#c9eadb;background:#eef9f3}
.db-status-chip.saving,.db-status-chip.checking{color:#3474b2;border-color:#d3e4f4;background:#f1f7fc}
.db-status-chip.unsynced,.db-status-chip.disconnected,.db-status-chip.disk-error{color:#b4413d;border-color:#f0cbc8;background:#fff2f1}
.db-status-chip.unsynced .db-status-dot,.db-status-chip.disconnected .db-status-dot,.db-status-chip.disk-error .db-status-dot{animation:db-status-pulse 1.8s ease-in-out infinite}
@keyframes db-status-pulse{50%{opacity:.35;box-shadow:0 0 0 5px currentColor}}
.sidebar-footer #conn-badge{flex:1 1 100%;width:100%}
.db-status-mobile{display:none}
@media(max-width:768px){.db-status-mobile{display:inline-flex;position:fixed;top:calc(env(safe-area-inset-top,0px) + 8px);right:9px;z-index:210;min-height:26px;padding:4px 8px;background:rgba(255,255,255,.94);box-shadow:0 3px 12px rgba(29,61,43,.12);backdrop-filter:blur(8px)}}
.sidebar-footer .conn-status{
  font-size: 12px; display: flex; align-items: center; gap: 4px;
}
.sidebar-footer .clock{
  font-family: 'SF Mono', 'Monaco', 'Consolas', monospace;
  letter-spacing: 0.05em;
}
.sidebar-footer .ver{
  margin-left: auto;
  background: #e8ecf2;
  padding: 1px 6px; border-radius: 3px;
  font-size: 9px;
  color: #6b7785;
}

/* ═══════ 页面主体（侧栏留白） ═══════ */
.page{
  display:none;
  padding: 12px 16px;
  margin-left: 224px;
  max-width: 1400px;
  min-height: 100vh;
}
.page.active{display:block}

/* badge 全局 */
.badge{
  background: #c0392b;
  color: #fff;
  font-size: 10px;
  font-weight: 600;
  padding: 1px 6px;
  border-radius: 8px;
  margin-left: 4px;
  min-width: 16px;
  text-align: center;
  line-height: 16px;
}

/* ═══════ 卡片 · 精致阴影 ═══════ */
.card{
  background: var(--white);
  border-radius: var(--radius);
  border: 1px solid var(--gray-200);
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: var(--shadow-xs);
}
.card-compact{
  padding: 16px;
  margin-bottom: 12px;
}
.card-title{
  font-size: 14px;
  font-weight: 600;
  color: var(--gray-900);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  letter-spacing: .01em;
}
.card-title .tag{
  font-size: 11px;
  font-weight: 500;
  padding: 2px 10px;
  border-radius: 12px;
}

/* ═══════ 标签 · 精致 ═══════ */
.tag{padding:2px 10px;border-radius:10px;font-size:11px;font-weight:500;display:inline-block}
.tag-blue{background: var(--blue-light); color: var(--blue); border:1px solid #d2e3fc}
.tag-green{background: var(--green-light); color: var(--green); border:1px solid #c6edcf}
.tag-orange{background: var(--orange-light); color: var(--orange); border:1px solid #fde3cb}
.tag-purple{background: #f3e8ff; color: #7c3aed; border:1px solid #e9d5ff}
.tag-rose{background: #fdf0f1; color: #c0392b; border:1px solid #fadadd}
.tag-gray{background: var(--gray-100); color: var(--gray-600); border:1px solid var(--gray-200)}
.tag-purple{background: var(--purple-light); color: var(--purple); border:1px solid #e8d8fd}
.tag-yellow{background: #fefce8; color: #a16207; border:1px solid #fef08a}
.tag-slate{background: #f1f5f9; color: #64748b; border:1px solid #e2e8f0}

/* ═══════ 统计卡片 ═══════ */
.stats-row{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 20px;
}
.stat-card{
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  padding: 18px 16px 16px;
  cursor: pointer;
  transition: all .25s;
  position: relative;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.stat-card::before{
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  border-radius: 12px 12px 0 0;
}
.stat-card:nth-child(1)::before{background: linear-gradient(90deg,#1677ff,#69b1ff)}
.stat-card:nth-child(2)::before{background: linear-gradient(90deg,#e67e22,#f5a623)}
.stat-card:nth-child(3)::before{background: linear-gradient(90deg,#13c2c2,#5cdbd3)}
.stat-card:nth-child(4)::before{background: linear-gradient(90deg,#c0392b,#e57373)}
.stat-card:nth-child(5)::before{background: linear-gradient(90deg,#52c41a,#95de64)}
.stat-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(0,0,0,.1);
  border-color: var(--gray-300);
}
.stat-card .num{
  font-size: 28px;
  font-weight: 700;
  line-height: 1.1;
  margin-bottom: 6px;
  letter-spacing: -.03em;
}
.stat-card .label{
  font-size: 11px;
  color: var(--gray-600);
  font-weight: 400;
}
.num-blue{color: #1677ff}
.num-orange{color: #e67e22}
.num-red{color: #c0392b}
.num-green{color: #52c41a}
.num-cyan{color: #13c2c2}
.num-purple{color: #722ed1}
.num-gray{color: var(--gray-500)}

/* ═══════ 按钮 · 精致 ═══════ */
.btn{
  padding: 7px 18px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--gray-300);
  background: var(--white);
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  transition: all .15s;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--gray-700);
}
.btn:hover{background: var(--gray-50); border-color: var(--gray-400)}
.btn-primary{
  background: var(--blue);
  color: #fff;
  border-color: var(--blue);
  box-shadow: 0 1px 3px rgba(43,95,217,.25);
}
.btn-primary:hover{background: #1f4fb8; border-color: #1f4fb8; color: #fff; box-shadow: 0 2px 6px rgba(43,95,217,.35)}
.btn-success{background: var(--green); color: #fff; border-color: var(--green)}
.btn-success:hover{background: #157a2e; border-color: #157a2e; color: #fff}
.btn-danger{background: var(--red); color: #fff; border-color: var(--red)}
.btn-danger:hover{background: #b7231e; border-color: #b7231e; color: #fff}
.btn-danger-outline{background: #fff; color: #c0392b; border-color: #f5c6cb}
.btn-danger-outline:hover{background: #fdf0f1; border-color: #e57373; color: #b71c1c}
.btn-ghost{background:transparent;border:1px solid transparent;color:var(--gray-500)}
.btn-ghost:hover{background:var(--gray-50);border-color:var(--gray-200);color:var(--gray-700)}
.btn-warning{background: var(--orange); color: #fff; border-color: var(--orange)}
.btn-warning:hover{background: #c96c1c; border-color: #c96c1c; color: #fff}
.btn-sm{padding: 4px 12px; font-size: 12px; border-radius: 4px}
.btn-group{display: flex; gap: 8px; flex-wrap: wrap}

/* ═══════ 表格 · 专业风格 · 紧凑版 ═══════ */
.table-wrap{overflow-x:auto;position:relative}
.table-wrap table{width:100%;border-collapse:collapse;min-width:1100px;font-variant-numeric: tabular-nums}
.table-wrap thead th{
  background: var(--gray-50);
  padding: 7px 10px;
  text-align: left;
  font-weight: 600;
  color: var(--gray-700);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .04em;
  border-bottom: 2px solid var(--gray-200);
  white-space: nowrap;
  position: sticky;
  top: 0;
  z-index: 10;
}
.table-wrap tbody td{
  padding: 6px 10px;
  border-bottom: 1px solid var(--gray-100);
  font-size: 12px;
  vertical-align: middle;
}
.table-wrap tbody tr:hover{background: var(--blue-light)}
.table-wrap tbody tr:last-child td{border-bottom:none}
.table-wrap .td-compact{padding:4px 10px}

/* ═══════ 状态标签 ═══════ */
.status{
  display: inline-block;
  padding: 2px 10px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 500;
}
.s-init{background: var(--blue-light); color: var(--blue); border:1px solid #d2e3fc}
.s-sample{background: var(--orange-light); color: var(--orange); border:1px solid #fde3cb}
.s-review{background: var(--purple-light); color: var(--purple); border:1px solid #e8d8fd}
.s-prod{background: var(--cyan-light); color: var(--cyan); border:1px solid #c5eaea}
.s-done{background: var(--green-light); color: var(--green); border:1px solid #c6edcf}
.s-delay{background: #fdf0f1; color: #b71c1c; border:1px solid #fadadd}
.s-paused{background: #fefce8; color: #a16207; border:1px solid #fef08a}
.s-cancelled{background: var(--gray-100); color: var(--gray-500); border:1px solid var(--gray-200)}
.s-draft{background: #fff7e6; color: #d48806; border:1px solid #ffe58f}

/* ═══════ 进度条 ═══════ */
.progress{height: 5px;background: var(--gray-100);border-radius: 3px;overflow:hidden}
.progress-bar{height: 100%;border-radius: 3px;transition: width .3s}
.pb-blue{background: var(--blue)}.pb-orange{background: var(--orange)}.pb-red{background: var(--red)}.pb-green{background: var(--green)}

/* ═══════ 流程步骤 ═══════ */
.flow-steps{display:flex;gap:0;overflow-x:auto;padding:12px 0}
.flow-step{flex:0 0 auto;display:flex;align-items:center}
.step-box{padding: 10px 16px;border-radius: var(--radius-sm);font-size:12px;text-align:center;min-width:100px;position:relative}
.step-box .step-name{font-weight:500;margin-bottom:3px}
.step-box .step-date{font-size:11px}
.step-done{background: var(--green-light); border:1px solid #a8dab5; color: var(--green)}
.step-active{background: var(--blue-light); border:2px solid var(--blue); color: var(--blue); box-shadow: 0 0 0 3px rgba(43,95,217,.08)}
.step-todo{background: var(--gray-50); border:1px solid var(--gray-200); color: var(--gray-500)}
.step-skipped{background: #f5f5f5; border:1px solid #d9d9d9; color: #8c8c8c; opacity:0.5}
.step-delay{background: #fdf0f1; border:1px solid #fadadd; color: #b71c1c}
.step-arrow{color: var(--gray-300); padding:0 3px;font-size:14px}

/* ═══════ 收藏按钮 ═══════ */
.star-btn{background:none;border:none;cursor:pointer;font-size:15px;padding:0 3px;line-height:1;transition:transform .15s}
.star-btn:hover{transform:scale(1.25)}

/* ═══════ 表单 · 精致 ═══════ */
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.form-row.triple{grid-template-columns:1fr 1fr 1fr}
.form-row.full{grid-template-columns:1fr}
.form-group{display:flex;flex-direction:column;gap:4px}
.form-label{font-size:12px;color:var(--gray-700);font-weight:600;letter-spacing:.01em}
.form-label .req{color:var(--red);margin-left:2px}
.form-input{
  padding:7px 10px;
  border:1px solid var(--gray-300);
  border-radius:var(--radius-sm);
  font-size:12px;
  outline:none;
  transition:all .15s;
  background:var(--white);
  font-family:inherit;
  color:var(--gray-800);
}
.form-input:focus{border-color: var(--blue); box-shadow: 0 0 0 3px rgba(43,95,217,.1)}
.form-input::placeholder{color: var(--gray-400)}
select.form-input{cursor:pointer}
textarea.form-input{resize:vertical;min-height:80px}
.form-hint{font-size:11px;color: var(--gray-500);margin-top:2px}

/* ═══════ 模态框 · 优雅 ═══════ */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:1000;backdrop-filter:blur(2px)}
.modal-overlay.show{display:flex}
.modal{
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 20px 24px;
  width: 720px;
  max-height: 90vh;
  overflow-y: auto;
  position: fixed;
  box-shadow: var(--shadow-lg);
  /* 居中由 openModal() 用 JS 设置 px 值，不用 CSS transform，避免拖拽冲突 */
  margin: 0;
}
.modal.dragging{transition:none!important;user-select:none}
.modal-title{cursor:grab;font-size:17px;font-weight:700;margin-bottom:24px;display:flex;align-items-center;justify-content:space-between;color:var(--gray-900)}
.modal-title:active{cursor:grabbing}
.modal-close{cursor:pointer;color:var(--gray-500);font-size:18px;line-height:1;padding:6px;border-radius:50%;transition:all .15s}
.modal-close:hover{background:var(--gray-100);color:var(--gray-800)}
.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid var(--gray-100)}

/* ═══════ 甘特图 ═══════ */
.gantt-wrap{overflow-x:auto;padding:0 4px}
.gantt-header{display:flex;border-bottom:2px solid var(--gray-200);padding-bottom:10px;margin-bottom:6px}
.gantt-label-col{width:200px;flex-shrink:0;font-size:12px;color:var(--gray-600);font-weight:600}
.gantt-timeline{flex:1;display:flex;font-size:11px;color:var(--gray-500);position:relative}
.gantt-row{display:flex;align-items:stretch;padding:0 0 0 2px;transition:box-shadow .15s;cursor:pointer}
.gantt-row:hover{box-shadow:0 2px 8px rgba(0,0,0,.08) !important}
.gantt-row:last-child{margin-bottom:0}
.gantt-name{width:200px;flex-shrink:0;padding:8px 0 8px 12px;display:flex;flex-direction:column;justify-content:center}
.gantt-name .pname{font-weight:600;font-size:14px;line-height:1.4;color:#1a1a1a}
.gantt-name .channel{font-size:11px;color:#8c8c8c;margin-top:2px}
.gantt-bar-area{flex:1;position:relative;height:32px;margin:4px 0}
.gantt-bar{position:absolute;height:24px;top:4px;border-radius:8px;font-size:12px;color:#fff;display:flex;align-items:center;padding:0 10px;white-space:nowrap;overflow:hidden;cursor:pointer;transition:all .2s;font-weight:700;box-shadow:0 2px 6px rgba(0,0,0,.15);letter-spacing:.3px}
.gantt-bar:hover{opacity:.92;transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.22)}
.gantt-deadline{position:absolute;top:8px;font-size:12px;white-space:nowrap;pointer-events:none;line-height:1.5;z-index:2;margin-left:6px;font-weight:500}
.gantt-deadline-marker{position:absolute;width:2px;height:24px;top:4px;background:#c0392b;opacity:.7;border-radius:1px;pointer-events:none}
/* 卡点按钮 */
.gantt-block-col{width:52px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.gantt-block-btn{display:inline-flex;align-items:center;gap:3px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600;cursor:pointer;transition:all .18s;border:1.5px solid;user-select:none;white-space:nowrap}
.gantt-block-btn.has-data{background:#fff1f0;border-color:#ffccc7;color:#c0392b}
.gantt-block-btn.has-data:hover{background:#ffece8;border-color:#ffa39e}
.gantt-block-btn.empty{background:#fafafa;border-color:#d9d9d9;color:#bfbfbf}
.gantt-block-btn.empty:hover{background:#f5f5f5;border-color:#c0c0c0;color:#8c8c8c}
.gantt-block-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}
/* 甘特图隐藏功能样式 */
.gantt-checkbox-col{width:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.gantt-index-col{width:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;color:#8c8c8c;font-weight:600;padding:8px 0}
#gantt-hidden-count{font-size:12px;color:var(--gray-500)}
.gantt-row[data-hidden="true"]{display:none !important}
/* 卡点弹窗 */
.blockage-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1000;display:flex;align-items:center;justify-content:center;animation:fade-in .15s ease-out}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
.blockage-panel{background:#fff;border-radius:16px;width:520px;max-height:70vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.2);animation:panel-up .2s ease-out}
@keyframes panel-up{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}
.blockage-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 14px;border-bottom:1px solid #f0f0f0}
.blockage-header h3{font-size:16px;font-weight:700;color:#202124;display:flex;align-items:center;gap:8px}
.blockage-header .b-close{width:30px;height:30px;border-radius:50%;border:none;background:#f5f5f5;color:#666;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s}
.blockage-header .b-close:hover{background:#e8e8e8;color:#333}
.blockage-body{padding:16px 22px;overflow-y:auto;flex:1}
.blockage-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.blockage-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:10px;background:#fefefe;border:1px solid #f0f0f0;transition:.15s}
.blockage-item:hover{border-color:#e0e0e0;background:#fafafa}
.bi-badge{flex-shrink:0;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;background:linear-gradient(135deg,#e67e22,#d35400)}
.bi-content{flex:1;min-width:0}
.bi-reason{font-size:13px;font-weight:600;color:#333;line-height:1.4;margin-bottom:4px}
.bi-meta{font-size:11px;color:#999;display:flex;gap:12px;flex-wrap:wrap}
.bi-days{color:#c0392b;font-weight:700}
.bi-del{flex-shrink:0;width:28px;height:28px;border-radius:6px;border:none;background:transparent;color:#ccc;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s;margin-top:2px}
.bi-del:hover{background:#feeceb;color:#c0392b}
.blockage-empty{text-align:center;padding:32px 0;color:#bbb}
.blockage-empty .be-icon{font-size:36px;margin-bottom:8px}
.blockage-add{border:2px dashed #d9d9d9;border-radius:12px;padding:14px;text-align:center;cursor:pointer;transition:.15s;color:#999;font-size:13px;margin-top:4px}
.blockage-add:hover{border-color:#1677ff;color:#1677ff;background:#f0f7ff}
.blockage-add .ba-plus{font-size:18px;margin-right:4px;vertical-align:-1px}
/* 新增卡点表单 */
.bf-row{margin-bottom:14px}
.bf-label{font-size:12px;font-weight:600;color:#555;margin-bottom:6px;display:block}
.bf-input{width:100%;padding:9px 12px;border:1.5px solid #e0e0e0;border-radius:8px;font-size:13px;outline:none;transition:border-color .15s;box-sizing:border-box;font-family:inherit}
.bf-input:focus{border-color:#1677ff;box-shadow:0 0 0 3px rgba(22,119,255,.1)}
.bf-input::placeholder{color:#c0c0c0}
.bf-textarea{resize:vertical;min-height:60px}
.bf-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;padding-top:14px;border-top:1px solid #f0f0f0}
.bf-btn{padding:8px 20px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:.15s}
.bf-btn-primary{background:#1677ff;color:#fff}
.bf-btn-primary:hover{background:#1565d0}
.bf-btn-cancel{background:#f5f5f5;color:#666}
.bf-btn-cancel:hover{background:#e8e8e8}
/* 常用原因标签 */
.bf-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.bf-tag{padding:4px 10px;border-radius:14px;font-size:11px;background:#f5f5f5;color:#666;border:1px solid #e8e8e8;cursor:pointer;transition:.15s}
.bf-tag:hover{background:#e6f7ff;border-color:#91d5ff;color:#1677ff}

/* ═══════ 日期选择器 ═══════ */
#dp-weekdays th{padding:6px 0;font-weight:600;color:var(--gray-500)}
#dp-days td{text-align:center;padding:5px 0;cursor:pointer;border-radius:8px;font-size:13px;transition:all .15s;color:var(--gray-700)}
#dp-days td:hover{background:#e6f7ff;color:#1677ff}
#dp-days td.dp-today{border:1.5px solid #1677ff;font-weight:700;color:#1677ff}
#dp-days td.dp-selected{background:#1677ff;color:#fff;font-weight:600;box-shadow:0 2px 6px rgba(22,119,255,.35)}
#dp-days td.dp-other-month{color:#d9d9d9;pointer-events:none}
#dp-days td.dp-disabled{color:#d9d9d9;pointer-events:none;text-decoration:line-through}

/* ═══════ 通知 ═══════ */
.notif-list{display:flex;flex-direction:column;gap:10px}
.notif-item{padding:14px 16px;border-radius:var(--radius-sm);border-left:4px solid;display:flex;gap:12px;align-items:flex-start}
.notif-item.warn{background:var(--orange-light); border-color:var(--orange)}
.notif-item.error{background:#fdf0f1; border-color:#e57373}
.notif-item.info{background:var(--blue-light); border-color:var(--blue)}
.notif-item.success{background:var(--green-light); border-color:var(--green)}
.notif-icon{font-size:16px;flex-shrink:0;margin-top:1px}
.notif-body{flex:1}
.notif-title{font-weight:600;font-size:13px;color:var(--gray-800)}
.notif-desc{font-size:12px;color:var(--gray-600);margin-top:3px}
.notif-time{font-size:11px;color:var(--gray-500);margin-top:5px}

/* ═══════ Webhook配置 ═══════ */
.webhook-config{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:16px;margin-top:14px}
.webhook-status{display:flex;align-items:center;gap:8px;font-size:13px}
.dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.dot-green{background:var(--green)}.dot-red{background:var(--red)}.dot-gray{background:var(--gray-400)}

/* ═══════ 版本日志时间线 ═══════ */
.version-timeline{position:relative;padding-left:24px}
.version-item{position:relative;padding:12px 0;border-bottom:1px solid var(--gray-100);padding-left:20px}
.version-item::before{
  content: '';
  position: absolute;
  left: -20px; top: 18px;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--blue);
  border: 2px solid var(--white);
  box-shadow: 0 0 0 2px var(--blue);
}
.version-item:last-child{border-bottom:none}
.version-ver{font-weight:600;color:var(--blue);font-size:13px}
.version-time{font-size:11px;color:var(--gray-500);margin-left:8px}
.version-desc{font-size:12px;color:var(--gray-700);margin-top:4px;line-height:1.6;white-space:pre-line}

/* ═══════ 连接状态 ═══════ */
.conn-status{display:inline-flex;align-items:center;gap:5px;font-size:10px;padding:2px 8px;border-radius:10px;margin-left:8px;font-weight:500}
.conn-ok{background:var(--green-light);color:var(--green)}
.conn-err{background:var(--red-light);color:var(--red)}
.conn-local{background:#f0f5ff;color:#1677ff;font-weight:400}
.conn-loading{background:var(--orange-light);color:var(--orange)}

/* ═══════ 倒计时 / 运行天数 ═══════ */
.countdown{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}
.countdown.urgent{color:#c0392b}
.countdown.warn{color:var(--orange)}
.countdown.ok{color:var(--green)}
.run-days{font-size:13px;font-weight:600;color:var(--blue);font-variant-numeric:tabular-nums}
.run-days.many{color:#c0392b}
.run-days.none{color:var(--gray-500)}

/* ═══════ 空状态 ═══════ */
.empty-state{text-align:center;padding:64px 20px;color:var(--gray-500)}
.empty-state .empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}
.empty-state p{font-size:14px}

/* ═══════ 响应式 ═══════ */
@media(max-width:768px){
  .stats-row{grid-template-columns:repeat(2,1fr)}
  .form-row{grid-template-columns:1fr}
  .form-row.triple{grid-template-columns:1fr}
  .modal{width:94vw;padding:20px}
  .nav{padding:0 16px;flex-wrap:wrap;height:auto;min-height:52px}
  .nav-logo{border-right:none;padding-right:0;margin-right:0}
  .nav-actions{border-left:none;padding-left:0;margin-left:0}
}

/* ═══════ 打印隐藏 ═══════ */
@media print{.sidebar,.btn-group,.modal-overlay{display:none!important}.card{border:none;box-shadow:none}}

/* ═══════ 龙国图平滑滚动 ═══════ */
html{scroll-behavior:smooth}

<style>
@media print{.sidebar,.btn,.btn-group,.modal-overlay{display:none!important}}

/* 新品发起选择 */
.launch-choice{display:flex;gap:16px;margin-bottom:24px}
.choice-card{flex:1;border:2px solid #e8e8e8;border-radius:10px;padding:20px;cursor:pointer;text-align:center;transition:all .25s}
.choice-card:hover{border-color:#1677ff;background:#f0f5ff}
.choice-card.selected{border-color:#1677ff;background:#e6f4ff}
.choice-card .c-icon{font-size:36px;margin-bottom:8px}
.choice-card .c-title{font-size:15px;font-weight:600;color:#1a1a1a;margin-bottom:4px}
.choice-card .c-desc{font-size:12px;color:#8c8c8c}

/* 拖拽排序 */
.drag-item{cursor:grab;user-select:none}
.drag-item:active{cursor:grabbing}
.drag-item.dragging{opacity:.5;background:#e6f4ff!important}
.drag-item.drag-over{border-top:2px solid #1677ff}

/* 详情编辑区 */
.detail-edit-panel{background:#fffbe6;border:1px solid #ffe58f;border-radius:6px;padding:14px;margin-top:12px}
.detail-edit-panel .panel-title{font-size:13px;font-weight:600;color:#ad6800;margin-bottom:10px}

/* ───── 表头冻结（旧版已被新版CSS覆盖，保持兼容）───── */

/* 置顶项目 */
.tr-pinned{background:#fffbeb!important}
.tr-pinned:hover{background:#fef3c7!important}
.tr-pinned td:first-child{padding-left:6px}
.pin-btn{cursor:pointer;font-size:15px;user-select:none;transition:transform .2s;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:4px}
.pin-btn:hover{background:#f0f0f0;transform:scale(1.2)}
.pin-btn.pinned{color:#c0392b}

/* ═════ 可选列折叠（方案B） ═════ */
.col-optional{display:none}
/* 切换按钮 */
.toggle-btn{padding:4px 10px;font-size:12px;border:1px solid #d9d9d9;border-radius:6px;background:#fff;cursor:pointer;color:#595959;transition:all .2s;white-space:nowrap}
.toggle-btn:hover{border-color:#1677ff;color:#1677ff;background:#e6f7ff}
.toggle-btn.active{background:#e6f7ff;border-color:#1677ff;color:#1677ff}
/* ════ 行内悬停操作按钮 · v3.9.0 ════ */
#projects-tbody tr,
#work-task-list tr {
  transition: background 0.2s ease, box-shadow 0.2s ease;
  cursor: pointer;
}
#projects-tbody tr:hover,
#work-task-list tr:hover {
  background: #F5F8FF !important;
  box-shadow: inset 0 0 0 1px #D6E4FD;
  z-index: 1;
}
/* 项目列表紧凑布局：让所有主列+操作列同屏可见 */
#projects-tbody td {
  padding: 8px 6px !important;
  white-space: nowrap;
}
#projects-tbody td:nth-child(1){ width:36px; padding-left:4px !important; padding-right:4px !important; }
#projects-tbody td:nth-child(2) strong{ display:block; max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#projects-tbody td:nth-child(2){ max-width:280px; }
#projects-tbody td:nth-child(3),
#projects-tbody td:nth-child(4),
#projects-tbody td:nth-child(5){ min-width:96px; }
#work-task-list tr.overdue:hover {
  background: #FFE0E0 !important;
  box-shadow: inset 0 0 0 1px #F5C6C6;
}
.actions-cell {
  position: sticky;
  right: 0;
  background: #fff;
  z-index: 2;
  min-width: 90px;
  vertical-align: middle !important;
  box-shadow: -2px 0 4px rgba(0,0,0,0.04);
}
#projects-tbody tr:hover .actions-cell {
  background: #F5F8FF !important;
  box-shadow: -2px 0 4px rgba(0,0,0,0.08);
}
.row-actions {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  gap: 2px;
  opacity: 1 !important;
  pointer-events: auto !important;
  transition: opacity 0.2s ease;
  background: rgba(255,255,255,0.85);
  padding: 0 2px;
  border-radius: 6px;
  z-index: 2;
}
#projects-tbody tr:hover .row-actions,
#work-task-list tr:hover .row-actions {
  opacity: 1;
  pointer-events: auto;
}
.row-actions button {
  width: 22px;
  height: 22px;
  border: none;
  background: transparent;
  border-radius: 5px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #8C8C8C;
  font-size: 13px;
  transition: background 0.15s, color 0.15s;
  padding: 0;
  line-height: 1;
}
.row-actions button:hover {
  background: #F0F5FF;
  color: #1677FF;
}
.row-actions button:active {
  transform: scale(0.92);
}
/* 已完成/已取消行：隐藏编辑和更多按钮 */
#projects-tbody tr.done .row-actions .btn-edit,
#projects-tbody tr.cancelled .row-actions .btn-edit,
#projects-tbody tr.done .row-actions .btn-more,
#projects-tbody tr.cancelled .row-actions .btn-more,
#work-task-list tr.completed .row-actions .btn-edit,
#work-task-list tr.completed .row-actions .btn-more {
  display: none;
}
/* 操作列表头隐藏（悬停按钮不需要表头列） */
.work-actions-th {
  width: 8px !important;
  min-width: 8px !important;
  max-width: 8px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  font-size: 0 !important;
}

.row-approved td {
  background: transparent !important;
}

/* 投屏/会议优化：表头更清晰 */
.table-wrap thead th {
  font-size: 12px;
  padding: 8px 10px;
  text-transform: none;
  letter-spacing: 0;
}
.table-wrap tbody td {
  padding: 8px 10px;
  font-size: 13px;
}
#projects-tbody tr strong {
  font-size: 14px !important;
}

@media (max-width: 768px) {
  /* ════════ 移动端自适应优化（方案B：中量级）═══════ */
  /* 全局基础调整 */
  body {
    font-size: 14px;
    -webkit-text-size-adjust: 100%;
  }

  /* 顶部导航：横向滚动，防止换行 */
  .nav {
    overflow-x: auto;
    white-space: nowrap;
    height: 48px;
    padding: 0 12px;
    gap: 4px;
  }
  .nav-logo {
    font-size: 13px;
    padding-right: 12px;
    margin-right: 12px;
  }
  .nav-logo-icon {
    width: 28px;
    height: 28px;
    font-size: 13px;
  }
  .nav-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: 2px;
  }
  .nav-tab {
    font-size: 12px;
    padding: 6px 10px;
    white-space: nowrap;
  }
  .nav-actions {
    margin-left: auto;
    display: flex;
    gap: 4px;
  }
  .nav-actions button {
    font-size: 12px;
    padding: 5px 8px;
    white-space: nowrap;
  }

  /* 总览看板：单列布局 */
  .dashboard {
    padding: 12px;
  }
  .dashboard-header {
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
  }
  .dashboard-header h2 {
    font-size: 18px;
  }
  .dashboard-actions {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }
  .dashboard-actions button {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 12px;
    padding: 8px 12px;
  }

  /* 统计卡片：单列 */
  .stats-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .stat-card {
    padding: 16px;
  }
  .stat-card .stat-number {
    font-size: 28px;
  }

  /* 渠道进度：单列 */
  .channel-stats {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .channel-card {
    padding: 16px;
  }

  /* 待处理事项 */
  .pending-list {
    padding: 12px;
  }
  .pending-item {
    padding: 12px;
    flex-direction: column;
    gap: 8px;
  }
  .pending-item .pending-actions {
    width: 100%;
    display: flex;
    gap: 8px;
  }
  .pending-item .pending-actions button {
    flex: 1;
  }

  /* 项目列表：表格横向滚动 */
  .project-list-container {
    padding: 12px;
  }
  .project-list-header {
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
  }
  .project-list-actions {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }
  .project-list-actions button,
  .project-list-actions select,
  .project-list-actions input {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 12px;
  }
  .table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -12px;
    padding: 0 12px;
  }
  .project-table {
    min-width: 800px;
    font-size: 12px;
  }
  .project-table th,
  .project-table td {
    padding: 8px 10px;
    white-space: nowrap;
  }

  /* 阶段管理面板：全屏 */
  .stage-panel {
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    border-radius: 0;
    margin: 0;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
  }
  .stage-panel-header {
    padding: 16px;
  }
  .stage-panel-body {
    padding: 16px;
  }
  .stage-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .stage-card {
    padding: 14px;
  }

  /* 模态框：全屏 */
  .modal-content {
    width: 95% !important;
    max-width: 95% !important;
    margin: 20px auto;
    max-height: calc(100vh - 40px);
    overflow-y: auto;
  }
  .modal-header {
    padding: 16px;
  }
  .modal-body {
    padding: 16px;
  }

  /* 表单元素：全宽 */
  .form-group {
    margin-bottom: 16px;
  }
  .form-group label {
    font-size: 13px;
  }
  .form-group input,
  .form-group select,
  .form-group textarea {
    width: 100%;
    font-size: 14px;
    padding: 10px 12px;
  }

  /* 按钮：全宽或换行 */
  .btn {
    font-size: 13px;
    padding: 8px 16px;
  }
  .btn-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }
  .btn-group .btn {
    flex: 1 1 auto;
    min-width: 0;
  }

  /* 卡片：全宽 */
  .card {
    padding: 16px;
  }
  .card-header {
    flex-direction: column;
    gap: 8px;
    align-items: flex-start;
  }

  /* 甘特图：横向滚动 */
  .gantt-container {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .gantt-chart {
    min-width: 800px;
  }

  /* 日历：调整 */
  .calendar {
    font-size: 12px;
  }
  .calendar-header {
    font-size: 14px;
  }
  .calendar-day {
    min-height: 60px;
    font-size: 11px;
  }

  /* 周报：调整 */
  .report-preview {
    padding: 16px;
    font-size: 14px;
  }
  .report-preview h1 {
    font-size: 20px;
  }
  .report-preview h2 {
    font-size: 18px;
  }
  .report-preview h3 {
    font-size: 16px;
  }

  /* 系统设置 */
  .settings-container {
    padding: 12px;
  }
  .settings-section {
    padding: 16px;
  }
  .settings-section h3 {
    font-size: 15px;
  }

  /* 历史归档 */
  .archive-container {
    padding: 12px;
  }
  .archive-year-card {
    padding: 16px;
  }
  .archive-project-table {
    min-width: 600px;
  }

  /* 回收站 */
  .trash-container {
    padding: 12px;
  }
  .trash-item {
    padding: 12px;
    flex-direction: column;
    gap: 8px;
  }
  .trash-item-actions {
    width: 100%;
    display: flex;
    gap: 8px;
  }
  .trash-item-actions button {
    flex: 1;
  }

  /* 配置项数量徽章 */
  .count-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 10px;
    background: var(--blue-light);
    color: var(--blue);
    font-size: 11px;
    font-weight: 600;
    border: 1px solid #91caff;
    line-height: 1;
    margin-left: 4px;
    vertical-align: middle;
  }

  /* 人员管理 */
  .personnel-list {
    padding: 12px;
  }
  .personnel-item {
    padding: 10px 12px;
    font-size: 13px;
  }

  /* Toast 提示：移动端调整 */
  .toast {
    top: auto !important;
    bottom: 20px !important;
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    font-size: 13px;
  }

  /* 滚动条优化（移动端） */
  ::-webkit-scrollbar {
    width: 4px;
    height: 4px;
  }
  ::-webkit-scrollbar-thumb {
    background: rgba(0,0,0,0.2);
    border-radius: 2px;
  }
}

/* ═══════ 总览看板 v5.1（浅色重设计） ═══════ */
.dash-header{
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 16px;
  padding: 14px 20px;
  background: #fff;
  border-radius: 8px;
  border: 1px solid #f0f2f5;
}
.dash-greeting-text h2{
  margin: 0; font-size: 18px; font-weight: 700; color: #1a1a1a;
  letter-spacing: -0.01em;
}

.dash-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));
  gap:12px;
  margin-bottom:16px;
}
.dash-stat-item{
  position:relative;
  min-width:0;
  min-height:112px;
  padding:14px 15px 12px;
  background:linear-gradient(145deg,#fff 0%,#fbfcff 100%);
  border:1px solid #edf0f5;
  border-radius:10px;
  box-shadow:0 3px 12px rgba(31,69,110,.06);
  cursor:pointer;
  overflow:hidden;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.dash-stat-item::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:3px;
  background:#e7edf6;
  opacity:0;
  transition:opacity .2s ease;
}
.dash-stat-item:hover{
  transform:translateY(-2px);
  border-color:#dce6f2;
  box-shadow:0 8px 20px rgba(31,69,110,.11);
}
.dash-stat-item:hover::before{opacity:1;}

/* 首页“本年完成”卡片：按月完成明细弹窗 */
.dashboard-completion-overlay{display:none;position:fixed;inset:0;z-index:1300;align-items:stretch;justify-content:stretch;padding:0;background:rgba(19,32,50,.68);backdrop-filter:blur(7px)}
.dashboard-completion-overlay.show{display:flex}
.dashboard-completion-dialog{display:flex;flex-direction:column;width:100vw;height:100vh;max-height:none;overflow:hidden;border:0;border-radius:0;background:#f4f6f9;box-shadow:none}
.dashboard-completion-dialog header{display:flex;align-items:center;gap:14px;min-height:64px;padding:12px 23px;border-bottom:1px solid #dfe5ed;background:radial-gradient(circle at 80% 0,#e6f8ed 0,transparent 32%),#fff}
.dashboard-completion-title{min-width:0;flex:1}.dashboard-completion-kicker{display:block;margin-bottom:6px;color:#3f9270;font-size:11px;font-weight:800;letter-spacing:.12em}.dashboard-completion-dialog h3{margin:0;color:#20352a;font-size:23px;letter-spacing:.01em}.dashboard-completion-dialog h3+p{margin:6px 0 0;color:#8b9a91;font-size:12px}
.dashboard-completion-total{display:flex;min-width:76px;min-height:62px;flex-direction:column;align-items:center;justify-content:center;border:1px solid #bce4ca;border-radius:15px;background:rgba(255,255,255,.78);box-shadow:0 5px 15px rgba(31,117,76,.08)}.dashboard-completion-total b{color:#129b61;font-size:25px;line-height:1}.dashboard-completion-total span{margin-top:5px;color:#5a896f;font-size:10px;font-weight:700}
.dashboard-completion-close{width:34px;height:34px;border:0;border-radius:50%;background:#eff5f1;color:#60736a;font-size:26px;line-height:1;cursor:pointer}.dashboard-completion-close:hover{background:#e1eee7;color:#257a56}
.dashboard-completion-tabs{display:flex;gap:4px;padding:10px 23px 0;background:#fff}.dashboard-completion-tabs button{padding:9px 14px;border:0;border-bottom:2px solid transparent;background:transparent;color:#83958a;font-size:13px;font-weight:750;cursor:pointer}.dashboard-completion-tabs button.active{border-color:#1aa065;color:#177c50}
.dashboard-completion-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 23px;border-bottom:1px solid #dfe5ed;background:#fff;color:#91a096;font-size:12px}.dashboard-completion-toolbar label{display:flex;align-items:center;gap:9px;color:#52685c;font-weight:700}.dashboard-completion-toolbar select{padding:8px 31px 8px 11px;border:1px solid #c7e1d1;border-radius:8px;background:#fff;color:#28543f;font-size:13px;font-weight:650;outline:none}
.dashboard-completion-list{display:grid;flex:1;min-height:0;grid-template-columns:repeat(3,minmax(0,1fr));overflow:auto;gap:13px;padding:18px;background:#f4f6f9}.dashboard-completion-row{display:grid;grid-template-columns:minmax(0,1fr) 12px;grid-template-rows:auto auto;align-items:center;width:100%;min-height:112px;gap:5px 10px;padding:18px;border:1px solid #e0e6ee;border-radius:12px;background:#fff;color:#263b30;text-align:left;cursor:pointer;transition:.16s ease}.dashboard-completion-row:hover{border-color:#9fd9b6;background:#f7fcf9;box-shadow:0 8px 18px rgba(34,128,78,.1);transform:translateY(-1px)}.dashboard-completion-product{min-width:0}.dashboard-completion-product b,.dashboard-completion-product small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-completion-product b{font-size:14px}.dashboard-completion-product small{margin-top:5px;color:#87998e;font-size:12px}.dashboard-completion-row time{grid-column:1;grid-row:2;display:inline-flex;width:max-content;padding:3px 7px;border-radius:5px;background:#eaf8ef;color:#25855e;font-size:11px;font-weight:750}.dashboard-completion-row i{grid-column:2;grid-row:1 / span 2;color:#9aafa2;font-size:23px;font-style:normal}.dashboard-completion-empty{grid-column:1/-1;padding:58px 16px;color:#9aa79f;font-size:13px;text-align:center}
.dashboard-completion-year-content{display:grid;flex:1;min-height:0;grid-template-columns:minmax(0,1.2fr) minmax(350px,.8fr);gap:13px;overflow:hidden;padding:13px;background:#f4f6f9}.dashboard-completion-chart{padding:23px 26px 18px;border:1px solid #e0e6ee;border-radius:12px;background:linear-gradient(145deg,#fff,#f5fbf7)}.dashboard-completion-chart-caption{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;color:#557464;font-size:13px;font-weight:750}.dashboard-completion-chart-caption b{color:#168b58}.dashboard-completion-bars{display:flex;align-items:flex-end;justify-content:space-between;gap:11px;height:calc(100% - 38px);min-height:290px;padding:0 13px 4px}.dashboard-completion-bar{display:flex;min-width:38px;flex:1;height:100%;flex-direction:column;align-items:center;justify-content:flex-end;gap:10px;padding:0;border:0;background:transparent;color:#8a9b91;cursor:pointer}.dashboard-completion-bar span{position:relative;display:flex;align-items:flex-start;justify-content:center;width:100%;min-height:4px;border-radius:999px 999px 7px 7px;background:#dce9e1;transition:.16s ease}.dashboard-completion-bar.has-data span{background:linear-gradient(90deg,#0b5a3c 0%,#22aa6e 48%,#75dc9d 100%);box-shadow:8px 10px 15px rgba(17,104,67,.2),inset 3px 0 0 rgba(255,255,255,.22)}.dashboard-completion-bar.has-data span:before{position:absolute;top:-7px;left:0;width:100%;height:14px;content:"";border-radius:50%;background:radial-gradient(ellipse at 48% 27%,#d6ffe4 0%,#85e6ae 35%,#23a96c 78%,#0c623f 100%);box-shadow:0 2px 4px rgba(18,104,68,.2)}.dashboard-completion-bar.has-data span:after{position:absolute;right:7%;bottom:-6px;left:7%;height:11px;content:"";border-radius:50%;background:rgba(5,72,46,.25);filter:blur(3px);z-index:-1}.dashboard-completion-bar.active span{filter:brightness(1.11);outline:2px solid rgba(26,160,101,.27);outline-offset:5px}.dashboard-completion-bar:hover span{filter:brightness(1.08);transform:translateY(-3px)}.dashboard-completion-bar b{position:relative;z-index:1;padding-top:10px;color:#fff;font-size:12px}.dashboard-completion-bar i{font-size:11px;font-style:normal}.dashboard-completion-year-list{display:flex;flex-direction:column;overflow:auto;margin:0;padding:0;border:1px solid #e0e6ee;border-radius:12px;background:#fff}.dashboard-completion-year-list>header{display:flex;align-items:center;justify-content:space-between;min-height:61px;padding:0 15px;border-bottom:1px solid #e8eeea;background:linear-gradient(135deg,#f8fcf9,#eef9f2);color:#3c5949;font-size:14px;font-weight:800}.dashboard-completion-year-list>header b{padding:4px 8px;border-radius:999px;background:#dff5e7;color:#168b58;font-size:11px}.dashboard-completion-year-list>button{display:grid;grid-template-columns:minmax(0,1fr) 80px 10px;align-items:center;width:100%;gap:7px;padding:12px 14px;border:0;border-bottom:1px solid #eef3f0;background:#fff;color:#33483c;text-align:left;cursor:pointer}.dashboard-completion-year-list>button:hover{background:#f3fbf6}.dashboard-completion-year-list>button span{min-width:0}.dashboard-completion-year-list>button b,.dashboard-completion-year-list>button small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-completion-year-list>button b{font-size:13px}.dashboard-completion-year-list>button small{margin-top:4px;color:#91a096;font-size:11px}.dashboard-completion-year-list>button time{color:#25855e;font-size:11px;font-weight:700}.dashboard-completion-year-list>button i{color:#9aafa2;font-size:18px;font-style:normal}
@media(max-width:900px){.dashboard-completion-list{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-completion-year-content{grid-template-columns:1fr}.dashboard-completion-chart{min-height:360px}.dashboard-completion-year-list{max-height:360px}}
@media(max-width:640px){.dashboard-completion-dialog header{padding:11px 14px}.dashboard-completion-dialog h3{font-size:19px}.dashboard-completion-tabs{padding:8px 14px 0}.dashboard-completion-toolbar{align-items:flex-start;flex-direction:column;padding:10px 14px;gap:7px}.dashboard-completion-list{grid-template-columns:1fr;padding:9px}.dashboard-completion-row{min-height:78px;padding:12px 13px}.dashboard-completion-total{min-width:64px;min-height:54px}.dashboard-completion-total b{font-size:22px}.dashboard-completion-year-content{display:flex;flex-direction:column;padding:9px}.dashboard-completion-chart{min-height:250px;padding:16px}.dashboard-completion-bars{min-height:188px;padding:0 5px;gap:4px}.dashboard-completion-bar{min-width:21px}.dashboard-completion-year-list{max-height:none;flex:1}.dashboard-completion-month-group button{grid-template-columns:minmax(0,1fr) 75px 10px}}

/* 年度完成图：回归清爽的数据看板风格，避免夸张的立体装饰。 */
.dashboard-completion-chart{background:#fff}
.dashboard-completion-bars{position:relative;isolation:isolate;border-bottom:1px solid #dfe9e3;background:repeating-linear-gradient(to bottom,transparent 0,transparent 24%,#f0f5f2 24.4%,transparent 25%)}
.dashboard-completion-bar span{border-radius:9px 9px 2px 2px;transform:none;background:#e4ece7}
.dashboard-completion-bar.has-data span{background:linear-gradient(180deg,#4fc98b,#249866);box-shadow:0 4px 9px rgba(30,132,84,.16),inset 0 1px 0 rgba(255,255,255,.34)}
.dashboard-completion-bar.has-data span:before,.dashboard-completion-bar.has-data span:after{display:none}
.dashboard-completion-bar:hover span{filter:brightness(1.03);transform:translateY(-2px)}
.dashboard-completion-bar.active span{filter:none;outline:2px solid rgba(26,160,101,.28);outline-offset:4px;background:linear-gradient(180deg,#35b978,#13774d);box-shadow:0 5px 12px rgba(20,119,77,.2),inset 0 1px 0 rgba(255,255,255,.34)}
.dashboard-completion-export{margin-left:auto;padding:8px 13px;border:1px solid #9bd5b3;border-radius:8px;background:#edf9f1;color:#19794f;font-size:12px;font-weight:750;cursor:pointer}.dashboard-completion-export:hover{border-color:#58b77d;background:#dcf5e5}
.dashboard-completion-year-product{display:grid;grid-template-columns:minmax(0,1fr) 82px 126px 10px;align-items:center;width:100%;gap:7px;padding:11px 14px;border-bottom:1px solid #eef3f0;background:#fff;color:#33483c;text-align:left;cursor:pointer}.dashboard-completion-year-product:hover{background:#f3fbf6}.dashboard-completion-year-product>span{min-width:0}.dashboard-completion-year-product b,.dashboard-completion-year-product small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-completion-year-product b{font-size:13px}.dashboard-completion-year-product small{margin-top:4px;color:#91a096;font-size:11px}.dashboard-completion-year-product time{color:#25855e;font-size:11px;font-weight:700}.dashboard-completion-year-product>i{color:#9aafa2;font-size:18px;font-style:normal}.dashboard-completion-review-state{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}.dashboard-completion-review-state em{overflow:hidden;color:#9a7a45;font-size:10px;font-style:normal;font-weight:750;white-space:nowrap}.dashboard-completion-review-state em.is-reviewed{color:#23865c}.dashboard-completion-review-state button{padding:5px 7px;border:1px solid #d9c08f;border-radius:6px;background:#fffaf0;color:#9a6b1b;font-size:11px;font-weight:750;white-space:nowrap;cursor:pointer}.dashboard-completion-review-state button:hover{background:#fff1d7}.dashboard-completion-review-state em.is-reviewed+button{border-color:#a7dcc0;background:#f4fbf6;color:#237a52}
.dashboard-completion-review-overlay{display:none;position:fixed;inset:0;z-index:1310;align-items:center;justify-content:center;padding:18px;background:rgba(20,35,29,.45);backdrop-filter:blur(4px)}.dashboard-completion-review-overlay.show{display:flex}.dashboard-completion-review-dialog{width:min(560px,100%);overflow:hidden;border:1px solid #dce9df;border-radius:15px;background:#fff;box-shadow:0 22px 55px rgba(18,56,36,.22)}.dashboard-completion-review-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 21px 15px;border-bottom:1px solid #e5eee8;background:linear-gradient(135deg,#f7fcf8,#edf9f1)}.dashboard-completion-review-dialog header span{color:#2c9461;font-size:11px;font-weight:850;letter-spacing:.1em}.dashboard-completion-review-dialog h3{margin:5px 0 3px;color:#284338;font-size:18px}.dashboard-completion-review-dialog p{margin:0;color:#779084;font-size:12px}.dashboard-completion-review-dialog>header button{width:30px;height:30px;border:0;border-radius:50%;background:#e8f1eb;color:#587264;font-size:23px;line-height:1;cursor:pointer}.dashboard-completion-review-body{display:grid;gap:14px;padding:19px 21px}.dashboard-completion-review-body label{display:grid;gap:7px;color:#4e6759;font-size:13px;font-weight:750}.dashboard-completion-review-body label b{color:#da5a53}.dashboard-completion-review-body label small{color:#9aa9a0;font-size:11px;font-weight:500}.dashboard-completion-review-body input,.dashboard-completion-review-body textarea{width:100%;box-sizing:border-box;padding:9px 10px;border:1px solid #cfe0d4;border-radius:8px;background:#fff;color:#2d4438;font:inherit;font-size:13px;outline:none;resize:vertical}.dashboard-completion-review-body input:focus,.dashboard-completion-review-body textarea:focus{border-color:#55b47b;box-shadow:0 0 0 3px rgba(71,175,112,.12)}.dashboard-completion-review-dialog footer{display:flex;justify-content:flex-end;gap:9px;padding:14px 21px 18px;border-top:1px solid #edf2ee}.dashboard-completion-review-dialog footer button{padding:8px 14px;border-radius:8px;font-size:13px;font-weight:750;cursor:pointer}.dashboard-completion-review-cancel{border:1px solid #d7e1da;background:#fff;color:#64786c}.dashboard-completion-review-save{border:1px solid #238c5b;background:#2e9d68;color:#fff}.dashboard-completion-review-save:hover{background:#238b59}
@media(max-width:900px){.dashboard-completion-year-product{grid-template-columns:minmax(0,1fr) 80px 10px}.dashboard-completion-review-state{grid-column:1/3;justify-content:flex-start}.dashboard-completion-year-product>i{grid-row:1}.dashboard-completion-export{margin-left:0}}
@media(max-width:640px){.dashboard-completion-export{width:100%;margin-top:2px}.dashboard-completion-year-product{grid-template-columns:minmax(0,1fr) 10px}.dashboard-completion-year-product time{grid-column:1}.dashboard-completion-review-state{grid-column:1}.dashboard-completion-year-product>i{grid-column:2;grid-row:1}.dashboard-completion-review-overlay{padding:10px}}
.dash-stat-top{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.dash-stat-icon{
  width:28px;
  height:28px;
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  font-size:15px;
}
.dash-stat-label{
  min-width:0;
  overflow:hidden;
  color:#4b5563;
  font-size:12px;
  font-weight:600;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dash-stat-value-row{
  display:flex;
  align-items:baseline;
  min-height:39px;
  margin-top:8px;
}
.dash-stat-num{
  font-size:29px;
  font-weight:750;
  letter-spacing:-.04em;
  line-height:1;
}
.dash-stat-trend{
  min-height:16px;
  margin-top:3px;
  color:#8c99a8;
  font-size:11px;
  font-weight:600;
  line-height:16px;
}
.dash-stat-trend-empty{visibility:hidden;}
.dash-stat-trend.trend-up{color:#16643a}
.dash-stat-trend.trend-down{color:#c0392b}
@media (max-width: 860px){
  .dash-stats{grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px;}
  .dash-stat-item{min-height:106px; padding:13px;}
}


.dashboard-bottom-grid>.card:has(#risk-warning-block){position:relative;overflow:hidden;border-color:#f0d9d6;background:linear-gradient(150deg,#fff 0%,#fffafa 100%)}
.dashboard-bottom-grid>.card:has(#risk-warning-block):before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#d83f37,#f08a75)}
.dashboard-bottom-grid>.card:has(#risk-warning-block)>.card-title{display:flex;align-items:center;gap:7px;margin-bottom:13px;color:#2c384a;font-size:16px;font-weight:780}
.risk-summary{display:flex;align-items:center;justify-content:space-between;margin:0 0 11px;padding:11px 12px;border:1px solid #f4d8d5;border-radius:10px;background:linear-gradient(105deg,#fff5f4,#fffafb)}
.risk-summary span{display:block;margin-bottom:3px;color:#a16d68;font-size:10px;font-weight:700;letter-spacing:.04em}
.risk-summary strong{display:block;color:#bb342e;font-size:13px;font-weight:720}.risk-summary strong b{margin-right:3px;color:#d33830;font-size:22px;line-height:1;font-variant-numeric:tabular-nums}
.risk-summary em{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:22px;padding:0 7px;border-radius:999px;background:#d84239;color:#fff;font-size:10px;font-style:normal;font-weight:750;box-shadow:0 4px 10px rgba(203,57,49,.16)}
.risk-list{max-height:200px;padding-right:3px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#c8cbd0 transparent}
.risk-item{display:flex;align-items:center;justify-content:space-between;min-height:42px;margin:0 0 6px;padding:7px 9px 7px 11px;border:1px solid #f3ddd9;border-left:3px solid #e5847d;border-radius:9px;background:rgba(255,255,255,.82);font-size:12px;cursor:pointer;transition:.18s ease}
.risk-item:hover{border-color:#eaafa9;border-left-color:#d54038;background:#fff;box-shadow:0 6px 14px rgba(179,65,55,.08);transform:translateX(2px)}
.risk-main{display:flex;align-items:center;gap:7px;flex:1;min-width:0}.risk-name{min-width:0;color:#2e3440;font-weight:680;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.risk-channel{max-width:72px;color:#9a9da5;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}
.risk-stage{margin-left:8px;padding:4px 8px;border-radius:999px;background:linear-gradient(135deg,#d9433a,#c9312b);color:#fff;font-size:10px;font-weight:720;line-height:1;white-space:nowrap;flex-shrink:0;box-shadow:0 3px 8px rgba(191,54,46,.15)}
.risk-more{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:28px;margin-top:2px;border:0;border-radius:7px;background:transparent;color:#ba4942;font:11px inherit;font-weight:700;cursor:pointer}.risk-more:hover{background:#fff0ef}.risk-more span{font-size:14px;line-height:1}

.channel-summary{
  display: block;
}
.channel-group{ margin-bottom: 18px; }
.channel-group:last-child{ margin-bottom: 0; }
.channel-group-label{
  font-size: 12px; font-weight: 600; color: #9ca3af;
  margin-bottom: 10px; padding-left: 2px;
}
.channel-group-cards{
  display: grid !important;
  /* 重点渠道固定两列：4 个渠道会整齐呈现为两排，避免在宽屏上被拉成一长行。 */
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px;
  align-items: stretch;
}
.channel-more-wrap{
  grid-column: 1 / -1;
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.channel-more-label{
  font-size: 11px; color: #9ca3af; white-space: nowrap;
}
.channel-more-tag{
  display: inline-flex; align-items: center; gap: 5px;
  padding: 4px 10px;
  background: #fff;
  border: 1px solid #f0f2f5;
  border-radius: 999px;
  font-size: 11px; color: #595959;
  cursor: pointer;
  transition: all .15s;
}
.channel-more-tag:hover{
  border-color: #1677ff; color: #1677ff; box-shadow: 0 2px 6px rgba(22,119,255,.1);
}
.channel-more-tag b{
  font-weight: 700; color: #1a1a1a;
}
.channel-card{
  background: #fff;
  border-radius: 12px;
  padding: 12px;
  border: 1px solid #f0f2f5;
  box-shadow: 0 1px 2px rgba(0,0,0,0.03);
  cursor: pointer;
  transition: all .2s cubic-bezier(.4,0,.2,1);
}
.channel-card:hover{
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  transform: translateY(-2px);
  border-color: transparent;
}
.channel-card-header{
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 10px;
}
.channel-card-logo{
  width: 32px; height: 32px; border-radius: 8px;
  object-fit: contain; background: #fff;
  border: 1px solid #f0f0f0;
}
.channel-card-name{
  font-size: 13px; font-weight: 600; color: #1a1a1a;
}
.channel-card-metrics{
  display: flex; justify-content: space-between;
  font-size: 11px; color: #8c8c8c;
  margin-bottom: 8px;
}
.channel-card-metrics b{
  font-size: 14px; color: #1a1a1a; font-weight: 700;
}
.channel-card-bar{
  height: 5px; background: #f0f0f0; border-radius: 3px;
  overflow: hidden; margin-bottom: 6px;
}
.channel-card-progress{
  height: 100%; border-radius: 3px; transition: width .3s;
}
.channel-card-rate{
  font-size: 10px; color: #9ca3af; text-align: right;
}

/* ════════ 渠道卡片 v2（横排布局） ════════ */
.channel-card-v2{
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  border: 1px solid #f0f2f5;
  box-shadow: 0 1px 2px rgba(0,0,0,0.03);
  cursor: pointer;
  transition: all .2s cubic-bezier(.4,0,.2,1);
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 130px;
}
.channel-card-v2:hover{
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  transform: translateY(-2px);
  border-color: transparent;
}
.cc-row{display:flex; align-items:center; justify-content:space-between;}
.cc-row-mid{align-items:flex-end;}
.cc-info{display:flex; align-items:center; gap:10px;}
.cc-logo{width:36px; height:36px; border-radius:8px; object-fit:contain; background:#fff; border:1px solid #f0f0f0;}
.cc-logo-fb{display:flex; align-items:center; justify-content:center; font-size:13px; color:#888; background:#fafafa;}
.cc-name{font-size:14px; font-weight:600; color:#1a1a1a;}
.cc-count{
  background:#fff7e6; color:#d48806;
  padding:2px 10px; border-radius:11px;
  font-size:12px; font-weight:500;
  white-space:nowrap;
}
.cc-metrics{display:flex; gap:12px; font-size:12px;}
.cc-m{display:inline-flex; align-items:baseline; gap:4px;}
.cc-m i{font-style:normal; color:#9ca3af;}
.cc-m b{font-weight:700; color:#1a1a1a; font-size:13px;}
.cc-rate{font-size:12px; color:#9ca3af; white-space:nowrap;}
.cc-rate b{font-weight:700; font-size:13px;}
.cc-bar{height:5px; background:#f0f0f0; border-radius:3px; overflow:hidden;}
.cc-progress{height:100%; border-radius:3px; transition:width .3s;}
.cc-link{text-align:right; font-size:12px; color:#1677ff; margin-top:-2px;}

@media (max-width: 1200px){
  .channel-group-cards{ grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 768px){
  .channel-group-cards{ grid-template-columns: 1fr !important; }
  .channel-card-v2{ min-height: 0; }
}

/* ═══════ 重点渠道项目进度 · 参考看板样式 ═══════ */
.channel-progress-panel{ padding:14px 16px 12px; }
.channel-progress-title{ justify-content:space-between; margin-bottom:12px; }
.channel-view-all{ appearance:none; border:0; background:transparent; color:#18864a; padding:2px 0; font:inherit; font-size:12px; font-weight:600; cursor:pointer; }
.channel-view-all:hover{ color:#0d6b37; text-decoration:underline; }
.channel-summary{ display:block; }
.channel-group-main{ margin:0; }
.channel-group-cards-main{ display:grid !important; grid-template-columns:repeat(4, minmax(0, 1fr)) !important; gap:12px; }
.channel-card-v2{ min-width:0; min-height:154px; padding:12px 14px 10px; gap:0; border:1px solid rgba(22,119,255,.06); border-radius:10px; box-shadow:none; }
.channel-card-v2:hover{ transform:translateY(-2px); border-color:rgba(22,119,255,.20); box-shadow:0 8px 20px rgba(31,69,110,.10); }
.cc-row-top{ margin-bottom:14px; }
.cc-info{ gap:9px; min-width:0; }
.cc-logo{ width:38px; height:38px; padding:2px; border:0; border-radius:8px; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.cc-logo-fb{ box-shadow:none; }
.cc-name{ font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cc-count{ flex-shrink:0; padding:4px 8px; border-radius:6px; font-size:11px; line-height:1; background:#eaf2ff; color:#1677ff; }
.cc-metrics{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:4px; margin:0 0 12px; }
.cc-m{ display:flex; flex-direction:column; align-items:center; gap:5px; min-width:0; }
.cc-m i{ font-size:10px; line-height:1; color:#6b7280; white-space:nowrap; }
.cc-m b{ font-size:14px; line-height:1; color:#202124; }
.cc-bar{ height:5px; margin-top:auto; background:rgba(22,119,255,.14); }
.cc-progress{ background:#347fe7; }
.cc-link{ margin-top:10px; color:#347fe7; font-size:11px; font-weight:600; }
.cc-tone-0{ background:linear-gradient(135deg,#f8fbff 0%,#f2f7ff 100%); }
.cc-tone-0 .cc-count{ background:#e7f0ff; color:#1766c4; }
.cc-tone-0 .cc-bar{ background:#dbeaff; }
.cc-tone-0 .cc-progress{ background:#3c8cf4; }
.cc-tone-0 .cc-link{ color:#256fc7; }
.cc-tone-1{ background:linear-gradient(135deg,#fffdf7 0%,#fff7e8 100%); }
.cc-tone-1 .cc-count{ background:#fff0d3; color:#dc7b00; }
.cc-tone-1 .cc-bar{ background:#ffe5b8; }
.cc-tone-1 .cc-progress{ background:#f5a623; }
.cc-tone-1 .cc-link{ color:#dd850a; }
.cc-tone-2{ background:linear-gradient(135deg,#f8fff9 0%,#effbf1 100%); }
.cc-tone-2 .cc-count{ background:#e2f5e5; color:#238a3b; }
.cc-tone-2 .cc-bar{ background:#d5f0da; }
.cc-tone-2 .cc-progress{ background:#34a853; }
.cc-tone-2 .cc-link{ color:#258942; }
.cc-tone-3{ background:linear-gradient(135deg,#f8fbff 0%,#f3f7ff 100%); }
.cc-tone-3 .cc-count{ background:#e9f1ff; color:#1766c4; }
.cc-tone-3 .cc-bar{ background:#dceaff; }
.cc-tone-3 .cc-progress{ background:#347fe7; }
.cc-tone-3 .cc-link{ color:#256fc7; }
@media (max-width: 1200px){ .channel-group-cards-main{ grid-template-columns:repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 640px){ .channel-progress-panel{ padding:12px; } .channel-group-cards-main{ grid-template-columns:1fr !important; } }

/* ═══════ 甘特图专业化视觉层级 ═══════ */
.gantt-page-card{padding:20px !important;background:linear-gradient(180deg,#fff 0%,#fbfcfe 100%);border:1px solid #e7edf4;box-shadow:0 10px 30px rgba(31,69,110,.06) !important;}
.gantt-page-title{display:flex;align-items:center;gap:10px;margin-bottom:16px !important;font-size:18px !important;color:#1f2937;}
.gantt-page-title .tag{font-size:11px;font-weight:500;border-radius:999px;padding:5px 10px;}
.gantt-stats{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;}
.gantt-stats > div{min-width:104px;padding:8px 12px !important;border-radius:9px !important;box-shadow:none !important;font-size:12px !important;}
.gantt-stats > div strong{font-size:19px !important;line-height:1;}
.gantt-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;padding:9px 12px;background:#f7f9fc;border:1px solid #e7edf4;border-radius:10px;}
.gantt-toolbar::before{content:'视图操作';margin-right:4px;color:#7b8794;font-size:11px;font-weight:700;letter-spacing:.04em;}
.gantt-wrap{padding:8px;border:1px solid #e7edf4;border-radius:12px;background:#fbfcfe;overflow-x:auto;}
.gantt-timeline-header{display:flex;align-items:stretch;min-width:960px;height:42px;margin:0 0 8px;border-bottom:1px solid #dfe6ee;}
.gantt-left-header{width:364px;flex:0 0 364px;display:flex;align-items:center;padding-left:18px;color:#7b8794;font-size:11px;font-weight:700;letter-spacing:.04em;}
.gantt-timeline-scale{position:relative;flex:1;min-width:360px;}
.gantt-month-label{position:absolute;bottom:11px;transform:translateX(-50%);color:#7b8794;font-size:12px;font-weight:600;white-space:nowrap;}
.gantt-today-line,.gantt-today-dot{position:absolute;z-index:3;pointer-events:none;}
.gantt-today-line{top:4px;bottom:0;width:2px;background:#e64b4b;opacity:.72;}
.gantt-today-dot{top:1px;width:7px;height:7px;border-radius:50%;background:#e64b4b;transform:translateX(-50%);box-shadow:0 0 0 3px rgba(230,75,75,.12);}
.gantt-deadline-header{width:116px;flex:0 0 116px;display:flex;align-items:center;justify-content:center;color:#7b8794;font-size:11px;font-weight:700;letter-spacing:.04em;}
.gantt-row{position:relative;min-width:960px;min-height:68px;margin-bottom:8px !important;border:1px solid #e7edf4 !important;border-radius:10px !important;background:#fff !important;box-shadow:0 2px 7px rgba(31,69,110,.035) !important;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease !important;}
.gantt-row:hover{transform:translateY(-1px);border-color:#cbd8e6 !important;box-shadow:0 8px 18px rgba(31,69,110,.09) !important;}
.gantt-name{width:230px;flex:0 0 230px;padding:11px 12px !important;}
.gantt-name .pname{font-size:14px !important;line-height:1.35 !important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gantt-name .channel{margin-top:4px !important;font-size:11px !important;color:#7b8794 !important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gantt-index-col{color:#94a3b8 !important;font-size:12px !important;}
.gantt-checkbox-col input{width:15px !important;height:15px !important;}
.gantt-block-col{width:62px;flex:0 0 62px;}
.gantt-block-btn{padding:4px 8px !important;font-size:11px !important;border-radius:999px !important;}
.gantt-bar-area{height:48px;margin:10px 0;min-width:360px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),rgba(161,174,191,.18) calc(25% - 1px),rgba(161,174,191,.18) 25%);border-radius:6px;}
.gantt-bar-area > div[style*="opacity:.06"]{height:28px !important;top:10px !important;border-radius:7px !important;opacity:.12 !important;}
.gantt-bar{height:28px !important;top:10px !important;border-radius:7px !important;padding:0 10px !important;box-shadow:0 3px 8px rgba(31,69,110,.16) !important;}
.gantt-deadline-marker{top:7px !important;height:40px !important;width:2px !important;opacity:.82 !important;}
.gantt-deadline{display:none !important;}
.gantt-today-row-line{position:absolute;top:0;bottom:0;width:1px;background:#e64b4b;opacity:.28;z-index:1;pointer-events:none;}
.gantt-deadline-summary{width:116px;flex:0 0 116px;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:0 10px;border-left:1px solid #edf1f5;font-size:11px;line-height:1.15;white-space:nowrap;}
.gantt-deadline-summary strong{font-size:13px;letter-spacing:-.01em;}
.gantt-deadline-summary .gantt-deadline-empty{color:#a0aab7;}
.gantt-deadline-empty{align-items:center;color:#a0aab7;}
@media (max-width:860px){.gantt-page-card{padding:14px !important;}.gantt-page-title{font-size:16px !important;}.gantt-toolbar::before{width:100%;}.gantt-stats > div{min-width:90px;}.gantt-wrap{padding:5px;}}


/* ═══════ 当前侧栏布局 · 手机端适配（v5.20） ═══════ */
@media (max-width: 768px){
  html, body{width:100%;min-width:0;overflow-x:hidden;}
  body{font-size:14px;-webkit-text-size-adjust:100%;}

  /* 保留随时可用的图标导航，收窄为移动端工具栏。 */
  .sidebar{width:64px;overflow-x:hidden;overflow-y:auto;}
  .sidebar-header{padding:12px 0;display:flex;justify-content:center;}
  .sidebar-logo{justify-content:center;}
  .sidebar-logo-icon{width:34px;height:34px;font-size:15px;}
  .sidebar-logo-text,.nav-label,.nav-arrow,.sidebar-shortcuts,.sidebar-footer{display:none;}
  .sidebar-nav{padding:7px 0 10px;}
  .nav-item{width:48px;height:48px;margin:4px auto;padding:0;justify-content:center;gap:0;border-radius:12px;}
  .nav-item.active::before{display:none;}
  .nav-icon{width:auto;font-size:18px;}

  .page{width:calc(100% - 64px);max-width:none;min-width:0;margin-left:64px;padding:10px;}
  .card{padding:12px;border-radius:10px;}
  .card-title{line-height:1.35;}
  .dash-header{margin-bottom:10px;padding:12px;}
  .dash-greeting-text h2{font-size:16px;}
  .dash-stats{gap:8px !important;margin-bottom:10px !important;}
  .dash-stat-item{min-height:100px !important;padding:11px !important;}
  .dash-stat-num{font-size:25px !important;}
  .dashboard-bottom-grid,.settings-card-grid{grid-template-columns:1fr !important;gap:10px !important;}
.dashboard-bottom-grid > .card,.settings-card-grid > .card{min-width:0;}
  .risk-item{min-width:0;}


  .channel-progress-panel{padding:12px;}
  .channel-group-cards-main{grid-template-columns:1fr !important;gap:9px;}
  .channel-card-v2{min-height:0;padding:12px;}
  .cc-row-top{margin-bottom:10px;}
  .cc-metrics{margin-bottom:10px;}

  /* 筛选条件可以换行，数据表保持可读并在容器中横向滑动。 */
  #page-projects .card > div:first-child{align-items:flex-start !important;}
  #page-projects .card > div:first-child > div:first-child{width:100%;}
  #page-projects .form-input{max-width:100%;}
  #projects-table-wrap,.table-wrap{margin:0 -2px;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .table-wrap table{min-width:760px;}

  .form-row,.form-row.triple{grid-template-columns:1fr;gap:10px;}
  .modal{width:calc(100vw - 84px);max-width:calc(100vw - 84px);}
  .modal-content{width:calc(100vw - 84px) !important;max-width:calc(100vw - 84px) !important;}

  /* 甘特时间轴不压缩，手机端用横向滑动查看完整日期。 */
  .gantt-page-card{padding:12px !important;}
  .gantt-wrap{margin:0 -4px;padding:5px;overscroll-behavior-x:contain;}
  .gantt-timeline-header,.gantt-row{min-width:960px;}
}


/* ═══════════════════════════════════════════
   产品中心 / 新品开发 · 工作台视觉升级（v5.23）
   仅调整布局与样式，不涉及项目数据、筛选或按钮事件。
   ═══════════════════════════════════════════ */
@media (min-width:769px){
  body{background:radial-gradient(circle at 86% -12%,rgba(48,139,96,.09),transparent 28rem),linear-gradient(180deg,#f8fafb,#f2f6f4);}
  .sidebar{width:248px;background:linear-gradient(180deg,#fff 0%,#fbfcfb 70%,#f5f8f6);border-right:1px solid #e0e8e3;box-shadow:10px 0 30px rgba(18,43,30,.045);}
  .sidebar-header{padding:26px 22px 20px;border-bottom:1px solid #edf1ee;}
  .sidebar-logo{gap:12px;}
  .sidebar-logo-icon{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#277f52,#155b3b);box-shadow:0 8px 18px rgba(22,100,63,.23),inset 0 1px 0 rgba(255,255,255,.22);}
  .sidebar-logo-text strong{font-size:15px;color:#17251e;}.sidebar-logo-text small{font-size:11px;color:#758078;margin-top:3px;}
  .sidebar-nav{padding:16px 12px 10px;}
  .nav-item{width:100%;min-height:44px;margin:3px 0;padding:9px 12px;gap:11px;border-radius:10px;color:#48554d;font-size:13px;font-weight:500;}
  .nav-icon{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;border-radius:7px;background:#f2f5f3;font-size:15px;filter:saturate(.82);}
  .nav-item:hover{background:#edf7f1;color:#17643e;}.nav-item:hover .nav-icon{background:#dff1e6;}
  .nav-item.active{background:linear-gradient(105deg,#1b8352,#2d9a67);box-shadow:0 8px 18px rgba(24,117,71,.20);color:#fff;}
  .nav-item.active .nav-icon{background:rgba(255,255,255,.18);filter:none;}.nav-item.active::before{left:-12px;top:11px;bottom:11px;width:3px;background:#2eaa70;border-radius:0 4px 4px 0;}
  .nav-placeholder{opacity:.68;}.nav-arrow{color:#b9c3bd;}
  .sidebar-shortcuts{margin:8px 12px 12px;padding:10px 0 0;border-top:1px solid #e9efeb;background:transparent;}
  .shortcut-item{width:100%;margin:1px 0;padding:8px;border-radius:8px;color:#647168;}.shortcut-item:hover{background:#edf7f1;color:#17643e;}
  .sidebar-footer{padding:12px 18px;background:rgba(247,250,248,.9);border-top:1px solid #e8eeea;color:#829087;}

  .product-center-page,.newreq-page{margin-left:248px;max-width:none;padding:26px 30px 34px;}
  .workspace-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;max-width:1480px;margin:0 auto 18px;}
  .workspace-eyebrow{margin-bottom:7px;color:#2b8a5a;font-size:10px;font-weight:800;letter-spacing:.13em;line-height:1;text-transform:uppercase;}
  .workspace-heading h1{margin:0;color:#17251e;font-size:25px;font-weight:750;letter-spacing:-.035em;line-height:1.14;}
  .workspace-heading p{margin:7px 0 0;color:#7b8780;font-size:13px;line-height:1.5;}
  .workspace-heading-note{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #dfe9e3;border-radius:999px;background:rgba(255,255,255,.7);color:#708077;font-size:11px;white-space:nowrap;}
  .workspace-heading-note span{width:6px;height:6px;border-radius:50%;background:#32a366;box-shadow:0 0 0 3px rgba(50,163,102,.12);}

  .project-workspace{max-width:1480px;margin:0 auto;border:1px solid #e3ebe6;border-radius:16px;background:#fff;box-shadow:0 15px 38px rgba(29,53,40,.055);overflow:hidden;padding:0!important;}
  .project-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 16px;background:linear-gradient(180deg,#fff,#fbfdfc);border-bottom:1px solid #e9efeb;}
  .project-filters{flex:1;min-width:0;gap:7px!important;}
  .project-filters .form-input{height:36px!important;padding:7px 11px!important;border-color:#dfe6e2!important;border-radius:8px!important;background:#fff;color:#344139;font-size:13px!important;box-shadow:0 1px 1px rgba(24,51,35,.02);transition:border-color .16s ease,box-shadow .16s ease;}
  .project-filters .form-input:focus{border-color:#4fa877!important;box-shadow:0 0 0 3px rgba(52,157,100,.12);outline:0;}
  #search-input{width:240px!important;}.project-filters select{min-width:118px;}.project-filters #filter-channel,.project-filters #filter-personnel{min-width:112px;}.project-filters #filter-category{min-width:126px;}
  .project-toolbar .toggle-btn{height:36px!important;padding:6px 10px!important;border-color:#dfe6e2;border-radius:8px;background:#fff;color:#65736a;font-size:12px!important;}
  .project-toolbar .toggle-btn:hover,.project-toolbar .toggle-btn.active{border-color:#67b78c;color:#187244;background:#edf8f1;}
  .project-create-btn{height:38px!important;padding:0 15px!important;border-radius:9px!important;background:linear-gradient(135deg,#277f51,#369d68);border-color:#277f51;box-shadow:0 7px 14px rgba(35,123,78,.20);font-size:13px!important;font-weight:650;}
  .project-create-btn:hover{background:linear-gradient(135deg,#196b41,#288858);border-color:#196b41;transform:translateY(-1px);}
  .project-table-context{display:flex;align-items:center;justify-content:space-between;padding:10px 16px 9px;color:#87938b;font-size:11px;background:#f8fbf9;border-bottom:1px solid #edf2ee;}
  .project-table-context span:first-child{color:#3e5146;font-size:12px;font-weight:700;}
  .project-workspace .table-wrap{margin:0;padding:0;}.project-workspace .table-wrap table{min-width:1080px;}
  .project-workspace .table-wrap thead th{padding:12px 13px;background:#f8faf9;color:#718078;font-size:11px;font-weight:700;border-bottom:1px solid #e3ebe6;letter-spacing:.025em;}
  .project-workspace #projects-tbody td{padding:14px 13px!important;border-bottom:1px solid #edf2ee;font-size:13px;}
  .project-workspace #projects-tbody tr:hover{background:#f5fbf7!important;box-shadow:inset 3px 0 0 #36a269!important;}
  .project-workspace #projects-tbody td:nth-child(2) strong{font-size:14px!important;font-weight:700;}
  .project-workspace .actions-cell{background:#fff;box-shadow:-10px 0 18px rgba(25,55,38,.035);}.project-workspace #projects-tbody tr:hover .actions-cell{background:#f5fbf7!important;}
  .project-workspace .row-actions{padding:3px;background:rgba(255,255,255,.92);border:1px solid #edf2ee;box-shadow:0 2px 7px rgba(25,55,38,.06);}.project-workspace .row-actions button{width:24px;height:24px;}
  .project-workspace #pagination-bar{margin:0!important;padding:11px 16px!important;background:#fbfdfc;border-top:1px solid #e9efeb!important;}

  .newreq-shell{max-width:920px;margin:0 auto;}.newreq-heading{margin-bottom:18px;}
  .newreq-heading-badge{display:flex;align-items:center;gap:8px;padding:8px 10px 8px 12px;border:1px solid #dbe8e0;border-radius:10px;background:rgba(255,255,255,.72);color:#1a7146;font-size:16px;font-weight:800;line-height:1;}
  .newreq-heading-badge span{padding-left:8px;border-left:1px solid #dce8e1;color:#728178;font-size:11px;font-weight:600;}
  .newreq-card{max-width:none!important;margin:0!important;padding:22px!important;border:1px solid #e2ebe5;border-radius:16px;background:#fff;box-shadow:0 15px 38px rgba(29,53,40,.055);}
  .newreq-card-title{justify-content:space-between;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid #e9efeb;font-size:16px;}
  .newreq-card-title>span:first-child{display:flex;align-items:center;gap:8px;color:#1b2c22;}.newreq-card-title>span:first-child::before{content:'+';display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;background:#e5f5eb;color:#228150;font-size:18px;font-weight:500;}
  .launch-choice{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 24px;}
  .choice-card{min-height:184px;padding:20px 16px;border:1px solid #e1e9e4;border-radius:12px;background:linear-gradient(160deg,#fff,#fafcfb);text-align:left;box-shadow:0 2px 7px rgba(30,57,41,.025);}
  .choice-card:hover{border-color:#62ae82;background:linear-gradient(160deg,#fff,#f0f9f3);box-shadow:0 10px 20px rgba(34,119,73,.09);transform:translateY(-2px);}
  .choice-card.selected{border-color:#258453;background:linear-gradient(160deg,#f4fcf7,#e7f6ed);box-shadow:0 0 0 3px rgba(39,132,83,.10);}
  .choice-card .c-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;margin:0 0 17px;border-radius:10px;background:#eaf6ef;font-size:19px;}#choice-prod .c-icon{background:#edf4ff;}#choice-workfollow .c-icon{background:#fff5e5;}
  .choice-card .c-title{margin-bottom:7px;font-size:15px;color:#203128;}.choice-card .c-desc{font-size:12px;color:#77847d;line-height:1.65;}
  .newreq-card .form-row{gap:16px;margin-bottom:15px;}.newreq-card .form-group{gap:6px;}.newreq-card .form-label{font-size:12px;color:#526158;}
  .newreq-card .form-input{min-height:38px;border-color:#dfe7e2;border-radius:8px;background:#fcfefd;font-size:13px;transition:border-color .16s ease,box-shadow .16s ease;}
  .newreq-card textarea.form-input{min-height:82px;}.newreq-card .form-input:focus{border-color:#4fa877;box-shadow:0 0 0 3px rgba(52,157,100,.12);outline:0;background:#fff;}
  .newreq-card .btn-group{padding-top:16px;border-top:1px solid #e9efeb;}.newreq-card .btn{min-height:38px;border-radius:8px;}
  .newreq-card .btn-primary{background:linear-gradient(135deg,#277f51,#369d68);border-color:#277f51;box-shadow:0 7px 14px rgba(35,123,78,.18);}
  .newreq-card .btn-primary:hover{background:linear-gradient(135deg,#196b41,#288858);border-color:#196b41;}
}
@media (min-width:769px) and (max-width:1120px){
  .product-center-page .workspace-heading{grid-template-columns:minmax(220px,.75fr) minmax(350px,1.25fr)!important;}
  .product-center-page .project-filters{grid-template-columns:minmax(190px,1.45fr) repeat(3,minmax(92px,1fr))!important;}
  .product-center-page .project-filters #filter-category,.product-center-page .project-filters #btn-toggle-completed{grid-row:2;}
}
@media (max-width:768px){
  .workspace-heading{margin-bottom:12px;}.workspace-eyebrow{font-size:9px;}.workspace-heading h1{font-size:19px;}.workspace-heading p{font-size:12px;margin-top:4px;}.workspace-heading-note,.newreq-heading-badge{display:none;}
  .product-center-page,.newreq-page{padding-top:12px;}.project-workspace,.newreq-card{border-radius:12px;}
  .project-toolbar{display:block!important;padding:12px!important;}.project-filters{gap:7px!important;}#search-input{width:100%!important;}.project-filters .form-input{height:36px!important;}
  .project-create-btn{width:100%;height:38px!important;margin-top:9px;}.project-table-context{padding:9px 10px;font-size:10px;}.project-table-context span:last-child{display:none;}
  .newreq-shell{max-width:none;}.newreq-card-title{font-size:15px;}.launch-choice{grid-template-columns:1fr;gap:9px;margin-bottom:16px;}
  .choice-card{min-height:0;padding:14px;display:grid;grid-template-columns:40px 1fr;column-gap:12px;text-align:left;}.choice-card .c-icon{grid-row:span 2;margin:0;width:38px;height:38px;}.choice-card .c-title{align-self:end;margin:0;}.choice-card .c-desc{align-self:start;}
}

/* 产品中心 · 运营台精修：统计改为一体化状态条，减少卡片堆叠。 */
@media (min-width:769px){
  .product-center-page .workspace-heading{
    grid-template-columns:minmax(245px,.72fr) minmax(560px,1.28fr)!important;
    min-height:52px!important;
    padding:7px 15px!important;
  }
  .product-center-page .project-overview{gap:0;border:1px solid #e4eaee;border-radius:9px;background:#fbfcfd;overflow:hidden;}
  .product-center-page .project-overview-item{
    height:36px!important;
    min-width:0;
    padding:0 11px!important;
    border:0!important;
    border-right:1px solid #e5ebef!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .product-center-page .project-overview-item:last-child{border-right:0!important;}
  .product-center-page .project-overview-item:after{display:none;}
  .product-center-page .project-overview-item span{font-size:9.5px!important;}
  .product-center-page .project-overview-item strong{font-size:17px!important;}
  .product-center-page .project-overview-item:hover,.product-center-page .project-overview-item:focus-visible{background:#f0f7f6!important;box-shadow:none!important;transform:none;}
  .project-workspace{border-radius:11px!important;}
  .project-toolbar{min-height:50px;padding:8px 11px!important;}
  .project-filters{grid-template-columns:minmax(230px,1.7fr) repeat(4,minmax(104px,.72fr)) auto!important;gap:6px!important;}
  .project-filters .form-input,.project-toolbar .toggle-btn,.project-create-btn{height:31px!important;min-height:31px!important;}
  .project-toolbar .toggle-btn{font-size:10.5px!important;}
  .project-create-btn{padding:0 12px!important;font-size:11px!important;}
  .project-table-context{display:none!important;}
  .project-workspace .table-wrap thead th{height:34px!important;padding:6px 10px!important;font-size:9.5px!important;letter-spacing:.04em;}
  .project-workspace #projects-tbody td{height:42px!important;padding:6px 10px!important;}
  .project-workspace #projects-tbody td:nth-child(2) strong{font-size:12.5px!important;font-weight:740!important;}
  .project-workspace #projects-tbody td:nth-child(3),.project-workspace #projects-tbody td:nth-child(4),.project-workspace #projects-tbody td:nth-child(5),.project-workspace #projects-tbody td:nth-child(6),.project-workspace #projects-tbody td:nth-child(7){font-size:11px!important;}
  .project-workspace .actions-cell{opacity:.72;transition:opacity .16s ease;}
  .project-workspace #projects-tbody tr:hover .actions-cell,.project-workspace #projects-tbody tr:focus-within .actions-cell{opacity:1;}
  .project-workspace #pagination-bar{min-height:28px!important;padding:6px 11px!important;}
}
@media (min-width:769px) and (max-width:1120px){
  .product-center-page .workspace-heading{grid-template-columns:minmax(220px,.75fr) minmax(350px,1.25fr)!important;}
  .product-center-page .project-filters{grid-template-columns:minmax(190px,1.45fr) repeat(3,minmax(92px,1fr))!important;}
  .product-center-page .project-filters #filter-category,.product-center-page .project-filters #btn-toggle-completed{grid-row:2;}
}


/* ═══════════════════════════════════════════
   桌面端顶部导航 · 空间优先布局（v5.24）
   将导航收纳至顶部，优先释放产品表格的横向工作区。
   ═══════════════════════════════════════════ */
@media (min-width:769px){
  .sidebar{
    position:fixed;top:0;right:0;bottom:auto;width:100%;height:76px;
    display:flex;flex-direction:row;align-items:stretch;overflow:visible;
    background:rgba(255,255,255,.96);border-right:0;border-bottom:1px solid #dfe8e2;
    box-shadow:0 3px 18px rgba(24,52,35,.055);backdrop-filter:blur(16px);
  }
  .sidebar-header{
    width:268px;flex:0 0 268px;padding:16px 22px;display:flex;align-items:center;
    border-bottom:0;border-right:1px solid #e6ede8;background:transparent;
  }
  .sidebar-logo-icon{width:38px;height:38px;border-radius:11px;font-size:16px;}
  .sidebar-logo-text strong{font-size:14px;}.sidebar-logo-text small{font-size:10px;}
  .sidebar-nav{
    flex:1;min-width:0;display:flex;align-items:center;gap:2px;
    padding:0 14px;overflow-x:auto;overflow-y:hidden;
    scrollbar-width:none;
  }
  .sidebar-nav::-webkit-scrollbar{display:none;}
  .nav-item{
    width:auto;min-height:40px;flex:0 0 auto;margin:0;padding:8px 10px;
    gap:7px;border-radius:9px;font-size:12px;font-weight:600;white-space:nowrap;
  }
  .nav-icon{width:22px;height:22px;border-radius:6px;background:transparent;font-size:14px;}
  .nav-item:hover{background:#edf7f1;}.nav-item:hover .nav-icon{background:transparent;}
  .nav-item.active{background:#e5f5eb;color:#187445;box-shadow:inset 0 0 0 1px #c7e8d3;}
  .nav-item.active .nav-icon{background:#d4eedf;}.nav-item.active::before{display:none;}
  .nav-placeholder{opacity:.72;}.nav-arrow{display:none;}
  .sidebar-shortcuts{
    flex:0 0 auto;display:flex;align-items:center;gap:3px;margin:0;padding:0 14px;
    border:0;border-left:1px solid #e8eeea;background:transparent;
  }
  .shortcut-item{
    width:auto;margin:0;padding:7px 8px;border-radius:8px;font-size:11px;font-weight:600;color:#2a8755;
  }
  .shortcut-item span{font-size:14px;}
  .shortcut-item .si-plus{font-size:17px;}
  .shortcut-item:nth-of-type(n+2){display:none;}
  .sidebar-footer{display:none;}
  .sidebar .sidebar-footer{display:flex;flex:0 0 auto;align-items:center;justify-content:center;flex-wrap:nowrap;gap:0;padding:0 14px;border-top:0;border-left:1px solid #e8eeea;background:transparent;}
  .sidebar .sidebar-footer #conn-badge{flex:none;width:auto;min-width:110px;}
  .sidebar .sidebar-footer .clock,.sidebar .sidebar-footer .ver{display:none;}

  .page{
    margin-left:0!important;max-width:none!important;
    padding:98px 32px 34px;
  }
  .product-center-page,.newreq-page{margin-left:0!important;padding:98px 32px 34px;}
  .project-workspace{max-width:none;}
  .workspace-heading{max-width:none;}
  .project-workspace .table-wrap table{min-width:1160px;}
  .project-workspace #projects-tbody td:nth-child(2){min-width:250px;max-width:360px;}
  .project-workspace #projects-tbody td:nth-child(2) strong{max-width:330px;}
}
@media (min-width:769px) and (max-width:1280px){
  .sidebar-header{width:222px;flex-basis:222px;padding-left:16px;padding-right:16px;}
  .sidebar-logo-text small{display:none;}
  .nav-item{padding:8px 8px;font-size:11px;}
  .nav-label{max-width:72px;overflow:hidden;text-overflow:ellipsis;}
  .page,.product-center-page,.newreq-page{padding-left:20px;padding-right:20px;}
}

/* 日常跟进桌面顶部导航默认收起；悬停时显示，固定按钮可点击保持展开。 */
.workfollow-nav-reveal{display:none;}
@media (min-width:769px){
  .sidebar{transition:transform .22s ease;}
  body.workfollow-page-active.workfollow-nav-hidden .sidebar{transform:translateY(calc(-100% + 12px));}
  body.workfollow-page-active.workfollow-nav-hidden .sidebar:hover{transform:translateY(0);}
  .workfollow-nav-reveal{display:none;position:fixed;top:0;left:50%;z-index:220;min-width:82px;height:21px;padding:0 12px;transform:translateX(-50%);border:1px solid #c9dced;border-top:0;border-radius:0 0 10px 10px;background:rgba(238,247,255,.97);color:#245e91;box-shadow:0 3px 10px rgba(25,62,94,.13);font-family:inherit;font-size:11px;font-weight:650;line-height:20px;cursor:pointer;transition:height .16s ease,opacity .16s ease;}
  body.workfollow-page-active.workfollow-nav-hidden .workfollow-nav-reveal,
  body.workfollow-page-active.workfollow-nav-peek .workfollow-nav-reveal,
  body.workfollow-page-active.workfollow-nav-pinned .workfollow-nav-reveal{display:block;}
  body.workfollow-page-active.workfollow-nav-peek .workfollow-nav-reveal{opacity:.82;}
  body.workfollow-page-active.workfollow-nav-pinned .workfollow-nav-reveal{top:76px;}
}


/* 系统设置 · 精简分组工作台（v5.26） */
#page-settings{background:linear-gradient(180deg,#f7faf8 0,#fff 360px);}
#page-settings .settings-shell{max-width:1240px!important;padding:24px 0 42px!important;}
.settings-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 0 16px;padding:0 2px;}
.settings-eyebrow{margin:0 0 7px;color:#258455;font-size:10px;font-weight:800;letter-spacing:.16em;line-height:1;text-transform:uppercase;}
.settings-page-heading h1{margin:0;color:#15241b;font-size:27px;font-weight:760;letter-spacing:-.045em;line-height:1.12;}
.settings-page-heading p{margin:7px 0 0;color:#718077;font-size:13px;line-height:1.55;}
.settings-heading-status{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid #dce9e1;border-radius:999px;background:#fff;color:#66756c;font-size:11px;white-space:nowrap;}
.settings-heading-status span{width:6px;height:6px;border-radius:50%;background:#35a769;box-shadow:0 0 0 3px rgba(53,167,105,.12);}
.settings-quick-actions{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:0!important;margin-bottom:4px!important;padding:0!important;overflow:hidden;border:1px solid #dfe9e3;border-radius:12px;background:#fff;box-shadow:none;}
.settings-quick-actions .btn{min-height:42px;margin:0!important;padding:7px 11px!important;border:0!important;border-left:1px solid #edf2ee!important;border-radius:0!important;background:#fff!important;color:#405047!important;font-size:12px;font-weight:650;}
.settings-quick-actions .btn:first-child{border-left:0!important;}.settings-quick-actions .btn:hover{background:#f2faf5!important;color:#16693f;}
.settings-section-label{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:30px 0 10px;color:#24342b;}
.settings-section-label>div{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:780;}
.settings-section-label span{display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;border-radius:7px;background:#e6f5eb;color:#217d4f;font-size:10px;font-weight:850;letter-spacing:.04em;}
.settings-section-label small{color:#87938b;font-size:11px;font-weight:500;}
.settings-config-grid,.settings-data-grid,.settings-maintenance-grid{gap:12px!important;margin-bottom:0!important;}
.settings-shell .card{min-width:0;padding:16px!important;border:1px solid #e0e9e3!important;border-left-width:4px!important;border-radius:11px!important;background:#fff;box-shadow:0 2px 5px rgba(29,53,40,.025);transition:border-color .18s ease,box-shadow .18s ease;}
.settings-shell .card:hover{box-shadow:0 8px 20px rgba(29,53,40,.065);transform:none;}
.settings-shell .card-title{margin-bottom:11px!important;color:#1b3023!important;font-size:14px!important;font-weight:760!important;line-height:1.35;}
.settings-shell .card-title[onclick]{margin:-4px -3px 8px!important;padding:4px 3px;}
.settings-shell .card-title [id$="-arrow"]{padding:4px 7px;border-radius:999px;background:#f2f6f3;color:#738078!important;font-size:10px!important;font-weight:650;}
.settings-shell .form-input{border-color:#dce6df!important;border-radius:7px!important;}.settings-shell .btn{border-radius:7px;}
/* Cloud settings: unify the legacy cards and reduce the visual noise. */
#page-settings .settings-shell{max-width:1360px!important;padding-top:20px!important;}
#page-settings .settings-section-label{margin-top:24px;margin-bottom:10px;}
#page-settings .settings-shell .card{border-left-width:1px!important;border-color:#e5ebe7!important;border-radius:12px!important;box-shadow:0 1px 3px rgba(26,45,34,.035)!important;}
#page-settings .settings-shell .card:hover{box-shadow:0 5px 16px rgba(26,45,34,.055)!important;}
#page-settings .settings-section-label>div{font-size:14px;}
#page-settings .settings-section-label small{font-size:11px;}
.cloud-admin-section-label{margin-top:26px!important;}
.cloud-admin-panel{padding:0!important;overflow:hidden;}
.cloud-admin-details>summary{display:flex;align-items:center;gap:12px;padding:15px 18px;cursor:pointer;list-style:none;color:#20352a;font-size:14px;font-weight:750;}
.cloud-admin-details>summary::-webkit-details-marker{display:none;}
.cloud-admin-details>summary:after{content:'＋';margin-left:auto;color:#718078;font-size:17px;font-weight:500;}
.cloud-admin-details[open]>summary:after{content:'−';}
.cloud-admin-details>summary small{color:#7d8982;font-size:11px;font-weight:450;}
.cloud-admin-content{padding:0 18px 18px;border-top:1px solid #edf1ee;}
.cloud-admin-toolbar{display:flex;align-items:center;justify-content:space-between;margin:14px 0 10px;color:#415349;font-size:12px;font-weight:700;}
.cloud-admin-panel input:not([type=checkbox]),.cloud-admin-panel select{min-width:0;width:100%;padding:8px 10px;border:1px solid #dce5df;border-radius:7px;background:#fff;color:#28372e;font:inherit;}
.cloud-admin-panel button{white-space:nowrap;}
.cloud-admin-user{margin-top:8px;padding:0 11px;border:1px solid #e7ece8;border-radius:9px;background:#fff;}
.cloud-admin-user>summary{display:flex;align-items:center;gap:12px;min-height:42px;cursor:pointer;list-style:none;}
.cloud-admin-user>summary::-webkit-details-marker{display:none;}
.cloud-admin-user>summary span{color:#66736b;font-size:12px;}
.cloud-admin-user>summary em{margin-left:auto;color:#6b776f;font-size:11px;font-style:normal;}
.cloud-admin-user-body{padding:10px 0 12px;border-top:1px solid #edf1ee;}
.cloud-admin-edit-grid{display:grid;grid-template-columns:1fr 1fr auto auto;align-items:end;gap:8px;}
.cloud-admin-edit-grid>label{display:grid;gap:4px;color:#6c7971;font-size:11px;}
.cloud-admin-edit-grid .cloud-admin-download{display:flex;align-items:center;gap:5px;min-height:34px;white-space:nowrap;}
.cloud-admin-scopes{margin:10px 0;}
.cloud-admin-scopes>summary,.cloud-admin-grants-title{margin:8px 0;color:#53645a;font-size:11px;font-weight:650;cursor:pointer;}
.cloud-admin-scopes>div{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px;max-height:130px;overflow:auto;padding:8px;border:1px solid #edf1ee;border-radius:7px;}
.cloud-admin-scopes label{display:flex;gap:5px;align-items:center;min-width:0;color:#59675f;font-size:11px;}
.cloud-admin-grants{display:grid;gap:6px;}
.cloud-admin-grant{display:grid;grid-template-columns:minmax(100px,1fr) 120px auto auto;align-items:center;gap:7px;padding:6px 8px;border-radius:7px;background:#f7f9f7;}
.cloud-admin-grant span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#4d5b52;font-size:11px;}
.cloud-admin-user-actions{display:flex;gap:7px;margin-top:10px;padding-top:9px;border-top:1px solid #edf1ee;}
.cloud-admin-danger{color:#ad3434!important;}
.cloud-admin-muted{color:#929c96;font-size:11px;}
@media (min-width:980px){
  .settings-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .settings-config-grid>.card:nth-child(4){order:8;grid-column:1/-1;}
  .settings-config-grid>.card:nth-child(5){display:none!important;}
  .settings-config-grid>.card:nth-child(6){order:4;}.settings-config-grid>.card:nth-child(7){order:5;}.settings-config-grid>.card:nth-child(8){order:6;}
  .settings-data-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .settings-data-grid>.card:first-child{grid-column:span 2;}.settings-data-grid>.card:nth-child(2){grid-column:3;}.settings-data-grid>.card:nth-child(3),.settings-data-grid>.card:nth-child(4),.settings-data-grid>.card:nth-child(5){min-height:0;}
  .settings-maintenance-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}.settings-maintenance-grid>.card:nth-child(3){grid-column:1/-1;}
}
@media (max-width:979px) and (min-width:769px){.settings-config-grid,.settings-data-grid,.settings-maintenance-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}.settings-config-grid>.card:nth-child(4){grid-column:1/-1;}}
@media (max-width:768px){
  #page-settings .settings-shell{padding:16px 0 28px!important;}.settings-page-heading{margin:0 0 12px;}.settings-page-heading h1{font-size:20px;}.settings-page-heading p{display:none;}.settings-heading-status{display:none;}
  .settings-quick-actions{grid-template-columns:1fr 1fr!important;}.settings-quick-actions .btn{min-height:39px;font-size:11px;}.settings-quick-actions .btn:nth-child(3){border-left:0!important;border-top:1px solid #edf2ee!important;}.settings-quick-actions .btn:nth-child(4){border-top:1px solid #edf2ee!important;}
  .settings-section-label{display:block;margin:22px 0 8px;}.settings-section-label small{display:block;margin:4px 0 0 31px;line-height:1.4;}
  .settings-config-grid,.settings-data-grid,.settings-maintenance-grid{grid-template-columns:1fr!important;gap:10px!important;}.settings-config-grid>.card:nth-child(4){grid-column:auto;}
  .settings-shell .card{padding:14px!important;border-radius:10px!important;}.settings-shell .card-title{margin-bottom:10px!important;}
  .cloud-admin-details>summary{align-items:flex-start;flex-wrap:wrap;padding:13px;}.cloud-admin-details>summary small{width:100%;}
  .cloud-admin-content{padding:0 12px 13px;}.cloud-admin-edit-grid{grid-template-columns:1fr 1fr;}.cloud-admin-edit-grid .cloud-admin-download{grid-column:1;}
  .cloud-admin-grant{grid-template-columns:minmax(80px,1fr) 100px auto;}.cloud-admin-grant .cloud-admin-danger{grid-column:3;}
  .cloud-admin-user-actions{flex-wrap:wrap;}
}

/* ═══════════════════════════════════════════
   新品开发 · 分区录入工作台（v5.26）
   ═══════════════════════════════════════════ */
@media (min-width:769px){
  .newreq-shell{max-width:1180px;}
}
.newreq-card{max-width:1180px!important;}
.newreq-card .newreq-form-intro{display:none;}
.newreq-card .newreq-section-heading{margin:14px 0 8px;padding-top:12px;}
.newreq-card .newreq-section-heading small{display:none;}
.newreq-card .form-row{gap:12px;margin-bottom:10px;}
.newreq-card .form-input{min-height:38px;padding:6px 10px;}
.newreq-card .form-label{min-height:15px;font-size:11px;}
.newreq-card .form-hint{display:none;}
.newreq-card .newreq-factory-row{grid-template-columns:repeat(4,minmax(0,1fr));}
.newreq-card .newreq-person-row{grid-template-columns:repeat(3,minmax(0,1fr));}
.newreq-optional-section{margin-top:12px;border:1px solid #e4ece7;border-radius:9px;background:#fbfdfc;}
.newreq-optional-section summary{display:flex;align-items:center;gap:8px;min-height:34px;padding:0 12px;cursor:pointer;color:#53655b;font-size:12px;font-weight:700;list-style:none;}
.newreq-optional-section summary::-webkit-details-marker{display:none;}
.newreq-optional-section summary::before{content:'›';font-size:18px;line-height:1;transition:transform .15s ease;}
.newreq-optional-section[open] summary::before{transform:rotate(90deg);}
.newreq-optional-section summary small{font-weight:400;color:#91a098;font-size:10px;}
.newreq-optional-section .form-row{margin:0 12px 10px;}
.newreq-optional-section .form-row.full{margin-top:10px;}
.newreq-card{padding:24px!important;}
.newreq-card-title{margin-bottom:0!important;}
.newreq-form{padding-top:18px;}
.newreq-form-intro{display:flex;align-items:center;gap:9px;margin:0 0 22px;padding:10px 12px;border:1px solid #dcece2;border-radius:10px;background:linear-gradient(90deg,#f5fbf7,#fbfdfc);color:#66776d;font-size:12px;line-height:1.5;}
.newreq-form-intro b{color:#d74c45;}
.newreq-form-intro-icon{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;border-radius:7px;background:#dff4e6;color:#238553;font-size:12px;flex:0 0 auto;}
.newreq-section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:25px 0 11px;padding-top:20px;border-top:1px solid #edf2ee;}
.newreq-form-intro + .newreq-section-heading{margin-top:0;padding-top:0;border-top:0;}
.newreq-section-heading>div{display:flex;align-items:baseline;gap:9px;min-width:0;}
.newreq-section-no{display:inline-flex;align-items:center;justify-content:center;width:24px;height:20px;border-radius:6px;background:#eaf6ef;color:#218052;font-size:10px;font-weight:800;letter-spacing:.04em;flex:0 0 auto;}
.newreq-section-heading strong{color:#203228;font-size:14px;font-weight:750;white-space:nowrap;}
.newreq-section-heading small{color:#91a098;font-size:11px;line-height:1.4;}
.newreq-section-required{padding:4px 8px;border-radius:999px;background:#fff4ec;color:#c36d35;font-size:10px;font-weight:650;white-space:nowrap;}
.newreq-card .form-row{gap:18px;margin-bottom:14px;}
.newreq-card .form-row.triple,.newreq-card .newreq-date-row{grid-template-columns:repeat(3,minmax(0,1fr));}
.newreq-card .form-group{gap:7px;}
.newreq-card .form-label{display:flex;align-items:center;min-height:17px;color:#425249;font-size:12px;}
.newreq-card .form-input{min-height:42px;padding:8px 12px;border-color:#d9e5de;background:#fcfefd;font-size:13px;}
.newreq-card .form-input:hover{border-color:#aacdb8;background:#fff;}
.newreq-card .form-hint{margin-top:0;min-height:15px;color:#8a9990;font-size:10px;line-height:1.5;}
.newreq-card textarea.form-input{min-height:76px;line-height:1.55;}
.newreq-definition-row,.newreq-factory-row,.newreq-date-row{padding:15px;border:1px solid #e7eee9;border-radius:12px;background:#fcfefd;}
.newreq-factory-row .form-hint{color:#a07842;}
#prod-estimate-row{margin:4px 0 0!important;padding:13px 15px!important;border:1px solid #b9dec8!important;border-radius:11px!important;background:linear-gradient(105deg,#effaf3,#f8fcf9)!important;color:#28784d!important;}
#prod-estimate-row .form-group{gap:4px!important;}
#prod-estimate-row .form-label{color:#28784d!important;font-size:12px!important;}
#prod-estimate-row #prod-estimate-text{font-size:14px!important;font-weight:650;color:#1e6d43;}
#prod-estimate-row .form-hint{color:#638273!important;}
.newreq-section-heading-last{margin-top:25px;}
.newreq-action-bar{display:flex!important;align-items:center;gap:8px;padding:15px 0 0!important;margin-top:23px!important;border-top:1px solid #dfe9e3!important;}
.newreq-action-tip{display:flex;flex-direction:column;gap:2px;margin-right:auto;color:#8b9991;font-size:10px;line-height:1.35;}
.newreq-action-tip b{color:#2c4235;font-size:12px;}
.newreq-action-bar .btn{min-height:39px;padding-left:13px;padding-right:13px;font-size:12px;}
.newreq-action-bar .newreq-draft-btn{background:#fff8e8!important;border-color:#f5d690!important;color:#aa7423!important;}
@media (max-width:768px){
  .newreq-card{padding:15px!important;}
  .newreq-form{padding-top:14px;}
  .newreq-form-intro{align-items:flex-start;margin-bottom:16px;padding:9px 10px;font-size:11px;}
  .newreq-section-heading{align-items:flex-start;margin:20px 0 9px;padding-top:16px;}
  .newreq-section-heading>div{align-items:flex-start;flex-wrap:wrap;gap:5px 8px;}
  .newreq-section-heading small{width:100%;padding-left:32px;font-size:10px;}
  .newreq-section-required{margin-top:1px;}
  .newreq-card .form-row.triple,.newreq-card .newreq-date-row{grid-template-columns:1fr;}
  .newreq-card .newreq-factory-row,.newreq-card .newreq-person-row{grid-template-columns:1fr;}
  .newreq-definition-row,.newreq-factory-row,.newreq-date-row{gap:11px!important;padding:11px;}
  .newreq-card .form-input{min-height:40px;}
  .newreq-action-bar{align-items:stretch!important;flex-wrap:wrap;gap:8px!important;}
  .newreq-action-tip{width:100%;margin:0 0 3px;}
  .newreq-action-bar .btn{flex:1 1 calc(50% - 5px);padding-left:8px;padding-right:8px;}
}


/* ═══════════════════════════════════════════
   数据备份与导出 · 精准筛选工作台（v5.27）
   ═══════════════════════════════════════════ */
.export-data-card{min-width:0!important;}
.export-card-title{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px;margin-bottom:5px!important;}
.export-card-status{padding:4px 8px;border:1px solid #cfe8d6;border-radius:999px;background:#f5fcf7;color:#348a50;font-size:10px;font-weight:650;white-space:nowrap;}
.export-card-desc{margin:0 0 12px;color:#7b8b81;font-size:11px;line-height:1.55;}
.export-action-row{display:flex;gap:8px;margin-bottom:12px;}
.export-action-row .btn{min-height:34px;flex:1;border-radius:8px;font-size:12px;}
.export-filter-section{padding:10px;border:1px solid #deece2;border-radius:10px;background:#fbfefc;}
.export-filter-section + .export-filter-section{margin-top:9px;}
.export-filter-section-advanced{background:#fff;}
.export-filter-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;color:#3c5344;font-size:11px;font-weight:700;}
.export-filter-caption small{color:#8b9b90;font-size:10px;font-weight:500;}
.export-filter-grid{display:grid;gap:7px;}
.export-date-grid{grid-template-columns:minmax(135px,1.2fr) minmax(0,1fr) auto minmax(0,1fr);}
.export-project-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.export-filter-grid input,.export-filter-grid select{width:100%;min-width:0;height:33px;padding:6px 8px;border:1px solid #dce8df;border-radius:7px;background:#fff;color:#405247;font-family:inherit;font-size:11px;outline:0;}
.export-filter-grid input:focus,.export-filter-grid select:focus{border-color:#53a974;box-shadow:0 0 0 3px rgba(53,157,100,.11);}
.export-date-separator{align-self:center;color:#6c8173;font-size:11px;font-weight:650;}
.export-quick-ranges{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}
.export-quick-ranges button,.export-reset-btn{padding:3px 7px;border:1px solid #cfe2d4;border-radius:6px;background:#fff;color:#4e7960;font-family:inherit;font-size:10px;cursor:pointer;}
.export-quick-ranges button:hover,.export-reset-btn:hover{border-color:#66ab7d;background:#f1fbf4;color:#257345;}
.export-count-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:9px;border-top:1px solid #e7f0e9;color:#378c54;font-size:11px;line-height:1.4;}
.export-count-row b{font-size:13px;}
.export-reset-btn{flex:0 0 auto;}
@media (max-width:1100px) and (min-width:769px){.export-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:768px){
  .export-action-row{flex-direction:column;}
  .export-date-grid,.export-project-grid{grid-template-columns:1fr;}
  .export-date-separator{display:none;}
  .export-filter-grid input,.export-filter-grid select{height:36px;font-size:12px;}
}

/* 日常跟进 · 清晰的任务工作台（v5.29） */
.workfollow-page{max-width:none!important}.workfollow-shell{max-width:1480px;margin:0 auto}.workfollow-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:2px 0 18px}.workfollow-heading h1{margin:0;color:#17251e;font-size:25px;font-weight:750;letter-spacing:-.035em}.workfollow-heading p{margin:7px 0 0;color:#77837c;font-size:13px}.workfollow-live{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid #dce9e1;border-radius:999px;background:#fff;color:#6f7e75;font-size:11px}.workfollow-live i{width:6px;height:6px;border-radius:50%;background:#35a769;box-shadow:0 0 0 3px rgba(53,167,105,.12)}
.workfollow-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.workfollow-stat{position:relative;min-height:106px;padding:15px 16px;overflow:hidden;border:1px solid #dfeae3;border-radius:13px;background:linear-gradient(145deg,#fff,#f7fcf8);box-shadow:0 7px 20px rgba(29,53,40,.045)}.workfollow-stat:after{content:'';position:absolute;right:-14px;bottom:-21px;width:78px;height:78px;border-radius:50%;background:rgba(43,138,90,.08)}.workfollow-stat small,.workfollow-stat em,.workfollow-stat strong{position:relative;z-index:1;display:block}.workfollow-stat small{color:#6f7e75;font-size:12px;font-weight:650}.workfollow-stat strong{margin:7px 0 3px;color:#1b5e3a;font-size:30px;font-weight:780;letter-spacing:-.045em;line-height:1}.workfollow-stat em{color:#87958d;font-size:11px;font-style:normal}.workfollow-stat.overdue{border-color:#f2d5d2;background:linear-gradient(145deg,#fff,#fff7f6)}.workfollow-stat.overdue strong{color:#be2830}.workfollow-stat.soon{border-color:#f1e0bc;background:linear-gradient(145deg,#fff,#fffcf4)}.workfollow-stat.soon strong{color:#b77914}.workfollow-stat.done strong{color:#4c7659}
.workfollow-workspace{margin:0!important;padding:0!important;overflow:hidden;border:1px solid #dfe9e3!important;border-radius:15px!important;background:#fff;box-shadow:0 12px 30px rgba(29,53,40,.05)!important}.workfollow-workspace>.card-title{margin:0!important;padding:16px 18px 13px;border-bottom:1px solid #e8efea;color:#1e3026!important;font-size:15px!important}.workfollow-workspace>.card-title small{margin-left:7px;color:#87958d;font-size:11px;font-weight:500}.workfollow-workspace>.card-title .btn-primary{min-height:36px;border-radius:8px;background:linear-gradient(135deg,#277f51,#369d68);border-color:#277f51;box-shadow:0 6px 13px rgba(35,123,78,.18);font-weight:650}.workfollow-filters{display:flex;align-items:center;gap:8px;padding:12px 18px;background:#fbfdfc;border-bottom:1px solid #edf2ee}.workfollow-filters input,.workfollow-filters select{height:36px!important;border:1px solid #dce7df!important;border-radius:8px!important;background:#fff;color:#43534a;font-family:inherit;font-size:12px!important;outline:0}.workfollow-filters input{width:min(360px,42vw);padding:7px 11px}.workfollow-filters select{min-width:112px;padding:6px 10px}.work-filter-reset{height:30px;padding:0 9px;border:1px solid #d7e6dc;border-radius:7px;background:#fff;color:#578168;font:11px inherit;cursor:pointer;white-space:nowrap}.work-filter-context{padding:9px 18px;color:#7f8e85;font-size:11px;background:#f7faf8;border-bottom:1px solid #edf2ee}.work-filter-context:before{content:'任务视图';margin-right:8px;color:#3d5b49;font-weight:750}.workfollow-task-list{padding:16px 18px 20px;background:linear-gradient(180deg,#fff,#fbfdfc)}
.workfollow-page{background:#f5f5f7}.workfollow-shell{max-width:1180px}.workfollow-apple-heading{align-items:center;margin:0 0 13px}.workfollow-apple-heading h1{font-size:28px;font-weight:760;letter-spacing:-.045em}.workfollow-apple-heading p{margin:4px 0 0;color:#8d8d93;font-size:13px}.workfollow-apple-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.workfollow-apple-summary .workfollow-stat{min-height:82px;padding:13px 15px;border-color:rgba(60,60,67,.12);border-radius:13px;background:rgba(255,255,255,.78);box-shadow:0 3px 11px rgba(0,0,0,.035);text-align:left;cursor:pointer;transition:.16s ease}.workfollow-apple-summary .workfollow-stat:after{display:none}.workfollow-apple-summary .workfollow-stat:hover{border-color:#8cb7ff;box-shadow:0 6px 15px rgba(0,86,200,.1);transform:translateY(-1px)}.workfollow-apple-summary .workfollow-stat small{color:#77777e;font-size:12px}.workfollow-apple-summary .workfollow-stat strong{margin:5px 0 2px;color:#0a84ff;font-size:26px}.workfollow-apple-summary .workfollow-stat em{color:#97979d}.workfollow-apple-summary .workfollow-stat.overdue strong{color:#ff453a}.workfollow-apple-summary .workfollow-stat.soon strong{color:#ff9f0a}.workfollow-apple-summary .workfollow-stat.done strong{color:#30a46c}.workfollow-workspace{position:relative;border-color:rgba(60,60,67,.12)!important;border-radius:14px!important;background:rgba(255,255,255,.86)!important;box-shadow:0 8px 24px rgba(0,0,0,.045)!important}.workfollow-list-title{padding:14px 17px!important;border:0!important;background:transparent}.workfollow-list-title>span{font-size:18px;font-weight:730}.workfollow-list-title>div{display:flex;align-items:center;gap:8px}.workfollow-list-title .btn-primary{min-height:34px!important;padding:7px 12px!important;border:0!important;border-radius:8px!important;background:#0a84ff!important;box-shadow:none!important}.work-filter-toggle{height:34px;padding:0 11px;border:0;border-radius:8px;background:#f0f0f5;color:#3a3a3c;font:600 12px inherit;cursor:pointer}.workfollow-filters{display:none;padding:10px 16px;border-top:1px solid rgba(60,60,67,.09);background:#fafafa}.workfollow-filters.show{display:flex}.workfollow-filters input,.workfollow-filters select{border-color:rgba(60,60,67,.16)!important;border-radius:8px!important;background:#fff}.work-filter-context{min-height:0;padding:0 17px 10px;border:0;background:transparent;color:#8e8e93;font-size:11px}.work-filter-context:before{display:none}.workfollow-task-list{padding:0 12px 14px;background:transparent}.apple-task-section{margin:0 0 15px}.apple-task-section>header{display:flex;align-items:center;justify-content:space-between;padding:4px 6px 8px;color:#6e6e73;font-size:13px;font-weight:720}.apple-task-section>header b{min-width:21px;padding:2px 7px;border-radius:999px;background:#e9e9ee;color:#84848a;font-size:11px;text-align:center}.apple-task-section.today>header{color:#ff453a}.apple-task-section.soon>header{color:#ff9f0a}.apple-task-section.future>header{color:#0a84ff}.apple-task-section.completed>header{color:#30a46c;cursor:pointer}.apple-task-group{overflow:hidden;border:1px solid rgba(60,60,67,.12);border-radius:12px;background:#fff}.apple-task-item{display:grid;grid-template-columns:28px minmax(0,1fr) auto 26px;align-items:center;gap:9px;min-height:61px;padding:9px 11px;border-bottom:1px solid rgba(60,60,67,.11);cursor:pointer;transition:background .14s}.apple-task-item:last-child{border-bottom:0}.apple-task-item:hover{background:#f7f9fc}.apple-task-item.is-overdue{background:#fffafa}.apple-task-check{width:21px;height:21px;padding:0;border:1.5px solid #c7c7cc;border-radius:50%;background:#fff;cursor:pointer}.apple-task-check:hover{border-color:#30a46c;background:#e9f8ef}.apple-task-main{min-width:0}.apple-task-title{overflow:hidden;color:#1c1c1e;font-size:14px;font-weight:650;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.apple-task-note{display:flex;align-items:center;gap:6px;min-width:0;margin-top:4px;color:#8e8e93;font-size:11px}.apple-task-note span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apple-task-category{padding:2px 6px;border-radius:5px;background:#f0f0f5;color:#707078;font-size:10px;white-space:nowrap}.apple-task-date{font-size:11px;font-weight:650;white-space:nowrap}.apple-task-date.today{color:#ff453a}.apple-task-date.soon{color:#d88200}.apple-task-date.future{color:#0a84ff}.apple-task-date.done{color:#30a46c}.apple-task-more{width:25px;height:25px;padding:0;border:0;border-radius:50%;background:transparent;color:#8e8e93;font-size:18px;line-height:1;cursor:pointer}.apple-task-more:hover{background:#e9e9ee;color:#3a3a3c}.apple-task-empty{padding:27px 15px;color:#8e8e93;font-size:12px;text-align:center}.apple-task-menu{position:fixed;z-index:1250;display:grid;min-width:125px;overflow:hidden;border:1px solid rgba(60,60,67,.16);border-radius:10px;background:#fff;box-shadow:0 10px 26px rgba(0,0,0,.16)}.apple-task-menu button{padding:9px 11px;border:0;border-bottom:1px solid #eeeef2;background:#fff;color:#35353a;font:12px inherit;text-align:left;cursor:pointer}.apple-task-menu button:last-child{border-bottom:0;color:#d43b32}.apple-task-menu button:hover{background:#f4f4f7}.workfollow-fab{display:none}
@media (min-width:769px){.workfollow-page{padding:98px 30px 34px!important;margin-left:0!important}}@media (max-width:768px){.workfollow-page{padding:12px!important}.workfollow-heading{align-items:flex-start;margin-bottom:13px}.workfollow-heading h1{font-size:20px}.workfollow-heading p{font-size:11px}.workfollow-live{display:none}.workfollow-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:11px}.workfollow-stat{min-height:86px;padding:11px 12px;border-radius:11px}.workfollow-stat strong{margin:5px 0 2px;font-size:25px}.workfollow-stat small{font-size:11px}.workfollow-stat em{font-size:10px}.workfollow-workspace{border-radius:12px!important}.workfollow-workspace>.card-title{align-items:flex-start!important;padding:13px 12px 10px!important}.workfollow-workspace>.card-title small{display:block;margin:3px 0 0!important}.workfollow-workspace>.card-title .btn-primary{padding:7px 10px!important;font-size:11px!important;white-space:nowrap}.workfollow-filters{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:10px 12px}.workfollow-filters input{grid-column:1/-1;width:100%}.workfollow-filters select{width:100%;min-width:0}.work-filter-reset{height:34px}.work-filter-context{padding:8px 12px;font-size:10px}.workfollow-task-list{padding:12px}#work-task-list>div>div[style*="grid-template-columns"]{grid-template-columns:1fr!important;gap:9px!important}#work-task-list div[style*="padding:16px 16px 12px 20px"]{padding:13px 12px 10px 17px!important}#work-task-list div[style*="gap:16px;font-size:12px"]{display:grid!important;grid-template-columns:1fr 1fr;gap:5px 8px!important;align-items:start!important}#work-task-list div[style*="gap:16px;font-size:12px"]>span:last-child{grid-column:1/-1;margin-left:0!important}}
@media(max-width:768px){.workfollow-page{background:#f5f5f7}.workfollow-apple-heading{margin:2px 2px 12px}.workfollow-apple-heading h1{font-size:25px}.workfollow-apple-heading p{font-size:11px}.workfollow-apple-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.workfollow-apple-summary .workfollow-stat{min-height:70px;padding:10px 12px}.workfollow-apple-summary .workfollow-stat strong{font-size:23px}.workfollow-list-title{padding:12px!important}.workfollow-list-title>span{font-size:16px}.workfollow-list-title .btn-primary{font-size:11px!important}.workfollow-task-list{padding:0 9px 15px}.workfollow-filters.show{display:grid}.apple-task-section{margin-bottom:12px}.apple-task-section>header{padding:3px 4px 7px}.apple-task-item{grid-template-columns:25px minmax(0,1fr) auto 24px;gap:7px;min-height:58px;padding:9px}.apple-task-title{font-size:13px}.apple-task-note{font-size:10px}.apple-task-date{font-size:10px}.apple-task-more{font-size:16px}.workfollow-fab{position:fixed;right:19px;bottom:20px;z-index:500;display:grid;width:51px;height:51px;place-items:center;border:0;border-radius:50%;background:#0a84ff;color:#fff;font-size:27px;line-height:1;box-shadow:0 9px 22px rgba(10,132,255,.3);cursor:pointer}}
/* 日常跟进 · 双栏提醒事项布局 */
.workfollow-layout{display:grid;grid-template-columns:224px minmax(0,1fr);gap:16px;align-items:start}.workfollow-sidebar{position:sticky;top:92px;padding:14px 11px;border:1px solid rgba(60,60,67,.12);border-radius:14px;background:rgba(255,255,255,.82);box-shadow:0 8px 24px rgba(0,0,0,.04)}.workfollow-sidebar .workfollow-heading{margin:2px 5px 13px}.workfollow-sidebar .workfollow-apple-heading h1{font-size:22px}.workfollow-sidebar .workfollow-apple-heading p{line-height:1.5}.workfollow-sidebar .workfollow-apple-summary{display:grid;grid-template-columns:1fr;gap:4px;margin:0}.workfollow-sidebar .workfollow-stat{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;min-height:0;padding:9px 10px;border:0;border-radius:9px;background:transparent;box-shadow:none}.workfollow-sidebar .workfollow-stat:hover{background:#f0f6ff;box-shadow:none;transform:none}.workfollow-sidebar .workfollow-stat.active{background:#eaf3ff}.workfollow-sidebar .workfollow-stat small{grid-column:1;grid-row:1;color:#3a3a3c;font-size:13px}.workfollow-sidebar .workfollow-stat strong{grid-column:2;grid-row:1/3;align-self:center;margin:0;color:#0a84ff;font-size:18px}.workfollow-sidebar .workfollow-stat em{grid-column:1;grid-row:2;color:#96969c;font-size:10px}.workfollow-sidebar .workfollow-stat.overdue strong{color:#ff453a}.workfollow-sidebar .workfollow-stat.soon strong{color:#ff9f0a}.workfollow-sidebar .workfollow-stat.done strong{color:#30a46c}.workfollow-sidebar-add{width:100%;margin-top:14px;padding:10px;border:0;border-radius:9px;background:#0a84ff;color:#fff;font:650 13px inherit;cursor:pointer;box-shadow:0 5px 12px rgba(10,132,255,.2)}.workfollow-main{min-width:0}.workfollow-main .workfollow-workspace{min-height:calc(100vh - 132px)}
.workfollow-theme-toggle{display:flex;width:100%;align-items:center;gap:8px;margin-top:7px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:#6e6e73;font:12px inherit;text-align:left;cursor:pointer}.workfollow-theme-toggle:hover{background:#f0f0f5}.workfollow-theme-toggle span{font-size:16px}.workfollow-theme-toggle b{font-weight:600}
.workfollow-apple-heading p:empty{display:none}
.workfollow-dark{background:#1c1c1e!important}.workfollow-dark .workfollow-sidebar{border-color:#36363a;background:#252527;box-shadow:none}.workfollow-dark .workfollow-sidebar .workfollow-apple-heading h1{color:#f5f5f7}.workfollow-dark .workfollow-sidebar .workfollow-apple-heading p{color:#98989f}.workfollow-dark .workfollow-sidebar .workfollow-stat:hover,.workfollow-dark .workfollow-sidebar .workfollow-stat.active{background:#363638}.workfollow-dark .workfollow-sidebar .workfollow-stat small{color:#f0f0f5}.workfollow-dark .workfollow-sidebar .workfollow-stat em{color:#a2a2a8}.workfollow-dark .workfollow-theme-toggle{color:#c7c7cc}.workfollow-dark .workfollow-theme-toggle:hover{background:#363638}.workfollow-dark .workfollow-workspace{border-color:#36363a!important;background:#252527!important;box-shadow:none!important}.workfollow-dark .workfollow-list-title{color:#f5f5f7!important}.workfollow-dark .work-filter-toggle{background:#3a3a3c;color:#f5f5f7}.workfollow-dark .workfollow-filters{border-color:#36363a;background:#2c2c2e}.workfollow-dark .workfollow-filters input,.workfollow-dark .workfollow-filters select{border-color:#49494d!important;background:#1c1c1e;color:#f5f5f7}.workfollow-dark .work-filter-context{color:#98989f}.workfollow-dark .apple-task-section>header{color:#b3b3b9}.workfollow-dark .apple-task-section>header b{background:#3a3a3c;color:#d0d0d5}.workfollow-dark .apple-task-section.today>header{color:#ff6961}.workfollow-dark .apple-task-section.soon>header{color:#ffb340}.workfollow-dark .apple-task-section.future>header{color:#4ba3ff}.workfollow-dark .apple-task-section.completed>header{color:#4fca82}.workfollow-dark .apple-task-group{border-color:#3a3a3c;background:#252527}.workfollow-dark .apple-task-item{border-color:#39393d}.workfollow-dark .apple-task-item:hover{background:#303034}.workfollow-dark .apple-task-item.is-overdue{background:#302323}.workfollow-dark .apple-task-title{color:#f5f5f7}.workfollow-dark .apple-task-note{color:#96969c}.workfollow-dark .apple-task-category{background:#3a3a3c;color:#d1d1d6}.workfollow-dark .apple-task-check{border-color:#77777e;background:#252527}.workfollow-dark .apple-task-check:hover{border-color:#4fca82;background:#20382a}.workfollow-dark .apple-task-menu{border-color:#4a4a4f;background:#2c2c2e;box-shadow:0 12px 28px rgba(0,0,0,.45)}.workfollow-dark .apple-task-menu button{border-color:#414146;background:#2c2c2e;color:#f5f5f7}.workfollow-dark .apple-task-menu button:hover{background:#3a3a3c}.workfollow-dark .apple-task-menu button:last-child{color:#ff6961}.workfollow-dark .apple-task-empty{color:#a2a2a8}
@media(max-width:768px){.workfollow-layout{display:block}.workfollow-sidebar{position:static;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.workfollow-sidebar .workfollow-heading{margin:2px 2px 12px}.workfollow-sidebar .workfollow-apple-heading h1{font-size:25px}.workfollow-sidebar .workfollow-apple-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:11px}.workfollow-sidebar .workfollow-stat{display:block;min-height:70px;padding:10px 12px;border:1px solid rgba(60,60,67,.12);border-radius:11px;background:rgba(255,255,255,.78)}.workfollow-sidebar .workfollow-stat strong{margin:5px 0 2px;font-size:23px}.workfollow-sidebar .workfollow-stat small,.workfollow-sidebar .workfollow-stat em{display:block}.workfollow-sidebar-add{display:none}.workfollow-main .workfollow-workspace{min-height:0}}
/* 资源中心 · 工厂资料库（v5.30） */
.resource-page{max-width:none!important}.resource-shell{max-width:1480px;margin:0 auto}.resource-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:2px 0 18px}.resource-heading h1{margin:0;color:#17251e;font-size:25px;font-weight:750;letter-spacing:-.035em}.resource-heading p{margin:7px 0 0;color:#77837c;font-size:13px}.resource-heading-actions{display:flex;gap:8px}.resource-heading-actions .btn{min-height:36px;border-radius:8px}.resource-heading-actions .btn-primary{background:linear-gradient(135deg,#277f51,#369d68);border-color:#277f51;box-shadow:0 6px 13px rgba(35,123,78,.18)}.resource-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.resource-stats>div{min-height:98px;padding:14px 16px;border:1px solid #dfeae3;border-radius:13px;background:linear-gradient(145deg,#fff,#f7fcf8);box-shadow:0 7px 20px rgba(29,53,40,.045)}.resource-stats small,.resource-stats strong,.resource-stats span{display:block}.resource-stats small{color:#6f7e75;font-size:12px;font-weight:650}.resource-stats strong{margin:7px 0 3px;color:#1b5e3a;font-size:28px;line-height:1}.resource-stats span{color:#87958d;font-size:11px}.resource-workspace{margin:0!important;padding:0!important;overflow:hidden;border:1px solid #dfe9e3!important;border-radius:15px!important;box-shadow:0 12px 30px rgba(29,53,40,.05)!important}.resource-search-bar{display:flex;gap:8px;padding:14px 16px;border-bottom:1px solid #e9f0eb;background:#fbfdfc}.resource-search-box{display:flex;align-items:center;gap:7px;flex:1;min-width:200px;max-width:500px;padding:0 11px;border:1px solid #dce7df;border-radius:8px;background:#fff;color:#6b8173}.resource-search-box input,.resource-search-bar select{height:36px;border:0;background:transparent;color:#43534a;font:12px inherit;outline:0}.resource-search-box input{width:100%}.resource-search-bar select{min-width:118px;padding:0 8px;border:1px solid #dce7df;border-radius:8px;background:#fff}.resource-result-note{padding:9px 16px;border-bottom:1px solid #edf2ee;background:#f7faf8;color:#7f8e85;font-size:11px}.resource-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px}.resource-card{min-width:0;padding:14px;border:1px solid #e2ebe5;border-radius:12px;background:linear-gradient(145deg,#fff,#fbfdfc);cursor:pointer;transition:.18s}.resource-card:hover{border-color:#7ab993;box-shadow:0 10px 22px rgba(29,83,51,.1);transform:translateY(-2px)}.resource-card-top,.resource-card-bottom{display:flex;justify-content:space-between;gap:8px}.resource-card-name{color:#203128;font-size:14px;font-weight:750;line-height:1.4}.resource-card-code{margin-top:3px;color:#9aa79f;font-size:10px}.resource-tags{display:flex;gap:4px;align-items:flex-start}.resource-rating,.resource-oem{padding:3px 6px;border-radius:5px;font-size:10px;white-space:nowrap}.rating-A{background:#e5f6ea;color:#23814e}.rating-B{background:#fff5e5;color:#b36f16}.rating-C{background:#f5f5f5;color:#737373}.resource-oem.oem-yes{background:#e9f4ff;color:#2374b8}.resource-oem.oem-no{background:#fff0ef;color:#bf3a32}.resource-oem.oem-pending{background:#f5f5f5;color:#707a74}.resource-product{min-height:42px;margin:13px 0 10px;color:#44554b;font-size:12px;line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.resource-meta{display:flex;flex-direction:column;gap:4px;padding:9px 0;border-top:1px solid #edf2ee;color:#77877d;font-size:11px}.resource-card-bottom{align-items:center;padding-top:9px;color:#87958d;font-size:10px}.resource-card-bottom span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-card-bottom button{border:0;background:transparent;color:#277f51;font:11px inherit;cursor:pointer;white-space:nowrap}.resource-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:54px 20px;color:#849188;font-size:12px}.resource-empty b{color:#405449;font-size:14px}.resource-detail-modal{width:min(760px,94vw)!important}.resource-detail-sub{padding:0 24px 13px;color:#829087;font-size:11px}.resource-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:0 24px 18px;max-height:60vh;overflow:auto}.resource-detail-grid>div{padding:10px;border:1px solid #e8eeea;border-radius:8px;background:#fbfdfc}.resource-detail-grid small{color:#819087;font-size:10px}.resource-detail-grid p{margin:4px 0 0;color:#405147;font-size:12px;white-space:pre-wrap;line-height:1.55}.resource-manual-modal{width:min(680px,94vw)!important}.resource-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 24px 18px}.resource-form-grid label{display:flex;flex-direction:column;gap:6px;color:#52635a;font-size:12px}.resource-form-grid b{color:#d74c45}.resource-form-grid .span-2{grid-column:1/-1}.resource-form-grid textarea{min-height:70px;resize:vertical}
@media(min-width:769px){.resource-page{padding:98px 30px 34px!important;margin-left:0!important}}@media(max-width:960px) and (min-width:769px){.resource-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.resource-page{padding:12px!important}.resource-heading{align-items:flex-start;margin-bottom:13px}.resource-heading h1{font-size:20px}.resource-heading p{font-size:11px}.resource-heading-actions{flex-shrink:0}.resource-heading-actions .btn{padding:7px 9px!important;font-size:11px}.resource-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:11px}.resource-stats>div{min-height:82px;padding:11px 12px;border-radius:11px}.resource-stats strong{margin:5px 0 2px;font-size:23px}.resource-stats small{font-size:11px}.resource-stats span{font-size:10px}.resource-search-bar{display:grid;grid-template-columns:1fr 1fr;padding:10px 12px}.resource-search-box{grid-column:1/-1;max-width:none}.resource-search-bar select{width:100%;min-width:0}.resource-search-bar .work-filter-reset{height:36px}.resource-result-note{padding:8px 12px;font-size:10px}.resource-list{grid-template-columns:1fr;gap:9px;padding:12px}.resource-detail-grid,.resource-form-grid{grid-template-columns:1fr;padding-left:16px;padding-right:16px}.resource-form-grid .span-2{grid-column:auto}.resource-detail-sub{padding-left:16px}.resource-detail-modal,.resource-manual-modal{width:calc(100vw - 28px)!important}.resource-card{padding:13px}}
.resource-pager{display:flex;justify-content:center;align-items:center;gap:6px;padding:0 16px 18px;color:#7d8c83;font-size:11px}.resource-pager button{min-width:30px;height:29px;border:1px solid #dce7df;border-radius:7px;background:#fff;color:#476250;cursor:pointer;font:11px inherit}.resource-pager button.active{border-color:#277f51;background:#277f51;color:#fff}.resource-pager button:disabled{opacity:.42;cursor:not-allowed}.resource-pager span{margin-left:6px}@media(max-width:768px){.resource-heading-actions{flex-wrap:wrap;justify-content:flex-end}.resource-pager{padding:0 10px 13px;gap:4px}.resource-pager span{display:none}}

/* 资源中心：筛选前置，确保进入页面即可开始检索 */
.resource-filter-panel{margin:0 0 12px!important;padding:0!important;overflow:hidden;border:1px solid #dfe9e3!important;border-radius:15px!important;box-shadow:0 9px 24px rgba(29,53,40,.045)!important}
.resource-filter-title{display:flex;align-items:baseline;gap:10px;padding:13px 16px 0;color:#1f3d2d}
.resource-filter-title span{font-size:13px;font-weight:750}
.resource-filter-title small{color:#849188;font-size:11px}
.resource-filter-panel .resource-search-bar{padding-top:12px}
.resource-filter-panel .resource-result-note{border-bottom:0}
.resource-result-note b{color:#277f51;font-weight:750}
@media(max-width:768px){.resource-filter-title{align-items:flex-start;flex-direction:column;gap:3px;padding:11px 12px 0}.resource-filter-title small{line-height:1.45}.resource-filter-panel{margin-bottom:10px!important}}
/* 资源中心：自动评级与资料完整度 */
.rating-unrated{background:#f3f5f4;color:#77827c}
.resource-quality{font-weight:650}
.resource-quality.quality-complete{color:#23814e}
.resource-quality.quality-partial{color:#a46b16}
.resource-quality.quality-weak{color:#bd4b43}
.resource-filter-panel .resource-search-bar{flex-wrap:wrap}
.resource-filter-panel .resource-search-box{flex:1 1 340px}
.resource-filter-panel .resource-search-bar select{flex:0 1 150px}
@media(max-width:768px){.resource-filter-panel .resource-search-bar select{flex:auto}}.resource-rating-rule{padding:8px 16px;border-top:1px solid #edf2ee;background:#fff;color:#76867d;font-size:10px;line-height:1.5}
.resource-rating-rule b{color:#375b46}
@media(max-width:768px){.resource-rating-rule{padding:8px 12px}}

/* 资源中心：统计数字作为快捷筛选入口。 */
.resource-stats .resource-stat-action{cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}.resource-stats .resource-stat-action:hover,.resource-stats .resource-stat-action:focus-visible{border-color:#83bd9a;box-shadow:0 10px 22px rgba(29,83,51,.11);outline:0;transform:translateY(-1px)}.resource-stats .resource-stat-action.active{border-color:#2d8a59;background:linear-gradient(145deg,#f2fbf5,#e6f6eb);box-shadow:0 9px 22px rgba(39,127,81,.14)}

/* 资源中心：桌面端筛选项保持一行，优先收紧搜索框。 */
@media (min-width:1180px){
  .resource-filter-panel .resource-search-bar{flex-wrap:nowrap!important;align-items:center;gap:7px;}
  .resource-filter-panel .resource-search-box{flex:0 1 270px;min-width:220px;max-width:270px;}
  .resource-filter-panel .resource-search-bar select{flex:1 1 0;min-width:0;max-width:148px;padding-left:7px;padding-right:7px;}
  .resource-filter-panel .resource-search-bar .work-filter-reset{flex:0 0 auto;min-width:52px;height:36px;white-space:nowrap;}
}

/* 首页统一为“项目阶段分布”卡片语言：紧凑、平整、重点在数字。 */
#page-dashboard{
  --home-ink:#17324d;
  --home-muted:#8090a2;
  --home-line:#e5ebf1;
  background:linear-gradient(180deg,#f7f9fb 0,#f5f8fa 280px,#f8fafb 100%)!important;
}
#page-dashboard .dash-header{
  min-height:42px;
  margin-bottom:10px;
  padding:0 2px;
  border:0;
  background:transparent;
}
#page-dashboard .dash-greeting-text h2{color:var(--home-ink);font-size:19px;font-weight:760;letter-spacing:-.025em;}
#page-dashboard .dash-stats{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:10px;}
#page-dashboard .dash-stat-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto 1fr;
  min-height:78px;
  padding:10px 11px;
  border:1px solid var(--home-line);
  border-radius:12px;
  background:#fff;
  box-shadow:0 4px 12px rgba(24,69,112,.035);
}
#page-dashboard .dash-stat-item::before{width:2px;background:#4a9a88;}
#page-dashboard .dash-stat-top{grid-column:1/-1;gap:6px;}
#page-dashboard .dash-stat-icon{width:24px;height:24px;border-radius:7px;font-size:13px;filter:saturate(.78);}
#page-dashboard .dash-stat-label{color:#506176;font-size:11px;font-weight:680;}
#page-dashboard .dash-stat-value-row{align-self:end;min-height:0;margin-top:4px;}
#page-dashboard .dash-stat-num{font-size:25px;}
#page-dashboard .dash-stat-trend{align-self:end;min-height:0;margin:0 0 1px;text-align:right;font-size:10px;line-height:1.2;white-space:nowrap;}
#page-dashboard .dash-stat-trend-empty{display:none;}
#page-dashboard .dash-stat-item:hover{border-color:#b9d8d1;background:#fbfefd;box-shadow:0 7px 16px rgba(24,69,112,.07);transform:translateY(-1px);}
#page-dashboard > .card,#page-dashboard .dashboard-bottom-grid > .card{
  border:1px solid var(--home-line)!important;
  border-radius:13px!important;
  background:#fff!important;
  box-shadow:0 5px 15px rgba(24,69,112,.035)!important;
}
#page-dashboard .channel-progress-panel{margin-bottom:10px!important;padding:13px 15px!important;}
#page-dashboard .card-title{display:flex;align-items:center;gap:7px;margin-bottom:10px;color:var(--home-ink);font-size:15px;font-weight:760;letter-spacing:-.015em;}
#page-dashboard .channel-progress-title{margin-bottom:10px!important;}
#page-dashboard .channel-view-all{margin-left:auto;color:#4b7d9a;font-size:11px;white-space:nowrap;}
#page-dashboard .dashboard-bottom-grid{gap:10px!important;}
#page-dashboard .dashboard-bottom-grid>.card:has(#risk-warning-block){border-color:var(--home-line)!important;background:#fff!important;}
#page-dashboard .dashboard-bottom-grid>.card:has(#risk-warning-block):before{height:2px;background:#db756d;}
#page-dashboard .dashboard-bottom-grid>.card:has(#risk-warning-block)>.card-title{margin-bottom:10px;color:var(--home-ink);font-size:15px;}
#page-dashboard .risk-summary{min-height:36px;margin-bottom:8px;padding:8px 10px;border-color:#f1dfdc;border-radius:8px;background:#fffafa;}
#page-dashboard .risk-summary span{display:inline;margin:0 5px 0 0;font-size:10px;}
#page-dashboard .risk-summary strong{display:inline;font-size:12px;}
#page-dashboard .risk-summary strong b{font-size:19px;}
#page-dashboard .risk-item{min-height:36px;margin-bottom:5px;padding:6px 8px 6px 10px;border-radius:8px;}
#page-dashboard .risk-stage{padding:3px 6px;font-size:9px;box-shadow:none;}
#page-dashboard .cost-dashboard-grid{gap:7px;}
#page-dashboard .cost-dashboard-grid>div{min-height:42px;padding:8px;border-color:#e7edf2;border-radius:8px;background:#fbfcfd;}
#page-dashboard .cost-dashboard-enter{margin-top:7px;padding:7px 9px;border-radius:7px;}
#modal-detail{z-index:1320;}
@media (max-width:1180px){#page-dashboard .dash-stats{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:768px){
  #page-dashboard .dash-header{min-height:34px;margin-bottom:8px;}
  #page-dashboard .dash-greeting-text h2{font-size:17px;}
  #page-dashboard .dash-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  #page-dashboard .dash-stat-item{min-height:74px;padding:9px 10px;}
  #page-dashboard .dash-stat-num{font-size:23px;}
  #page-dashboard .channel-progress-panel{padding:11px!important;}
}
/* ═══════════════════════════════════════════
   产品工作台与项目详情 · 清晰版（v5.38）
   仅调整信息层级、密度与响应式布局。
   ═══════════════════════════════════════════ */
@media (min-width:769px){
  .product-center-page{padding:88px 26px 28px!important;}
  .product-center-page .workspace-heading{position:relative;align-items:center;min-height:68px;margin-bottom:12px;padding:14px 18px;border:1px solid #e1e9e4;border-radius:14px;background:linear-gradient(120deg,rgba(255,255,255,.96),rgba(247,251,248,.92));box-shadow:0 7px 20px rgba(26,55,38,.035);overflow:hidden;}
  .product-center-page .workspace-heading:before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,#258657,#68b68a);}
  .product-center-page .workspace-heading h1{font-size:23px;letter-spacing:-.025em;}
  .product-center-page .workspace-heading p{margin-top:5px;font-size:12px;}
  .project-workspace{border-radius:14px!important;border-color:#e0e8e3!important;box-shadow:0 10px 28px rgba(29,53,40,.045)!important;}
  .project-toolbar{align-items:stretch!important;gap:11px!important;padding:12px 14px!important;background:#fff!important;}
  .project-filters{display:grid!important;grid-template-columns:minmax(220px,1.65fr) repeat(4,minmax(108px,.8fr)) auto auto;align-items:center;gap:7px!important;}
  #search-input{width:auto!important;min-width:0!important;}
  .project-filters .form-input,.project-toolbar .toggle-btn{width:100%!important;min-width:0!important;height:34px!important;border-radius:8px!important;font-size:12px!important;}
  .project-toolbar .toggle-btn{padding:5px 9px!important;background:#f9fbfa!important;}
  .project-create-btn{height:34px!important;min-height:34px!important;align-self:center;padding:0 14px!important;box-shadow:0 4px 10px rgba(35,123,78,.16)!important;}
  .project-table-context{padding:9px 14px!important;background:#f7faf8!important;border-top:1px solid #eef3ef;color:#85928a!important;}
  .project-table-context span:first-child{font-size:12px!important;color:#31463a!important;}
  .project-workspace .table-wrap{max-height:calc(100vh - 252px);overflow:auto!important;scrollbar-color:#cbd9d0 transparent;}
  .project-workspace .table-wrap table{min-width:1040px!important;}
  .project-workspace .table-wrap thead th{height:38px;padding:9px 12px!important;background:#f5f8f6!important;color:#66766d!important;border-bottom:1px solid #dfe8e2!important;font-size:10.5px!important;letter-spacing:.035em;}
  .project-workspace #projects-tbody td{height:48px;padding:9px 12px!important;background:inherit;border-bottom:1px solid #edf2ee!important;font-size:12px!important;}
  .project-workspace #projects-tbody tr:not(.project-group-row){background:#fff!important;}
  .project-workspace #projects-tbody tr.row-approved{background:#f8fcfa!important;border-left:3px solid #2b8b60!important;}
  .project-workspace #projects-tbody tr.tr-pinned:not(.row-approved){background:#fffcf5!important;}
  .project-workspace #projects-tbody tr:not(.project-group-row):hover{background:#f3f9f5!important;box-shadow:inset 3px 0 0 #4ba879!important;}
  .project-workspace #projects-tbody td:nth-child(2){min-width:230px!important;max-width:330px!important;}
  .project-workspace #projects-tbody td:nth-child(2) strong{display:inline-block;max-width:260px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap;font-size:13px!important;line-height:1.4;}
  .project-group-row{background:#f7faf8!important;pointer-events:none;}
  .project-group-row td{height:34px!important;padding:6px 12px!important;background:#f7faf8!important;}
  .project-group-row span{font-size:11px!important;letter-spacing:2px!important;}
  .project-group-production span{color:#287c59!important;}.project-group-development span{color:#9b7533!important;}
  .project-workspace .actions-cell{z-index:4;background:inherit!important;box-shadow:-8px 0 14px rgba(25,55,38,.035)!important;}
  .project-workspace .row-actions{right:7px;padding:2px!important;border-color:#e4ebe7!important;border-radius:7px!important;box-shadow:0 2px 6px rgba(25,55,38,.045)!important;}
  .project-workspace .row-actions button{width:25px!important;height:25px!important;border-radius:5px!important;font-size:12px!important;filter:saturate(.75);}
  .project-workspace #pagination-bar{padding:9px 14px!important;min-height:34px;background:#fafcfb!important;}
}
@media (min-width:769px) and (max-width:1120px){
  .project-toolbar{display:grid!important;grid-template-columns:1fr auto;}
  .project-filters{grid-template-columns:minmax(210px,1.5fr) repeat(3,minmax(105px,1fr));}
  .project-filters #filter-category,.project-filters #btn-toggle-completed{grid-row:2;}
}

.project-workspace #projects-tbody tr.row-approved{background:#f8fcfa!important;}
/* 项目详情：固定标题与底部操作，内容在中间独立滚动。 */
#modal-detail{background:rgba(21,35,28,.42);backdrop-filter:blur(5px);}
#modal-detail .modal{box-sizing:border-box;width:min(1080px,calc(100vw - 48px))!important;height:calc(100vh - 40px);max-height:820px!important;padding:0!important;overflow:hidden!important;display:flex;flex-direction:column;border:1px solid rgba(218,228,222,.92);border-radius:16px!important;box-shadow:0 28px 80px rgba(14,32,22,.24)!important;}
#modal-detail .modal-title{flex:0 0 auto;min-height:58px;margin:0!important;padding:0 22px;border-bottom:1px solid #e6ede8;background:linear-gradient(180deg,#fff,#fbfcfb);font-size:17px;color:#203128;cursor:default;}
#modal-detail .modal-close{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:#f3f6f4;color:#6f7c74;font-size:20px;}
#modal-detail .modal-close:hover{background:#e9efeb;color:#26372d;}
#detail-content{flex:1;min-height:0;padding:18px 22px 22px;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#cbd8d0 transparent;color:#33463a;}
#modal-detail .modal-footer{flex:0 0 auto;min-height:58px;margin:0!important;padding:10px 22px!important;border-top:1px solid #e4ece6;background:#fafcfb;align-items:center;}
#modal-detail .modal-footer .btn{min-height:34px;padding:6px 15px;border-radius:8px;font-size:12px;}
#modal-detail .modal-footer .btn-warning{background:#fff;border-color:#d9b873;color:#8c6425;}
#modal-detail .project-detail-hero{margin:0 0 12px!important;padding:12px 14px;border:1px solid #e3ebe6;border-radius:11px;background:linear-gradient(125deg,#fbfdfc,#f3f8f5);}
#modal-detail .project-detail-identity strong{color:#1e3226;font-size:15px!important;}
#modal-detail .project-detail-hero .btn{border-color:#dce6df!important;border-radius:7px!important;color:#627168!important;}
#modal-detail .project-detail-meta-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important;margin-bottom:12px!important;font-size:12px!important;}
#modal-detail .project-detail-meta-grid>div{min-width:0;padding:9px 10px;border:1px solid #e7ede9;border-radius:8px;background:#fff;overflow-wrap:anywhere;}
#modal-detail .project-detail-meta-grid>div>span{display:block;margin-bottom:3px;color:#8a968f!important;font-size:10px;}
#modal-detail .project-detail-phase-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:9px;margin-bottom:10px;}
#modal-detail .project-detail-phase{min-width:0;margin:0!important;padding:11px 12px!important;border-radius:10px!important;background:#fff!important;font-size:12px;}
#modal-detail .project-detail-phase.phase-development{border-color:#ead7a9!important;box-shadow:inset 3px 0 0 #d4a94e;}
#modal-detail .project-detail-phase.phase-production{border-color:#bcd8cf!important;box-shadow:inset 3px 0 0 #3c9770;}
#modal-detail .project-detail-phase>div:first-child{margin-bottom:7px!important;font-size:12px!important;}
#modal-detail .project-detail-phase>div:last-child{gap:7px 12px!important;font-size:11px!important;}
#modal-detail .project-detail-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin-bottom:10px!important;font-size:12px!important;}
#modal-detail .project-detail-kpi-grid>div{padding:9px 11px;border:1px solid #e4ebe7;border-radius:8px;background:#f8fbf9;}
#modal-detail .project-detail-section{margin-top:12px!important;padding:12px 13px;border:1px solid #e4ebe7;border-radius:11px;background:#fff;}
#modal-detail .project-detail-section-title{margin-bottom:9px!important;color:#2f4538!important;font-size:12px!important;font-weight:750!important;}
#modal-detail .flow-steps{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px!important;max-height:238px;padding:2px!important;overflow-y:auto!important;overflow-x:hidden!important;}
#modal-detail .flow-step{display:block!important;min-width:0!important;}
#modal-detail .step-arrow{display:none!important;}
#modal-detail .step-box{box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;width:100%;min-width:0!important;min-height:66px;padding:9px 10px!important;border-width:1px!important;border-radius:9px!important;font-size:11px!important;line-height:1.45;}
#modal-detail .step-box .step-name{font-size:11px;font-weight:700;}
#modal-detail .step-done{background:#edf8f1;border-color:#bedfc9;color:#25734a;}
#modal-detail .step-active{background:#edf5ff;border-color:#9dc4ef;color:#27659b;box-shadow:inset 3px 0 0 #4b8fca;}
#modal-detail .step-todo{background:#f7f9f8;border-color:#e3e9e5;color:#7b8981;}
#modal-detail .stage-log-content{max-height:180px;overflow:auto;border-top:1px solid #edf1ee;}
#modal-detail .stage-log-content>div{padding:7px 5px!important;font-size:11px!important;line-height:1.5;}
#modal-detail .timeline-section{margin-top:12px!important;padding:13px!important;border-color:#e4ebe7!important;background:#f9fbfa!important;box-shadow:none!important;}

/* 阶段管理：遮罩已由脚本锁定，只允许明确操作或右上角 × 关闭。 */
#modal-advance{background:rgba(22,37,30,.4);backdrop-filter:blur(4px);}
#modal-advance .modal{border:1px solid #d8e4dc;border-radius:15px!important;box-shadow:0 26px 70px rgba(16,35,24,.22)!important;}
#modal-advance .modal-title{cursor:default!important;background:linear-gradient(120deg,#f7fbf8,#edf6f1)!important;border-bottom:1px solid #dbe8e0!important;}
#modal-advance .modal-title>span:first-child{color:#28563d!important;}
#modal-advance .modal-close{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid #dce7e0;background:#fff;color:#52655a;font-size:21px;box-shadow:0 2px 6px rgba(28,58,41,.05);}
#modal-advance .modal-close:hover{border-color:#9fc8b0;background:#edf7f1;color:#176b41;}
#modal-advance .stage-close-hint{color:#819087;font-size:11px;}

@media (max-width:768px){
  .product-center-page .workspace-heading{padding:12px 13px;border:1px solid #e2eae5;border-radius:12px;background:#fff;}
  .product-center-page .project-filters{display:grid!important;grid-template-columns:1fr 1fr;}
  .product-center-page #search-input{grid-column:1/-1;}
  .product-center-page .project-toolbar .toggle-btn{width:100%!important;}
  #modal-detail .modal{width:calc(100vw - 14px)!important;height:calc(100dvh - 14px);max-width:none!important;max-height:none!important;border-radius:13px!important;}
  #modal-detail .modal-title{min-height:52px;padding:0 14px;font-size:14px;}
  #detail-content{padding:13px 12px 16px;}
  #modal-detail .modal-footer{min-height:54px;padding:8px 12px!important;}
  #modal-detail .project-detail-hero{align-items:flex-start!important;gap:9px;padding:10px 11px;}
  #modal-detail .project-detail-identity{align-items:flex-start!important;flex-direction:column;gap:6px!important;}
  #modal-detail .project-detail-meta-grid{grid-template-columns:1fr 1fr!important;}
  #modal-detail .project-detail-phase-grid{grid-template-columns:1fr;}
  #modal-detail .project-detail-phase>div:last-child{grid-template-columns:1fr!important;}
  #modal-detail .flow-steps{grid-template-columns:repeat(2,minmax(0,1fr));max-height:300px;}
}
/* ═══════════════════════════════════════════
   产品工作台 · 全景自然滚动版（v5.40）
   取消表格内部纵向滚动，以整页浏览为主。
   ═══════════════════════════════════════════ */
.product-center-page{
  --project-accent:#237b50;
  --project-accent-soft:#eaf6ef;
  --project-ink:#172a20;
}
.product-center-page .workspace-heading-main{position:relative;z-index:1;min-width:0;}
.product-center-page .project-overview{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(78px,1fr));gap:6px;}
.product-center-page .project-overview-item{
  box-sizing:border-box;display:grid;grid-template-columns:1fr auto;align-items:center;gap:9px;
  min-width:86px;height:46px;padding:7px 10px;border:1px solid rgba(214,225,218,.88);
  border-radius:10px;background:rgba(255,255,255,.76);box-shadow:0 2px 8px rgba(27,54,38,.035);
}
.product-center-page .project-overview-item span{color:#7b8981;font-size:9.5px;font-weight:650;white-space:nowrap;}
.product-center-page .project-overview-item span:before{content:'';display:inline-block;width:5px;height:5px;margin:0 6px 1px 0;border-radius:50%;background:#6ca987;}
.product-center-page .project-overview-item strong{color:#263b2f;font-size:19px;font-weight:760;line-height:1;font-variant-numeric:tabular-nums;}
.product-center-page .overview-development span:before{background:#d1a64f;}
.product-center-page .overview-production span:before{background:#398b74;}
.product-center-page .overview-overdue span:before{background:#d8675f;}
.product-center-page .overview-overdue strong{color:#b84d46;}
.project-row-id{display:none;margin-left:5px;color:#a1aaa4;font-size:9px;font-weight:400;}

@media (min-width:769px){
  .product-center-page{padding:82px 24px 34px!important;background:
    radial-gradient(circle at 82% 3%,rgba(63,154,100,.06),transparent 25%),
    linear-gradient(180deg,#f7faf8 0,#f5f8f6 240px,#f7f9f8 100%)!important;}
  .product-center-page .workspace-heading{
    display:grid!important;grid-template-columns:minmax(290px,1fr) auto;align-items:center!important;gap:20px;
    min-height:52px!important;margin-bottom:7px!important;padding:8px 13px 8px 16px!important;
    border-color:#dce7e0!important;border-radius:13px!important;
    background:
      radial-gradient(circle at 72% 10%,rgba(49,145,92,.075),transparent 28%),
      linear-gradient(115deg,rgba(255,255,255,.98),rgba(245,250,247,.96))!important;
    box-shadow:0 7px 22px rgba(24,53,36,.045)!important;
  }
  .product-center-page .workspace-heading:before{width:3px!important;background:linear-gradient(180deg,var(--project-accent),#76b491)!important;}
  .product-center-page .workspace-eyebrow{margin-bottom:4px!important;color:var(--project-accent)!important;font-size:8.5px!important;letter-spacing:.16em;}
  .product-center-page .workspace-heading h1{font-size:21px!important;font-weight:780;line-height:1.05;}
  .product-center-page .workspace-heading p{margin-top:4px!important;font-size:11px!important;line-height:1.35;}
  .project-workspace{border-radius:13px!important;box-shadow:0 8px 25px rgba(23,48,33,.045)!important;}
  .project-toolbar{gap:9px!important;padding:9px 12px!important;border-bottom:1px solid #e8efea!important;}
  .project-filters{grid-template-columns:minmax(220px,1.7fr) repeat(4,minmax(104px,.78fr)) auto auto!important;gap:6px!important;}
  .project-filters .form-input,.project-toolbar .toggle-btn{height:32px!important;border-radius:7px!important;font-size:11px!important;}
  .project-filters .form-input{padding:5px 9px!important;}
  .project-toolbar .toggle-btn{padding:4px 8px!important;}
  .project-create-btn{height:32px!important;min-height:32px!important;padding:0 13px!important;border-radius:7px!important;font-size:11px!important;}
  .project-table-context{padding:7px 12px!important;background:#f7faf8!important;}
  .project-table-context span:first-child{font-size:11px!important;}
  .project-table-context span:last-child{font-size:10px;}

  /* 关键修复：容器随内容自然增高，只保留窄屏所需的横向滚动。 */
  .project-workspace .table-wrap{
    width:100%;max-height:none!important;height:auto!important;
    overflow-x:auto!important;overflow-y:auto!important;overscroll-behavior:auto!important;
    scrollbar-color:#cbd9d0 transparent;
  }
  .project-workspace .table-wrap table{min-width:1020px!important;}
  .project-workspace .table-wrap thead th{
    height:35px!important;padding:7px 10px!important;background:#f3f7f5!important;
    color:#64756b!important;border-bottom:1px solid #dbe6df!important;font-size:10px!important;
  }
  .project-workspace #projects-tbody td{
    box-sizing:border-box;height:44px!important;padding:7px 10px!important;
    border-bottom:1px solid #eaf0ec!important;font-size:11px!important;
  }
  .project-workspace #projects-tbody td:nth-child(2){min-width:225px!important;max-width:320px!important;}
  .project-workspace #projects-tbody td:nth-child(2) strong{max-width:255px!important;color:#245f44!important;font-size:12.5px!important;font-weight:720!important;}
  .project-workspace #projects-tbody tr.row-approved td:nth-child(2) strong{color:#0d7568!important;}
  .project-workspace #projects-tbody tr:not(.project-group-row):hover{background:#edf7f1!important;box-shadow:inset 3px 0 0 var(--project-accent)!important;}
  .project-group-row td{height:30px!important;padding:4px 10px!important;}
  .project-group-row span{font-size:10px!important;letter-spacing:2.5px!important;}
  .project-workspace .actions-cell{box-shadow:-6px 0 12px rgba(25,55,38,.03)!important;}
  .project-workspace .row-actions button{width:24px!important;height:24px!important;}
  .project-workspace #pagination-bar{min-height:30px!important;padding:7px 12px!important;font-size:10.5px!important;}
}
@media (min-width:769px) and (max-width:1120px){
  .product-center-page .workspace-heading{grid-template-columns:minmax(240px,.8fr) minmax(360px,1.2fr);}
  .product-center-page .project-overview-item{min-width:0;padding:7px 8px;}
  .product-center-page .project-overview-item span{font-size:9px;}
  .product-center-page .project-overview-item strong{font-size:17px;}
  .project-toolbar{grid-template-columns:1fr auto!important;}
  .project-filters{grid-template-columns:minmax(210px,1.5fr) repeat(3,minmax(105px,1fr))!important;}
}
@media (max-width:768px){
  .product-center-page{background:linear-gradient(180deg,#f5f9f6,#f7f9f8 220px)!important;}
  .product-center-page .workspace-heading{
    display:block!important;margin-bottom:9px!important;padding:12px!important;
    border-color:#dce7e0!important;background:linear-gradient(135deg,#fff,#f5faf7)!important;
    box-shadow:0 5px 16px rgba(24,53,36,.04);
  }
  .product-center-page .workspace-heading h1{font-size:19px!important;}
  .product-center-page .workspace-heading p{font-size:10.5px!important;}
  .product-center-page .project-overview{margin-top:10px;gap:5px;}
  .product-center-page .project-overview-item{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-width:0;height:45px;padding:6px 7px;border-radius:8px;}
  .product-center-page .project-overview-item span{font-size:8.5px;}
  .product-center-page .project-overview-item span:before{width:4px;height:4px;margin-right:4px;}
  .product-center-page .project-overview-item strong{font-size:16px;}
  .product-center-page .project-toolbar{padding:10px!important;}
  .product-center-page .project-table-context{padding:7px 9px!important;}
  .product-center-page .project-workspace .table-wrap{max-height:none!important;height:auto!important;overflow-x:auto!important;overflow-y:auto!important;}
  .product-center-page .project-workspace #projects-tbody td{height:45px!important;padding-top:8px!important;padding-bottom:8px!important;}
  .product-center-page .project-workspace #projects-tbody td:nth-child(2) strong{font-size:12.5px!important;}
  .product-center-page .project-workspace .row-actions{opacity:1;pointer-events:auto;}
}
/* 可点击日期汇总表头（v5.43） */
.project-workspace .table-wrap thead th.summary-link-th{
  cursor:pointer!important;color:#365f4a!important;transition:color .16s ease,background-color .16s ease,box-shadow .16s ease;
}
.project-workspace .table-wrap thead th.summary-link-th:after{
  content:"↗";display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;margin-left:5px;
  border:1px solid #cbdcd2;border-radius:5px;background:#fff;color:#4c8565;font-size:9px;font-weight:800;line-height:1;
  vertical-align:1px;transition:.16s ease;
}
.project-workspace .table-wrap thead th.summary-link-th:hover{
  background:#e9f4ed!important;color:#1f7046!important;box-shadow:inset 0 -2px 0 #55a878;
}
.project-workspace .table-wrap thead th.summary-link-th:hover:after{
  border-color:#8fbea2;background:#2e8457;color:#fff;transform:translate(1px,-1px);
}
/* ═══════════════════════════════════════════════
   成本中心 v5.46
   ═══════════════════════════════════════════════ */
.cost-center-page{background:#f5f7fb}
.cost-shell{max-width:1380px;margin:0 auto;padding:0 0 32px}
.cost-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 12px}
.cost-heading h1{margin:0;color:#15243b;font-size:28px;line-height:1.1;letter-spacing:-.035em}
.cost-heading p{margin:0;color:#667085;font-size:13px}
.cost-heading-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px;flex:0 0 auto}
.cost-heading-actions .btn{height:38px;padding:0 16px;border-radius:9px;font-weight:650}
.cost-heading-actions .cost-lock-btn{color:#53657a;border-color:#d7dee9;background:#fff}
.cost-heading-actions .cost-lock-btn:hover{color:#fff;border-color:#40566f;background:#40566f}
.cost-heading-actions .cost-template-btn{color:#fff;border-color:#7558b5;background:#8063c4;box-shadow:0 4px 11px rgba(128,99,196,.2)}
.cost-heading-actions .cost-template-btn:hover{border-color:#6548a3;background:#704faf}
.cost-heading-actions .cost-import-btn{color:#fff;border-color:#1f9d55;background:#23a559;box-shadow:0 4px 11px rgba(35,165,89,.2)}
.cost-heading-actions .cost-import-btn:hover{border-color:#168347;background:#178d4b}
.cost-principle{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;margin-bottom:14px;border:1px solid #d9e4f5;border-radius:13px;background:linear-gradient(120deg,#f8fbff,#fff);box-shadow:0 5px 20px rgba(34,73,124,.045)}
.cost-principle>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:260px}
.cost-principle b{color:#1d3557;font-size:14px}
.cost-principle span{color:#76849a;font-size:12px;line-height:1.5}
.cost-equation{display:flex;align-items:center;gap:7px;white-space:nowrap}
.cost-equation i,.cost-equation strong{padding:7px 10px;border-radius:8px;font-style:normal;font-size:11px;font-weight:700}
.cost-equation i{color:#35516f;background:#eef4fb;border:1px solid #dce8f5}
.cost-equation i:nth-of-type(4){color:#9a5b14;background:#fff7e8;border-color:#fde4b8}
.cost-equation strong{color:#fff;background:#1d3557}
.cost-equation em{color:#91a0b3;font-style:normal}
.cost-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.cost-stats>div{position:relative;min-height:104px;padding:15px 17px;border:1px solid #e4e9f1;border-radius:12px;background:#fff;overflow:hidden}
.cost-stats>div:after{content:"";position:absolute;right:-20px;bottom:-24px;width:72px;height:72px;border-radius:50%;background:#eef4ff}
.cost-stats>div:nth-child(2):after{background:#fff5e7}.cost-stats>div:nth-child(3):after{background:#eaf9f3}.cost-stats>div:nth-child(4):after{background:#f2edff}
.cost-stats span,.cost-stats small{position:relative;z-index:1;display:block}
.cost-stats span{color:#667085;font-size:12px;font-weight:650}
.cost-stats strong{position:relative;z-index:1;display:block;margin:9px 0 3px;color:#15243b;font-size:26px;line-height:1;font-weight:760;letter-spacing:-.04em}
.cost-stats small{color:#98a2b3;font-size:10px}

/* 成本中心顶部概览：仅作快速浏览，压缩高度以突出测算列表。 */
.cost-principle{padding:10px 14px;margin-bottom:10px;}
.cost-principle>div:first-child{min-width:0;flex-direction:row;align-items:center;}
.cost-principle b{font-size:13px;}
.cost-stats{gap:8px;margin-bottom:10px;}
.cost-stats>div{min-height:42px;padding:7px 10px 7px 13px;border-left:4px solid #4d7cc0;box-shadow:0 3px 10px rgba(32,55,84,.035);}
.cost-stats>div:nth-child(2){border-left-color:#d08a28;background:#fffdf9}.cost-stats>div:nth-child(3){border-left-color:#24966d;background:#fbfefc}.cost-stats>div:nth-child(4){border-left-color:#8a68c3;background:#fcfbff}
.cost-stats>div:after{display:none;}
.cost-stats span,.cost-stats small{display:inline;}
.cost-stats span{color:#667085;font-size:10px;}
.cost-stats strong{display:inline-block;margin:0 0 0 7px;color:#1d3557;font-size:19px;vertical-align:baseline;}
.cost-stats small{display:none;}
.cost-workspace{padding:0!important;border:1px solid #e2e8f0!important;border-radius:13px!important;overflow:hidden;box-shadow:0 8px 28px rgba(30,55,90,.05)!important}
.cost-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 145px 145px 145px auto;gap:8px;padding:14px;border-bottom:1px solid #edf0f4;background:#fff}
.cost-toolbar select,.cost-search-box{height:38px;border:1px solid #d7dee9;border-radius:8px;background:#fff}
.cost-toolbar select{padding:0 10px;color:#344054;font-size:12px}
.cost-search-box{display:flex;align-items:center;gap:8px;padding:0 11px}
.cost-search-box span{color:#667085;font-size:18px}
.cost-search-box input{width:100%;border:0;outline:0;color:#25344a;font-size:13px;background:transparent}
.cost-result-note{padding:9px 15px;border-bottom:1px solid #edf0f4;color:#7a8799;font-size:11px;background:#fafbfd}
.cost-result-note b{color:#344054}
.cost-table-wrap{overflow-x:auto;background:#fff}
.cost-table{min-width:1220px;width:100%;border-collapse:collapse}
.cost-table thead th{position:sticky;top:0;padding:11px 12px;border-bottom:1px solid #dfe5ee;color:#667085;background:#f8fafc;font-size:10px;font-weight:700;text-align:left;white-space:nowrap}
.cost-table tbody td{padding:12px;border-bottom:1px solid #eef1f5;color:#475467;font-size:11px;vertical-align:middle}
.cost-table tbody tr{cursor:pointer;transition:background .15s}
.cost-table tbody tr:hover{background:#f8fbff}
.cost-product-cell{display:flex;flex-direction:column;gap:4px;min-width:190px}
.cost-product-cell b{color:#1d2939;font-size:12px}.cost-product-cell span{color:#98a2b3;font-size:10px}
.cost-total-cell{color:#1d4ed8!important;font-weight:760;font-size:13px!important}
.cost-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:700}
.cost-status.draft{color:#a15c06;background:#fff7e8;border:1px solid #f8ddb4}
.cost-status.confirmed{color:#087a57;background:#eaf9f3;border:1px solid #c6eddf}
.cost-table td:nth-last-child(2) small{display:block;margin-top:4px;color:#a3acb9;text-align:center}.cost-table td:nth-last-child(2) .cost-record-date{font-size:9px;line-height:1.55;white-space:nowrap}
.cost-row-actions{display:flex;gap:4px;min-width:76px}
.cost-row-actions button{padding:4px 6px;border:0;border-radius:5px;color:#416180;background:#edf3f9;font-size:10px;cursor:pointer}
.cost-row-actions button:hover{color:#fff;background:#315b86}
.cost-loading{height:210px!important;text-align:center!important;color:#98a2b3!important}
.cost-error{color:#c2413a!important}
.cost-empty{display:flex;flex-direction:column;align-items:center;gap:7px;padding:42px 20px;color:#98a2b3}
.cost-empty>div{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;color:#3d6592;background:#edf4fb;font-size:24px}
.cost-empty b{color:#344054;font-size:14px}.cost-empty span{font-size:11px}.cost-empty button{margin-top:7px}
.cost-pager{display:flex;align-items:center;justify-content:center;gap:5px;min-height:48px;padding:9px;border-top:1px solid #edf0f4;background:#fff}
.cost-pager button{min-width:31px;height:30px;padding:0 8px;border:1px solid #d7dee9;border-radius:6px;color:#53657a;background:#fff;font-size:11px;cursor:pointer}
.cost-pager button.active{color:#fff;border-color:#315b86;background:#315b86}.cost-pager button:disabled{opacity:.4;cursor:not-allowed}
.cost-pager span{margin-left:6px;color:#98a2b3;font-size:10px}

/* 成本测算编辑器 */
.cost-editor-overlay{align-items:stretch!important;justify-content:stretch!important;padding:0!important;background:rgba(19,32,50,.68)!important;backdrop-filter:blur(7px);z-index:10020!important}
.cost-editor{display:flex;flex-direction:column;width:100vw;max-width:none;height:100vh;margin:0;border-radius:0;background:#f4f6f9;box-shadow:none;overflow:hidden}
.cost-editor-overlay,.cost-editor-body,.cost-live-summary{scrollbar-width:none;-ms-overflow-style:none}
.cost-editor-overlay::-webkit-scrollbar,.cost-editor-body::-webkit-scrollbar,.cost-live-summary::-webkit-scrollbar{width:0;height:0;display:none}
.cost-editor-header{display:flex;align-items:center;gap:15px;min-height:64px;padding:12px 23px;border-bottom:1px solid #dfe5ed;background:#fff}
.cost-editor-header h2{margin:0;color:#17283f;font-size:21px;letter-spacing:-.025em;white-space:nowrap}.cost-editor-header h2 em{display:inline-block;margin-left:5px;padding:3px 8px;border:1px solid #b8ded5;border-radius:999px;color:#177461;background:#eef9f6;font-size:13px;font-style:normal;font-weight:700;letter-spacing:0;vertical-align:2px}.cost-editor-meta{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex:1;min-width:0;color:#8390a1;font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap}.cost-editor-meta span+span{padding-left:12px;border-left:1px solid #e5eaf0}.cost-editor-meta .cost-editor-version{color:#3a6795;font-weight:800;letter-spacing:.08em}
.cost-editor-close{width:36px;height:36px;border:1px solid #dfe5ed;border-radius:9px;color:#6b7788;background:#f8fafc;font-size:25px;line-height:1;cursor:pointer}
.cost-editor-close:hover{color:#fff;border-color:#263f5f;background:#263f5f}
.cost-editor-body{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:13px;flex:1;min-height:0;padding:13px;overflow-y:auto;overflow-x:hidden}
.cost-form{display:flex;flex-direction:column;gap:10px;min-width:0}
.cost-section{padding:13px 14px;border:1px solid #e0e6ee;border-radius:12px;background:#fff}
.cost-section--basic{border-color:#dce6f4;background:linear-gradient(135deg,#fff,#f7faff)}.cost-section--basic .cost-section-head b i{color:#426f9e;background:#eaf2fa}
.cost-section--raw{border-color:#d5eadf;background:linear-gradient(135deg,#fff,#f2faf5)}.cost-section--raw .cost-section-head b i{color:#25845c;background:#e3f4ea}
.cost-section--auxiliary{border-color:#d8e5f4;background:linear-gradient(135deg,#fff,#f2f7fd)}.cost-section--auxiliary .cost-section-head b i{color:#3975b7;background:#e7f0fb}
.cost-section--manufacturing{border-color:#f0dfc6;background:linear-gradient(135deg,#fff,#fdf6ed)}.cost-section--manufacturing .cost-section-head b i{color:#a96c1d;background:#fbeedb}
.cost-section--packaging{border-color:#eadff4;background:linear-gradient(135deg,#fff,#fbf8fe)}.cost-section--packaging .cost-section-head b i{color:#8054aa;background:#f2eafb}
.cost-section--logistics{border-color:#d8e9ee;background:linear-gradient(135deg,#fff,#f3fbfc)}.cost-section--logistics .cost-section-head b i{color:#247f8a;background:#e4f6f7}
.cost-section--statutory{border-color:#f0e5d3;background:linear-gradient(135deg,#fff,#fdf9f2)}.cost-section--statutory .cost-section-head b i{color:#a76f20;background:#fbf0dc}
.cost-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}
.cost-section-head b{display:flex;align-items:center;gap:9px;color:#21344e;font-size:13px}
.cost-section-head b i{display:flex;align-items:center;justify-content:center;width:26px;height:22px;border-radius:6px;color:#315f8d;background:#eaf2fa;font-size:9px;font-style:normal}
.cost-section-head span,.cost-help{color:#98a2b3;font-size:10px}
.cost-section-head button{padding:5px 9px;border:1px solid #cfdbe8;border-radius:6px;color:#315f8d;background:#f6faff;font-size:10px;cursor:pointer}
.cost-help{margin:-7px 0 12px;padding-left:35px}
.cost-basic-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.cost-basic-grid .wide{grid-column:span 2}
.cost-project-picker{position:relative}
.cost-project-search{display:flex;align-items:center;height:36px;border:1px solid #bfd2e6;border-radius:8px;background:#f6faff;transition:border .15s,box-shadow .15s,background .15s}
.cost-project-search:focus-within{border-color:#4a82b9;background:#fff;box-shadow:0 0 0 3px rgba(49,95,141,.1)}
.cost-project-search>span{padding-left:10px;color:#6684a3;font-size:15px;font-weight:400}
.cost-project-search input{height:34px!important;padding:0 7px!important;border:0!important;background:transparent!important;box-shadow:none!important}
.cost-project-clear{flex:0 0 29px;width:29px;height:29px;margin-right:3px;border:0;border-radius:6px;color:#8b98a8;background:transparent;font-size:16px;cursor:pointer}
.cost-project-clear:hover{color:#315f8d;background:#e7f0f9}
.cost-project-tip{margin-top:1px;color:#98a2b3!important;font-size:9px!important;font-weight:400!important}
.cost-project-results{display:none;position:absolute;z-index:80;top:41px;left:0;right:0;max-height:310px;padding:6px;border:1px solid #cedbea;border-radius:10px;background:#fff;box-shadow:0 18px 42px rgba(28,52,82,.18);overflow-y:auto}
.cost-project-results.show{display:block}
.cost-project-results>button{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(190px,1.5fr) minmax(100px,.8fr);align-items:center;gap:9px;width:100%;padding:9px 10px;border:0;border-bottom:1px solid #eef2f6;color:#556579;background:#fff;text-align:left;cursor:pointer}
.cost-project-results>button:last-of-type{border-bottom:0}
.cost-project-results>button:hover{border-radius:7px;background:#f1f6fb}
.cost-project-results b{color:#203550;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cost-project-results span,.cost-project-results small{color:#77869a;font-size:9px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cost-project-results small{color:#98a2b3;text-align:right}
.cost-project-empty,.cost-project-more{padding:13px;text-align:center;color:#8b98a8;font-size:10px;font-weight:400}
.cost-project-more{padding:8px;border-top:1px solid #eef2f6;background:#fafbfd}
.cost-section label{display:flex;flex-direction:column;gap:5px;color:#59677a;font-size:10px;font-weight:650}
.cost-section input,.cost-section select,.cost-section textarea{box-sizing:border-box;width:100%;min-width:0;border:1px solid #bfd2e6;border-radius:7px;outline:0;color:#21344e;background:#f6faff;font:inherit;font-weight:500;transition:border .15s,box-shadow .15s,background .15s}
.cost-section input,.cost-section select{height:30px;padding:0 8px}.cost-section textarea{padding:8px;line-height:1.5;resize:vertical}
.cost-factory-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.cost-factory-input button{height:30px;padding:0 8px;border:1px solid #b9cee4;border-radius:7px;color:#315f8d;background:#edf5fc;font-size:10px;font-weight:700;white-space:nowrap;cursor:pointer}.cost-factory-input button:hover{border-color:#75a1cb;background:#e4f0fb}
.cost-section input:focus,.cost-section select:focus,.cost-section textarea:focus{border-color:#4a82b9;background:#fff;box-shadow:0 0 0 3px rgba(49,95,141,.1)}
.cost-line-table{width:100%;overflow-x:auto}
.cost-line-head,.cost-line-row{display:grid;grid-template-columns:28px minmax(130px,1.1fr) 104px 100px 62px 62px 108px 68px 26px;gap:5px;min-width:720px;align-items:center}
.cost-line-head{padding:0 3px 5px;color:#8c98a8;font-size:8px}.cost-line-head>span:first-child{text-align:center}
.cost-line-row{padding:3px;border-top:1px solid #eff2f6}
.cost-row-no{display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin:auto;border-radius:50%;color:#728197;background:#edf2f7;font-size:9px;font-weight:750}
.cost-line-row input,.cost-line-row select{height:25px;padding:0 5px;font-size:9px}
.cost-standard-name{position:relative;min-width:0}.cost-standard-name>input{padding-right:27px}.cost-standard-name>button{position:absolute;top:3px;right:3px;width:21px;height:19px;padding:0;border:1px solid #cbd8e6;border-radius:5px;color:#6d7e91;background:#eef3f8;font-size:8px;font-weight:800;cursor:pointer}.cost-standard-name>button:hover{color:#285f8e;border-color:#8db1d1;background:#e7f1fa}.cost-standard-name>button.confirmed{color:#147657;border-color:#a9d9c7;background:#e9f8f2}.cost-standard-name-tag{display:block;margin-top:2px;color:#168064;font-size:7px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cost-line-table.auxiliary .cost-line-head,.cost-line-table.auxiliary .cost-line-row{grid-template-columns:28px minmax(135px,1.1fr) minmax(110px,.9fr) 104px 100px 54px 108px 64px 26px;min-width:790px}
.cost-line-table.manufacturing .cost-line-head,.cost-line-table.manufacturing .cost-line-row{grid-template-columns:28px minmax(130px,1.3fr) 104px 82px 64px minmax(95px,.9fr) 76px 26px;min-width:624px}
.cost-line-table.logistics-items .cost-line-head,.cost-line-table.logistics-items .cost-line-row{grid-template-columns:28px minmax(130px,1.3fr) 104px 82px 78px 76px 26px;min-width:555px}
.cost-purchase-input{border-color:#68a6c6!important;background:#eef9fc!important;font-weight:700!important}.cost-purchase-input::placeholder{color:#7396aa;opacity:.85}
.cost-benchmark-suggest{display:flex!important;flex-direction:column;gap:5px}.cost-benchmark-suggest>span{color:#59677a;font-size:10px;font-weight:650}.cost-benchmark-suggest button{width:100%;height:30px;padding:0 8px;border:1px solid #b9cee4;border-radius:7px;color:#315f8d;background:#edf5fc;font:inherit;font-size:10px;font-weight:700;cursor:pointer}.cost-benchmark-suggest button:hover{border-color:#75a1cb;background:#e4f0fb}
.cost-line-row output{color:#526174;font-size:10px;text-align:right}
.cost-line-row output:nth-last-child(2){color:#1f4f7d;font-weight:700}
.cost-auto-note{margin:7px 3px 0;color:#8290a2;font-size:9px;line-height:1.45}
.cost-line-remove{width:25px;height:25px;border:0;border-radius:6px;color:#a36d68;background:#fff1f0;font-size:15px;cursor:pointer}
.cost-unit-input{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid #bfd2e6;border-radius:6px;background:#f6faff;overflow:hidden}.cost-unit-input input{border:0!important;border-radius:0!important;background:transparent!important}.cost-unit-input span,.cost-unit-input select{height:25px;padding:0 4px;border:0;border-left:1px solid #d7e3ee!important;border-radius:0!important;background:#edf4fa!important;color:#65778b;font-size:8px;white-space:nowrap}.cost-unit-input select{width:46px;padding:0 2px;cursor:pointer}
.cost-percent-input{position:relative}.cost-percent-input input{padding-right:15px}.cost-percent-input i{position:absolute;right:5px;top:7px;color:#8290a2;font-size:8px;font-style:normal}
.cost-line-table.packaging .cost-line-head,.cost-line-table.packaging .cost-line-row{grid-template-columns:28px 68px minmax(95px,1.05fr) minmax(92px,1fr) minmax(90px,1fr) 88px 58px 54px 52px 62px minmax(105px,1.05fr) 26px;min-width:820px}
.cost-quote-hint{height:25px;padding:0 5px;border:1px solid #d9e2ec;border-radius:6px;color:#6b7889;background:#f8fafc;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.cost-quote-hint.low{color:#087a57;border-color:#bfe7d8;background:#ecf9f4}.cost-quote-hint.fair{color:#93631f;border-color:#f0d8aa;background:#fff8e9}.cost-quote-hint.high{color:#b0443e;border-color:#efc4c1;background:#fff3f2}.cost-quote-hint:hover{filter:brightness(.98);box-shadow:0 0 0 2px rgba(49,95,141,.06)}
.cost-standard-overlay{z-index:10050!important;align-items:center;justify-content:center;background:rgba(19,32,50,.56)!important}.cost-standard-modal{width:min(520px,calc(100vw - 28px));border-radius:14px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.26);overflow:hidden}.cost-standard-modal header{display:flex;align-items:flex-start;justify-content:space-between;padding:17px 18px;border-bottom:1px solid #e7ebf0}.cost-standard-modal h3{margin:0;color:#1b2f49;font-size:17px}.cost-standard-modal header p{margin:5px 0 0;color:#7b8899;font-size:10px}.cost-standard-modal header>button{width:31px;height:31px;border:0;border-radius:8px;color:#748193;background:#f1f4f7;font-size:20px;cursor:pointer}.cost-standard-manual{display:grid;grid-template-columns:minmax(0,1fr) 105px;gap:8px;padding:14px 18px}.cost-standard-manual input,.cost-standard-manual button{height:35px;border:1px solid #cad7e5;border-radius:8px}.cost-standard-manual input{padding:0 10px;outline:0;color:#263a52;background:#f8fbfe}.cost-standard-manual button{color:#fff;border-color:#326d9f;background:#3978ad;font-size:10px;font-weight:750;cursor:pointer}.cost-standard-candidates{display:flex;flex-direction:column;gap:6px;min-height:70px;padding:0 18px 14px}.cost-standard-candidates>b{color:#59697c;font-size:9px}.cost-standard-candidates>span{padding:16px;color:#8b97a7;text-align:center;font-size:10px}.cost-standard-candidates>button{display:flex;align-items:center;justify-content:space-between;padding:9px 11px;border:1px solid #e0e7ef;border-radius:8px;color:#34485f;background:#fbfcfe;cursor:pointer}.cost-standard-candidates>button:hover{border-color:#a7c2dc;background:#f0f6fb}.cost-standard-candidates strong{font-size:11px}.cost-standard-candidates span{color:#8a97a8;font-size:9px}.cost-standard-modal footer{display:flex;justify-content:flex-end;gap:7px;padding:11px 18px;border-top:1px solid #e7ebf0;background:#fafbfd}.cost-standard-modal footer button{height:31px;padding:0 12px;border:1px solid #d7e0e9;border-radius:7px;color:#59697c;background:#fff;font-size:9px;cursor:pointer}.cost-standard-modal footer button:first-child{margin-right:auto;color:#aa4e48;border-color:#efd0ce;background:#fff8f7}
.cost-standard-batch-overlay{z-index:10090!important;align-items:center!important;justify-content:center!important;background:rgba(12,27,44,.68)!important}.cost-standard-batch{display:flex;flex-direction:column;width:min(900px,calc(100vw - 32px));max-height:min(720px,calc(100vh - 32px));border-radius:14px;background:#fff;box-shadow:0 28px 80px rgba(0,0,0,.3);overflow:hidden}.cost-standard-batch>header{display:flex;align-items:flex-start;justify-content:space-between;padding:17px 19px;border-bottom:1px solid #dde5ec}.cost-standard-batch h3{margin:0;color:#1d354d;font-size:18px}.cost-standard-batch header p{margin:5px 0 0;color:#75879a;font-size:10px}.cost-standard-batch header>button{width:32px;height:32px;border:0;border-radius:8px;color:#6c7f91;background:#eef3f6;font-size:20px;cursor:pointer}.cost-standard-batch-body{flex:1;min-height:0;padding:10px 14px;overflow:auto}.cost-standard-batch-head,.cost-standard-batch-body>label{display:grid;grid-template-columns:28px 60px minmax(150px,1fr) minmax(150px,1fr) 150px;gap:10px;align-items:center}.cost-standard-batch-head{padding:6px 8px;color:#8191a1;font-size:8px;font-weight:750}.cost-standard-batch-body>label{min-height:42px;padding:7px 8px;border-top:1px solid #e7edf2;color:#52677b;font-size:9px}.cost-standard-batch-body>label:hover{background:#f7fafc}.cost-standard-batch-body>label.disabled{color:#9aa5b0;background:#fafbfc}.cost-standard-batch-body>label input{width:15px;height:15px}.cost-standard-batch-body>label b{color:#334b62}.cost-standard-batch-body>label strong{color:#246386}.cost-standard-batch-body>label small{color:#8494a3;line-height:1.35}.cost-standard-batch>footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:11px 16px;border-top:1px solid #dde5ec;background:#f8fafc}.cost-standard-batch>footer>span{margin-right:auto;color:#718496;font-size:9px}.cost-standard-batch>footer button{height:33px;padding:0 13px;border:1px solid #d3dde6;border-radius:8px;color:#526a7f;background:#fff;font-size:9px;font-weight:700;cursor:pointer}.cost-standard-batch>footer button.primary{color:#fff;border-color:#2f6f99;background:#376f96}.cost-standard-batch>footer button:disabled{opacity:.45;cursor:not-allowed}
.cost-adjust{display:grid!important;grid-template-columns:165px 130px 1fr;align-items:center!important;gap:8px!important;margin-top:10px;padding-top:10px;border-top:1px dashed #e4e8ee}
.cost-adjust small,.cost-fee-grid small{color:#98a2b3;font-size:9px;font-weight:400}
.cost-fee-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.cost-fee-grid.logistics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:0}
.cost-fee-grid .trip-field,.cost-fee-grid .tax-field,.cost-fee-grid .profit-factor{display:none}.cost-fee-grid .visible{display:flex}
.cost-notes{margin-top:13px}
.cost-live-summary{position:sticky;top:0;align-self:start;max-height:calc(100vh - 130px);box-sizing:border-box;padding:16px 18px;overflow-y:auto;overscroll-behavior:contain;border:1px solid #d7e2ee;border-radius:14px;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 12px 30px rgba(31,55,82,.09)}
.cost-summary-title{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid #edf0f4}
.cost-summary-title span{color:#203550;font-size:13px;font-weight:750}.cost-summary-title small{color:#98a2b3;font-size:9px}
.cost-summary-total{padding:0 0 12px;text-align:center}.cost-summary-total span,.cost-summary-total small{display:block;color:#8390a1;font-size:10px}
.cost-summary-total strong{display:block;margin:0 0 5px;color:#1d4f7f;font-size:35px;line-height:1;letter-spacing:-.045em}
.cost-summary-lines{padding:5px 0;border-top:1px solid #edf0f4;border-bottom:1px solid #edf0f4}
.cost-summary-line-head{display:grid;grid-template-columns:minmax(0,1fr) 53px 67px;gap:7px;padding:0 8px 4px 10px;color:#98a2b3;font-size:8px;font-weight:650}
.cost-summary-line-head span:nth-child(n+2){text-align:right}
.cost-summary-lines>div:not(.cost-summary-line-head){display:grid;grid-template-columns:minmax(0,1fr) 53px 67px;gap:7px;align-items:center;margin:3px 0;padding:6px 8px 6px 10px;border-left:3px solid var(--cost-tone,#8090a4);border-radius:7px;color:#617085;background:linear-gradient(90deg,var(--cost-soft,#f5f7fa),rgba(255,255,255,.7));font-size:10px}
.cost-summary-lines .raw{--cost-tone:#23876b;--cost-soft:#eaf7f2}.cost-summary-lines .auxiliary{--cost-tone:#6f84b9;--cost-soft:#f0f3fb}.cost-summary-lines .manufacturing{--cost-tone:#316bc6;--cost-soft:#edf3fd}.cost-summary-lines .processing{--cost-tone:#4f6f9e;--cost-soft:#eef3fa}.cost-summary-lines .packaging{--cost-tone:#8b5bb5;--cost-soft:#f4eff9}.cost-summary-lines .logistics{--cost-tone:#238f9d;--cost-soft:#eaf7f8}.cost-summary-lines .production{--cost-tone:#d18727;--cost-soft:#fdf5e9}.cost-summary-lines .tax{--cost-tone:#b55d67;--cost-soft:#faeff1}
.cost-summary-lines span{font-weight:650}.cost-summary-lines b{color:#2b3c52;font-size:11px;text-align:right}.cost-summary-lines small{min-width:0;color:var(--cost-tone,#b07b35);font-size:8px;font-weight:750;text-align:right}
.cost-summary-lines>div:not(.cost-summary-line-head):has(small[data-assessment="偏高"]){border-left-color:#b34843;background:linear-gradient(90deg,#faeeee,rgba(255,255,255,.7))}.cost-summary-lines small[data-assessment="偏高"]{color:#9e2f2b;font-size:12px}.cost-summary-lines>div:not(.cost-summary-line-head):has(small[data-assessment="偏低"]){border-left-color:#168265;background:linear-gradient(90deg,#edf8f2,rgba(255,255,255,.7))}.cost-summary-lines small[data-assessment="偏低"]{color:#168265;font-size:12px}.cost-summary-lines small[data-assessment="合理"]{color:#7b8798;font-size:12px}.cost-summary-lines small[data-assessment="样本不足"],.cost-summary-lines small[data-assessment="待设组"]{color:#9ca8b6;font-size:12px}
.cost-summary-lines span i{margin-left:3px;color:#a87937;font-size:7px;font-style:normal;font-weight:600}
.cost-summary-lines .tax-summary{color:#8a6c51}
.cost-formula-note{margin-top:8px;padding:7px 8px;border-radius:7px;color:#6f7f92;background:#f8fafc;font-size:8px;line-height:1.4}
.cost-quote-audit{margin-top:10px;padding-top:10px;border-top:1px solid #e5eaf0}
.cost-audit-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.cost-audit-head>div{display:flex;align-items:center;gap:7px}.cost-audit-head span{color:#273b54;font-size:11px;font-weight:800}.cost-audit-head b{color:#637388;font-size:9px}.cost-audit-head em{padding:4px 7px;border-radius:999px;font-size:8px;font-style:normal;font-weight:800}.cost-audit-head em.ok{color:#147657;background:#e9f7f1}.cost-audit-head em.watch{color:#9a681e;background:#fff4dd}.cost-audit-head em.high{color:#a5322d;background:#fdeceb}
.cost-audit-recomputed{margin:8px 0;padding:8px 9px;border:1px solid #dfe7ef;border-radius:8px;background:#f8fbfe}.cost-audit-recomputed span,.cost-audit-recomputed small{display:block;color:#7d8b9d;font-size:8px}.cost-audit-recomputed strong{display:block;margin:3px 0;color:#1d4f7f;font-size:17px}.cost-audit-recomputed small{line-height:1.35}
.cost-audit-items{display:flex;flex-direction:column;gap:5px}.cost-audit-item{display:grid;grid-template-columns:6px minmax(0,1fr);gap:7px;padding:7px;border-radius:7px;background:#f6f8fb}.cost-audit-item>i{width:5px;height:5px;margin-top:4px;border-radius:50%;background:#8897a9}.cost-audit-item p{min-width:0;margin:0}.cost-audit-item b,.cost-audit-item span{display:block}.cost-audit-item b{color:#3c4f66;font-size:9px}.cost-audit-item span{margin-top:2px;color:#77869a;font-size:8px;line-height:1.4}.cost-audit-item.danger{background:#fff1f0}.cost-audit-item.danger>i{background:#bd3d36}.cost-audit-item.danger b{color:#a5322d}.cost-audit-item.warning{background:#fff8e9}.cost-audit-item.warning>i{background:#d18b27}.cost-audit-item.warning b{color:#92601b}.cost-audit-item.success{background:#edf9f4}.cost-audit-item.success>i{background:#1b8c67}.cost-audit-item.success b{color:#147657}
.cost-audit-launch{display:flex;align-items:center;gap:8px;height:38px;padding:0 11px;border:1px solid #d7e2ee;border-radius:9px;color:#315f8d;background:#f5f9fd;font-size:10px;font-weight:750;cursor:pointer;white-space:nowrap}.cost-audit-launch b{padding:3px 7px;border-radius:999px;color:#718198;background:#e9eef4;font-size:8px}.cost-audit-launch.watch{color:#8b5f1d;border-color:#eed7a9;background:#fff9ec}.cost-audit-launch.watch b{color:#8b5f1d;background:#f9e9c8}.cost-audit-launch.high{color:#a53a34;border-color:#efc7c4;background:#fff5f4}.cost-audit-launch.high b{color:#a53a34;background:#f9dfdc}.cost-audit-launch.ok{color:#167457;border-color:#bfe2d5;background:#f1faf6}.cost-audit-launch.ok b{color:#167457;background:#dff2e9}
.cost-audit-overlay{z-index:10070!important;align-items:stretch!important;justify-content:stretch!important;padding:0!important;background:rgba(18,31,48,.72)!important;backdrop-filter:blur(8px)}
.cost-audit-page{display:flex;flex-direction:column;width:100vw;height:100vh;background:#f3f6f9;overflow:hidden}.cost-audit-page-header{display:flex;align-items:center;gap:10px;min-height:64px;padding:10px 22px;border-bottom:1px solid #dce4ed;background:#fff}.cost-audit-page-header>div{display:flex;flex-direction:column;flex:1}.cost-audit-page-header>div span{color:#65809b;font-size:8px;font-weight:800;letter-spacing:.14em}.cost-audit-page-header>div b{margin-top:2px;color:#17283f;font-size:20px}.cost-audit-page-header>button{height:36px;padding:0 13px;border:1px solid #d8e1eb;border-radius:9px;color:#496178;background:#f8fafc;font-size:10px;font-weight:700;cursor:pointer}.cost-audit-page-header>button:hover{border-color:#315f8d;color:#315f8d}.cost-audit-page-header .cost-audit-page-close{width:36px;padding:0;color:#6d7988;font-size:22px}
.cost-audit-page-content{flex:1;min-height:0;padding:16px 18px 26px;overflow:auto}.cost-audit-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 auto 12px;max-width:1500px;padding:18px 20px;border:1px solid #dbe5ee;border-radius:14px;background:linear-gradient(135deg,#fff 35%,#edf5fb)}.cost-audit-hero>div:first-child>span{color:#3a6d9b;font-size:9px;font-weight:800;letter-spacing:.12em}.cost-audit-hero h1{margin:5px 0 3px;color:#14263c;font-size:25px;letter-spacing:-.025em}.cost-audit-hero p{margin:0;color:#7f8c9d;font-size:10px}.cost-audit-result{display:flex;flex-direction:column;min-width:150px;padding:12px 14px;border:1px solid #dce5ee;border-radius:11px;background:#fff}.cost-audit-result small,.cost-audit-result span{color:#8693a3;font-size:9px}.cost-audit-result b{margin:3px 0;color:#1c775b;font-size:18px}.cost-audit-result.watch b{color:#936420}.cost-audit-result.high b{color:#a43c36}
.cost-audit-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:1500px;margin:0 auto 12px}.cost-audit-kpis>div{min-width:0;padding:13px 15px;border:1px solid #e0e6ed;border-radius:12px;background:#fff}.cost-audit-kpis span,.cost-audit-kpis small,.cost-audit-kpis b{display:block}.cost-audit-kpis span{color:#718196;font-size:9px}.cost-audit-kpis b{margin:5px 0;color:#263b55;font-size:20px}.cost-audit-kpis small{color:#9aa5b2;font-size:8px;line-height:1.4}.cost-audit-kpis .opportunity{border-color:#ead9ba;background:linear-gradient(135deg,#fff,#fff9ed)}.cost-audit-kpis .opportunity b{color:#9a671d}
.cost-audit-page-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:12px;max-width:1500px;margin:0 auto}.cost-audit-page-grid>main,.cost-audit-page-grid>aside{display:flex;flex-direction:column;gap:12px;min-width:0}.cost-audit-panel{min-width:0;border:1px solid #dfe6ee;border-radius:13px;background:#fff;overflow:hidden}.cost-audit-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-bottom:1px solid #e7ebf0}.cost-audit-panel>header>div{display:flex;flex-direction:column}.cost-audit-panel>header b{color:#273b53;font-size:12px}.cost-audit-panel>header span,.cost-audit-panel>header em{margin-top:2px;color:#909baa;font-size:8px;font-style:normal}.cost-audit-issue-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:13px}.cost-audit-issue-columns h3{margin:0 0 8px;color:#66768b;font-size:9px;font-weight:800}.cost-audit-page-issue{display:grid;grid-template-columns:7px minmax(0,1fr);gap:8px;margin-bottom:7px;padding:9px 10px;border-radius:9px;background:#f6f8fb}.cost-audit-page-issue>i{width:6px;height:6px;margin-top:4px;border-radius:50%;background:#8897a9}.cost-audit-page-issue b{color:#3d4f65;font-size:10px}.cost-audit-page-issue p{margin:3px 0 0;color:#77869a;font-size:9px;line-height:1.5}.cost-audit-page-issue.danger{background:#fff1f0}.cost-audit-page-issue.danger>i{background:#be3f38}.cost-audit-page-issue.danger b{color:#a63630}.cost-audit-page-issue.warning{background:#fff8e9}.cost-audit-page-issue.warning>i{background:#d18b27}.cost-audit-page-issue.warning b{color:#93601b}.cost-audit-page-issue.success{background:#edf9f4}.cost-audit-page-issue.success>i{background:#1b8c67}.cost-audit-page-issue.success b{color:#16785a}.cost-audit-page-empty{padding:16px;border-radius:9px;color:#8a97a6;background:#f7f9fb;font-size:9px;text-align:center}
.cost-audit-compare{min-width:1050px;padding:0 13px 13px}.cost-audit-compare-head,.cost-audit-compare-row{display:grid;grid-template-columns:75px minmax(180px,1.35fr) 115px 105px 130px 95px 120px 145px;gap:9px;align-items:center}.cost-audit-compare-head{padding:9px 8px;color:#929dac;font-size:8px;font-weight:750}.cost-audit-compare-row{min-height:50px;padding:8px;border-top:1px solid #edf0f4;color:#53647a;font-size:9px}.cost-audit-compare-row>b,.cost-audit-compare-row>strong{color:#2d4058}.cost-audit-compare-row b small,.cost-audit-compare-row strong small,.cost-audit-compare-row>span small{display:block;margin-top:3px;color:#98a3af;font-size:7px;font-weight:400}.cost-audit-compare-row em{justify-self:start;padding:4px 7px;border-radius:999px;color:#5f7187;background:#edf1f5;font-size:8px;font-style:normal;font-weight:800}.cost-audit-compare-row em.high{color:#a23b35;background:#fbe5e3}.cost-audit-compare-row em.low{color:#18785c;background:#e5f5ed}.cost-audit-compare-row em.wait{color:#876d42;background:#f4eee2}.cost-audit-compare-row em.ok{color:#53677d;background:#eef2f6}
.cost-audit-compare-item[hidden]{display:none}.cost-audit-compare-row em.preliminary{color:#8f641f;background:#fff1d8}.cost-audit-compare-row>span:last-child>button{display:block;margin-top:5px;padding:2px 0;border:0;color:#2e658f;background:transparent;font-size:7px;font-weight:750;cursor:pointer}.cost-audit-compare-row>span:last-child>button:hover{text-decoration:underline}.cost-audit-sources{margin:0 8px 8px;padding:8px 10px;border:1px solid #dce6ee;border-radius:8px;background:#f7fafc}.cost-audit-source-head,.cost-audit-source-row{display:grid;grid-template-columns:minmax(190px,1.4fr) minmax(180px,1.2fr) 100px 125px 90px;gap:10px;align-items:center}.cost-audit-source-head{padding:2px 5px 6px;color:#8495a5;font-size:7px;font-weight:750}.cost-audit-source-row{min-height:34px;padding:5px;border-top:1px solid #e3eaf0;color:#607489;font-size:8px}.cost-audit-source-row b,.cost-audit-source-row strong{color:#294860}.cost-audit-source-row strong small{color:#8a98a6;font-size:7px;font-weight:400}.cost-audit-evidence-head .cost-audit-evidence-tools{align-items:flex-end;gap:5px}.cost-audit-evidence-tools>span{display:flex;gap:5px;margin:0!important}.cost-audit-evidence-tools button{height:25px;padding:0 9px;border:1px solid #d6e1ea;border-radius:7px;color:#60778c;background:#fff;font-size:8px;font-weight:700;cursor:pointer}.cost-audit-evidence-tools button:hover,.cost-audit-evidence-tools button.active{border-color:#517a9c;color:#fff;background:#416d91}
.cost-audit-foundation>div{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #edf0f4;color:#75849a;font-size:9px}.cost-audit-foundation>div b{color:#2f445d;font-size:14px}.cost-audit-foundation>p,.cost-audit-scope>p{margin:0;padding:12px 14px;color:#8491a2;font-size:8px;line-height:1.6}.cost-audit-actions{padding:10px}.cost-audit-action-row{display:grid;grid-template-columns:24px minmax(0,1fr);gap:7px;padding:9px;border-bottom:1px solid #edf0f4}.cost-audit-action-row>i{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;color:#9a671d;background:#fff0d2;font-size:9px;font-style:normal;font-weight:800}.cost-audit-action-row>div b,.cost-audit-action-row>div span,.cost-audit-action-row>strong{display:block}.cost-audit-action-row>div b{color:#3a4e66;font-size:9px}.cost-audit-action-row>div span{margin-top:3px;color:#8290a0;font-size:8px;line-height:1.45}.cost-audit-action-row>strong{grid-column:2;margin-top:2px;color:#99651b;font-size:9px}
.cost-audit-standardize{width:calc(100% - 28px);height:32px;margin:10px 14px 0;border:1px solid #b8cede;border-radius:8px;color:#2d6389;background:#f1f7fb;font-size:9px;font-weight:750;cursor:pointer}.cost-audit-standardize:hover{border-color:#668da9;background:#e7f1f7}

/* 完整报价审计：独立的审计蓝灰体系，不跟随首页绿色看板。 */
.cost-audit-overlay{background:rgba(10,25,42,.78)!important;backdrop-filter:blur(10px)}
.cost-audit-page{background:#edf2f6}.cost-audit-page-header{border-color:#24435e;background:#172f47}.cost-audit-page-header>div span{color:#9db8cf}.cost-audit-page-header>div b{color:#fff}.cost-audit-page-header>button{border-color:#46647d;color:#d9e6f0;background:rgba(255,255,255,.06)}.cost-audit-page-header>button:hover{border-color:#b7d0e4;color:#fff;background:rgba(255,255,255,.13)}.cost-audit-page-header .cost-audit-page-close{color:#d9e6f0}
.cost-audit-hero{border:1px solid #cad9e6;border-left:5px solid #285e8d;background:#fff;box-shadow:0 6px 18px rgba(23,47,71,.06)}.cost-audit-hero>div:first-child>span{color:#46779f}.cost-audit-hero h1{color:#172f47}.cost-audit-result{border-color:#cfdae5;background:#f7fafc}.cost-audit-result b{color:#245f79}.cost-audit-result.watch{border-color:#e5cb9c;background:#fffaf0}.cost-audit-result.watch b{color:#9a671d}.cost-audit-result.high{border-color:#e1b8b5;background:#fff6f5}.cost-audit-result.high b{color:#9e3c37}
.cost-audit-kpis>div{border-color:#d4e0e9;border-top:3px solid #6687a4;background:#fff;box-shadow:0 4px 12px rgba(23,47,71,.04)}.cost-audit-kpis span{color:#62778c}.cost-audit-kpis b{color:#1d3d59}.cost-audit-kpis .opportunity{border-color:#dfc795;border-top-color:#b7791f;background:#fffcf5}.cost-audit-kpis .opportunity b{color:#94621d}
.cost-audit-panel{border-color:#d2dee8;box-shadow:0 4px 14px rgba(23,47,71,.035)}.cost-audit-panel>header{border-bottom-color:#dce5ec;background:#f8fafc}.cost-audit-panel>header b{color:#203e5a}.cost-audit-panel>header span,.cost-audit-panel>header em{color:#7890a4}.cost-audit-issue-columns h3{color:#49667f}.cost-audit-page-issue{border-left:3px solid #8298aa;border-radius:7px;background:#f5f8fa}.cost-audit-page-issue b{color:#304c65}.cost-audit-page-issue p{color:#6f8293}.cost-audit-page-issue.danger{border-left-color:#ae4a44;background:#fff3f2}.cost-audit-page-issue.danger b{color:#9e3c37}.cost-audit-page-issue.warning{border-left-color:#bf8426;background:#fff9ed}.cost-audit-page-issue.warning b{color:#93631c}.cost-audit-page-issue.success{border-left-color:#397d68;background:#eff8f4}.cost-audit-page-issue.success b{color:#246b58}.cost-audit-page-empty{color:#718598;background:#f2f6f9}
.cost-audit-compare-head{color:#71879a;background:#eef3f7}.cost-audit-compare-row{border-top-color:#e2e9ef;color:#50657a}.cost-audit-compare-row:hover{background:#f8fbfd}.cost-audit-compare-row>b,.cost-audit-compare-row>strong{color:#29455f}.cost-audit-compare-row em{color:#52708a;background:#e8eff5}.cost-audit-compare-row em.high{color:#9e3c37;background:#fae7e5}.cost-audit-compare-row em.low{color:#276d59;background:#e4f3ec}.cost-audit-compare-row em.ok{color:#46657e;background:#e7eef4}
.cost-audit-foundation>div{border-bottom-color:#e3e9ef;color:#647b8f}.cost-audit-foundation>div b{color:#25445f}.cost-audit-foundation>p,.cost-audit-scope>p{color:#708397}.cost-audit-action-row{border-bottom-color:#e3e9ef}.cost-audit-action-row>i{color:#8d601c;background:#f8ebcf}.cost-audit-action-row>div b{color:#2d4b64}.cost-audit-action-row>div span{color:#718496}.cost-audit-action-row>strong{color:#8f611d}
@media(max-width:980px){.cost-audit-kpis{grid-template-columns:1fr 1fr}.cost-audit-page-grid{grid-template-columns:1fr}.cost-audit-issue-columns{grid-template-columns:1fr}.cost-audit-panel:has(.cost-audit-compare){overflow-x:auto}}
@media(max-width:760px){.cost-audit-launch span{display:none}.cost-audit-page-header{padding:9px 11px}.cost-audit-page-header>div b{font-size:17px}.cost-audit-page-header>button:not(.cost-audit-page-close){font-size:0}.cost-audit-page-header>button:not(.cost-audit-page-close):after{content:'返回';font-size:10px}.cost-audit-page-content{padding:9px 9px 22px}.cost-audit-hero{align-items:stretch;flex-direction:column;padding:14px}.cost-audit-hero h1{font-size:21px}.cost-audit-result{min-width:0}.cost-audit-kpis{gap:7px}.cost-audit-kpis>div{padding:10px}.cost-audit-kpis b{font-size:16px}.cost-audit-page-grid{gap:9px}}
.cost-editor-footer{display:flex;align-items:center;justify-content:space-between;min-height:62px;padding:10px 18px;border-top:1px solid #dfe5ed;background:#fff}
.cost-editor-footer>div{display:flex;gap:8px}.cost-editor-footer .btn{height:35px;padding:0 15px;border-radius:8px;font-size:11px}
.cost-delete-btn{color:#b23c35!important;border-color:#f1c4c1!important;background:#fff8f7!important}

/* 包材历史比价 */
.cost-compare-overlay{z-index:10040!important;padding:28px!important;background:rgba(18,31,48,.72)!important;backdrop-filter:blur(7px)}
.cost-compare-modal{display:flex;flex-direction:column;width:min(1260px,96vw);max-height:calc(100vh - 56px);border-radius:15px;background:#f5f7fa;box-shadow:0 28px 90px rgba(0,0,0,.3);overflow:hidden}
.cost-compare-modal>header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #dfe5ed;background:#fff}.cost-compare-modal>header span{color:#356792;font-size:9px;font-weight:800;letter-spacing:.14em}.cost-compare-modal>header h2{margin:4px 0 3px;color:#17283f;font-size:22px}.cost-compare-modal>header p{margin:0;color:#8995a5;font-size:10px}.cost-compare-modal>header>button{width:36px;height:36px;border:1px solid #dbe3ec;border-radius:9px;color:#6c7989;background:#f8fafc;font-size:24px;cursor:pointer}
.cost-compare-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 150px 190px auto;gap:8px;padding:13px 18px;background:#fff}.cost-compare-toolbar>input,.cost-compare-toolbar select,.cost-compare-toolbar>button,.cost-compare-search{height:37px;border:1px solid #d5dee9;border-radius:8px;background:#fff;color:#405168;font-size:11px}.cost-compare-toolbar>input,.cost-compare-toolbar select{padding:0 10px}.cost-compare-toolbar>button{padding:0 14px;cursor:pointer}.cost-compare-search{display:flex;align-items:center;gap:7px;padding:0 10px}.cost-compare-search span{color:#738399;font-size:17px}.cost-compare-search input{width:100%;border:0;outline:0;background:transparent;color:#32435a;font-size:11px}
.cost-compare-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding:12px 18px}.cost-compare-kpis>div{padding:12px 14px;border:1px solid #e1e7ef;border-radius:10px;background:#fff}.cost-compare-kpis span,.cost-compare-kpis small{color:#8b97a7;font-size:9px}.cost-compare-kpis b{display:block;margin:5px 0 2px;color:#1f3e62;font-size:20px}.cost-compare-kpis small{margin-left:3px}
.cost-compare-note{margin:0 18px 10px;padding:9px 11px;border:1px solid #f0dfbd;border-radius:8px;color:#8a6a35;background:#fffaef;font-size:9px;line-height:1.55}
.cost-compare-table{min-height:0;margin:0 18px 18px;border:1px solid #e0e6ee;border-radius:10px;background:#fff;overflow:auto}.cost-compare-head,.cost-compare-row{display:grid;grid-template-columns:42px minmax(180px,1.25fr) minmax(130px,1fr) 105px 90px 95px 90px minmax(170px,1.2fr);gap:9px;align-items:center;min-width:980px}.cost-compare-head{position:sticky;z-index:2;top:0;padding:10px 12px;border-bottom:1px solid #dfe6ee;color:#7b8797;background:#f7f9fc;font-size:9px;font-weight:750}.cost-compare-row{padding:10px 12px;border-bottom:1px solid #edf1f5;color:#5e6d80;font-size:10px}.cost-compare-row:hover{background:#f9fbfd}.cost-compare-row>b{color:#24374f;font-size:10px}.cost-compare-row b small{display:block;margin-top:3px;color:#8f9bac;font-size:8px;font-weight:500}.cost-compare-row strong{color:#1e4d78;font-size:11px}.cost-compare-row em{display:inline-flex;justify-content:center;padding:4px 7px;border-radius:999px;font-size:8px;font-style:normal;font-weight:750}.cost-compare-row em.low{color:#087a57;background:#eaf8f2}.cost-compare-row em.fair{color:#95651f;background:#fff5df}.cost-compare-row em.high{color:#b0443e;background:#fff0ef}.cost-compare-row em.neutral{color:#6c7888;background:#eef2f6}
.cost-compare-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:210px;color:#98a2b3;font-size:10px}.cost-compare-empty b{color:#536174;font-size:13px}.cost-compare-empty.cost-error{color:#b0443e}

/* 多产品报价横向比价 */
.cost-select-cell{width:34px!important;min-width:34px!important;text-align:center!important}.cost-select-cell input{width:15px;height:15px;accent-color:#2c67d8;cursor:pointer}.cost-cross-btn{color:#fff!important;border-color:#245cc5!important;background:#2f6bdc!important;box-shadow:0 4px 11px rgba(47,107,220,.2)!important}.cost-cross-btn:disabled{opacity:.45;cursor:not-allowed}.cost-cross-btn em{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;margin-left:4px;border-radius:99px;color:#245cc5;background:#fff;font-size:10px;font-style:normal}.cost-cross-overlay{z-index:10060!important;padding:18px!important;background:rgba(17,30,47,.78)!important;backdrop-filter:blur(8px)}.cost-cross-modal{display:flex;flex-direction:column;width:calc(100vw - 36px);height:calc(100vh - 36px);border-radius:16px;background:#f5f7fa;box-shadow:0 28px 90px rgba(0,0,0,.34);overflow:hidden}.cost-cross-modal>header{display:flex;align-items:center;justify-content:space-between;padding:17px 22px;border-bottom:1px solid #dfe6ee;background:#fff}.cost-cross-modal>header span{color:#3368a4;font-size:9px;font-weight:800;letter-spacing:.15em}.cost-cross-modal>header h2{margin:4px 0;color:#17283f;font-size:22px}.cost-cross-modal>header p{margin:0;color:#7f8c9d;font-size:10px}.cost-cross-modal>header button{width:36px;height:36px;border:1px solid #dbe3ec;border-radius:9px;color:#6c7989;background:#f8fafc;font-size:24px;cursor:pointer}.cost-cross-products,.cost-cross-row{display:grid;grid-template-columns:minmax(190px,1.1fr) repeat(var(--cc-cols),minmax(190px,1fr));min-width:calc(190px + var(--cc-cols) * 190px)}.cost-cross-products{position:relative;z-index:2;border-bottom:1px solid #dce4ed;background:#f9fbfd;box-shadow:0 4px 10px rgba(29,57,85,.04)}.cost-cross-products>div{padding:12px 14px;border-right:1px solid #e4eaf1}.cost-cross-products b{display:block;color:#1d2f47;font-size:12px}.cost-cross-products span,.cost-cross-products small{display:block;margin-top:4px;color:#8592a2;font-size:9px}.cost-cross-products strong{display:block;margin-top:8px;color:#1f5da8;font-size:15px}.cost-cross-corner{display:flex;align-items:center;color:#64748b;font-size:10px;font-weight:750}.cost-cross-modal main{min-height:0;overflow:auto;padding:14px 18px 28px}.cost-cross-modal section{margin-bottom:14px;border:1px solid #dde5ee;border-radius:11px;background:#fff;overflow:hidden}.cost-cross-modal section h3{margin:0;padding:10px 14px;border-bottom:1px solid #e7edf3;color:#264969;background:#f7faff;font-size:12px}.cost-cross-modal section h3 small{margin-left:6px;color:#91a0af;font-size:9px;font-weight:500}.cost-cross-row{border-bottom:1px solid #eef2f6}.cost-cross-row:last-child{border-bottom:0}.cost-cross-name{padding:11px 14px;background:#fcfdff}.cost-cross-name b{display:block;color:#334a63;font-size:11px}.cost-cross-name small{display:block;margin-top:3px;color:#97a3b1;font-size:8px}.cost-cross-cell{min-height:60px;padding:9px 12px;border-left:1px solid #edf1f5}.cost-cross-cell b{display:block;color:#294867;font-size:12px}.cost-cross-cell span,.cost-cross-cell small{display:block;margin-top:3px;color:#8290a1;font-size:9px}.cost-cross-cell.best{background:linear-gradient(90deg,#effaf4,#fbfefc);box-shadow:inset 3px 0 #2da56a}.cost-cross-cell.best b{color:#087a57}.cost-cross-cell.missing{display:flex;align-items:center;justify-content:center;color:#b5bec8;background:#fafbfc}
.cost-heading-actions{flex-wrap:nowrap;gap:7px}.cost-heading-actions .btn{height:35px;padding:0 11px;font-size:11px}.cost-cross-modal>header{min-height:54px;padding:9px 18px}.cost-cross-modal>header h2{display:inline;margin:0;color:#17283f;font-size:16px;letter-spacing:-.02em}.cost-cross-modal>header p{display:inline;margin-left:11px;color:#8a97a6;font-size:10px}.cost-cross-modal>header button{flex:0 0 30px;width:30px;height:30px;margin-left:14px;border-radius:8px;font-size:21px}
.cost-cross-modal>header{min-height:42px;padding:6px 16px}.cost-cross-modal>header h2{font-size:15px;line-height:1.15}.cost-cross-modal main{padding:9px 14px 18px}.cost-cross-modal section{margin-bottom:9px}.cost-cross-modal section h3{padding:7px 11px;line-height:1.15}.cost-cross-products>div{padding:8px 11px}.cost-cross-products strong{margin-top:5px}.cost-cross-cell{min-height:48px;padding:6px 10px;line-height:1.15}.cost-cross-cell span,.cost-cross-cell small,.cost-cross-name small{margin-top:2px}.cost-cross-name{padding:7px 11px;line-height:1.15}

/* 横向比价采用独立全页面：专注核对、可完整利用屏幕空间。 */
.cost-cross-overlay{position:fixed!important;inset:0!important;display:block!important;padding:0!important;background:#f5f7fa!important;backdrop-filter:none!important}
.cost-cross-modal{width:100vw!important;height:100dvh!important;border-radius:0!important;box-shadow:none!important}
.cost-cross-modal>header{position:sticky;top:0;z-index:4;background:#fff}
.cost-cross-products>div{padding-top:5px;padding-bottom:5px}.cost-cross-products strong{margin-top:3px}.cost-cross-corner{font-size:9px}.cost-cross-products b{line-height:1.1}.cost-cross-products span{margin-top:2px}
.cost-cross-float{position:fixed;z-index:10030;right:24px;bottom:92px;min-height:38px;padding:0 12px;border:1px solid #1f5fcf;border-radius:9px;color:#fff;background:#2f6bdc;box-shadow:0 8px 18px rgba(30,80,160,.2);font-size:11px;font-weight:750;cursor:pointer}.cost-cross-float:hover:not(:disabled){background:#245fc7}.cost-cross-float:disabled{border-color:#d8dee7;color:#8b97a6;background:#f4f6f8;box-shadow:0 4px 10px rgba(35,52,75,.08);cursor:default}.cost-cross-float em{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;margin-left:4px;border-radius:99px;color:#2860c2;background:#fff;font-size:10px;font-style:normal}@media(max-width:760px){.cost-cross-float{right:12px;bottom:76px;min-height:36px;padding:0 10px;font-size:10px}}

/* 经营总览中的成本入口 */
.cost-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.cost-dashboard-grid>div{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #edf0f4;border-radius:9px;background:#fafbfd}
.cost-dashboard-grid i{display:flex;align-items:center;justify-content:center;width:29px;height:29px;border-radius:7px;color:var(--cost-accent);background:color-mix(in srgb,var(--cost-accent) 11%,white);font-size:12px;font-style:normal}
.cost-dashboard-grid p{margin:0}.cost-dashboard-grid b,.cost-dashboard-grid span{display:block}.cost-dashboard-grid b{color:#1d2939;font-size:16px;line-height:1}.cost-dashboard-grid b small{margin-left:3px;color:#98a2b3;font-size:8px;font-weight:500}.cost-dashboard-grid span{margin-top:4px;color:#8491a2;font-size:9px}
.cost-dashboard-enter{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:10px;padding:9px 11px;border:1px solid #dbe7f4;border-radius:8px;color:#315f8d;background:#f5f9fd;font-size:10px;font-weight:700;cursor:pointer}
.cost-dashboard-enter:hover{color:#fff;border-color:#315f8d;background:#315f8d}.cost-dashboard-enter span{font-size:14px}
.cost-dashboard-loading,.cost-dashboard-empty{padding:30px;text-align:center;color:#98a2b3;font-size:10px}.cost-dashboard-empty button{margin-top:8px;border:0;color:#315f8d;background:transparent;cursor:pointer}
.cost-dashboard-locked{display:flex;flex-direction:column;align-items:center;padding:22px 16px;text-align:center}.cost-dashboard-locked>i{display:flex;align-items:center;justify-content:center;width:42px;height:42px;margin-bottom:9px;border-radius:12px;color:#315f8d;background:#edf4fb;font-size:18px;font-style:normal}.cost-dashboard-locked>b{color:#344054;font-size:12px}.cost-dashboard-locked>span{margin:5px 0 12px;color:#98a2b3;font-size:9px;line-height:1.5}.cost-dashboard-locked>button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:9px 11px;border:1px solid #dbe7f4;border-radius:8px;color:#315f8d;background:#f5f9fd;font-size:10px;font-weight:700;cursor:pointer}.cost-dashboard-locked>button:hover{color:#fff;border-color:#315b86;background:#315b86}.cost-dashboard-locked em{font-size:14px;font-style:normal}

@media(max-width:1050px){
  .cost-principle{align-items:flex-start;flex-direction:column}.cost-equation{max-width:100%;overflow-x:auto;padding-bottom:4px}
  .cost-basic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cost-editor-body{grid-template-columns:minmax(0,1fr) 290px}
  .cost-fee-grid.logistics{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .cost-shell{padding:0 0 24px}.cost-heading{align-items:flex-start;flex-direction:column;margin-bottom:12px}.cost-heading h1{font-size:25px}.cost-heading-actions{width:100%}.cost-heading-actions .btn{flex:1;padding:0 9px;font-size:11px}
  .cost-principle{padding:13px}.cost-equation{width:100%}.cost-stats{grid-template-columns:1fr 1fr;gap:8px}.cost-stats>div{min-height:48px;padding:8px 9px 8px 11px}.cost-stats strong{font-size:18px}
  .cost-toolbar{grid-template-columns:1fr 1fr;padding:10px}.cost-search-box{grid-column:1/-1}.cost-toolbar select{width:100%;min-width:0}.cost-toolbar .work-filter-reset{height:38px}
  .cost-table-wrap{-webkit-overflow-scrolling:touch}.cost-editor-overlay{padding:0!important}.cost-editor{height:100vh;border-radius:0}.cost-editor-header{min-height:58px;padding:10px 14px;gap:8px}.cost-editor-header h2{font-size:18px}.cost-editor-meta{display:none}
  .cost-editor-body{display:flex;flex-direction:column;padding:9px;gap:9px}.cost-live-summary{position:static;order:-1;max-height:none;padding:13px;overflow:visible}.cost-summary-total{padding:12px 0}.cost-summary-total strong{font-size:28px}
  .cost-section{padding:14px 12px}.cost-basic-grid{grid-template-columns:1fr 1fr}.cost-basic-grid .wide{grid-column:1/-1}.cost-fee-grid{grid-template-columns:1fr 1fr}.cost-section-head span{display:none}.cost-help{padding-left:0}
  .cost-project-results>button{grid-template-columns:1fr;padding:9px;gap:3px}.cost-project-results small{text-align:left}.cost-project-results{max-height:270px}
  .cost-adjust{grid-template-columns:1fr 110px}.cost-adjust small{grid-column:1/-1}.cost-editor-footer{position:sticky;bottom:0;padding:8px}.cost-editor-footer .btn{padding:0 10px}.cost-delete-btn{font-size:0!important;width:36px;padding:0!important}.cost-delete-btn:after{content:"删";font-size:11px}
}
@media(max-width:760px){.cost-live-summary{align-self:stretch;width:auto}.cost-compare-overlay{padding:0!important}.cost-compare-modal{width:100vw;max-height:100vh;height:100vh;border-radius:0}.cost-compare-modal>header{padding:14px}.cost-compare-toolbar{grid-template-columns:1fr 1fr;padding:10px}.cost-compare-search{grid-column:1/-1}.cost-compare-kpis{grid-template-columns:1fr 1fr;padding:10px}.cost-compare-note{margin:0 10px 9px}.cost-compare-table{margin:0 10px 10px}.cost-heading-actions .btn{flex:1 1 42%}}
@media(max-width:760px){.cost-heading-actions{flex-wrap:wrap}.cost-cross-modal>header p{display:block;margin:3px 0 0}.cost-cross-modal>header h2{font-size:15px}}

/* ═══════════════════════════════════════════
   三大工作台 · 操作按钮统一升级（v5.47）
   ═══════════════════════════════════════════ */
/* 产品中心：文字标签替代难以识别的纯图标操作。 */
.project-actions-th{width:124px!important;min-width:124px!important;text-align:center!important;}
.project-workspace .actions-cell{box-sizing:border-box;width:124px!important;min-width:124px!important;padding:6px 8px!important;}
.project-workspace .row-actions{
  right:7px;gap:4px;padding:3px;border:1px solid #e2ebe5;border-radius:8px;
  background:rgba(255,255,255,.96);box-shadow:0 3px 10px rgba(26,57,39,.07);
}
.project-workspace .row-actions button.project-action{
  box-sizing:border-box;width:auto!important;height:27px!important;padding:0 7px!important;gap:4px;
  border:1px solid #dfe8e2;border-radius:6px!important;background:#fff;color:#53645a;
  font-family:inherit;font-size:10px!important;font-weight:650;white-space:nowrap;filter:none!important;
  transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .15s;
}
.project-workspace .row-actions button.project-action span{font-size:13px;font-weight:750;line-height:1;}
.project-workspace .row-actions button.project-action:hover{transform:translateY(-1px);box-shadow:0 3px 7px rgba(25,60,40,.10);}
.project-workspace .row-actions button.project-action:active{transform:translateY(0) scale(.97);}
.project-workspace .row-actions .project-action-advance{
  border-color:#2e8959!important;background:#2e8959!important;color:#fff!important;
}
.project-workspace .row-actions .project-action-advance:hover{border-color:#1f7147!important;background:#1f7147!important;}
.project-workspace .row-actions .project-action-start{
  border-color:#e4c57d!important;background:#fff8e7!important;color:#96691d!important;
}
.project-workspace .row-actions .project-action-start:hover{border-color:#cfa74c!important;background:#fff3d4!important;color:#7c5310!important;}

.project-workspace .row-actions .project-action-delete{border-color:#f0dedc!important;color:#9c5b56!important;}
.project-workspace .row-actions .project-action-delete:hover{border-color:#dfaaa5!important;background:#fff2f1!important;color:#b43e36!important;}

/* 新品开发：次要操作在左，建档主操作稳定落在最右侧。 */
.newreq-action-controls{display:flex;align-items:center;justify-content:flex-end;gap:7px;}
.newreq-action-bar .btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;}
.newreq-action-bar .btn span{font-size:14px;font-weight:750;line-height:1;}
.newreq-action-bar .newreq-back-btn{border-color:#dfe7e2;background:#f8faf9;color:#64736b;}
.newreq-action-bar .newreq-back-btn:hover{border-color:#aebfb5;background:#f1f5f2;color:#3f5147;}
.newreq-action-bar .newreq-clear-btn{border-color:#eadfdd;background:#fff;color:#8d6561;}
.newreq-action-bar .newreq-clear-btn:hover{border-color:#d8aaa5;background:#fff3f2;color:#ad4139;}
.newreq-action-bar .newreq-draft-btn{
  border-color:#efd089!important;background:#fff8e7!important;color:#9a6a19!important;
  box-shadow:0 3px 9px rgba(166,112,23,.07);
}
.newreq-action-bar .newreq-draft-btn:hover{border-color:#d6ad4f!important;background:#fff2cf!important;color:#7c510c!important;}
.newreq-action-bar .newreq-submit-btn{
  min-width:130px;border-color:#277f51!important;background:linear-gradient(135deg,#277f51,#369d68)!important;color:#fff!important;
  box-shadow:0 7px 15px rgba(35,123,78,.20)!important;
}
.newreq-action-bar .newreq-submit-btn:hover{border-color:#196b41!important;background:linear-gradient(135deg,#196b41,#288858)!important;transform:translateY(-1px);}

/* 生产甘特图：批量操作拥有完整选择、禁用和恢复状态。 */
.gantt-page{background:linear-gradient(180deg,#f5f8fb 0,#f7f9fb 240px,#f8fafb 100%);}
.gantt-page-card{border-color:#dde6ec!important;border-radius:15px!important;box-shadow:0 12px 32px rgba(31,65,91,.055)!important;}
.gantt-page-title{align-items:center!important;}
.gantt-title-icon{display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;border-radius:8px;background:#e8f3ed;color:#24754c;font-size:17px;}
.gantt-toolbar::before{content:none!important;}
.gantt-toolbar{gap:8px!important;padding:9px 10px!important;border-color:#dfe8e3!important;background:#f8fbf9!important;}
.gantt-select-all{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 10px;border:1px solid #dce7e0;border-radius:7px;background:#fff;color:#455a4d;font-size:11px;font-weight:650;cursor:pointer;user-select:none;}
.gantt-select-all:hover{border-color:#9bc4ac;background:#f1f8f4;color:#236c46;}
.gantt-select-all input,.gantt-item-check{width:15px!important;height:15px!important;margin:0;accent-color:#2d8758;cursor:pointer;}
.gantt-selection-count{padding:0 3px;color:#88958d;font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap;}
.gantt-toolbar-actions{display:flex;gap:6px;margin-left:auto;}
.gantt-tool-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:32px;padding:0 11px;border:1px solid;border-radius:7px;font-family:inherit;font-size:11px;font-weight:650;cursor:pointer;white-space:nowrap;transition:.16s;}
.gantt-tool-btn span{font-size:15px;line-height:1;}
.gantt-hide-btn{border-color:#e2b86e;background:#fff8e9;color:#95631c;}
.gantt-hide-btn:not(:disabled):hover{border-color:#ca9540;background:#fff0cf;color:#7b4c0b;transform:translateY(-1px);}
.gantt-show-btn{border-color:#b8d6c5;background:#edf8f2;color:#286f4a;}
.gantt-show-btn:not(:disabled):hover{border-color:#69aa83;background:#dff2e7;color:#175f3a;transform:translateY(-1px);}
.gantt-tool-btn:disabled{border-color:#e2e7e4!important;background:#f4f6f5!important;color:#aeb7b2!important;cursor:not-allowed;box-shadow:none;transform:none;}
.gantt-hidden-count{min-width:78px;color:#74847b;font-size:10px;text-align:right;white-space:nowrap;}
.gantt-row.is-selected{border-color:#78b593!important;background:#f0f8f3!important;box-shadow:0 0 0 2px rgba(45,135,88,.10)!important;}
.gantt-row.is-selected:hover{border-color:#5ba276!important;}

@media (max-width:768px){
  .project-actions-th{width:118px!important;min-width:118px!important;}
  .project-workspace .actions-cell{width:118px!important;min-width:118px!important;}
  .project-workspace .row-actions{right:5px;gap:3px;}
  .project-workspace .row-actions button.project-action{height:28px!important;padding:0 6px!important;}
  .newreq-action-bar{display:block!important;}
  .newreq-action-tip{margin-bottom:9px!important;}
  .newreq-action-controls{display:grid;width:100%;grid-template-columns:1fr 1fr;gap:7px;}
  .newreq-action-bar .btn{width:100%;min-width:0!important;min-height:38px;flex:none!important;}
  .gantt-page-card{padding:12px!important;}
  .gantt-toolbar{display:grid!important;grid-template-columns:1fr auto;gap:7px!important;}
  .gantt-select-all{justify-content:center;}
  .gantt-selection-count{text-align:right;}
  .gantt-toolbar-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;width:100%;margin-left:0;}
  .gantt-tool-btn{width:100%;}
  .gantt-hidden-count{grid-column:1/-1;min-width:0;text-align:right;}
}
/* ═══════════════════════════════════════════
   生产甘特图 · 首屏高密度视图（v5.48）
   ═══════════════════════════════════════════ */
.gantt-page-card{padding:14px!important;}
.gantt-page-title{margin-bottom:9px!important;font-size:16px!important;line-height:1.2;}
.gantt-page-title .gantt-title-icon{width:25px;height:25px;border-radius:7px;font-size:15px;}
.gantt-page-title .tag{padding:4px 8px;font-size:10px;}
.gantt-stats{gap:7px!important;margin-bottom:9px!important;}
.gantt-stats>div{min-width:88px!important;padding:5px 10px!important;border-radius:7px!important;}
.gantt-stats>div strong{font-size:16px!important;}
.gantt-toolbar{min-height:31px;margin-bottom:9px!important;padding:6px 8px!important;border-radius:8px!important;}
.gantt-select-all,.gantt-tool-btn{height:29px;}
.gantt-wrap{padding:5px!important;border-radius:9px!important;}
.gantt-timeline-header{height:34px!important;margin-bottom:5px!important;}
.gantt-left-header{padding-left:15px!important;font-size:10px!important;}
.gantt-month-label{bottom:9px!important;font-size:10px!important;}
.gantt-deadline-header{font-size:10px!important;}
.gantt-row{min-height:53px!important;margin-bottom:5px!important;border-radius:8px!important;}
.gantt-name{padding:7px 9px!important;}
.gantt-name .pname{font-size:12.5px!important;}
.gantt-name .channel{margin-top:2px!important;font-size:10px!important;}
.gantt-index-col{font-size:11px!important;padding:5px 0!important;}
.gantt-checkbox-col input{width:14px!important;height:14px!important;}
.gantt-block-btn{padding:3px 7px!important;font-size:10px!important;}
.gantt-bar-area{height:37px!important;margin:7px 0!important;border-radius:5px!important;}
.gantt-bar-area>div[style*="opacity:.06"]{height:23px!important;top:7px!important;border-radius:6px!important;}
.gantt-bar{height:23px!important;top:7px!important;padding:0 8px!important;border-radius:6px!important;font-size:10px!important;}
.gantt-deadline-marker{top:4px!important;height:29px!important;}
.gantt-deadline-summary{gap:2px!important;padding:0 8px!important;font-size:9.5px!important;}
.gantt-deadline-summary strong{font-size:11px!important;}
.gantt-row.is-paused{
  border-color:#edcf91!important;
  background:linear-gradient(90deg,#fff9eb 0,#fffdf7 55%,#fff 100%)!important;
  box-shadow:0 2px 8px rgba(167,112,24,.08)!important;
}
.gantt-row.is-paused:hover{
  border-color:#d9af5a!important;
  background:linear-gradient(90deg,#fff5dc 0,#fffaf0 55%,#fff 100%)!important;
}
.gantt-pause-badge{
  display:inline-flex;
  margin-left:7px;
  padding:2px 6px;
  border:1px solid #e6bf70;
  border-radius:999px;
  background:#fff1c8;
  color:#9b6718;
  font-size:9px!important;
  font-weight:750;
  vertical-align:1px;
}
.gantt-paused-deadline{
  display:inline-flex;
  padding:2px 6px;
  border-radius:999px;
  background:#fff1c8;
  color:#9b6718;
  font-size:9px;
  font-weight:750;
}
@media(max-width:768px){
  .gantt-page-card{padding:10px!important;}
  .gantt-page-title{margin-bottom:8px!important;font-size:15px!important;}
  .gantt-stats{margin-bottom:8px!important;}
  .gantt-toolbar{margin-bottom:8px!important;}
  .gantt-row{min-height:53px!important;}
}
/* Production list: paused projects stay visible but are visually separated. */
.project-workspace #projects-tbody tr.row-paused{background:#fffaf0!important;border-left-color:#d39a32!important;}
.project-workspace #projects-tbody tr.row-paused:hover{background:#fff5df!important;box-shadow:inset 3px 0 0 #d39a32!important;}
.project-workspace #projects-tbody tr.row-paused td:nth-child(2) strong{color:#91621c!important;}
.project-workspace #projects-tbody tr.row-paused td:nth-child(2)::after{content:"\751f\4ea7\6682\505c";display:inline-flex;margin-left:6px;padding:1px 6px;border:1px solid #e5bd6b;border-radius:999px;background:#fff0c8;color:#946318;font-size:9px;font-weight:750;vertical-align:2px;}
.project-pause-deadline-note{display:block;max-width:205px;margin-top:4px;overflow:hidden;color:#9a6b25;font-size:9px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap;}
.project-pause-duration{display:inline-flex;padding:3px 8px;border-radius:999px;background:#fff0c8;color:#946318;font-size:10px;font-weight:750;white-space:nowrap;}
.project-group-paused td{height:32px!important;background:#fff8e8!important;border-top:1px solid #ecd49f!important;border-bottom:1px solid #ecd49f!important;}

/* 产品中心 · 轻量产品运营台（仅视觉层，不改变列表功能） */
@media (min-width:769px){
  .product-center-page{
    --project-accent:#256b67;
    --project-accent-soft:#e8f3f1;
    padding:76px 28px 32px!important;
    background:linear-gradient(180deg,#f7f9fb 0,#f4f7f8 300px,#f7f8f9 100%)!important;
  }
  .product-center-page .workspace-heading{
    min-height:58px!important;
    margin-bottom:10px!important;
    padding:10px 16px!important;
    border-color:#dce4e8!important;
    border-radius:12px!important;
    background:#fff!important;
    box-shadow:0 3px 12px rgba(28,47,62,.045)!important;
  }
  .product-center-page .workspace-heading:before{background:#256b67!important;}
  .product-center-page .workspace-heading h1{color:#1c2f3d!important;font-size:22px!important;letter-spacing:-.02em;}
  .product-center-page .project-overview{gap:7px;}
  .product-center-page .project-overview-item{
    height:42px;
    padding:6px 10px;
    border-color:#e3e9ed;
    border-radius:8px;
    background:#fafcfd;
    box-shadow:none;
  }
  .product-center-page .project-overview-item span{color:#76838e;font-size:9px;}
  .product-center-page .project-overview-item strong{color:#213746;font-size:18px;}
  .product-center-page .overview-development span:before{background:#4776c9;}
  .product-center-page .overview-production span:before{background:#24936d;}
  .product-center-page .overview-overdue span:before{background:#d06b63;}
  .product-center-page .overview-overdue strong{color:#b75650;}
  .project-workspace{border:1px solid #dce4e8!important;border-radius:12px!important;box-shadow:0 5px 18px rgba(28,47,62,.05)!important;overflow:hidden;}
  .project-toolbar{padding:10px 12px!important;background:#fff!important;}
  .project-filters{gap:7px!important;}
  .project-filters .form-input,.project-toolbar .toggle-btn{
    border-color:#dce4e8!important;
    background:#fbfcfd!important;
    color:#4b5c68!important;
  }
  .project-filters .form-input:focus{border-color:#55988f!important;box-shadow:0 0 0 3px rgba(37,107,103,.09)!important;}
  .project-toolbar .toggle-btn:hover{border-color:#8ebdb7!important;background:#eef7f6!important;color:#256b67!important;}
  .project-create-btn{border-color:#256b67!important;background:#256b67!important;box-shadow:none!important;}
  .project-create-btn:hover{background:#1e5c59!important;}
  .project-table-context{min-height:31px;padding:7px 13px!important;background:#f8fafb!important;border-top:1px solid #edf1f3!important;color:#3c5261!important;}
  .project-table-context span:first-child{font-size:11px!important;font-weight:760!important;letter-spacing:.04em;}
  .project-center-context-note{display:none!important;}
  .project-workspace .table-wrap thead th{background:#f3f6f8!important;color:#6d7c87!important;border-bottom-color:#dce4e8!important;font-weight:720!important;}
  .project-workspace #projects-tbody tr:not(.project-group-row){background:#fff!important;}
  .project-workspace #projects-tbody tr.row-approved{background:#fbfefd!important;border-left-color:#3d9981!important;}
  .project-workspace #projects-tbody tr.tr-pinned:not(.row-approved){background:#fffdf8!important;}
  .project-workspace #projects-tbody tr:not(.project-group-row):hover{background:#f1f8f7!important;box-shadow:inset 3px 0 0 #3d9981!important;}
  .project-workspace #projects-tbody td{border-bottom-color:#edf1f3!important;color:#4d5d68!important;}
  .project-workspace #projects-tbody td:nth-child(2) strong{color:#203f4c!important;}
  .project-workspace #projects-tbody tr.row-approved td:nth-child(2) strong{color:#1d6d65!important;}
  .project-group-row,.project-group-row td{background:#f5f8f9!important;}
  .project-group-production span{color:#257764!important;}
  .project-group-development span{color:#5970a8!important;}
  .project-workspace .actions-cell{box-shadow:-6px 0 12px rgba(28,47,62,.035)!important;}
  .project-workspace #pagination-bar{background:#fafcfd!important;border-top-color:#e6ecef!important;color:#71808a!important;}
  .product-center-page .project-overview-item{cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease;}
  .product-center-page .project-overview-item:hover,.product-center-page .project-overview-item:focus-visible{border-color:#8fb9b5;background:#f0f8f7;box-shadow:0 4px 10px rgba(31,96,91,.08);outline:0;transform:translateY(-1px);}
  .project-workspace #projects-tbody tr .row-actions{opacity:0!important;pointer-events:none!important;}
  .project-workspace #projects-tbody tr:hover .row-actions,.project-workspace #projects-tbody tr:focus-within .row-actions{opacity:1!important;pointer-events:auto!important;}
}

/* 产品中心 · 细节精修：以层级和留白提升可读性 */
@media (min-width:769px){
  .product-center-page .workspace-heading-main h1{display:flex;align-items:center;gap:10px;}
  .product-center-page .workspace-heading-main h1:before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:#3f9a88;box-shadow:0 0 0 5px #e5f3f0;}
  .product-center-page .project-overview-item{position:relative;overflow:hidden;}
  .product-center-page .project-overview-item:after{position:absolute;right:0;bottom:0;left:0;height:2px;content:'';background:#9ecfc5;opacity:.72;}
  .product-center-page .overview-development:after{background:#8ca9dc;}
  .product-center-page .overview-production:after{background:#64bf9e;}
  .product-center-page .overview-overdue:after{background:#e7aaa5;}
  .project-toolbar{position:relative;z-index:2;}
  .project-filters .form-input::placeholder{color:#a1adb6;}
  .project-filters .form-input:hover{border-color:#b9cbd1!important;background:#fff!important;}
  .project-toolbar .toggle-btn{font-weight:650!important;}
  .project-workspace .table-wrap{background:#fff;}
  .project-workspace .table-wrap thead th{position:sticky;top:0;z-index:3;box-shadow:0 1px 0 #dce4e8;text-align:left!important;}
  .project-workspace .table-wrap thead th:first-child,.project-workspace .table-wrap thead th.project-actions-th{text-align:center!important;}
  .project-workspace #projects-tbody tr:nth-child(even):not(.project-group-row){background:#fcfdfd!important;}
  .project-workspace #projects-tbody td{font-variant-numeric:tabular-nums;}
  .project-workspace #projects-tbody td:nth-child(3),.project-workspace #projects-tbody td:nth-child(4),.project-workspace #projects-tbody td:nth-child(5),.project-workspace #projects-tbody td:nth-child(6),.project-workspace #projects-tbody td:nth-child(7){color:#60717d!important;}
  .project-workspace #projects-tbody td:nth-child(1){color:#9aa7af!important;font-variant-numeric:tabular-nums;}
  .project-workspace .actions-cell{border-left:1px solid #edf1f3!important;}
  .project-workspace #pagination-bar span{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:5px;background:#f1f5f6;color:#6b7d87;font-variant-numeric:tabular-nums;}
  .project-workspace #projects-tbody td.project-preview-date{color:#3272a8!important;font-size:12px!important;font-weight:720;letter-spacing:.01em;}
  .project-workspace #projects-tbody td.project-preview-date .project-date-empty{color:#a8b1b7;font-weight:500;}
}
.project-paused-divider{display:flex;align-items:center;gap:13px;color:#946318;}
.project-paused-divider::before,.project-paused-divider::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,#d6ad59);}.project-paused-divider::after{background:linear-gradient(90deg,#d6ad59,transparent);}
.project-paused-divider span{letter-spacing:2px!important;white-space:nowrap;}.project-paused-divider small{margin-left:5px;color:#b08032;font-size:9px;font-weight:650;letter-spacing:0!important;}
.project-workspace .row-actions .project-action-resume{border-color:#d5a444!important;background:#fff4d7!important;color:#8a5c17!important;}
.project-workspace .row-actions .project-action-resume:hover{border-color:#bc8430!important;background:#ffe9ad!important;color:#70470d!important;}
/* 市场雷达：外部市场信号与新品方向工作台 */
.market-radar-shell{max-width:1280px;margin:0 auto;padding:4px 2px 34px;color:#203129;}
.market-radar-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:3px 0 17px;}
.market-radar-eyebrow{margin-bottom:7px;color:#16805a;font-size:10px;font-weight:800;letter-spacing:.15em;}
.market-radar-heading h1{margin:0;color:#16291f;font-size:27px;letter-spacing:-.04em;}
.market-radar-heading p{margin:7px 0 0;color:#74827a;font-size:13px;}
.market-radar-status{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid #d6e9de;border-radius:999px;background:#f8fcf9;color:#5b7367;font-size:11px;white-space:nowrap;}
.market-radar-status i{width:7px;height:7px;border-radius:50%;background:#e7a542;box-shadow:0 0 0 3px #fff3d9;}
.market-radar-intro{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:15px 17px;border:1px solid #dcebe2;border-radius:14px;background:linear-gradient(115deg,#eff8f1,#fafcfb 55%,#f4f8ff);}
.market-radar-intro b{display:block;color:#1b4b36;font-size:14px;}.market-radar-intro span{display:block;max-width:720px;margin-top:5px;color:#6c7c73;font-size:12px;line-height:1.65;}
.market-radar-actions{display:flex;flex:0 0 auto;gap:8px;}.market-radar-actions .btn{border-radius:8px;font-size:12px;}
.market-radar-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin:14px 0 22px;}
.market-radar-metrics>div{min-width:0;padding:14px 15px;border:1px solid #e0eae4;border-radius:12px;background:#fff;box-shadow:0 6px 18px rgba(23,54,39,.04);}
.market-radar-metrics span,.market-radar-metrics small{display:block;color:#7d8b83;font-size:10px;}.market-radar-metrics strong{display:block;margin:5px 0;color:#1f5841;font-size:21px;letter-spacing:-.035em;}.market-radar-metrics small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.market-radar-section-title{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px;}.market-radar-section-title b{font-size:15px;}.market-radar-section-title span{margin-left:9px;color:#87938c;font-size:11px;}.market-radar-section-title>small{padding:4px 7px;border-radius:999px;background:#fff3db;color:#9a6d27;font-size:9px;}
.market-radar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;}
.market-radar-grid article{position:relative;min-height:174px;padding:16px;border:1px solid #e1e9e4;border-radius:13px;background:linear-gradient(145deg,#fff,#fbfdfc);overflow:hidden;}
.market-radar-grid article:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#55a57b;}.market-radar-grid article:nth-child(2):before{background:#4f8fc6;}.market-radar-grid article:nth-child(3):before{background:#c68d48;}.market-radar-grid article:nth-child(4):before{background:#8a74bc;}
.market-radar-no{display:block;color:#a2afa8;font-size:10px;font-weight:800;letter-spacing:.08em;}.market-radar-grid b{display:block;margin-top:18px;color:#263b30;font-size:14px;}.market-radar-grid p{margin:7px 0 13px;color:#76837c;font-size:11px;line-height:1.65;}.market-radar-grid em{position:absolute;bottom:14px;color:#4a8467;font-size:10px;font-style:normal;font-weight:700;}
.market-radar-link{display:inline-flex;position:relative;z-index:1;margin-top:1px;color:#197451;font-size:11px;font-weight:750;text-decoration:none;}.market-radar-link:hover{text-decoration:underline;color:#0e5136;}.market-radar-empty{display:inline-block;color:#9a6d27;font-size:10px;}.market-radar-actions .btn:disabled{opacity:.62;cursor:wait;}
.market-radar-source-card{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-top:14px;padding:16px 17px;border:1px solid #e0e8e4;border-radius:13px;background:#fff;}.market-radar-source-card b{font-size:13px;}.market-radar-source-card p{max-width:690px;margin:5px 0 0;color:#748179;font-size:11px;line-height:1.65;}.market-radar-source-card ol{display:grid;grid-template-columns:repeat(2,max-content);gap:6px 20px;margin:0;padding-left:18px;color:#567064;font-size:10px;line-height:1.5;}
@media(max-width:900px){.market-radar-metrics,.market-radar-grid{grid-template-columns:repeat(2,1fr)}.market-radar-source-card{align-items:flex-start;flex-direction:column;gap:12px}}
@media(max-width:620px){.market-radar-heading,.market-radar-intro{align-items:flex-start;flex-direction:column;gap:12px}.market-radar-heading h1{font-size:22px}.market-radar-metrics,.market-radar-grid{grid-template-columns:1fr}.market-radar-actions{width:100%}.market-radar-actions .btn{flex:1}.market-radar-source-card ol{grid-template-columns:1fr}.market-radar-section-title{align-items:flex-start;gap:8px;flex-direction:column}.market-radar-section-title span{display:block;margin:4px 0 0}}

.nav-item[onclick*="market-radar"] .nav-icon{font-size:0;}
.nav-item[onclick*="market-radar"] .nav-icon:after{content:"\1F4E1";font-size:16px;}

/* 发起新品：高频字段单屏录入，低频字段折叠。 */
@media (min-width:769px){
  .newreq-card .form-row{gap:12px;margin-bottom:10px;}
  .newreq-card .form-input{min-height:38px;padding:6px 10px;}
  .newreq-card .form-label{min-height:15px;font-size:11px;}
  .newreq-card .form-hint{display:none;}
  .newreq-card .newreq-factory-row{grid-template-columns:repeat(4,minmax(0,1fr));}
  .newreq-card .newreq-person-row{grid-template-columns:repeat(3,minmax(0,1fr));}
  .newreq-card .newreq-section-heading{margin:14px 0 8px;padding-top:12px;}
  .newreq-card .newreq-section-heading small{display:none;}
}

/* 当前建档不使用含肉量及工厂类型：保留字段兼容旧数据，但不在录入页展示。 */
.newreq-card .form-group:has(#f-meat),.newreq-card .form-group:has(#f-factory-type){display:none;}
@media (min-width:769px){.newreq-card .newreq-factory-row{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (min-width:769px){.newreq-card .newreq-definition-row{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* 选品情报台：以一屏浏览更多方向为优先，详情可通过编辑按钮查看。 */
#market-insights-panel > div:nth-of-type(3){grid-template-columns:repeat(auto-fill,minmax(170px,1fr)) !important;gap:8px !important;}
#market-insights-panel > div:nth-of-type(3) > .card{min-height:154px;padding:10px !important;}
#market-insights-panel > div:nth-of-type(3) > .card > div:first-child b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#market-insights-panel > div:nth-of-type(3) > .card p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:38px;margin:4px 0 5px !important;font-size:11px !important;}
#market-insights-panel > div:nth-of-type(3) > .card .btn{padding:2px 5px;font-size:11px;}
@media(max-width:620px){#market-insights-panel > div:nth-of-type(3){grid-template-columns:repeat(2,minmax(0,1fr)) !important;}}

/* 看板阶段分布：仅调整层级与质感，统计内容保持不变。 */
#stage-distribution-block{padding:2px 0 1px;}
.stage-distribution-card{display:flex;align-items:center;gap:20px;min-height:166px;padding:4px 2px 2px;}
.stage-distribution-chart{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 154px;width:154px;height:154px;border-radius:50%;background:radial-gradient(circle at 50% 50%,#fff 0 43%,#f7faff 44% 49%,#fff 50%);box-shadow:0 9px 24px rgba(24,69,112,.06);}
.stage-distribution-donut{display:block;filter:drop-shadow(0 4px 5px rgba(24,69,112,.06));}
.stage-distribution-donut circle:not(:first-child){stroke-linecap:round;}
.stage-distribution-legend{flex:1;min-width:0;padding-right:3px;}
.stage-distribution-item{display:grid;grid-template-columns:9px minmax(52px,1fr) auto 38px;align-items:center;column-gap:9px;min-height:37px;border-bottom:1px solid #edf1f5;}
.stage-distribution-item:last-child{border-bottom:0;}
.stage-distribution-item.stage-distribution-month-done{margin-top:2px;border-top:1px solid #e6edf7;border-bottom:0}.stage-distribution-month-done .stage-distribution-dot{background:#722ed1}.stage-distribution-month-done .stage-distribution-label{color:#6941a5;font-weight:700}.stage-distribution-month-done strong{color:#5b21b6}.stage-distribution-month-done .stage-distribution-pct{color:#8b72ba}
.stage-distribution-dot{width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 4px color-mix(in srgb,currentColor 9%,transparent);}
.stage-distribution-label{color:#506176;font-size:13px;font-weight:600;white-space:nowrap;}
.stage-distribution-item strong{color:#17324d;font-size:17px;font-weight:750;font-variant-numeric:tabular-nums;}
.stage-distribution-pct{color:#8090a2;font-size:12px;text-align:right;font-variant-numeric:tabular-nums;}
@media(max-width:620px){.stage-distribution-card{gap:12px;min-height:148px}.stage-distribution-chart{flex-basis:132px;width:132px;height:132px}.stage-distribution-donut{width:132px;height:132px}.stage-distribution-item{grid-template-columns:8px minmax(42px,1fr) auto 32px;column-gap:6px;min-height:33px}.stage-distribution-label{font-size:12px}.stage-distribution-item strong{font-size:15px}.stage-distribution-pct{font-size:11px}}

/* ═══════════════════════════════════════════
   全站手机端统一适配（v6.04）
   仅在窄屏生效：底部导航、全宽内容、横滑表格、全屏弹窗。
   ═══════════════════════════════════════════ */
@media (max-width:768px){
  html,body{width:100%;min-width:0;overflow-x:hidden;}
  body{padding:0!important;font-size:14px;}
  .sidebar{top:auto!important;right:0;bottom:0;left:0;width:100%!important;height:64px!important;min-height:64px;display:flex!important;flex-direction:row!important;overflow:hidden!important;border:0!important;border-top:1px solid #dfe8e2!important;border-radius:0!important;background:rgba(255,255,255,.97)!important;box-shadow:0 -4px 18px rgba(24,52,35,.08)!important;backdrop-filter:blur(16px);}
  .sidebar-header,.sidebar-shortcuts,.sidebar-footer{display:none!important;}
  .sidebar-nav{display:flex!important;align-items:stretch;gap:2px;width:100%;padding:4px 6px!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none;}
  .sidebar-nav::-webkit-scrollbar{display:none;}
  .nav-item{width:62px!important;min-width:62px!important;height:56px!important;min-height:56px!important;margin:0!important;padding:4px 3px!important;display:flex!important;flex:0 0 62px!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:2px!important;border-radius:9px!important;font-size:9px!important;line-height:1.1!important;white-space:normal!important;}
  .nav-icon{width:auto!important;height:20px!important;font-size:17px!important;line-height:20px!important;}
  .nav-label{display:block!important;max-width:58px;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;}
  .nav-arrow{display:none!important;}
  .page,.product-center-page,.newreq-page,.resource-page{width:100%!important;max-width:none!important;min-width:0!important;margin-left:0!important;padding:12px 12px 84px!important;}
  .page>*{min-width:0;}
  .card,.project-workspace,.resource-workspace{min-width:0!important;}
  .workspace-heading,.resource-heading,.settings-page-heading,.market-radar-heading,.cost-heading{align-items:flex-start!important;flex-direction:column!important;gap:9px!important;}
  .workspace-heading h1,.resource-heading h1,.settings-page-heading h1,.market-radar-heading h1{font-size:20px!important;}
  .workspace-heading p,.resource-heading p,.settings-page-heading p,.market-radar-heading p{display:none!important;}
  .resource-heading-actions,.market-radar-actions,.cost-heading-actions{width:100%!important;flex-wrap:wrap!important;}
  .resource-heading-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;}
  .resource-heading-actions .btn{width:100%!important;min-width:0!important;padding:7px 6px!important;}
  .project-filters,.resource-search-bar,.cost-toolbar{min-width:0!important;}
  .form-input,select,input,textarea{max-width:100%;}
  .table-wrap,#projects-table-wrap,.cost-table-wrap,.cost-line-table,.cost-audit-panel:has(.cost-audit-compare),.gantt-wrap{max-width:100%!important;overscroll-behavior-x:contain;}
  .table-wrap table,.project-workspace .table-wrap table{min-width:760px!important;}
  .cost-line-table>div{min-width:max-content;}
  .gantt-timeline-header,.gantt-row{min-width:960px!important;}
  .modal-overlay{align-items:flex-end!important;padding:8px!important;}
  .modal,.modal-content{width:100%!important;max-width:100%!important;max-height:calc(100dvh - 80px)!important;margin:0!important;border-radius:14px 14px 10px 10px!important;}
  .cost-editor-overlay,.cost-compare-overlay{padding:0!important;}
  .cost-editor,.cost-compare-modal{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important;}
  .resource-stats,.dash-stats,.cost-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .resource-search-bar,.cost-toolbar{gap:8px!important;}
  .resource-search-box,.cost-search-box{min-width:0!important;}
  .stage-distribution-card{min-width:0;}
}
.cost-standard-library-btn{border-color:#b8c7dd!important;background:#f5f8fc!important;color:#294b72!important}
.cost-standard-library-btn:hover{background:#eaf1f9!important;border-color:#8da8c8!important}
.cost-standard-library-overlay{z-index:10070;padding:0;background:rgba(10,20,34,.62);backdrop-filter:blur(8px)}
.cost-standard-library-page{width:100vw;height:100vh;background:#eef2f7;display:flex;flex-direction:column;color:#17263b;overflow:hidden}
.cost-standard-library-page>header{height:76px;min-height:76px;padding:0 28px;background:#172438;color:#fff;display:flex;align-items:center;gap:20px;box-shadow:0 8px 28px rgba(15,31,51,.18);position:relative;z-index:2}
.cost-standard-library-page>header>div{display:flex;align-items:baseline;gap:14px;min-width:0;flex:1}
.cost-standard-library-page>header span{font-size:11px;letter-spacing:.16em;color:#86a4ca}
.cost-standard-library-page>header b{font-size:23px;white-space:nowrap}
.cost-standard-library-page>header small{font-size:13px;font-weight:400;color:#aebdd0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cost-standard-library-page>header>button:not(.cost-standard-library-close){height:38px;padding:0 17px;border:1px solid #51637a;border-radius:9px;background:#24354d;color:#f5f8fc;font-weight:700;cursor:pointer}
.cost-standard-library-close{width:38px;height:38px;border:0;background:transparent;color:#b9c7d8;font-size:28px;cursor:pointer}
#cost-standard-library-content{flex:1;min-height:0;overflow:auto;padding:20px 24px 28px}
.cost-standard-library-loading,.cost-standard-library-error{min-height:240px;display:grid;place-items:center;color:#68778b;font-weight:700}
.cost-standard-library-intro{max-width:1540px;margin:0 auto 12px;padding:14px 18px;border:1px solid #ccd7e4;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:space-between;box-shadow:0 5px 20px rgba(27,48,76,.05)}
.cost-standard-library-intro div{display:flex;align-items:baseline;gap:12px}.cost-standard-library-intro b{font-size:15px}.cost-standard-library-intro span{font-size:13px;color:#66778d}.cost-standard-library-intro em{padding:5px 10px;border-radius:999px;background:#e8f5ee;color:#17704e;font-size:12px;font-style:normal;font-weight:800}
.cost-standard-library-kpis{max-width:1540px;margin:0 auto 12px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.cost-standard-library-kpis>div{height:66px;padding:0 18px;border:1px solid #d5deea;border-radius:13px;background:#fff;display:flex;align-items:center;justify-content:space-between;box-shadow:0 4px 16px rgba(27,48,76,.04)}
.cost-standard-library-kpis span{font-size:13px;color:#66778d}.cost-standard-library-kpis b{font-size:25px;color:#173b67}
.cost-standard-library-toolbar{max-width:1540px;margin:0 auto 12px;display:flex;gap:10px}.cost-standard-library-toolbar label{height:42px;flex:1;display:flex;align-items:center;gap:8px;padding:0 13px;border:1px solid #ccd7e4;border-radius:11px;background:#fff}.cost-standard-library-toolbar label span{color:#7890ad;font-size:18px}.cost-standard-library-toolbar input{min-width:0;flex:1;border:0;outline:0;background:transparent;font-size:14px;color:#21344f}.cost-standard-library-toolbar select{width:150px;border:1px solid #ccd7e4;border-radius:11px;background:#fff;padding:0 12px;color:#354a65;font-weight:700}
.cost-standard-library-columns{max-width:1540px;margin:0 auto;display:grid;grid-template-columns:minmax(560px,1.18fr) minmax(440px,.82fr);gap:14px;align-items:start}
.cost-standard-library-panel{border:1px solid #d2dce8;border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 8px 24px rgba(30,48,73,.06)}
.cost-standard-library-panel-head{height:60px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e1e7ef;background:#f9fbfd}.cost-standard-library-panel-head div{display:flex;align-items:baseline;gap:10px}.cost-standard-library-panel-head b{font-size:16px}.cost-standard-library-panel-head span{font-size:12px;color:#77869a}.cost-standard-library-panel-head em{font-style:normal;font-size:12px;font-weight:800;color:#516985;background:#eaf0f7;border-radius:999px;padding:5px 9px}
.cost-standard-library-list{max-height:calc(100vh - 300px);overflow:auto;padding:10px}
.cost-standard-library-list article{padding:14px;border:1px solid #e0e6ee;border-radius:12px;background:#fff;margin-bottom:8px;transition:.16s ease}.cost-standard-library-list article:hover{border-color:#b8c7d9;box-shadow:0 5px 14px rgba(27,48,76,.07)}
.cost-standard-library-item-main,.cost-standard-library-approved-head{display:flex;align-items:flex-start;gap:10px}.cost-standard-library-item-main>i,.cost-standard-library-approved-head>i{min-width:38px;padding:4px 7px;border-radius:6px;text-align:center;font-size:11px;font-style:normal;font-weight:900}.cost-standard-library-item-main>i.raw,.cost-standard-library-approved-head>i.raw{background:#e2f4ec;color:#167759}.cost-standard-library-item-main>i.aux,.cost-standard-library-approved-head>i.aux{background:#e8effc;color:#3767ae}.cost-standard-library-item-main>i.pack,.cost-standard-library-approved-head>i.pack{background:#f1eafb;color:#7650a8}
.cost-standard-library-item-main>div,.cost-standard-library-approved-head>div{min-width:0;display:flex;flex-direction:column;gap:4px}.cost-standard-library-item-main b,.cost-standard-library-approved-head b{font-size:14px;overflow-wrap:anywhere}.cost-standard-library-item-main span,.cost-standard-library-approved-head span{font-size:12px;color:#718096}.cost-standard-library-item-main small{font-size:11px;color:#93a0b1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cost-standard-library-approve{margin-top:11px;display:flex;gap:8px}.cost-standard-library-approve label{height:39px;flex:1;border:1px solid #cbd6e4;border-radius:9px;background:#f8fafc;display:flex;align-items:center;padding-left:11px;color:#66778c;font-size:12px;white-space:nowrap}.cost-standard-library-approve input{min-width:0;flex:1;height:100%;border:0;background:transparent;outline:0;padding:0 9px;font-size:13px;color:#1d3859;font-weight:700}.cost-standard-library-approve button{border:0;border-radius:9px;background:#1e4d7c;color:#fff;padding:0 14px;font-weight:800;cursor:pointer}.cost-standard-library-approve button:hover{background:#173d65}
.cost-standard-library-list article>p{margin:9px 0 0;padding-top:8px;border-top:1px dashed #dfe6ee;color:#7a899b;font-size:11px}.cost-standard-library-list article>p strong{color:#45698e}
.cost-standard-library-aliases{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0 48px}.cost-standard-library-aliases>span{display:flex;align-items:center;gap:5px;max-width:100%;padding:5px 7px 5px 9px;border-radius:999px;background:#eef3f8;color:#50657d;font-size:11px}.cost-standard-library-aliases button{width:17px;height:17px;border:0;border-radius:50%;background:#d6e0ea;color:#60758d;line-height:15px;cursor:pointer}.cost-standard-library-aliases .self{background:#f4f6f8;color:#8a96a5}
.cost-standard-library-empty{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#748397}.cost-standard-library-empty b{font-size:14px;color:#506178}.cost-standard-library-empty span{font-size:12px}
@media(max-width:980px){.cost-standard-library-page>header{padding:0 14px}.cost-standard-library-page>header span,.cost-standard-library-page>header small{display:none}#cost-standard-library-content{padding:12px}.cost-standard-library-kpis{grid-template-columns:repeat(2,1fr)}.cost-standard-library-columns{grid-template-columns:1fr}.cost-standard-library-list{max-height:none}.cost-standard-library-intro span{display:none}}

/* 平台品牌标识：深蓝科技徽章，减少装饰、强化识别。 */
.sidebar-logo{gap:12px;min-width:0}
.sidebar-logo-icon{width:42px;height:42px;border:1px solid rgba(108,184,255,.34);border-radius:12px;background:linear-gradient(145deg,#0b2d59 0%,#155b9c 58%,#2c83c7 100%);box-shadow:0 8px 18px rgba(17,70,124,.22),inset 0 1px 0 rgba(255,255,255,.28);color:#fff;font-family:"Microsoft YaHei UI","Microsoft YaHei",sans-serif;font-size:22px;font-weight:800;letter-spacing:-.10em;text-shadow:0 1px 1px rgba(0,0,0,.16);overflow:hidden;isolation:isolate}
.sidebar-logo-icon::before{inset:0;border-radius:11px;background:linear-gradient(135deg,rgba(255,255,255,.22),transparent 42%);z-index:-1}
.sidebar-logo-icon::after{content:"";position:absolute;width:30px;height:30px;right:-14px;bottom:-16px;border:1px solid rgba(178,223,255,.38);border-radius:50%;box-shadow:0 0 0 6px rgba(178,223,255,.08),0 0 0 12px rgba(178,223,255,.045);pointer-events:none;z-index:-1}
.sidebar-logo-text strong{color:#152a45;font-size:15px;font-weight:760;letter-spacing:.045em;line-height:1.2;white-space:nowrap}
@media(max-width:768px){.sidebar-logo-icon{width:36px;height:36px;border-radius:10px;font-size:18px}.sidebar-logo-icon::before{border-radius:9px}}
/* 复盘内容：强调填写的正文，不影响字段标签或后续行动。 */
#dashboard-completion-review-content{color:#d46b08}

/* 日常跟进：全部提醒可手动设定优先顺序。 */
.apple-task-section.all-reminders>header{color:#0a84ff}
.apple-task-sort-hint{margin-left:8px;color:#8e8e93;font-size:10px;font-weight:500}
.apple-task-item.is-draggable{cursor:grab}
.apple-task-item.is-draggable:active{cursor:grabbing}
.apple-task-item.is-dragging{opacity:.42;background:#f0f6ff!important}
.apple-task-item.is-drag-over-before{box-shadow:inset 0 3px 0 #0a84ff}
.apple-task-item.is-drag-over-after{box-shadow:inset 0 -3px 0 #0a84ff}
.apple-task-title{display:flex;align-items:center;gap:6px}
.apple-task-title>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apple-task-drag{display:inline-block;flex:0 0 auto;color:#a1a1a6;font-size:17px;font-weight:700;letter-spacing:-2px;line-height:1;cursor:grab;user-select:none}
.apple-task-item.is-draggable:hover .apple-task-drag{color:#0a84ff}


/* 云端顶栏：收紧品牌和导航，确保退出入口完整可见。 */
@media (min-width:769px){
  .sidebar-header{width:220px;flex:0 0 220px;padding-left:14px;padding-right:14px;}
  .sidebar-nav{gap:0;padding-left:8px;padding-right:8px;}
  .sidebar-nav .nav-item{padding-left:7px;padding-right:7px;gap:5px;}
  .sidebar-nav .nav-logout{flex-shrink:0;}
}
@media (min-width:769px) and (max-width:1280px){
  .sidebar-header{width:200px;flex-basis:200px;padding-left:12px;padding-right:12px;}
}


/* 云端设置：紧凑管理入口，让工厂、渠道和人员计数集中呈现。 */
@media (min-width:980px){
  .settings-config-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}
#page-settings .settings-config-grid>.card:nth-child(-n+3){padding:9px 12px!important;min-height:44px;border-radius:9px!important;}
#page-settings .settings-config-grid>.card:nth-child(-n+3) .card-title[onclick]{min-height:30px;margin:0!important;padding:0!important;font-size:13px!important;}
#page-settings .settings-config-grid>.card:nth-child(-n+3) .card-title [id$="-arrow"]{padding:3px 7px;font-size:10px!important;}
#page-settings .settings-section-label{margin-top:18px;margin-bottom:8px;}

/* Cloud settings: visually separate the three work areas while keeping each area in aligned rows. */
#page-settings .settings-section-label{padding:9px 12px;border:1px solid #e5ebe7;border-left:3px solid #42956a;border-radius:8px;background:#f4faf6;}
#page-settings .settings-section-data{border-left-color:#4d83c5;background:#f4f8fd;}
#page-settings .settings-section-maintenance{border-left-color:#b98536;background:#fcf8f1;}
#page-settings .settings-section-label>div{align-items:center;}
#page-settings .settings-shell .card{align-self:stretch;}
#page-settings .settings-config-grid,#page-settings .settings-data-grid,#page-settings .settings-maintenance-grid{align-items:stretch;}

/* Product filters: compact search and a separate, readable summary of the active scope. */
#ai-fab,.nav-item[onclick="openAiAssistant()"],#page-settings .ai-config-card{display:none!important;}
#page-settings .settings-shell{max-width:1180px!important;}
#page-settings .settings-section-label{margin:24px 0 12px;padding:12px 16px;border-radius:10px;}
#page-settings .settings-section-base{background:#edf7f2;border-color:#d4e9dd;border-left-color:#2f9461;}
#page-settings .settings-section-data{background:#edf4fc;border-color:#d8e6f6;border-left-color:#4d83c5;}
#page-settings .settings-section-maintenance{background:#fbf3e8;border-color:#efe2ce;border-left-color:#b98536;}
#page-settings .settings-config-grid,#page-settings .settings-data-grid,#page-settings .settings-maintenance-grid{gap:12px!important;align-items:start;}
#page-settings .settings-shell .card{border:1px solid #e2e8e5!important;border-radius:10px!important;box-shadow:0 1px 4px rgba(31,52,41,.04)!important;}
#page-settings .settings-config-grid>.card:nth-child(-n+3){border-top:3px solid #61aa80!important;}
#page-settings .settings-data-grid>.card{border-top:3px solid #77a6d6!important;}
#page-settings .settings-maintenance-grid>.card{border-top:3px solid #cfa56d!important;}
@media(min-width:980px){#page-settings .settings-config-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}#page-settings .settings-data-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}#page-settings .settings-data-grid>.card{grid-column:auto!important;}#page-settings .settings-maintenance-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}}
@media(max-width:768px){#page-settings .settings-config-grid,#page-settings .settings-data-grid,#page-settings .settings-maintenance-grid{grid-template-columns:1fr!important;}#page-settings .settings-section-label{padding:10px 12px;}}
.product-center-page .project-toolbar{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 10px;}
.product-center-page .project-filters{min-width:0;}
.product-center-page #search-input{width:150px!important;}
.project-filter-summary{grid-column:1/-1;min-width:0;padding:2px 1px 0;color:#718077;font-size:11px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
@media(max-width:768px){.product-center-page .project-toolbar{display:flex!important;flex-direction:column;align-items:stretch!important;}.product-center-page .project-filters{width:100%;}.product-center-page #search-input{width:100%!important;}.project-filter-summary{white-space:normal;}}
.cloud-employee-mode #page-resource .resource-heading-actions,
.cloud-employee-mode #page-resource .resource-card-bottom button,
.cloud-employee-mode #page-resource .resource-detail-modal .modal-footer,
.cloud-employee-mode #page-cost .cost-heading-actions .cost-standard-library-btn,
.cloud-employee-mode #page-projects [onclick*="export"] { display: none !important; }
.cloud-employee-mode:not(.cloud-download-enabled) #page-cost [onclick*="exportCost"] { display:none !important; }
.project-approval-badge { display:inline-block; margin-left:5px; padding:2px 5px; border-radius:999px; font-size:9px; vertical-align:middle; }
.project-approval-badge.pending { color:#9a6700; background:#fff4ce; }
.project-approval-badge.rejected { color:#b42318; background:#fee4e2; }
.cloud-admin-approvals,.cloud-admin-cost-access { margin: 14px 0; padding: 14px; border: 1px solid #e4ebe8; border-radius: 12px; background: #fbfdfc; }
.cloud-admin-approvals .cloud-admin-toolbar,.cloud-admin-cost-access .cloud-admin-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:10px; }
.cloud-admin-approvals .cloud-admin-toolbar span,.cloud-admin-cost-access .cloud-admin-toolbar span { font-weight:700; }
.cloud-admin-approvals .cloud-admin-toolbar small,.cloud-admin-cost-access .cloud-admin-toolbar small { color:#71817d; font-size:12px; }
.cloud-approval-item { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:12px 0; border-top:1px solid #e8eeeb; }
.cloud-approval-item>div:first-child { display:grid; gap:4px; min-width:0; }
.cloud-approval-item span,.cloud-approval-item small { color:#65736e; font-size:12px; }
.cloud-approval-item p { margin:2px 0 0; color:#b54708; font-size:12px; }
.cloud-approval-item>div:last-child { display:flex; gap:6px; flex-shrink:0; }
.cloud-admin-cost-grant { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:7px 0; border-top:1px solid #edf1ef; }
.project-channel-tag { display:inline-block; margin:0 4px 3px 0; padding:2px 8px; border-radius:999px; color:#25634f; background:#e9f5ef; font-size:11px; }
.project-channel-field .form-label small { margin-left:6px; color:#78857f; font-size:11px; font-weight:400; }
.project-channel-picker { display:flex; flex-wrap:wrap; gap:7px; margin-top:5px; padding:9px; border:1px solid #dfe8e3; border-radius:9px; background:#fbfdfc; }
.project-channel-option { display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border:1px solid #e0e8e4; border-radius:999px; background:#fff; color:#42534c; font-size:12px; cursor:pointer; }
.project-channel-option:has(input:checked) { border-color:#66a58a; background:#edf8f2; color:#176b4b; }
.project-channel-option input { margin:0; accent-color:#23845f; }
.project-channel-empty { color:#899590; font-size:12px; }
@media(max-width:700px){.cloud-approval-item{align-items:flex-start;flex-direction:column}.cloud-admin-approvals .cloud-admin-toolbar,.cloud-admin-cost-access .cloud-admin-toolbar{align-items:flex-start;flex-direction:column}}

/* 管理员分区卡片及批量授权 */
#cloud-admin-panel .cloud-admin-content{display:grid;gap:18px;padding:18px;background:#f5f7fc;border-radius:14px}
#cloud-admin-panel .cloud-admin-approvals{margin:0;background:#fffaf0;border-color:#f0d9a3;border-top:4px solid #e9aa36}
#cloud-admin-panel .cloud-admin-details{margin:0;padding:0 16px 16px;background:#f4f8ff;border:1px solid #cadbf5;border-top:4px solid #668fda;border-radius:12px}
#cloud-admin-panel .cloud-admin-cost-access{margin:0;background:#f4fbf7;border-color:#bee2ce;border-top:4px solid #45a77a}
#cloud-admin-panel .cloud-admin-user{border-left:3px solid #8f9ddd;box-shadow:0 2px 7px #25385506}
#cloud-admin-panel .cloud-admin-user:nth-child(3n+2){border-left-color:#55ad99}
#cloud-admin-panel .cloud-admin-user:nth-child(3n){border-left-color:#ce9a57}
.cloud-bulk-picker{margin:10px 0 18px;padding:12px;border:1px solid #dce3ed;border-radius:10px;background:#fff}
.cloud-bulk-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cloud-bulk-tools input{flex:1 1 220px}
.cloud-bulk-count{margin:9px 0;color:#56677f;font-size:12px}
.cloud-bulk-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:7px;max-height:290px;overflow:auto;overscroll-behavior:contain}
.cloud-bulk-option{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1px solid #e7ecf3;border-radius:8px;cursor:pointer;font-size:12px;line-height:1.6;overflow-wrap:anywhere;background:#fafbfd}
.cloud-bulk-option:has(input:checked){background:#edf4ff;border-color:#91b6eb;color:#254f88}.cloud-bulk-option input{margin-top:3px;accent-color:#5084cc;flex-shrink:0}
#cloud-admin-panel button:disabled{opacity:.6;cursor:wait}
@media(max-width:600px){#cloud-admin-panel .cloud-admin-content{padding:10px}.cloud-bulk-options{grid-template-columns:1fr}.cloud-bulk-tools .btn{flex:1}.cloud-admin-user>summary{flex-wrap:wrap}}

/* 完整系统名称在侧栏内换行展示。 */
.sidebar-logo-text{min-width:0;flex:1}.sidebar-logo-text strong{white-space:normal;font-size:13px;line-height:1.45;overflow-wrap:anywhere}
