.bom-page { width:min(1300px,calc(100% - 32px)); margin-top:24px; }
.bom-heading, .bom-results-head { display:flex; align-items:end; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.bom-heading { margin-bottom:19px; }
.bom-heading h1 { margin:0 0 5px; color:#162434; font-size:27px; line-height:1.2; }
.bom-heading p, .bom-results-head p { margin:0; color:#64748b; }
.bom-template { padding:7px 0; font-weight:650; font-size:12px; }
.bom-input-card { padding:23px; border:1px solid #dbe4ee; border-radius:10px; background:#fff; box-shadow:0 1px 3px rgba(10,35,60,.03); }
.bom-input-head { display:flex; align-items:baseline; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
.bom-input-head h2, .bom-results-head h2 { margin:0 0 4px; color:#20384e; font-size:17px; }
.bom-input-head span { color:#738295; font-size:11px; }
.bom-input-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(230px,1fr); gap:20px; }
.bom-input-grid label { display:block; margin-bottom:8px; color:#33485a; font-size:12px; font-weight:650; }
.bom-input-grid textarea { display:block; width:100%; min-height:168px; padding:12px; border:1px solid #cbd8e5; border-radius:7px; background:#fff; color:#24384a; font:12px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace; resize:vertical; }
.bom-input-grid textarea:focus, .bom-file-pane input:focus { outline:2px solid rgba(24,95,165,.3); outline-offset:2px; }
.bom-file-pane { padding:14px 16px; border:1px dashed #bdcfe0; border-radius:7px; background:#fafcff; }
.bom-file-pane input { max-width:100%; color:#31465a; font-size:12px; }
.bom-file-pane p { margin:16px 0 0; color:#6b7c8d; font-size:11px; line-height:1.6; }
.bom-controls { display:flex; align-items:center; flex-wrap:wrap; gap:9px; margin-top:16px; }
.bom-controls .btn { height:36px; padding:0 17px; }
#bom-status { margin-left:5px; color:#566b80; font-size:12px; }
#bom-status.error { color:#a23832; font-weight:650; }
#bom-results { margin-top:24px; }
#bom-results[hidden] { display:none; }
.bom-results-head { margin-bottom:12px; }
.bom-results-head p { font-size:12px; }
.bom-table-wrap { overflow:auto; border:1px solid #dbe4ee; border-radius:9px; background:#fff; }
.bom-table { width:100%; min-width:900px; border-collapse:collapse; font-size:12px; }
.bom-table th { padding:11px 10px; background:#f2f5f8; color:#536273; text-align:left; font-size:11px; white-space:nowrap; }
.bom-table td { padding:12px 10px; border-top:1px solid #e8edf2; vertical-align:top; color:#263442; }
.bom-table td:nth-child(3), .bom-table td:last-child { font-variant-numeric:tabular-nums; white-space:nowrap; }
.bom-table .requested { color:#244c70; font-weight:700; overflow-wrap:anywhere; }
.bom-table .muted { display:block; margin-top:4px; color:#76889a; font-size:11px; }
.bom-table .matched { color:#287250; font-weight:700; }
.bom-table .review { color:#a06b21; font-weight:700; }
.bom-table a { font-weight:600; }
.bom-totals { display:flex; flex-wrap:wrap; gap:10px; margin-top:13px; }
.bom-total { padding:11px 14px; border:1px solid #dbe4ee; border-radius:7px; background:#fff; color:#526476; font-size:11px; }
.bom-total b { display:block; margin-top:3px; color:#20384e; font-size:16px; font-weight:700; font-variant-numeric:tabular-nums; }
.bom-terms { margin:14px 0 0; color:#687b8d; font-size:11px; line-height:1.65; }
@media(max-width:700px) { .bom-input-grid { grid-template-columns:1fr; gap:13px; }.bom-input-card { padding:16px; }.bom-heading h1 { font-size:23px; }.bom-table { min-width:760px; } }
@media(max-width:500px) { .bom-page { width:calc(100% - 24px); }.bom-results-head .btn { width:100%; } }
