/* 数据中心（已并入 index.html 的 #bossView，作为老板看板内容）
 * 注意：不要在此写 body / * 等全局选择器，会污染主系统页面样式 —— 全局规则由 styles.css 统一提供。 */
/* ===== 顶栏 ===== */
/* 标题（📊 老板看板 / 金蝶 186 账套）已按 BOSS 要求去掉，这条只剩右侧同步工具 */
.dc-top {
    display: flex; align-items: center; justify-content: flex-end;
    padding: 8px 20px; background: #fff; border: 1px solid #e5e7eb; border-radius: 6px 6px 0 0;
}
.dc-top-r { display: flex; align-items: center; gap: 10px; }
.dc-sync-info { font-size: 12px; color: #868e96; }

/* ===== 按钮 ===== */
.dc-btn {
    border: 1px solid #d1d5db; background: #fff; color: #374151;
    padding: 6px 14px; border-radius: 6px; cursor: pointer;
    font-size: 13px; font-family: inherit; transition: all .15s;
}
.dc-btn:hover { background: #f3f4f6; }
.dc-btn-primary { background: #374151; border-color: #374151; color: #fff; }
.dc-btn-primary:hover { background: #4b5563; }
.dc-btn:disabled { opacity: .55; cursor: not-allowed; }

/* ===== 类型卡片 ===== */
.dc-types {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(178px, 1fr));
    gap: 10px; padding: 14px 20px 4px;
}
.dc-type {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
    padding: 11px 13px; cursor: pointer; transition: all .15s;
    border-left: 3px solid #e5e7eb;
}
.dc-type:hover { box-shadow: 0 2px 10px rgba(17,24,39,.08); transform: translateY(-1px); }
.dc-type.active { border-left-color: #374151; background: #fafbfc; }
.dc-type-name { font-size: 13px; font-weight: 600; display: flex; align-items: center; gap: 5px; }
.dc-type-tag {
    font-size: 10px; background: #e9ebee; color: #374151;
    padding: 1px 5px; border-radius: 3px; font-weight: 400;
}
.dc-type-rows { font-size: 20px; font-weight: 700; color: #374151; margin: 5px 0 2px; }
.dc-type-rows small { font-size: 11px; font-weight: 400; color: #868e96; margin-left: 4px; }
.dc-type-date { font-size: 11px; color: #868e96; }
.dc-type-warn { font-size: 11px; color: #c92a2a; margin-top: 3px; }

/* 页签已移入左侧导航，pane 现在是独立卡片，四角都要圆 */
.dc-pane { display: none; background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; margin: 14px 20px 20px; padding: 14px; }
.dc-pane.active { display: block; }

/* ===== 筛选 ===== */
.dc-filter { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.dc-filter label { display: flex; align-items: center; gap: 5px; font-size: 12px; color: #495057; }
.dc-filter input, .dc-filter select {
    border: 1px solid #d1d5db; border-radius: 5px; padding: 5px 8px;
    font-size: 12px; font-family: inherit; color: #212529; background: #fff;
}
.dc-filter input[type="text"] { width: 280px; }
.dc-count { font-size: 12px; color: #868e96; margin-left: auto; }

/* ===== 表格 ===== */
.dc-table-wrap { overflow: auto; max-height: 60vh; border: 1px solid #e5e7eb; border-radius: 6px; }
.dc-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.dc-table thead th {
    background: #fafbfc; color: #374151; font-weight: 600;
    padding: 8px 10px; text-align: left; border-bottom: 1px solid #e5e7eb;
    position: sticky; top: 0; z-index: 2; white-space: nowrap;
}
.dc-table tbody td { padding: 7px 10px; border-bottom: 1px solid #f3f4f6; white-space: nowrap; }
.dc-table tbody tr:hover { background: #fafbfc; }
/* 数字列：表头与下方数字统一居中对齐，列宽变化时数字始终在正下方 */
.dc-table thead th.dc-num { text-align: center; }
.dc-empty { text-align: center; color: #868e96; padding: 30px; }
.dc-num { text-align: center; font-variant-numeric: tabular-nums; }
.dc-bad { color: #c92a2a; font-weight: 600; }
.dc-good { color: #374151; font-weight: 600; }
.dc-warn { color: #e8590c; font-weight: 600; }
/* 采购订单档「已关闭」的订单：看得见但不算欠交，用灰标签跟真欠交区分 */
.dc-po-closed {
    display: inline-block; padding: 1px 7px; border-radius: 9px;
    background: #f1f3f5; color: #868e96; font-size: 11.5px; white-space: nowrap;
}
.dc-muted { color: #adb5bd; }
/* 采购订单档：三列数字还没拉到时的提示条 */
.dc-po-stale {
    margin: 0 0 8px; padding: 8px 12px; border-radius: 6px;
    background: #fff9db; border: 1px solid #ffe066; color: #8a6d1a; font-size: 12.5px; line-height: 1.6;
}

/* 台账数字溯源：入库量/出库量可点击 */
.dc-drill { cursor: pointer; }
.dc-drill:hover { background: #f3f4f6; text-decoration: underline; }
/* 精确查不到时列出的相近物料，点一下就查它 */
.dc-pick { color: #374151; text-decoration: underline; cursor: pointer; margin: 0 2px; }
.dc-pick:hover { color: #111827; }
/* 溯源弹窗卡片上的物料名（标题）居中 */
#dcDrillTitle { text-align: center; }
.dc-drill-sub { font-size: 12px; color: #495057; margin-top: 4px; }
.dc-drill-sub b { color: #374151; }
.dc-layout { display: block; }

/* ===== 左侧单栏手风琴导航（一级菜单点击展开二级） ===== */
/* 2026-10-21 BOSS 要求：导航从页面最顶端开始、底色深蓝 #000080；
   2026-10-24 顶栏整栏取消（功能收进左下角设置），品牌行高度改为固定值，不再实测顶栏高度 */
:root { --dc-nav-w: 132px; --dc-brand-h: 48px; }

.dc-nav {
    position: fixed; left: 0; top: 0; bottom: 0; width: var(--dc-nav-w); z-index: 120;
    background: #000080; color: rgba(255, 255, 255, .78);
    display: flex; flex-direction: column;
    transition: transform .22s ease;
}
/* 品牌行高度 --dc-brand-h */
.dc-nav-brand {
    display: flex; align-items: center; justify-content: space-between; gap: 2px;
    height: var(--dc-brand-h); padding: 0 6px 0 12px; box-sizing: border-box;
    border-bottom: 1px solid rgba(255, 255, 255, .16);
}
.dc-nav-title {
    font-size: 13px; font-weight: 700; color: #fff; letter-spacing: .3px; white-space: nowrap;
}
.dc-nav-collapse {
    border: none; background: none; cursor: pointer; color: rgba(255, 255, 255, .6);
    font-size: 16px; font-family: inherit; line-height: 1; padding: 4px 6px; border-radius: 6px;
}
.dc-nav-collapse:hover { background: rgba(255, 255, 255, .16); color: #fff; }
.dc-nav-body { flex: 1 1 auto; overflow-y: auto; padding: 6px 0; }
.dc-nav-1st {
    width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 6px;
    padding: 11px 14px; border: none; background: none; cursor: pointer;
    font-size: 13px; color: rgba(255, 255, 255, .9); font-family: inherit; text-align: left;
}
.dc-nav-1st:hover { background: rgba(255, 255, 255, .10); }
.dc-nav-1st.active { color: #fff; font-weight: 700; background: rgba(255, 255, 255, .06); }
.dc-nav-arrow {
    width: 0; height: 0; flex: 0 0 auto;
    border-left: 4px solid transparent; border-right: 4px solid transparent;
    border-top: 4px solid currentColor;
    opacity: .6; transition: transform .2s ease;
}
.dc-nav-group.open .dc-nav-arrow { transform: rotate(180deg); }
.dc-nav-sub { display: none; padding: 2px 0 8px; }
.dc-nav-group.open .dc-nav-sub { display: block; }
.dc-nav-2nd {
    display: block; width: 100%; text-align: left;
    padding: 8px 12px 8px 24px; border: none; background: none; cursor: pointer;
    font-size: 12px; color: rgba(255, 255, 255, .72); font-family: inherit;
}
.dc-nav-2nd:hover { color: #fff; background: rgba(255, 255, 255, .10); }
.dc-nav-2nd.active {
    color: #fff; font-weight: 600; background: rgba(255, 255, 255, .18);
    box-shadow: inset 3px 0 0 #fff;
}

/* 数据大屏：独立一档放在「车间数据」上面，不参与手风琴展开 */
.dc-nav-board { justify-content: flex-start; border-bottom: 1px solid rgba(255, 255, 255, .10); }
/* 导航左下角：设置（原顶栏全部功能的入口） */
.dc-nav-foot {
    flex: 0 0 auto; padding: 6px;
    border-top: 1px solid rgba(255, 255, 255, .16);
}
.dc-nav-set {
    width: 100%; padding: 10px 10px; border: none; border-radius: 6px;
    background: none; cursor: pointer; text-align: left;
    font-size: 13px; font-family: inherit; color: rgba(255, 255, 255, .85);
}
.dc-nav-set:hover { background: rgba(255, 255, 255, .12); color: #fff; }

/* 导航占满最左一整列：内容区整体右移（顶栏已于 2026-10-24 取消，功能收进左下角设置） */
body.role-boss .main-content { max-width: none; margin: 0; padding: 18px 0 20px; }

.dc-main { flex: 1 1 auto; min-width: 0; margin-left: var(--dc-nav-w); transition: margin-left .22s ease; }
/* 整栏收起：导航滑出屏幕，内容区与顶栏贴左，左上角出现展开按钮 */
/* 导航是 fixed（脱离文档流），让内容区按满宽排 */
body.nav-collapsed .dc-nav { transform: translateX(-100%); }
body.nav-collapsed .dc-main { margin-left: 0; padding-left: 44px; }

/* 视图切换（后台数据 / 员工后台）：2026-10-29 BOSS 要求从设置弹窗挪到工厂数据后台右上角。
   用 fixed 悬浮，不参与文档流，所以不改变任何现有布局尺寸；滚动时也固定在右上角。 */
.dc-role-top {
    position: fixed;
    top: 0;
    right: 12px;
    z-index: 300;
    display: flex;
    align-items: center;
    padding: 2px;
    background: rgba(255, 255, 255, .96);
    border: 1px solid #e5e7eb;
    border-top: none;
    border-radius: 0 0 999px 999px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .08);
}
.dc-role-top .role-switch { background: #f3f4f6; border-radius: 999px; }
.dc-role-top .role-btn { padding: 3px 11px; font-size: 12px; }

.dc-nav-expand {
    display: none; position: fixed; left: 10px; top: 12px; z-index: 130;
    width: 32px; height: 32px; border-radius: 8px;
    border: 1px solid #e5e7eb; background: #fff; cursor: pointer;
    font-size: 16px; color: #495057; font-family: inherit; line-height: 1;
    align-items: center; justify-content: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .08);
}
body.nav-collapsed .dc-nav-expand { display: flex; }

/* ===== 设置（原顶栏功能收纳）===== */
/* 员工视图没有左侧导航，设置入口固定在左下角；老板视图收起导航后也用它兜底 */
.staff-set-btn, .boss-set-float {
    position: fixed; left: 12px; bottom: 14px; z-index: 130;
    padding: 8px 14px; border-radius: 20px; cursor: pointer;
    border: 1px solid #e5e7eb; background: #fff; color: #374151;
    font-size: 13px; font-family: inherit; white-space: nowrap;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .08);
}
.staff-set-btn:hover, .boss-set-float:hover { background: #f9fafb; border-color: #9ca3af; }
.boss-set-float { display: none; }
body.nav-collapsed .boss-set-float { display: block; }

.set-modal .modal-body { padding: 16px 20px 12px; }
.set-user { display: flex; justify-content: center; padding-bottom: 14px; }
.set-block { margin-bottom: 14px; }
.set-block-title { font-size: 12px; color: #6b7280; margin-bottom: 6px; }
.set-role-switch { width: 100%; }
.set-role-switch .role-btn { flex: 1 1 0; text-align: center; padding: 6px 10px; }
.set-actions { border-top: 1px solid #eef1f4; padding-top: 6px; }
.set-item {
    width: 100%; display: flex; align-items: center; justify-content: space-between;
    padding: 11px 4px; border: none; border-bottom: 1px solid #f3f4f6;
    background: none; cursor: pointer; text-align: left;
    font-size: 13px; color: #374151; font-family: inherit;
}
.set-item:hover { background: #f9fafb; }
.set-item:last-child { border-bottom: none; }
.set-item-arrow { color: #adb5bd; font-size: 15px; }
.set-item-danger { color: #e03131; }
.set-foot { text-align: center; font-size: 11px; color: #adb5bd; padding-top: 8px; }

/* ===== TMS 表单 / 弹窗 ===== */
.tms-modal-title { font-size: 15px; font-weight: 600; margin-bottom: 6px; color: #374151; }
.tms-form { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.tms-field { display: flex; flex-direction: column; gap: 4px; }
.tms-field label { font-size: 12px; color: #495057; }
.tms-ctrl {
    padding: 7px 9px; border: 1px solid #d1d5db; border-radius: 6px;
    font-family: inherit; font-size: 13px; width: 100%; box-sizing: border-box; background: #fff; color: #222;
}
.tms-ctrl:focus { outline: none; border-color: #374151; }
.tms-field textarea.tms-ctrl { min-height: 56px; resize: vertical; }
a.tms-edit, a.tms-del, a.tms-podbtn { color: #374151; cursor: pointer; margin-right: 8px; }
a.tms-del { color: #c92a2a; }

/* 列宽按内容收紧（不撑满整行，消除大段空白）；拖拽由 JS 锁定布局 */
.dc-table--auto { width: auto; }
/* 列宽拖拽热区：表头右缘 8px，按住左右拖 */
.dc-table thead th::after {
    content: ''; position: absolute; right: -4px; top: 0; width: 8px; height: 100%;
    cursor: col-resize; z-index: 3;
}
.dc-table thead th:hover::after { background: rgba(17, 24, 39, .12); }

/* ===== 分页 ===== */
.dc-pager { display: flex; align-items: center; gap: 6px; margin-top: 10px; flex-wrap: wrap; }
.dc-pager button {
    border: 1px solid #d1d5db; background: #fff; padding: 4px 10px;
    border-radius: 5px; cursor: pointer; font-size: 12px; font-family: inherit;
}
.dc-pager button.active { background: #374151; color: #fff; border-color: #374151; }
.dc-pager button:disabled { opacity: .45; cursor: not-allowed; }
.dc-pager span { font-size: 12px; color: #868e96; }

/* ===== 面板 ===== */
.dc-panel { border: 1px solid #e5e7eb; border-radius: 6px; overflow: hidden; }
.dc-panel-head { padding: 11px 14px; background: #fafbfc; border-bottom: 1px solid #e5e7eb; }
.dc-panel-title { font-size: 13px; font-weight: 600; color: #374151; }
.dc-panel-sub { font-size: 11px; color: #868e96; margin-top: 3px; }

/* ===== 出品率 ===== */
.dc-yield-sum { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
/* 标签和数字横排一行（BOSS 2026-10-21），baseline 对齐让 11px 标签和 19px 数字落在同一基线上 */
.dc-y-card {
    background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
    padding: 8px 14px; border-left: 3px solid #374151;
    display: flex; align-items: baseline; gap: 8px;
}
.dc-y-label { font-size: 11px; color: #868e96; white-space: nowrap; }
.dc-y-value { font-size: 19px; font-weight: 700; color: #374151; white-space: nowrap; }

/* ③ 车间交接记录：三条生产线的汇总卡片 —— 整体缩小，三张排一行（BOSS 2026-10-29） */
.dc-y-card.dc-hv-card {
    display: block;
    flex: 1 1 0;
    min-width: 0;
    padding: 5px 11px;
    line-height: 1.55;
}
.dc-hv-head { font-size: 12px; font-weight: 700; color: #212529; white-space: nowrap; }
.dc-hv-head span { margin-left: 5px; font-size: 11px; font-weight: 400; color: #868e96; }
.dc-hv-body { font-size: 11.5px; color: #495057; white-space: nowrap; }
.dc-hv-body b { font-size: 13px; font-weight: 700; color: #212529; }
.dc-hv-bad, .dc-hv-bad b { color: #e03131; }
.dc-hv-by { margin-left: 3px; font-size: 10.5px; color: #868e96; }
/* 表格里的空值占位（如调拨单没有生产订单号）*/
.dc-na { color: #adb5bd; }

/* ===== 提示 ===== */
.dc-toast {
    position: fixed; left: 50%; bottom: 34px; transform: translateX(-50%) translateY(20px);
    background: #212529; color: #fff; padding: 9px 20px; border-radius: 6px;
    font-size: 13px; opacity: 0; pointer-events: none; transition: all .25s; z-index: 99;
}
.dc-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.dc-loading { padding: 20px; color: #868e96; }

/* ===== 差异台账 ===== */
.dc-ledger-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 2px; }
.dc-stage-btns { display: flex; gap: 8px; flex-wrap: wrap; width: 100%; }
.dc-stage {
    border: 1px solid #d1d5db; background: #fafbfc; color: #495057;
    padding: 7px 14px; border-radius: 6px; font-size: 13px; cursor: pointer;
    transition: all .15s;
}
.dc-stage:hover { background: #f3f4f6; }
.dc-stage.active { background: #374151; border-color: #374151; color: #fff; font-weight: 600; }
/* 查询方式分段按钮：按物料查 / 按时间段查 */
.dc-lgr-modes { display: inline-flex; background: #f3f4f6; border-radius: 6px; padding: 2px; gap: 2px; }
/* ③ 车间交接记录：按生产车间筛选 */
.dc-lgr-line { display: flex; align-items: center; gap: 6px; font-size: 13px; color: #495057; }
.dc-lgr-line select {
    padding: 5px 8px; border: 1px solid #d1d5db; border-radius: 6px;
    font-size: 13px; color: #374151; background: #fff; font-family: inherit; cursor: pointer;
}
.dc-lgr-mode {
    border: none; background: none; font-family: inherit; font-size: 12px;
    color: #6b7280; padding: 6px 14px; border-radius: 5px; cursor: pointer; transition: all .15s;
}
.dc-lgr-mode:hover { color: #111827; }
.dc-lgr-mode.active {
    background: #fff; color: #111827; font-weight: 600;
    box-shadow: 0 1px 3px rgba(17,24,39,.10), inset 0 0 0 1px #e5e7eb;
}
.dc-filter-inline { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.dc-filter-inline label { display: flex; align-items: center; gap: 5px; font-size: 12px; color: #495057; }
.dc-filter-inline input { border: 1px solid #d1d5db; border-radius: 5px; padding: 5px 8px; font-size: 12px; }
.dc-filter-inline input[type="text"] { width: 180px; }

/* ===== 日期范围选择器（月历 + 快捷按钮） ===== */
.dc-dr { position: relative; }
.dc-dr-box {
    display: flex; align-items: center; gap: 8px; min-width: 215px;
    border: 1px solid #d1d5db; border-radius: 5px; padding: 5px 9px;
    font-size: 12px; color: #212529; background: #fff; cursor: pointer; transition: border-color .15s;
}
.dc-dr-box:hover { border-color: #9ca3af; }
.dc-dr-box.has { color: #111827; font-weight: 500; }
.dc-dr-text { flex: 1 1 auto; white-space: nowrap; }
.dc-dr-ico { color: #9ca3af; font-size: 10px; }
.dc-dr-raw { display: none; }
.dc-dr-pop {
    display: none; position: absolute; top: calc(100% + 6px); left: 0; z-index: 60;
    background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
    box-shadow: 0 8px 24px rgba(17,24,39,.12); padding: 10px; gap: 10px;
}
.dc-dr-pop.show { display: flex; }
.dc-dr-cal { width: 248px; }
.dc-dr-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.dc-dr-head span { font-size: 13px; font-weight: 600; color: #111827; }
.dc-dr-nav {
    border: none; background: none; cursor: pointer; font-size: 16px;
    color: #6b7280; padding: 2px 9px; border-radius: 4px; font-family: inherit; line-height: 1.2;
}
.dc-dr-nav:hover { background: #f3f4f6; color: #111827; }
.dc-dr-week { display: grid; grid-template-columns: repeat(7, 1fr); }
.dc-dr-week span { text-align: center; font-size: 11px; color: #9ca3af; padding: 4px 0; }
.dc-dr-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.dc-dr-day { text-align: center; font-size: 12px; padding: 5px 0; border-radius: 4px; cursor: pointer; color: #374151; }
.dc-dr-day:hover { background: #f3f4f6; }
.dc-dr-day.mute { color: #e5e7eb; cursor: default; }
.dc-dr-day.mute:hover { background: none; }
.dc-dr-day.inrange { background: #f3f4f6; }
.dc-dr-day.hover { background: #e5e7eb; }
.dc-dr-day.edge { background: #374151; color: #fff; font-weight: 600; }
.dc-dr-tip { font-size: 11px; color: #9ca3af; text-align: center; margin-top: 7px; }
/* 日期选好后提醒用户去点「查询」：一圈淡描边，点过就撤掉 */
.dc-btn-attn { box-shadow: 0 0 0 3px rgba(55,65,81,.16); }
.dc-dr-side { display: flex; flex-direction: column; gap: 3px; border-left: 1px solid #f0f1f3; padding-left: 10px; }
.dc-dr-side button {
    border: none; background: none; text-align: left; font-family: inherit;
    font-size: 12px; color: #4b5563; padding: 5px 12px; border-radius: 5px; cursor: pointer; white-space: nowrap;
}
.dc-dr-side button:hover { background: #f3f4f6; color: #111827; }
.dc-dr-side .dc-dr-all { color: #9ca3af; margin-top: 2px; }
.dc-ledger-note { font-size: 11px; color: #868e96; margin-top: 10px; padding-left: 2px; }

/* ===== 仓储日报（三维度：按仓库 / 按供应商 / 按客户） ===== */
.dc-rep-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 14px 20px 10px; }
.dc-rep-bar label { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #495057; }
.dc-rep-bar input[type="date"] {
    padding: 5px 9px; border: 1px solid #d1d5db; border-radius: 6px;
    font-family: inherit; font-size: 12px; color: #374151; background: #fff;
}
.dc-rep-bar input[type="date"]:focus { outline: none; border-color: #9ca3af; }

/* 红色小字：建设期数据溯源说明（正式上线后统一去掉，样式一并删） */
.dc-src {
    margin: 0 20px 10px; padding: 7px 11px; border-radius: 6px;
    font-size: 11px; line-height: 1.75; color: #dc2626;
    background: #fef2f2; border: 1px solid #fecaca;
}
.dc-pane > .dc-src { margin: 0 0 10px; }
.dc-src code { background: #fff1f2; padding: 0 3px; border-radius: 3px; font-size: 11px; }
.dc-src b { color: #b91c1c; }
.dc-src-hot { color: #b91c1c; font-weight: 700; text-decoration: underline dotted; }

/* 类型标签：采购入库 / 生产入库 / 销售出库 / 领用出库 */
.dc-type-tag {
    display: inline-block; font-size: 10px; line-height: 1.6; padding: 0 7px;
    border-radius: 9px; border: 1px solid #e5e7eb; background: #f9fafb; color: #4b5563;
    white-space: nowrap;
}
.dc-type-tag.prod { border-color: #dbeafe; background: #eff6ff; color: #1d4ed8; }
.dc-type-tag.pick { border-color: #fde68a; background: #fffbeb; color: #b45309; }

/* 占比：数字 + 细进度条 */
.dc-ratio { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.dc-ratio-bar { width: 62px; height: 6px; border-radius: 3px; background: #f1f3f5; overflow: hidden; }
.dc-ratio-bar i { display: block; height: 100%; background: #374151; }
.dc-rep-amted { color: #b45309; }        /* 估算金额：金色标记，和真实金额区分 */
.dc-table tfoot td {
    background: #fafbfc; font-weight: 700; color: #111827;
    border-top: 1px solid #e5e7eb;
}

/* 穿透弹窗：单价来源标签（建设期做数据溯源用，正式上线后连同 .dc-src 一起删） */
.dc-srcs-kd { font-size: 11px; color: #047857; background: #ecfdf5; border: 1px solid #a7f3d0; padding: 0 6px; border-radius: 9px; }
.dc-srcs-est { font-size: 11px; color: #b45309; background: #fffbeb; border: 1px solid #fde68a; padding: 0 6px; border-radius: 9px; }
.dc-srcs-no { font-size: 11px; color: #b91c1c; background: #fef2f2; border: 1px solid #fecaca; padding: 0 6px; border-radius: 9px; }
.dc-mat-no { font-size: 11px; color: #9ca3af; margin-left: 5px; }
.dc-drill-warn { color: #b91c1c; font-weight: 700; }
.dc-srcs-calc { font-size: 11px; color: #1d4ed8; background: #eff6ff; border: 1px solid #bfdbfe; padding: 0 6px; border-radius: 9px; }

/* 建设期列级溯源：表头字段下面那行红字（正式上线后连同 .dc-src 一起删） */
.dc-table thead th .dc-th-src {
    display: block; margin-top: 3px;
    font-size: 10.5px; font-weight: 400; line-height: 1.35;
    color: #dc2626; white-space: normal;
}
.dc-table thead th .dc-th-src b { font-weight: 600; }
.dc-table thead th .dc-th-src .dc-src-hot { font-size: 10.5px; }

/* ===== 建设期溯源标注 · 一键隐藏（开关在 src-note.js；正式上线把 SRC_ON 改成 false）===== */
html.src-off .dc-src,
html.src-off .dc-th-src,
html.src-off .dc-srcs-kd,
html.src-off .dc-srcs-est,
html.src-off .dc-srcs-calc,
html.src-off .dc-srcs-no,
html.src-off .dc-src-hot,
html.src-off .dc-rep-amted { display: none !important; }

/* 右下角「溯源 开/关」小标签（正式上线后 src-note.js 里 SRC_ON=false 时不再生成） */
.src-toggle { position: fixed; right: 12px; bottom: 12px; z-index: 2000; font: 11px/1.4 system-ui, "Microsoft YaHei", sans-serif; padding: 5px 10px; border-radius: 12px; border: 1px solid #fca5a5; background: #fef2f2; color: #b91c1c; cursor: pointer; opacity: .7; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.src-toggle:hover { opacity: 1; }
.src-toggle.off { border-color: #d1d5db; background: #f3f4f6; color: #6b7280; }
html.src-off .src-toggle { opacity: .45; }

/* 物料在 186 组织下没有「未禁用+已审核」档案时，名称列用这行提示代替空白（BOSS 2026-10-21） */
.dc-mat-missing { font-size: 11px; color: #b45309; background: #fffbeb; border: 1px solid #fde68a; padding: 0 6px; border-radius: 9px; white-space: nowrap; }
