:root{--bg:#1e2227;--bg-panel:#262b31;--bg-toolbar:#2b3037;--bg-viewport:#21262c;--border:#3a4048;--text:#d6dbe1;--text-muted:#7d858f;--accent:#ff7a1a;--accent-dim:#c85f12;--tool-hover:#333a42;color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:13px}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;margin:0;overflow:hidden}#app{grid-template:"toolbar toolbar toolbar"44px"browser viewport properties"1fr"status status status"26px/220px 1fr 260px;width:100vw;height:100vh;display:grid}#toolbar{background:var(--bg-toolbar);border-bottom:1px solid var(--border);grid-area:toolbar;align-items:center;gap:4px;padding:0 12px;display:flex}.brand{letter-spacing:.3px;-webkit-user-select:none;user-select:none;margin-right:14px;font-weight:700}.brand span{color:var(--accent)}.tool-group{border-left:1px solid var(--border);align-items:center;gap:2px;height:26px;padding:0 8px;display:flex}.tool-group:first-of-type{border-left:none}.tool{color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:4px 10px;font-size:12px}.tool:hover:not(:disabled){background:var(--tool-hover);border-color:var(--border)}.tool:disabled{color:var(--text-muted);cursor:default}.tool.active{background:var(--accent);color:#1a1204;border-color:var(--accent);font-weight:600}.tool.accent{border-color:var(--accent-dim);color:var(--accent)}.tool.accent:hover:not(:disabled){background:var(--accent);color:#1a1204}.spacer{flex:1}.panel{background:var(--bg-panel);overflow-y:auto}#browser{border-right:1px solid var(--border);grid-area:browser}#properties{border-left:1px solid var(--border);grid-area:properties}.panel-title{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);border-bottom:1px solid var(--border);padding:8px 12px;font-size:11px}.tree{margin:0;padding:2px 0;font-size:12px;list-style:none}.tree-section{margin:0 0 4px}.tree-head{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:8px 12px 2px;font-size:10px}.tree-section .tree:empty:after{content:"—";color:var(--text-muted);opacity:.45;padding:1px 12px 4px 24px;display:block}.tree li{padding:3px 12px}.tree-branch,.tree-leaf{padding-left:24px!important}.tree-feature{cursor:pointer;border-left:2px solid #0000;padding-left:24px!important}.tree-feature:hover{background:var(--tool-hover)}.tree-feature.selected{background:var(--tool-hover);border-left-color:var(--accent);color:#fff}.tree-feature.picked{color:var(--accent);font-weight:600}.prop-name{margin-bottom:2px;font-size:13px;font-weight:600}.prop-empty{padding:12px;font-size:12px}.prop-form{flex-direction:column;gap:8px;padding:12px;display:flex}.prop-form label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;font-size:11px}.prop-form input,.prop-form select{background:var(--bg-viewport);color:var(--text);border:1px solid var(--border);border-radius:4px;outline:none;padding:6px 8px;font-family:inherit;font-size:13px}.prop-form input:focus,.prop-form select:focus{border-color:var(--accent)}.prop-row{gap:6px;display:flex}.prop-row input{flex:1;min-width:0}.measure-row{justify-content:space-between;gap:10px;padding:2px 0;font-size:13px;display:flex}.measure-row b{color:var(--accent)}.layers-panel{z-index:20;border:1px solid var(--border);width:214px;color:var(--text);background:#14181cf5;border-radius:8px;padding:10px 12px;font-size:13px;position:absolute;top:34px;right:12px}.layers-sub{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);justify-content:space-between;align-items:center;margin:12px 0 6px;font-size:10px;display:flex}.measure-hint{margin-bottom:8px;font-size:11px;line-height:1.4}#axis-gizmo{z-index:20;pointer-events:none;background:#12161b99;border-radius:50%;width:72px;height:72px;position:absolute;bottom:128px;left:14px;overflow:visible}.measure-list{flex-direction:column;gap:4px;margin:6px 0 8px;display:flex}.measure-item{align-items:center;gap:7px;padding:3px 4px;display:flex}.mi-num{color:#06232a;background:#22d3ee;border-radius:50%;flex:none;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;font-weight:700;display:inline-flex}.mi-val{background:var(--bg-elev,#1b1f27);width:74px;color:var(--text,#e6e9ef);border:1px solid var(--border);border-radius:6px;padding:4px 6px;font-size:12px}.mi-val:disabled{opacity:.5}.mi-unit{flex:1;font-size:11px}.mi-del{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:none;font-size:15px;line-height:1}.mi-del:hover{color:var(--danger,#e0554e)}.layer-eye{accent-color:var(--accent);flex:none}.layer-name{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;overflow:hidden}.layer-count{text-align:right;min-width:14px;font-size:10px}.layer-del{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:15px;line-height:1}.layer-del:hover{color:#ff6b6b}.layers-hint{margin:5px 0 0;font-size:10px}.layers-head{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:11px;display:flex}.layers-head button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:16px;line-height:1}.layer-row{cursor:pointer;align-items:center;gap:8px;padding:3px 0;display:flex}.layer-op{width:100%;accent-color:var(--accent);margin:2px 0 4px 22px}.jc-name{font-size:12px;font-weight:600}.jc-cat{font-size:10px}.prop-actions{gap:6px;margin-top:4px;display:flex}.prop-actions .tool{border:1px solid var(--border);flex:1}.prop-delete{color:#e88!important;border:1px solid #6b3030!important}.prop-delete:hover{background:#6b3030;color:#fff!important}.muted{color:var(--text-muted)}#viewport{background:var(--bg-viewport);grid-area:viewport;position:relative;overflow:hidden}#viewport canvas{display:block}.overlay{background:var(--bg-viewport);z-index:10;flex-direction:column;justify-content:center;align-items:center;gap:14px;transition:opacity .3s;display:flex;position:absolute;inset:0}.overlay.hidden{opacity:0;pointer-events:none}.overlay-text{color:var(--text-muted);font-size:13px}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dim-input{z-index:15;background:var(--bg-toolbar);width:68px;color:var(--text);border:1px solid var(--accent);border-radius:4px;outline:none;padding:3px 6px;font-family:inherit;font-size:12px;position:absolute;transform:translate(8px,-50%)}.export-menu{z-index:30;background:var(--bg-panel);border:1px solid var(--border);overscroll-behavior:contain;border-radius:6px;flex-direction:column;gap:2px;max-height:calc(100vh - 56px);padding:4px;display:flex;position:absolute;top:44px;right:12px;overflow-y:auto;box-shadow:0 8px 24px #00000080}.export-menu button{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:8px 16px;font-family:inherit;font-size:13px}.export-menu button:hover{background:var(--tool-hover)}.menu-select{color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;padding:5px 16px;font-size:12px;display:flex}.step-row{align-items:center;gap:4px;display:flex}.step-row .tool{min-width:30px;padding:3px 8px}.step-row input{text-align:center;flex:1;min-width:40px}.menu-select select{background:var(--bg-panel);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:2px 4px;font-size:12px}.picker{z-index:20;background:#14171b8c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.picker-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:16px;padding:20px;display:flex;box-shadow:0 12px 40px #00000080}.picker-title{text-align:center;font-size:14px;font-weight:600}.picker-planes{gap:12px;display:flex}.plane-btn{background:var(--bg-viewport);border:1px solid var(--border);width:88px;height:88px;color:var(--text);cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex}.plane-btn:hover{border-color:var(--accent);background:var(--tool-hover)}.plane-name{font-size:14px;font-weight:600}.plane-sub{color:var(--text-muted);font-size:11px}.picker-offset-label{color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.picker-offset-label input{background:var(--bg-viewport);width:70px;color:var(--text);border:1px solid var(--border);border-radius:4px;outline:none;padding:5px 7px;font-family:inherit;font-size:12px}.picker-offset-label input:focus{border-color:var(--accent)}.picker-face{background:var(--bg-viewport);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;padding:8px;font-size:12px}.picker-face:hover:not(:disabled){border-color:var(--accent)}.picker-face:disabled{color:var(--text-muted);cursor:default;opacity:.6}.picker-cancel{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:6px}.picker-cancel:hover{color:var(--text);border-color:var(--text-muted)}#statusbar{background:var(--bg-toolbar);border-top:1px solid var(--border);color:var(--text-muted);grid-area:status;align-items:center;gap:8px;padding:0 12px;font-size:11px;display:flex}.units-chip{border:1px solid var(--border);text-transform:uppercase;letter-spacing:.06em;color:var(--text);-webkit-user-select:none;user-select:none;border-radius:10px;padding:1px 8px;font-weight:600}.units-chip:hover{border-color:var(--accent);color:var(--accent)}[hidden]{display:none!important}#app{grid-template-rows:auto 1fr 30px;grid-template-columns:210px minmax(300px,1fr) 260px}#toolbar{flex-wrap:wrap;gap:6px;min-height:54px;padding:8px 12px}.brand{white-space:nowrap}.tool-group{padding:0 4px}.tool{padding:6px 8px}.project-label{overflow-wrap:anywhere;padding:14px 12px 4px;font-weight:600}.save-state{color:var(--text-muted);padding:0 12px 14px;font-size:11px;line-height:1.5}.start-guide{z-index:3;background:#262b31f0;border:1px solid #46505a;border-radius:12px;width:min(420px,90%);padding:28px;position:absolute;top:18%;left:50%;transform:translate(-50%);box-shadow:0 16px 60px #0004}.eyebrow{color:var(--accent);letter-spacing:1.8px;font-size:10px;font-weight:700}.start-guide h1{letter-spacing:-.6px;margin:12px 0;font-size:28px;font-weight:600}.start-guide p{color:#b5bec8;margin:0;line-height:1.7}.start-actions{gap:8px;margin:22px 0 16px;display:flex}.start-guide>span{font-size:11px}.view-controls{z-index:4;border:1px solid var(--border);background:#262b31dd;border-radius:6px;position:absolute;top:12px;right:12px}.cad-menu{z-index:50;min-width:180px;position:fixed;right:auto}.export-menu button:disabled{color:var(--text-muted);cursor:default;opacity:.65}#reference-note{z-index:3;color:#b5bec8;background:#262b31ee;border-radius:4px;padding:8px 12px;font-size:11px;position:absolute;bottom:12px;left:90px;right:12px}#statusbar{gap:16px}#model-size{font-variant-numeric:tabular-nums;white-space:nowrap}#btn-print{background:var(--accent);color:#1a1204;font-weight:600}#btn-print:disabled{color:var(--text-muted);border-color:var(--border);background:0 0}@media (width<=1050px){#app{grid-template-columns:170px minmax(250px,1fr) 220px}#toolbar .spacer{display:none}#status-msg{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}}#axis-gizmo{bottom:20px}.unit-control{color:#adb8c5;white-space:nowrap;align-items:center;gap:7px;padding:0 7px;font-size:11px;display:flex}.unit-control select{color:#f1f5f9;font:inherit;background:#1d232a;border:1px solid #566373;border-radius:5px;padding:5px 7px;font-size:12px}#project-name{width:calc(100% - 24px);color:var(--text);border:1px solid var(--border);font:inherit;background:#1f252c;border-radius:4px;margin:12px 12px 5px;padding:7px;font-weight:600;display:block}#project-name:focus{outline:1px solid var(--accent)}.size-card{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding-bottom:10px}.size-card .tree-head{justify-content:space-between;padding-top:12px;display:flex}#size-unit{color:#c6d9ec}.size-values{color:#a4b1bf;padding:5px 12px;font-size:11px}.size-values>div{grid-template-columns:1fr auto;align-items:baseline;gap:3px 6px;padding:6px 0;display:grid}.size-values strong{color:#edf4fc;font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.size-values small{text-align:right;color:#9aabba;grid-column:2;font-size:10px}.size-values .volume-readout{border-top:1px solid var(--border);margin-top:5px;padding-top:10px}.volume-readout strong{font-size:11px}.dimension-toggle{align-items:center;gap:6px;margin:10px 10px 7px;font-size:11px;display:flex}.dimension-toggle input{accent-color:var(--accent)}.size-note{color:#93a0ae;padding:0 12px;font-size:10px;line-height:1.5}#dimension-overlay{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.dimension-axis{stroke:#a5d8fa;stroke-width:1px;fill:none}.dimension-axis .extension{opacity:.45;stroke-dasharray:3 3}.dimension-axis text{stroke:#21262c;stroke-width:5px;stroke-linejoin:round;paint-order:stroke;fill:#d4edff;text-anchor:middle;font:600 12px Segoe UI,sans-serif}.tool-help,.input-hint{color:#abb9c7;text-transform:none;margin:4px 0 14px;font-size:12px;line-height:1.55}.input-hint{margin-top:5px;font-size:10px}.edge-selection{color:#ffc080;justify-content:space-between;align-items:center;margin:10px 0 15px;font-size:12px;display:flex}.form-error{color:#ffc5ae;min-height:12px;margin-bottom:8px;font-size:12px;line-height:1.5}.prop-form .tool:disabled{opacity:.5}.prop-actions{flex-wrap:wrap}.measure-mode{gap:6px;margin:10px 0;display:flex}.layers-panel .measure-mode .tool.active{background:var(--accent);color:#1a1204}.measure-item{grid-template-columns:22px 1fr 24px;gap:6px;display:grid}.measure-item small{color:#a5b6c7;grid-column:2/-1;font-size:10px}.measure-item b{color:#d5f6ff;font-size:13px}#measure-panel{max-width:320px}#tg-edges .tool{border-color:#5e4b3b}#status-msg{min-width:0}@media (width<=1150px){#toolbar{gap:3px;padding:5px 8px}#toolbar .tool{padding:5px 6px}.brand{margin-right:4px}}.grid-panel{border-bottom:1px solid var(--border);padding-bottom:12px}.grid-panel .tree-head{justify-content:space-between;display:flex}#grid-form{grid-template-columns:1fr 70px;align-items:center;gap:7px;padding:0 12px;font-size:11px;display:grid}#grid-form input{color:#edf4fc;background:#1d232a;border:1px solid #566373;border-radius:4px;width:100%;min-width:0;padding:5px}#grid-form button,#grid-error{grid-column:1/-1}#grid-error:empty{display:none}#grid-cursor{color:#a5d8fa;font-variant-numeric:tabular-nums;margin-top:7px}.prop-form .check-row{text-transform:none;align-items:center;gap:8px;margin:14px 0;line-height:1.5;display:flex}.prop-form .check-row input{width:auto;accent-color:var(--accent)}#design-depth-wrap{display:contents}#design-depth-wrap[hidden]{display:none}#design-form select{width:100%}
