/* 来料检验页（js/quality.js）。弹框和表单格子借 mold.css 的 mold-form / mold-field */
.iqc-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.iqc-search{flex:1;min-width:180px;padding:7px 10px;border:1px solid #d5deeb;border-radius:7px;font:14px inherit}
.iqc-table-wrap{overflow-x:auto}
.iqc-table{width:100%;border-collapse:collapse;font-size:14px}
.iqc-table th,.iqc-table td{padding:7px 8px;border-bottom:1px solid #e8edf4;text-align:left;vertical-align:middle}
.iqc-table th{font-weight:600;color:#475569;font-size:13px;background:#f7f9fc}
.iqc-table .num{text-align:right;white-space:nowrap}
.iqc-table tr.is-pending td{background:#fffaf0}
.iqc-table small{color:#64748b}
.iqc-tag{display:inline-block;padding:0 6px;border-radius:5px;background:#eef2ff;color:#3949ab;font-size:12px}
.iqc-status{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;white-space:nowrap}
.iqc-status.is-pending{background:#fff1d6;color:#8a5a00}
.iqc-status.is-passed{background:#e3f4e8;color:#1e7b3c}
.iqc-status.is-failed{background:#fde8e6;color:#b42318}
.iqc-low{color:#b42318;font-weight:600}
.iqc-info{display:flex;flex-wrap:wrap;gap:6px 18px;margin-bottom:12px;font-size:14px;color:#334155}
.iqc-sub{margin:14px 0 6px;font-weight:600;color:#334155;font-size:14px}
.iqc-checks input,.iqc-checks select{width:100%;padding:6px 8px;border:1px solid #d5deeb;border-radius:6px;font:14px inherit}
.iqc-checks select.is-ng{border-color:#d92d20;color:#b42318}
.iqc-warn{margin:10px 0;padding:8px 10px;border-radius:7px;background:#fff4d6;color:#7a5a00;font-size:13px}
.iqc-check{display:flex;align-items:center;gap:6px;margin:6px 0;color:#334155}
.iqc-reason{width:100%;padding:6px 8px;border:1px solid #d5deeb;border-radius:6px;font:14px inherit}
.iqc-photos{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.iqc-photo{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:#eef2f6;border-radius:6px;font-size:13px}
.iqc-upload{cursor:pointer}
.iqc-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
.iqc-fail{color:#b42318;border-color:#e4a59f}
@media (max-width:640px){.iqc-actions{flex-direction:column-reverse}.iqc-actions .btn{width:100%}}
/* 质量管理页顶上的页签（js/quality.js 的 Q_TABS） */
.q-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.q-tab{padding:7px 14px;border:1px solid #d5deeb;border-radius:18px;background:#fff;color:#334155;font:14px inherit;cursor:pointer}
.q-tab.active{background:#1f2a44;border-color:#1f2a44;color:#fff}
/* 追溯：一段一段往下排 */
.q-trace{display:grid;gap:10px}
.q-trace-step{border-left:3px solid #c7d2e3;padding:2px 0 2px 12px}
.q-trace-title{font-weight:600;color:#1f2a44}
.q-trace-title small{color:#64748b;font-weight:400;margin-left:4px}
.q-trace-step ul{margin:4px 0 0;padding-left:18px;font-size:14px}
.q-trace-step li{margin:2px 0}
.mold-field textarea{resize:vertical}
/* 表单台账页（js/forms.js） */
.fm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin-bottom:6px}
.fm-card{display:flex;flex-direction:column;gap:3px;text-align:left;padding:10px 12px;border:1px solid #d5deeb;border-radius:9px;background:#fff;font:14px inherit;color:#17243b;cursor:pointer}
.fm-card small{color:#64748b;font-size:12px}
.fm-card:hover{border-color:#1f2a44}
.fm-title{flex:1;font-size:15px}
.fm-check td:first-child{width:100%}
.fm-marks{white-space:nowrap}
.fm-mark{display:inline-flex;margin-left:4px;cursor:pointer}
.fm-mark input{position:absolute;opacity:0;pointer-events:none}
.fm-mark span{display:inline-block;min-width:34px;padding:4px 0;text-align:center;border:1px solid #d5deeb;border-radius:6px;font-weight:600;color:#64748b}
.fm-ok input:checked+span{background:#e3f4e8;border-color:#1e7b3c;color:#1e7b3c}
.fm-ng input:checked+span{background:#fde8e6;border-color:#d92d20;color:#b42318}
.fm-na input:checked+span{background:#eef2f6;border-color:#64748b;color:#334155}
.fm-table input{width:100%;min-width:70px;padding:5px 6px;border:1px solid #d5deeb;border-radius:5px;font:13px inherit}
/* 工作台「质量与现场」（js/quality.js renderQualityDashboard） */
.q-dash{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.q-dash-tile{display:flex;flex-direction:column;gap:2px;text-align:left;padding:10px 12px;border:1px solid #e3e8ef;border-radius:10px;background:#fff;font:13px inherit;color:#475569;cursor:pointer}
.q-dash-tile strong{font-size:22px;color:#15803d}
.q-dash-tile strong small{font-size:12px;font-weight:400;color:#64748b}
.q-dash-tile em{font-style:normal;font-size:12px;color:#94a3b8}
.q-dash-tile.warning strong{color:#c2410c}
.q-dash-tile.danger{border-color:#f3c3bb}
.q-dash-tile.danger strong{color:#b91c1c}
.q-dash-tile:hover{border-color:#1f2a44}
#dashboardQualityCard{margin:12px 0}
/* 工作台「今天要做」（js/dashboard-today.js） */
.tt-card{margin:0 0 12px}
.tt-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.tt-group{border:1px solid #e3e8ef;border-radius:10px;padding:8px 10px;background:#fff}
.tt-head{display:flex;justify-content:space-between;align-items:center;font-weight:600;color:#1f2a44;padding:2px 2px 6px;border-bottom:1px solid #eef2f6}
.tt-head b{min-width:24px;padding:1px 8px;border-radius:10px;background:#fff1d6;color:#8a5a00;text-align:center;font-size:13px}
.tt-row{display:flex;align-items:center;gap:8px;padding:7px 2px;border-bottom:1px solid #f1f4f8}
.tt-row:last-child{border-bottom:0}
.tt-main{flex:1;min-width:0}
.tt-main strong{display:block;font-size:14px;color:#17243b}
.tt-main span{display:block;font-size:12px;color:#64748b}
.tt-row.warning .tt-main strong{color:#9a4a07}
.tt-row.danger .tt-main strong{color:#b42318}
.tt-done{padding:10px 2px;color:#15803d;font-size:14px}
/* 编辑厂区图（js/factory-layout-editor.js） */
.fle-dialog{width:min(1100px,96vw)!important;max-width:96vw!important}
.fle-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px}
.fle-canvas{position:relative;display:grid;grid-template-columns:repeat(var(--fle-cols),minmax(0,1fr));grid-template-rows:repeat(var(--fle-rows),46px);gap:3px;padding:4px;border:1px solid #d5deeb;border-radius:8px;background:#f8fafc;background-image:linear-gradient(#e7edf4 1px,transparent 1px),linear-gradient(90deg,#e7edf4 1px,transparent 1px);background-size:calc(100% / var(--fle-cols)) calc(100% / var(--fle-rows));user-select:none;touch-action:none}
.fle-item{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:0;border:2px solid #94a3b8;border-radius:7px;background:#fff;cursor:move;overflow:hidden;text-align:center;font-size:13px}
.fle-item b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fle-item small{font-size:11px;color:#64748b}
.fle-zone.is-stock{border-color:#fbbf24;background:#fffbeb}
.fle-zone.is-finished{border-color:#60a5fa;background:#eff6ff}
.fle-mark{z-index:2;border-style:dashed;background:#f1f5f9;color:#475569}
.fle-item.is-sel{box-shadow:0 0 0 3px #1f2a44}
.fle-item.is-bad{border-color:#d92d20;background:#fde8e6}
.fle-resize{position:absolute;right:1px;bottom:1px;width:12px;height:12px;border-right:3px solid #1f2a44;border-bottom:3px solid #1f2a44;cursor:nwse-resize}
.fle-right .mold-form{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:820px){.fle-layout{grid-template-columns:1fr}}
.fle-right input,.fle-right select{width:100%;min-width:0;box-sizing:border-box}
.fle-right .mold-field{min-width:0}
/* 客户订单评审、改单记录（js/order-review.js） */
.co-review{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:8px 0;font-size:13px}
.co-rv{padding:1px 8px;border-radius:10px;font-size:12px}
.co-rv.is-ok{background:#e3f4e8;color:#1e7b3c}
.co-rv.is-wait{background:#fff1d6;color:#8a5a00}
.co-rv-done{font-style:normal;font-weight:600;color:#15803d}
.co-changes{margin:0 0 8px;padding-left:18px;font-size:12px;color:#475569}
.co-rv-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:8px;align-items:center;margin-bottom:6px}
@media (max-width:640px){.co-rv-row{grid-template-columns:1fr}}
.btn-link{border:0;background:none;padding:0;color:#1d4ed8;font:inherit;cursor:pointer;text-decoration:underline}
