.bom-page{display:grid;gap:18px;padding:0 0 32px}.bom-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:24px;border:1px solid var(--v5-border,#dfe4ee);border-radius:18px;background:var(--v5-surface,#fff)}.bom-header h1{margin:4px 0 8px;font-size:clamp(24px,3vw,38px);line-height:1.08}.bom-header-actions,.bom-inspector-actions,.bom-modal-actions,.bom-editor-section-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.bom-kpis{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px}.bom-kpi{display:grid;gap:5px;padding:14px;border-radius:12px;background:#f5f7fb;border:1px solid #e5e9f2}.bom-kpi span{font-size:12px;color:#667085}.bom-kpi strong{font-size:20px;color:#111a2d}.bom-tabs{display:flex;gap:6px;padding:5px;border-radius:12px;background:#edf0f6;width:max-content;max-width:100%;overflow:auto}.bom-tabs button{border:0;background:transparent;border-radius:9px;padding:9px 14px;white-space:nowrap}.bom-tabs button.active{background:#fff;box-shadow:0 1px 4px rgba(17,26,45,.12);font-weight:700}.bom-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,420px);gap:18px;align-items:start}.bom-table-wrap{overflow:auto;border:1px solid #dfe4ee;border-radius:14px;background:#fff}.bom-table{width:100%;border-collapse:collapse;min-width:980px}.bom-table th,.bom-table td{padding:13px 14px;border-bottom:1px solid #edf0f5;text-align:left;vertical-align:middle}.bom-table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#667085;background:#f8f9fc;position:sticky;top:0}.bom-table tr{cursor:pointer}.bom-table tbody tr:hover,.bom-table tr.selected{background:#f5f3ff}.bom-table td strong,.bom-table td small{display:block}.bom-table td small{color:#667085;margin-top:3px}.bom-empty{text-align:center!important;padding:32px!important;color:#667085}.bom-readiness{display:flex;align-items:center;gap:8px;min-width:140px}.bom-progress-track{height:7px;flex:1;border-radius:999px;background:#e8eaf0;overflow:hidden}.bom-progress-value{display:block;height:100%;border-radius:inherit;background:#5d39cf}.bom-badge{display:inline-flex;align-items:center;max-width:220px;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.2}.bom-ok,.bom-low{background:#e9f8ef;color:#176b3a}.bom-neutral{background:#eef1f6;color:#475467}.bom-medium{background:#fff5db;color:#8a5b00}.bom-high{background:#ffeadf;color:#9f3a14}.bom-critical{background:#fde8e8;color:#a32020}.bom-inspector{display:grid;gap:16px;padding:20px;border:1px solid #dfe4ee;border-radius:14px;background:#fff;position:sticky;top:16px}.bom-inspector h2,.bom-inspector h3{margin:0}.bom-inspector h3{font-size:14px;margin-top:4px}.bom-inspector-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.bom-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bom-summary>div,.bom-cost-card dl>div{display:grid;gap:3px;padding:10px;border-radius:10px;background:#f7f8fb}.bom-summary dt,.bom-cost-card dt{font-size:11px;color:#667085}.bom-summary dd,.bom-cost-card dd{margin:0;font-weight:700}.bom-line-list,.bom-risk-list{display:grid;gap:8px}.bom-line-view{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:11px;border:1px solid #e6e9f0;border-radius:10px}.bom-line-view strong{grid-column:1/-1}.bom-line-view span{font-size:12px;color:#667085}.bom-risk{display:flex;align-items:center;gap:8px;padding:9px;border-radius:10px;background:#fafafa}.bom-cost-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.bom-cost-card{border:1px solid #dfe4ee;border-radius:14px;background:#fff;padding:16px}.bom-cost-card-head{display:flex;justify-content:space-between;gap:8px}.bom-cost-card dl{display:grid;gap:7px;margin:14px 0 0}.bom-cost-card dl>div{grid-template-columns:1fr auto;align-items:center}.bom-load-more{margin-top:12px}.bom-error{padding:12px 14px;border-radius:10px;background:#fde8e8;color:#8f1d1d}.bom-modal-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:rgba(17,26,45,.58);backdrop-filter:blur(3px)}.bom-modal{width:min(1180px,100%);max-height:calc(100vh - 48px);overflow:auto;display:grid;gap:18px;padding:22px;border-radius:18px;background:#fff;box-shadow:0 24px 80px rgba(17,26,45,.3)}.bom-modal-head,.bom-editor-section-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.bom-modal-head h2{margin:4px 0 0}.bom-editor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.bom-field{display:grid;gap:6px;font-size:12px;font-weight:650;color:#475467}.bom-field input,.bom-field select,.bom-field textarea{width:100%;box-sizing:border-box;border:1px solid #cfd5e2;border-radius:9px;padding:10px 11px;background:#fff;color:#111a2d;font:inherit}.bom-field input:focus,.bom-field select:focus,.bom-field textarea:focus{outline:2px solid rgba(93,57,207,.25);border-color:#5d39cf}.bom-editor-lines{display:grid;gap:10px}.bom-editor-line{display:grid;grid-template-columns:120px minmax(170px,1.2fr) minmax(210px,1.4fr) 110px 100px 100px auto;gap:9px;align-items:end;padding:12px;border:1px solid #dfe4ee;border-radius:12px;background:#fafbfc}.danger-link{border:0;background:transparent;color:#a32020;padding:10px 4px}.icon-button{border:0;background:#eef1f6;border-radius:50%;width:36px;height:36px;font-size:22px}.bom-modal-actions{justify-content:flex-end;border-top:1px solid #edf0f5;padding-top:16px}.eyebrow{margin:0;color:#5d39cf;font-size:11px;font-weight:800;letter-spacing:.08em}.muted{color:#667085}.primary,.secondary{border-radius:9px;padding:9px 13px;font-weight:700}.primary{border:1px solid #5d39cf;background:#5d39cf;color:#fff}.secondary{border:1px solid #d4d9e4;background:#fff;color:#111a2d}.primary:disabled,.secondary:disabled{opacity:.5;cursor:not-allowed}@media(max-width:1180px){.bom-kpis{grid-template-columns:repeat(3,1fr)}.bom-layout{grid-template-columns:1fr}.bom-inspector{position:static}.bom-editor-line{grid-template-columns:repeat(3,minmax(0,1fr))}.bom-editor-line .danger-link{justify-self:start}}@media(max-width:720px){.bom-header{grid-template-columns:1fr;padding:18px}.bom-header-actions{justify-content:flex-start}.bom-kpis{grid-template-columns:repeat(2,1fr)}.bom-summary,.bom-editor-grid,.bom-editor-line{grid-template-columns:1fr}.bom-modal-overlay{padding:0}.bom-modal{max-height:100vh;height:100vh;border-radius:0}.bom-inspector-head{display:grid}.bom-kpi strong{font-size:17px}}
/* A bill read by kind: the group header carries the count, because "three fabrics" is either
   right or obviously wrong at a glance, and a flat list of eleven lines is just eleven lines. */
.bom-line-group { display: flex; align-items: baseline; gap: 8px; margin: 12px 0 4px; }
.bom-line-group-name { color: #5e646d; font-size:11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.bom-line-group-count { min-width: 18px; padding: 0 6px; border-radius: 999px; background: #eef0f2; color: #3f4248; font-size:11px; font-weight: 700; text-align: center; }
.bom-line-head { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.bom-line-main { padding: 1px 6px; border: 1px solid #e2c9a6; border-radius: 999px; background: #fff8e8; color: #8a6420; font-size:11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.bom-line-placement { display: block; color: #6b7178; font-size:11px; line-height: 1.35; }
.bom-main-toggle { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; font-size: 11px; }
.bom-main-toggle input { margin: 0; }
