.bom-create-btn{box-shadow:0 8px 22px rgba(15,163,184,.2)}
.bom-authoring-modal{width:min(1660px,97vw);height:min(900px,95vh);max-height:95vh;display:flex;flex-direction:column;overflow:hidden}
.bom-modal-head{padding-block:14px}.bom-modal-head p{margin-top:3px}
.bom-authoring-body{padding:12px 18px 14px;overflow:auto;display:grid;gap:11px;min-height:0}
.bom-authoring-header-grid{display:grid;grid-template-columns:repeat(4,minmax(155px,1fr));gap:9px 11px;padding:12px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(135deg,rgba(56,189,248,.045),rgba(45,212,191,.035))}
.bom-authoring-header-grid label,.bom-formula-field{display:grid;gap:5px;min-width:0;font-size:11px;font-weight:800;color:var(--muted)}
.bom-authoring-header-grid .wide{grid-column:span 2}
.bom-authoring-header-grid input,.bom-authoring-header-grid select,.bom-authoring-header-grid textarea,.pending-bom-toolbar input,.pending-bom-toolbar select{width:100%;min-height:36px;border:1px solid var(--line);border-radius:9px;padding:6px 9px;background:var(--panel);color:var(--text);font:inherit;font-weight:600}
.bom-authoring-header-grid textarea{resize:none;min-height:79px;line-height:1.35}
.bom-formula-field{align-content:start}.bom-formula-field>label{display:grid;gap:5px}
.formula-selection-card{min-height:38px;border:1px solid rgba(99,102,241,.2);border-radius:10px;background:linear-gradient(135deg,rgba(99,102,241,.065),rgba(217,70,239,.035));padding:7px 9px;display:grid;gap:5px;color:var(--text)}
.formula-selection-card.empty{place-items:center;color:var(--muted);font-weight:600;background:rgba(148,163,184,.05)}
.formula-selection-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.formula-selection-title b{color:#24438a}.formula-selection-title span{font-size:10px;text-transform:uppercase;color:var(--muted)}
.formula-selection-metrics{display:flex;gap:5px;flex-wrap:wrap}.formula-selection-metrics span{padding:3px 7px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font-size:10px;font-weight:650;color:var(--muted)}.formula-selection-metrics b{color:var(--text)}
.formula-selection-steps{display:flex;gap:4px;flex-wrap:wrap}.formula-selection-steps span{font-size:9px;color:#53658a;background:rgba(255,255,255,.55);border-radius:5px;padding:2px 5px}
.bom-authoring-toolbar,.pending-bom-toolbar,.approval-batch-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.bom-authoring-toolbar>div{display:flex;gap:10px;align-items:center}.bom-authoring-toolbar span{color:var(--muted);font-size:11px}
.bom-authoring-table-wrap{max-height:360px;border-radius:13px;overflow:auto}.bom-authoring-table{width:100%;min-width:1160px;table-layout:fixed}.bom-authoring-table .col-no{width:36px}.bom-authoring-table .col-part{width:125px}.bom-authoring-table .col-material{width:145px}.bom-authoring-table .col-name{width:145px}.bom-authoring-table .col-unit{width:72px}.bom-authoring-table .col-size{width:76px}.bom-authoring-table .col-weight{width:85px}.bom-authoring-table .col-qty{width:72px}.bom-authoring-table .col-price{width:112px}.bom-authoring-table .col-amount{width:110px}.bom-authoring-table .col-remove{width:38px}
.bom-authoring-table th{position:sticky;top:0;z-index:2;padding:7px 6px;font-size:10px;white-space:normal}.bom-authoring-table td{padding:5px 6px;vertical-align:middle}.bom-authoring-table input{width:100%;min-width:0;height:31px;border:1px solid var(--line);border-radius:7px;padding:4px 7px;background:var(--panel);color:var(--text);font-size:11px;font-weight:650}.bom-authoring-table input:focus{border-color:#1ea9c5;box-shadow:0 0 0 2px rgba(30,169,197,.1);outline:0}.bom-authoring-table td>b{font-size:11px}.bom-authoring-table .icon-action{width:26px;height:26px;border-radius:7px;border:1px solid rgba(244,63,94,.25);background:rgba(244,63,94,.06);font-size:16px;line-height:1;cursor:pointer}
.bom-row-missing-price{background:rgba(245,158,11,.045)}.server-price{display:block}.server-price+small{display:block;font-size:9px;color:var(--muted)}.server-price.ready{color:#059669}.server-price.missing{color:#d97706}
.material-suggestion-portal{position:fixed;display:none;z-index:10020;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 22px 55px rgba(2,20,45,.28);max-height:290px;overflow:auto;padding:4px}.material-suggestion-portal.show{display:block}.material-suggestion-portal button{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:8px;background:transparent;color:var(--text);padding:8px 9px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;cursor:pointer}.material-suggestion-portal button:last-child{border-bottom:0}.material-suggestion-portal button:hover,.material-suggestion-portal button.active{background:rgba(56,189,248,.1)}.material-suggestion-portal .suggest-code{display:grid;gap:2px;min-width:0}.material-suggestion-portal .suggest-code b{font-size:12px}.material-suggestion-portal .suggest-code small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-suggestion-portal em{font-size:10px;font-style:normal;font-weight:800}.material-suggestion-portal em.ready{color:#059669}.material-suggestion-portal em.missing{color:#d97706}.material-suggestion-empty,.material-suggestion-loading{padding:12px;color:var(--muted);font-size:11px}
.bom-preview-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;padding:9px;border-radius:12px;border:1px solid var(--line)}.bom-preview-summary.ready{background:rgba(16,185,129,.055)}.bom-preview-summary.review{background:rgba(245,158,11,.06)}.bom-preview-summary>div{display:grid;gap:2px}.bom-preview-summary span{font-size:9px;text-transform:uppercase;color:var(--muted);font-weight:800}.bom-preview-summary b{font-size:13px}.bom-preview-summary small{color:var(--muted);font-size:9px}.bom-preview-issues{margin:6px 0 0;padding:8px 25px;border-radius:10px;background:rgba(245,158,11,.08);color:#9a6500;font-size:11px}.approval-ready-note{margin-top:6px;padding:8px 10px;border-radius:9px;background:rgba(16,185,129,.08);color:#047857;font-size:11px;font-weight:700}
.bom-authoring-actions{padding:10px 18px}.bom-authoring-actions .btn-main{min-width:145px}
.pending-bom-modal{width:min(1500px,96vw);max-height:94vh;overflow:auto}.bom-workspace-tabs{display:flex;gap:5px;padding:10px 20px 0;border-bottom:1px solid var(--line)}.bom-workspace-tabs button{border:0;border-radius:9px 9px 0 0;background:transparent;color:var(--muted);padding:9px 15px;font-weight:800;cursor:pointer}.bom-workspace-tabs button.active{background:rgba(56,189,248,.1);color:#0d6788;box-shadow:inset 0 -2px #20b7d0}
.pending-bom-toolbar{padding:11px 20px}.pending-bom-toolbar input{min-width:235px}.pending-bom-toolbar select{margin-right:auto;min-width:190px}.pending-bom-modal #pendingBomSummary,.pending-bom-modal #pendingBomTable,.pending-bom-modal #pendingBomResult{padding:0 20px 10px}.pending-bom-modal #pendingBomTable .table-wrap{max-height:450px}.pending-bom-modal #pendingBomTable th{position:sticky;top:0;z-index:2}.pending-bom-modal #pendingBomTable td small{display:block;margin-top:2px;color:var(--muted);font-size:9px;font-weight:600}
.detail-metric-strip{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.detail-metric-strip span{padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:rgba(56,189,248,.045);font-size:11px;color:var(--muted)}.detail-metric-strip b{display:block;margin-top:2px;color:var(--text)}
.material-batch-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto;align-items:center;gap:12px;padding:11px 13px;margin:0 0 9px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(135deg,rgba(56,189,248,.05),rgba(45,212,191,.04))}.material-batch-copy{display:grid;gap:2px}.material-batch-copy b{font-size:14px}.material-batch-copy span{font-size:10px;color:var(--muted)}.material-batch-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.material-batch-actions strong{min-width:82px;text-align:right;color:#52698e;font-size:12px}.material-batch-toolbar+.table-wrap{margin-top:0}.selection-col{width:42px;min-width:42px;text-align:center!important}.batch-check,.selection-col input[type=checkbox]{appearance:auto!important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;margin:0!important;padding:0!important;vertical-align:middle}.btn-main.compact{min-height:34px;padding:6px 11px}
.approval-batch-toolbar{justify-content:flex-start;padding:9px 11px;border-bottom:1px solid var(--line);background:rgba(56,189,248,.04)}.approval-batch-toolbar select{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:5px 8px;background:var(--panel);color:var(--text)}.approval-batch-toolbar span{margin-left:auto;color:var(--muted);font-weight:700}.hidden-by-batch-filter{display:none!important}
.bom-detail-modal .table-wrap,.rate-detail-modal .table-wrap{max-height:520px}.bom-detail-modal .table,.rate-detail-modal .table{min-width:1050px}.bom-detail-modal th,.rate-detail-modal th{position:sticky;top:0;z-index:2}
@media(max-width:1100px){.bom-authoring-header-grid{grid-template-columns:1fr 1fr}.bom-authoring-header-grid .wide{grid-column:span 2}.bom-preview-summary{grid-template-columns:1fr 1fr}.material-batch-toolbar{grid-template-columns:1fr}.material-batch-actions{justify-content:flex-start}.bom-authoring-modal{width:98vw}}
@media(max-width:700px){.bom-authoring-header-grid{grid-template-columns:1fr}.bom-authoring-header-grid .wide{grid-column:span 1}.pending-bom-toolbar input,.pending-bom-toolbar select{min-width:100%;margin:0}.bom-authoring-body{padding-inline:10px}.bom-preview-summary{grid-template-columns:1fr}.material-batch-actions>*{flex:1}.material-batch-actions strong{flex-basis:100%;text-align:left}}
/* Generic detail modal must sit above the BOM workspace modal. */
#modal.modal-backdrop.show{z-index:10060}

.pending-bom-toolbar input,.pending-bom-toolbar select{width:auto;flex:0 1 auto}
.pending-bom-toolbar input{flex-basis:280px}.pending-bom-toolbar select{flex-basis:220px}
#bomDraftActions.hidden,#bomApprovalActions.hidden{display:none!important}

.bom-modal-head-actions { display:flex; align-items:center; gap:8px; }
