:root{color:#222;background:#fafaf7;font-family:system-ui,-apple-system,sans-serif}[hidden]{display:none!important}main{max-width:48rem;margin:0 auto;padding:1.5rem}.drop{cursor:pointer;text-align:center;background:#fff;border:2px dashed #999;border-radius:.75rem;flex-direction:column;align-items:center;gap:.25rem;padding:2.5rem 1rem;display:flex}.drop.over{background:#effaf2;border-color:#2a6}.drop input{opacity:0;width:1px;height:1px;position:absolute}.drop span{color:#666}.error{color:#8a1c1c;background:#fde8e8;border-radius:.5rem;padding:.75rem 1rem}.warnings{background:#fff8e5;border-left:4px solid #d9a400;border-radius:.4rem;margin:1rem 0;padding:.5rem 1rem}.warnings h3{color:#8a5a00;margin:.25rem 0}.warnings ul{margin:.25rem 0;padding-left:1.2rem}.warnings li{color:#8a5a00}.warnings li:has(>details){margin-left:-1rem;list-style:none}.warnings summary{cursor:pointer}.cutlist .pick{font:inherit;color:#1f5fa8;text-align:left;cursor:pointer;background:0 0;border:none;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.cutlist tr.selected td{background:#eaf2fc}.cutlist .part-panel-row>td{padding:0 0 .75rem}.cutlist .part-panel-row .part-material{margin-top:0}.cutlist .note{color:#8a5a00;font-size:.85em;display:block}.cutlist-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.downloads{flex-wrap:wrap;gap:.5rem;display:flex}.project-title input{width:100%;font:inherit;color:inherit;background:0 0;border:1px solid #0000;border-radius:.3rem;margin-left:-.3rem;padding:.1rem .3rem}.project-title input:hover,.project-title input:focus{background:#fff;border-color:#bbb}.cutlist-heading button{color:#1d5a37;font:inherit;cursor:pointer;background:#fff;border:1px solid #2a6;border-radius:.4rem;padding:.4rem .9rem}.cutlist{border-collapse:collapse;background:#fff;width:100%}.cutlist th,.cutlist td{text-align:left;border-bottom:1px solid #e4e4dc;padding:.35rem .6rem}.cutlist th{color:#666;font-size:.85em;font-weight:600}.cutlist tr.group th{color:#1d5a37;background:#fafaf7;padding-top:.9rem;font-size:.9em}.cutlist .check-cell{width:1.5rem;padding-right:0}.cutlist .check-cell input{cursor:pointer;width:1.15rem;height:1.15rem;margin:0}.cutlist tr.checked td{background:#f3f8ee}.checked-bar{z-index:1;background:#f3f8ee;border:1px solid #2a6;border-radius:.4rem;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin:.5rem 0;padding:.5rem .75rem;display:flex;position:sticky;top:0}.checked-bar[hidden]{display:none}.checked-bar span{color:#1d5a37;font-weight:600}.checked-bar.none{background:#fff;border-color:#e4e4dc}.checked-bar.none span{color:#666;font-weight:400}.checked-bar button:disabled{opacity:.45;cursor:default}.checked-bar button{color:#1d5a37;font:inherit;cursor:pointer;background:#fff;border:1px solid #2a6;border-radius:1rem;padding:.3rem .8rem}.checked-bar button.uncheck{color:#444;border-color:#bbb;border-radius:.4rem;margin-left:auto}.cutlist .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tree-details{margin-top:1.5rem}.tree-details>summary{cursor:pointer;color:#666}.tree,.tree ul{padding-left:1.25rem;list-style:none}.tree{padding-left:0}.tree summary,.tree .leaf{padding:.2rem 0}.kind{color:#666;min-width:6.5rem;font-size:.8em;display:inline-block}.copies{font-weight:600}.def,.size{color:#666;font-size:.9em}.identification{margin:1rem 0}.model-view{touch-action:none;border:1px solid #e4e4dc;border-radius:.6rem;height:min(26rem,60vh);overflow:hidden}.model-view canvas{width:100%;height:100%;display:block}.naming{background:#fff;border-left:4px solid #f28c28;border-radius:.4rem;flex-direction:column;gap:.5rem;margin-top:.75rem;padding:.75rem 1rem;display:flex}.naming[hidden]{display:none}.naming-progress{color:#666;margin:0;font-size:.85em}.naming label{font-weight:600}.naming-row{gap:.5rem;display:flex}.naming input{min-width:0;font:inherit;border:1px solid #bbb;border-radius:.4rem;flex:1;padding:.5rem .6rem}.naming button{color:#fff;font:inherit;cursor:pointer;background:#2a6;border:1px solid #2a6;border-radius:.4rem;padding:.5rem .9rem}.naming input[aria-invalid=true]{border-color:#8a1c1c}.name-error{color:#8a1c1c;margin:0}.naming button.accept{color:#1d5a37;background:#fff;align-self:flex-start}.naming-done{color:#1d5a37;margin:.75rem 0 0}.naming select,.part-material select,.part-material input[type=text]{min-width:0;font:inherit;background:#fff;border:1px solid #bbb;border-radius:.4rem;flex:1;padding:.5rem .6rem}.hint{color:#666;margin:0;font-size:.85em}.part-material{background:#fff;border-left:4px solid #2f7fd8;border-radius:.4rem;flex-direction:column;gap:.5rem;margin-top:.75rem;padding:.75rem 1rem;display:flex}.part-material[hidden]{display:none}.part-material .part-heading{margin:0;font-weight:600}.part-material .check,.shop-settings .check{align-items:center;gap:.5rem;display:flex}.part-fields{grid-template-columns:auto 1fr;align-items:center;gap:.5rem .75rem;display:grid}.part-fields[hidden]{display:none}.common-notes{flex-wrap:wrap;grid-column:2;gap:.4rem;display:flex}.part-material button{color:#0b3a70;font:inherit;cursor:pointer;background:#fff;border:1px solid #2f7fd8;border-radius:.4rem;padding:.5rem .9rem}.part-material button.common-note{border-radius:1rem;padding:.3rem .7rem}.cutlist .unassigned{color:#8a5a00;font-style:italic}.library{margin-top:1.5rem}.library>summary{cursor:pointer;color:#666}.library h3{margin:1rem 0 .4rem;font-size:1em}.library-table{border-collapse:collapse;margin-bottom:.5rem}.library-table th,.library-table td{text-align:left;padding:.25rem .5rem .25rem 0}.library-table th{color:#666;font-size:.85em;font-weight:600}.library select,.library input,.library button,.new-material input,.new-material button{font:inherit;background:#fff;border:1px solid #bbb;border-radius:.4rem;padding:.35rem .5rem}.library button,.new-material button{cursor:pointer}.library .sheet-size{width:4.5rem}.library button.remove{color:#8a1c1c;border-color:#0000}.add-rule{flex-wrap:wrap;gap:.5rem;display:flex}.new-material{border:none;border-radius:.6rem;max-width:min(26rem,90vw);box-shadow:0 .5rem 2rem #00000040}.new-material form{flex-direction:column;gap:.75rem;display:flex}.new-material h3{margin:0}.new-material fieldset{border:1px solid #e4e4dc;border-radius:.4rem;flex-direction:column;gap:.4rem;display:flex}.new-material input[type=text]{box-sizing:border-box;width:100%;margin-top:.25rem;display:block}.dialog-buttons{justify-content:flex-end;gap:.5rem;display:flex}.dialog-buttons button[value=create]{color:#fff;background:#2a6;border-color:#2a6}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.changes-notice{background:#fff1e3;border-left:4px solid #f28c28;border-radius:.4rem;align-items:center;gap:1rem;margin:1rem 0;padding:.5rem 1rem;display:flex}.changes-notice p{flex:1;margin:0}.change{color:#fff;background:#f28c28;border-radius:.6em;padding:0 .4em;font-size:.8em;font-weight:600}.cutlist td.letter{font-weight:600}.shop-settings .hint{margin:.75rem 0 .5rem}.settings-grid{grid-template-columns:auto 6rem;justify-content:start;align-items:center;gap:.4rem .75rem;display:grid}.settings-grid input:invalid{border-color:#c33}.sheets{margin:.25rem 0 1rem;padding-left:1.2rem}.shop-settings .check,.shop-settings .check+.settings-grid{margin-top:.6rem}.print-frame{opacity:0;pointer-events:none;border:0;width:1px;height:1px;position:fixed}
