/* ============ 玻璃镜片 MES · 设计系统（参考小工单风格） ============ */
:root {
  --ui-nav-size: 14px;
  --ui-page-title-size: 18px;
  --ui-section-title-size: 15px;
  --ui-body-size: 12px;
  --ui-secondary-size: 12px;
  --ui-table-size: 12px;
  --ui-button-size: 12px;
  --ui-tag-size: 10px;
  --ui-dept-size: 12px;
  --ui-process-size: 12px;
  --ui-number-size: 12px;
  --ui-report-size: 12px;
  --ui-report-secondary-size: 12px;
  /* ---- 语义色 ---- */
  --primary: #1677FF;
  --primary-light: #E8F3FF;
  --primary-dark: #0958D9;
  --success: #00A870;
  --success-light: #E3F9EF;
  --danger: #E5484D;
  --danger-light: #FDECEE;
  --warning: #ED7B2F;
  --warning-light: #FDF0E7;
  /* ---- 文字：3 档 ---- */
  --text-1: #1F2937;   /* 正文 */
  --text-2: #526173;   /* 次要 */
  --text-3: #8A97A8;   /* 灰/提示（统一 .muted） */
  --accent-blue: #1677FF;   /* 链接/编号高亮 */
  --accent-purple: #7B3FE4; /* 管理员/特殊角色 */
  /* ---- 背景 ---- */
  --bg: #F5F7FA;
  --card: #FFFFFF;
  --line: #E6EAF0;
  /* ---- 字体大小：5 档 ---- */
  --fs-xs: 11px;      /* 极小标签 */
  --fs-sm: 12px;      /* 小字/辅助/灰字 */
  --fs-base: 14px;    /* 正文（统一） */
  --fs-lg: 14px;      /* 标题/重点 */
  --fs-xl: 17px;
  --fs-2xl: 18px;      /* 大标题 */
  --fs-3xl: 20px;      /* 数字强调 */      /* 大标题 */
  /* ---- 字重：只用 300/400/500/600，避免 bold(700) 毛躁 ---- */
  --fw-normal: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  /* ---- 间距：4 档 ---- */
  --sp-xs: 2px;
  --sp-sm: 4px;
  --sp-md: 6px;
  --sp-lg: 8px;
  --sp-xl: 12px;
  --sp-2xl: 16px;
  /* ---- 圆角 ---- */
  --radius-sm: 4px;
  --radius: 6px;
  --radius-lg: 10px;
  /* ---- 阴影 ---- */
  --shadow: 0 2px 8px rgba(31,56,88,.06);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
/* 全局紧凑化：整页等比缩放 0.88（字体/行距/列距/边距同比例缩小，布局不错位）；打印恢复 1.0 见下方 @media print */
/* 取消整页非整数缩放，避免 Windows 中文字体出现发虚和边缘毛刺。 */
html { zoom: 1; }
body {
  font-family: "Microsoft YaHei", "微软雅黑", "Segoe UI", "PingFang SC", Arial, sans-serif;
  background: var(--bg);
  color: var(--text-1);
  font-size: var(--fs-base);
  font-weight: var(--fw-normal);
  line-height: 1.5;
  -webkit-font-smoothing: auto;
  -moz-osx-font-smoothing: auto;
}
#app { min-height: 100vh; }

/* 统一文字层级：减少毛躁的重黑字，只有标题和明确重点使用半粗。 */
b, strong { font-weight: var(--fw-semibold); }
.page-title, .admin-top h2, .sheet-title { letter-spacing: .01em; font-weight: var(--fw-semibold); }
a { color: var(--accent-blue); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 2px; }
.list-row b, .tbl b { font-weight: var(--fw-medium); }
label.field, .nav-item, .tbl th, .cat-header { font-weight: var(--fw-medium); }
.page-title, .admin-top h2, .sheet-title { font-size: var(--fs-2xl); }
.muted, .hint, .help-text { font-size: var(--fs-sm); font-weight: var(--fw-normal); }
.num, .qnum, .tree-batch-code, .wo-code { font-variant-numeric: tabular-nums; font-weight: var(--fw-medium); }

/* ---------- 通用 ---------- */
.card { background: var(--card); border-radius: 8px; box-shadow: var(--shadow); padding: 8px 12px; margin-bottom: var(--sp-md); }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-md);
  border: none; border-radius: var(--radius-sm); padding: var(--sp-sm) var(--sp-md); font-size: var(--fs-sm); cursor: pointer;
  transition: .15s; font-family: inherit;
}
.btn-primary { background: var(--primary); color: #fff; font-weight: var(--fw-medium); }
.btn-primary:active { background: var(--primary-dark); }
.btn-ghost { background: var(--primary-light); color: var(--primary); }
.btn-dim { background:#fff; color:var(--text-3); border:1px dashed var(--line); }
.btn-dim:hover { color:var(--text-2); border-color:var(--text-3); }
.btn-back-lg { min-width:120px; padding:10px 24px; font-size: var(--fs-xl); background:var(--primary); color:#fff; }
.btn-back-lg:active { background:var(--primary-dark); }
.proc-dept { font-size: var(--fs-xs); color:var(--text-3); background:#F7F8FA; border-radius:4px; padding:2px 6px; align-self:center; flex-shrink:0; }
.admin-main .proc-dept, .admin-main .dept-text { color: var(--text-1); font-size: 14px; font-weight: var(--fw-medium); }
.cat-header { background:var(--primary-light); color:var(--primary); font-weight: 600; font-size: var(--fs-sm); padding: 2px var(--sp-md); border-radius:6px; display:inline-block; }
/* v10.33 权限配置矩阵 */
.perm-table { width:100%; border-collapse:collapse; font-size: var(--fs-base); }
.perm-table th, .perm-table td { border-bottom:1px solid var(--line); padding:5px 6px; }
.perm-table th { color:var(--text-2); font-weight:600; white-space:nowrap; }
.perm-group-row td { background:#F7F8FA; color:var(--text-2); font-weight:600; font-size: var(--fs-sm); padding:3px 6px; }
.btn-danger { background: var(--danger-light); color: var(--danger); }
.btn-success { background: var(--success-light); color: var(--success); }
/* v10.77：当前工序报工主按钮——有权实心绿（可操作/通行），无权灰色禁用（btn-dim + disabled） */
.btn-report-ok { background: var(--success); color: #fff; font-weight: 600; border-color: var(--success); }
.btn-report-ok:active { background: #008f5f; }
.btn-block { width: 100%; padding: 13px; font-size: var(--fs-xl); font-weight: 500; }
.btn-sm { padding: 4px 10px; font-size: var(--fs-lg); border-radius: 6px; font-weight: var(--fw-medium); }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.input, select.input, textarea.input {
  width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px;
  font-size: var(--fs-lg); background: #fff; font-family: inherit; outline: none; color: var(--text-1);
}
.input:focus { border-color: var(--primary); }
label.field { display: block; margin-bottom: 10px; font-size: var(--fs-lg); color: var(--text-2); }
label.field .input, label.field select { margin-top: 6px; }
.tag { display: inline-block; padding: 2px 10px; border-radius: 20px; font-size: var(--fs-sm); font-weight: var(--fw-medium); line-height: 1.45; }
.tag-blue { background: var(--primary-light); color: var(--primary); }
.tag-green { background: var(--success-light); color: var(--success); }
.tag-red { background: var(--danger-light); color: var(--danger); }
.tag-orange { background: var(--warning-light); color: var(--warning); }
.tag-gray { background: #F2F3F5; color: var(--text-3); }
.muted { color: var(--text-3); font-size: var(--fs-sm); font-weight: var(--fw-normal); }
.num { font-variant-numeric: tabular-nums; color: var(--primary); font-weight: var(--fw-medium); text-decoration: none; }
.batch-main { font-weight: 600 !important; }
.batch-child { font-weight: 400 !important; }
.qnum { font-variant-numeric: tabular-nums; }
.pname-hl { color: #145FCC; font-weight: var(--fw-medium); }
/* v3.8：仅产品清单表格的型号列——蓝粗体（不动全局 .pname-hl）；v3.12 字号+1px（14px） */
.pname-bold { color: #145FCC; font-weight: var(--fw-medium); font-size: var(--fs-lg); }
/* v3.7：转产起始工序标识行（绿底纹+蓝粗体+字号+1px） */
.convert-line { background: var(--success-light); color: var(--accent-blue); font-weight: 600; font-size: var(--fs-xl);
  padding: 2px 6px; border-radius: 6px; margin-top: 4px; display: inline-block; }
.convert-line .cv-plain { color: var(--text-2); font-weight: 400; font-size: var(--fs-lg); }
.bc-line { display: flex; align-items: baseline; gap: var(--sp-md); min-width: 0; flex-wrap: wrap; font-size: var(--fs-xl); }
.flex { display: flex; align-items: center; }
.flex-between { display: flex; align-items: center; justify-content: space-between; }
.gap8 { gap: var(--sp-md); } .gap12 { gap: 12px; }
.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mb8{margin-bottom: var(--sp-md)}.mb12{margin-bottom: var(--sp-lg)}

/* ---------- 登录 ---------- */
/* v10.29 登录页：精简品牌区 + 大按钮 + 紧凑布局 */
html:has(.login-wrap) { zoom: 1; }
.login-wrap { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: calc(env(safe-area-inset-top, 0px) + 24px) 24px calc(env(safe-area-inset-bottom, 0px) + 24px);
  background: linear-gradient(160deg, #1B5E20 0%, #43A047 100%); }
.login-brand { text-align: center; color: #fff; margin-bottom: 28px; }
.login-brand-img { width: 80px; height: 80px; object-fit: contain; border-radius: 20px;
  background: rgba(255,255,255,.15); padding: 10px; box-shadow: 0 6px 20px rgba(0,30,80,.25); }
.login-brand h1 { font-size: 28px; letter-spacing: 4px; margin-top: 14px; color: #fff; }
.login-card { width: 100%; max-width: 400px; background: #fff; border-radius: 18px; padding: 28px 22px 22px;
  box-shadow: 0 14px 40px rgba(0,35,90,.28); }
.login-field { display: block; font-size: var(--fs-lg); font-weight: 600; margin-bottom: 16px; color: var(--text-1); }
.login-input { padding: 14px 14px !important; font-size: var(--fs-xl) !important; border-radius: 12px !important; margin-top: 6px; }
.pwd-wrap { position: relative; margin-top: 6px; }
.pwd-wrap .login-input { padding-right: 46px !important; margin-top: 0; }
.pwd-eye { position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  border: none; background: transparent; font-size: var(--fs-3xl); line-height: 1; padding: 8px; cursor: pointer; }
.login-remember { display: flex; align-items: center; gap: var(--sp-md); font-size: var(--fs-lg); color: var(--text-2);
  margin: 0 0 16px; cursor: pointer; user-select: none; }
.login-remember input { width: 18px; height: 18px; accent-color: var(--primary); cursor: pointer; }
.login-btn { height: 54px; font-size: var(--fs-2xl); border-radius: 12px; letter-spacing: 8px; font-weight: 600; }
.login-shake { animation: loginShake .4s; }
@keyframes loginShake {
  0%,100% { transform: translateX(0); }
  20% { transform: translateX(-8px); } 40% { transform: translateX(8px); }
  60% { transform: translateX(-5px); } 80% { transform: translateX(5px); }
}

/* ---------- 移动端布局 ---------- */
.mobile-shell { max-width: 100%; min-height: 100vh; padding-bottom: 70px; }
.page { padding: 10px; }
.page-title { font-size: var(--fs-2xl); font-weight: 600; padding: 14px 14px 4px; }
.header-bar { background: #fff; padding: 12px 14px; position: sticky; top: 0; z-index: 20; box-shadow: var(--shadow); }

/* 底部Tab */
.tabbar {
  position: fixed; bottom: 0; left: 0; right: 0; background: #fff;
  display: flex; border-top: 1px solid var(--line); z-index: 30; padding-bottom: env(safe-area-inset-bottom);
}
.tabbar .tab-item { flex: 1; display: flex; flex-direction: column; align-items: center; padding: 8px 0 6px;
  color: var(--text-3); font-size: var(--fs-sm); cursor: pointer; text-decoration: none; }
.tabbar .tab-item.active { color: var(--primary); font-weight: 500; }
.tabbar .tab-icon { font-size: 22px; line-height: 1; margin-bottom: 3px; }

/* KPI 卡 */
.kpi-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: var(--sp-lg); }
.kpi-row-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: var(--sp-lg); }
.kpi { background: #fff; border-radius: var(--radius); padding: 7px 10px; box-shadow: var(--shadow); }
.kpi .k-label { font-size: var(--fs-base); color: var(--text-3); }
.kpi .k-value { font-size: var(--fs-3xl); font-weight: 600; margin-top: 4px; }
.kpi .k-sub { font-size: var(--fs-sm); color: var(--text-3); margin-top: 2px; }
.k-value.blue{color:var(--primary)} .k-value.green{color:var(--success)} .k-value.red{color:var(--danger)} .k-value.orange{color:var(--warning)}

/* 批次卡片 */
.batch-card { background: #fff; border-radius: var(--radius); padding: 11px 12px; margin-bottom: var(--sp-md);
  box-shadow: var(--shadow); cursor: pointer; transition: .15s; }
.batch-card:active { transform: scale(.99); background: var(--primary-light); }
.batch-card .b-code { font-weight: 600; font-size: var(--fs-xl); }
.batch-card .b-sub { color: var(--text-2); font-size: var(--fs-lg); margin-top: 3px; }
.mini-steps { display: flex; gap: 4px; margin-top: 10px; overflow-x: auto; }
.mini-steps .ms { flex: 1; min-width: 34px; height: 5px; border-radius: 3px; background: #E5E6EB; }
.mini-steps .ms.done { background: var(--success); }
.mini-steps .ms.cur { background: var(--primary); }
.mini-steps .ms.out { background: var(--warning); }

/* 工序步骤条（报工选择） */
.steps-v { display: flex; flex-direction: column; gap: 0; }
.step-item { display: flex; gap: 12px; cursor: pointer; }
.step-item .s-rail { display: flex; flex-direction: column; align-items: center; }
.step-item .s-dot { width: 26px; height: 26px; border-radius: 50%; background: #E5E6EB; color: var(--text-3);
  display: flex; align-items: center; justify-content: center; font-size: var(--fs-lg); flex-shrink: 0; }
.step-item .s-dot.done { background: var(--success); color: #fff; }
.step-item .s-dot.cur { background: var(--primary); color: #fff; }
.step-item .s-line { width: 2px; flex: 1; background: var(--line); min-height: 18px; }
.step-item .s-body { flex: 1; padding-bottom: 18px; }
.step-item .s-name { font-size: var(--fs-xl); font-weight: 500; }
.step-item .s-meta { font-size: var(--fs-base); color: var(--text-3); margin-top: 2px; }
.step-item .s-meta b { color: var(--text-2); font-weight: 500; }
.step-item .s-actions { margin-top: 8px; display: flex; gap: var(--sp-md); }

/* 大数字输入 */
.num-input { display: flex; align-items: center; }
.num-input button { width: 44px; height: 44px; border: 1px solid var(--line); background: #fff;
  font-size: var(--fs-3xl); cursor: pointer; color: var(--text-2); }
.num-input button:first-child { border-radius: 8px 0 0 8px; }
.num-input button:last-child { border-radius: 0 8px 8px 0; }
.num-input input { width: 100%; height: 44px; border: 1px solid var(--line); border-left: none; border-right: none;
  text-align: center; font-size: var(--fs-2xl); font-weight: 600; outline: none; font-family: inherit; }
.num-input input:focus { border-color: var(--primary); }

/* 弹层 */
.mask { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 50; display: flex;
  align-items: flex-end; justify-content: center; }
@media (min-width: 768px) { .mask { align-items: center; } }
.sheet { background: #fff; width: 100%; max-width: 520px; border-radius: 16px 16px 0 0;
  padding: 16px; max-height: 88vh; overflow-y: auto; }
/* 宽弹层：工序流配置器表格列多（rc-grid 合计约 680-730px），520px 会把工序列 1fr 挤塌 */
.sheet.wide { max-width: 1200px; }
@media (min-width: 768px) { .sheet { border-radius: 16px; } }
.sheet-title { font-size: var(--fs-xl); font-weight: 600; margin-bottom: 16px; display: flex; justify-content: space-between; }
.toast-wrap { position: fixed; top: 64px; left: 50%; transform: translateX(-50%); z-index: 10000; width: 90%;
  max-width: 400px; text-align: center; pointer-events: none; }
.toast { background: rgba(29,33,41,.88); color: #fff; padding: 10px 16px; border-radius: 8px;
  font-size: var(--fs-lg); display: inline-block; margin-bottom: var(--sp-md); }
.toast.err { background: var(--danger); } .toast.ok { background: var(--success); }

/* ---------- 桌面管理端 ---------- */
.admin-shell { display: flex; min-height: 100vh; }
.sidebar { width: 220px; background: #fff; border-right: 1px solid var(--line); padding: 16px 12px;
  position: fixed; top: 0; bottom: 0; left: 0; overflow-y: auto; z-index: 40; }
.sidebar .logo { display: flex; align-items: center; gap: 10px; padding: 6px 8px 18px; }
.sidebar .logo .logo-icon { width: 36px; height: 36px; border-radius: 9px; background: var(--primary);
  color: #fff; display: flex; align-items: center; justify-content: center; font-size: var(--fs-2xl); }
.sidebar .logo b { font-size: 16px; font-weight: var(--fw-semibold); }
.nav-group-title { font-size: 11px; color: var(--text-3); padding: 12px 10px 5px; letter-spacing: .5px; }
.nav-item { display: flex; align-items: center; gap: 8px; padding: 7px 12px; border-radius: 8px;
  color: var(--text-2); cursor: pointer; font-size: var(--ui-nav-size); line-height: 1.3; margin-bottom: 1px; }
.nav-item:hover { background: #F2F3F5; }
.nav-item.active { background: var(--primary-light); color: var(--primary); font-weight: 500; }
.nav-item .ni { width: 18px; text-align: center; }
.admin-main { flex: 1; margin-left: 220px; padding: 18px 22px; max-width: 1400px; }
.admin-main { font-size: 14px; }
.admin-main .card { font-size: 14px; }
.admin-main .cat-header { color: var(--text-1); font-size: 14px; font-weight: var(--fw-medium); }
.admin-main .muted { font-size: 13px; }
.admin-main .btn-sm { font-size: 13px; }
.admin-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.admin-top h2 { font-size: var(--fs-3xl); }

/* 表格（v3.12：与下方 .tbl 密集版统一，padding 4/8、同色同行高，避免两套规则打架） */
.tbl-wrap { overflow-x: auto; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); }
table.tbl { width: max-content; min-width: 100%; border-collapse:collapse; font-size: var(--fs-base); }
.tbl th { text-align: left; padding: var(--sp-sm) var(--sp-md); color: var(--text-3); font-weight: 500;
  border-bottom: 1px solid var(--line); background: #FAFBFC; white-space: nowrap; }
.tbl td { padding: var(--sp-xs) var(--sp-md); border-bottom: 1px solid #F2F3F5; white-space: nowrap; line-height: 1.35; }
.tbl tr:last-child td { border-bottom: none; }
.tbl tr:hover td { background: var(--primary-light); }

/* 进度条 */
.pbar { height: 8px; background: #F2F3F5; border-radius: 4px; overflow: hidden; min-width: 80px; }
.pbar .pfill { height: 100%; background: var(--primary); border-radius: 4px; }
.pbar .pfill.green { background: var(--success); }

/* 柱状图（纯CSS） */
.bars { display: flex; align-items: flex-end; gap: var(--sp-md); height: 130px; padding: 10px 4px 0; }
.bar-col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; }
.bar-v { font-size: var(--fs-xs); color: var(--text-3); white-space: nowrap; overflow: hidden; max-width: 100%; text-overflow: ellipsis; }
.bar { width: 100%; max-width: 34px; background: var(--primary-light); border-radius: 4px 4px 0 0; position: relative; }
.bar i { position: absolute; bottom: 0; left: 0; right: 0; background: var(--primary); border-radius: 4px 4px 0 0; }
.bar-label { font-size: var(--fs-xs); color: var(--text-3); white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }

/* 红绿灯 */
.light { display: inline-flex; align-items: center; gap: var(--sp-md); font-size: var(--fs-lg); }
.light .dot { width: 10px; height: 10px; border-radius: 50%; }
.dot.green { background: var(--success); box-shadow: 0 0 6px var(--success); }
.dot.yellow { background: var(--warning); box-shadow: 0 0 6px var(--warning); }
.dot.red { background: var(--danger); box-shadow: 0 0 6px var(--danger); }

/* 报工表单 */
.reason-row { display: flex; gap: var(--sp-md); margin-bottom: var(--sp-md); align-items: center; }
.chip-row { display: flex; flex-wrap: wrap; gap: var(--sp-md); }
.chip { padding: 6px 14px; border-radius: 20px; background: #F2F3F5; font-size: var(--fs-lg); cursor: pointer;
  color: var(--text-2); border: 1px solid transparent; }
.chip.on { background: var(--primary-light); color: var(--primary); border-color: var(--primary); }
.chip.dmg.on { background: var(--danger-light); color: var(--danger); border-color: var(--danger); }

.empty { text-align: center; padding: 40px 0; color: var(--text-3); font-size: var(--fs-lg); }
.empty .e-icon { font-size: 40px; margin-bottom: var(--sp-md); opacity: .4; }

/* 桌面下移动组件居中 */
@media (min-width: 768px) {
  .mobile-shell { max-width: 480px; margin: 0 auto; border-left: 1px solid var(--line); border-right: 1px solid var(--line); }
  .tabbar { left: 50%; transform: translateX(-50%); max-width: 480px; }
}

/* 移动端管理入口（admin也用） */
@media (max-width: 767px) {
  .admin-shell { flex-direction: column; }
  .sidebar { position: static; width: 100%; border-right: none; border-bottom: 1px solid var(--line);
    padding: 10px 12px; }
  .sidebar .nav-group-title { display: none; }
  .sidebar .navs { display: flex; gap: var(--sp-md); overflow-x: auto; }
  .nav-item { flex-shrink: 0; padding: 8px 12px; margin-bottom: 0; }
  .admin-main { margin-left: 0; padding: 14px; }
}

/* ============ 管理端视觉基线（生产管理后台） ============ */
@media (min-width: 769px) {
  .admin-side { width: 188px; padding: 16px 10px; background: #fff; border-right: 1px solid #E8EDF3; }
  .admin-main { margin-left: 188px; max-width: none; padding: 22px 28px 40px; }
  .admin-logo { padding: 4px 8px 18px; font-size: 16px; color: #1F2937; }
  .admin-nav, .admin-nav-top { font-size: 12px !important; line-height: 1.45; padding: 9px 12px; border-radius: 7px; }
  .admin-nav { color: #526173; }
  .admin-nav.active { color: #1677FF; background: #EAF3FF; font-weight: 600; }
  .admin-nav-top { color: #1F2937; }
  .admin-nav-logout { font-size: 12px !important; padding: 10px 12px; }
}
.admin-main .card {
  border: 1px solid #E8EDF3;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(31,56,88,.045);
  padding: 10px 14px;
  margin-bottom: 8px;
}
.admin-main .cat-header {
  display: inline-flex;
  align-items: center;
  min-width: 96px;
  min-height: 28px;
  padding: 3px 10px;
  border-radius: 5px;
  background: transparent;
  color: #1F2937;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .02em;
}
.admin-main .cat-header::first-letter { color: #1677FF; }
.admin-main .list-row { min-height: 34px; border-bottom: 1px solid #F0F2F5; }
.admin-main .list-row:last-child { border-bottom: 0; }
.admin-main .proc-dept, .admin-main .dept-text {
  color: #1F2937;
  background: #F2F5F8;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 500;
}
.admin-main .chip {
  min-width: 88px;
  padding: 6px 12px;
  color: #1F2937;
  background: #F5F7FA;
  border: 1px solid #E2E8F0;
  font-size: 14px;
  text-align: center;
}
.admin-main .chip:hover { color: #1677FF; border-color: #91C3FF; background: #F0F7FF; }
.admin-main .btn-sm { min-height: 28px; padding: 4px 10px; font-size: 13px; }
.admin-main .tbl th { color: #526173; background: #F7F9FB; font-size: 13px; font-weight: 600; }
.admin-main .tbl td { font-size: 14px; }

/* 默认字号绑定：放在视觉覆盖规则之后，保持各类文字字号一致。 */
.admin-main { font-size: var(--ui-body-size) !important; }
.admin-main .page-title, .admin-main .admin-top h2 { font-size: var(--ui-page-title-size) !important; }
.admin-main .cat-header { font-size: var(--ui-section-title-size) !important; }
.admin-main .muted, .admin-main .hint, .admin-main .help-text { font-size: var(--ui-secondary-size) !important; }
.admin-main .btn, .admin-main .btn-sm { font-size: var(--ui-button-size) !important; }
.admin-main .tag { font-size: var(--ui-tag-size) !important; }
.admin-main .proc-dept, .admin-main .dept-text { font-size: var(--ui-dept-size) !important; }
.admin-main .chip { font-size: var(--ui-process-size) !important; }
.admin-main .tbl, .admin-main .tbl td { font-size: var(--ui-table-size) !important; }
.admin-main .num, .admin-main .qnum, .admin-main .tree-batch-code, .admin-main .wo-code { font-size: var(--ui-number-size) !important; color:#68778B; font-weight:var(--fw-medium); }
.admin-main .order-code,.admin-main .rep-code,.admin-main .material-code,.admin-main .stats-code,.admin-main .code { font-family:ui-monospace,"Cascadia Mono",Consolas,monospace; font-size:var(--ui-number-size)!important; color:#1F2937; font-weight:600; }
.admin-side .admin-nav, .admin-side .admin-nav-top { font-size: var(--ui-nav-size) !important; }
.admin-side .admin-nav-group-label{margin:10px 10px 3px;color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.04em;}
.admin-dashboard-page .dashboard-panel-grid{gap:10px;}
.admin-dashboard-page .dashboard-panel-grid>.rp-card .card-head{min-height:39px;padding-top:8px;padding-bottom:8px;}
.admin-dashboard-page .dashboard-table th{padding-top:5px;padding-bottom:5px;}
.admin-dashboard-page .dashboard-table td{padding-top:4px;padding-bottom:4px;height:29px;}
.admin-dashboard-page .proc-bar-row{padding-top:4px;padding-bottom:4px;min-height:29px;}
.admin-dashboard-page .list-row{padding-top:4px;padding-bottom:4px;}
.mobile-shell { font-size: var(--ui-body-size); }
.mobile-shell .muted { font-size: var(--ui-secondary-size) !important; }
.mobile-shell .btn, .mobile-shell .btn-sm { font-size: var(--ui-button-size) !important; }
.mobile-shell .tag, .mobile-shell .chip { font-size: var(--ui-tag-size) !important; }
.mobile-shell .step-item .s-name, .mobile-shell .proc-dept { font-size: var(--ui-process-size) !important; }
.mobile-shell .input { font-size: var(--ui-report-size) !important; }
.mobile-shell .pending-title, .mobile-shell .pending-item, .mobile-shell .tree-batch-code { font-size: var(--ui-report-size) !important; }
.mobile-shell .pending-tag, .mobile-shell .tree-row-sub, .mobile-shell .tree-state, .mobile-shell .tree-split-basis { font-size: var(--ui-report-secondary-size) !important; }
.mobile-shell .batch-tree-row .tree-row-main { display: grid; grid-template-columns: 24px 42px 170px 60px 120px minmax(150px, 1fr) 64px 120px 84px; align-items: center; column-gap: 6px; row-gap: 0; min-width: 900px; min-height: 28px; }
.mobile-shell .batch-tree-row { overflow-x: auto; }
/* 待报工树行原先使用固定 left/right 定位，字体变化时会互相覆盖；改为自然流式排列。 */
.mobile-shell .batch-tree-row .tree-row-main > span[style*="position:absolute"] { position: static !important; left: auto !important; right: auto !important; width: auto !important; min-width: 0; margin: 0 !important; font-size: var(--ui-report-secondary-size) !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mobile-shell .batch-tree-row .tree-row-main > .tree-toggle,
.mobile-shell .batch-tree-row .tree-row-main > .tree-toggle-spacer { grid-column: 1; }
.mobile-shell .batch-tree-row .tree-row-main > .tag-blue { grid-column: 2; }
.mobile-shell .batch-tree-row .tree-row-main > .tree-batch-code { grid-column: 3; width: auto !important; }
.mobile-shell .batch-tree-row .tree-row-main > span[style*="position:absolute"]:nth-of-type(1) { grid-column: 4; }
.mobile-shell .batch-tree-row .tree-row-main > span[style*="position:absolute"]:nth-of-type(2) { grid-column: 5; }
.mobile-shell .batch-tree-row .tree-row-main > span[style*="position:absolute"]:nth-of-type(3) { grid-column: 6; }
.mobile-shell .batch-tree-row .tree-row-main > span[style*="position:absolute"]:nth-of-type(4) { grid-column: 7; }
.mobile-shell .batch-tree-row .tree-row-main > span[style*="position:absolute"]:nth-of-type(5) { grid-column: 8; }
.mobile-shell .batch-tree-row .tree-row-main > .tag-green { grid-column: 9; }
.mobile-shell .batch-tree-row .tree-row-main > .tree-main-input { grid-column: 9; margin-left: 0 !important; }

/* ============ v2 新增：交接 / 订单 / 工序流 ============ */
.mini-steps { display:flex; gap:3px; margin-top:10px; }
.mini-steps i { flex:1; height:5px; border-radius:3px; background:#E5E6EB; }
.mini-steps i.s-done { background:var(--success); }
.mini-steps i.s-cur { background:var(--primary); }
.mini-steps i.s-out { background:var(--warning); }
/* 进度条带工序名标注：每段上方显示工序名，进度一目了然 */
.mini-steps.labeled { align-items:flex-end; }
.mini-steps.labeled .ms-col { flex:1; min-width:0; display:flex; flex-direction:column; align-items:center; gap:3px; }
.mini-steps.labeled .ms-col i { flex:0 0 auto; width:100%; height:5px; }
.mini-steps.labeled .ms-label { font-size: var(--fs-sm); line-height:1.1; color:var(--text-3); max-width:100%;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:center; }
.mini-steps.labeled .ms-label.sm { font-size: var(--fs-sm); }
.mini-steps.labeled .ms-col .ms-label { color:var(--text-2); }
.mini-steps.labeled .ms-col:has(i.s-cur) .ms-label { color:var(--primary); font-weight:600; }

.step-card { padding:10px 12px; }
.step-card.step-cur { border-left:3px solid var(--primary); }
.step-card.step-lock { opacity:.55; }
/* v10.19 G1：点入批次滚动定位后的短暂高亮 */
.step-card.step-flash { animation: stepFlash 1.6s ease; }
@keyframes stepFlash {
  0% { background: var(--primary-light); }
  100% { background: transparent; }
}
.step-dot { width:30px; height:30px; border-radius:50%; background:#F2F3F5; color:var(--text-3);
  display:flex; align-items:center; justify-content:center; font-size: var(--fs-lg); font-weight:600; flex-shrink:0; }
.step-dot.s-done { background:var(--success-light); color:var(--success); }
.step-dot.s-cur { background:var(--primary); color:#fff; }
.step-dot.s-out { background:var(--warning-light); color:var(--warning); }
.receive-tip { margin-top:8px; background:var(--warning-light); color:var(--warning);
  border-radius:8px; padding:8px 10px; font-size: var(--fs-base); line-height:1.6; }

.step-mini-row { display:flex; align-items:center; gap: var(--sp-md); padding:6px 0; border-bottom:1px dashed #F2F3F5; font-size: var(--fs-lg); }
.step-mini-row:last-child { border-bottom:none; }
.step-no { width:24px; height:24px; border-radius:6px; background:#F2F3F5; color:var(--text-3);
  font-size: var(--fs-base); display:flex; align-items:center; justify-content:center; font-weight:600; flex-shrink:0; }
.step-no.s-done { background:var(--success-light); color:var(--success); }
.step-no.s-cur { background:var(--primary); color:#fff; }
.step-no.s-out { background:var(--warning-light); color:var(--warning); }
.tag-blue-bg { background:var(--primary-light); color:var(--primary); }

.hov-row { padding:8px 0; border-bottom:1px dashed #F2F3F5; font-size: var(--fs-lg); line-height:1.8; }
.hov-row:last-child { border-bottom:none; }

.order-item-row { display:flex; align-items:center; gap: var(--sp-md); padding:8px 0; border-top:1px dashed #F2F3F5; margin-top:8px; font-size: var(--fs-lg); }
.pbar { height:7px; background:#F2F3F5; border-radius:4px; width:70px; overflow:hidden; flex-shrink:0; }
.pbar i { display:block; height:100%; background:var(--primary); border-radius:4px; }

.route-summary { color:var(--primary); font-size: var(--fs-base); margin-top:4px; }
.route-step-row { display:flex; align-items:center; gap:4px; padding:3px 0; border-bottom:1px dashed #F2F3F5; font-size: var(--fs-sm); white-space:nowrap; overflow:hidden; }
.route-step-row:last-child { border-bottom:none; }
/* CR-036 工序流配置器表格化；v10.86 rc-grid 嵌套 grid（rc-head/rc-row 各自独立 grid 容器，列模板一致） */
/* 外层容器：提供统一边框和溢出控制 */
.rc-grid-wrap { border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
/* 表头/数据行：各自是独立 grid 容器，列模板完全一致（保证对齐） */
.rc-head, .rc-row {
  display: grid;
  grid-template-columns: 40px 150px 80px 180px 70px 150px 120px minmax(100px,auto);
  column-gap: 4px; align-items: center;
  font-size: var(--fs-base);
}
/* 完整模式：列模板不变，rc-col-state / rc-col-pack 从 display:none → display:block */
.rc-col-state, .rc-col-pack { display: none; }
.rc-full .rc-col-state { display: block; }
.rc-full .rc-col-pack { display: block; }
/* 表头 */
.rc-head {
  background: #f8f9fa;
  font-size: var(--fs-lg); font-weight: 500; color: var(--text-1);
  padding: 5px 6px;
  border-bottom: 1px solid var(--line);
}
.rc-head span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* 数据行 */
.rc-row {
  padding: 4px 6px;
  font-size: var(--fs-base); line-height: 1.3;
  border-bottom: 1px dashed var(--line);
  cursor: grab;
}
.rc-row:last-of-type { border-bottom: none; }
.rc-row:hover { background: #FAFBFC; }
.rc-row.dragging { opacity: 0.4; }
.rc-row .input { min-width: 0; padding: 2px 4px; font-size: var(--fs-base); border-radius: 4px; border: 1px solid var(--line); }
.rc-row .btn-sm { padding: 1px 6px; font-size: var(--fs-base); border-radius: 4px; }
.rc-row .muted { color: var(--text-3); font-size: var(--fs-sm); }
/* 检查项展开：全宽横跨（grid-column 在嵌套 grid 内生效） */
.rc-checks {
  grid-column: 1 / -1;
  margin-top: 2px; padding: 4px 6px;
  background: #FAFBFC; border-radius: 4px;
  font-size: var(--fs-xs);
}
.rc-checks textarea { width: 100%; box-sizing: border-box; font-size: var(--fs-xs); padding: 3px 4px; }
/* 旧 rc-step-card（废弃保留以防遗漏引用） */
.rc-step-card { padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; margin-bottom: var(--sp-md); background: #fff; cursor: grab; }
.rc-step-card:hover { border-color: var(--primary); }
.rc-step-card.dragging { opacity: 0.45; }
.chips { display:flex; flex-wrap:wrap; gap: var(--sp-md); }
.chip { padding:6px 14px; background:var(--primary-light); color:var(--primary); border-radius:16px; font-size: var(--fs-lg); cursor:pointer; }

/* 分类字典列表式布局 */
.dict-list { border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.dict-row { display:flex; align-items:center; justify-content:space-between;
  padding:8px 12px; border-bottom:1px solid var(--line); background:#fff; }
.dict-row:last-child { border-bottom:none; }
.dict-row:hover { background:#F7F8FA; }
.dict-name { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dict-actions { display:flex; gap: var(--sp-md); flex-shrink:0; }

.btn-warning { background:var(--warning-light); color:var(--warning); }

.admin-shell { display:flex; min-height:100vh; }
/* 手机端顶栏和导航（桌面端隐藏） */
.admin-m-top, .admin-m-nav, .admin-m-more { display:none; }

.admin-side { width:170px; background:#fff; border-right:1px solid var(--line); padding:8px 8px;
  display:flex; flex-direction:column; gap:0; position:sticky; top:0; height:100vh; overflow-y:auto; scrollbar-width:thin; }
.admin-logo { font-weight: 600; font-size: var(--fs-lg); padding:4px 4px 7px; white-space:nowrap; overflow:hidden;
  display:flex; align-items:center; gap: var(--sp-md); text-align:left; }
.admin-logo-img { margin:0 !important; vertical-align:middle; }
.admin-nav { padding:7px 12px; border-radius:8px; cursor:pointer; color:var(--text-2); font-size: 12px !important; line-height:1.3; font-weight:400; }
.admin-nav:hover { background:#F7F8FA; }
.admin-nav.active { background:var(--primary-light); color:var(--primary); font-weight: 600; }
/* v10.128：退出按钮——淡红底 + 尺寸缩小18% + 字体加大2px */
.admin-nav-logout { margin-top:auto; padding:9px 13px; font-size: 10px !important; font-weight: 600;
  text-align:center; color:#fff; background:rgba(229,72,77,0.5); border-radius:10px; }
.admin-nav-logout:hover { background:rgba(229,72,77,0.65); color:#fff; }
.admin-nav-top { padding:7px 12px; font-weight:400; font-size: 12px !important; background:#FFF3CD; color:var(--text-1); border-radius:8px; }
.admin-nav-top:hover { background:#FFE9A8; }
.admin-nav-top.active { background:#FFF3CD; color:var(--primary); font-weight: 600; }
.admin-main { flex:1; min-width:0; }

/* ===== 手机端（≤768px） ===== */
@media (max-width:768px) {
  .admin-shell { flex-direction:column; }
  .admin-side { display:none; }  /* 隐藏桌面左边栏 */

  /* 顶栏：员工信息 + 退出 */
  /* v10.84：顶部用户栏+导航整体锁定在页面上部 */
  .admin-m-top { display:flex; align-items:center; justify-content:space-between; box-sizing:border-box;
    padding:8px 16px; height:60px; background:#fff; border-bottom:1px solid var(--line);
    position:fixed; top:0; left:0; right:0; z-index:100; }
  .admin-m-user { display:flex; align-items:baseline; gap: var(--sp-md); min-width:0; }
  .admin-m-name { font-size: var(--fs-2xl); font-weight: 600; color:var(--text-1); }
  .admin-m-role { font-size: var(--fs-lg); font-weight:600; color:var(--text-3); background:#F2F3F5; padding:2px 8px; border-radius:10px; }
  /* v10.128：手机端退出按钮——淡红底 + 尺寸缩小18% + 字体加大2px */
.admin-m-logout { font-size: var(--fs-xl); font-weight: 600; padding:6px 13px; cursor:pointer; flex-shrink:0;
  background:rgba(229,72,77,0.5); color:#fff; border-radius:10px; line-height:1.2; }
.admin-m-logout:active { background:rgba(229,72,77,0.65); }

  /* 大按钮导航行（固定 报工/报工审批/报工记录/更多，等分铺满） */
  .admin-m-nav { display:flex; gap: var(--sp-md); padding:8px 10px; background:#fff; border-bottom:1px solid var(--line);
    position:fixed; top:60px; left:0; right:0; z-index:100; }
  .admin-m-nav-btn { flex:1 1 0; min-width:0; padding:9px 2px; border-radius:10px; font-size: var(--fs-xl); font-weight:400;
    background:#F2F3F5; color:var(--text-2); cursor:pointer; white-space:nowrap; text-align:center; overflow:hidden; }
  .admin-m-nav-btn.active { background:var(--primary); color:#fff; font-weight: 600; }
  .admin-m-nav-report { font-size: var(--fs-xl); background:#FFF3CD; color:var(--text-1); }
  .admin-m-nav-report.active { background:#FFE9A8; color:var(--primary); font-weight: 600; }
  .admin-m-nav-btn.admin-m-nav-more { flex:0 0 64px; }
  .admin-m-nav-btn .tab-badge { margin-left:2px; }

  /* 更多菜单遮罩 */
  .admin-m-more { display:block; position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:200;
    display:flex; align-items:flex-end; animation:fadeIn .2s; }
  .admin-m-more-menu { background:#fff; border-radius:16px 16px 0 0; width:100%; padding:16px 16px calc(env(safe-area-inset-bottom,0px)+16px);
    max-height:75vh; overflow-y:auto; animation:slideUp .25s; }
  .admin-m-more-title { font-size: var(--fs-base); color:var(--text-3); padding:4px 4px 12px; text-align:center; border-bottom:1px solid var(--line); margin-bottom: var(--sp-md); }
  .admin-m-more-item { padding:14px 12px; font-size: var(--fs-2xl); font-weight:400; border-radius:10px; cursor:pointer; color:var(--text-1); display:flex; align-items:center; gap: var(--sp-md); }
  .admin-m-more-item:hover { background:#F7F8FA; }
  .admin-m-more-item.active { background:var(--primary-light); color:var(--primary); font-weight: 600; }
  .admin-m-more-item .tab-badge { margin-left:auto; }
  .admin-m-more-close { margin-top:10px; padding:14px; text-align:center; color:var(--text-3); font-size: var(--fs-lg);
    background:#F2F3F5; border-radius:10px; cursor:pointer; }

  /* v10.120：顶部固定栏（用户栏60px+导航约55px），内容区避让 */
  .admin-main { padding:120px 12px 12px; }
  .notif-bar-admin { margin:0 -12px 8px; border-radius:0; }
}
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
@keyframes slideUp { from{transform:translateY(100%)} to{transform:translateY(0)} }
.avatar { width:44px; height:44px; border-radius:50%; background:var(--primary); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size: var(--fs-2xl); font-weight:600; }
.list-row { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:2px 0; border-bottom:1px dashed #E8EAED; }
.list-row:last-child { border-bottom:none; }
.proc-bar-row { display:flex; align-items:center; gap: var(--sp-md); padding:1px 0; font-size: var(--fs-base); }
.proc-name { width:140px; flex-shrink:0; color:var(--text-2); font-size: var(--fs-base); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.proc-bar { flex:1; height:8px; background:#F2F3F5; border-radius:4px; overflow:hidden; }
.proc-bar i { display:block; height:100%; background:var(--primary); border-radius:4px; }
.chart { display:flex; align-items:flex-end; gap: var(--sp-md); height:110px; padding-top:10px; }
.chart-col { flex:1; display:flex; flex-direction:column; align-items:center; height:100%; justify-content:flex-end; }
.chart-v { font-size: var(--fs-xs); color:var(--text-3); margin-bottom:2px; }
.chart-bar { width:100%; max-width:28px; height:80%; background:#F2F3F5; border-radius:4px; display:flex; align-items:flex-end; }
.chart-bar i { display:block; width:100%; background:var(--primary); border-radius:4px; }
.chart-l { font-size: var(--fs-xs); color:var(--text-3); margin-top:3px; }
.batch-card { cursor:pointer; }
/* v3.8：基础数据-产品清单——密集、纵向对齐
   v3.12：table-layout:auto 让列宽由内容撑开（长信息完整显示），去掉 break-all（字不再被拆开） */
.prod-tbl { table-layout: auto; width: max-content; min-width: 860px; }
.prod-tbl th { white-space: normal; word-break: keep-all; vertical-align: bottom; padding:var(--sp-xs) var(--sp-md); }
.prod-tbl td { white-space: normal; word-break: keep-all; vertical-align: middle; padding:var(--sp-xs) var(--sp-md); line-height: 1.35; }
.prod-tbl td.td-num { text-align: right; }
.prod-tbl tr.customer-group-row td {
  background: var(--bg);
  border-top: 2px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 4px 8px;
  font-size: var(--fs-base);
}
/* v3.9→v3.10：工单管理清单——行距减半后再减10px（已触底归零，行间直接相接；仅本清单，不动全局 .card/.list-row） */
.wo-list .card.wo-card { padding:0 12px; margin-bottom:0; }

/* ============ v3 新增：HB品牌 / 品质工序 / 审核 ============ */
.tag-purple { background:#F1EBFF; color: var(--accent-purple); }

/* Logo（登录页 + 管理端侧栏） */
.login-logo-img { width:64px; height:64px; object-fit:contain; margin-bottom:10px; }
.admin-logo-img { width:28px; height:28px; object-fit:contain; vertical-align:-7px; margin-right:6px; }

/* Tab 上的待审核角标 */
.tab-badge { display:inline-block; min-width:17px; height:17px; padding:0 4px; border-radius:9px;
  background:var(--danger); color:#fff; font-size: var(--fs-xs); line-height:17px; text-align:center;
  margin-left:3px; vertical-align:middle; }

/* 品质工序小角标（chip / proc-name 内嵌） */
.qtag { font-style:normal; font-size: var(--fs-xs); padding:1px 5px; border-radius:8px;
  background:#F1EBFF; color: var(--accent-purple); margin-left:4px; vertical-align:1px; }

/* 报工数量恒等式提示行 */
.calc-line { margin:10px 0 2px; padding:9px 12px; border-radius:8px; background:#F7F8FA;
  border:1px dashed var(--line); color:var(--text-2); font-size: var(--fs-lg); line-height:1.7; }

/* ============ v4 新增（CR-007）：通知 / 附件 / 抽检 / 看板 / 物料员 ============ */

/* 站内通知红条（员工端置顶 + 管理端内容区顶部） */
.notif-bar { position:sticky; top:0; z-index:25; background:var(--danger); color:#fff;
  padding:9px 14px; font-size: var(--fs-lg); cursor:pointer; box-shadow:0 2px 8px rgba(229,72,77,.35); }
.notif-bar-admin { position:static; margin:0 0 4px; border-radius:0 0 10px 10px; }

/* 通知中心列表 */
.notif-row { display:flex; align-items:flex-start; gap:10px; padding:10px 6px;
  border-bottom:1px dashed #F2F3F5; cursor:pointer; border-radius:6px; }
.notif-row:hover { background:var(--primary-light); }
.notif-row:last-child { border-bottom:none; }
.notif-row.unread { background:#FFF9F2; }
.notif-row.unread b { color:var(--text-1); }
.notif-row.hasmeta { border-left:3px solid var(--primary); }
.notif-row.hasmeta:hover { background:var(--primary-light); }

/* 抽检检查项逐项确认 */
.check-block { border:1px solid #E3D9F5; background:#FAF7FF; border-radius:10px; padding:12px; margin-bottom: var(--sp-lg); }
.check-row { display:flex; align-items:center; gap: var(--sp-md); padding:7px 0; border-bottom:1px dashed #F0E9FA; }
.check-row:last-of-type { border-bottom:none; }
.check-name { flex:1; font-size: var(--fs-lg); color:var(--text-2); min-width:0; }
.check-row .input { padding:6px 8px; font-size: var(--fs-lg); }

/* 附件管理 */
.attach-paste { display:flex; align-items:center; gap:12px; border:2px dashed var(--primary);
  background:var(--primary-light); border-radius:12px; padding:14px 16px; cursor:pointer;
  outline:none; font-size: var(--fs-lg); }
.attach-paste:focus { border-color:var(--primary-dark); background:#E8F5E9; }
.attach-paste-icon { font-size: 26px; }
.attach-row { display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px dashed #F2F3F5; }
.attach-row:last-child { border-bottom:none; }
.attach-thumb { width:52px; height:52px; object-fit:cover; border-radius:8px; border:1px solid var(--line);
  cursor:pointer; flex-shrink:0; }
.attach-file-icon { display:flex; align-items:center; justify-content:center; font-size: 24px;
  background:#F2F3F5; color:var(--text-3); }
.attach-name { font-size: var(--fs-lg); word-break:break-all; }
.attach-preview-mask { position:fixed; inset:0; background:rgba(0,0,0,.82); z-index:120;
  display:flex; flex-direction:column; align-items:center; justify-content:center; padding:20px; }
.attach-preview-mask img { max-width:92%; max-height:80vh; border-radius:8px; }

/* 看板：近7天按工序表格 */
.week-tbl td, .week-tbl th { font-size: var(--fs-base); }
.week-tbl .qtag { margin-left:2px; }

/* 外协超期标红行（看板 + 物料员） */
.mat-overdue { background:var(--danger-light); border-radius:8px; padding:10px 8px !important; }
.mat-proc-row { padding:10px 0; border-bottom:1px dashed #F2F3F5; }
.mat-proc-row:last-child { border-bottom:none; }

/* 工艺文档查看（富文本容器） */
.tech-doc-view { border:1px solid var(--line); border-radius:10px; padding:12px 14px;
  background:#FAFBFC; font-size: var(--fs-lg); line-height:1.9; color:var(--text-2); overflow-wrap:anywhere; }
.tech-doc-view img { max-width:100%; border-radius:8px; }
.tech-doc-view ul, .tech-doc-view ol { padding-left:20px; }

/* ============ CR-008 v4.1：统计下钻 + 基础数据升级 ============ */
/* 可下钻区域（KPI/分布行/表格行）：hover 提示可点 */
.drillable { cursor:pointer; transition:background .15s; border-radius:8px; }
.kpi.drillable:hover { border-color:var(--primary); box-shadow:0 2px 10px rgba(22,93,255,.12); }
.proc-bar-row.drillable:hover { background:var(--primary-light); }
tr.drillable:hover { background:var(--primary-light); }
.list-row.drillable:hover { background:var(--primary-light); }
.chart-col.drillable:hover .chart-l { color:var(--primary); font-weight:600; }

/* 日期输入框：手势光标（点击任意位置弹日历，见 app.js showPicker） */
input[type="date"] { cursor:pointer; }

/* 下钻弹层汇总条 */
.sheet .list-row.drillable { padding:10px 6px; }

/* 2026-09-15 报工页待报工单据强调：标题蓝色加粗+2px，明细行整体+2px */
.pending-title { font-size: var(--fs-xl); font-weight: 600; color: var(--accent-blue); }
.pending-item { font-size: var(--fs-xl); }
.pending-item .muted { color: var(--text-3); font-size: var(--fs-sm); }

/* 待报工单据行溯源标签（外购/外协分类+数量） */
.pending-tag { color: var(--text-3); font-size: var(--fs-lg); }

/* 2026-09-15 全局清单规范：固定列宽工具类 */
.cell { display:inline-flex; align-items:center; flex-shrink:0; vertical-align:middle; }
/* 待报工单据第一行：批号/型号字号小 2px，批号栏加宽 50px */
.pending-batch { width:200px; font-size: var(--fs-lg); }
.pending-model { width:100px; font-size: var(--fs-lg); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* v3.23 报工页批次树形 */
.model-group { margin-bottom: 10px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.model-header { padding: 8px 12px; background: #fff; font-weight: 600; font-size: var(--fs-xl); color: var(--accent-blue); }
.batch-tree-row { position: relative; padding: 3.5px 12px; border-bottom: 1px solid var(--line); cursor: pointer; }
.batch-tree-row:last-child { border-bottom: none; }
.batch-tree-row:hover { filter: brightness(0.97); }
.tree-row-main { display: flex; align-items: center; gap: var(--sp-md); flex-wrap: wrap; min-height: 26px; }
.tree-row-sub { display: flex; align-items: center; gap: var(--sp-md); flex-wrap: wrap; font-size: var(--fs-sm); margin-top: 2px; color: var(--text-2); }
/* 展开箭头：负边距槽位，批号起头严格 = 12 + 级别×50px 对齐 */
.tree-toggle, .tree-toggle-spacer { display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; margin-left:-18px; flex-shrink:0; font-size: var(--fs-sm); }
.tree-toggle { color:var(--text-2); cursor:pointer; border-radius:3px; }
.tree-toggle:hover { background: rgba(0,0,0,0.10); color: var(--text-1); }
.tree-batch-code { font-weight: var(--fw-medium); color: var(--primary); font-size: var(--fs-lg); text-decoration: none; }
.wo-code { font-weight: var(--fw-medium); text-decoration: none; }
.tree-main-input { font-size: var(--fs-lg) !important; color: var(--text-1) !important; font-weight: 400; }
/* 仅主批蓝色底纹，其余各级白底 */
.tree-level-0 { background: var(--primary-light); }
.tree-done { opacity: 0.72; }
.tree-done .tree-batch-code { color: var(--text-2); }
.tree-step-tag { font-size: var(--fs-sm); padding: 1px 6px; background: var(--primary-light); border: 1px solid var(--primary); border-radius: 4px; color: var(--primary); white-space: nowrap; }
.tree-convert-from { font-size: var(--fs-xs); color: var(--text-2); background: rgba(0,0,0,0.04); padding: 1px 5px; border-radius: 3px; white-space: nowrap; max-width: 140px; overflow: hidden; text-overflow: ellipsis; }
.tree-model-tag { font-size: var(--fs-xs); color: var(--accent-blue); }
.tree-split-basis { color: var(--text-2); font-size: var(--fs-sm); }
.tree-state { color: var(--text-3); font-size: var(--fs-sm); }
.pending-highlight { margin-top: 4px; padding: 4px 8px; background: var(--warning-light); border-left: 3px solid var(--warning); border-radius: 4px; font-size: var(--fs-base); color: var(--text-1); }
.pending-highlight.ready { background: var(--primary-light); border-left-color: var(--primary); }
.pending-highlight.wait-review { background: var(--success-light); border-left-color: var(--success); }
.pending-highlight.wait-back { background: var(--danger-light); border-left-color: var(--danger); }
.pending-highlight.not-started { background: var(--bg); border-left-color: var(--text-3); }

/* 轻量 8D 异常处理单：五步步进卡片 */
.qi-step { border:1px solid var(--line); border-radius:10px; margin-bottom: var(--sp-lg); overflow:hidden; }
.qi-step-title { background:var(--primary-light); color:var(--primary); font-weight: 600; padding:8px 12px; font-size: var(--fs-lg); }
.qi-step-body { padding:12px; background:#fff; line-height:1.6; }

/* 报工树行最终布局：显式列对齐、单行省略、固定紧凑行高 */
.mobile-shell .batch-tree-row { overflow-x:auto; }
.mobile-shell .batch-tree-row .tree-row-main { display:grid; grid-template-columns:24px 42px 170px 60px 120px minmax(150px,1fr) 64px 120px 84px; min-width:900px; min-height:28px; align-items:center; column-gap:6px; row-gap:0; }
.mobile-shell .batch-tree-row .tree-row-main > span { min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mobile-shell .batch-tree-row .tree-row-main > .tree-toggle,.mobile-shell .batch-tree-row .tree-row-main > .tree-toggle-spacer { grid-column:1; }
.mobile-shell .batch-tree-row .tree-row-main > .tag-blue { grid-column:2; }
.mobile-shell .batch-tree-row .tree-row-main > .tree-batch-code { grid-column:3; width:auto !important; }
.mobile-shell .batch-tree-row .tree-row-main > .tree-outsource-code { grid-column:4; position:static !important; width:auto !important; }
.mobile-shell .batch-tree-row .tree-row-main > .tree-outsource-name { grid-column:5; position:static !important; width:auto !important; }
.mobile-shell .batch-tree-row .tree-row-main > .tree-process { grid-column:6; position:static !important; width:auto !important; }
.mobile-shell .batch-tree-row .tree-row-main > .tree-flag { grid-column:7; position:static !important; width:auto !important; }
.mobile-shell .batch-tree-row .tree-row-main > .tree-available { grid-column:8; position:static !important; width:auto !important; }
.mobile-shell .batch-tree-row .tree-row-main > .tag-green,.mobile-shell .batch-tree-row .tree-row-main > .tree-main-input { grid-column:9; margin-left:0 !important; }
.mobile-shell .batch-tree-row .tree-row-main > [style*="position:absolute"] { position:static !important; left:auto !important; right:auto !important; width:auto !important; margin:0 !important; }

/* 管理端待报工：所有行共享容量公式；仅单号吸收剩余空间。 */
.admin-main .admin-pending-list {
  --pending-u:calc(var(--ui-body-size) / 4);
  --pending-n:var(--ui-number-size);
  --pending-p:var(--ui-process-size);
  /* 可压缩列容量：代码11、说明12、徽章12、投料9。 */
  --pending-capacity:calc(11 + 12 + 12 + 9);
  --pending-level-step:20px;
  --pending-arrow:18px;
  --pending-level-label:42px;
  --pending-process-padding:var(--sp-md);
  --pending-tag-padding:calc(var(--sp-lg) + var(--sp-xs));
}
.admin-main .admin-pending-list .admin-pending-row { padding:3.5px 12px 3.5px 0; overflow:hidden; }
.admin-main .admin-pending-list .tree-row-main { container-type:inline-size; display:flex; flex-wrap:nowrap; gap:var(--pending-u); min-width:0; min-height:28px; overflow:hidden; }
.admin-main .admin-pending-list .tree-row-main > span { min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.admin-main .admin-pending-list .tree-indent { flex:0 0 auto; }
.admin-main .admin-pending-list .tree-toggle,
.admin-main .admin-pending-list .tree-toggle-spacer { flex:0 0 18px; margin-left:0; }
.admin-main .admin-pending-list .tree-row-main > .tag-blue:not(.tree-flag) { flex:0 0 42px; }
.admin-main .admin-pending-list .tree-batch-code { flex:1 1 0; }
/* 前段下限按三级缩进+箭头+层级+单号两倍数字字号计算；9个间隔。
   常规待报工行的空字段仍占据同一列。 */
.admin-main .admin-pending-list .tree-row-main > span {
  --pending-process-width:calc(2 * var(--pending-p) + 2 * var(--pending-process-padding) + 2px);
  --pending-status-width:calc(3 * var(--pending-p));
  --pending-prefix-floor:calc(3 * var(--pending-level-step) + var(--pending-arrow) + var(--pending-level-label) + 2 * var(--pending-n));
  --pending-pool:calc(100cqw - var(--pending-prefix-floor) - 9 * var(--pending-u) - var(--pending-process-width) - var(--pending-status-width));
}
/* ch 按对应字段已有字体计算；cqw 来自每行相同的可用宽度。 */
.admin-main .admin-pending-list .tree-outsource-code { flex:0 0 clamp(calc(7ch + var(--pending-u)),calc(var(--pending-pool) * 11 / var(--pending-capacity)),calc(11ch + var(--pending-u))); }
.admin-main .admin-pending-list .tree-outsource-name { flex:0 0 clamp(calc(4 * var(--pending-p)),calc(var(--pending-pool) * 12 / var(--pending-capacity)),calc(9 * var(--pending-p) + var(--pending-u))); }
.admin-main .admin-pending-list .tree-process-column { flex:0 0 calc(2 * var(--pending-p) + 2 * var(--pending-process-padding) + 2px); display:flex; align-items:center; }
.admin-main .admin-pending-list .tree-process-column .tree-process { width:fit-content; max-width:100%; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; text-align:left; }
.admin-main .admin-pending-list .tree-flag { flex:0 0 calc(3 * var(--pending-p)); }
.admin-main .admin-pending-list .tree-available { flex:0 0 clamp(calc(6ch + 2 * var(--pending-tag-padding)),calc(var(--pending-pool) * 12 / var(--pending-capacity)),calc(12ch + 2 * var(--pending-tag-padding))); display:flex; justify-content:flex-end; }
.admin-main .admin-pending-list .tree-available > .tag { max-width:100%; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.admin-main .admin-pending-list .tree-row-main > .tag-green { flex:0 0 calc(3 * var(--pending-p) + 2 * var(--pending-tag-padding)); }
.admin-main .admin-pending-list .tree-input { flex:0 0 clamp(6ch,calc(var(--pending-pool) * 9 / var(--pending-capacity)),9ch); text-align:right; }

/* 管理端待报工视觉：仅调整本列表的文字色与字号。 */
.admin-main .admin-pending-list .pending-title { color:#000000; }
.admin-main .admin-pending-list .model-header { font-size:var(--ui-section-title-size); }
.admin-main .admin-pending-row.tree-level-1 { --pending-row-color:#333333; }
.admin-main .admin-pending-row.tree-level-2 { --pending-row-color:#666666; }
.admin-main .admin-pending-row.tree-level-1 .tree-row-main span,
.admin-main .admin-pending-row.tree-level-2 .tree-row-main span { color:var(--pending-row-color); }
.admin-main .admin-pending-list .admin-pending-row .tree-row-main .tree-batch-code { color:#000000; }

/* 管理端报工进度卡片：垂直使用现有最小间距，横向与待报工同单位。 */
.admin-main .card.batch-card { --batch-compact-gap:calc(var(--sp-xs) / 2); margin-bottom:var(--batch-compact-gap); padding:var(--batch-compact-gap) 14px; line-height:1; }
.admin-main .card.batch-card .pname-hl { font-size:calc(var(--ui-section-title-size) - var(--sp-xs)); }
.admin-main .card.batch-card .flex-between,
.admin-main .card.batch-card .bc-line,
.admin-main .card.batch-card .bc-line > *,
.admin-main .card.batch-card .flex-between > span { line-height:1; }
.admin-main .card.batch-card .mini-steps.labeled { margin-top:var(--batch-compact-gap); gap:calc(var(--ui-body-size) / 4); align-items:flex-end; }
.admin-main .card.batch-card .mini-steps.labeled .ms-col { gap:var(--batch-compact-gap); }
.admin-main .card.batch-card .mini-steps.labeled .ms-label { line-height:1; }

/* 管理端待报工列表：与进度卡片使用相同的紧凑纵向单位。 */
.admin-main .admin-pending-list { --pending-compact-gap:calc(var(--sp-xs) / 2); }
.admin-main .admin-pending-list .pending-title,
.admin-main .admin-pending-list .model-header,
.admin-main .admin-pending-list .tree-row-main,
.admin-main .admin-pending-list .tree-row-main span { line-height:1; }
.admin-main .admin-pending-list .admin-pending-row { padding-top:var(--pending-compact-gap); padding-bottom:var(--pending-compact-gap); }
.admin-main .admin-pending-list .tree-row-main { min-height:0; }
.admin-main input.input[placeholder="🔍 搜索批次号 / 产品"] { font-size:var(--ui-report-size); }

/* 管理端：上方型号更紧凑，下方批次号按既有层级分色。 */
.admin-main .admin-pending-list .model-header { font-size:calc(var(--ui-section-title-size) - 2 * var(--sp-xs)); line-height:1; }
.admin-main .card.batch-card .bc-line > .num[data-batch-level] { color:#666666; }
.admin-main .card.batch-card .bc-line > .num[data-batch-level="0"] { color:#000000; }
.admin-main .card.batch-card .bc-line > .num[data-batch-level="1"] { color:#333333; }

/* 管理端型号并入每个主批：弹性单号承担前缀宽度，子层级规则不变。 */
.admin-main .admin-pending-list .admin-pending-row.tree-level-0 { padding-top:8px; padding-bottom:8px; }
.admin-main .admin-pending-list .tree-row-main > .model-header { flex:0 0 auto; padding:0 12px; background:transparent; }
/* 管理端报工字号统一：字号减量与布局容量分开，保留原有列宽基准。 */
.admin-main .admin-pending-list,
.admin-main .card.batch-card {
  --report-font-step:calc(var(--sp-xs) / 2);
  --report-number-font:max(var(--ui-tag-size), calc(var(--ui-number-size) - var(--report-font-step)));
  --report-process-font:max(var(--ui-tag-size), calc(var(--ui-process-size) - var(--report-font-step)));
  --report-secondary-font:max(var(--ui-tag-size), calc(var(--ui-secondary-size) - var(--report-font-step)));
}
.admin-main .admin-pending-list .model-header,
.admin-main .card.batch-card .pname-hl { font-size:var(--ui-tag-size); }
/* 这些字段已有全局 !important 字号；仅在目标区块精确替换字号。 */
.admin-main .admin-pending-list .tree-batch-code,
.admin-main .admin-pending-list .tree-input,
.admin-main .card.batch-card .bc-line > .num,
.admin-main .card.batch-card .flex-between > .qnum { font-size:var(--report-number-font) !important; }
.admin-main .admin-pending-list .tree-outsource-code { font-size:var(--ui-number-size); }
.admin-main .admin-pending-list .tree-outsource-name,
.admin-main .admin-pending-list .tree-process,
.admin-main .card.batch-card .mini-steps.labeled .ms-label { font-size:var(--report-process-font); }
.admin-main .admin-pending-list .tree-flag,
.admin-main .card.batch-card .bc-line > .muted { font-size:var(--report-secondary-font) !important; }
/* ch 按改前/改后字号补偿；不改变列的实际容量、间隔或对齐规则。 */
.admin-main .admin-pending-list .tree-outsource-code {
  flex-basis:clamp(calc(7ch * 13 / 12 + var(--pending-u)),calc(var(--pending-pool) * 11 / var(--pending-capacity)),calc(11ch * 13 / 12 + var(--pending-u)));
}
.admin-main .admin-pending-list .tree-input {
  flex-basis:clamp(calc(6ch * 12 / 11),calc(var(--pending-pool) * 9 / var(--pending-capacity)),calc(9ch * 12 / 11));
}

/* 管理端待报工型号字重与下方工序卡一致。 */
.admin-main .admin-pending-list .model-header { font-weight:var(--fw-medium); }

/* 管理端待报工工序：未知状态保留旧标签；已匹配状态只切换文字色。 */
.admin-main .admin-pending-list .admin-pending-row .tree-process.is-not-current { color:var(--pending-row-color, var(--text-1)); }
.admin-main .admin-pending-list .admin-pending-row .tree-process.is-current { color:var(--primary); }

/* 系统设置独立紧凑规则，不改变全局控件或其他页面。 */
.admin-main .admin-system-page {
  --system-font:max(var(--ui-tag-size), calc(var(--ui-body-size) - var(--sp-xs) / 2));
  --system-space:calc(var(--sp-xs) / 2);
  --system-gap:calc(var(--ui-body-size) / 4);
  font-size:var(--system-font);
  line-height:1;
}
.admin-main .admin-system-page .card { font-size:var(--system-font); line-height:1; padding-top:var(--system-space); padding-bottom:var(--system-space); margin-bottom:var(--system-space); }
.admin-main .admin-system-page .muted,
.admin-main .admin-system-page .num,
.admin-main .admin-system-page .qnum,
.admin-main .admin-system-page .btn { font-size:var(--system-font) !important; line-height:1; }
.admin-main .admin-system-page .mb12,
.admin-main .admin-system-page .mb8 { margin-bottom:var(--system-space); }
.admin-main .admin-system-page .mt12,
.admin-main .admin-system-page .mt8 { margin-top:var(--system-space); }
.admin-main .admin-system-page .input { font-size:var(--system-font); line-height:1; padding-top:var(--system-space); padding-bottom:var(--system-space); }
.admin-main .admin-system-page input[type="checkbox"] { width:calc(var(--ui-tag-size) + var(--system-gap)); height:calc(var(--ui-tag-size) + var(--system-gap)); flex-shrink:0; }
.admin-main .admin-system-page .perm-table { font-size:var(--system-font); line-height:1; }
.admin-main .admin-system-page .perm-table th,
.admin-main .admin-system-page .perm-table td { padding-top:var(--system-space); padding-bottom:var(--system-space); }
.admin-main .admin-system-page .perm-group-row td { font-size:var(--system-font); }
.admin-main .admin-system-page .list-row { min-height:0; padding-top:var(--system-space); padding-bottom:var(--system-space); gap:var(--system-gap); }
.admin-main .admin-system-page .gap8 { gap:var(--system-gap); }
.admin-main .admin-system-page .btn { min-height:0; line-height:1; padding-top:var(--system-space); padding-bottom:var(--system-space); white-space:nowrap; flex-shrink:0; }
.admin-main .admin-system-page .tag { line-height:1; padding-top:var(--system-space); padding-bottom:var(--system-space); }

/* 订单主列表：密度局部对齐报工页，详情与新建表单不受影响。 */
.admin-main .admin-orders-page {
  --orders-font:calc(max(var(--ui-tag-size), calc(var(--ui-body-size) - var(--sp-xs) / 2)) + 1px);
  --orders-space:calc(var(--sp-xs) / 2);
  --orders-gap:calc(var(--ui-body-size) / 4);
  font-size:var(--orders-font);
  line-height:1;
  text-align:left;
}
.admin-main .page-title:has(+ .admin-orders-page) { font-size:calc(var(--ui-page-title-size) + 1px) !important; }
.admin-main .admin-orders-page .btn { text-align:left; }
.admin-main .admin-orders-page .order-card,
.admin-main .admin-orders-page .order-empty { font-size:var(--orders-font); line-height:1; padding:var(--orders-space) 14px; margin-bottom:var(--orders-space); }
.admin-main .admin-orders-page .muted,
.admin-main .admin-orders-page .qnum,
.admin-main .admin-orders-page .btn { font-size:var(--orders-font) !important; line-height:1; }
.admin-main .admin-orders-page .pname-hl { font-size:calc(var(--ui-tag-size) + 1px); line-height:1; }
.admin-main .admin-orders-page .mb8,
.admin-main .admin-orders-page .mb12 { margin-bottom:var(--orders-space); }
.admin-main .admin-orders-page .gap8,
.admin-main .admin-orders-page .order-card > .flex-between,
.admin-main .admin-orders-page .order-main-fields { column-gap:var(--orders-gap); row-gap:var(--orders-space); }
.admin-main .admin-orders-page .input { font-size:var(--orders-font); line-height:1; padding-top:var(--orders-space); padding-bottom:var(--orders-space); min-width:0; }
.admin-main .admin-orders-page input.input[placeholder="🔍 搜索订单号 / 产品型号"] { font-size:calc(var(--ui-tag-size) + 1px); }
.admin-main .admin-orders-page .btn { min-height:0; line-height:1; padding-top:var(--orders-space); padding-bottom:var(--orders-space); white-space:nowrap; flex-shrink:0; }
.admin-main .admin-orders-page .tag { font-size:calc(var(--ui-tag-size) + 1px) !important; line-height:1; padding-top:var(--orders-space); padding-bottom:var(--orders-space); white-space:nowrap; flex-shrink:0; }
.admin-main .admin-orders-page .order-field { flex-shrink:0; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* 固定文本列采用普通行盒，使单行省略实际生效。 */
.admin-main .admin-orders-page .order-main-fields > .cell.order-field { display:block; }

/* Approved compact order cards; retain shared spacing and line heights. */
.admin-main .admin-orders-page .order-card { padding-top:0; padding-bottom:0; }
.admin-main .admin-orders-page .order-card .order-actions .btn,
.admin-main .admin-orders-page .order-card .tag { padding-top:0; padding-bottom:0; }

/* 订单列表固定十列；只在本页表格容器内滚动。 */
.admin-main .admin-orders-page .order-table-wrap { max-width:100%; overflow-x:auto; background:var(--card); border-radius:var(--radius); }
.admin-main .admin-orders-page .order-table { width:990px; table-layout:fixed; border-collapse:separate; border-spacing:0; font-size:var(--orders-font); line-height:1; }
.admin-main .admin-orders-page .order-table th,
.admin-main .admin-orders-page .order-table td { padding:0.5px 3px; height:14px; border:1px solid var(--line); white-space:nowrap; vertical-align:middle; overflow:hidden; text-align:left; line-height:1; }
.admin-main .admin-orders-page .order-table th { color:var(--text-3); font-weight:500; background:var(--primary-light); padding-top:2px; padding-bottom:2px; }
.admin-main .admin-orders-page .order-table .order-shared { vertical-align:middle; }
.admin-main .admin-orders-page .order-table td.order-date,
.admin-main .admin-orders-page .order-table td.qnum { text-align:right; }
.admin-main .admin-orders-page .order-table .order-customer { color:#145FCC; }
.admin-main .admin-orders-page .order-table .order-cell-text { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-main .admin-orders-page .order-table .pname-hl { color:var(--primary); }
.admin-main .admin-orders-page .order-table .order-plan { color:#145FCC; font-weight:400; }
.admin-main .admin-orders-page .order-table .order-draft-hint { color:var(--warning); }
.admin-main .admin-orders-page .order-table .tag,
.admin-main .admin-orders-page .order-table .btn { max-width:100%; padding-top:0; padding-bottom:0; overflow:hidden; text-overflow:ellipsis; }
.admin-main .admin-orders-page .order-table .tag { padding-left:3px; padding-right:3px; }
.admin-main .admin-orders-page .order-table .order-progress { display:flex; align-items:center; gap:3px; min-width:0; }
.admin-main .admin-orders-page .order-table .order-progress .pbar { flex:1; min-width:0; width:auto; height:5px; }
.admin-main .admin-orders-page .order-table .order-progress .qnum { flex:0 0 42px; text-align:right; overflow:hidden; text-overflow:ellipsis; }
.admin-main .admin-orders-page .order-table .order-group { cursor:pointer; }
.admin-main .admin-orders-page .order-table .order-group:hover { background:var(--primary-light); }
.admin-main .admin-orders-page .order-table .order-table-empty { padding:4px 3px; color:var(--text-3); }

/* 工单管理列表：按管理端报工进度卡的语义分类统一，不影响工单详情/新建。 */
.admin-main .admin-wo-page {
  --wo-space:calc(var(--sp-xs) / 2);
  --wo-gap:calc(var(--ui-body-size) / 4);
  --wo-number-font:max(var(--ui-tag-size), calc(var(--ui-number-size) - var(--wo-space)));
  --wo-secondary-font:max(var(--ui-tag-size), calc(var(--ui-secondary-size) - var(--wo-space)));
  font-size:var(--wo-secondary-font);
  line-height:1;
}
/* 原工单卡外间距已为零，保持不变，只统一内部节奏。 */
.admin-main .admin-wo-page .card.wo-card { padding:0 12px; margin-bottom:0; font-size:var(--wo-secondary-font); line-height:1; }
.admin-main .admin-wo-page .wo-card .flex-between,
.admin-main .admin-wo-page .wo-card .bc-line { gap:var(--wo-gap) !important; font-size:var(--wo-secondary-font); line-height:1; }
.admin-main .admin-wo-page .wo-card .bc-line > * { line-height:1; }
.admin-main .admin-wo-page .pname-hl { font-size:var(--ui-tag-size); font-weight:var(--fw-medium); }
.admin-main .admin-wo-page .num,
.admin-main .admin-wo-page .qnum { font-size:var(--wo-number-font) !important; line-height:1; }
.admin-main .admin-wo-page .wo-card .bc-line > .num { color:#000; font-weight:var(--fw-semibold); }
.admin-main .admin-wo-page .muted { font-size:var(--wo-secondary-font) !important; line-height:1; }
.admin-main .admin-wo-page .tag { font-size:var(--ui-tag-size) !important; line-height:1; padding-top:var(--wo-space); padding-bottom:var(--wo-space); white-space:nowrap; }
.admin-main .admin-wo-page .btn { font-size:var(--ui-button-size) !important; line-height:1; min-height:0; padding-top:var(--wo-space); padding-bottom:var(--wo-space); white-space:nowrap; }
.admin-main .admin-wo-page .input { font-size:var(--ui-report-size); line-height:1; min-width:0; padding-top:var(--wo-space); padding-bottom:var(--wo-space); }
.admin-main .admin-wo-page .gap8 { gap:var(--wo-gap); }
.admin-main .admin-wo-page .mb8,
.admin-main .admin-wo-page .mb12 { margin-bottom:var(--wo-space); }
.admin-main .admin-wo-page .wo-progress { margin-top:var(--wo-space); }
.admin-main .admin-wo-page .wo-progress .pbar { height:5px; }

/* 报工记录：共用报工卡片与字体分类，保留完整筛选和撤销/编辑权限。 */
.admin-main .admin-report-records{font-size:12.5px;line-height:1.2;}
.admin-main .admin-report-records .report-record-card{padding:0;}
.admin-main .admin-report-records .records-filters{display:flex;align-items:center;gap:6px;margin-left:auto;min-width:0;flex-wrap:nowrap;}
.admin-main .admin-report-records .records-filters>div{display:contents;}
.admin-main .admin-report-records .input{font-size:12px;line-height:1.2;height:28px;padding:3px 8px;min-width:0;width:132px;}
.admin-main .admin-report-records .records-filters .input[placeholder]{width:150px;}
.admin-main .admin-report-records .records-summary{margin-left:auto;}
.admin-main .admin-report-records .records-list-head{display:grid;grid-template-columns:minmax(0,1fr) 190px 180px;gap:12px;padding:5px 16px;background:#FAFBFD;font-size:11px;color:#8A97A8;}
.admin-main .admin-report-records .records-list-head span:not(:first-child){text-align:right;}
.admin-main .admin-report-records .records-entry{display:flex;gap:12px;padding:5px 16px;min-height:0;line-height:1.2;align-items:center!important;border-bottom:1px solid #F1F4F8;}
.admin-main .admin-report-records .records-entry:nth-of-type(even){background:#E3EEFF;}
.admin-main .admin-report-records .report-record-main{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.admin-main .admin-report-records .report-record-main .cell{width:auto!important;}
.admin-main .admin-report-records .num{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:12px!important;line-height:1.2;}
.admin-main .admin-report-records .qnum{font-size:13px!important;line-height:1.25;font-variant-numeric:tabular-nums;}
.admin-main .admin-report-records .muted,.admin-main .admin-report-records .report-record-qa{font-size:11px!important;line-height:1.3;color:#8A97A8;}
.admin-main .admin-report-records .tag{font-size:11.5px!important;line-height:1.2;padding:1px 6px;border-radius:10px;}
.admin-main .admin-report-records .report-process{font-size:12.5px!important;padding:0;background:none;color:#0958D9;}
.admin-main .admin-report-records .report-record-quantities{flex:0 0 190px!important;}
.admin-main .admin-report-records .records-actions{flex:0 0 180px;display:flex;justify-content:flex-end;gap:4px;flex-wrap:wrap;}
.admin-main .admin-report-records .btn{font-size:12px!important;line-height:1.2;min-height:24px;padding:3px 8px;border-radius:6px;white-space:nowrap;}
.admin-main .admin-report-records .mt4{margin-top:3px;}
@media(max-width:1100px){.admin-main .admin-report-records .records-list-head{display:none;}.admin-main .admin-report-records .records-entry{flex-wrap:wrap;}.admin-main .admin-report-records .records-actions{flex:1 1 100%;}}
@media(max-width:1100px){.admin-main .admin-report-records .records-filters{flex-wrap:wrap;margin-left:0;}.admin-main .admin-report-records .records-filters .input{flex:1 1 130px;width:auto;}}
@media(max-width:768px){.admin-main .admin-report-records .records-filters{width:100%;}.admin-main .admin-report-records .records-entry{padding:5px 12px;}.admin-main .admin-report-records .report-record-quantities{flex:1 1 100%!important;}.admin-main .admin-report-records .card-head{flex-wrap:wrap;}.admin-main .admin-report-records .records-summary{margin-left:0;}}

/* 报工审核：按报工页同类字体与紧凑卡片布局，不改变操作权限。 */
.admin-main .admin-review-page{font-size:12.5px;line-height:1.2;}
.admin-main .admin-review-page .review-card{padding:0;}
.admin-main .admin-review-page .list-row{padding:5px 16px;gap:12px;min-height:0;border-bottom:1px solid #F1F4F8;align-items:center!important;}
.admin-main .admin-review-page .list-row:last-child{border-bottom:0;}
.admin-main .admin-review-page .list-row:nth-of-type(even){background:#E3EEFF;}
.admin-main .admin-review-page .list-row>div{min-width:0;}
.admin-main .admin-review-page .review-entry-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.7fr);gap:2px 14px;align-items:center;}
.admin-main .admin-review-page .review-identity{display:flex;align-items:center;gap:9px;flex-wrap:wrap;grid-column:1;}
.admin-main .admin-review-page .review-meta{grid-column:1;grid-row:2;}
.admin-main .admin-review-page .review-quantities{grid-column:2;grid-row:1 / span 2;margin:0!important;}
.admin-main .admin-review-page .review-entry-content>div:not(.review-identity):not(.review-meta):not(.review-quantities){grid-column:1 / -1;}
.admin-main .admin-review-page .review-grid-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.7fr) 192px;gap:14px;padding:5px 16px;background:#FAFBFD;color:#8A97A8;font-size:11px;}
.admin-main .admin-review-page .review-grid-head>span:last-child{text-align:right;}
.admin-main .admin-review-page .review-actions{flex:0 0 192px;gap:4px;align-items:center;}
.admin-main .admin-review-page .num,.admin-main .admin-review-page .wo-code{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:12px!important;line-height:1.2;}
.admin-main .admin-review-page .qnum{font-size:13px!important;line-height:1.25;font-variant-numeric:tabular-nums;}
.admin-main .admin-review-page .muted{font-size:11px!important;line-height:1.3;color:#8A97A8;}
.admin-main .admin-review-page .tag{font-size:11.5px!important;line-height:1.2;padding:1px 6px;border-radius:10px;}
.admin-main .admin-review-page .review-process{font-size:12.5px!important;background:none;color:#0958D9;padding:0;font-weight:600;}
.admin-main .admin-review-page .btn{font-size:12px!important;line-height:1.2;min-height:24px;padding:3px 8px;border-radius:6px;white-space:nowrap;}
.admin-main .admin-review-page .gap8{gap:4px;}
.admin-main .admin-review-page .mt8{margin-top:3px;}
@media(max-width:1100px){
 .admin-main .admin-review-page .review-entry-content{grid-template-columns:minmax(0,1fr);}
 .admin-main .admin-review-page .review-quantities{grid-column:1;grid-row:auto;}
 .admin-main .admin-review-page .review-grid-head{display:none;}
}
@media(max-width:768px){
 .admin-main .admin-review-page .list-row{flex-wrap:wrap;padding:5px 12px;}
 .admin-main .admin-review-page .review-actions{flex:1 1 100%;}
}

/* 剩余管理页面共用报工分类基准：须显式挂载，绝不作用于日志/员工端。 */
.admin-main .admin-compact-page {
  --compact-space:calc(var(--sp-xs) / 2);
  --compact-gap:calc(var(--ui-body-size) / 4);
  --compact-number:max(var(--ui-tag-size), calc(var(--ui-number-size) - var(--compact-space)));
  --compact-secondary:max(var(--ui-tag-size), calc(var(--ui-secondary-size) - var(--compact-space)));
  --compact-process:max(var(--ui-tag-size), calc(var(--ui-process-size) - var(--compact-space)));
  font-size:var(--compact-secondary); line-height:1;
}
.admin-main .admin-compact-page .card { font-size:var(--compact-secondary); line-height:1; padding-top:var(--compact-space); padding-bottom:var(--compact-space); margin-bottom:var(--compact-space); }
.admin-main .admin-compact-page .bc-line { font-size:var(--compact-secondary); line-height:1; gap:var(--compact-gap); }
.admin-main .admin-compact-page .pname-hl { font-size:var(--ui-tag-size); line-height:1; }
.admin-main .admin-compact-page .num,
.admin-main .admin-compact-page .qnum,
.admin-main .admin-compact-page .wo-code { font-size:var(--compact-number) !important; line-height:1; }
.admin-main .admin-compact-page .muted,
.admin-main .admin-compact-page .hint,
.admin-main .admin-compact-page .help-text { font-size:var(--compact-secondary) !important; line-height:1; }
.admin-main .admin-compact-page .tag { font-size:var(--ui-tag-size) !important; line-height:1; padding-top:var(--compact-space); padding-bottom:var(--compact-space); }
.admin-main .admin-compact-page .chip { font-size:var(--compact-process) !important; line-height:1; }
.admin-main .admin-compact-page .btn { font-size:var(--ui-button-size) !important; line-height:1; min-height:0; padding-top:var(--compact-space); padding-bottom:var(--compact-space); white-space:nowrap; }
.admin-main .admin-compact-page .input { font-size:var(--ui-report-size); line-height:1; min-width:0; padding-top:var(--compact-space); padding-bottom:var(--compact-space); }
.admin-main .admin-compact-page .list-row { min-height:0; line-height:1; padding-top:var(--compact-space); padding-bottom:var(--compact-space); gap:var(--compact-gap); }
.admin-main .admin-compact-page .gap8 { gap:var(--compact-gap); }
.admin-main .admin-compact-page .mt8,
.admin-main .admin-compact-page .mt12 { margin-top:var(--compact-space); }
.admin-main .admin-compact-page .mb8,
.admin-main .admin-compact-page .mb12 { margin-bottom:var(--compact-space); }
.admin-main .admin-compact-page .tbl,
.admin-main .admin-compact-page .tbl td { font-size:var(--compact-secondary) !important; line-height:1; }
.admin-main .admin-compact-page .tbl th { font-size:var(--ui-tag-size); line-height:1; }
.admin-main .admin-compact-page .tbl th,
.admin-main .admin-compact-page .tbl td { padding-top:var(--compact-space); padding-bottom:var(--compact-space); }
.admin-main .admin-compact-page .cat-header { font-size:var(--ui-tag-size) !important; min-height:0; line-height:1; padding-top:var(--compact-space); padding-bottom:var(--compact-space); }
.admin-main .admin-compact-page .kpi-row,
.admin-main .admin-compact-page .kpi-row-2 { gap:var(--compact-gap); margin-bottom:var(--compact-space); }
.admin-main .admin-compact-page .kpi { padding:var(--compact-space) 10px; line-height:1; }
.admin-main .admin-compact-page .k-label,
.admin-main .admin-compact-page .k-sub { font-size:var(--compact-secondary); line-height:1; }
.admin-main .admin-compact-page .k-value,
.admin-main .admin-compact-page .k-sub { margin-top:var(--compact-space); }
.admin-main .admin-compact-page .proc-bar-row { font-size:var(--compact-secondary); line-height:1; gap:var(--compact-gap); padding-top:var(--compact-space); padding-bottom:var(--compact-space); }
.admin-main .admin-compact-page .proc-name { font-size:var(--compact-process); line-height:1; }
/* 物料总览共享管理端/物料员模板，样式限定在页面内。 */
.admin-material-page.mes-report-page{font-size:12.5px;line-height:1.2;}
.admin-material-page .material-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px;}
.admin-material-page .material-kpi{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 16px;background:#fff;border:1px solid #E6EAF0;border-radius:10px;color:#5A6779;font-size:12px;}
.admin-material-page .material-kpi-value{font-size:20px;line-height:1.2;font-weight:600;font-variant-numeric:tabular-nums;color:#1F2937;}
.admin-material-page .material-head-note{margin-left:auto;color:#8A97A8;font-size:11px;}
.admin-material-page .material-table{width:100%;min-width:850px;table-layout:fixed;border-collapse:collapse;}
.admin-material-page .material-table th{text-align:left;font-size:11.5px;font-weight:500;color:#8A97A8;background:#FAFBFD;padding:6px 12px;border-bottom:1px solid #E6EAF0;}
.admin-material-page .material-table td{padding:3px 12px;vertical-align:middle;font-size:12.5px;line-height:1.2;border-bottom:1px solid #F1F4F8;overflow-wrap:anywhere;}
/* 物料总览三张表以在制批次明细为基准：按钮/状态标签不再撑高各工序和外协行。 */
.admin-material-page .material-table tbody tr{height:28px;}
.admin-material-page .material-table .btn-sm{min-height:22px;height:22px;padding:2px 8px;line-height:1.1;}
.admin-material-page .material-table .tag{line-height:1.1;padding:1px 6px;}
.admin-material-page .material-table .material-qty{line-height:1.15;}
.admin-material-page .material-table tbody tr:nth-child(even){background:#E3EEFF;}
.admin-material-page .material-table tbody tr:hover{background:#DBEAFF;}
.admin-material-page .material-table tbody tr.material-overdue{background:var(--danger-light);}
.admin-material-page .material-table tbody tr.material-overdue:hover{background:#FFE2E2;}
.admin-material-page .material-identity{display:flex;align-items:center;gap:9px;}
.admin-material-page .material-code{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:12px!important;line-height:1.2;color:#1F2937;text-decoration:none;}
.admin-material-page .material-qty{font-size:13px!important;font-variant-numeric:tabular-nums;}
.admin-material-page .material-qty small{font-size:11px;color:#8A97A8;}
.admin-material-page .material-table .material-muted{font-size:11px;color:#8A97A8;}
.admin-material-page .btn{font-size:12px!important;line-height:1.2;padding:3px 8px;min-height:24px;border-radius:6px;white-space:nowrap;}
.admin-material-page .tag{font-size:11.5px!important;line-height:1.2;padding:1px 6px;border-radius:10px;white-space:nowrap;}
@media(max-width:768px){.admin-material-page .card-head{flex-wrap:wrap;}.admin-material-page .material-kpis{gap:6px;}.admin-material-page .material-kpi{padding:8px;flex-direction:column;align-items:flex-start;}.admin-material-page .material-head-note{margin-left:0;}}
.admin-main .admin-qi-detail .qi-step { margin-bottom:var(--compact-space); }
.admin-main .admin-qi-detail .qi-step-title { font-size:var(--ui-tag-size); line-height:1; padding:var(--compact-space) 12px; }
.admin-main .admin-qi-detail .qi-step-body { font-size:var(--compact-secondary); line-height:1; padding:var(--compact-space) 12px; }
.admin-main .admin-replenish-page .page-title { font-size:var(--ui-page-title-size) !important; }
.admin-main .admin-wo-detail .mini-steps .ms-label { font-size:10.5px; line-height:1.2; }
/* 共享员工模板保留原内联字号；只在管理端覆盖明确的大字号字段。 */
.admin-main .admin-quality-page .mt4,
.admin-main .admin-quality-page .flex-between > div:last-child > div,
.admin-main .admin-qi-detail .flex-between b { font-size:var(--compact-secondary) !important; }
.admin-main .admin-base-page .pname-bold { font-size:var(--ui-tag-size); line-height:1; }
.admin-main .admin-base-page .dept-text { font-size:var(--compact-process) !important; line-height:1; }
.admin-main .admin-base-page .dict-row { min-height:0; padding-top:var(--compact-space); padding-bottom:var(--compact-space); }
.admin-main .admin-base-page .dict-name { font-size:var(--compact-secondary); line-height:1; }
.admin-main .admin-compact-page .mt4 { margin-top:var(--compact-space); }
.admin-main .admin-compact-page .mb4 { margin-bottom:var(--compact-space); }
.admin-main .admin-compact-page .list-row.mat-overdue { padding-top:var(--compact-space) !important; padding-bottom:var(--compact-space) !important; }
.admin-main .admin-wo-detail{font-size:12.5px;line-height:1.25;}
.admin-main .admin-wo-detail .wod-heading-code{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:16px;color:#1F2937;margin-left:9px;}
.admin-main .admin-wo-detail .wod-head-actions{margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.admin-main .admin-wo-detail .wod-overview{display:grid;grid-template-columns:1.2fr 1.1fr 1fr 1fr;gap:12px;padding:10px 16px;}
.admin-main .admin-wo-detail .wod-field{min-width:0;overflow-wrap:anywhere;}
.admin-main .admin-wo-detail .wod-label{display:block;font-size:11px;color:#8A97A8;font-weight:400;margin-bottom:4px;}
.admin-main .admin-wo-detail .wod-product{display:flex;align-items:center;gap:9px;}
.admin-main .admin-wo-detail .wod-muted{font-size:11px;color:#8A97A8;line-height:1.35;overflow-wrap:anywhere;}
.admin-main .admin-wo-detail .wod-code{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:12px!important;line-height:1.25;color:#1F2937;overflow-wrap:anywhere;}
.admin-main .admin-wo-detail .wod-qty{font-size:13px;font-variant-numeric:tabular-nums;line-height:1.3;}
.admin-main .admin-wo-detail .wod-qty b,.admin-main .admin-wo-detail .wod-stock{color:#145FCC;}
.admin-main .admin-wo-detail .wod-qty small{font-size:11px;color:#8A97A8;}
.admin-main .admin-wo-detail .wod-progress{display:flex;align-items:center;gap:8px;margin-top:5px;font-size:11px;}
.admin-main .admin-wo-detail .wod-progress .pbar{flex:1;height:5px;}
.admin-main .admin-wo-detail .wod-note{display:flex;gap:12px;padding:6px 16px;border-top:1px solid #F1F4F8;white-space:pre-wrap;overflow-wrap:anywhere;}
.admin-main .admin-wo-detail .wod-note .wod-label{flex:none;margin:0;}
.admin-main .admin-wo-detail .wo-key-processes{display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:6px 16px;border-top:1px solid #F1F4F8;}
.admin-main .admin-wo-detail .wo-key-processes .wod-label{margin:0 5px 0 0;}
.admin-main .admin-wo-detail .chip{display:inline-flex;align-items:center;min-width:0;padding:2px 6px;font-size:11.5px;}
.admin-main .admin-wo-detail .wod-tech-doc{padding:10px 16px;overflow-x:auto;}
.admin-main .admin-wo-detail .wod-table{width:100%;min-width:1160px;table-layout:fixed;border-collapse:collapse;}
.admin-main .admin-wo-detail .wod-table th:nth-child(-n+3),
.admin-main .admin-wo-detail .wod-table td:nth-child(-n+3){padding-left:8px;padding-right:8px;}
.admin-main .admin-wo-detail .wod-table th{text-align:left;font-size:11.5px;font-weight:500;color:#8A97A8;background:#FAFBFD;padding:6px 12px;border-bottom:1px solid #E6EAF0;}
.admin-main .admin-wo-detail .wod-table td{padding:5px 12px;vertical-align:middle;font-size:12.5px;line-height:1.25;border-bottom:1px solid #F1F4F8;overflow-wrap:anywhere;}
.admin-main .admin-wo-detail .wod-batch-row{cursor:pointer;}
.admin-main .admin-wo-detail .wod-family-blue{background:#E3EEFF;}
.admin-main .admin-wo-detail .wod-batch-row:hover{background:#DBEAFF;}
.admin-main .admin-wo-detail .wod-batch-link{padding:0;background:none;border:0;font:inherit;text-align:left;cursor:pointer;}
.admin-main .admin-wo-detail .wod-status{display:flex;align-items:center;gap:5px;margin-top:3px;}
.admin-main .admin-wo-detail .wod-stock,.admin-main .admin-wo-detail .wod-source{font-size:11px;line-height:1.4;}
.admin-main .admin-wo-detail .wod-batch-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap;}
.admin-main .admin-wo-detail .btn{font-size:12px!important;line-height:1.2;padding:3px 8px;min-height:24px;border-radius:6px;}
.admin-main .admin-wo-detail .tag{font-size:11.5px!important;line-height:1.2;padding:1px 6px;border-radius:10px;}
.admin-main .admin-wo-detail .mini-steps.labeled{margin:0;gap:4px;overflow-x:auto;}
.admin-main .admin-wo-detail .mini-steps.labeled .ms-col{gap:3px;flex:1 0 max-content;}
.admin-main .admin-wo-detail .mini-steps.labeled .ms-label{white-space:nowrap;overflow:visible;text-overflow:clip;overflow-wrap:normal;}
@media(max-width:768px){.admin-main .admin-wo-detail .rp-page-head,.admin-main .admin-wo-detail .card-head{flex-wrap:wrap;gap:8px;}.admin-main .admin-wo-detail .wod-overview{grid-template-columns:repeat(2,minmax(0,1fr));}.admin-main .admin-wo-detail .wod-head-actions{margin-left:0;}.admin-main .admin-wo-detail .rp-page-head h1{font-size:18px;}}
/* 基础数据：仅客户和产品两个区，其他管理区保持原样。 */
.admin-main .admin-base-page .base-ui-card{padding:0;font-size:12px;line-height:1.25;overflow:hidden;}
.admin-main .admin-base-page .base-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 12px;border-bottom:1px solid #E6EAF0;}
.admin-main .admin-base-page .base-card-head .cat-header{font-size:13px;line-height:1.25;}
.admin-main .admin-base-page .base-ui-card .btn{font-size:11.5px!important;line-height:1.2;min-height:22px;padding:2px 6px;border-radius:6px;}
.admin-main .admin-base-page .base-ui-card .input{font-size:12px;line-height:1.2;min-height:28px;height:28px;padding:3px 8px;}
.admin-main .admin-base-page .base-customer-content>.muted,.admin-main .admin-base-page .base-product-content>.muted{padding:4px 12px;margin:0!important;font-size:11px;line-height:1.3;}
.admin-main .admin-base-page .base-customer-content>.input{margin:4px 16px!important;width:calc(100% - 32px);max-width:360px;}
.admin-main .admin-base-page .base-product-filter{display:flex;gap:6px;align-items:center;padding:6px 16px;}
.admin-main .admin-base-page .base-table-scroll{max-width:100%;overflow-x:auto;}
.admin-main .admin-base-page .base-customer-table{width:100%;min-width:850px;table-layout:fixed;border-collapse:collapse;}
.admin-main .admin-base-page .base-ui-card table th{font-size:11.5px;color:#8A97A8;font-weight:500;background:#FAFBFD;text-align:left;padding:5px 8px;border-bottom:1px solid #E6EAF0;}
.admin-main .admin-base-page .base-ui-card table td{font-size:12px;line-height:1.2;padding:3px 8px;border-bottom:1px solid #F1F4F8;}
.admin-main .admin-base-page .base-customer-table tbody tr:nth-child(even){background:#E3EEFF;}
.admin-main .admin-base-page .base-customer-link{font:inherit;color:#145FCC;border:0;background:none;padding:0;cursor:pointer;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.admin-main .admin-base-page .base-ui-code{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;color:#1F2937;font-size:12px;}
.admin-main .admin-base-page .base-customer-note{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#8A97A8;}
.admin-main .admin-base-page .base-row-actions{display:flex;align-items:center;gap:5px;}
.admin-main .admin-base-page .base-product-card .prod-tbl{width:100%;min-width:1246px;table-layout:fixed;border-collapse:collapse;}
.admin-main .admin-base-page .base-product-card .customer-group-row td{background:transparent;font-size:11.5px;padding:4px 8px;}
.admin-main .admin-base-page .base-product-family-blue{background:#E3EEFF;}
.admin-main .admin-base-page .base-product-card .prod-tbl tbody tr:not(.customer-group-row){background:transparent;}
.admin-main .admin-base-page .base-product-card .prod-tbl tbody tr:hover{background:#DBEAFF;}
.admin-main .admin-base-page .base-product-card .prod-tbl .pname-bold{font-size:12px;line-height:1.2;color:#145FCC;background:#EAF2FF;border-radius:5px;padding:1px 5px;}
@media(max-width:768px){.admin-main .admin-base-page .base-product-filter{flex-wrap:wrap;}.admin-main .admin-base-page .base-product-filter .input{flex-basis:100%!important;}}
/* 异常详情：长文本保留换行，不压缩为列表行高。 */
.admin-main .admin-qi-detail.mes-report-page{font-size:12.5px;line-height:1.4;}
.admin-main .admin-qi-detail .rp-card{padding:0;}
.admin-main .admin-qi-detail .rp-page-head,.admin-main .admin-qi-detail .card-head{flex-wrap:wrap;gap:8px;}
.admin-main .admin-qi-detail .qid-code{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:12px;color:#1F2937;overflow-wrap:anywhere;}
.admin-main .admin-qi-detail h1 .qid-code{font-size:16px;margin-left:8px;}
.admin-main .admin-qi-detail .qid-actions{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;}
.admin-main .admin-qi-detail .btn{font-size:12px!important;line-height:1.2;min-height:24px;padding:3px 8px;border-radius:6px;}
.admin-main .admin-qi-detail .tag{font-size:11.5px!important;line-height:1.2;padding:1px 6px;border-radius:10px;}
.admin-main .admin-qi-detail .qid-steps .qi-step{margin-bottom:10px;}
.admin-main .admin-qi-detail .qi-step-title.card-head{font-size:13px;line-height:1.25;padding:7px 16px;color:#1F2937;background:#FAFBFD;}
.admin-main .admin-qi-detail .qi-step:nth-child(even) .qi-step-title{background:#E3EEFF;}
.admin-main .admin-qi-detail .qi-step-body{padding:8px 16px;font-size:12.5px;line-height:1.5;overflow-wrap:anywhere;}
.admin-main .admin-qi-detail .qid-subhead{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;}
.admin-main .admin-qi-detail .qid-title{font-size:14px;line-height:1.4;}
.admin-main .admin-qi-detail .qid-meta{font-size:11.5px;color:#6B7789;line-height:1.6;margin-top:8px;}
.admin-main .admin-qi-detail .qid-audit-body{padding:8px 16px;font-size:11.5px;color:#6B7789;line-height:1.6;overflow-wrap:anywhere;}
/* 异常主列表共享管理员/员工模板；不影响D1-D5详情。 */
.admin-quality-page.mes-report-page{font-size:12.5px;line-height:1.25;}
.admin-quality-page .rp-card{padding:0;}
.admin-quality-page .qi-list-filters{margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.admin-quality-page .qi-list-filters .input{font-size:12px;height:28px;line-height:1.2;padding:3px 8px;min-width:0;}
.admin-quality-page .qi-list-table{width:100%;min-width:950px;table-layout:fixed;border-collapse:collapse;}
.admin-quality-page .qi-list-table th{text-align:left;font-size:11.5px;font-weight:500;color:#8A97A8;background:#FAFBFD;padding:6px 12px;border-bottom:1px solid #E6EAF0;}
.admin-quality-page .qi-list-table td{font-size:12.5px;line-height:1.25;padding:5px 12px;border-bottom:1px solid #F1F4F8;vertical-align:middle;overflow-wrap:anywhere;}
.admin-quality-page .qi-list-table tbody tr{cursor:pointer;}
.admin-quality-page .qi-list-table tbody tr:nth-child(even){background:#E3EEFF;}
.admin-quality-page .qi-list-table tbody tr:hover{background:#DBEAFF;}
.admin-quality-page .qi-list-code{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:12px;color:#1F2937;}
.admin-quality-page .qi-list-link{border:0;background:none;padding:0;font:inherit;text-align:left;cursor:pointer;}
.admin-quality-page .qi-list-status{margin-top:3px;}
.admin-quality-page .qi-list-secondary{font-size:11px;color:#8A97A8;line-height:1.4;margin-top:2px;}
.admin-quality-page .qi-list-title{font-weight:500;}
.admin-quality-page .btn{font-size:12px!important;line-height:1.2;min-height:24px;padding:3px 8px;border-radius:6px;}
.admin-quality-page .tag{font-size:11.5px!important;line-height:1.2;padding:1px 6px;border-radius:10px;}
.admin-quality-page .qi-list-pager{padding:4px 12px;}
@media(max-width:1100px){.admin-quality-page .card-head,.admin-quality-page .rp-page-head{flex-wrap:wrap;gap:8px;}.admin-quality-page .qi-list-filters{margin-left:0;width:100%;}.admin-quality-page .qi-list-filters input{flex:1;}}
@media(max-width:480px){.admin-quality-page .qi-list-filters input{flex-basis:100%;max-width:100%;}}
/* 统计报表：筛选与表格沿用已确认的紧凑列表规范，不改变统计口径。 */
.admin-main .admin-stats-page{font-size:12.5px;line-height:1.25;}
.admin-main .admin-stats-page .rp-card{padding:0;}
.admin-main .admin-stats-page .card-head{flex-wrap:wrap;}
.admin-main .admin-stats-page .stats-filter-fields,.admin-main .admin-stats-page .stats-dimension-filters{display:flex;gap:8px;flex-wrap:wrap;padding:7px 16px;}
.admin-main .admin-stats-page .stats-page-head{align-items:center;gap:12px;}
.admin-main .admin-stats-page .stats-head-filters{display:flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:nowrap;}
.admin-main .admin-stats-page .stats-head-filters .input{width:150px;}
.admin-main .admin-stats-page .stats-head-filters select.input{width:190px;}
.admin-main .admin-stats-page .input{font-size:12px;height:28px;line-height:1.2;padding:3px 8px;width:170px;min-width:0;}
.admin-main .admin-stats-page .btn{font-size:12px!important;line-height:1.2;min-height:24px;padding:3px 8px;border-radius:6px;}
.admin-main .admin-stats-page .tag{font-size:11.5px!important;line-height:1.2;padding:1px 6px;border-radius:10px;white-space:nowrap;}
.admin-main .admin-stats-page .tbl{width:100%;min-width:1080px;border-collapse:collapse;}
.admin-main .admin-stats-page .tbl th{font-size:11.5px;font-weight:500;text-align:left;color:#8A97A8;background:#FAFBFD;padding:6px 10px;white-space:nowrap;border-bottom:1px solid #E6EAF0;}
.admin-main .admin-stats-page .tbl td{font-size:12.5px;line-height:1.25;padding:5px 10px;border-bottom:1px solid #F1F4F8;white-space:nowrap;}
.admin-main .admin-stats-page .tbl tr:nth-child(odd):not(:first-child){background:#E3EEFF;}
.admin-main .admin-stats-page .tbl .drillable:hover{background:#DBEAFF;}
.admin-main .admin-stats-page .stats-code,.admin-main .admin-stats-page .wo-code{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;color:#1F2937;font-size:12px!important;}
.admin-main .admin-stats-page .qnum{font-size:12.5px!important;font-variant-numeric:tabular-nums;}
.admin-main .admin-stats-page .proc-bar-row{margin:0;padding:5px 16px;min-height:30px;gap:10px;border-bottom:1px solid #F1F4F8;}
.admin-main .admin-stats-page .proc-bar-row:nth-of-type(even){background:#E3EEFF;}
.admin-main .admin-stats-page .proc-name{font-size:12px;width:160px;min-width:100px;}
.admin-main .admin-stats-page .proc-name .muted{font-size:11px;}
.admin-main .admin-stats-page .stats-note,.admin-main .admin-stats-page .rp-card>.muted,.admin-main .admin-stats-page .rp-card>.flex{padding:6px 16px;margin:0;}
.admin-main .admin-stats-page .stats-pager{padding:4px 16px;}
@media(max-width:768px){.admin-main .admin-stats-page .stats-filter-fields .input{flex:1 1 130px;}.admin-main .admin-stats-page .proc-name{width:110px;}.admin-main .admin-stats-page .rp-page-head{flex-wrap:wrap;}.admin-main .admin-stats-page .stats-head-filters{width:100%;margin-left:0;flex-wrap:wrap;}.admin-main .admin-stats-page .stats-head-filters .input{flex:1 1 130px;width:auto;}.admin-main .admin-stats-page .stats-head-filters select.input{flex:1 1 180px;width:auto;}}
/* 订单详情弹层：仅限本详情，不改变其他业务弹层。 */
.order-detail-panel{font-size:12.5px;line-height:1.25;min-width:0;}
.order-detail-panel .rp-page-head{align-items:center;gap:10px;flex-wrap:wrap;}
.order-detail-panel .rp-page-head h1{font-size:18px;}
.order-detail-panel .od-code{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:12px;color:#1F2937;}
.order-detail-panel .card.rp-card{padding:0;}
.order-detail-panel .card-head{flex-wrap:wrap;padding:7px 12px;}
.order-detail-panel .od-actions{margin-left:auto;display:flex;flex-direction:column;gap:3px;align-items:flex-end;}
.order-detail-panel .od-action-buttons{display:flex;align-items:center;gap:5px;flex-wrap:wrap;}
.order-detail-panel .od-fields{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;padding:8px 12px;}
.order-detail-panel .field{margin:0;font-size:11.5px;color:#5A6779;min-width:0;}
.order-detail-panel .input{font-size:12px;line-height:1.2;min-width:0;width:100%;height:28px;padding:3px 8px;margin-top:3px;}
.order-detail-panel .btn{font-size:12px;line-height:1.2;min-height:24px;padding:3px 8px;border-radius:6px;white-space:nowrap;}
.order-detail-panel .tag{font-size:11.5px;line-height:1.2;padding:1px 6px;border-radius:10px;}
.order-detail-panel .od-item{display:grid;grid-template-columns:52px minmax(70px,1fr) 28px minmax(65px,.7fr);align-items:center;gap:8px;min-height:33px;padding:4px 12px;border-bottom:1px solid #F1F4F8;}
.order-detail-panel .od-inline-label{font-size:11.5px;color:#8A97A8;white-space:nowrap;}
.order-detail-panel .od-read-value{font-size:12.5px;color:#1F2937;margin-top:5px;overflow-wrap:anywhere;}
.order-detail-panel .od-item:nth-child(even),.order-detail-panel .od-wo-row:nth-of-type(odd){background:#E3EEFF;}
.order-detail-panel .od-item .qnum{font-size:13px;color:#145FCC;}
.order-detail-panel .od-item .input{margin:0;}
.order-detail-panel .od-add{display:flex;align-items:center;gap:8px;padding:6px 12px;}
.order-detail-panel .od-add select{flex:1;margin:0;}
.order-detail-panel .od-save{margin:4px 12px 10px;}
.order-detail-panel .od-wo-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 12px;border-bottom:1px solid #F1F4F8;cursor:pointer;}
.order-detail-panel .od-wo-row:hover{background:#DBEAFF;}
.order-detail-panel .od-wo-row>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.order-detail-panel .od-wo-row .muted{font-size:11.5px;}
@media(max-width:600px){.order-detail-panel .od-fields{grid-template-columns:minmax(0,1fr);}.order-detail-panel .od-actions{margin-left:0;align-items:flex-start;}.order-detail-panel .od-add{flex-wrap:wrap;}.order-detail-panel .od-add select{flex-basis:100%;}.order-detail-panel .od-wo-row>div{gap:5px;}}
/* 工艺文档保留富文本作者设定，正文可读性不随列表紧缩。 */

/* ==========================================================================
   全局 UI 规范层 v1 · 2026-10-19
   说明：本段只做“追加覆盖”，不改动上方任何既有规则；
        需要回滚时整段删除即可，不影响业务逻辑。
   ========================================================================== */

/* ---- 1. 只读内部型号：复用既有语义类，不影响客户型号、编码及输入控件 ---- */
/* important 仅锁定型号外观，压过各页紧凑规则和层级颜色；保留模板列宽与省略。 */
.model-tag,
.pname-hl,
.pname-bold,
.tree-model-tag{
  display:inline-block !important;
  box-sizing:border-box;
  /* 同页所有型号标签等宽：56px = 现有最长型号(1892BV2)文本45.1px + 左右各5px内边距。 */
  width:var(--model-badge-width,56px) !important;
  min-width:var(--model-badge-width,56px) !important;
  max-width:var(--model-badge-width,56px) !important;
  flex:0 0 var(--model-badge-width,56px) !important;
  padding:0 5px !important; text-align:center !important; height:18px;
  border-radius:4px;
  background:var(--primary) !important; color:#fff !important;
  font-family:ui-monospace,"Cascadia Mono",Consolas,monospace !important;
  font-size:11px !important; font-weight:700 !important;
  letter-spacing:.4px !important; line-height:18px !important;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  vertical-align:middle;
}
/* hl() 的 mark 有内联黄底：型号内仍蓝底白字，用下划线保留搜索命中提示。 */
:is(.model-tag,.pname-hl,.pname-bold,.tree-model-tag) mark{
  background:transparent !important; color:inherit !important;
  font:inherit !important; letter-spacing:inherit !important;
  padding:0 !important; text-decoration:underline;
  text-underline-offset:2px;
}

/* ---- 2. 型号分组标题：改为浅底 + 型号标签 ---- */
.model-header{
  background:#F7FAFF !important;
  padding:5px 10px !important;
  border-bottom:1px solid var(--line);
  color:var(--text-2) !important;
  font-size:12px !important;
  font-weight:600 !important;
}
.model-header .model-tag{ margin-right:6px; }

/* ---- 3. 侧栏：当前页实心高亮，退出登录独立强调 ---- */
.admin-nav.active{
  background:var(--primary) !important;
  color:#fff !important;
  font-weight:600 !important;
  box-shadow:0 1px 3px rgba(22,119,255,.35);
}
.admin-nav.active:hover{ background:#0E6BE8 !important; }

.admin-nav-top{
  background:var(--primary-light) !important;
  color:var(--primary-dark) !important;
  font-weight:600 !important;
}
.admin-nav-top:hover{ background:#DCEBFF !important; }
.admin-nav-top.active{
  background:var(--primary) !important;
  color:#fff !important;
}

.admin-nav-logout{
  background:#FFF5F5 !important;
  color:#D93036 !important;
  border:1px solid #F3C2C4 !important;
  font-weight:600 !important;
}
.admin-nav-logout:hover{
  background:#FDECEE !important;
  color:#C22A30 !important;
  border-color:#E9A7AA !important;
}

/* ---- 4. 密度：批次行再压一档 ---- */
.batch-tree-row{ padding:2px 10px; }
.tree-row-main{ min-height:22px; gap:8px; }
.admin-nav{ padding:6px 10px; }
@media (min-width:769px){ .admin-side{ width:164px; flex:0 0 164px; } }

/* ---- 5. 报工页：主批与型号同行，标题和数据共用列轨道 ---- */
.admin-main .admin-pending-list{
  --report-columns:minmax(220px,1.55fr) minmax(75px,.48fr) minmax(145px,1fr) minmax(105px,.8fr) minmax(90px,.62fr) minmax(94px,.65fr) minmax(60px,.4fr);
  overflow-x:auto !important;
}
.report-pending-head,
.admin-main .admin-pending-list .admin-pending-row .tree-row-main{
  display:grid; grid-template-columns:var(--report-columns); gap:8px;
  min-width:960px; align-items:center;
}
.report-pending-head{box-sizing:border-box;min-width:984px;padding:5px 12px;background:#FAFBFD;border-bottom:1px solid var(--line);color:var(--text-3);font-size:11px;}
.report-pending-head > span:last-child{text-align:right;}
.admin-main .admin-pending-list .model-group{margin:0;border:0;border-radius:0;overflow:visible;}
.admin-main .admin-pending-list .admin-pending-row{padding:2px 12px;min-width:984px;}
.admin-main .admin-pending-list .admin-pending-row.tree-level-0{padding:3px 12px;background:#F7FAFF;border-top:1px solid var(--line);}
.admin-main .admin-pending-list .admin-pending-row .tree-row-main{container-type:normal;overflow:visible;min-height:20px;}
.admin-main .admin-pending-list .report-pending-prefix{display:flex;align-items:center;gap:5px;min-width:0;overflow:visible;}
.admin-main .admin-pending-list .report-pending-prefix .model-header{padding:0 !important;background:transparent !important;border:0;flex:none;}
.admin-main .admin-pending-list .report-pending-prefix .tree-indent{flex:none;max-width:40px;}
.admin-main .admin-pending-list .report-pending-prefix .tree-toggle,
.admin-main .admin-pending-list .report-pending-prefix .tree-toggle-spacer{flex:0 0 12px;margin:0;width:12px;}
.admin-main .admin-pending-list .report-pending-prefix .tag{width:auto !important;flex:none;font-size:10px !important;padding:1px 3px;}
.admin-main .admin-pending-list .report-pending-prefix .tree-batch-code{width:auto !important;min-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.admin-main .admin-pending-list .tree-row-main > .tree-process-column{display:block;min-width:0;}
.admin-main .admin-pending-list .tree-row-main > .tree-outsource-code,
.admin-main .admin-pending-list .tree-row-main > .tree-outsource-name,
.admin-main .admin-pending-list .tree-row-main > .tree-flag,
.admin-main .admin-pending-list .tree-row-main > .tree-available,
.admin-main .admin-pending-list .tree-row-main > .tree-input{width:auto !important;min-width:0;}
.admin-main .admin-pending-list .tree-process-column .tree-process{max-width:100%;font-size:11px;line-height:1.35;}
.admin-main .admin-pending-list .tree-row-main > .tree-available{justify-content:flex-start;}
.admin-main .admin-pending-list .tree-row-main > .tag-green{grid-column:5;grid-row:1;justify-self:start;}
.admin-main .admin-pending-list .tree-row-main > .tree-input{grid-column:7;grid-row:1;}
.admin-main .admin-pending-list .tree-row-main > .tree-flag{grid-column:5;grid-row:1;}
.admin-main .admin-pending-list .tree-row-main > .tree-available{grid-column:6;grid-row:1;}
.report-lineage-toolbar{display:flex;align-items:center;gap:12px;margin:8px 0 5px;flex-wrap:wrap;}
.report-lineage-toolbar > b{font-size:13px;white-space:nowrap;}
.report-lineage-toolbar > .input{width:264px;max-width:100%;height:28px;min-height:0;padding:4px 9px;background:#F7F9FC;border-color:#CBD5E1;}
.report-progress-legend{margin-left:auto;display:flex;align-items:center;gap:5px;color:var(--text-3);font-size:10px;white-space:nowrap;}
.report-progress-legend i{display:inline-block;width:12px;height:4px;border-radius:2px;margin-left:6px;}
.report-progress-legend .done{background:var(--success);}
.report-progress-legend .current{background:var(--primary);}
.report-progress-legend .out{background:var(--warning);}
.report-progress-legend .waiting{background:#DCE3EC;}
@media(max-width:768px){.report-progress-legend{display:none;}.report-lineage-toolbar > .input{flex:1;min-width:160px;}}

/* 预览版统一的侧栏节奏与线条图标。 */
@media(min-width:769px){
  .admin-side{padding:12px 8px;gap:2px;}
  .admin-side .admin-nav{display:flex;align-items:center;gap:9px;min-height:32px;padding:0 10px;line-height:1.3;border-radius:6px;white-space:nowrap;}
  .admin-side .admin-nav-icon{display:block;width:16px;height:16px;flex:0 0 16px;color:#9AA8BA;stroke-width:1.6;}
  .admin-side .admin-nav .tab-badge{margin-left:auto;}
  .admin-side .admin-nav-top .admin-nav-icon{color:inherit;}
  .admin-side .admin-nav.active .admin-nav-icon{color:#fff;}
  .admin-side .admin-nav-logout{justify-content:center;gap:6px;margin-top:auto;min-height:34px;border-radius:6px;}
  .admin-side .admin-nav-logout .admin-nav-icon{color:inherit;}
}

/* 与预览一致的卡片描边：轻边框 + 小投影，避免只有阴影导致边界发虚。 */
.admin-main .card{border:1px solid var(--line);box-shadow:0 1px 2px rgba(16,24,40,.04);}
.admin-main .page-title{font-size:17px;line-height:1.35;padding:10px 2px 6px;letter-spacing:.2px;}
/* 侧栏身份信息：缩小为一行，不再挤占报工入口。 */
.admin-side .admin-side-role{
  font-size:11px !important; line-height:1.4; padding:0 10px 6px !important;
  margin-top:-2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* 紧凑页的分类子标题曾被压到 10px 标签字号，恢复为可读的 14px 小节标题。 */
.admin-main .admin-compact-page .cat-header{
  font-size:14px !important; line-height:1.3; min-height:0;
  padding:3px 2px; letter-spacing:.02em;
}

/* ==========================================================================
   报工页按已确认预览重建的版式（2026-10-19）。仅作用于 .mes-report-page，
   不改动其它管理页；组件类名与预览一致：card-head / lin / grp / tree / steps。
   ========================================================================== */
.mes-report-page{ --rp-line:#E6EAF0; --rp-line-soft:#F1F4F8; --rp-text-2:#5A6779; --rp-text-3:#8A97A8; }
/* 批号按报工基准统一；只选批号语义类，不改变数量、客户和状态的颜色。 */
.mes-report-page .batch-main,
.mes-report-page .batch-child{color:#1F2937;font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;}
.mes-report-page .rp-page-head{ display:flex; align-items:flex-end; justify-content:space-between; padding:2px 2px 10px; }
.mes-report-page .rp-page-head h1{ margin:0; font-size:20px; font-weight:600; letter-spacing:.2px; color:#1F2937; }
.mes-report-page .rp-page-head .sub{ margin-top:2px; font-size:12px; color:var(--rp-text-3); }
.mes-report-page .rp-page-head .head-actions{ display:flex; align-items:center; gap:8px; }
.mes-report-page .rp-btn-ghost,
.mes-report-page .rp-btn-primary{ display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 13px; border-radius:6px; font-size:12.5px; font-family:inherit; cursor:pointer; border:1px solid transparent; }
.mes-report-page .rp-btn-ghost{ background:#fff; border-color:#DCE3EC; color:#3F4C5F; }
.mes-report-page .rp-btn-ghost:hover{ border-color:#C2CDDC; background:#FAFCFF; }
.mes-report-page .rp-btn-primary{ background:#1677FF; color:#fff; box-shadow:0 1px 2px rgba(22,119,255,.28); }
.mes-report-page .rp-btn-primary:hover{ background:#0E6BE8; }
.mes-report-page .rp-btn-ghost svg,
.mes-report-page .rp-btn-primary svg{ width:14px; height:14px; stroke-width:1.9; }
.mes-report-page .rp-card{ background:#fff; border:1px solid var(--rp-line); border-radius:10px; box-shadow:0 1px 2px rgba(16,24,40,.04); margin-bottom:10px; overflow:hidden; }
.mes-report-page .card-head{ display:flex; align-items:center; gap:8px; padding:7px 16px; border-bottom:1px solid var(--rp-line-soft); }
.mes-report-page .card-title{ font-size:14px; font-weight:600; color:#1F2937; }
.mes-report-page .count-badge{ background:#EAF2FF; color:#0958D9; font-size:11px; font-weight:700; border-radius:10px; padding:1px 7px; }
.mes-report-page .card-head .right{ margin-left:auto; display:flex; align-items:center; gap:6px; }
.mes-report-page .text-btn{ background:none; border:0; color:var(--rp-text-3); font-size:12px; cursor:pointer; padding:4px 6px; border-radius:5px; display:inline-flex; align-items:center; gap:4px; font-family:inherit; }
.mes-report-page .text-btn:hover{ background:#F3F6FA; color:var(--rp-text-2); }
.mes-report-page .text-btn svg{ width:13px; height:13px; stroke-width:2; transition:transform .15s; }
.mes-report-page .rp-scroll{ overflow-x:auto; }
.mes-report-page .lin-head{ padding:3px 16px 0; }
.mes-report-page .rp-empty{ padding:18px; text-align:center; color:var(--rp-text-3); font-size:12.5px; }

/* 待报工：5 列固定轨道表，组内三行共用列宽。 */
.mes-report-page table.lin{ width:100%; border-collapse:collapse; table-layout:fixed; min-width:720px; }
.mes-report-page table.lin th{ font-size:11px; font-weight:500; color:var(--rp-text-3); text-align:left; padding:0 8px 3px; line-height:1.3; }
.mes-report-page table.lin th.num,
.mes-report-page table.lin td.num{ text-align:right; }
.mes-report-page table.lin td{ padding:2px 8px; border-bottom:1px solid #F7F9FC; vertical-align:middle; font-size:12.5px; line-height:1.2; }
.mes-report-page .grp table.lin tbody tr:last-child td{ border-bottom:0; }
.mes-report-page .grp{ padding:0 16px; border-bottom:1px solid var(--rp-line-soft); }
.mes-report-page .grp:last-child{ border-bottom:0; }
.mes-report-page table.lin tr td{ background:#fff; }
.mes-report-page table.lin tr.family-blue td{ background:#E3EEFF; }
.mes-report-page table.lin tr{ cursor:pointer; }
.mes-report-page table.lin tr:hover td{ background:#F7F9FC; }
.mes-report-page table.lin tr.family-blue:hover td{ background:#D0E4FF; }
.mes-report-page table.lin tr.is-done td{ color:var(--rp-text-2); }
.mes-report-page table.lin th:nth-child(3){ text-align:right; padding-right:8px; }
.mes-report-page table.lin .rp-proc-cell{ text-align:right; padding-right:8px !important; }
.mes-report-page .ind2{ padding-left:24px !important; }
.mes-report-page .ind3{ padding-left:40px !important; }
.mes-report-page .lvl{ display:inline-block; color:var(--rp-text-3); font-size:11.5px; margin-right:6px; white-space:nowrap; }
.mes-report-page .lvlnote{ color:var(--rp-text-3); font-size:11px; margin-left:6px; white-space:nowrap; }
.mes-report-page .rp-done{ color:#00875A; font-size:11px; margin-left:6px; white-space:nowrap; }
.mes-report-page .code{ font-family:ui-monospace,"Cascadia Mono",Consolas,monospace; font-size:12px; color:#1F2937; white-space:nowrap; }
.mes-report-page .proc{ font-size:12.5px; color:#1F2937; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:inline-block; max-width:100%; vertical-align:middle; }
.mes-report-page .proc.is-current{ color:#0958D9; font-weight:600; }
.mes-report-page .proc.is-not-current{ color:var(--rp-text-3); }
.mes-report-page .sup{ font-size:11px; color:var(--rp-text-3); line-height:1.3; }
.mes-report-page .rp-ocode{ color:#0958D9; font-family:ui-monospace,"Cascadia Mono",Consolas,monospace; }
.mes-report-page .qty{ font-size:13px; font-weight:600; color:#1F2937; white-space:nowrap; line-height:1.2; }
.mes-report-page .qty .cap{ display:block; font-size:10.5px; font-weight:400; color:var(--rp-text-3); line-height:1.15; }
.mes-report-page .rp-toggle{ display:inline-block; width:12px; color:var(--rp-text-3); font-size:10px; cursor:pointer; }

/* 型号蓝底与批号之间留出呼吸空间，避免贴在一起。 */
.mes-report-page table.lin td > .model-tag{ margin-right:9px; }
.mes-report-page table.tree .c1 .model-tag{ margin-right:2px; }
/* 当前工序与状态是同一组联动信息，列间只留最小间隔。 */
.mes-report-page .rp-proc-cell{ padding-right:8px !important; }
.mes-report-page .rp-state-cell{ padding-left:2px !important; }

/* 状态胶囊 */
.mes-report-page .st{ display:inline-flex; align-items:center; gap:5px; font-size:11.5px; line-height:1.2; white-space:nowrap; padding:1px 8px 1px 7px; border-radius:11px; font-weight:500; border:1px solid; }
.mes-report-page .st em{ width:5px; height:5px; border-radius:50%; background:currentColor; display:block; }
.mes-report-page .st.wait{ color:#0958D9; border-color:#CFE2FF; background:#F2F7FF; }
.mes-report-page .st.recv{ color:#B26A00; border-color:#F6E3C2; background:#FFFBF2; }
.mes-report-page .st.idle{ color:#5A6779; border-color:#E2E8F0; background:#F7F9FC; }

/* 批次族谱：搜索与图例并入卡头。 */
.mes-report-page .search-wrap{ position:relative; }
.mes-report-page .rp-head-search{ margin-left:2px; }
.mes-report-page .rp-head-search .search{ width:220px; height:26px; font-size:12px; padding-left:27px; }
.mes-report-page .rp-head-search svg{ left:8px; width:13px; height:13px; }
.mes-report-page .search-wrap svg{ position:absolute; left:9px; top:50%; transform:translateY(-50%); width:14px; height:14px; color:var(--rp-text-3); stroke-width:1.8; }
.mes-report-page .search{ width:250px; max-width:100%; height:30px; border:1px solid #DCE3EC; border-radius:6px; padding:0 10px 0 29px; font-size:12.5px; color:#1F2937; background:#fff; outline:none; font-family:inherit; }
.mes-report-page .search::placeholder{ color:var(--rp-text-3); }
.mes-report-page .search:focus{ border-color:#1677FF; box-shadow:0 0 0 3px rgba(22,119,255,.12); }
.mes-report-page .legend{ margin-left:auto; display:flex; align-items:center; gap:14px; font-size:11.5px; color:var(--rp-text-3); }
.mes-report-page .legend span{ display:inline-flex; align-items:center; gap:5px; }
.mes-report-page .legend em{ width:14px; height:5px; border-radius:2.5px; display:block; }

.mes-report-page table.tree{ width:100%; border-collapse:collapse; table-layout:fixed; min-width:760px; }
.mes-report-page table.tree thead th{ background:#FAFBFD; border-top:1px solid var(--rp-line-soft); border-bottom:1px solid var(--rp-line-soft); font-size:11.5px; font-weight:500; color:var(--rp-text-3); text-align:left; padding:7px 12px; }
.mes-report-page table.tree td{ padding:2px 12px; border-bottom:1px solid #F4F7FB; vertical-align:middle; line-height:1.2; }
.mes-report-page table.tree tbody tr{ cursor:pointer; }
.mes-report-page table.tree tbody tr td{ background:#fff; }
.mes-report-page table.tree tbody tr.family-blue td{ background:#E3EEFF; }
.mes-report-page table.tree tbody tr:hover td{ background:#F7F9FC; }
.mes-report-page table.tree tbody tr.family-blue:hover td{ background:#D0E4FF; }
.mes-report-page table.tree tbody tr:last-child td{ border-bottom:0; }
.mes-report-page .c1{ display:flex; align-items:center; gap:7px; white-space:nowrap; overflow:hidden; }
.mes-report-page .tree-code{ font-family:ui-monospace,"Cascadia Mono",Consolas,monospace; font-size:12.5px; font-weight:600; color:#1F2937; }
.mes-report-page .tree-sup{ font-size:12.5px; color:var(--rp-text-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mes-report-page .tree-qty{ text-align:left; font-size:13px; font-weight:600; color:#1F2937; white-space:nowrap; line-height:1.15; }
.mes-report-page .tree-qty small{ display:block; font-size:10.5px; color:var(--rp-text-3); font-weight:400; line-height:1.1; }

/* 工序进度：分段轨道 + 阶段名 */
.mes-report-page .steps{ display:flex; gap:3px; align-items:flex-start; }
.mes-report-page .step{ flex:1 1 0; min-width:0; text-align:center; }
.mes-report-page .step .track{ height:5px; border-radius:3px; background:#EDF1F6; }
.mes-report-page .step .lab{ margin-top:2px; font-size:10.5px; color:var(--rp-text-3); line-height:1.15; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mes-report-page .step.done .track{ background:#00A870; }
.mes-report-page .step.done .lab{ color:#5A6779; }
.mes-report-page .step.cur .track{ background:#1677FF; box-shadow:0 0 0 3px rgba(22,119,255,.13); }
.mes-report-page .step.cur .lab{ color:#0958D9; font-weight:600; }
.mes-report-page .step.out .track{ background:#ED7B2F; }
.mes-report-page .step.out .lab{ color:#B26A00; font-weight:600; }

.mes-report-page .pager{ display:flex; align-items:center; justify-content:flex-end; padding:6px 16px; border-top:1px solid var(--rp-line-soft); }
.mes-report-page .pager > div{ margin-bottom:0 !important; }
@media (max-width:768px){
  .mes-report-page .card-head{ flex-wrap:wrap; padding:8px 12px; }
  .mes-report-page .legend{ display:none; }
  .mes-report-page .search-wrap{ flex:1 1 100%; }
  .mes-report-page .search{ width:100%; }
}

/* 补料单：沿用报工卡片与字号分类，数量和留痕分列，不再逐单堆叠卡片。 */
.admin-replenish-page .rep-filters{display:flex;align-items:center;gap:4px;margin-left:auto;flex-wrap:nowrap;min-width:0;}
.admin-replenish-page .rep-keyword{width:230px;min-width:150px;height:28px;font-size:12px;padding:3px 8px;}
.admin-replenish-page .rep-filters .btn{font-size:12px;line-height:1.2;padding:4px 9px;min-height:26px;background:#fff;border:1px solid #DCE3EC;border-radius:6px;color:#5A6779;}
.admin-replenish-page .rep-filters .btn.active{color:#0958D9;background:#EAF2FF;border-color:#BDD7FF;}
.admin-replenish-page .rep-table{width:100%;min-width:1000px;table-layout:fixed;border-collapse:collapse;}
.admin-replenish-page .rep-table th{text-align:left;background:#FAFBFD;padding:6px 12px;color:#8A97A8;font-size:11.5px;font-weight:500;border-bottom:1px solid #E6EAF0;}
.admin-replenish-page .rep-table td{padding:4px 12px;vertical-align:middle;font-size:12.5px;line-height:1.25;border-bottom:1px solid #F1F4F8;overflow-wrap:anywhere;}
.admin-replenish-page .rep-table tr:nth-child(even) td{background:#E3EEFF;}
.admin-replenish-page .rep-table tr:hover td{background:#EFF6FF;}
.admin-replenish-page .rep-table tr:last-child td{border-bottom:0;}
.admin-replenish-page .rep-identity{display:flex;align-items:center;gap:9px;white-space:nowrap;}
.admin-replenish-page .rep-code{font-family:inherit;font-size:12.5px;font-weight:600;color:var(--text-1);}
.admin-replenish-page .rep-qty,.admin-replenish-page .rep-qty b{font-family:inherit;font-size:12.5px!important;font-weight:600;color:var(--text-1);}
.admin-replenish-page .rep-muted{font-size:11px;line-height:1.25;color:#8A97A8;}
.admin-replenish-page .rep-secondary{display:flex;gap:5px;margin-top:3px;}
.admin-replenish-page .rep-secondary .tag{font-size:11.5px;line-height:1.2;padding:1px 6px;border-radius:10px;}
.admin-replenish-page .rep-qty{font-size:13px;line-height:1.2;font-variant-numeric:tabular-nums;}
.admin-replenish-page .rep-qty b{font-weight:600;color:#0958D9;}
.admin-replenish-page .rep-actions{display:flex;gap:4px;flex-wrap:wrap;}
.admin-replenish-page .rep-actions .btn{font-size:12px;line-height:1.2;padding:3px 8px;min-height:24px;border-radius:6px;}
.admin-replenish-page .rep-audit{color:#1F2937;}
@media(max-width:768px){.admin-replenish-page .rep-filters{margin-left:0;flex-basis:100%;flex-wrap:wrap;}.admin-replenish-page .rep-keyword{flex:1 1 180px;width:auto;}}

/* 工单主列表：与报工页一致的表格、型号、数量和辅助信息。 */
.admin-main .admin-wo-page.mes-report-page{font-size:12.5px;line-height:1.2;}
.admin-main .admin-wo-page .wo-status-filter{width:110px;flex:none;height:28px;font-size:12px;padding:3px 8px;line-height:1.2;}
.admin-main .admin-wo-page .wo-keyword{width:220px;height:28px;}
.admin-main .admin-wo-page .wo-summary{padding:5px 16px;font-size:11px;color:#8A97A8;line-height:1.3;}
.admin-main .admin-wo-page .wo-table{width:100%;min-width:950px;table-layout:fixed;border-collapse:collapse;}
.admin-main .admin-wo-page .wo-table th{text-align:left;font-size:11.5px;font-weight:500;color:#8A97A8;background:#FAFBFD;padding:6px 12px;border-bottom:1px solid #E6EAF0;}
.admin-main .admin-wo-page .wo-table td{padding:4px 12px;font-size:12.5px;line-height:1.2;vertical-align:middle;border-bottom:1px solid #F1F4F8;}
.admin-main .admin-wo-page .wo-table tbody tr{cursor:pointer;}
.admin-main .admin-wo-page .wo-table tbody tr:nth-child(even){background:#E3EEFF;}
.admin-main .admin-wo-page .wo-table tbody tr:hover{background:#DBEAFF;}
.admin-main .admin-base-page .base-customer-table tbody tr:hover{background:#DBEAFF;}
.admin-main .admin-wo-page .wo-identity{display:flex;align-items:center;gap:9px;}
.admin-main .admin-wo-page .wo-code{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:12px!important;line-height:1.2;overflow-wrap:anywhere;}
.admin-main .admin-wo-page .wo-muted{font-size:11px!important;color:#8A97A8;line-height:1.3;}
.admin-main .admin-wo-page .wo-qty{font-size:13px!important;line-height:1.2;font-variant-numeric:tabular-nums;}
.admin-main .admin-wo-page .wo-qty small{font-size:11px;font-weight:400;color:#8A97A8;}
.admin-main .admin-wo-page .wo-progress{display:flex;align-items:center;gap:8px;margin:0;font-size:12px;line-height:1.2;}
.admin-main .admin-wo-page .wo-progress .pbar{flex:1;height:5px;}
.admin-main .admin-wo-page .wo-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.admin-main .admin-wo-page .wo-actions .tag{font-size:11.5px!important;line-height:1.2;padding:1px 6px;border-radius:10px;}
.admin-main .admin-wo-page .btn{font-size:12px!important;line-height:1.2;min-height:24px;padding:3px 8px;border-radius:6px;}
@media(max-width:768px){.admin-main .admin-wo-page .card-head{flex-wrap:wrap;}.admin-main .admin-wo-page .wo-keyword{flex:1;min-width:140px;}.admin-main .admin-wo-page .rp-page-head{gap:8px;flex-wrap:wrap;}}

/* 订单：保留多型号合并字段，统一报工卡片与分类字号。 */
.admin-main .admin-orders-page .order-filters{display:flex;gap:6px;margin:0 0 0 auto;}
.admin-main .admin-orders-page .input{font-size:12px;line-height:1.2;height:28px;padding:3px 8px;}
.admin-main .admin-orders-page .order-summary{font-size:11px!important;line-height:1.3;padding:5px 16px;margin:0;color:#8A97A8;}
.admin-main .admin-orders-page .order-table-wrap{border-radius:0;}
.admin-main .admin-orders-page .order-table{width:100%;min-width:1120px;border-collapse:collapse;font-size:12.5px;line-height:1.2;table-layout:fixed;}
.admin-main .admin-orders-page .order-table col:nth-child(2){width:170px!important;}
.admin-main .admin-orders-page .order-table .order-code{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace!important;font-size:12px!important;font-weight:600;color:#1F2937;}
.admin-main .admin-orders-page .order-table .order-plan,
.admin-main .admin-orders-page .order-table td.qnum{font-family:inherit;font-size:12.5px!important;color:#68778B;font-weight:600;}
.admin-main .admin-orders-page .order-table th,.admin-main .admin-orders-page .order-table td{height:auto;padding:2px 8px;border:0;border-bottom:1px solid #F1F4F8;line-height:1.2;}
.admin-main .admin-orders-page .order-table th{background:#FAFBFD;color:#8A97A8;font-size:11.5px;padding:6px 8px;}
.admin-main .admin-orders-page .order-table .qnum{font-size:13px!important;line-height:1.2;}
.admin-main .admin-orders-page .order-table .order-code{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:12px!important;}
.admin-main .admin-orders-page .order-table td.order-date{font-size:11px;text-align:left;}
.admin-main .admin-orders-page .order-table td.order-plan{text-align:left;}
.admin-main .admin-orders-page .order-table .order-code{text-align:left;}
.admin-main .admin-orders-page .order-table .order-progress .qnum{flex-basis:36px;}
.admin-main .admin-orders-page .order-table .order-customer{font-size:12.5px;color:#145FCC;}
.admin-main .admin-orders-page .order-group:nth-of-type(even){background:#E3EEFF;}
.admin-main .admin-orders-page .order-group:hover{background:#EFF6FF;}
.admin-main .admin-orders-page .order-table .tag{font-size:11.5px!important;line-height:1.2;padding:1px 5px;border-radius:10px;}
.admin-main .admin-orders-page .btn{font-size:12px!important;line-height:1.2;padding:3px 8px;min-height:24px;border-radius:6px;}
.admin-main .admin-orders-page .order-table .btn{font-size:11px!important;padding:2px 5px;min-height:22px;}
@media(max-width:768px){.admin-main .admin-orders-page .card-head{flex-wrap:wrap;}.admin-main .admin-orders-page .order-filters{margin-left:0;width:100%;}.admin-main .admin-orders-page .order-filters input{flex:1;}.admin-main .admin-orders-page .rp-page-head{gap:8px;flex-wrap:wrap;}}

/* 外协主列表：统一卡头、五列轨道与按单分组的回料留痕。 */
.admin-main .admin-outsrc-page{font-size:12.5px;line-height:1.2;}
.admin-main .admin-outsrc-page .outsrc-filters{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap;}
.admin-main .admin-outsrc-page .input{width:120px;flex:none;height:28px;font-size:12px;padding:3px 8px;line-height:1.2;}
.admin-main .admin-outsrc-page .outsrc-keyword{width:280px;}
.admin-main .admin-outsrc-page .outsrc-summary{padding:5px 16px;color:#8A97A8;font-size:11px;line-height:1.3;}
.admin-main .admin-outsrc-page .outsrc-table{width:100%;min-width:1000px;table-layout:fixed;border-collapse:collapse;}
.admin-main .admin-outsrc-page .outsrc-table th{text-align:left;padding:6px 12px;font-size:11.5px;font-weight:500;color:#8A97A8;background:#FAFBFD;border-bottom:1px solid #E6EAF0;}
.admin-main .admin-outsrc-page .outsrc-table td{padding:4px 12px;vertical-align:middle;font-size:12.5px;line-height:1.2;border-bottom:1px solid #F1F4F8;overflow-wrap:anywhere;}
.admin-main .admin-outsrc-page .outsrc-group:nth-of-type(even){background:#E3EEFF;}
.admin-main .admin-outsrc-page .outsrc-group:hover{background:#EFF6FF;}
.admin-main .admin-outsrc-page .outsrc-identity{display:flex;align-items:center;gap:9px;}
.admin-main .admin-outsrc-page .outsrc-code{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:12px!important;line-height:1.2;}
.admin-main .admin-outsrc-page .outsrc-muted{color:#8A97A8;font-size:11px;line-height:1.3;margin-top:2px;}
.admin-main .admin-outsrc-page .outsrc-quantities{display:flex;gap:0;white-space:nowrap;font-size:13px!important;font-variant-numeric:tabular-nums;line-height:1.2;}
.admin-main .admin-outsrc-page .outsrc-quantities b{color:#145FCC;font-weight:500;}
.admin-main .admin-outsrc-page .outsrc-actions{display:grid;grid-template-columns:94px 44px;align-items:center;gap:5px;justify-content:start;}
.admin-main .admin-outsrc-page .outsrc-actions>.btn{grid-column:1 / -1;justify-self:start;}
.admin-main .admin-outsrc-page .outsrc-actions>.outsrc-undo{grid-column:1;width:94px;}
.admin-main .admin-outsrc-page .outsrc-actions>.outsrc-delete{grid-column:2;width:44px;}
.admin-main .admin-outsrc-page .btn{font-size:12px!important;line-height:1.2;min-height:24px;padding:3px 8px;border-radius:6px;}
.admin-main .admin-outsrc-page .tag{font-size:11.5px!important;line-height:1.2;padding:1px 6px;border-radius:10px;white-space:nowrap;}
.admin-main .admin-outsrc-page .outsrc-table .outsrc-detail-row>td{padding:0 12px 3px 28px;}
.admin-main .admin-outsrc-page .outsrc-back-row{display:flex;gap:6px;align-items:center;padding:4px 0;border-bottom:1px dashed #E6EAF0;flex-wrap:wrap;}
.admin-main .admin-outsrc-page .outsrc-back-row:last-child{border-bottom:0;}
.admin-main .admin-outsrc-page .outsrc-back-content{flex:1;min-width:320px;font-size:11.5px!important;line-height:1.5;color:#5A6779;}
.admin-main .admin-outsrc-page .outsrc-back-content .muted{font-size:11px!important;overflow-wrap:anywhere;}
.admin-main .admin-outsrc-page .outsrc-pager{padding:4px 16px;}
@media(max-width:1100px){.admin-main .admin-outsrc-page .card-head{flex-wrap:wrap;}.admin-main .admin-outsrc-page .outsrc-filters{margin-left:0;width:100%;}.admin-main .admin-outsrc-page .outsrc-keyword{flex:1;min-width:200px;}}
@media(max-width:480px){.admin-main .admin-outsrc-page .outsrc-filters .input{max-width:100%;}.admin-main .admin-outsrc-page .outsrc-keyword{flex-basis:100%;min-width:0;}}

/* 基础数据整页工作台：末端统一覆盖，避免继承旧紧缩字号和卡片规则。 */
.admin-main .base-redesign{font-size:12px;line-height:1.4;}
.base-redesign .base-page-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 14px;gap:12px;}
.base-redesign .base-page-head h1{margin:0;font-size:20px;font-weight:650;color:#243247;line-height:1.3;}
.base-redesign .base-page-head p{margin:4px 0 0;font-size:12px;color:#8A97A8;}
.base-redesign .base-page-hint{font-size:11px;color:#8A97A8;}
.base-redesign .base-section-nav{display:flex;gap:4px;padding:5px;background:#E9EEF5;border-radius:10px;margin-bottom:14px;overflow-x:auto;}
.base-redesign .base-section-nav button{flex:1;min-width:92px;border:0;background:transparent;color:#68778B;padding:9px 12px;white-space:nowrap;font-size:12px;border-radius:7px;cursor:pointer;}
.base-redesign .base-section-nav button.active{color:#145FCC;background:white;box-shadow:0 1px 4px #1F293714;font-weight:600;}
.admin-main .base-redesign>.card{padding:0;border:1px solid #E3E9F1;border-radius:10px;box-shadow:none;margin:0 0 12px;overflow:hidden;background:white;}
.admin-main .base-redesign .base-card-head{padding:11px 14px;min-height:48px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #E9EDF3;background:#fff;gap:10px;}
.admin-main .base-redesign .base-card-head .cat-header{font-size:14px!important;line-height:1.3;color:#26364B;font-weight:600;}
.admin-main .base-redesign>.card>div:not(.base-card-head):not(.base-customer-content):not(.base-product-content){padding:10px 14px;overflow-x:auto;}
.admin-main .base-redesign .btn{font-size:11.5px!important;line-height:1.2;padding:4px 8px!important;min-height:25px;border-radius:5px;box-shadow:none;}
.admin-main .base-redesign .btn-ghost,.admin-main .base-redesign .btn-dim{background:#F5F7FA;border:1px solid #E3E9F1;color:#51647D;}
.admin-main .base-redesign .btn-danger{background:#FFF3F2;color:#CF4545;border:1px solid #F8DDDA;}
.admin-main .base-redesign .input{font-size:12px!important;line-height:1.3;min-height:30px;height:30px;border-radius:6px;border:1px solid #DDE4ED;padding:5px 9px;background:white;}
.admin-main .base-redesign .tag{font-size:10.5px!important;line-height:1.3;padding:2px 6px;border-radius:5px;}
.admin-main .base-redesign .list-row{font-size:12px;line-height:1.4;padding:5px 8px!important;min-height:34px;border-bottom:1px solid #EDF1F6;gap:12px;min-width:850px;}
.admin-main .base-redesign .list-row:nth-of-type(even){background:#F5F8FD;}
.admin-main .base-redesign .list-row:hover{background:#EDF4FF;}
.admin-main .base-redesign .muted{font-size:11px!important;line-height:1.4;color:#8592A4;}
.admin-main .base-redesign .qnum{font-size:12px!important;line-height:1.3;}
.admin-main .base-redesign .base-ui-card table th{font-size:11px;padding:8px 10px;background:#F7F9FC;letter-spacing:.1px;}
.admin-main .base-redesign .base-ui-card table td{font-size:12px;line-height:1.35;padding:5px 10px;}
.admin-main .base-redesign .base-product-card .prod-tbl{min-width:1200px;}
.admin-main .base-redesign .base-product-card .customer-group-row td{font-size:11.5px;color:#51647D;padding:6px 10px;border-top:1px solid #DCE6F4;}
.admin-main .base-redesign .base-customer-content>.muted,.admin-main .base-redesign .base-product-content>.muted{padding:8px 14px;margin:0!important;line-height:1.4;}
.admin-main .base-redesign .base-list-toolbar{display:flex;align-items:center;gap:6px;background:#F9FBFD;border-bottom:1px solid #EDF1F6;padding:9px 14px;}
.admin-main .base-redesign .base-list-toolbar .input{width:100%;max-width:440px;}
.admin-main .base-redesign .dict-row{padding:5px 8px!important;min-height:32px;font-size:12px;border-bottom:1px solid #EDF1F6;}
.admin-main .base-redesign .dict-name{font-size:12px;line-height:1.35;}
@media(max-width:768px){.base-redesign .base-page-hint{display:none;}.base-redesign .base-section-nav button{min-width:85px;}.admin-main .base-redesign .base-card-head{flex-wrap:wrap;}.admin-main .base-redesign .base-product-filter .input{max-width:none;}}
/* 三类明细：统一表头/正文/辅助文字，不继承旧cat-header或字典大字规则。 */
.admin-main .base-redesign>.card>.base-detail-content{padding:0!important;}
.admin-main .base-redesign .base-detail-note{font-size:11px;color:#8592A4;line-height:1.5;padding:9px 14px;background:#FAFBFD;border-bottom:1px solid #EDF1F6;}
.admin-main .base-redesign .base-detail-table{width:100%;min-width:900px;border-collapse:collapse;table-layout:fixed;}
.admin-main .base-redesign .base-detail-table th{font-size:11px;font-weight:500;text-align:left;line-height:1.3;padding:7px 12px;color:#8592A4;background:#F7F9FC;border-bottom:1px solid #E5EBF3;}
.admin-main .base-redesign .base-detail-table td{font-size:12px;font-weight:400;line-height:1.4;padding:5px 12px;vertical-align:middle;border-bottom:1px solid #EDF1F6;overflow-wrap:normal;word-break:normal;}
.admin-main .base-redesign .base-detail-table tbody tr:nth-child(even){background:#E3EEFF;}
.admin-main .base-redesign .base-detail-table tbody tr:hover{background:#EDF4FF;}
.admin-main .base-redesign .base-detail-link{font-family:inherit;font-size:12px;font-weight:500;line-height:1.4;color:#354B68;background:none;border:0;padding:0;text-align:left;cursor:pointer;}
.admin-main .base-redesign .base-detail-link:hover{color:#145FCC;text-decoration:none;}
.admin-main .base-redesign .base-detail-actions{display:flex;align-items:center;gap:5px;flex-wrap:nowrap;}
.admin-main .base-redesign .base-detail-actions .btn{font-weight:400;white-space:nowrap;}
.admin-main .base-redesign .base-detail-subhead{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid #E5EBF3;}
.admin-main .base-redesign .base-detail-subhead b{font-size:12px;font-weight:600;color:#354B68;}
.admin-main .base-redesign .base-detail-subhead>span{font-size:11px;color:#8592A4;}
.admin-main .base-redesign .base-category-chips{display:flex;gap:4px;flex-wrap:wrap;}
.admin-main .base-redesign .base-category-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 6px;border:1px solid #DFE7F2;border-radius:4px;background:#F5F8FD;color:#51647D;font-size:11px;line-height:1.3;}
.admin-main .base-redesign .base-category-chip>span{font-family:ui-monospace,Consolas,monospace;font-size:10.5px;color:#8A97A8;}
.admin-main .base-redesign .base-detail-unset{font-size:11px;color:#AD8247;}
.admin-main .base-redesign .base-detail-table .base-detail-remark{font-size:11px;color:#8592A4;}
.admin-main .base-redesign .base-detail-empty{padding:18px 14px;text-align:center;color:#8A97A8;font-size:12px;}
.admin-main .base-redesign .base-dictionary-content>.muted{padding:8px 14px;font-size:11px!important;margin:0!important;line-height:1.5;}
.admin-main .base-redesign .base-dictionary-add{display:flex;gap:7px;padding:10px 14px;background:#FAFBFD;align-items:center;flex-wrap:wrap;border-bottom:1px solid #E5EBF3;}
.admin-main .base-redesign .base-dictionary-add>.input{max-width:300px;min-width:140px;}
.admin-main .base-redesign .base-dictionary-content>.flex-between{padding:9px 14px;margin:0!important;}
.admin-main .base-redesign .base-dictionary-title{font-size:12px;font-weight:600;color:#354B68;}
.admin-main .base-redesign .base-dictionary-columns{display:flex;justify-content:space-between;padding:7px 14px;background:#F7F9FC;color:#8592A4;font-size:11px;border-block:1px solid #E5EBF3;}
.admin-main .base-redesign .base-dictionary-columns>span:last-child{width:105px;}
.admin-main .base-redesign .base-dictionary-content .dict-list{display:block;border:0;border-radius:0;}
.admin-main .base-redesign .base-dictionary-content .dict-row{display:flex;align-items:center;justify-content:space-between;padding:5px 14px!important;gap:12px;min-height:34px;}
.admin-main .base-redesign .base-dictionary-content .dict-row:nth-child(even){background:#E3EEFF;}
.admin-main .base-redesign .base-dictionary-content .dict-name{font-size:12px!important;font-weight:400;line-height:1.4;color:#354B68;}
.admin-main .base-redesign .base-dictionary-content .dict-actions{display:flex;gap:5px;width:105px;flex-shrink:0;}
@media(max-width:600px){.admin-main .base-redesign .base-dictionary-add>.input{max-width:none;flex:1 1 150px;}.admin-main .base-redesign .base-dictionary-content>.flex-between{flex-wrap:wrap;gap:7px;}}

/* 全局业务名称：不用型号蓝底、数量字体或状态色来表示人员与往来单位。 */
#app .entity-name{font-family:var(--font-family,"Microsoft YaHei"),"PingFang SC",system-ui,sans-serif!important;font-size:12px!important;font-weight:400!important;font-style:normal;letter-spacing:0;line-height:1.35;white-space:nowrap;text-decoration:none!important;}
#app .entity-customer{color:#466F9B!important;}
#app .entity-supplier{color:#8A704D!important;}
#app .entity-process{color:#247C78!important;font-weight:500!important;}
#app .entity-person{color:#77628F!important;}
#app .entity-route{color:#357F87!important;font-weight:500!important;}
/* 进度轨道属微型标注，统一10.5px；不改变进度/状态色。 */
#app .mini-steps .entity-process,#app .step-bar .entity-process,#app .step-bars .entity-process{font-size:10.5px!important;line-height:1.2;}
#app .entity-name mark{font:inherit;color:inherit;}

/* 名称不借下划线提示可点击；保留按钮、悬停底色和键盘焦点。列表优先完整单行。 */
#app .entity-name:hover,#app .entity-name:focus-visible{text-decoration:none!important;}
#app .entity-name:focus-visible{outline:2px solid #91B6DB;outline-offset:3px;border-radius:2px;}
.admin-main .base-redesign .base-template-table{min-width:1000px;}
.admin-main .base-redesign .base-template-table .base-detail-link{white-space:nowrap;}
.admin-main .base-redesign .base-product-card .customer-group-row td{height:35px;padding:5px 10px;vertical-align:middle;line-height:1.35;}
.admin-main .base-redesign .base-group-heading{display:grid;grid-template-columns:16px 170px 120px 1fr;align-items:center;gap:8px;white-space:nowrap;min-height:25px;}
.admin-main .base-redesign .base-group-heading .entity-customer{min-width:0;overflow:hidden;text-overflow:ellipsis;}
.admin-main .base-redesign .base-group-heading .base-ui-code{width:120px;display:block;}
.admin-main .base-redesign .base-product-card .customer-group-row .muted{white-space:nowrap;}
.admin-main .base-redesign .route-summary-text{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#357F87;line-height:1.35;}
.admin-main .admin-stats-page .stats-worker-identity{display:flex;align-items:center;gap:8px;white-space:nowrap;}
.admin-main .admin-stats-page .stats-worker-identity .muted{font-size:11px;}

/* 共享间距：分类行与客户清单同为35px；文字/按钮的水平轨道一致。 */
.admin-main .base-redesign{--base-row-height:35px;--base-gutter:14px;}
.admin-main .base-redesign .base-ui-card table tbody td{height:var(--base-row-height);box-sizing:border-box;}
.admin-main .base-redesign .base-resource-card .list-row{min-height:var(--base-row-height);}
#app .route-summary-text{color:#357F87;font-size:12px;}
#app .chip.on .entity-process{color:inherit!important;}

/* 生产看板：继承报工卡片与名称语义，结构化表格取代多行拼接。 */
.admin-main .report-review-alert{order:-1;margin-top:0;}
.admin-main .report-review-alert .num,.admin-main .report-review-alert .tree-batch-code{color:#68778B;}
.admin-dashboard-page .dashboard-date{font-size:12px;color:#8592A4;white-space:nowrap;}
.admin-dashboard-page .dashboard-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px;}
.admin-dashboard-page .dashboard-kpis .kpi{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;border:1px solid #E6EAF0;box-shadow:none;padding:10px 14px;border-radius:10px;}
.admin-dashboard-page .dashboard-kpis .k-label{font-size:12px;line-height:1.4;color:#68778B;}
.admin-dashboard-page .dashboard-kpis .k-value{font-size:20px;line-height:1.2;margin:0;white-space:nowrap;font-weight:600;}
.admin-dashboard-page .dashboard-kpis .kpi-composite{display:block;}
.admin-dashboard-page .dashboard-kpis .kpi-composite-values{display:flex;align-items:baseline;gap:8px;margin-top:3px;}
.admin-dashboard-page .dashboard-kpis .kpi-composite-values span{display:inline-flex;align-items:baseline;gap:3px;min-width:0;}
.admin-dashboard-page .dashboard-kpis .kpi-composite-values small{font-size:10px;color:#8592A4;white-space:nowrap;}
.admin-dashboard-page .rp-card{padding:0;min-width:0;overflow:hidden;}
.admin-dashboard-page .card-head{gap:10px;min-height:43px;}
.admin-dashboard-page .dashboard-head-note{font-size:11px;color:#8592A4;margin-left:auto;}
.admin-dashboard-page .dashboard-handover-body{display:flex;align-items:center;gap:12px;padding:9px 16px;flex-wrap:wrap;}
.admin-dashboard-page .dashboard-inline-note{margin-left:auto;font-size:11px;}
.admin-dashboard-page .dashboard-panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start;}
.admin-dashboard-page .dashboard-panel-grid>.rp-card{margin:0;}
.admin-dashboard-page .dashboard-table-scroll{max-width:100%;overflow-x:auto;}
.admin-dashboard-page .dashboard-table{width:100%;min-width:780px;border-collapse:collapse;table-layout:fixed;font-size:12px;}
.admin-dashboard-page .dashboard-table th{font-size:11px;font-weight:500;color:#8592A4;background:#F8FAFC;text-align:left;padding:7px 12px;border-bottom:1px solid #E6EAF0;white-space:nowrap;}
.admin-dashboard-page .dashboard-table td{padding:6px 12px;height:32px;box-sizing:border-box;border-bottom:1px solid #EDF1F6;white-space:nowrap;}
.admin-dashboard-page .dashboard-table tbody tr:nth-child(even){background:#E3EEFF;}
.admin-dashboard-page .dashboard-table tbody tr:hover{background:#DBEAFF;}
.admin-dashboard-page .dashboard-table .qnum{font-size:12px;line-height:1.35;}
.admin-dashboard-page .proc-bar-row{padding:6px 12px;gap:10px;min-height:32px;border-bottom:1px solid #EDF1F6;}
.admin-dashboard-page .proc-bar-row:nth-of-type(odd){background:#E3EEFF;}
.admin-dashboard-page .proc-bar-row.drillable:hover{background:#DBEAFF;}
.admin-dashboard-page .proc-name{width:auto;min-width:100px;max-width:45%;font-size:12px;line-height:1.35;}
.admin-dashboard-page .proc-bar{min-width:35px;height:6px;}
.admin-dashboard-page .dashboard-footnote,.admin-dashboard-page .dashboard-empty{padding:9px 16px;font-size:11px;color:#8592A4;line-height:1.4;}
.admin-dashboard-page .dashboard-empty{text-align:center;}
.admin-dashboard-page .list-row{padding:6px 12px;font-size:12px;gap:10px;}
.admin-dashboard-page .list-row:nth-of-type(odd){background:#E3EEFF;}
.admin-dashboard-page .list-row.mat-overdue{background:var(--danger-light);}
.admin-dashboard-page .list-row .qnum{font-size:12px;white-space:nowrap;}
.admin-dashboard-page .chart{margin:12px 16px;height:135px;}
.admin-dashboard-page .chart-v,.admin-dashboard-page .chart-l{font-size:11px;}
@media(max-width:1100px){.admin-dashboard-page .dashboard-panel-grid{grid-template-columns:minmax(0,1fr);}}
.admin-main .admin-orders-page .order-table .order-code{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace!important;font-size:12px!important;color:#1F2937;font-weight:600;}
.admin-main .admin-orders-page .order-table .order-plan,.admin-main .admin-orders-page .order-table td.qnum{font-family:inherit!important;font-size:12.5px!important;color:#68778B;font-weight:600;}
@media(max-width:768px){.admin-dashboard-page .rp-page-head,.admin-dashboard-page .card-head{flex-wrap:wrap;gap:6px;}.admin-dashboard-page .dashboard-head-note{margin-left:0;}.admin-dashboard-page .dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}.admin-dashboard-page .dashboard-kpis .kpi{padding:9px 10px;flex-wrap:wrap;}.admin-dashboard-page .dashboard-kpis .k-value{font-size:18px;}.admin-dashboard-page .dashboard-inline-note{margin-left:0;}}

/* 管理端提醒条：浅琥珀底、细暖边框，分类小签与操作同排；替代整条红色告警。 */
#app .admin-main .notif-bar-admin{display:flex;align-items:center;gap:8px;flex-wrap:wrap;position:static;
  margin:0 0 10px;padding:7px 12px;border:1px solid #F0D2AC;border-radius:8px;
  background:#FFF9EC;color:#6B5B45;box-shadow:none;font-size:12px;line-height:1.4;cursor:pointer;}
#app .admin-main .notif-bar-admin:hover{background:#FFF4DE;border-color:#E8BF8C;}
#app .admin-main .notif-lead{display:inline-flex;align-items:center;gap:6px;font-weight:500;color:#5E4B32;white-space:nowrap;}
#app .admin-main .notif-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;
  background:#FBE3BF;color:#B96B10;font-size:10.5px;font-weight:700;line-height:1;}
#app .admin-main .notif-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border:1px solid #F0D2A8;border-radius:4px;
  background:#FFF1D8;color:#7A5A33;font-size:11.5px;line-height:1.45;white-space:nowrap;}
#app .admin-main .notif-chip b{font-weight:600;font-variant-numeric:tabular-nums;color:#9A5B12;}
#app .admin-main .notif-more{margin-left:auto;font-size:11.5px;color:#8A7A63;white-space:nowrap;}
@media(max-width:768px){#app .admin-main .notif-bar-admin{gap:6px;}#app .admin-main .notif-more{margin-left:0;}}

/* 资源详情与档案表单共享结构，客户作为首个完整接入页面。 */
.resource-detail-panel .rp-page-head{align-items:center;gap:8px;flex-wrap:wrap;}
.resource-detail-panel .rp-page-head h1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:18px;}
.resource-detail-panel .resource-code{font-family:ui-monospace,Consolas,monospace;font-size:11.5px;color:#596579;font-weight:400;}
.resource-detail-panel .resource-actions{display:flex;align-items:center;gap:6px;}
.resource-detail-panel .rp-card{padding:0;overflow:hidden;}
.resource-detail-panel .card-head{padding:8px 12px;gap:8px;flex-wrap:wrap;}
.resource-detail-panel .card-title{font-size:13px;}
.resource-detail-panel .btn{font-size:11.5px;line-height:1.2;padding:4px 8px;min-height:26px;white-space:nowrap;}
.resource-detail-panel .resource-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;}
.resource-detail-panel .resource-fields>div{display:flex;align-items:baseline;gap:8px;padding:7px 12px;min-width:0;border-bottom:1px solid #EDF1F6;}
.resource-detail-panel .resource-fields dt{font-size:11px;color:#8592A4;white-space:nowrap;}
.resource-detail-panel .resource-fields dd{font-size:12px;line-height:1.4;color:#46566C;margin:0;overflow-wrap:anywhere;}
.resource-detail-panel .resource-fields .resource-full{grid-column:1/-1;}
.resource-detail-panel .resource-note{white-space:pre-wrap;}
.resource-detail-panel .resource-summary{display:flex;gap:8px;margin-bottom:10px;}
.resource-detail-panel .resource-summary>div{display:flex;align-items:baseline;gap:8px;flex:1;padding:8px 12px;background:#fff;border:1px solid #E6EAF0;border-radius:8px;}
.resource-detail-panel .resource-summary span{font-size:11px;color:#8592A4;}
.resource-detail-panel .resource-summary b{font-size:14px;font-weight:500;color:#145FCC;font-variant-numeric:tabular-nums;}
.resource-detail-panel .resource-head-note{margin-left:auto;color:#8592A4;font-size:11px;}
.resource-detail-panel .resource-table-scroll{max-width:100%;overflow-x:auto;}
.resource-detail-panel .resource-table{width:100%;min-width:560px;table-layout:fixed;border-collapse:collapse;}
.resource-detail-panel .customer-products-table{min-width:700px;}
.resource-detail-panel .resource-table th{font-size:11px;font-weight:500;color:#8592A4;white-space:nowrap;text-align:left;background:#F7F9FC;padding:7px 8px;}
.resource-detail-panel .resource-table td{font-size:12px;line-height:1.35;padding:6px 8px;height:33px;box-sizing:border-box;white-space:nowrap;border-bottom:1px solid #EDF1F6;}
.resource-detail-panel .resource-table tbody tr:nth-child(even){background:#E3EEFF;}
.resource-detail-panel .resource-table tbody tr:hover{background:#DBEAFF;}
.resource-detail-panel .resource-table .qnum{font-size:12px;}
.resource-detail-panel .resource-table .tag{font-size:10.5px;line-height:1.3;padding:1px 5px;}
.resource-detail-panel .resource-route{display:block;overflow:hidden;text-overflow:ellipsis;}
.resource-detail-panel .resource-record-link,.resource-detail-panel .resource-model-link{background:none;border:0;padding:0;cursor:pointer;text-decoration:none;}
.resource-detail-panel .resource-record-link{font-family:ui-monospace,Consolas,monospace;font-size:12px;color:#1F2937;}
.resource-detail-panel .resource-record-link:focus-visible,.resource-detail-panel .resource-model-link:focus-visible{outline:2px solid #91B6DB;outline-offset:2px;}
.resource-detail-panel .resource-date{font-variant-numeric:tabular-nums;color:#596579;}
.resource-detail-panel .resource-empty{padding:15px 12px;color:#8592A4;font-size:12px;text-align:center;}
.resource-detail-panel .resource-form-row{display:flex;align-items:baseline;gap:12px;padding:9px 12px;border-bottom:1px solid #EDF1F6;}
.resource-detail-panel .resource-form-row>label,.resource-detail-panel .resource-form-label{flex:0 0 72px;font-size:12px;color:#68778B;white-space:nowrap;}
.resource-detail-panel .resource-category-list,.resource-detail-panel .resource-choice-list{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.resource-detail-panel .resource-category{display:inline-flex;align-items:baseline;gap:5px;border:1px solid #E3E9F1;background:#F5F7FA;padding:2px 7px;border-radius:4px;white-space:nowrap;font-size:12px;}
.resource-detail-panel .resource-choice{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;min-height:28px;line-height:1.3;border:1px solid #DDE4ED;border-radius:5px;background:#F8FAFC;color:#68778B;font-size:12px;white-space:nowrap;cursor:pointer;}
.resource-detail-panel .resource-choice[aria-pressed=true]{border-color:#A7C7E7;background:#EAF2FC;color:#34699A;}
.resource-detail-panel .resource-choice:focus-visible{outline:2px solid #91B6DB;outline-offset:2px;}
.resource-detail-panel .resource-choice[aria-pressed=true] .resource-code{color:inherit;}
.resource-detail-panel .resource-batch{font-family:ui-monospace,Consolas,monospace;color:#1F2937;}
.resource-detail-panel .resource-step{font-size:11px;color:#8592A4;}
.resource-detail-panel .resource-pending{margin-left:auto;font-size:11px;color:#A66A20;white-space:nowrap;}
.resource-detail-panel .resource-info{padding:12px;font-size:12px;line-height:1.6;color:#68778B;}
.resource-detail-panel .supplier-records-table{min-width:840px;}
.resource-detail-panel .resource-form-control{flex:1;min-width:0;}
.resource-detail-panel .resource-form .input{width:100%;font-size:12px;line-height:1.4;height:30px;padding:4px 8px;min-width:0;}
.resource-detail-panel .resource-form .input:disabled{background:#F3F5F8;color:#8592A4;}
.resource-detail-panel .resource-inline-control{display:flex;align-items:center;gap:6px;}
.resource-detail-panel .resource-help{font-size:11px;line-height:1.4;color:#8592A4;margin-top:4px;}
.resource-detail-panel .resource-required{color:#CF4545;}
.resource-detail-panel .resource-form-footer{display:flex;align-items:center;justify-content:flex-end;gap:6px;padding:8px 0;}
.resource-detail-panel .resource-form-footer .resource-help{margin:0 auto 0 0;}
@media(max-width:480px){.resource-detail-panel .resource-fields{grid-template-columns:minmax(0,1fr);}.resource-detail-panel .resource-form-row{gap:8px;}.resource-detail-panel .resource-form-row>label{flex-basis:60px;}}

.resource-detail-panel .resource-metrics{display:flex;gap:8px 16px;flex-wrap:wrap;padding:10px 12px;}
.resource-detail-panel .resource-metrics>div{display:flex;align-items:baseline;gap:5px;white-space:nowrap;}
.resource-detail-panel .resource-metrics span{font-size:11px;color:#8592A4;}
.resource-detail-panel .resource-metrics b{font-size:12px;font-weight:500;color:#145FCC;font-variant-numeric:tabular-nums;}
.resource-detail-panel .resource-unset{color:#A66A20;}
.resource-detail-panel .process-batches-table{min-width:710px;}
.process-form-panel .process-form-fields{padding:2px 12px;}
.process-form-panel .process-form-fields>.field{display:grid;grid-template-columns:140px minmax(0,1fr);align-items:center;gap:8px;margin:0;padding:8px 0;border-bottom:1px solid #EDF1F6;font-size:12px;line-height:1.5;color:#68778B;}
.process-form-panel .input{min-width:0;font-size:12px;padding:4px 8px;height:30px;line-height:1.4;}
.process-form-panel .chips{gap:5px;}
.process-form-panel .chip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;padding:3px 6px;white-space:nowrap;}
.process-form-panel .process-quality-editor{padding:10px 12px;}
.process-form-panel .process-quality-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:7px 0;border-bottom:1px solid #EDF1F6;}
.process-form-panel .process-quality-row>.input:first-child{min-width:120px;}
.process-form-panel .process-quality-row label{font-size:11.5px;}
@media(max-width:480px){.process-form-panel .process-form-fields>.field{grid-template-columns:105px minmax(0,1fr);}}

.user-detail-panel .user-info-body{padding:10px 12px;font-size:12px;line-height:1.6;}
.user-detail-panel .user-info-body .muted{font-size:12px;overflow-wrap:anywhere;}
.user-detail-panel .user-info-body .entity-process{white-space:normal;}
.user-detail-panel .user-stat-line{padding:10px 12px;font-size:12px;line-height:1.7;}
.user-detail-panel .user-report-row{padding:8px 12px;font-size:12px;line-height:1.6;}
.user-detail-panel .user-report-row .muted{font-size:11.5px;}
.user-detail-panel .user-report-row .tag{font-size:10.5px;padding:1px 5px;}
.user-detail-panel .rp-page-head .num{font-size:11.5px;font-weight:400;}
.user-form-panel .user-form-fields{padding:2px 12px;}
.user-form-panel .field{display:grid;grid-template-columns:130px minmax(0,1fr);align-items:center;gap:7px;margin:0;padding:8px 0;border-bottom:1px solid #EDF1F6;font-size:12px;line-height:1.5;color:#68778B;}
.user-form-panel .field>.chips,.user-form-panel .field>.muted{grid-column:2;}
.user-form-panel .input{min-width:0;padding:4px 8px;font-size:12px;height:30px;}
.user-form-panel .chips{display:flex;gap:5px;flex-wrap:wrap;}
.user-form-panel button.chip{font-size:11.5px;padding:4px 7px;cursor:pointer;line-height:1.3;}
.user-form-panel button.chip:focus-visible{outline:2px solid #91B6DB;outline-offset:2px;}
.user-form-panel .proc-dept{font-size:11px;color:#8592A4;}
@media(max-width:480px){.user-form-panel .field{grid-template-columns:100px minmax(0,1fr);}}

.route-config-panel .rc-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;}
.route-config-panel .rc-toolbar .input{font-size:12px;padding:5px 8px;height:30px;min-width:0!important;}
.route-config-panel .rc-guide{font-size:11px;line-height:1.6;color:#8592A4;padding:0 12px 8px;}
.route-config-panel .rc-mode-bar{display:flex;justify-content:flex-end;padding:0 12px 8px;}
.route-config-panel .rc-table-scroll{max-width:100%;overflow-x:auto;}
.route-config-panel .rc-grid-wrap{min-width:1032px;border-radius:0;border-left:0;border-right:0;}
.route-config-panel .rc-head{font-size:11px;color:#8592A4;background:#F7F9FC;}
.route-config-panel .rc-row{font-size:12px;min-height:34px;border-bottom:1px solid #EDF1F6;box-sizing:border-box;}
.route-config-panel .rc-row:nth-of-type(even){background:#E3EEFF;}
.route-config-panel .rc-row:hover{background:#DBEAFF;}
.route-config-panel .rc-row .input{font-size:12px;height:28px;}
.route-config-panel .rc-library{padding:8px 12px;}
.route-config-panel .rc-library .chips{gap:5px;padding:5px 0;align-items:center;}
.route-config-panel .rc-library .chip{font-size:12px;padding:4px 7px;border-radius:5px;border:1px solid #E1E7EE;background:#F5F7FA;line-height:1.3;}
.route-config-panel .rc-library .proc-dept{font-size:11px;color:#8592A4;}
.route-config-panel .rc-save-area{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:4px 0 8px;}
.route-config-panel .rc-save-area .resource-help{flex:1;min-width:200px;}

.product-form-panel .card-head .btn{margin-left:auto;}
.product-form-panel .product-route-editor{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;}
.product-form-panel .product-form-route{max-width:100%;overflow-x:auto;}
.product-form-panel .product-route-editor .input{flex:1 1 220px;min-width:0;}
.product-form-panel .product-drawing-help{margin:8px 0;}

.operation-form-panel .rp-page-head h1{font-size:16px;}
.operation-form-panel .operation-fields{padding:8px 12px;}
.operation-form-panel .operation-fields>.muted{font-size:11.5px!important;line-height:1.6;}
.operation-form-panel .field{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:8px;margin:0;padding:8px 0;border-bottom:1px solid #EDF1F6;font-size:12px;line-height:1.5;color:#68778B;}
.operation-form-panel .input{min-width:0;font-size:12px;height:30px;padding:4px 8px;}
.operation-form-panel .field label{font-size:12px!important;white-space:nowrap;}
.operation-form-panel input[type=radio]{accent-color:#145FCC;}
@media(max-width:480px){.operation-form-panel .field{grid-template-columns:90px minmax(0,1fr);}}

.flow-operation-panel .rp-page-head h1{font-size:16px;}
.resource-detail-panel.flow-operation-panel .flow-card{padding:10px 12px;}
.flow-operation-panel .flow-card>.muted{font-size:11.5px;line-height:1.6;}
.flow-operation-panel .flow-card>.flex-between{gap:8px;flex-wrap:wrap;font-size:12px;}
.flow-operation-panel .qnum{font-size:12px;line-height:1.6;}
.flow-operation-panel .field{display:grid;grid-template-columns:125px minmax(0,1fr);gap:8px;align-items:center;padding:8px 0;margin:0;border-bottom:1px solid #EDF1F6;font-size:12px;line-height:1.5;color:#68778B;}
.flow-operation-panel .field .input{min-width:0;width:100%;height:30px;font-size:12px;padding:4px 8px;}
.flow-operation-panel .field>div.flex{flex-wrap:wrap;}
.flow-operation-panel label.flex{font-size:12px!important;line-height:1.5;}
.flow-operation-panel input[type=radio],.flow-operation-panel input[type=checkbox]{accent-color:#145FCC;flex-shrink:0;}
.flow-operation-panel .flow-submit{display:block;margin:10px 0 0 auto;}
.flow-operation-panel .flow-footer{display:flex;justify-content:flex-end;}
.flow-operation-panel .list-row{padding:8px 0;gap:8px;flex-wrap:wrap;}
.flow-operation-panel .list-row:nth-of-type(even){background:#E3EEFF;}
.flow-operation-panel .list-row .qnum{white-space:normal;overflow-wrap:anywhere;}
.flow-operation-panel .list-row .tag{font-size:10.5px;padding:1px 5px;}
@media(max-width:480px){.flow-operation-panel .field{grid-template-columns:100px minmax(0,1fr);}}

.report-entry-panel .rp-page-head h1{font-size:16px;}
.report-entry-panel .report-entry-body{padding:8px 12px;}
.report-entry-panel .report-entry-body>.field,.report-entry-panel>.report-note{display:flex;align-items:flex-start;flex-wrap:wrap;gap:6px;font-size:12px;line-height:1.5;color:#68778B;margin:0;padding:8px 0;border-bottom:1px solid #EDF1F6;}
.report-entry-panel .report-entry-body>.field>.input{flex:1 1 150px;min-width:0;}
.report-entry-panel .field>div.flex{min-width:0;max-width:100%;flex-wrap:wrap;}
.report-entry-panel .field .input{min-width:0;font-size:12px;padding:4px 7px;height:30px;}
.report-entry-panel .field .flex>.input{flex:1 1 100px;min-width:60px;}
.report-entry-panel .field label.flex{flex-wrap:wrap;font-size:11.5px;}
.report-entry-panel .report-entry-body>.muted{font-size:11.5px!important;line-height:1.6;}
.report-entry-panel .check-block{padding:10px;margin:10px 0;border:1px solid #E3E9F1;border-radius:6px;background:#F7F9FC;}
.report-entry-panel .check-block>b{font-size:12px;}
.report-entry-panel .check-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:5px 0;font-size:12px;}
.report-entry-panel .check-name{font-size:12px;overflow-wrap:anywhere;}
.report-entry-panel .check-row .input{min-width:0;font-size:12px;height:28px;padding:3px 6px;}
.report-entry-panel .calc-line{font-size:12px;line-height:1.7;padding:8px 10px;background:#E3EEFF;border-radius:5px;margin:8px 0;}
.report-entry-panel>.report-note .input{flex:1;min-width:0;height:30px;font-size:12px;}
.report-entry-panel .field>div.mb8{width:100%;box-sizing:border-box;}
.report-entry-panel .resource-form-footer .btn{white-space:normal;line-height:1.5;}

.document-form-panel .rp-page-head h1{font-size:16px;}
.resource-detail-panel .document-form-card{padding:4px 12px;}
.document-form-panel .field{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:8px 0;margin:0;border-bottom:1px solid #EDF1F6;font-size:12px;line-height:1.5;color:#68778B;}
.document-form-panel .field>.input{flex:1 1 170px;min-width:0;}
.document-form-panel .field>div.flex{display:flex;gap:6px;flex:1 1 190px;min-width:0;}
.document-form-panel .input{height:30px;min-width:0;font-size:12px;padding:4px 7px;}
.document-form-panel .field>.muted,.document-form-panel .document-form-card>.muted{font-size:11.5px!important;line-height:1.6;}
.document-form-panel .order-item-edit-row{display:grid;grid-template-columns:minmax(0,1fr) 85px 27px;align-items:center;gap:6px;width:100%;}
.document-form-panel .order-item-edit-row .input{width:100%!important;}
.document-form-panel .order-item-edit-row .btn{padding:4px 6px;}
.convert-create-panel .field>div{max-width:100%;}
.convert-create-panel .field label{font-size:12px!important;line-height:1.5;}
.document-form-panel input[type=radio]{accent-color:#145FCC;}

.workorder-form-panel .field>div{min-width:0;max-width:100%;}
.workorder-form-panel .field>div:has(.route-step-row){width:100%;}
.workorder-form-panel .route-step-row{font-size:12px;gap:5px;min-width:0;padding:6px 0;}
.workorder-form-panel .route-step-row>span[style]{min-width:0;}
.workorder-form-panel .route-step-row:nth-child(even){background:#E3EEFF;}
.workorder-form-panel .chips{gap:5px;width:100%;align-items:center;}
.workorder-form-panel .chip{font-size:12px;padding:4px 7px;border-radius:5px;line-height:1.3;border:1px solid #E1E7EE;background:#F5F7FA;}
.workorder-form-panel .proc-dept{font-size:11px;color:#8592A4;}
.workorder-form-panel .field .input.btn-sm{min-width:0!important;max-width:100%;flex:1 1 180px;}

.trace-detail-panel .rp-page-head h1{font-size:16px;overflow-wrap:anywhere;}
.resource-detail-panel .trace-card{padding:10px 12px;font-size:12px;line-height:1.6;}
.trace-detail-panel .trace-card>.card-head{margin:-10px -12px 8px;padding:8px 12px;border-bottom:1px solid #EDF1F6;}
.trace-detail-panel .trace-card>.flex-between{gap:6px;flex-wrap:wrap;}
.trace-detail-panel .muted,.trace-detail-panel .qnum,.trace-detail-panel .num{font-size:12px;line-height:1.6;}
.trace-detail-panel .list-row,.trace-detail-panel .hov-row{padding:7px 0;gap:6px;flex-wrap:wrap;font-size:12px;border-bottom:1px solid #EDF1F6;}
.trace-detail-panel .list-row:nth-of-type(even),.trace-detail-panel .hov-row:nth-of-type(even){background:#E3EEFF;}
.trace-detail-panel .tag{font-size:10.5px;padding:1px 5px;line-height:1.4;}
.trace-detail-panel .step-mini-row{font-size:12px;gap:6px;padding:7px 0;flex-wrap:wrap;}
.trace-detail-panel .step-mini-row>span[style]{min-width:100px;}
.trace-detail-panel .step-mini-row:nth-of-type(even){background:#E3EEFF;}
.trace-detail-panel .trace-card>.flex{flex-wrap:wrap;}
.trace-detail-panel .input{min-width:0;font-size:12px;height:30px;padding:4px 7px;}
.trace-detail-panel textarea.input{height:auto;min-height:72px;line-height:1.5;}
.trace-detail-panel .trace-card>.flex>.input{flex:1 1 180px;}
.trace-detail-panel .trace-card .entity-name{max-width:100%;}
.trace-detail-panel .wo-code{text-decoration:none;}
.trace-detail-panel .trace-card>div{overflow-wrap:anywhere;}

.document-library-panel .rp-page-head h1{font-size:16px;}
.resource-detail-panel .file-card{padding:10px 12px;}
.document-library-panel .file-card>b,.document-library-panel .file-card>.flex-between>b{font-size:13px;font-weight:500;}
.document-library-panel .file-card>.flex-between{gap:6px;flex-wrap:wrap;}
.document-library-panel .hov-row,.document-library-panel .attach-row{font-size:12px;line-height:1.5;padding:8px 0;gap:7px;border-bottom:1px solid #EDF1F6;}
.document-library-panel .hov-row:nth-of-type(even),.document-library-panel .attach-row:nth-of-type(even){background:#E3EEFF;}
.document-library-panel .hov-row>b,.document-library-panel .attach-name{font-size:12px;font-weight:400;overflow-wrap:anywhere;}
.document-library-panel .muted{font-size:11.5px!important;line-height:1.6;}
.document-library-panel .tag{font-size:10.5px;line-height:1.4;padding:1px 5px;}
.document-library-panel>.flex,.document-library-panel .file-card>.flex{flex-wrap:wrap;}
.document-library-panel .file-card span.flex{flex-wrap:wrap;}
.document-library-panel .attach-row{flex-wrap:wrap;}
.document-library-panel .attach-row>div[style]{min-width:150px;}
.document-library-panel .attach-paste{padding:10px 12px;border:1px dashed #C8D5E5;border-radius:8px;background:#F7F9FC;}
.document-library-panel .attach-paste b{font-size:12px;font-weight:500;}
.document-library-panel textarea.input{min-height:180px;height:auto;font-size:12px;line-height:1.6;padding:8px;}
.document-library-panel .tech-doc-view{font-size:12px;line-height:1.7;overflow-wrap:anywhere;max-width:100%;overflow-x:auto;}

.auxiliary-panel .rp-page-head h1{font-size:16px;overflow-wrap:anywhere;}
.resource-detail-panel .auxiliary-card{padding:8px 12px;}
.auxiliary-panel .notif-row,.auxiliary-panel .list-row{font-size:12px;line-height:1.5;padding:8px 0;gap:7px;flex-wrap:wrap;border-bottom:1px solid #EDF1F6;}
.auxiliary-panel .notif-row:nth-of-type(even),.auxiliary-panel .list-row:nth-of-type(even){background:#E3EEFF;}
.auxiliary-panel .notif-row>b,.auxiliary-panel .list-row>b{font-size:12px;font-weight:500;}
.auxiliary-panel .muted{font-size:11.5px!important;line-height:1.6;}
.auxiliary-panel .tag{font-size:10.5px;line-height:1.4;padding:1px 5px;}
.auxiliary-panel .qnum,.auxiliary-panel .num{font-size:12px;}
.auxiliary-panel .drillable{cursor:pointer;}
.auxiliary-panel .drillable>div[style]{min-width:0;overflow-wrap:anywhere;}
.auxiliary-panel .drillable .mt8{margin-top:5px!important;}
.auxiliary-panel .auxiliary-card>div[style*="text-align:center"]{padding:16px!important;}
.auxiliary-panel .btn-block{font-size:12px;}

.compact-entry-panel .rp-page-head h1{font-size:16px;}
.resource-detail-panel .compact-entry-card{padding:4px 12px;}
.compact-entry-panel .field{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:7px;padding:8px 0;margin:0;border-bottom:1px solid #EDF1F6;font-size:12px;line-height:1.5;color:#68778B;min-width:0;}
.compact-entry-panel .input{min-width:0;height:30px;padding:4px 7px;font-size:12px;width:100%;}
.compact-entry-panel textarea.input{height:auto;min-height:58px;line-height:1.5;}
.compact-entry-panel .compact-entry-card>.flex{gap:10px;flex-wrap:wrap;margin-top:0!important;}
.compact-entry-panel .compact-entry-card>.flex>.field{flex:1 1 180px!important;width:auto!important;grid-template-columns:85px minmax(0,1fr);}
.compact-entry-panel .muted{font-size:11.5px;line-height:1.6;margin:8px 0;}
@media(max-width:480px){.compact-entry-panel .field{grid-template-columns:88px minmax(0,1fr);}}

.worker-record-empty{padding:14px 8px;text-align:center;}
.login-wrap .pwd-eye:focus-visible{outline:2px solid #145FCC;outline-offset:2px;border-radius:4px;}
.worker-unified-page{font-size:12px;}
.worker-unified-page .card{padding:10px 12px;}
.worker-unified-page .muted{font-size:11.5px;line-height:1.6;}
.worker-unified-page .list-row{font-size:12px;line-height:1.6;gap:7px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid #EDF1F6;}
.worker-unified-page .list-row>div[style]{min-width:0;overflow-wrap:anywhere;}
.worker-unified-page .list-row>div.flex{flex-wrap:wrap;}
.worker-unified-page .list-row:nth-of-type(even){background:#E3EEFF;}
.worker-unified-page .qnum{font-size:12px;}
.worker-unified-page .tag{font-size:10.5px!important;padding:1px 5px;line-height:1.4;}
.worker-unified-page .input{height:30px;font-size:12px;padding:4px 7px;}
.worker-unified-page .kpi{padding:10px 12px;}
.worker-unified-page .k-label{font-size:11.5px;}
.worker-unified-page .k-value{font-size:20px;line-height:1.4;}
.worker-home-page .batch-tree-row{padding-top:7px;padding-bottom:7px;font-size:12px;}
.worker-home-page .tree-row-main{gap:5px;flex-wrap:wrap;}
.worker-home-page .tree-main-input{font-size:12px!important;}
.worker-mine-page .avatar{width:36px;height:36px;font-size:16px;flex-shrink:0;}
.worker-record-scroll{overflow-x:auto;max-width:100%;}
.worker-record-table{width:100%;min-width:620px;border-collapse:collapse;font-size:12px;white-space:nowrap;}
.worker-record-table th,.worker-record-table td{padding:7px 8px;text-align:left;border-bottom:1px solid #EDF1F6;line-height:1.5;}
.worker-record-table th{font-size:11px;font-weight:500;color:#748397;background:#F6F8FB;}
.worker-record-table .num-right{text-align:right;}
.worker-record-table tbody tr:nth-child(even){background:#E3EEFF;}
.worker-record-table tbody tr:hover{background:#DBEAFF;}
.worker-unified-page .card-head{display:flex;align-items:center;gap:7px;padding-bottom:8px;}
.worker-unified-page .card-title{font-size:13px;font-weight:500;color:#42556F;}

/* 产品详情：与订单详情共用信息层级，名称/值同排，不堆叠彩色标签。 */
.product-detail-panel .rp-page-head{align-items:center;gap:8px;flex-wrap:wrap;}
.product-detail-panel .rp-page-head h1{display:flex;align-items:center;gap:8px;font-size:18px;}
.product-detail-panel .pd-code{font-family:ui-monospace,Consolas,monospace;font-size:11px;color:#8592A4;font-weight:400;}
.product-detail-panel .pd-actions{display:flex;align-items:center;gap:6px;}
.product-detail-panel .rp-card{padding:0;overflow:hidden;}
.product-detail-panel .card-head{padding:8px 12px;gap:8px;flex-wrap:wrap;}
.product-detail-panel .card-head .btn:last-child{margin-left:auto;}
.product-detail-panel .card-title{font-size:13px;}
.product-detail-panel .btn{font-size:11.5px;min-height:25px;padding:4px 8px;line-height:1.2;white-space:nowrap;}
.product-detail-panel .pd-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;}
.product-detail-panel .pd-fields>div{display:flex;align-items:baseline;gap:8px;padding:7px 12px;min-width:0;border-bottom:1px solid #EDF1F6;}
.product-detail-panel .pd-fields dt{font-size:11px;color:#8592A4;white-space:nowrap;}
.product-detail-panel .pd-fields dd{font-size:12px;line-height:1.4;color:#46566C;margin:0;overflow-wrap:anywhere;}
.product-detail-panel .pd-fields .pd-created{grid-column:1/-1;}
.product-detail-panel .pd-head-note{font-size:11px;color:#8592A4;margin-left:auto;}
.product-detail-panel .pd-metrics{display:flex;align-items:center;gap:7px 16px;flex-wrap:wrap;padding:9px 12px;}
.product-detail-panel .pd-metrics>div{display:flex;align-items:baseline;gap:5px;white-space:nowrap;}
.product-detail-panel .pd-metrics span{font-size:11px;color:#8592A4;}
.product-detail-panel .pd-metrics b{font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;color:#145FCC;}
.product-detail-panel .pd-key-processes{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap;padding:9px 12px;}
.product-detail-panel .pd-footnote{font-size:11px;line-height:1.4;color:#8592A4;padding:0 12px 8px;}
.product-detail-panel .pd-route-label{margin-left:auto;max-width:100%;overflow-x:auto;}
.product-detail-panel .pd-wo-table .qnum{font-size:12px;}
.product-detail-panel .pd-route-scroll,.product-detail-panel .pd-table-scroll{max-width:100%;overflow-x:auto;}
.product-detail-panel .pd-route{display:flex;align-items:center;gap:8px;margin:0;padding:10px 12px;list-style:none;width:max-content;min-width:100%;box-sizing:border-box;}
.product-detail-panel .pd-route li{display:flex;align-items:center;gap:5px;white-space:nowrap;}
.product-detail-panel .pd-route li+li:before{content:'›';font-size:13px;color:#A0AEC0;margin-right:3px;}
.product-detail-panel .pd-step-no{font-size:10.5px;color:#8A97A8;font-variant-numeric:tabular-nums;}
.product-detail-panel .pd-step-meta{font-size:11px;color:#8592A4;}
.product-detail-panel .pd-wo-table{width:100%;min-width:515px;table-layout:fixed;border-collapse:collapse;}
.product-detail-panel .pd-wo-table th{text-align:left;white-space:nowrap;font-size:11px;font-weight:500;color:#8592A4;background:#F7F9FC;padding:7px 8px;}
.product-detail-panel .pd-wo-table td{font-size:12px;line-height:1.35;padding:6px 8px;white-space:nowrap;border-bottom:1px solid #EDF1F6;}
.product-detail-panel .pd-wo-table tbody tr:nth-child(even){background:#E3EEFF;}
.product-detail-panel .pd-wo-table tbody tr:hover{background:#DBEAFF;}
.product-detail-panel .pd-wo-link{border:0;background:none;padding:0;font-family:ui-monospace,Consolas,monospace;font-size:12px;color:#1F2937;cursor:pointer;text-decoration:none;}
.product-detail-panel .pd-wo-link:focus-visible{outline:2px solid #91B6DB;outline-offset:2px;}
.product-detail-panel .pd-wo-table .tag{font-size:10.5px;padding:1px 5px;line-height:1.3;}
.product-detail-panel .pd-count,.product-detail-panel .pd-date{color:#596579;font-variant-numeric:tabular-nums;}
.product-detail-panel .pd-empty{padding:14px 12px;font-size:12px;color:#8592A4;text-align:center;}
@media(max-width:480px){.product-detail-panel .pd-fields{grid-template-columns:minmax(0,1fr);}.product-detail-panel .pd-metrics{gap:7px 12px;}}

/* 操作日志：筛选卡、对齐列、完整明细与底部分页。 */
.admin-main .admin-logs-page .rp-card{padding:0;overflow:hidden;}
.admin-main .admin-logs-page .card-head{gap:8px;}
.admin-logs-page .logs-head-note{margin-left:auto;font-size:11px;color:#8592A4;}
.admin-logs-page .logs-filters{display:flex;align-items:flex-end;gap:8px;padding:10px 14px;flex-wrap:wrap;}
.admin-logs-page .logs-filter-field{display:flex;flex-direction:column;gap:4px;flex:1 1 140px;min-width:0;}
.admin-logs-page .logs-filter-field>span{font-size:11px;color:#8592A4;white-space:nowrap;}
.admin-logs-page .logs-filter-field.logs-keyword{flex:1.4 1 190px;}
.admin-logs-page .logs-filter-field.logs-date{flex:0 1 140px;min-width:135px;}
.admin-logs-page .logs-filter-field .input{width:100%;min-width:0;height:30px;font-size:12px;padding:4px 8px;}
.admin-logs-page .logs-filter-actions,.admin-logs-page .logs-page-actions{display:flex;align-items:center;gap:6px;white-space:nowrap;}
.admin-logs-page .logs-filter-actions{min-height:30px;}
.admin-logs-page .logs-table-scroll{max-width:100%;overflow-x:auto;}
.admin-logs-page .logs-table{width:100%;min-width:850px;table-layout:fixed;border-collapse:collapse;}
.admin-logs-page .logs-table th{text-align:left;background:#F7F9FC;color:#8592A4;font-size:11px;font-weight:500;padding:5px 9px;border-bottom:1px solid #E6EAF0;white-space:nowrap;}
.admin-logs-page .logs-table td{font-size:12px;line-height:1.3;padding:4px 9px;height:29px;box-sizing:border-box;border-bottom:1px solid #EDF1F6;vertical-align:top;}
.admin-logs-page .logs-table tbody tr:nth-child(even){background:#E3EEFF;}
.admin-logs-page .logs-table tbody tr:hover{background:#DBEAFF;}
.admin-logs-page .logs-time{font-variant-numeric:tabular-nums;color:#596579;white-space:nowrap;}
.admin-logs-page .logs-action{color:#46566C;white-space:nowrap;}
.admin-logs-page .logs-detail{color:#596579;word-break:normal;overflow-wrap:anywhere;white-space:pre-wrap;}
.admin-logs-page .logs-table .logs-empty{text-align:center;padding:20px 12px;color:#8592A4;}
.admin-logs-page .logs-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 14px;}
.admin-logs-page .logs-page-summary{font-size:11px;color:#8592A4;}
@media(max-width:768px){.admin-logs-page .logs-filter-field,.admin-logs-page .logs-filter-field.logs-keyword,.admin-logs-page .logs-filter-field.logs-date{flex:1 1 140px;}.admin-logs-page .logs-pager{flex-wrap:wrap;}.admin-logs-page .logs-head-note{font-size:10.5px;}}

/* 系统设置：分段导航、规则行、字典/权限/备份表格统一到报工卡片与底纹。 */
.admin-main .admin-system-page .sys-section-nav{display:flex;gap:4px;padding:5px;background:#E9EEF5;border-radius:10px;margin-bottom:14px;overflow-x:auto;}
.admin-main .admin-system-page .sys-section-nav button{flex:1;min-width:92px;border:0;background:transparent;color:#68778B;padding:9px 12px;white-space:nowrap;font-size:12px;border-radius:7px;cursor:pointer;}
.admin-main .admin-system-page .sys-section-nav button.active{color:#145FCC;background:#fff;box-shadow:0 1px 4px #1F293714;font-weight:600;}
.admin-main .admin-system-page .sys-card{padding:0;margin:0 0 12px;border:1px solid #E3E9F1;border-radius:10px;box-shadow:none;overflow:hidden;background:#fff;}
.admin-main .admin-system-page .sys-card .card-head{padding:11px 14px;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #E9EDF3;background:#fff;}
.admin-main .admin-system-page .sys-card .card-title{font-size:14px;font-weight:600;color:#26364B;line-height:1.3;}
.admin-main .admin-system-page .sys-head-note{font-size:11px;color:#8592A4;margin-left:auto;}
.admin-main .admin-system-page .sys-rule-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 14px;min-height:44px;border-bottom:1px solid #EDF1F6;cursor:pointer;margin:0;}
.admin-main .admin-system-page .sys-rule-row:nth-child(even){background:#E3EEFF;}
.admin-main .admin-system-page .sys-rule-row:hover{background:#DBEAFF;}
.admin-main .admin-system-page .sys-rule-text{display:flex;flex-direction:column;gap:2px;min-width:0;}
.admin-main .admin-system-page .sys-rule-text b{font-size:12px;font-weight:500;color:#26364B;line-height:1.35;}
.admin-main .admin-system-page .sys-rule-text i{font-size:11px;font-style:normal;color:#8592A4;line-height:1.35;}
.admin-main .admin-system-page .sys-rule-row input[type=checkbox]{width:16px;height:16px;flex-shrink:0;accent-color:#145FCC;}
.admin-main .admin-system-page .sys-inline-field{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#51647D;white-space:nowrap;}
.admin-main .admin-system-page .sys-inline-field .input{width:72px;height:28px;min-height:28px;padding:3px 8px;font-size:12px;}
.admin-main .admin-system-page .sys-footnote{padding:9px 14px;font-size:11px;color:#8592A4;line-height:1.5;background:#FAFBFD;}
.admin-main .admin-system-page .sys-editor{padding:12px 14px;}
.admin-main .admin-system-page .sys-editor textarea{width:100%;font-size:12px;line-height:1.6;min-height:150px;resize:vertical;}
.admin-main .admin-system-page .sys-inline-add{display:flex;gap:8px;align-items:center;padding:10px 14px;background:#FAFBFD;border-bottom:1px solid #E9EDF3;}
.admin-main .admin-system-page .sys-inline-add .input{max-width:320px;}
/* 损耗原因字典：与同页不良品分类表同一套表格风格，逐行可编辑顺序/原因/启用 */
.admin-main .admin-system-page .sys-loss-table th,
.admin-main .admin-system-page .sys-loss-table td{white-space:normal;}
.admin-main .admin-system-page .sys-loss-table col:nth-child(1){width:88px;}
.admin-main .admin-system-page .sys-loss-table td{padding:4px 12px;height:36px;}
.admin-main .admin-system-page .sys-loss-table .input{width:100%;min-width:0;height:28px;min-height:28px;font-size:12px;padding:3px 8px;}
.admin-main .admin-system-page .sys-loss-table .input.num{text-align:center;font-variant-numeric:tabular-nums;}
.admin-main .admin-system-page .sys-loss-toggle{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:12px;color:#3F4C5F;cursor:pointer;}
.admin-main .admin-system-page .sys-loss-toggle input[type=checkbox]{width:15px;height:15px;margin:0;accent-color:#145FCC;}
.admin-main .admin-system-page .sys-loss-table .sys-actions-col{text-align:left;}
.admin-main .admin-system-page .sys-loss-table .btn-sm{min-height:24px;padding:3px 9px;font-size:12px;line-height:1.2;}
.admin-main .admin-system-page .sys-table-scroll{max-width:100%;overflow:auto;}
.admin-main .admin-system-page .sys-table{width:100%;min-width:720px;border-collapse:collapse;table-layout:fixed;font-size:12px;}
.admin-main .admin-system-page .sys-table th{font-size:11px;font-weight:500;color:#8592A4;background:#F7F9FC;text-align:left;padding:8px 12px;border-bottom:1px solid #E5EBF3;white-space:nowrap;}
.admin-main .admin-system-page .sys-table td{font-size:12px;line-height:1.35;padding:5px 12px;height:36px;box-sizing:border-box;border-bottom:1px solid #EDF1F6;vertical-align:middle;white-space:nowrap;}
.admin-main .admin-system-page .sys-table tbody tr:nth-child(even){background:#E3EEFF;}
.admin-main .admin-system-page .sys-table tbody tr:hover{background:#DBEAFF;}
.admin-main .admin-system-page .sys-table .input{height:28px;min-height:28px;padding:3px 8px;font-size:12px;}
.admin-main .admin-system-page .sys-actions-col{width:130px;}
.admin-main .admin-system-page .sys-row-actions{display:flex;gap:5px;align-items:center;}
.admin-main .admin-system-page .sys-table .qnum{font-size:12px;color:#1F2937;}
.admin-main .admin-system-page .sys-perm-table{min-width:820px;}
.admin-main .admin-system-page .sys-perm-name{width:230px;color:#354B68;}
.admin-main .admin-system-page .sys-perm-check{text-align:center;}
.admin-main .admin-system-page .sys-perm-check input{width:15px;height:15px;accent-color:#145FCC;}
.admin-main .admin-system-page .sys-table .perm-group-row td{background:#F2F6FC;color:#51647D;font-size:11.5px;font-weight:600;height:30px;}
.admin-main .admin-system-page .sys-card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#FAFBFD;border-top:1px solid #E9EDF3;}
.admin-main .admin-system-page .sys-card-foot .muted{font-size:11px;}
.admin-main .admin-system-page .sys-card .btn,.admin-main .admin-system-page .sys-save-bar .btn{padding:4px 9px;min-height:26px;line-height:1.2;font-size:12px!important;}
.admin-main .admin-system-page .sys-editor textarea{padding:8px 10px;}
.admin-main .admin-system-page .sys-health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px 14px 0;}
.admin-main .admin-system-page .sys-health-item{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid #E6EAF0;border-radius:8px;background:#FBFCFE;min-width:0;}
.admin-main .admin-system-page .sys-health-label{font-size:11.5px;color:#68778B;white-space:nowrap;}
.admin-main .admin-system-page .sys-health-value{font-size:15px;font-weight:600;color:#1F2937;font-variant-numeric:tabular-nums;white-space:nowrap;}
.admin-main .admin-system-page .sys-health-item .tag{margin-left:auto;font-size:10.5px;line-height:1.3;padding:1px 6px;}
.admin-main .admin-system-page .sys-data-row{display:flex;flex-wrap:wrap;gap:8px 22px;padding:12px 14px;margin-top:10px;border-top:1px solid #EDF1F6;}
.admin-main .admin-system-page .sys-data-row>span{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap;}
.admin-main .admin-system-page .sys-data-row i{font-size:11px;font-style:normal;color:#8592A4;}
.admin-main .admin-system-page .sys-data-row b{font-size:12px;font-weight:600;color:#1F2937;font-variant-numeric:tabular-nums;}
.admin-main .admin-system-page .sys-backup-scroll{max-height:340px;}
.admin-main .admin-system-page .sys-backup-scroll thead th{position:sticky;top:0;z-index:1;}
.admin-main .admin-system-page .sys-file{font-family:ui-monospace,Consolas,monospace;font-size:11.5px;color:#354B68;overflow:hidden;text-overflow:ellipsis;}
.admin-main .admin-system-page .sys-empty{padding:18px 14px;text-align:center;font-size:12px;color:#8592A4;}
.admin-main .admin-system-page .sys-save-bar{position:sticky;bottom:10px;z-index:5;display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:9px 14px;background:#fff;border:1px solid #E3E9F1;border-radius:10px;box-shadow:0 2px 10px #1F293714;}
.admin-main .admin-system-page .sys-save-bar .muted{font-size:11px;}
@media(max-width:900px){.admin-main .admin-system-page .sys-health-grid{grid-template-columns:minmax(0,1fr);}}
@media(max-width:768px){.admin-main .admin-system-page .sys-head-note{margin-left:0;}.admin-main .admin-system-page .sys-card .card-head{flex-wrap:wrap;}.admin-main .admin-system-page .sys-data-row{gap:6px 14px;}.admin-main .admin-system-page .sys-save-bar{flex-wrap:wrap;justify-content:space-between;}}

/* 报工页未读提醒：只出现在报工页标题下方，不再作为全局横条出现在其他页面 */
.mes-report-page .report-notif-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 4px;padding:7px 12px;background:var(--warning-light);border:1px solid #F5D9A8;border-left:3px solid var(--warning);border-radius:8px;font-size:12px;color:#7A5A12;cursor:pointer;}
.mes-report-page .report-notif-inline:hover{background:#FFF0CE;}
.mes-report-page .report-notif-inline .notif-lead{display:inline-flex;align-items:center;gap:6px;font-weight:600;}
.mes-report-page .report-notif-inline .notif-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:10px;background:#fff;border:1px solid #F0DCB4;font-size:11.5px;}
.mes-report-page .report-notif-inline .notif-more{margin-left:auto;color:#9A7B2E;white-space:nowrap;}

/* 页面主标题与说明同行：说明文字保持原有字号与颜色，不做放大处理 */
.mes-report-page .rp-page-head h1{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;}
.mes-report-page .rp-page-head h1>.sub{margin:0;font-size:12px;font-weight:400;color:var(--rp-text-3);letter-spacing:normal;}
.admin-main .admin-review-page .rp-page-head h1>.sub{white-space:nowrap;}
.admin-main .admin-report-records .rp-page-head h1>.sub,
.admin-main .admin-orders-page .rp-page-head h1>.sub,
.admin-main .admin-wo-page .rp-page-head h1>.sub{font-size:12px;font-weight:400;color:#8A97A8;}
.base-redesign .rp-page-head h1>.sub{font-size:12px;font-weight:400;color:#8A97A8;}
