.bom{--paper:#ffffff;--panel:#fbfcfe;--panel2:#f3f6fb;--card:#ffffff;--line:#e8eaf0;--line2:#dee1e9;--ink:#0a1838;--ink2:#3d4a62;--ink3:#6b7c98;--accent:#1f6feb;--accent2:#5b9bff;--accent-soft:#eef3ff;--pos:#127a55;--bar-track:#eef1f7;--bar:#2f78ee;--bar-lite:#aecbfb;--spine:#d8deea;--fbody:"Hanken Grotesk",-apple-system,system-ui,sans-serif;--fserif:"Fraunces",Georgia,serif;--fmono:"IBM Plex Mono",ui-monospace,monospace;color:var(--ink);font-family:var(--fbody);font-size:18px;line-height:1.62;padding-bottom:56px}.bom .bom-col{max-width:680px;margin:0 auto;padding:0 22px}.bom .bmono{font-family:var(--fmono);font-size:.9em}.bom a{color:var(--accent);text-underline-offset:2px}.bom .masthead{padding:56px 0 6px}.bom .bkick{font-family:var(--fmono);font-size:12.5px;letter-spacing:.04em;color:var(--ink3);margin:0 0 18px}.bom h1{font-family:var(--fserif);font-weight:500;font-size:clamp(28px,4.6vw,40px);line-height:1.1;letter-spacing:-.015em;margin:0 0 14px;color:var(--ink);text-wrap:balance}.bom .byline{font-family:var(--fmono);font-size:12.5px;color:var(--ink3);margin:0}.bom article{padding:20px 0 0}.bom article p{margin:0 0 20px;color:var(--ink)}.bom article p.sub{color:var(--ink2)}.bom h2{font-family:var(--fbody);font-weight:600;font-size:clamp(20px,3vw,25px);line-height:1.2;letter-spacing:-.01em;margin:44px 0 14px;color:var(--ink)}.bom strong{font-weight:600}.bom .num{font-family:var(--fmono);font-variant-numeric:tabular-nums;font-weight:500;font-size:.9em}.bom figure{margin:26px 0}.bom .photo img{width:100%;height:auto;display:block;border-radius:10px;border:1px solid var(--line)}.bom .photo.tall img{max-height:600px;object-fit:cover;object-position:center}.bom .photo figcaption{font-family:var(--fbody);font-size:15px;color:var(--ink3);margin-top:10px;padding-left:2px;line-height:1.45}.bom .demo{border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow:hidden}.bom .demo-label{font-family:var(--fmono);font-size:12px;letter-spacing:.03em;color:var(--ink2);padding:12px 16px;border-bottom:1px solid var(--line);background:var(--panel2);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bom figcaption{font-family:var(--fbody);font-size:15.5px;line-height:1.5;color:var(--ink2);margin-top:11px;padding-left:2px}.bom figcaption b{color:var(--ink);font-weight:600}.bom .stepwrap{padding:16px}.bom .stepper{display:inline-flex;border:1px solid var(--line2);border-radius:7px;overflow:hidden;font-family:var(--fmono)}.bom .stepper button{border:0;background:var(--panel2);color:var(--ink);font-size:18px;width:38px;cursor:pointer;line-height:1}.bom .stepper button:hover{background:var(--accent-soft);color:var(--accent)}.bom .stepper button:disabled{opacity:.35;cursor:not-allowed}.bom .stepper .bval{min-width:52px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}.bom .steplab{font-family:var(--fmono);font-size:12.5px;color:var(--ink2)}.bom .wheeltab{width:100%;border-collapse:collapse;margin-top:2px;font-family:var(--fmono);font-size:14px}.bom .wheeltab td{padding:7px 4px;border-bottom:1px solid var(--line)}.bom .wheeltab td:first-child{font-family:var(--fbody);font-size:16px;color:var(--ink)}.bom .wheeltab td.n{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink2)}.bom .wheeltab td.tot{color:var(--ink);font-weight:600}.bom .wheeltab tr.hl td.tot{color:var(--accent)}.bom .wheeltab tr:last-child td{border-bottom:0}.bom .btree-card{background:var(--card);border:1px solid var(--line);border-radius:13px;overflow:hidden;box-shadow:0 1px 2px #0a18380a,0 14px 36px -18px #0a183829}.bom .btree-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line)}.bom .btree-t{font-family:var(--fmono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3)}.bom .btree-t b{color:var(--ink)}.bom .btree-tot{font-family:var(--fmono);font-size:13px;color:var(--ink2)}.bom .btree-tot b{font-family:var(--fserif);font-size:19px;color:var(--ink);font-weight:500}.bom .bt-tree{padding:8px 12px 12px;overflow-x:auto}.bom .bt-node{position:relative}.bom .bt-kids{position:relative;margin-left:26px}.bom .bt-kids:before{content:"";position:absolute;left:0;top:-6px;bottom:15px;width:1px;background:var(--spine)}.bom .bt-kids.collapsed{display:none}.bom .bt-row{position:relative;display:grid;grid-template-columns:1fr 128px 96px;gap:14px;align-items:center;padding:9px 10px 9px 8px;border-radius:9px;transition:background .12s}.bom .bt-kids>.bt-node>.bt-row:before{content:"";position:absolute;left:-26px;top:19px;width:20px;height:1px;background:var(--spine)}.bom .bt-row:hover{background:var(--accent-soft)}.bom .bt-name{display:flex;align-items:center;gap:9px;min-width:0;border-radius:7px}.bom .bt-name.tap{cursor:pointer;-webkit-tap-highlight-color:transparent}.bom .bt-name.tap:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bom .bt-tw{width:20px;height:20px;flex:none;border:0;background:transparent;cursor:pointer;color:var(--ink3);display:grid;place-items:center;border-radius:6px;transition:background .12s,color .12s}.bom .bt-tw:hover{background:var(--accent-soft);color:var(--accent)}.bom .bt-tw svg{transition:transform .18s cubic-bezier(.4,0,.2,1)}.bom .bt-tw.open svg{transform:rotate(90deg)}.bom .bt-tw.leaf{visibility:hidden}.bom .bt-dot{width:7px;height:7px;border-radius:50%;flex:none}.bom .bt-nm{font-weight:600;font-size:15.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.005em}.bom .bt-lvl.l0 .bt-nm{font-family:var(--fserif);font-weight:500;font-size:17px}.bom .bt-pn{font-family:var(--fmono);font-size:11px;color:var(--ink3);flex:none}.bom .bt-qty{text-align:right;font-family:var(--fmono);font-variant-numeric:tabular-nums}.bom .bt-qty .q{font-size:14px;color:var(--ink)}.bom .bt-qty .per{font-size:10.5px;color:var(--ink3);margin-left:5px}.bom .bt-cost{text-align:right}.bom .bt-cval{font-family:var(--fmono);font-size:13.5px;font-variant-numeric:tabular-nums;color:var(--ink)}.bom .bt-cbar{margin-top:5px;height:4px;border-radius:3px;background:var(--bar-track);overflow:hidden;position:relative}.bom .bt-cbar>i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--bar);transition:width .45s cubic-bezier(.4,0,.2,1)}.bom .bt-lvl.l0 .bt-cbar>i{background:linear-gradient(90deg,var(--accent),var(--accent2))}.bom .bt-lvl.l2 .bt-cbar>i{background:var(--bar-lite)}.bom .bt-cpct{font-family:var(--fmono);font-size:9.5px;color:var(--ink3);margin-top:3px;letter-spacing:.02em}.bom .bt-cin{width:70px;font-family:var(--fmono);font-size:13px;text-align:right;color:var(--ink);background:transparent;border:0;border-bottom:1px dashed var(--line2);padding:2px 2px 3px;transition:border-color .15s}.bom .bt-cin:hover{border-bottom-color:var(--accent2)}.bom .bt-cin:focus{outline:0;border-bottom:1px solid var(--accent)}.bom .bt-cunit{font-family:var(--fmono);font-size:9.5px;color:var(--ink3);margin-top:3px}.bom .btree-foot{padding:11px 18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.bom .bt-hint{font-size:12.5px;color:var(--ink3)}.bom .bt-lk{background:none;border:0;color:var(--accent);font:inherit;font-size:12.5px;cursor:pointer;padding:0}.bom .bt-lk:hover{text-decoration:underline}.bom .scroll{overflow-x:auto}.bom .flatcard{border:1px solid var(--line);border-radius:13px;overflow:hidden;background:var(--card);box-shadow:0 1px 2px #0a18380a,0 14px 36px -18px #0a183829}.bom .flat{width:100%;border-collapse:collapse;min-width:520px}.bom .flat th{text-align:left;font-family:var(--fmono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink3);font-weight:500;padding:13px 18px;background:var(--panel2);border-bottom:1px solid var(--line)}.bom .flat th.r{text-align:right}.bom .flat td{padding:11px 18px;border-bottom:1px solid var(--line);vertical-align:middle}.bom .flat tbody tr:last-child td{border-bottom:0}.bom .flat tbody tr:hover td{background:var(--accent-soft)}.bom .flat .pname{font-family:var(--fbody);font-weight:600;font-size:14.5px;color:var(--ink)}.bom .flat .ppn{font-family:var(--fmono);font-size:11px;color:var(--ink3);margin-left:9px}.bom .flat td.n{text-align:right;font-family:var(--fmono);font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink2);white-space:nowrap}.bom .flat .linecell{text-align:right;white-space:nowrap}.bom .flat .lineval{font-family:var(--fmono);font-variant-numeric:tabular-nums;font-size:13.5px;color:var(--ink);font-weight:600}.bom .flat .linebar{display:block;height:3px;border-radius:2px;background:var(--bar-track);margin-top:6px;overflow:hidden;min-width:54px}.bom .flat .linebar>i{display:block;height:100%;background:var(--bar-lite);border-radius:2px}.bom .flat tr.sum td{background:var(--panel2);font-weight:700;color:var(--ink);border-top:1px solid var(--line2)}.bom .flat tr.sum .pname,.bom .flat tr.sum .lineval{color:var(--ink)}.bom .bfaq{margin:10px 0 0;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:var(--card)}.bom .bfaq details{border-bottom:1px solid var(--line)}.bom .bfaq details:last-child{border-bottom:0}.bom .bfaq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 20px;transition:background .12s}.bom .bfaq summary::-webkit-details-marker{display:none}.bom .bfaq summary:hover{background:var(--accent-soft)}.bom .bfaq .q{font-weight:600;font-size:16px;color:var(--ink);line-height:1.35}.bom .bfaq details[open] .q{color:var(--accent)}.bom .bfaq .mk{flex:none;width:16px;height:16px;position:relative;color:var(--accent)}.bom .bfaq .mk:before,.bom .bfaq .mk:after{content:"";position:absolute;background:currentColor;border-radius:1px;transition:transform .25s cubic-bezier(.4,0,.2,1)}.bom .bfaq .mk:before{left:0;right:0;top:7px;height:2px}.bom .bfaq .mk:after{top:0;bottom:0;left:7px;width:2px}.bom .bfaq details[open] .mk:after{transform:scaleY(0)}.bom .bfaq .ans{padding:0 20px 18px;margin:0;font-size:15.5px;color:var(--ink2);line-height:1.56;max-width:62ch}.bom .ends{margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}.bom .ends p{font-size:16px;color:var(--ink2);margin:0 0 6px}.bom .ends a{font-weight:600}.bom .bom-note{font-family:var(--fmono);font-size:12.5px;line-height:1.6;color:var(--ink3);border-top:1px solid var(--line);margin-top:40px;padding-top:18px}.bom .diagram svg{width:100%;height:auto;display:block;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 10px}.bom .b-line{fill:none;stroke:var(--ink);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.bom .b-wheel{fill:none;stroke:var(--ink);stroke-width:2.2}.bom .b-ring{fill:none;stroke:var(--ink);stroke-width:1.8}.bom .b-spoke{stroke:var(--line2);stroke-width:1}.bom .b-chain{stroke:var(--ink3);stroke-width:1;fill:none}.bom .b-dot{fill:var(--ink)}.bom .cal .blead{stroke:var(--accent);stroke-width:1;fill:none}.bom .cal .blead-dot{fill:var(--accent)}.bom .cal text{font-family:var(--fmono);font-size:12px;fill:var(--ink2)}.bom .cal .pn{fill:var(--ink3);font-size:10.5px}@media(max-width:560px){.bom .bt-tree{padding:6px 8px 10px}.bom .bt-row{grid-template-columns:auto 1fr;gap:3px 12px;padding:11px 8px 12px}.bom .bt-name{grid-column:1 / -1;align-items:flex-start;gap:8px}.bom .bt-nm{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25;font-size:15px}.bom .bt-tw{width:26px;height:26px;margin-top:-2px}.bom .bt-dot{margin-top:6px}.bom .bt-pn{align-self:flex-start;margin-top:4px}.bom .bt-qty{grid-column:1;text-align:left;padding-left:34px}.bom .bt-cost{grid-column:2;text-align:right}.bom .bt-cbar{margin-top:4px}.bom .bt-kids{margin-left:16px}.bom .bt-kids>.bt-node>.bt-row:before{left:-16px;width:12px}.bom .flat{min-width:0}.bom .flat th.hidemob,.bom .flat td.hidemob{display:none}.bom .flat th,.bom .flat td{padding:11px 12px}}@media(prefers-reduced-motion:reduce){.bom *{transition:none!important}}
