.bom-page-head,.bom-order-search,.bom-toolbar,.bom-action-bar,.bom-drawer-head,.bom-drawer-actions{display:flex;align-items:center;justify-content:space-between;gap:16px}
.bom-page-head{margin-bottom:18px}.bom-page-head h2{margin:4px 0 6px;font-size:24px}.bom-page-head p{margin:0;color:#657080}
.bom-head-actions,.bom-toolbar>div,.bom-action-bar>div{display:flex;gap:10px}
.bom-order-card,.bom-table-card,.bom-preview{background:#fff;border:1px solid #e4e9ef;border-radius:14px;box-shadow:0 8px 24px rgba(31,43,61,.05)}
.bom-order-card{padding:18px;margin-bottom:16px}.bom-order-search{justify-content:flex-start}.bom-order-search label{display:flex;align-items:center;gap:10px}.bom-order-search input{width:260px}
.bom-order-search span{font-size:13px;color:#758092}.bom-identity{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin-top:15px}
.bom-identity div{padding:10px 12px;background:#f6f8fa;border-radius:9px}.bom-identity span{display:block;font-size:12px;color:#7d8795}.bom-identity b{display:block;margin-top:4px;font-size:14px;color:#202a38}
#salesOrderBomPanel,#orderBomWorkspace,#orderBomLinesPanel{min-width:0;max-width:100%}#orderBomLinesPanel{overflow-x:clip}.bom-table-card{min-width:0;max-width:100%;overflow:visible}.bom-toolbar{padding:14px 16px;border-bottom:1px solid #edf0f3}.bom-toolbar-note{font-size:12px;color:#768295}
.bom-child-action-menu{position:relative;display:inline-flex}
.bom-child-action-popover{display:none;position:absolute;z-index:30;top:calc(100% + 6px);left:0;width:320px;padding:12px;border:1px solid #cad8d5;border-radius:10px;background:#fff;box-shadow:0 12px 30px rgba(21,48,44,.18);gap:8px}
.bom-child-action-menu:hover .bom-child-action-popover,.bom-child-action-menu:focus-within .bom-child-action-popover{display:grid}
.bom-child-action-popover label{display:grid;gap:5px;color:#60706f;font-size:12px}.bom-child-action-popover select{width:100%;min-height:36px}.bom-child-action-popover button{width:100%}
.bom-grid{min-width:1450px;width:100%;border-collapse:collapse}.bom-grid th,.bom-grid td{padding:10px 9px;border-bottom:1px solid #edf0f3;text-align:left;font-size:12px;white-space:nowrap}.bom-grid th{background:#f7f9fb;color:#5c6878;position:sticky;top:0}.bom-grid tbody tr:hover{background:#f7fbff}.bom-grid tr.selected{background:#eef7ff}.bom-grid td.blocked{color:#c43d3d}
.bom-badge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:11px;background:#edf1f5;color:#546171}.bom-badge.add{background:#e8f7ee;color:#218554}.bom-badge.update{background:#e9f2ff;color:#276bbb}.bom-badge.delete{background:#fff0ef;color:#bc3c35}.bom-badge.blocked{background:#fff1d9;color:#9a6500}.bom-badge.warning{background:#fff5df;color:#98631d}
.bom-badge.has-tooltip{cursor:help;outline:none}.bom-badge.has-tooltip:hover,.bom-badge.has-tooltip:focus-visible{box-shadow:0 0 0 2px rgba(39,107,187,.2)}.bom-action-tooltip{position:fixed;z-index:140;width:max-content;max-width:min(460px,calc(100vw - 24px));padding:10px 12px;border:1px solid #b9cce3;border-radius:9px;background:#17324f;color:#fff;box-shadow:0 12px 30px rgba(18,39,62,.24);font-size:12px;line-height:1.65;white-space:pre-line;pointer-events:none}.bom-action-tooltip.hidden{display:none}
.bom-action-bar{position:sticky;bottom:0;width:100%;max-width:100%;margin-top:16px;padding:14px 16px;background:#fff;border:1px solid #dfe5eb;border-radius:12px;box-shadow:0 -8px 24px rgba(31,43,61,.05);z-index:4}.bom-action-bar>span{font-size:13px;color:#5c6878}
.bom-preview{margin-top:16px;padding:18px}.bom-preview h3{margin:0 0 12px}.bom-preview-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.bom-preview-grid div{padding:10px;background:#f6f8fa;border-radius:8px}.bom-preview-grid span{display:block;font-size:11px;color:#738093}.bom-preview-grid b{display:block;margin-top:4px}.bom-preview ul{margin:12px 0 0;padding-left:20px;color:#a74334}
.vue-bom-editor-overlay.el-overlay{inset:0;height:auto!important;overflow:hidden;z-index:var(--wb-z-drawer,2100)!important;background:rgba(17,27,39,.32)}body[data-environment="test"] .vue-bom-editor-overlay.el-overlay{inset:38px 0 0;height:auto!important}.vue-bom-editor-drawer.el-drawer{display:flex;top:0!important;bottom:0!important;height:100%!important;max-height:none!important;min-height:0;box-sizing:border-box;flex-direction:column;overflow:hidden;background:#fff;box-shadow:-18px 0 50px rgba(19,29,43,.18)}.vue-bom-editor-drawer .el-drawer__header{margin:0;padding:0;flex:0 0 auto}.vue-bom-editor-drawer .el-drawer__body{display:flex;height:0;min-width:0;min-height:0;padding:0;overflow:hidden;flex:1 1 0;flex-direction:column}.vue-bom-editor-drawer .el-drawer__footer{min-height:0;padding:0;overflow:visible;flex:0 0 auto}.bom-editor-drawer-content{display:flex;height:100%;min-width:0;min-height:0;flex:1 1 0;flex-direction:column;overflow:hidden}.bom-editor-vue-scrollbar{height:0;min-width:0;min-height:0;flex:1 1 0}.bom-editor-vue-scrollbar>.el-scrollbar__wrap{overscroll-behavior:contain}.bom-editor-vue-scrollbar .el-scrollbar__view{min-height:100%}.bom-drawer-head{width:100%;box-sizing:border-box;flex:0 0 auto;padding:18px 20px;border-bottom:1px solid #e7ebef}.bom-drawer-head h3{margin:2px 0 0}.bom-drawer-head button{font-size:14px}.bom-drawer-tabs.el-tabs{min-width:0;flex:0 0 auto;padding:0 20px;border-bottom:1px solid var(--wb-color-border);background:var(--wb-color-surface)}.bom-drawer-tabs .el-tabs__header{margin:0}.bom-drawer-tabs .el-tabs__nav-wrap:after{display:none}.bom-drawer-tabs .el-tabs__item{height:48px}.bom-drawer-tabs .el-tabs__content{display:none}.bom-validation-count{display:inline-grid;min-width:18px;height:18px;place-items:center;margin-left:4px;padding:0 4px;border-radius:999px;font-size:11px;color:#fff;background:var(--wb-color-info)}.bom-validation-count.warning{background:var(--wb-color-warning)}.bom-validation-count.blocking{background:var(--wb-color-danger)}
#orderBomEditorBody,.bom-editor-vue-body{display:grid;min-width:0;min-height:100%;box-sizing:border-box;gap:16px;padding:18px 20px;overflow:visible}.bom-editor-vue-body>*{min-width:0}.bom-editor-vue-body .wb-editor-section__body>.bom-editor-pane,.bom-editor-vue-body .wb-editor-section__body>.bom-size-mapping-editor,.bom-editor-vue-body .wb-editor-section__body>.bom-each-expand-editor{padding:0;border:0;background:transparent}.bom-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.bom-editor-grid label{display:flex;min-width:0;flex-direction:column;gap:6px;font-size:12px;color:#626e7e}.bom-editor-grid>.wide{grid-column:1/-1}.bom-editor-grid input,.bom-editor-grid select,.bom-editor-grid textarea{width:100%;min-width:0;max-width:100%;box-sizing:border-box}.bom-editor-grid textarea{min-height:110px;resize:vertical}.bom-drawer-actions{display:flex;flex:0 0 auto;gap:10px;padding:14px 20px;border-top:1px solid #e7ebef;justify-content:flex-end;background:#fff}
.bom-editor-columns{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);gap:18px;align-items:start}.bom-editor-columns.without-material{grid-template-columns:minmax(520px,760px);justify-content:start}.bom-editor-pane{min-width:0;padding:16px;border:1px solid #e0e7eb;border-radius:12px;background:#fff}.bom-editor-mapping-pane{position:sticky;top:0;background:#f8fbfa}.bom-mode-checks{display:flex;align-items:center;gap:10px;margin:0;padding:10px 12px;border:1px solid #dbe4e7;border-radius:9px;background:#f7f9fa}.bom-mode-checks legend{padding:0 5px;color:#626e7e;font-size:12px}.bom-mode-checks label{display:flex;flex-direction:row;align-items:center;gap:6px;padding:7px 11px;border:1px solid #d8e1e4;border-radius:8px;background:#fff;color:#33424e;font-size:13px;cursor:pointer}.bom-mode-checks label:has(input:checked){border-color:#168879;background:#eaf7f4;color:#126e63;font-weight:600}.bom-mode-checks input{width:auto}.bom-mode-checks small{margin-left:auto;color:#73808c}
.bom-editor-grid .bom-readonly-field>span:first-child{display:flex;align-items:center;gap:6px}.bom-editor-grid input[readonly]{border-color:#cbd5d8;background:#f1f4f5;color:#52636b;box-shadow:none;cursor:default}.bom-editor-grid input[readonly]:focus{border-color:#cbd5d8;box-shadow:none;outline:none}
.bom-inline-solution{display:block!important;padding:14px;border:1px solid #cfe0dc;border-radius:10px;background:#f7fbfa}.bom-inline-solution-name-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px}.bom-inline-solution-name-row label{min-width:0}.bom-inline-solution-label{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.bom-inline-solution-error{color:#b33b35;font-size:11px;font-weight:600}.bom-inline-solution-error:empty{display:none}.bom-inline-solution-name-row input,.bom-inline-solution-name-row button{height:36px;box-sizing:border-box}.bom-inline-solution-actions{display:flex;align-items:center;gap:8px}.bom-inline-solution-actions button{white-space:nowrap}.bom-inline-solution-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:15px 0 8px;color:#2b3c49;font-weight:600}.bom-inline-solution-matrix{max-height:310px}.bom-inline-solution-matrix table.bom-grid{min-width:0;width:100%;table-layout:fixed;border-collapse:collapse}.bom-inline-solution-matrix th,.bom-inline-solution-matrix td{min-width:0;width:auto;padding:9px 10px;border:1px solid #d8e0e4;text-align:left;vertical-align:middle;white-space:normal;overflow-wrap:anywhere}.bom-inline-solution-matrix thead th{background:#eef3f3}.bom-inline-solution-matrix thead th:first-child,.bom-inline-solution-matrix tbody th{width:34%;background:#f4f7f7;font-weight:400}.bom-inline-solution-matrix tbody th b,.bom-inline-solution-matrix tbody th span{display:block}.bom-inline-solution-matrix tbody th span{margin-top:2px;color:#687783;font-size:11px}.bom-inline-solution-matrix select{width:100%;min-width:0;max-width:100%}
.bom-editor-section-title{display:flex;align-items:baseline;gap:10px;margin:22px 0 12px;padding-top:16px;border-top:1px solid #e5eaee}.bom-editor-section-title.bom-editor-section-first{margin-top:0;padding-top:0;border-top:0}.bom-editor-section-title b{color:#253342}.bom-editor-section-title span{color:#788595;font-size:12px}.bom-material-identity-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:stretch;gap:12px}.bom-material-identity-layout.without-material{grid-template-columns:minmax(220px,320px)}.bom-material-select-stack{display:flex;min-width:0;flex-direction:column;gap:8px}.bom-material-primary-fields{display:grid;gap:8px}.bom-selected-material{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:88px;box-sizing:border-box;padding:12px;border:1px solid #dfe6eb;border-radius:9px;background:#f7f9fa}.bom-material-identity-layout .bom-selected-material{height:100%;flex-direction:column;align-items:stretch}.bom-material-identity-layout .bom-selected-material button{width:100%}.bom-material-select-only{width:100%;min-height:44px;align-self:center}.bom-material-reset{width:100%;padding:8px 12px;border:1px solid #e3b8b3;border-radius:8px;background:#fff;color:#a84e45}.bom-material-reset:disabled{border-color:#dfe6e9;background:#f4f6f7;color:#a4adb5}.bom-selected-material>div{min-width:0}.bom-selected-material span,.bom-selected-material b{display:block}.bom-selected-material span{font-size:11px;color:#7a8694}.bom-selected-material b{display:-webkit-box;max-height:76px;margin-top:4px;overflow:hidden;color:#263442;line-height:19px;-webkit-box-orient:vertical;-webkit-line-clamp:4}.bom-selected-material button{flex:0 0 auto}.bom-candidate-control{display:grid;grid-template-columns:minmax(0,1fr);align-items:end;gap:8px}.bom-candidate-control label{min-width:0}.bom-inline-candidate{padding:12px;border:1px solid #dce5ea;border-radius:9px;background:#f7f9fa}.bom-inline-candidate-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.bom-inline-candidate-head p{margin:4px 0 0;color:#788595;font-size:12px}.bom-inline-candidate-head button{border:0;background:none;font-size:20px}.bom-inline-candidate .bom-validation{margin-top:12px}
.bom-business-settings{min-width:0;padding:13px;border:1px solid #d5e2df;border-radius:10px;background:#f7faf9}.bom-business-settings-title{display:flex;align-items:baseline;gap:9px;margin-bottom:11px}.bom-business-settings-title b{color:#283a37}.bom-business-settings-title span,.bom-business-settings>p{color:#6d7d79;font-size:12px}.bom-business-settings>p{margin:9px 0 0;line-height:1.5}.bom-business-settings-grid{display:grid;min-width:0;grid-template-columns:minmax(210px,.72fr) minmax(0,1.28fr);align-items:end;gap:12px}.bom-business-settings-grid>label{display:flex;min-width:0;flex-direction:column;gap:6px}.bom-unit-strip{display:grid;min-width:0;grid-template-columns:minmax(54px,.55fr) minmax(54px,.55fr) minmax(70px,.72fr) minmax(112px,1.18fr);align-items:end;gap:10px}.bom-unit-strip label{min-width:0}.bom-unit-strip input,.bom-unit-strip select{display:block;width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box}.bom-unit-strip .bom-unit-field input,.bom-unit-strip .bom-rate-field input{width:100%;max-width:100%}.bom-business-settings .bom-unit-strip>label:last-child select{min-width:0}
.bom-sizing-editor{max-width:1180px;margin:0 auto;padding:16px;border:1px solid #e0e7eb;border-radius:12px;background:#fff}.bom-sizing-dimensions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.bom-sizing-dimensions>label{display:flex;align-items:flex-start;gap:9px;padding:12px;border:1px solid #dbe3e7;border-radius:9px;background:#f8fafb;cursor:pointer}.bom-sizing-dimensions>label:has(input:checked){border-color:#168879;background:#eaf7f4;box-shadow:0 0 0 2px rgba(22,136,121,.08)}.bom-sizing-dimensions input{flex:0 0 auto;width:auto;margin-top:3px}.bom-sizing-dimensions span,.bom-sizing-dimensions b,.bom-sizing-dimensions small{display:block}.bom-sizing-dimensions b{color:#2a3946}.bom-sizing-dimensions small{margin-top:4px;color:#748190;line-height:1.4}.bom-sizing-fixed-mode{margin:0;padding:10px 12px;border:1px solid #dbe3e7;border-radius:8px;background:#f8fafb;font-size:12px}.bom-sizing-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0 10px}.bom-sizing-toolbar>div b,.bom-sizing-toolbar>div span{display:block}.bom-sizing-toolbar>div span{margin-top:3px;color:#718091;font-size:12px}.bom-sizing-toolbar-actions{display:flex;align-items:center;gap:8px}.bom-sizing-toolbar-actions button{white-space:nowrap}.bom-sizing-table{max-height:52vh;border:1px solid #dbe3e7}.bom-sizing-table table.bom-grid{min-width:720px}.bom-sizing-table th:first-child,.bom-sizing-table td:first-child{width:28%}.bom-sizing-table td select,.bom-sizing-table td input{width:100%;box-sizing:border-box}.bom-sizing-errors{display:flex;flex-direction:column;gap:4px;margin-top:10px;padding:10px 12px;border-radius:8px;background:#fff1e5;color:#95591e;font-size:12px}.bom-sizing-errors:empty{display:none}.bom-sizing-confirm{display:flex;align-items:end;gap:14px;margin-top:14px;padding-top:14px;border-top:1px solid #e5eaee}.bom-sizing-confirm label{display:flex;flex-direction:column;gap:6px;min-width:180px;color:#626e7e;font-size:12px}.bom-sizing-confirm p{margin:0 0 8px;color:#748190;font-size:12px}
.bom-size-mapping-full{min-width:0;margin-top:18px;padding:16px;border:1px solid #e0e7eb;border-radius:12px;background:#fff}.bom-size-formula{margin-top:14px;padding:12px;border:1px solid #d7e4e1;border-radius:10px;background:#f7fbfa}.bom-size-formula-head b,.bom-size-formula-head span{display:block}.bom-size-formula-head span{margin-top:3px;color:#718091;font-size:12px}.bom-size-formula-controls{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;align-items:end;gap:8px;margin-top:10px}.bom-size-formula-controls label{display:flex;min-width:0;flex-direction:column;gap:5px;color:#626e7e;font-size:12px}.bom-size-formula-controls input,.bom-size-formula-controls button{height:36px;box-sizing:border-box}.bom-size-formula-controls button{white-space:nowrap}.bom-size-formula-example{margin-top:8px;color:#687a76;font-size:12px;line-height:1.5}.bom-size-formula-message{min-height:18px;margin-top:8px;color:#28735b;font-size:12px}.bom-size-formula-message.error{color:#b33b35}.bom-size-formula-message:empty{display:none}.bom-size-formula-missing{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:5px;color:#8b622b;font-size:12px}.bom-size-formula-missing span{padding:2px 7px;border-radius:999px;background:#fff0d9}.bom-size-formula-missing-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding:8px 10px;border-radius:8px;background:#fff4e7;color:#8b622b;font-size:12px}.bom-size-formula-missing-actions span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-size-formula-missing-actions button{flex:none;white-space:nowrap}.bom-size-formula .bom-validation{margin-top:10px}.bom-size-mapping-table{margin-top:12px;border:1px solid #dbe3e7}.bom-size-mapping-matrix{min-width:max-content;width:100%;border-collapse:collapse}.bom-size-mapping-matrix.compact{min-width:100%;width:100%;table-layout:fixed}.bom-size-mapping-matrix th,.bom-size-mapping-matrix td{min-width:56px;max-width:70px;padding:7px 4px;border-right:1px solid #dbe3e7;border-bottom:1px solid #dbe3e7;white-space:normal;text-align:left;vertical-align:middle}.bom-size-mapping-matrix.compact td{min-width:0;max-width:none}.bom-size-mapping-matrix th{position:sticky;left:0;z-index:2;width:74px;min-width:74px;max-width:74px;background:#eef3f2;color:#50635f}.bom-size-mapping-matrix td{background:#fff}.bom-size-mapping-matrix tr:last-child th,.bom-size-mapping-matrix tr:last-child td{border-bottom:0}.bom-size-mapping-matrix td:last-child{border-right:0}.bom-size-mapping-matrix select{width:100%;min-width:0;box-sizing:border-box;font-size:11px}
.bom-material-picker-mask{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(16,27,39,.46)}.bom-material-picker{display:flex;flex-direction:column;width:min(1100px,94vw);max-height:84vh;overflow:hidden;border-radius:14px;background:#fff;box-shadow:0 24px 70px rgba(13,26,39,.28)}.bom-material-picker-head,.bom-material-picker-search,.bom-material-picker-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.bom-material-picker-head{padding:18px 20px;border-bottom:1px solid #e4e9ed}.bom-material-picker-head h3,.bom-material-picker-head p{margin:2px 0}.bom-material-picker-head>button{border:0;background:none;font-size:26px}.bom-material-picker-search{padding:14px 20px}.bom-material-picker-search select{flex:0 0 250px;max-width:32%}.bom-material-picker-search input{flex:1}.bom-material-picker-table{margin:0 20px;min-height:240px}.bom-material-picker-table table{width:100%;border-collapse:collapse}.bom-material-picker-table th,.bom-material-picker-table td{padding:10px 9px;border-bottom:1px solid #e8ecef;text-align:left;font-size:12px}.bom-material-picker-table th{position:sticky;top:0;background:#f4f6f8;color:#5f6c7b}.bom-material-picker-table tr.selected{background:#eaf5f3}.bom-material-picker-table tbody tr{cursor:pointer}.bom-material-create-panel{padding:18px 20px;overflow:auto}.bom-material-picker-actions{padding:14px 20px;border-top:1px solid #e4e9ed}.bom-material-picker-actions>div{display:flex;gap:10px}
.bom-material-create-form{display:grid;min-height:0;padding:18px 20px;overflow:auto;grid-template-columns:1fr 1fr;gap:13px}.bom-material-create-form>.wide{grid-column:1/-1}.bom-material-create-form label{display:flex;min-width:0;flex-direction:column;gap:6px;color:#626e7e;font-size:12px}.bom-material-create-form input,.bom-material-create-form select,.bom-material-create-form textarea{width:100%;min-width:0;max-width:100%;box-sizing:border-box}.bom-material-class-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 12px;border:1px solid #dde5e9;border-radius:9px;background:#f5f8f9}.bom-material-class-summary span{color:#73808d;font-size:12px}.bom-material-class-summary b{display:block;margin-top:3px;color:#2b3945;font-size:13px}.bom-material-attributes{padding:13px;border:1px solid #d8e5e2;border-radius:10px;background:#f7fbfa}.bom-material-attributes>div:first-child{display:flex;align-items:baseline;gap:9px}.bom-material-attributes>div:first-child span{color:#71808d;font-size:12px}.bom-material-attribute-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:11px}.bom-material-attribute-grid p{grid-column:1/-1;margin:0;color:#76838f;font-size:12px}
.bom-material-results{margin-top:12px;border:1px solid #e2e7ec;border-radius:9px;overflow:hidden}.bom-material-result{padding:10px 12px;border-bottom:1px solid #edf0f3;cursor:pointer}.bom-material-result:last-child{border:0}.bom-material-result:hover{background:#f1f7ff}.bom-material-result b,.bom-material-result span{display:block}.bom-material-result span{font-size:12px;color:#748092;margin-top:3px}
.bom-validation{padding:12px;border:1px solid transparent;border-radius:9px;background:#f6f8fa}.bom-validation.ready{border-color:#cbe7d5;background:#eaf8ef;color:#26784d}.bom-validation.warning{border-color:#efd09a;background:#fff6e6;color:#965f16}.bom-validation.blocked{border-color:#efc49d;background:#fff1e5;color:#9b5e1c}.bom-danger{color:#b33b35!important}

/* Enabled but empty material color/specification controls should be easy to find.
   Disabled Element Plus selects keep their native gray treatment. */
.el-select.need-fill:not(.is-disabled) .el-select__wrapper:not(.is-disabled){background:#fbfcf8;box-shadow:0 0 0 1px #596763 inset}.el-select.need-fill:not(.is-disabled):hover .el-select__wrapper:not(.is-disabled){box-shadow:0 0 0 1px #3f4e49 inset}.el-select.need-fill:not(.is-disabled) .el-select__placeholder{color:#66736f}
.bom-page-tabs{display:flex;gap:4px;margin:18px 0 4px;padding:4px;width:max-content;background:#eaf0f3;border-radius:10px}.bom-page-tabs button{border:0;background:transparent;padding:9px 18px;border-radius:8px;color:#657080;font-weight:600}.bom-page-tabs button.active{background:#fff;color:#126e63;box-shadow:0 2px 8px rgba(30,48,60,.1)}
.bom-solution-panel{margin-top:16px}.bom-solution-heading,.bom-solution-editor-head,.bom-solution-editor-actions{display:flex;align-items:center;justify-content:space-between;gap:16px}.bom-solution-heading{margin-bottom:14px}.bom-solution-heading h3,.bom-solution-editor h3{margin:0 0 5px}.bom-solution-heading p,.bom-solution-editor p{margin:0;color:#697687;font-size:13px}.bom-solution-table{min-width:760px}.bom-solution-editor{margin-top:16px;padding:18px;background:#fff;border:1px solid #dfe6eb;border-radius:14px}.bom-solution-name{display:flex;flex-direction:column;gap:6px;max-width:520px;margin:18px 0;font-size:13px;color:#626e7e}.bom-solution-name input{width:100%;box-sizing:border-box}.bom-solution-map{min-width:720px}.bom-solution-map input{width:100%;min-width:180px;box-sizing:border-box}.bom-solution-editor-actions{justify-content:flex-end;margin-top:16px}.bom-field-hint{margin-top:-5px;color:#778391!important}.bom-field-hint span{font-size:12px!important}
.bom-solution-list{display:grid;grid-template-columns:repeat(auto-fill,118px);justify-content:start;gap:8px;padding:2px 1px 8px}.bom-solution-chip{position:relative;display:flex;align-items:center;gap:4px;min-width:0;padding:4px 6px;border:1px solid #dfe6eb;border-radius:9px;background:#fff}.bom-solution-chip.active{border-color:#168879;box-shadow:0 0 0 2px rgba(22,136,121,.12)}.bom-solution-chip>button:first-child{display:flex;min-width:0;flex:1;flex-direction:column;align-items:flex-start;gap:2px;padding:5px 6px;border:0;background:none;text-align:left}.bom-solution-chip b{display:block;max-width:100%;overflow:hidden;color:#202d39;text-overflow:ellipsis;white-space:nowrap}.bom-solution-chip span{font-size:11px;color:#778391}.bom-solution-remove{flex:0 0 22px;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:#fff0ef;color:#b33b35}
.bom-solution-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:0 0 14px;padding:10px 12px;border:1px solid #d9e5e2;border-radius:10px;background:#f6faf9;color:#52645f;font-size:12px}.bom-solution-summary span{white-space:nowrap}.bom-solution-summary b{margin-right:3px;color:#167766;font-size:14px}.bom-solution-summary small{margin-left:auto;color:#75817e}.bom-solution-group{margin:0 0 14px}.bom-solution-group>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}.bom-solution-group>header h3,.bom-solution-group>header p{margin:0}.bom-solution-group>header h3{font-size:14px}.bom-solution-group>header p{margin-top:2px;color:#778391;font-size:11px}.bom-solution-group>header>span{padding:3px 8px;border-radius:999px;background:#e8f5f1;color:#167766;font-size:11px}.bom-solution-group-unused{padding-top:12px;border-top:1px dashed #dce3e6}.bom-solution-group-unused>header>span{background:#f0f2f4;color:#6f7882}.bom-solution-chip.unused{border-style:dashed;background:#fafbfc}.bom-solution-chip.unused b{color:#5f6974}.bom-solution-chip.unused.active{border-style:solid;background:#fff}.bom-solution-chip.unused span{font-size:10px}
.bom-solution-candidate-batch{margin-top:14px;padding:14px;border:1px solid #e1c9a8;border-radius:10px;background:#fffaf2}.bom-solution-candidate-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.bom-solution-candidate-head h4{margin:0 0 4px}.bom-solution-candidate-head p{margin:0;color:#6d7783;font-size:12px}.bom-solution-candidate-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;margin-top:12px}.bom-solution-candidate-card{min-width:0;padding:11px;border:1px solid #d9e0e5;border-radius:9px;background:#fff}.bom-solution-candidate-card header,.bom-solution-candidate-card label,.bom-solution-candidate-card label span{display:block}.bom-solution-candidate-card header{margin-bottom:9px}.bom-solution-candidate-card header b{display:block;color:#293846}.bom-solution-candidate-card header span{display:block;margin-top:3px;overflow:hidden;color:#697687;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.bom-solution-candidate-card label span{margin-bottom:5px;color:#596675;font-size:12px}.bom-solution-candidate-card textarea{width:100%;box-sizing:border-box;resize:vertical}.bom-solution-candidate-feedback{margin:10px 0 0!important;color:#6b5c45!important}.bom-solution-candidate-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
@media(max-width:980px){.bom-identity{grid-template-columns:repeat(2,1fr)}.bom-preview-grid{grid-template-columns:repeat(2,1fr)}.bom-editor-columns{grid-template-columns:1fr}.bom-editor-mapping-pane{position:static}.bom-sizing-dimensions{grid-template-columns:1fr}.bom-size-formula-controls,.bom-business-settings-grid{grid-template-columns:1fr}}

.bom-destination-editor{display:block!important;margin-top:4px;padding:14px;border:1px solid #cfe0dc;border-radius:10px;background:#f7fbfa}.bom-destination-editor .bom-inline-solution-toolbar{margin:0 0 10px}.bom-destination-editor .bom-inline-solution-toolbar small{color:#6f7e89;font-weight:400}.bom-destination-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.bom-destination-option{display:flex!important;flex-direction:row!important;align-items:center;gap:9px;min-width:0;padding:10px 12px;border:1px solid #d8e2e2;border-radius:8px;background:#fff;cursor:pointer}.bom-destination-option:has(input:checked){border-color:#168879;background:#eaf7f4}.bom-destination-option input{width:auto;flex:0 0 auto}.bom-destination-option span{display:block;min-width:0}.bom-destination-option b,.bom-destination-option small{display:block;overflow-wrap:anywhere}.bom-destination-option small{margin-top:2px;color:#74818c;font-size:11px;font-weight:400}.bom-destination-empty{grid-column:1/-1;padding:12px;border-radius:8px;background:#fff4e8;color:#9a5c18;font-size:12px}
@media(max-width:1180px){.bom-destination-options{grid-template-columns:1fr}}

.bom-lines-table-wrap{width:100%;max-width:100%;max-height:max(320px,calc(100vh - 430px));overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable both-edges;border-top:1px solid #edf1f0;scrollbar-color:#829b95 #e7eeec;scrollbar-width:auto}
.bom-lines-table-wrap::-webkit-scrollbar{width:12px;height:12px}
.bom-lines-table-wrap::-webkit-scrollbar-track{background:#e7eeec;border-radius:999px}
.bom-lines-table-wrap::-webkit-scrollbar-thumb{min-width:72px;background:#829b95;border:2px solid #e7eeec;border-radius:999px}
.bom-lines-table-wrap::-webkit-scrollbar-thumb:hover{background:#58766f}
.bom-lines-table-wrap thead{position:sticky;top:0;z-index:4;background:var(--surface,#fff)}
.bom-lines-grid{--bom-position-width:180px;width:max-content;min-width:1758px;table-layout:fixed}
.bom-lines-grid th,.bom-lines-grid td{padding:7px 8px;line-height:1.35;vertical-align:middle}
.bom-lines-grid tbody tr[data-row-key]{height:64px;max-height:64px}
.bom-lines-grid th{white-space:nowrap}
.bom-lines-grid th:nth-child(1),.bom-lines-grid td:nth-child(1){width:68px}
.bom-lines-grid th:nth-child(2),.bom-lines-grid td:nth-child(2){width:44px;text-align:center}
.bom-lines-grid th:nth-child(3),.bom-lines-grid td:nth-child(3){width:52px}
.bom-lines-grid th:nth-child(4),.bom-lines-grid td:nth-child(4){width:44px;text-align:center}
.bom-lines-grid th:nth-child(5),.bom-lines-grid td:nth-child(5){width:58px}
.bom-lines-grid th:nth-child(6),.bom-lines-grid td:nth-child(6){width:170px}
.bom-lines-grid th:nth-child(7),.bom-lines-grid td:nth-child(7){width:var(--bom-position-width);min-width:var(--bom-position-width);max-width:var(--bom-position-width)}
.bom-lines-grid th:nth-child(8),.bom-lines-grid td:nth-child(8){width:160px}
.bom-lines-grid th:nth-child(9),.bom-lines-grid td:nth-child(9){width:220px}
.bom-lines-grid th:nth-child(10),.bom-lines-grid td:nth-child(10){width:88px}
.bom-lines-grid th:nth-child(11),.bom-lines-grid td:nth-child(11){width:82px}
.bom-lines-grid th:nth-child(12),.bom-lines-grid td:nth-child(12),.bom-lines-grid th:nth-child(13),.bom-lines-grid td:nth-child(13){width:116px}
.bom-lines-grid th:nth-child(14),.bom-lines-grid td:nth-child(14){width:84px}
.bom-lines-grid th:nth-child(15),.bom-lines-grid td:nth-child(15){width:52px}
.bom-lines-grid th:nth-child(16),.bom-lines-grid td:nth-child(16){width:82px}
.bom-lines-grid th:nth-child(17),.bom-lines-grid td:nth-child(17){width:82px;text-align:center}
.bom-display-index{color:#58706b;font-weight:700}
.bom-confirm-state{font-size:18px;font-weight:800;color:var(--green)}
.bom-lines-grid td:not(.bom-position-cell):not(.bom-material-info):not(.bom-material-code-info){white-space:nowrap}
.bom-lines-grid tbody td{user-select:text;-webkit-user-select:text}
.bom-lines-grid button,.bom-lines-grid input,.bom-row-select-cell{user-select:none;-webkit-user-select:none}
.bom-lines-grid tbody td:not(.bom-row-select-cell){cursor:text}
.bom-position-heading{position:relative!important}
.bom-position-resizer{position:absolute;z-index:2;top:0;right:-4px;width:9px;height:100%;border:0;background:transparent;cursor:col-resize;padding:0}
.bom-position-resizer:after{content:"";position:absolute;top:22%;bottom:22%;left:4px;width:1px;background:#b8c8c4}
.bom-position-cell,.bom-material-info,.bom-material-code-info{overflow:hidden}
.bom-position-cell{white-space:nowrap!important;text-overflow:ellipsis}
.bom-material-code-info span,.bom-material-info span{display:block;min-height:1.35em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bom-material-code-info b{color:#637571;font-weight:700}
.bom-material-info b{color:#637571;font-weight:700}
#orderBomMessage[data-kind="warning"]{color:#9a621f;font-weight:700}
.bom-row-select-cell{vertical-align:middle!important}
.bom-row-select-controls{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;min-height:48px}
.bom-row-select-controls input[type="checkbox"]{flex:0 0 auto;margin:0}
.bom-delete-selected{border-color:#e2b7b3!important;background:#fff8f7!important}.bom-delete-selected:disabled{border-color:#d9dfdd!important;background:#f4f6f5!important;color:#9aa4a1!important}
.bom-row-drag-handle{width:22px;height:24px;padding:0;border:0;background:transparent;color:#82918e;cursor:grab;font-size:16px;letter-spacing:-4px;line-height:1}
.bom-row-drag-handle:active{cursor:grabbing}
.bom-confirmation-hint{display:inline-flex;align-items:center;max-width:260px;color:#9a621f;font-size:12px;line-height:1.35}
.bom-lines-grid tbody tr.dragging{opacity:.42}
.vue-bom-lines-grid tbody tr.bom-row-is-dragging>td{opacity:.38}
.bom-row-drag-ghost{position:fixed!important;z-index:100000;top:-10000px;left:-10000px;min-width:0!important;table-layout:fixed!important;border:1px solid #d54a43;border-collapse:collapse;background:#fff;box-shadow:0 16px 36px rgba(40,28,26,.28);pointer-events:none}
.bom-row-drag-ghost tbody tr,.bom-row-drag-ghost tbody td{opacity:1!important;background:#fff!important}
.bom-row-drag-ghost tbody td{box-sizing:border-box;overflow:hidden;padding:8px;vertical-align:middle}
.bom-lines-grid tbody tr.drag-before{box-shadow:inset 0 3px 0 var(--green)}
.bom-lines-grid tbody tr.drag-after{box-shadow:inset 0 -3px 0 var(--green)}
.bom-trash-panel{padding:18px}.bom-trash-actions{display:flex;align-items:center;gap:12px;color:#687587}.bom-trash-table-wrap{margin-top:14px;overflow-x:auto;border:1px solid #e1e7e6;border-radius:10px}.bom-trash-grid{min-width:1120px;table-layout:fixed}.bom-trash-grid th,.bom-trash-grid td{padding:8px;vertical-align:middle}.bom-trash-grid th:nth-child(1),.bom-trash-grid td:nth-child(1){width:58px}.bom-trash-grid th:nth-child(2),.bom-trash-grid td:nth-child(2){width:58px}.bom-trash-grid th:nth-child(3),.bom-trash-grid td:nth-child(3){width:100px}.bom-trash-grid th:nth-child(4),.bom-trash-grid td:nth-child(4){width:72px}.bom-trash-grid th:nth-child(5),.bom-trash-grid td:nth-child(5){width:170px}.bom-trash-grid th:nth-child(6),.bom-trash-grid td:nth-child(6){width:110px}.bom-trash-grid th:nth-child(7),.bom-trash-grid td:nth-child(7){width:230px}.bom-trash-grid th:nth-child(8),.bom-trash-grid td:nth-child(8){width:90px}.bom-trash-grid th:nth-child(9),.bom-trash-grid td:nth-child(9){width:90px}.bom-trash-grid th:nth-child(10),.bom-trash-grid td:nth-child(10){width:85px}.bom-trash-grid th:nth-child(11),.bom-trash-grid td:nth-child(11){width:58px}.bom-trash-grid tbody tr.selected{background:#eef8f6}
.bom-lines-grid tr.bom-parent-row td{background:#f5faf9;font-weight:600}
.bom-lines-grid tr.bom-child-row td{background:#fbfdfd}
.bom-lines-grid tr.bom-primary-child td{box-shadow:inset 0 1px 0 #d2ebe5,inset 0 -1px 0 #d2ebe5}
.bom-sequence-cell{overflow:hidden;white-space:normal!important}
.bom-sequence-main{display:flex;align-items:center;min-height:22px;white-space:nowrap}
.bom-child-parent{display:block;margin-top:3px;overflow:hidden;color:#60736f;font-size:10px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.bom-child-parent.missing{color:#a45f18;font-weight:700}
.bom-tree-toggle{display:inline-flex;align-items:center;gap:4px;height:24px;margin-right:5px;padding:0 6px;border:1px solid #b8d5cf;border-radius:5px;background:#fff;color:#0b6f62;white-space:nowrap}
.bom-tree-toggle b{font-size:10px;font-weight:700}
.bom-tree-elbow{display:inline-block;margin-right:5px;color:#78908b}
.bom-relation-badge,.bom-primary-badge{display:inline-flex;align-items:center;min-height:19px;margin-right:6px;padding:0 5px;border-radius:999px;background:#e8f2f0;color:#41655f;font-size:11px}
.bom-primary-badge{background:#d9f2e9;color:#08745f}
.bom-child-position{padding-left:18px!important}
.bom-parent-sync-note,.bom-parent-sync-panel{border:1px solid #cfe1dd;border-radius:8px;background:#f4f9f8;padding:12px}
.bom-parent-sync-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}
.bom-parent-sync-panel>div{min-width:0;flex:1}
.bom-parent-sync-panel button{min-height:38px;white-space:nowrap}
.bom-parent-color-feedback{display:grid;gap:4px;margin:-3px 0 12px;padding:10px 12px;border-radius:8px;font-size:13px}
.bom-parent-color-feedback.error{border:1px solid #eab9ae;background:#fff3ef;color:#9b3428}.bom-parent-color-feedback.success{border:1px solid #afd7ca;background:#edf9f5;color:#136c57}
.bom-parent-color-feedback span,.bom-parent-color-feedback small{display:block;line-height:1.45}.bom-parent-color-feedback small{opacity:.85}
.bom-parent-sync-note b,.bom-parent-sync-note span{display:block}
.bom-parent-sync-note span,.bom-parent-sync-panel p{margin:4px 0 0;color:#667a76;font-size:13px}
.bom-parent-candidate-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.bom-parent-candidate-actions button{min-height:34px}
.bom-inline-candidate textarea{width:100%;min-height:88px;padding:9px 10px;border:1px solid #bdcbc8;border-radius:6px;resize:vertical;font:inherit;line-height:1.45}
.bom-sizing-table th:last-child,.bom-sizing-table td:last-child{width:92px;min-width:92px;text-align:center}
.bom-sizing-unit{background:#f4f7f6;color:#536965;font-weight:600;white-space:nowrap}
.bom-sizing-usage-hint{margin-top:12px;padding:10px 12px;border-radius:7px;background:#f4f7f6;color:#5d706c;font-size:13px;line-height:1.45}
.bom-calculator-home,.bom-calculator-card{max-width:1240px;margin:0 auto;padding:18px;border:1px solid #e0e7eb;border-radius:12px;background:#fff}.bom-calculator-tools{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:14px;margin-top:18px}.bom-calculator-tools button{display:flex;min-height:105px;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;padding:18px;border:1px solid #cfdcda;border-radius:11px;background:#f7fbfa;text-align:left}.bom-calculator-tools button:not(:disabled):hover{border-color:#168879;background:#eaf7f4}.bom-calculator-tools button b{font-size:17px}.bom-calculator-tools button span{color:#6d7b88}.bom-calculator-head,.bom-calculator-section,.bom-calculator-actions{display:flex;align-items:center;justify-content:space-between;gap:16px}.bom-calculator-head>div b,.bom-calculator-head>div span,.bom-calculator-section b,.bom-calculator-section span{display:block}.bom-calculator-head>div span,.bom-calculator-section span{margin-top:3px;color:#708090;font-size:12px}.bom-hot-melt-capacities{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;margin:18px 0}.bom-hot-melt-capacities label{display:flex;flex-direction:column;gap:6px;color:#626e7e;font-size:12px}.bom-hot-melt-capacities input{box-sizing:border-box;width:100%}.bom-calculator-section{justify-content:flex-start;margin:20px 0 8px}.bom-calculator-table{max-height:32vh;border:1px solid #dce4e7}.bom-calculator-table table{width:100%;min-width:760px;border-collapse:collapse}.bom-calculator-table th,.bom-calculator-table td{padding:9px 10px;border-bottom:1px solid #e5eaed;text-align:left;font-size:12px;vertical-align:middle}.bom-calculator-table th{position:sticky;top:0;background:#f3f6f7;color:#596875}.bom-calculator-table input{box-sizing:border-box;min-width:82px;width:100%}.bom-calculator-table tr.muted{color:#8b959e;background:#fafafa}.bom-calculator-staged{display:flex;flex-direction:column;gap:4px;margin-top:14px;padding:11px 13px;border:1px solid #9dd4ca;border-radius:8px;background:#eaf7f4;color:#126e63}.bom-calculator-staged span{font-size:12px}.bom-calculator-actions{justify-content:flex-end;margin-top:16px}.bom-calculator-actions button{min-width:110px}
@media(max-width:980px){.bom-calculator-tools,.bom-hot-melt-capacities{grid-template-columns:1fr}}
.bom-each-expand-color{display:inline-flex;align-items:center;gap:7px;margin:2px 0 12px;padding:8px 12px;border:1px solid #dbe3e7;border-radius:8px;background:#f8fafb;color:#344650}.bom-each-expand-color input{width:auto}.bom-each-expand-color:has(input:checked){border-color:#168879;background:#eaf7f4;color:#126e63;font-weight:600}.bom-usage-migration{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:10px 12px;border:1px solid #efc17f;border-radius:8px;background:#fff8ec;color:#8b5918}.bom-usage-migration span{font-size:12px}
.bom-each-expand-table{width:100%}.bom-each-expand-table .el-input-number{width:100%;max-width:220px}.bom-each-expand-table .el-input-number .el-input__inner{text-align:right}.bom-each-expand-table .el-table__cell{padding:7px 0}
.bom-select-all{display:flex;align-items:center;gap:5px;cursor:pointer}.bom-select-all input{width:auto;margin:0}.bom-select-all span{font-size:11px}
.bom-filterable-heading{min-width:184px}.bom-filterable-heading>span{display:block;margin-bottom:5px}.bom-filterable-heading>select{box-sizing:border-box;display:block;width:100%;min-width:160px;height:30px;padding:3px 26px 3px 7px;border:1px solid #cfd9dd;border-radius:5px;background:#fff;font:inherit;color:#485a66}
.bom-copy-dialog{width:min(1500px,96vw);max-height:90vh}.bom-copy-search{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) auto;align-items:end;gap:10px;padding:14px 20px}.bom-copy-search>label{display:grid;gap:5px;color:#626e7e;font-size:12px}.bom-copy-search input{width:100%;box-sizing:border-box}.bom-copy-color-filter{grid-column:1/-2;margin:0;padding:10px 12px;border:1px solid #dbe4e4;border-radius:9px;background:#f7faf9}.bom-copy-color-filter legend{padding:0 5px;color:#61706e;font-size:12px}.bom-copy-color-filter>div{display:flex;flex-wrap:wrap;gap:7px}.bom-copy-color-filter label{display:flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid #d8e1e0;border-radius:7px;background:#fff;cursor:pointer}.bom-copy-color-filter label:has(input:checked){border-color:#168879;background:#eaf7f4}.bom-copy-color-filter input{width:auto}.bom-copy-color-filter b,.bom-copy-color-filter small{display:block}.bom-copy-color-filter small{color:#72807e;font-size:10px}.bom-copy-no-colors{color:#7c8785;font-size:12px}.bom-copy-candidate-table{min-height:280px;overflow:auto}.bom-copy-candidate-table table{min-width:1280px}.bom-copy-candidate-table td{white-space:normal;vertical-align:top}.bom-copy-candidate-table th:nth-child(1){width:48px}.bom-copy-candidate-table th:nth-child(2){width:130px}.bom-copy-candidate-table th:nth-child(3){width:92px}.bom-copy-candidate-table th:nth-child(4){width:130px}.bom-copy-candidate-table th:nth-child(5),.bom-copy-candidate-table th:nth-child(6){width:115px}.bom-copy-candidate-table th:nth-child(7){width:150px}.bom-copy-candidate-table th:nth-child(8){width:105px}.bom-copy-candidate-table th:nth-child(9){width:250px}.bom-copy-candidate-table th:nth-child(10){width:82px}.bom-copy-colors{line-height:1.5}.bom-copy-dialog-status{padding:8px 20px;color:#677574;font-size:12px}.bom-copy-dialog .bom-material-picker-actions>span{color:#687675;font-size:12px}
@media(max-width:1050px){.bom-copy-search{grid-template-columns:repeat(2,minmax(150px,1fr))}.bom-copy-color-filter{grid-column:1/-1}.bom-copy-search>button{grid-column:1/-1}}
.bom-copy-source-lines-table{min-height:360px;max-height:58vh;overflow:auto}.bom-copy-source-lines-table table{min-width:1050px}.bom-copy-source-lines-table th:first-child{width:76px}.bom-copy-source-lines-table th:nth-child(2){width:90px}.bom-copy-source-lines-table th:nth-child(3){width:150px}.bom-copy-source-lines-table th:nth-child(4){width:190px}.bom-copy-source-lines-table th:nth-child(5){width:220px}.bom-copy-source-lines-table td{white-space:normal;vertical-align:middle}.bom-copy-source-lines-table tr{cursor:pointer}.bom-copy-source-lines-table tr.selected{background:#eaf7f4}.bom-copy-source-lines-table tr.bom-child-row td:nth-child(2){padding-left:24px;color:#168879}.bom-copy-dialog .bom-material-picker-pagination>span{margin-right:auto;color:#637270;font-size:13px}
.bom-remark-field{display:flex;flex-direction:column;gap:6px}.bom-remark-field textarea{box-sizing:border-box;width:100%;min-height:68px;resize:vertical;font:inherit}.bom-packaging-modes{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;margin:18px 0}.bom-packaging-modes label{display:flex;gap:9px;align-items:flex-start;padding:14px;border:1px solid #d5e1e3;border-radius:10px;background:#f7fafb}.bom-packaging-modes label:has(input:checked){border-color:#168879;background:#eaf7f4}.bom-packaging-modes span,.bom-packaging-modes small{display:block}.bom-packaging-modes small{margin-top:4px;color:#71808c}.bom-packaging-inputs{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin:14px 0}.bom-packaging-inputs label,.bom-hardboard-input{display:flex;flex-direction:column;gap:6px;color:#626e7e;font-size:12px}.bom-packaging-inputs select,.bom-packaging-inputs input,.bom-hardboard-input input{box-sizing:border-box;width:100%}.bom-hardboard-input{max-width:360px;margin:16px 0}.bom-calculator-result{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px;padding:13px;border:1px solid #9dd4ca;border-radius:9px;background:#eaf7f4}.bom-calculator-result span{min-width:180px;color:#45616a}.bom-calculator-result b{color:#126e63;font-size:16px}@media(max-width:980px){.bom-packaging-modes,.bom-packaging-inputs{grid-template-columns:1fr}}
.bom-material-picker-pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 20px;color:#64727f;font-size:12px}.bom-material-picker-pagination>label,.bom-material-picker-pagination>div{display:flex;align-items:center;gap:8px}.bom-material-picker-pagination select{width:68px}.bom-material-picker-pagination button{min-height:34px;padding:6px 12px}.bom-material-picker-pagination button:disabled{cursor:not-allowed;opacity:.48}@media(max-width:720px){.bom-material-picker-pagination{align-items:flex-start;flex-direction:column}.bom-material-picker-pagination>div{align-self:stretch}.bom-material-picker-pagination button{flex:1}}

/* Vue 物料选择器：整行选择反馈与明确选中标记。 */
.bom-material-picker-table tbody tr.selected{background:#e6f5f1;box-shadow:inset 3px 0 0 var(--green)}
.bom-material-picker-table tbody tr.selected td{border-bottom-color:#b9ddd4}
.bom-material-picker-select{white-space:nowrap}
.bom-material-picker-select input{vertical-align:middle}
.bom-material-picker-select span{display:inline-grid;width:18px;height:18px;margin-left:6px;place-items:center;border-radius:50%;background:#0d8b73;color:#fff;font-size:11px;font-weight:800;vertical-align:middle}
.bom-material-picker-select span:empty{background:transparent}

/* 接口反馈置于页面正上方居中，避免遮挡右下角业务操作。 */
.toast{top:52px;right:auto;bottom:auto;left:50%;z-index:160;max-width:min(720px,calc(100vw - 40px));transform:translateX(-50%);text-align:center}
.bom-vue-mounted > .bom-page-tabs { display: none; }
.bom-vue-mounted #orderBomLinesPanel > .bom-table-card,
.bom-vue-mounted #orderBomLinesPanel > .bom-action-bar { display: none; }
.vue-bom-workspace { min-width: 0; }
.vue-bom-table-card { display:flex;min-height:0;flex-direction:column;margin-top:14px;overflow:hidden; }
.vue-bom-lines-grid { user-select: text; }
.bom-lines-table-wrap{max-width:100%;overflow:auto;overscroll-behavior-inline:contain;box-shadow:inset -12px 0 12px -14px color-mix(in srgb,var(--wb-color-text,#16312d) 35%,transparent)}
.vue-bom-lines-grid th:first-child,.vue-bom-lines-grid td:first-child{position:sticky;left:0;z-index:2;background:var(--wb-color-surface,#fff);box-shadow:1px 0 0 var(--wb-color-border,#d6e1de)}
.vue-bom-lines-grid thead th:first-child{z-index:4;background:var(--wb-color-surface-soft,#f4f8f7)}
.vue-bom-lines-grid .bom-sequence-cell{position:sticky;left:68px;z-index:2;background:var(--wb-color-surface,#fff);box-shadow:1px 0 0 var(--wb-color-border,#d6e1de)}
.vue-bom-lines-grid thead .bom-sequence-cell{z-index:4;background:var(--wb-color-surface-soft,#f4f8f7)}
.vue-bom-lines-grid tbody tr:hover>.bom-sequence-cell,.vue-bom-lines-grid tbody tr:hover>td:first-child{background:var(--wb-color-accent-soft,#edf8f5)}
.vue-bom-lines-grid tbody tr:focus-visible{outline:2px solid var(--wb-color-focus,#087f6b);outline-offset:-2px}
.bom-open-cell .el-button{min-width:44px;min-height:32px}
.vue-bom-lines-grid .bom-row-drag-handle { cursor: grab; user-select: none; }
.vue-bom-action-bar { position: sticky; left: 0; bottom: 0; z-index: 4; }
.vue-bom-workspace details.bom-child-action-menu > summary { list-style: none; cursor: pointer; }
.vue-bom-workspace details.bom-child-action-menu > summary::-webkit-details-marker { display: none; }
.vue-bom-workspace details.bom-child-action-menu.disabled > summary { opacity: .5; pointer-events: none; }
.bom-lines-table-wrap.bom-virtual-scroll { overflow:auto; }

.bom-lines-table-wrap.bom-virtual-scroll thead {
  position: sticky;
  top: 0;
  z-index: 4;
  background: var(--surface, #fff);
}

.bom-lines-grid .bom-virtual-spacer {
  box-sizing: border-box;
  padding: 0 !important;
  border: 0 !important;
}

.bom-relation-summary {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #d6e5df;
  border-radius: 8px;
  background: #f2f8f5;
  color: #50645d;
}

.bom-relation-summary b {
  flex: 0 0 auto;
  color: #16735e;
}

.bom-relation-summary span {
  font-size: 12px;
  line-height: 1.5;
}

.bom-candidate-control > button {
  width: 100%;
  min-height: 34px;
}

/* Vue BOM editor: readonly fields are deliberately flat and carry one explicit badge. */
#orderBomEditorVueMount .bom-readonly-field > span:first-child::after {
  content: none !important;
  display: none !important;
}

#orderBomEditorVueMount .bom-readonly-field input,
#orderBomEditorVueMount input[readonly],
#orderBomEditorVueMount textarea[readonly] {
  box-sizing: border-box;
  border: 1px solid #cbd5d8;
  background: #f1f4f5;
  color: #52636b;
  box-shadow: none !important;
}

#orderBomEditorVueMount .bom-readonly-field input:focus,
#orderBomEditorVueMount input[readonly]:focus,
#orderBomEditorVueMount textarea[readonly]:focus {
  outline: none;
  border-color: #cbd5d8;
  box-shadow: none !important;
}

/* Candidate creation always stays with the control that opened it. */
#orderBomEditorVueMount .bom-candidate-control > .bom-inline-candidate {
  grid-column: 1 / -1;
  box-sizing: border-box;
  width: 100%;
  margin-top: 2px;
}

#orderBomEditorVueMount .bom-candidate-control {
  align-self: start;
  align-content: start;
  min-width: 0;
}

#orderBomEditorVueMount .bom-candidate-control > label {
  display: grid;
  align-content: start;
}

#orderBomEditorVueMount .bom-editor-mapping-pane > .bom-inline-candidate,
#orderBomEditorVueMount .bom-size-mapping-editor + .bom-inline-candidate {
  box-sizing: border-box;
  width: 100%;
  margin-top: 12px;
}

/* Vue color editor: keep the production layout while allowing fast color filtering. */
#orderBomEditorVueMount .bom-editor-mapping-pane {
  align-self: start;
  min-width: 0;
  padding: 16px;
  border: 1px solid #dbe5e4;
  border-radius: 12px;
  background: #f8fbfa;
}

#orderBomEditorVueMount .bom-color-solution-select {
  display: grid;
  gap: 6px;
}

#orderBomEditorVueMount .bom-color-solution-select select {
  width: 100%;
}

#orderBomEditorVueMount .bom-color-solution-control {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  align-items: end;
  gap: 10px 14px;
}

#orderBomEditorVueMount .bom-color-solution-decision {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  padding-bottom: 1px;
}

#orderBomEditorVueMount .bom-color-solution-status {
  margin: 7px 0 2px;
  color: #8b5918;
  font-size: 12px;
}

#orderBomEditorVueMount .bom-inline-solution-name-row {
  margin-top: 10px;
  padding: 12px;
  border: 1px solid #cfe0dc;
  border-radius: 9px;
  background: #fff;
}

#orderBomEditorVueMount .bom-inline-solution-name-row label {
  display: grid;
  gap: 5px;
  min-width: 0;
}

#orderBomEditorVueMount .bom-inline-solution-toolbar > .bom-inline-solution-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
}

#orderBomEditorVueMount .bom-searchable-color-select {
  position: relative;
  min-width: 0;
  width: 100%;
}

#orderBomEditorVueMount .bom-searchable-color-select > input {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  background: #fff;
}

#orderBomEditorVueMount .bom-searchable-candidate-options {
  position: absolute;
  z-index: 500;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  display: flex;
  height: min(360px, 42vh);
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 5px;
  border: 1px solid #bccac7;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(28,48,44,.2);
}

#orderBomEditorVueMount .bom-searchable-candidate-options>button {
  min-height: 34px;
  width: 100%;
  padding: 7px 9px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #243d38;
  text-align: left;
  white-space: normal;
}

#orderBomEditorVueMount .bom-searchable-candidate-options>button:hover,
#orderBomEditorVueMount .bom-searchable-candidate-options>button.active {
  background: #eaf6f3;
}

#orderBomEditorVueMount .bom-searchable-candidate-options>button.selected {
  color: #087463;
  font-weight: 700;
}

#orderBomEditorVueMount .bom-searchable-candidate-options>button.bom-searchable-add {
  margin-top: 4px;
  border-top: 1px solid #dfe7e5;
  border-radius: 0 0 5px 5px;
  color: #087463;
}

#orderBomEditorVueMount .bom-searchable-empty {
  padding: 9px;
  color: #788682;
  font-size: 12px;
}

#orderBomEditorVueMount .bom-searchable-result-hint {
  position: sticky;
  bottom: -5px;
  margin-top: auto;
  padding: 8px 9px;
  border-top: 1px solid #dfe7e5;
  background: #f6f9f8;
  color: #667772;
  font-size: 12px;
}

#orderBomEditorVueMount .bom-inline-solution-matrix {
  overflow: visible;
}

#orderBomEditorVueMount .bom-color-solution-diverged {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 8px 0;
  padding: 10px 12px;
  border: 1px solid #e5b66a;
  border-radius: 8px;
  background: #fff8e8;
  color: #744b0a;
}
#orderBomEditorVueMount .bom-color-solution-diverged b,
#orderBomEditorVueMount .bom-color-solution-diverged span { display:block; }
#orderBomEditorVueMount .bom-color-solution-diverged span { margin-top:3px;font-size:12px; }

#orderBomEditorVueMount .bom-size-mapping-full {
  grid-column: 1 / -1;
  width: auto;
}

@media (max-width: 900px) {
  #orderBomEditorVueMount .bom-color-solution-control {
    grid-template-columns: 1fr;
  }
  #orderBomEditorVueMount .bom-color-solution-decision {
    justify-content: flex-start;
  }
  #orderBomEditorVueMount .bom-inline-solution-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }
  #orderBomEditorVueMount .bom-inline-solution-toolbar > .bom-inline-solution-actions {
    justify-content: flex-start;
  }
}

/* Keep editor actions on one shared visual system without changing permissions. */
#orderBomEditorVueMount .bom-editor-vue-body button,
#orderBomEditorVueMount .bom-drawer-actions button {
  min-height: 36px;
  padding: 7px 13px;
  border-radius: 8px;
  font: inherit;
  font-weight: 600;
  line-height: 1.2;
}

#orderBomEditorVueMount .bom-editor-vue-body button.secondary,
#orderBomEditorVueMount .bom-drawer-actions button.secondary {
  border: 1px solid #c7d4d2;
  background: #fff;
  color: #344b47;
}

#orderBomEditorVueMount .bom-editor-vue-body button.primary,
#orderBomEditorVueMount .bom-drawer-actions button.primary {
  border: 1px solid #168879;
  background: #168879;
  color: #fff;
}

#orderBomEditorVueMount .bom-editor-vue-body button.danger,
#orderBomEditorVueMount .bom-drawer-actions button.danger {
  border: 1px solid #c94b43;
  background: #fff;
  color: #b33b34;
}

#orderBomEditorVueMount .bom-editor-vue-body button:disabled,
#orderBomEditorVueMount .bom-drawer-actions button:disabled {
  cursor: not-allowed;
  opacity: .5;
}

#orderBomEditorVueMount .bom-inline-candidate-head button {
  min-width: 36px;
  padding: 5px 9px;
}

/* A single selected BOM row is emphasized as the current operation target. */
.vue-bom-lines-grid tbody tr.bom-single-selected > td {
  background: #fff8df;
}

.vue-bom-lines-grid tbody tr.bom-single-selected > td:first-child {
  box-shadow: inset 4px 0 #d8a126;
}

.vue-bom-lines-grid tbody tr.bom-single-selected:hover > td {
  background: #fff3c3;
}

/* Vue editor panels and candidate forms follow the active business switches. */
#orderBomEditorVueMount .bom-editor-columns.without-mapping-pane {
  grid-template-columns: minmax(520px, 760px);
  justify-content: start;
}

#orderBomEditorVueMount .bom-inline-candidate.is-single input {
  box-sizing: border-box;
  width: 100%;
  min-height: 36px;
  padding: 8px 10px;
  border: 1px solid #bdcbc8;
  border-radius: 6px;
  font: inherit;
}

#orderBomEditorVueMount .bom-matrix-missing-colors {
  margin: 10px 0;
  padding: 9px 11px;
  border: 1px solid #efc17f;
  border-radius: 8px;
  background: #fff8ec;
  color: #8b5918;
  font-size: 12px;
  line-height: 1.5;
}

.bom-size-mapping-matrix .bom-size-mapping-select {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  font-size: 11px;
}

.bom-size-mapping-matrix .bom-size-mapping-select .el-select__wrapper {
  min-width: 0;
}

.bom-size-mapping-matrix .bom-size-mapping-select .el-select__selected-item,
.bom-size-mapping-matrix .bom-size-mapping-select .el-select__placeholder,
.bom-size-mapping-matrix .bom-size-mapping-select .el-select__input {
  min-width: 0;
  max-width: 100%;
  font-size: 10px;
  line-height: 1.2;
}

.bom-size-mapping-matrix .bom-size-mapping-select .el-select__selected-item span {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bom-material-candidate-select {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
}

.bom-size-mapping-toolbar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 12px;
}

.bom-size-mapping-toolbar > span {
  color: #687a76;
  font-size: 12px;
}

.bom-size-mapping-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* BOMSizeMapping is a complete business component: the fixed row heading and
   horizontally scrollable dimension columns stay inside its own viewport. */
.vue-bom-editor-drawer .bom-size-mapping {
  grid-column: 1 / -1;
  min-width: 0;
}
.vue-bom-editor-drawer .bom-size-mapping__dimension .el-form-item { margin-bottom: 4px; }
.vue-bom-editor-drawer .bom-size-mapping__dimension .el-radio-group { display:flex;flex-wrap:wrap; }
.vue-bom-editor-drawer .bom-size-mapping__toolbar { display:flex;justify-content:flex-end;gap:8px;margin:12px 0; }
.vue-bom-editor-drawer .bom-size-mapping__matrix {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  border: 1px solid #dbe3e7;
  border-radius: 8px;
  background: #fff;
}
.vue-bom-editor-drawer .bom-size-mapping__matrix .el-table {
  width:100%;min-width:0;
  --el-table-border-color:#dbe3e7;
  --el-table-row-hover-bg-color:#f3f8f7;
}
.vue-bom-editor-drawer .bom-size-mapping__matrix .el-scrollbar__wrap { overscroll-behavior-inline:contain; }
.vue-bom-editor-drawer .bom-size-mapping__matrix .el-table-fixed-column--left {
  background:#eef3f2;color:#50635f;font-weight:600;
}
/* Editor overlays use one explicit Workbench layer scale. The material picker is
   teleported to body so it cannot be trapped below the Element Plus drawer. */
.bom-material-picker-mask { z-index: var(--wb-z-dialog, 2300); }
.bom-material-picker-feedback { padding: 0 20px 10px; }
.bom-material-picker-search > .el-select { flex: 0 0 250px; max-width: 32%; }
.bom-material-picker-search > .el-input { flex: 1 1 auto; min-width: 0; }
.bom-material-picker-pagination .el-select { width: 72px; }
.bom-material-picker-head > .el-button { font-size: 13px; }

/* The Vue drawer owns Element Plus controls. Paint readonly state on the
   complete Element wrapper instead of only its inner native input, otherwise
   the wrapper padding remains white and the gray fill looks too short. */
.vue-bom-editor-drawer .bom-editor-grid .el-input,
.vue-bom-editor-drawer .bom-editor-grid .el-select,
.vue-bom-editor-drawer .bom-editor-grid .el-textarea {
  width: 100%;
  min-width: 0;
}

.vue-bom-editor-drawer .bom-readonly-field .el-input__wrapper {
  box-sizing: border-box;
  width: 100%;
  background: #f1f4f5;
  box-shadow: 0 0 0 1px #cbd5d8 inset !important;
  cursor: default;
}

.vue-bom-editor-drawer .bom-readonly-field .el-input__wrapper:hover,
.vue-bom-editor-drawer .bom-readonly-field .el-input__wrapper.is-focus {
  box-shadow: 0 0 0 1px #cbd5d8 inset !important;
}

.vue-bom-editor-drawer .bom-readonly-field .el-input__inner {
  border: 0;
  background: transparent;
  color: #52636b;
  box-shadow: none !important;
  cursor: default;
}

/* Do not let the legacy generic label rule turn Element Plus checkboxes into
   vertical form labels. The checkbox frame and its label are one hit target. */
.vue-bom-editor-drawer .bom-mode-checks {
  flex-wrap: wrap;
}

.vue-bom-editor-drawer .bom-mode-checks > .el-checkbox {
  display: inline-flex;
  width: auto;
  min-width: 0;
  min-height: 34px;
  box-sizing: border-box;
  flex: 0 0 auto;
  flex-direction: row;
  align-items: center;
  gap: 0;
  margin: 0;
  padding: 0 12px;
  border: 1px solid #d8e1e4;
  border-radius: 8px;
  background: #fff;
  color: #33424e;
  cursor: pointer;
}

.vue-bom-editor-drawer .bom-mode-checks > .el-checkbox.is-checked {
  border-color: #168879;
  background: #eaf7f4;
  color: #126e63;
  font-weight: 600;
}

.vue-bom-editor-drawer .bom-mode-checks > .el-checkbox.is-disabled {
  border-color: var(--el-disabled-border-color);
  background: var(--el-disabled-bg-color);
  color: var(--el-text-color-placeholder);
  cursor: not-allowed;
}

.vue-bom-editor-drawer .bom-mode-checks .el-checkbox__input {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
}

.vue-bom-editor-drawer .bom-mode-checks .el-checkbox__label {
  display: inline-flex;
  align-items: center;
  padding-left: 7px;
  line-height: 1.2;
}

/* Element Plus owns all BOM editor tables. Horizontal overflow stays inside
   each table instead of changing the drawer or page width. */
.vue-bom-editor-drawer .bom-inline-solution-matrix,
.vue-bom-editor-drawer .bom-size-mapping-table,
.vue-bom-editor-drawer .bom-calculator-table,
.bom-material-picker .bom-material-picker-table {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dbe3e7;
  border-radius: 8px;
  background: #fff;
}

.vue-bom-editor-drawer .bom-inline-solution-matrix .el-table,
.vue-bom-editor-drawer .bom-size-mapping-table .el-table,
.vue-bom-editor-drawer .bom-calculator-table .el-table,
.bom-material-picker .bom-material-picker-table .el-table {
  width: 100%;
  --el-table-border-color: #dbe3e7;
  --el-table-header-bg-color: #eef3f2;
  --el-table-row-hover-bg-color: #f3f8f7;
}

.vue-bom-editor-drawer .bom-inline-solution-matrix {
  max-height: 310px;
  overflow: auto;
}

.vue-bom-editor-drawer .bom-size-mapping-table {
  margin-top: 12px;
  overflow-x: auto;
}

.vue-bom-editor-drawer .bom-size-mapping-matrix {
  min-width: max-content;
  width: 100%;
}

.vue-bom-editor-drawer .bom-size-mapping-matrix.compact {
  min-width: 100%;
}

.vue-bom-editor-drawer .bom-size-mapping-matrix .el-table__cell {
  padding: 6px 4px;
}

.vue-bom-editor-drawer .bom-size-mapping-matrix .el-table-fixed-column--left {
  background: #eef3f2;
  color: #50635f;
  font-weight: 600;
}

.vue-bom-editor-drawer .bom-calculator-table {
  max-height: 32vh;
  overflow: auto;
}

.bom-material-picker .bom-material-picker-table {
  margin: 0 20px;
  min-height: 240px;
}

.bom-material-picker .bom-material-picker-table .el-table__row {
  cursor: pointer;
}

.bom-material-picker .bom-material-picker-table .current-row > td.el-table__cell {
  background: #e6f5f1 !important;
}

.bom-material-create-form .el-input,
.bom-material-create-form .el-input-number,
.bom-material-create-form .el-select,
.bom-material-create-form .el-textarea {
  width: 100%;
  min-width: 0;
}

.bom-color-style-cell b,
.bom-color-style-cell span {
  display: block;
}

.bom-color-style-cell span {
  margin-top: 2px;
  color: #687783;
  font-size: 11px;
}

.vue-bom-editor-drawer .bom-mode-checks > span {
  flex: 0 0 auto;
  white-space: nowrap;
}

.vue-bom-editor-drawer .bom-mode-checks > small {
  flex: 1 1 100%;
  margin-left: 0;
}

/* BOM Design System sample room: Drawer > Tabs > SectionCard > FormGroup. */
.vue-bom-editor-drawer .bom-editor-vue-body {
  display: grid;
  gap: var(--wb-space-4, 16px);
}
.vue-bom-editor-drawer .bom-editor-columns {
  align-items: start;
}
.vue-bom-editor-drawer .bom-basic-editor,
.vue-bom-editor-drawer .bom-color-mapping,
.vue-bom-editor-drawer .bom-destination-mapping,
.vue-bom-editor-drawer .bom-sizing-editor,
.vue-bom-editor-drawer .bom-calculator,
.vue-bom-editor-drawer .bom-size-mapping-editor {
  min-width: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.vue-bom-editor-drawer .bom-color-mapping {
  display: grid;
  gap: 12px;
}
.vue-bom-editor-drawer .bom-color-mapping__solution-block {
  display: grid;
  gap: 8px;
  max-width: 680px;
  min-width: 0;
}
.vue-bom-editor-drawer .bom-color-mapping__solution-row {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) auto;
  align-items: end;
  gap: 12px;
}
.vue-bom-editor-drawer .bom-color-mapping__solution-form {
  width: 100%;
  min-width: 0;
}
.vue-bom-editor-drawer .bom-color-mapping__solution-form .el-form-item {
  margin-bottom: 0;
}
.vue-bom-editor-drawer .bom-color-mapping__create {
  min-width: 72px;
}
.vue-bom-editor-drawer .bom-color-mapping__solution-block > .bom-inline-solution-actions {
  justify-content: flex-start;
}
.vue-bom-editor-drawer .bom-color-mapping__matrix-toolbar {
  margin: 2px 0 0;
}
/* Mapping matrix rule: the narrow row identity is fixed, all attribute
   controls share a stable minimum width, and ElTable alone owns horizontal
   scrolling so its header and body can never drift apart. */
.vue-bom-editor-drawer .bom-color-mapping__matrix {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  border: 1px solid var(--wb-color-border, #dbe3e7);
  border-radius: var(--wb-radius-sm, 8px);
  background: #fff;
}
.vue-bom-editor-drawer .bom-color-mapping__matrix .el-table {
  width: 100%;
  --el-table-border-color: var(--wb-color-border, #dbe3e7);
  --el-table-header-bg-color: #eef3f2;
  --el-table-row-hover-bg-color: #f3f8f7;
}
.vue-bom-editor-drawer .bom-color-mapping__matrix .bom-material-candidate-select {
  width: 100%;
  min-width: 280px;
}
.vue-bom-editor-drawer .bom-destination-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 16px;
}
.vue-bom-editor-drawer .bom-destination-options .el-checkbox {
  min-width: 0;
  margin-right: 0;
}
.wb-color-solution-dialog .el-dialog__body {
  padding-bottom: 8px;
}
.vue-bom-editor-drawer .wb-bom-form .el-form-item { margin-bottom: 12px; }
.vue-bom-editor-drawer .wb-bom-form .el-form-item__label {
  height: auto;
  padding-bottom: 5px;
  color: var(--wb-color-muted);
  font-size: 12px;
  line-height: 1.25;
}
.vue-bom-editor-drawer .wb-bom-form--grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 12px;
}
.vue-bom-editor-drawer .wb-bom-form--business {
  display: grid;
  grid-template-columns: minmax(180px, 1.4fr) repeat(3, minmax(92px, .65fr)) minmax(160px, 1fr);
  gap: 0 10px;
}
.vue-bom-editor-drawer .wb-bom-form--formula {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto;
  align-items: end;
  gap: 12px;
}
.vue-bom-editor-drawer .wb-bom-form .is-wide { grid-column: 1 / -1; }
.vue-bom-editor-drawer .bom-material-identity-layout { margin-top: 12px; }
.vue-bom-editor-drawer .bom-material-action-group {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
}
.vue-bom-editor-drawer .bom-material-action-group .el-button {
  width: 100%;
  height: var(--wb-control-height, 32px);
  margin: 0;
}
.vue-bom-editor-drawer .bom-material-primary-fields { min-width: 0; }
.vue-bom-editor-drawer .wb-bom-mode-field { min-width: 0; }
.vue-bom-editor-drawer .wb-bom-checkbox-group {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  min-height: 36px;
  align-items: start;
  gap: 10px 18px;
  padding: 4px 0;
}
.vue-bom-editor-drawer .wb-bom-checkbox-group .el-checkbox {
  width: fit-content;
  justify-self: start;
  margin-right: 0;
}
.vue-bom-editor-drawer .wb-bom-mode-option {
  display: grid;
  align-content: start;
  justify-items: start;
  gap: 4px;
  min-width: 0;
}
.vue-bom-editor-drawer .wb-bom-mode-option__help {
  margin: 0;
  color: var(--wb-color-muted, #687a75);
  font-size: 12px;
  line-height: 18px;
  overflow-wrap: anywhere;
}
.vue-bom-editor-drawer .wb-bom-form--direct {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 12px;
}
.vue-bom-editor-drawer .wb-bom-form--direct .bom-candidate-control,
.vue-bom-editor-drawer .wb-bom-form--direct .bom-material-candidate-select {
  width: 100%;
  min-width: 0;
}
.vue-bom-editor-drawer .bom-inline-solution-matrix,
.vue-bom-editor-drawer .bom-size-mapping-table,
.vue-bom-editor-drawer .bom-calculator-table {
  border: 0;
  border-radius: var(--wb-radius-sm, 8px);
  overflow: hidden;
}
.vue-bom-editor-drawer .bom-calculator-panel { display: grid; gap: 20px; }
.vue-bom-editor-drawer .bom-calculator-panel__choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(260px, 1fr));
  gap: 14px;
}
.vue-bom-editor-drawer .bom-calculator-choice {
  min-height: 104px;
  cursor: pointer;
}
.vue-bom-editor-drawer .bom-calculator-choice .el-card {
  height: 100%;
  border-color: var(--wb-color-border, #d4dfdc);
  background: var(--wb-color-surface-subtle, #f7faf9);
  transition: border-color .18s ease, background-color .18s ease;
}
.vue-bom-editor-drawer .bom-calculator-choice:hover .el-card,
.vue-bom-editor-drawer .bom-calculator-choice:focus-visible .el-card {
  border-color: var(--wb-color-primary, #087f6b);
}
.vue-bom-editor-drawer .bom-calculator-choice:focus-visible { outline: 2px solid color-mix(in srgb, var(--wb-color-primary, #087f6b) 28%, transparent); outline-offset: 2px; }
.vue-bom-editor-drawer .bom-calculator-choice.is-active .el-card {
  border-color: var(--wb-color-primary, #087f6b);
  background: var(--wb-color-primary-soft, #eaf7f4);
}
.vue-bom-editor-drawer .bom-calculator-choice.is-disabled {
  opacity: .56;
  cursor: not-allowed;
}
.vue-bom-editor-drawer .bom-calculator-choice .el-card__body {
  display: grid;
  align-content: center;
  gap: 6px;
  min-height: 102px;
  box-sizing: border-box;
}
.vue-bom-editor-drawer .bom-calculator-choice b { font-size: 16px; }
.vue-bom-editor-drawer .bom-calculator-choice span,
.vue-bom-editor-drawer .bom-calculator-choice small { color: var(--wb-color-muted, #687a75); }
.vue-bom-editor-drawer .bom-calculator-panel__empty { padding-block: 20px; }
.vue-bom-editor-drawer .bom-calculator-panel__workspace {
  width: 100%;
  max-width: 900px;
  margin-inline: auto;
}
.vue-bom-editor-drawer .bom-calculator-panel__workspace-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
  color: var(--wb-color-muted, #687a75);
  font-size: 13px;
}
.vue-bom-editor-drawer .bom-calculator-gate { display: inline-flex; }
.vue-bom-editor-drawer .wb-validation-summary { display: grid; gap: 12px; }
.vue-bom-editor-drawer .wb-validation-summary__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.vue-bom-editor-drawer .wb-validation-summary__head > div { display: flex; gap: 8px; }
.vue-bom-editor-drawer .wb-feedback-list { margin: 8px 0 0; padding-left: 20px; }
.vue-bom-editor-drawer .el-alert + .el-alert { margin-top: 8px; }
@media (max-width: 900px) {
  .vue-bom-editor-drawer .wb-bom-form--grid,
  .vue-bom-editor-drawer .wb-bom-form--business,
  .vue-bom-editor-drawer .wb-bom-form--formula,
  .vue-bom-editor-drawer .wb-bom-form--direct { grid-template-columns: 1fr; }
  .vue-bom-editor-drawer .wb-bom-checkbox-group { grid-template-columns: repeat(2, minmax(140px, 1fr)); }
  .vue-bom-editor-drawer .bom-color-mapping__solution-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .vue-bom-editor-drawer .bom-destination-options { grid-template-columns: 1fr; }
  .vue-bom-editor-drawer .bom-calculator-panel__choices { grid-template-columns: 1fr; }
}
