@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--ink:#233431;--muted:#7c8885;--line:#e1e8e4;--green:#23735c;--paper:#f5f7f5;--nav:#132e28}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,select{font:inherit}button,a,label.import-label{cursor:pointer}button{transition:background .16s}button:hover{filter:brightness(.95)}a{color:var(--green)}.sidebar{position:fixed;inset:0 auto 0 0;width:232px;background:var(--nav);color:#fff;padding:35px 22px;display:flex;flex-direction:column}.brand{font:750 22px Manrope,sans-serif;color:white;text-decoration:none;display:flex;align-items:center;gap:8px;letter-spacing:-.8px}.brand-icon{display:inline-grid;place-items:center;width:29px;height:32px;border:1px solid #78a38c;border-radius:7px;color:#b0d1a8;font-size:21px}.brand-dot{color:#b7dba9;margin-left:-7px}.workspace-label{font-size:9px;letter-spacing:1.8px;color:#88a298;margin:52px 11px 17px}.nav-item{width:100%;display:flex;align-items:center;gap:13px;color:#b0c1bb;background:transparent;border:0;border-radius:7px;text-align:left;padding:14px 13px;margin:5px 0;font-size:13px}.nav-item span{font-size:19px}.nav-item.active{color:#e8f4e9;background:#29473b}.sidebar-bottom{margin-top:auto;border-top:1px solid #345046;padding-top:22px;display:flex;gap:12px;font-size:12px}.avatar{background:#385345;color:#c8ddbc;border-radius:50%;width:33px;height:33px;display:grid;place-items:center;font-size:11px}.sidebar-bottom small{display:block;font-size:10px;color:#8ba299;margin-top:5px}main{margin-left:232px;padding:0 36px 20px;max-width:2000px}header{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.breadcrumb{color:#89928f;font-size:11px}.breadcrumb span{margin:0 11px;color:#b4bbb7}.breadcrumb strong{font-weight:500;color:#50615b}.status{font-size:10px;color:#75847d;display:flex;gap:7px;align-items:center}i{width:5px;height:5px;background:#548c70;display:inline-block;border-radius:50%}.page-heading{display:flex;justify-content:space-between;align-items:center;margin:35px 0 26px;gap:16px}.eyebrow{font-size:9px;font-weight:700;color:#6d877b;letter-spacing:1.8px}h1{font-family:Manrope,sans-serif;font-size:29px;font-weight:750;letter-spacing:-1px;margin:9px 0 8px}.page-heading p{margin:0;color:#7f8a84;font-size:12px}.heading-actions{display:flex;gap:9px}.button{border-radius:6px;padding:11px 17px;font-size:11px;font-weight:600;border:1px solid transparent;white-space:nowrap}.secondary{background:white;border-color:#dbe3dd;color:#506359}.dark{background:#213d32;color:white}.primary{background:var(--green);color:white}.project-strip{display:flex;gap:24px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:16px 20px;margin-bottom:20px}.project-strip>div{flex:1}.project-strip .project-name{flex:2.5}.project-strip input,.project-strip select{padding:4px 0;border:0;background:transparent;font-weight:500;color:#42584c;font-size:12px;height:26px}.project-strip label{font-size:8px;letter-spacing:1.1px;color:#8b9690;margin-bottom:4px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px}.stats article{border:1px solid var(--line);background:#fff;border-radius:8px;padding:19px}.stat-label{display:flex;justify-content:space-between;font-size:10px;color:#75847b}.stat-label span{color:#a3b6aa}.stat-value{font:700 29px Manrope,sans-serif;letter-spacing:-.8px;margin-top:13px}.stat-value small{font-size:13px;font-weight:500;letter-spacing:0;color:#8b978e}.stat-foot{font-size:9px;color:#8d9891;margin-top:7px}.allowance{height:41px;display:flex;align-items:end;font:700 27px Manrope,sans-serif}.allowance input{width:72px;font:inherit;border:0;padding:0;background:transparent;color:var(--ink);outline-offset:2px}.allowance span{font-size:14px;margin-bottom:2px}.stats .accent-stat{background:#eaf1e8;border-color:#d7e2d4}.accent-stat .stat-value{color:#305d43}.work-grid{display:grid;grid-template-columns:390px minmax(0,1fr);align-items:start;gap:23px}.card{background:white;border:1px solid var(--line);border-radius:9px;overflow:hidden}.card-heading{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid #e9eeea;gap:8px}.card-heading>div{display:flex;align-items:center;gap:9px}h2{font:700 14px Manrope,sans-serif;margin:0}.step{font-size:9px;border-radius:4px;background:#edf2ed;color:#7b8e7e;padding:5px}.small-muted{font-size:7px;letter-spacing:.8px;color:#94a198}form{padding:19px 20px}label{display:block;font-size:10px;font-weight:500;margin-bottom:7px;color:#57685f}input,select{width:100%;border:1px solid #dfe6e0;background:#fff;border-radius:5px;padding:10px;color:#334d40;height:37px;font-size:11px}input:focus,select:focus,button:focus-visible{outline:2px solid #6fa28a;outline-offset:2px}select{padding-right:20px}input::placeholder{color:#a0aaa3}.geometry-preview{margin:13px 0 18px;border:1px solid #e8ede7;border-radius:5px;background-color:#f8faf7;background-image:radial-gradient(#d6dfd4 .7px,transparent .7px);background-size:12px 12px;text-align:center;padding:7px 0 10px}.geometry-preview svg{width:100%;height:114px}.geometry-preview span{font-size:8px;color:#88988a;letter-spacing:.8px;text-transform:uppercase}.two-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-bottom:14px}.two-cols>div{min-width:0}.material-row{margin-top:3px}.label-note{float:right;font-size:8px;color:#97a097}.field-hint{font-size:9px;line-height:1.6;color:#8b968e;margin:5px 0 16px}.dimension-heading{display:flex;justify-content:space-between;letter-spacing:1px;font-size:8px;color:#7c8b81;margin:21px 0 12px}.dimension-heading span{letter-spacing:0}.formula-box{background:#f6f8f5;border-radius:5px;margin:16px 0;padding:12px}.formula-box>div{font-size:7px;letter-spacing:1px;color:#8b9b8c}.formula-box code{display:block;font-size:10px;color:#4b6c56;margin-top:7px;line-height:1.7}.formula-box p{font-size:9px;color:#8b948b;line-height:1.6;margin:6px 0 0}.result-box{display:flex;justify-content:space-between;margin:16px 0 18px}.result-box>div{font-size:9px;color:#8b978e}.result-box>div:last-child{text-align:right}.result-box strong{display:block;font:750 22px Manrope,sans-serif;color:#315d45;margin-top:4px}.result-box small{font:400 11px 'DM Sans',sans-serif}.add-button{width:100%;padding:12px}.cancel{border:0;background:transparent;color:#557566;width:100%;margin-top:12px;font-size:11px}.count-badge{font-size:9px;color:#607a68;border-radius:4px;background:#eef3ed;padding:4px 6px}.text-button{background:none;border:0;padding:3px;color:#68806f;font-size:10px}.table-toolbar{padding:16px 20px;display:flex;align-items:center;justify-content:space-between}.table-toolbar input{max-width:240px;background:#fafbf9;height:32px;font-size:10px}.table-toolbar>span{font-size:9px;color:#93a095}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left}th{font-size:7px;letter-spacing:.8px;font-weight:500;color:#8a998d;background:#f8faf7;padding:13px 14px;white-space:nowrap;border-block:1px solid #edf1eb}th:first-child,td:first-child{padding-left:20px}td{padding:16px 14px;font-size:10px;border-bottom:1px solid #edf1eb;vertical-align:middle}td:nth-child(3),td:nth-child(4),td:nth-child(5){text-align:right;font-variant-numeric:tabular-nums}td:nth-child(5){font-weight:700;color:#375a42}td strong{font-weight:600;display:block;color:#415b48;font-size:11px;margin-bottom:5px}td small{display:block;font-size:8px;color:#97a394;line-height:1.6}.item-number{color:#93a392;font-size:8px;margin-right:9px}.row-actions{display:flex;gap:5px}.row-actions button{padding:4px;background:transparent;border:0;font-size:13px;color:#889a8b}.bom-total{display:flex;justify-content:space-between;align-items:center;background:#f3f7f0;margin:20px;padding:16px;border-radius:5px;font-size:10px;color:#627d65}.bom-total strong{font:750 23px Manrope,sans-serif;color:#315b3e}.bom-total small{font:400 10px 'DM Sans',sans-serif}.composition{margin:30px 20px}.composition-heading{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;color:#84947e}.composition-heading span{letter-spacing:0}.bar-row{display:flex;align-items:center;gap:12px;font-size:9px;margin-top:17px;color:#6d7e67}.bar-row .bar-label{width:110px}.bar-track{height:5px;border-radius:10px;background:#edf1e9;flex:1;overflow:hidden}.bar-fill{height:100%;background:#83a877;border-radius:10px}.bar-row>span:last-child{width:50px;text-align:right;font-variant-numeric:tabular-nums}.bom-note{display:flex;gap:11px;background:#fcfdf9;border-top:1px solid #edf0e8;padding:15px 20px;color:#91a085}.bom-note p{margin:0;font-size:9px;line-height:1.8}.bom-note>span{font-size:14px}.bom-actions{padding:17px 20px;display:flex;gap:18px;border-top:1px solid #edf1eb}.danger{margin-left:auto;color:#a27565}.import-label{margin:0;font-weight:400}#empty-state{text-align:center;padding:65px 10px;color:#92a18c}#empty-state>div{font-size:30px;color:#a7b7a0}#empty-state h3{font:600 15px Manrope,sans-serif;color:#657a60}#empty-state p{font-size:11px;line-height:1.8}footer{display:flex;justify-content:space-between;color:#93a18e;font-size:9px;margin:25px 0 0}footer i{margin-right:6px}.library-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:20px 0}.library-card,.reference-card{padding:26px}.library-card h2{margin-bottom:14px}.library-card strong{font:700 28px Manrope,sans-serif;color:#487453}.library-card p,.reference-card p,.reference-card li{font-size:12px;line-height:1.9;color:#778a76}.library-card code{color:#4d7055;font-size:12px}.reference-card{margin:20px 0}.reference-card li{margin:10px 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}#form-error{font-size:10px;color:#b45343;line-height:1.6}#toast{position:fixed;bottom:25px;right:25px;padding:14px 24px;background:#213d32;color:white;box-shadow:0 8px 35px #0002;border-radius:7px;font-size:12px;z-index:10}dialog{border:1px solid var(--line);border-radius:10px;max-width:430px;padding:28px;color:var(--ink)}dialog::backdrop{background:#102d2866}dialog p{font-size:13px;line-height:1.7;margin:15px 0 24px}.dimension-input{position:relative}.dimension-input input{padding-right:33px}.dimension-input span{position:absolute;right:11px;top:12px;font-size:9px;color:#97a294}
@media(min-width:1550px){main{padding-inline:48px}.work-grid{grid-template-columns:420px minmax(0,1fr)}td{padding-block:20px}h1{font-size:33px}}
@media(max-width:1200px){.sidebar{width:190px;padding-inline:15px}.brand{font-size:19px}main{margin-left:190px;padding-inline:24px}.work-grid{grid-template-columns:335px minmax(0,1fr)}.stats{gap:10px}.stats article{padding:15px}.stat-value{font-size:24px}td,th{padding-inline:9px}.page-heading{align-items:start}.heading-actions{padding-top:18px}h1{font-size:25px}.small-muted{display:none}}
@media(max-width:950px){.sidebar{position:static;width:100%;padding:18px 24px;display:block}.workspace-label,.sidebar-bottom{display:none}.brand{font-size:21px}nav{display:flex;margin-top:12px}.nav-item{width:auto;padding:10px;margin:0 5px 0 0;font-size:11px}main{margin:0}.work-grid{grid-template-columns:320px minmax(0,1fr)}.project-strip{gap:12px}.stats{grid-template-columns:repeat(2,1fr)}.table-toolbar{gap:10px}.table-toolbar>span{display:none}.breadcrumb{font-size:10px}.status{font-size:9px}}
@media(max-width:730px){main{padding:0 16px 20px}header{height:55px}.breadcrumb{font-size:9px}.breadcrumb span{margin:0 5px}.status{display:none}.page-heading{display:block;margin-top:25px}.heading-actions{padding-top:15px}h1{font-size:25px}.project-strip{display:grid;grid-template-columns:1fr 1fr;padding:14px}.project-strip .project-name{grid-column:2;grid-row:1}.work-grid{display:flex;flex-direction:column}.editor,.bom{width:100%}.stats{gap:10px}.stat-value{font-size:26px}.stat-label{font-size:9px}.library-grid{grid-template-columns:1fr}footer{align-items:center;gap:20px}.row-actions{flex-direction:column}td{padding:15px 8px}td:first-child{padding-left:12px}.bom-total{margin:16px}.card-heading{padding:18px}.bar-row .bar-label{width:95px}}
@media print{body{background:white;font-size:10px}.sidebar,header,.editor,.heading-actions,.table-toolbar,.bom-actions,footer,.row-actions,.text-button,#toast,dialog{display:none!important}main{margin:0;padding:0}.work-grid{display:block}.bom{border:0}.card{break-inside:avoid}.page-heading{margin-top:0}.project-strip{border:0}.stats{grid-template-columns:repeat(4,1fr)}.stat-value{font-size:20px}.table-scroll{overflow:visible}td,th{font-size:9px}.bom-note{background:white}.composition{break-inside:avoid}a{color:inherit}}

/* Drawing BOM follows the supplied seven-column engineering template. */
textarea{width:100%;resize:vertical;border:1px solid #dfe6e0;border-radius:5px;padding:10px;font:11px 'DM Sans',sans-serif;color:#334d40;line-height:1.6}textarea:focus{outline:2px solid #6fa28a;outline-offset:2px}.spaced-label{margin-top:16px}.drawing-bom{table-layout:fixed;min-width:730px;border:1px solid #253c31;font-family:Arial,sans-serif}.drawing-bom caption{border:1px solid #253c31;border-bottom:0;padding:10px;background:#f3f6f1;font-size:13px;font-weight:bold;color:#233431}.drawing-bom caption em{font-weight:normal}.drawing-bom .col-part{width:5%}.drawing-bom .col-desc{width:16%}.drawing-bom .col-material{width:17%}.drawing-bom .col-size{width:28%}.drawing-bom .col-qty{width:5%}.drawing-bom .col-weight{width:9%}.drawing-bom .col-remarks{width:15%}.drawing-bom .col-actions{width:5%}.drawing-bom th,.drawing-bom td{border:1px solid #9aa99c;text-align:center;vertical-align:middle;white-space:normal;overflow-wrap:anywhere;padding:10px 6px;letter-spacing:0;font-size:10px;font-weight:normal;color:#20392b}.drawing-bom thead th{font-size:10px;font-weight:bold;background:#f4f7f1}.drawing-bom th i{font-size:10px;font-weight:normal;width:auto;height:auto;background:none;border-radius:0;color:inherit}.drawing-bom td:nth-child(2){text-transform:uppercase}.drawing-bom td small{color:#607360;font-size:9px;margin-top:4px}.size-cell span{display:block;line-height:1.65;font-size:9px}.drawing-bom td:nth-child(6){font-weight:600;font-variant-numeric:tabular-nums}.drawing-bom tfoot th{font-weight:bold;padding:13px}.drawing-bom tfoot td{font-weight:bold}.remarks-cell{line-height:1.7}.drawing-weight-note{font-size:9px;color:#8b978a;margin:14px 20px}.bom .table-scroll{padding:0 20px 1px}.work-grid{grid-template-columns:350px minmax(0,1fr)}
@media(max-width:950px){.work-grid{grid-template-columns:300px minmax(0,1fr)}}
@media(max-width:730px){.work-grid{display:flex}.bom .table-scroll{padding-inline:12px}}
@media print{@page{size:A4 landscape;margin:12mm}body{color:#000}#materials-view,#basis-view,.stats,.page-heading,.composition,.bom-note,.card-heading,.drawing-weight-note{display:none!important}.project-strip{padding:0 0 8px;margin:0;font-family:Arial,sans-serif}.project-strip .units{display:none}.project-strip input{color:#000;font-size:10px}.project-strip label{color:#000}.bom .table-scroll{padding:0}.drawing-bom{min-width:0;width:100%;border-color:#000;font-family:Arial,sans-serif}.drawing-bom caption{background:white;color:#000;border-color:#000;padding:7px;font-size:14px}.drawing-bom th,.drawing-bom td{color:#000;border:1px solid #000;padding:7px 5px;font-size:9px}.drawing-bom thead th{color:#000;background:#fff;font-size:10px}.drawing-bom td small{color:#000;font-size:8px}.size-cell span{font-size:9px;line-height:1.45}.drawing-bom .col-actions,.drawing-bom .actions-col{display:none!important}.drawing-bom .col-remarks{width:20%}.card{break-inside:auto}tr{break-inside:avoid}thead{display:table-header-group}tfoot{display:table-row-group}}
@media screen and (min-width:731px) and (max-width:1400px){.work-grid{grid-template-columns:1fr}.bom{grid-row:1}.editor{width:100%}.editor form{max-width:650px;margin:auto}.editor .geometry-preview{max-width:350px;margin-inline:auto}}
.drawing-bom .row-actions{display:grid;grid-template-columns:1fr 1fr;gap:0}.drawing-bom .row-actions button{padding:2px;font-size:12px;min-width:0}

.stats{grid-template-columns:repeat(2,minmax(0,1fr))}

.part-options{margin-top:14px;padding:14px;background:#f3f6f0;border:1px solid #dce4d5;border-radius:8px}.part-options label{margin-top:12px}.part-options label:first-child{margin-top:0}.part-options .two-cols{margin-top:12px}

#material-dialog{width:min(520px,90vw);max-height:90vh;overflow:auto}#material-dialog label{margin-top:14px}#add-material-editor{margin:0 0 14px}#material-error{color:#a13926}

input[readonly]{background:#edf2e9;color:#355749}#section-source a{color:#316b54;text-decoration:underline}

.bom-display-controls{padding:16px 20px 0}.bom-display-controls label{display:block;margin-bottom:6px;font-size:12px;font-weight:600}.bom-display-controls select{width:100%;max-width:350px}.bom-display-controls p{font-size:11px;color:var(--muted,#64756c);margin:7px 0 0}@media print{.bom-display-controls{display:none!important}}

.heading-actions{flex-wrap:wrap}.cad-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}#cad-dialog{width:min(540px,92vw);max-width:540px;max-height:90vh;overflow:auto}#cad-dialog label{display:block;margin-bottom:6px;font-size:12px}#cad-dialog select,#cad-dialog input{width:100%}#cad-help{padding:12px;background:#edf3ed;border-radius:6px}#cad-error{color:#a13926}

.drawing-panel{margin:0 0 18px;padding:20px}.drawing-panel-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.drawing-panel h2{font-size:18px;margin:5px 0}.drawing-panel p{font-size:12px;color:var(--muted);margin:6px 0}.drawing-panel-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.drawing-tabs{display:flex;gap:8px;overflow-x:auto;padding-top:16px}.drawing-tab{border:1px solid #dae2da;border-radius:7px;background:#fff;color:#506459;padding:10px 12px;white-space:nowrap;font:inherit;font-size:12px;cursor:pointer}.drawing-tab span{margin-left:9px;font-size:10px;opacity:.7}.drawing-tab.active{background:#315543;color:white;border-color:#315543}.drawing-bulk{padding:12px 20px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-bottom:1px solid #e0e7e0}.drawing-bulk label,.drawing-bulk span{font-size:11px}.drawing-bulk select{max-width:260px;min-width:150px;width:auto}.drawing-bulk button{font-size:11px}.drawing-bom-meta{font:600 11px Arial,sans-serif;padding:10px 20px;margin:0;overflow-wrap:anywhere}.part-owner{font-size:10px!important;margin-top:5px}.row-actions input{width:15px!important;height:15px;cursor:pointer;accent-color:#315543}.drawing-print-sheet{break-after:page}.drawing-print-sheet:last-child{break-after:auto}#drawing-print{display:none}.print-meta{font:11px Arial,sans-serif}.drawing-print-sheet h2{font:700 14px Arial,sans-serif;text-align:center}@media(max-width:900px){.drawing-panel-heading{align-items:start;flex-direction:column}.drawing-panel{padding:16px}.drawing-bulk{padding:12px}}@media print{.drawing-panel,.drawing-bulk,.drawing-bom-meta{display:none!important}body.drawing-printing>aside,body.drawing-printing>main{display:none!important}body.drawing-printing #drawing-print{display:block}body.drawing-printing #drawing-print .drawing-bom{table-layout:auto}.drawing-print-sheet h2{margin-top:0}.drawing-print-sheet td{overflow-wrap:anywhere}.drawing-print-sheet .drawing-bom td:nth-child(1){width:5%}.drawing-print-sheet .drawing-bom td:nth-child(4){width:24%}.drawing-print-sheet .drawing-bom td:nth-child(7){width:20%}}

.hole-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:5px 0 10px}.hole-heading label{margin:0}.hole-group{border:1px solid #dce5df;border-radius:8px;padding:14px;margin:16px 0}.hole-group legend{font-size:12px;font-weight:600;color:#456458;padding:0 6px}.hole-group .two-cols{margin-top:12px}.hole-group input,.hole-group select{max-width:100%}
#material-update-parts{width:auto;margin-right:6px} #material-update-wrap{margin:16px 0} .library-card .hole-heading h2{margin:0}

.tube-wall-options{grid-column:1/-1;margin:0 0 12px}.tube-wall-options .two-cols{margin-top:4px}.tube-wall-options .field-hint{margin-bottom:4px}

/* Drawing-style stacked inch fractions; numeric dimensions remain unchanged. */
.size-cell .inch-fraction{display:inline-grid;grid-template-rows:auto auto;vertical-align:middle;text-align:center;line-height:1;margin:0 .1em;font-size:1em;white-space:nowrap}.inch-fraction sup,.inch-fraction sub{display:block;position:static;font-size:.85em;line-height:1.05;vertical-align:baseline;padding:0 .1em}.inch-fraction sup{border-bottom:1px solid currentColor;padding-bottom:.07em}.inch-fraction sub{padding-top:.07em}.size-cell>.bom-size-line{line-height:1.9}
