:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{height:100%;margin:0;overflow:hidden}.app{flex-direction:column;width:100vw;height:100vh;display:flex;position:relative}.toolbar{color:#e6e6ea;background:#24252c;border-bottom:1px solid #35363f;align-items:center;gap:12px;padding:8px 16px;font:14px/1.4 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.brand{letter-spacing:.02em;align-items:center;gap:6px;font-weight:600;display:inline-flex}.brand-icon{width:auto;height:1.4em;display:block}.brand-version{opacity:.6;font-size:.75em;font-weight:400}.toolbar button{font:inherit;color:#e6e6ea;cursor:pointer;background:#34363f;border:1px solid #4a4c58;border-radius:4px;padding:6px 12px}.toolbar button:hover{background:#3d3f4a}.header-field{opacity:.9;align-items:center;gap:6px;margin-left:auto;display:flex}.header-field input{width:64px;font:inherit;color:#e6e6ea;background:#1b1c22;border:1px solid #4a4c58;border-radius:4px;padding:4px 6px}.status{opacity:.85}.status.error{color:#ff8080}.warnings-bar{color:#f0d9a6;background:#3a2f1a;border-bottom:1px solid #5a4a26;flex-direction:column;gap:4px;padding:8px 16px;font:13px/1.4 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.warning{align-items:center;gap:8px;display:flex}.warning:before{content:"⚠ "}.warning-dismiss{font:inherit;color:inherit;opacity:.7;cursor:pointer;background:0 0;border:none;flex-shrink:0;margin-left:auto;padding:0 4px;line-height:1}.warning-dismiss:hover{opacity:1}.main-area{flex-direction:row;flex:1;min-height:0;display:flex}.sidebar{background:#24252c;border-right:1px solid #35363f;flex-direction:column;flex-shrink:0;width:260px;display:flex;overflow-y:auto}.viewport-column{flex-direction:column;flex:1;min-width:0;display:flex}.drop-overlay{pointer-events:none;background:#4a8cff1f;border:2px dashed #4a8cff;justify-content:center;align-items:center;display:flex;position:absolute;inset:41px 0 0}.drop-overlay p{color:#eaf1ff;background:#1b1c22cc;border-radius:8px;padding:12px 24px;font:20px/1.4 system-ui,Segoe UI,Roboto,sans-serif}.viewport-wrapper{flex:1;min-height:0;position:relative}.viewport{position:absolute;inset:0}.viewport canvas{display:block}.view-grid{grid-template-columns:repeat(2,1fr);gap:4px;display:grid;position:absolute;top:12px;right:12px}.view-grid-button{color:#e6e6ea;cursor:pointer;background:#34363fd9;border:1px solid #4a4c58;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:1px;width:52px;height:38px;font:12px/1.2 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.view-grid-button:hover{background:#3d3f4a;border-color:#4a8cff}.view-grid-key{opacity:.6;font-size:10px}.shading-toggle{gap:4px;display:flex;position:absolute;top:148px;right:12px}.shading-toggle-button{color:#e6e6ea;cursor:pointer;background:#34363fd9;border:1px solid #4a4c58;border-radius:4px;width:52px;height:26px;font:11px/1.2 system-ui,Segoe UI,Roboto,sans-serif}.shading-toggle-button:hover{background:#3d3f4a;border-color:#4a8cff}.shading-toggle-button.active{color:#0e1116;background:#4a8cff;border-color:#4a8cff;font-weight:600}.shading-toggle-button.active:hover{background:#5f9bff}.projection-toggle{gap:4px;display:flex;position:absolute;top:178px;right:12px}.projection-toggle-button{color:#e6e6ea;cursor:pointer;background:#34363fd9;border:1px solid #4a4c58;border-radius:4px;width:52px;height:26px;font:11px/1.2 system-ui,Segoe UI,Roboto,sans-serif}.projection-toggle-button:hover{background:#3d3f4a;border-color:#4a8cff}.projection-toggle-button.active{color:#0e1116;background:#4a8cff;border-color:#4a8cff;font-weight:600}.projection-toggle-button.active:hover{background:#5f9bff}.coordinate-toggle{flex-direction:column;align-items:stretch;gap:4px;display:flex;position:absolute;top:208px;right:12px}.coordinate-toggle-buttons{gap:4px;display:flex}.coordinate-toggle-button{color:#e6e6ea;cursor:pointer;background:#34363fd9;border:1px solid #4a4c58;border-radius:4px;width:52px;height:26px;font:11px/1.2 system-ui,Segoe UI,Roboto,sans-serif}.coordinate-toggle-button:hover{background:#3d3f4a;border-color:#4a8cff}.coordinate-toggle-button.active{color:#0e1116;background:#4a8cff;border-color:#4a8cff;font-weight:600}.coordinate-toggle-button.active:hover{background:#5f9bff}.coordinate-toggle-select{color:#e6e6ea;background:#34363fd9;border:1px solid #4a4c58;border-radius:4px;width:108px;padding:3px 4px;font:11px/1.2 system-ui,Segoe UI,Roboto,sans-serif}.unit-prompt-backdrop{z-index:10;background:#0a0a0e99;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.unit-prompt{color:#e6e6ea;background:#24252c;border:1px solid #3d3f4a;border-radius:10px;width:420px;max-width:calc(100vw - 48px);padding:20px 24px;font:14px/1.5 system-ui,Segoe UI,Roboto,sans-serif;box-shadow:0 20px 60px #00000080}.unit-prompt h2{margin:0 0 8px;font-size:17px}.unit-prompt p{opacity:.85;margin:0 0 16px}.unit-prompt-options{flex-direction:column;gap:8px;display:flex}.unit-prompt-options button{font:inherit;color:#e6e6ea;cursor:pointer;text-align:left;background:#34363f;border:1px solid #4a4c58;border-radius:6px;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.unit-prompt-options button:hover{background:#3d3f4a;border-color:#4a8cff}.unit-prompt-preview{opacity:.65;font-size:12px}.cut-toolbar{color:#e6e6ea;background:#24252c;border-bottom:1px solid #35363f;flex-wrap:wrap;align-items:center;gap:16px;padding:8px 16px;font:14px/1.4 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.cut-toolbar-label{opacity:.85;font-weight:600}.cut-toolbar-modes{border:1px solid #4a4c58;border-radius:4px;display:flex;overflow:hidden}.cut-toolbar-modes button{font:inherit;color:#e6e6ea;cursor:pointer;background:#34363f;border:none;padding:5px 12px}.cut-toolbar-modes button+button{border-left:1px solid #4a4c58}.cut-toolbar-modes button:hover{background:#3d3f4a}.cut-toolbar-modes button.active{color:#0e1116;background:#4a8cff}.cut-toolbar-kerf{opacity:.9;align-items:center;gap:6px;display:flex}.cut-toolbar-kerf input{width:64px;font:inherit;color:#e6e6ea;background:#1b1c22;border:1px solid #4a4c58;border-radius:4px;padding:4px 6px}.cut-toolbar-rotation{opacity:.9;align-items:center;gap:8px;display:flex}.cut-toolbar-axis-pick-status{opacity:.85;font-style:italic}.cut-toolbar-rotation-label{opacity:.85}.cut-toolbar-axis{align-items:center;gap:4px;display:flex}.cut-toolbar-axis input{width:60px;font:inherit;color:#e6e6ea;background:#1b1c22;border:1px solid #4a4c58;border-radius:4px;padding:4px 6px}.cut-toolbar-actions{gap:8px;margin-left:auto;display:flex}.cut-toolbar-actions button{font:inherit;color:#e6e6ea;cursor:pointer;background:#34363f;border:1px solid #4a4c58;border-radius:4px;padding:6px 12px}.cut-toolbar-actions button:hover:not(:disabled){background:#3d3f4a}.cut-toolbar-actions button.primary{color:#0e1116;background:#4a8cff;border-color:#4a8cff;font-weight:600}.cut-toolbar-actions button.primary:hover:not(:disabled){background:#5f9bff}.cut-toolbar-actions button:disabled,.cut-toolbar-modes button:disabled,.cut-toolbar-kerf input:disabled,.cut-toolbar-axis input:disabled{opacity:.5;cursor:default}.piece-list{color:#e6e6ea;flex-direction:column;gap:8px;padding:12px 16px;font:14px/1.4 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.piece-list-header{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.piece-list-label{opacity:.85;white-space:nowrap;font-weight:600}.piece-list-explode{white-space:nowrap;align-items:center;gap:8px;display:flex}.piece-list-explode input[type=range]{accent-color:#4a8cff;width:120px}.piece-list-explode-readout{opacity:.85;width:3.5em}.piece-tree,.piece-tree-children{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.piece-tree-children{border-left:1px solid #4a4c58;margin-top:4px;padding-left:20px}.piece-row{background:#34363f;border:1px solid #4a4c58;border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;padding:4px 8px;display:flex}.piece-row.inactive{opacity:.6;background:0 0;border-color:#0000}.piece-row-spacer{width:13px;display:inline-block}.piece-swatch{border-radius:3px;flex-shrink:0;width:12px;height:12px}.piece-name{white-space:nowrap}.piece-row button{font:inherit;color:#e6e6ea;cursor:pointer;background:#24252c;border:1px solid #4a4c58;border-radius:4px;padding:3px 8px;font-size:12px}.piece-row button:hover:not(:disabled){background:#3d3f4a;border-color:#4a8cff}.piece-row button:disabled{opacity:.5;cursor:default}.piece-row button.active{color:#0e1116;background:#4a8cff;border-color:#4a8cff;font-weight:600}.joint-toolbar{color:#e6e6ea;background:#24252c;border-bottom:1px solid #35363f;flex-wrap:wrap;align-items:center;gap:16px;padding:8px 16px;font:14px/1.4 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.joint-toolbar-label{opacity:.85;font-weight:600}.joint-toolbar-field{opacity:.9;align-items:center;gap:6px;display:flex}.joint-toolbar-field input,.joint-toolbar-field select{width:72px;font:inherit;color:#e6e6ea;background:#1b1c22;border:1px solid #4a4c58;border-radius:4px;padding:4px 6px}.joint-toolbar-field select{width:auto}.joint-toolbar-note{opacity:.7;cursor:help;border:1px dashed #4a4c58;border-radius:4px;padding:4px 8px}.joint-toolbar-actions{gap:8px;margin-left:auto;display:flex}.joint-toolbar-actions button{font:inherit;color:#e6e6ea;cursor:pointer;background:#34363f;border:1px solid #4a4c58;border-radius:4px;padding:6px 12px}.joint-toolbar-actions button:hover:not(:disabled){background:#3d3f4a}.joint-toolbar-actions button.primary{color:#0e1116;background:#4a8cff;border-color:#4a8cff;font-weight:600}.joint-toolbar-actions button.primary:hover:not(:disabled){background:#5f9bff}.joint-toolbar-actions button.danger:hover:not(:disabled){background:#5a2a2a;border-color:#d95f5f}.joint-toolbar-actions button:disabled,.joint-toolbar-field input:disabled,.joint-toolbar-field select:disabled{opacity:.5;cursor:default}.joint-panel{color:#e6e6ea;flex-direction:column;gap:8px;padding:12px 16px;font:14px/1.4 system-ui,Segoe UI,Roboto,sans-serif;display:flex}.joint-panel-export-plate{font:inherit;color:#e6e6ea;cursor:pointer;background:#2f3b57;border:1px solid #4a8cff;border-radius:4px;margin-top:4px;padding:6px 10px;font-size:13px}.joint-panel-export-plate:hover:not(:disabled){background:#37456b}.joint-panel-export-plate:disabled{opacity:.5;cursor:default}.joint-panel-label{opacity:.85;font-weight:600}.joint-cut-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.joint-cut-summary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.joint-cut-names{overflow-wrap:anywhere}.joint-cut-summary button{font:inherit;color:#e6e6ea;cursor:pointer;background:#34363f;border:1px solid #4a4c58;border-radius:4px;padding:3px 8px;font-size:12px}.joint-cut-summary button:hover:not(:disabled){background:#3d3f4a;border-color:#4a8cff}.joint-cut-summary button:disabled{opacity:.5;cursor:default}.joint-list{border-left:1px solid #4a4c58;flex-direction:column;gap:6px;margin:4px 0 0;padding-left:14px;list-style:none;display:flex}.joint-row{opacity:.95;cursor:pointer;border-radius:4px;flex-wrap:nowrap;align-items:center;gap:6px;margin:-3px -4px;padding:3px 4px;font-size:12px;display:flex}.joint-row-summary{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.joint-row:hover{background:#2c2e37}.joint-row.selected{background:#2f3b57;outline:1px solid #4a8cff}.joint-row.pattern{background:#26241c}.joint-row.pattern:hover{background:#322f22}.joint-row-instance-count{color:#f2c37b;white-space:nowrap;background:#4a3a1a;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:600}.joint-row-mode{text-transform:uppercase;letter-spacing:.02em;color:#b7bac2;white-space:nowrap;background:#34363f;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:600}.joint-row-mode.dowel{color:#f2c37b;background:#4a3a1a}.joint-row-design{text-transform:uppercase;letter-spacing:.02em;color:#b7bac2;white-space:nowrap;background:#34363f;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:10px;font-weight:600}.joint-row-design.teardrop{color:#8badf2;background:#23283a}.joint-row-design.finned{color:#7fcf9a;background:#23342a}.joint-row-design.fin-tab{color:#e28fce;background:#3a2334}.joint-row-delete{font:inherit;color:#e6e6ea;cursor:pointer;background:#34363f;border:1px solid #4a4c58;border-radius:4px;flex-shrink:0;margin-left:auto;padding:2px 7px;line-height:1}.joint-row-delete:hover:not(:disabled){background:#5a2a2a;border-color:#d95f5f}.joint-row-delete:disabled{opacity:.5;cursor:default}
