:root{--cad-bg: #121212;--cad-text: #e0e0e0;--cad-canvas-bg: #1e1e1e;--cad-header-bg: #111118;--cad-toolbar-bg: #1a1a24;--cad-panel-bg: rgba(35, 35, 35, .85);--cad-panel-border: rgba(255, 255, 255, .1);--cad-surface: #252525;--cad-surface-hover: #333;--cad-surface-active: #444;--cad-border: #444;--cad-text-muted: #aaa;--cad-dropdown-bg: #2d2d2d;--cad-status-bg: #1a1a1a;--cad-input-bg: #333;--cad-input-border: #555;--cad-scrollbar-thumb: #555;--cad-scrollbar-track: #222}:root.light{--cad-bg: #f0f2f5;--cad-text: #1a1a2e;--cad-canvas-bg: #ffffff;--cad-header-bg: #ffffff;--cad-toolbar-bg: #f5f5fa;--cad-panel-bg: rgba(255, 255, 255, .92);--cad-panel-border: rgba(0, 0, 0, .12);--cad-surface: #e8e8ee;--cad-surface-hover: #dcdce4;--cad-surface-active: #ccccd6;--cad-border: #c0c0cc;--cad-text-muted: #666;--cad-dropdown-bg: #ffffff;--cad-status-bg: #f5f5f5;--cad-input-bg: #ffffff;--cad-input-border: #c0c0cc;--cad-scrollbar-thumb: #bbb;--cad-scrollbar-track: #e8e8e8}*{margin:0;padding:0;box-sizing:border-box}body{background-color:var(--cad-bg);color:var(--cad-text);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;overflow:hidden}#cad-main-canvas{position:absolute;top:83px;left:0;width:100%;height:calc(100vh - 113px);display:block;background-color:var(--cad-canvas-bg);z-index:0}#ui-overlay{position:absolute;top:98px;left:20px;pointer-events:none;z-index:500}.info-panel{background:var(--cad-panel-bg);backdrop-filter:blur(4px);padding:15px;border-radius:6px;border:1px solid var(--cad-panel-border);box-shadow:0 8px 32px #0006;pointer-events:auto;min-width:220px}h2{font-size:14px;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;color:var(--cad-text-muted)}.bom-row{display:flex;align-items:center;justify-content:space-between;margin:5px 0;font-family:Courier New,Courier,monospace;font-size:16px}.layer-visibility-btn{background:none;border:none;color:var(--cad-text-muted);cursor:pointer;padding:0 4px;display:flex;align-items:center;flex-shrink:0}.layer-visibility-btn:hover{color:var(--cad-text)}.bom-layer-label{font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-size:13px;padding:1px 4px;border-radius:3px;transition:background .15s}.bom-layer-label:hover{background:var(--cad-panel-border)}.bom-layer-label.active{background:#ffffff26;outline:1px solid rgba(255,255,255,.25)}.bom-value{font-family:Courier New,Courier,monospace}.die-setup-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.die-label{font-size:11px;color:var(--cad-text-muted);text-transform:uppercase;letter-spacing:.5px;min-width:40px;flex-shrink:0}.die-select{flex:1;padding:4px 6px;background:var(--cad-input-bg);border:1px solid var(--cad-input-border);border-radius:3px;color:var(--cad-text);font-size:12px;font-family:inherit;outline:none;cursor:pointer}.die-select:focus{border-color:#0078d4}.die-dims-group{display:flex;align-items:center;gap:3px;flex:1}.die-dim-input{width:48px;padding:4px;background:var(--cad-input-bg);border:1px solid var(--cad-input-border);border-radius:3px;color:var(--cad-text);font-size:12px;font-family:Courier New,Courier,monospace;outline:none;text-align:center;-moz-appearance:textfield}.die-dim-input::-webkit-inner-spin-button,.die-dim-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.die-dim-input:focus{border-color:#0078d4}.die-dim-sep{color:var(--cad-input-border);font-size:12px}.die-dim-unit{color:var(--cad-text-muted);font-size:11px;margin-left:2px}.die-separator{height:1px;background:var(--cad-panel-border);margin:10px 0}.bom-export-row{display:flex;gap:8px}.bom-export-btn{flex:1;padding:6px 8px;background:var(--cad-surface-active);color:var(--cad-text);border:1px solid var(--cad-panel-border);border-radius:4px;cursor:pointer;font-size:11px;font-weight:600;letter-spacing:.5px;transition:background .2s,color .2s}.bom-export-btn:hover{background:var(--cad-surface-hover);color:var(--cad-text)}#clearBtn{margin-top:15px;width:100%;padding:8px;background:var(--cad-surface-active);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .2s}#clearBtn:hover{background:#f44}.controls-hint{position:absolute;bottom:20px;right:20px;font-size:12px;color:var(--cad-text-muted);text-align:right}#status-bar{position:absolute;bottom:0;left:0;width:100%;height:30px;background:var(--cad-surface);border-top:1px solid var(--cad-border);display:flex;align-items:center;padding:0 20px;font-family:Courier New,Courier,monospace;font-size:12px;color:var(--cad-text-muted);gap:30px;z-index:9600}.status-label{color:var(--cad-text-muted);margin-right:5px}.status-segment{display:flex;align-items:center}#activeToolDisplay{color:var(--cad-text);font-weight:700}#app-header{position:absolute;top:0;left:0;width:100%;height:45px;background:var(--cad-dropdown-bg);border-bottom:1px solid var(--cad-border);display:flex;align-items:center;padding:0 15px 0 0;z-index:1000}.logo-section{display:flex;align-items:center;height:100%;margin-right:30px;gap:12px}.app-logo{height:100%;width:auto;display:block;object-fit:cover}.logo-icon{background:#0078d4;color:#fff;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;font-weight:700;font-size:14px}.logo-text{font-weight:600;font-size:15px;color:var(--cad-text);letter-spacing:.5px;line-height:1}.logo-text .version{font-size:10px;color:var(--cad-text-muted);margin-left:4px}.menu-bar{display:flex;gap:5px}.menu-item{padding:6px 12px;font-size:13px;color:var(--cad-text);cursor:pointer;border-radius:4px;position:relative}.menu-item:hover{background:var(--cad-surface-active);color:var(--cad-text)}.dropdown{display:none;position:absolute;top:100%;left:0;background:var(--cad-surface-hover);border:1px solid var(--cad-border);box-shadow:0 4px 10px #00000080;min-width:150px;border-radius:4px;padding:5px 0;margin-top:2px}.menu-item:hover .dropdown{display:block}.dropdown span{display:block;padding:8px 15px;color:var(--cad-text);font-size:12px}.dropdown span:hover{background:#0078d4;color:#fff}.dropdown span.disabled:hover{background:transparent;color:var(--cad-text-muted)}.dropdown-submenu-trigger{position:relative;display:flex!important;justify-content:space-between;align-items:center}.dropdown-submenu-trigger .submenu-arrow{margin-left:12px;font-size:10px;opacity:.7}.dropdown-submenu{display:none;position:absolute;left:100%;top:-5px;background:var(--cad-surface-hover);border:1px solid var(--cad-border);box-shadow:0 4px 10px #00000080;min-width:140px;border-radius:4px;padding:5px 0}.dropdown-submenu span{display:block;padding:8px 15px;color:var(--cad-text);font-size:12px;white-space:nowrap}.dropdown-submenu span:hover{background:#0078d4;color:#fff}.dropdown-submenu span.disabled{color:var(--cad-text-muted);cursor:default}.dropdown-submenu span.disabled:hover{background:transparent;color:var(--cad-text-muted)}.dropdown-submenu-trigger:hover>.dropdown-submenu{display:block}.divider{height:1px;background:var(--cad-border);margin:4px 0}#template-panel{position:absolute;top:83px;right:0;width:250px;height:calc((100vh - 113px)/2);background:var(--cad-toolbar-bg);border-left:1px solid var(--cad-border);display:flex;flex-direction:row;z-index:500;transition:width .15s ease;overflow:hidden}#template-panel.collapsed{width:28px}#template-toggle-btn{flex-shrink:0;width:28px;background:var(--cad-surface);border:none;border-right:1px solid var(--cad-border);color:var(--cad-text-muted);cursor:pointer;font-size:11px;padding:0;display:flex;align-items:center;justify-content:center}#template-toggle-btn:hover{background:var(--cad-surface-hover);color:var(--cad-text)}#template-panel-body{flex:1;display:flex;flex-direction:column;min-width:0;padding:10px 8px 8px;gap:8px;overflow:hidden}.template-panel-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--cad-text-muted);padding-bottom:8px;border-bottom:1px solid var(--cad-border);flex-shrink:0}#template-search{width:100%;padding:5px 8px;background:var(--cad-input-bg);border:1px solid var(--cad-input-border);border-radius:3px;color:var(--cad-text);font-size:12px;outline:none;flex-shrink:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}#template-search:focus{border-color:#0078d4}#template-tree{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:3px}#template-tree::-webkit-scrollbar{width:5px}#template-tree::-webkit-scrollbar-track{background:transparent}#template-tree::-webkit-scrollbar-thumb{background:var(--cad-scrollbar-thumb);border-radius:3px}.template-category{margin-bottom:4px}.template-cat-header{font-size:11px;font-weight:600;color:var(--cad-text-muted);text-transform:uppercase;letter-spacing:.5px;padding:5px 6px;cursor:pointer;background:var(--cad-surface);border-radius:3px;user-select:none;display:flex;align-items:center;gap:5px}.template-cat-header:before{content:"▾";font-size:10px;color:var(--cad-text-muted)}.template-cat-header.collapsed:before{content:"▸"}.template-cat-header:hover{background:var(--cad-surface-hover)}.template-machine-list{padding-left:4px;margin-top:2px}.template-machine-list.collapsed{display:none}.template-machine{font-size:12px;color:var(--cad-text-muted);padding:5px 8px;cursor:pointer;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.template-machine:hover{background:#0078d4;color:#fff}.template-machine.active{background:#005a9e;color:#fff}.template-error{font-size:12px;color:#f44;padding:8px;text-align:center}.template-footer{padding-top:8px;border-top:1px solid var(--cad-border);flex-shrink:0;display:flex;gap:4px}#template-clear-btn,#template-add-btn{flex:1;padding:4px 6px;background:var(--cad-surface);color:var(--cad-text-muted);border:1px solid var(--cad-border);border-radius:3px;font-size:11px;cursor:pointer;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;display:flex;align-items:center;justify-content:center;gap:3px}#template-add-btn svg{flex-shrink:0}#template-clear-btn:hover{background:#3a2020;color:#f88;border-color:#664}#template-add-btn:hover{background:var(--cad-surface-hover);color:var(--cad-text)}.template-machine{display:flex;align-items:center;justify-content:space-between}.template-machine-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.template-delete-btn{background:none;border:none;color:var(--cad-text-muted);font-size:10px;cursor:pointer;padding:0 2px;flex-shrink:0;opacity:0;transition:opacity .1s}.template-machine:hover .template-delete-btn{opacity:1}.template-delete-btn:hover{color:#f88}.template-upload-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9000}.template-upload-dialog{background:var(--cad-panel-bg);border:1px solid var(--cad-panel-border);border-radius:8px;width:340px;box-shadow:0 8px 32px #0006;backdrop-filter:blur(12px)}.template-upload-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--cad-border);font-weight:600;font-size:14px;color:var(--cad-text)}.template-upload-body{padding:16px;display:flex;flex-direction:column;gap:8px}.template-upload-label{font-size:11px;font-weight:600;color:var(--cad-text-muted);margin-top:4px}.template-upload-required{color:#f44}.template-upload-input,.template-upload-select{width:100%;padding:6px 8px;background:var(--cad-input-bg);color:var(--cad-text);border:1px solid var(--cad-input-border);border-radius:4px;font-size:12px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;outline:none}.template-upload-input:focus,.template-upload-select:focus{border-color:#6c8dfa}.template-upload-cat-row{display:flex;gap:6px}.template-upload-file-row{display:flex;align-items:center;gap:8px}.template-upload-file-btn{padding:5px 10px;background:var(--cad-surface);color:var(--cad-text);border:1px solid var(--cad-border);border-radius:4px;font-size:11px;cursor:pointer;white-space:nowrap}.template-upload-file-btn:hover{background:var(--cad-surface-hover)}.template-upload-file-name{font-size:11px;color:var(--cad-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-upload-submit{margin-top:8px;padding:7px;background:#6c8dfa;color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer}.template-upload-submit:hover:not(:disabled){background:#5a7ae8}.template-upload-submit:disabled{opacity:.5;cursor:not-allowed}#toolbar{position:absolute;top:45px;left:0;width:100%;height:36px;background:var(--cad-surface);border-bottom:1px solid var(--cad-border);display:flex;align-items:center;padding:0 8px;gap:4px;z-index:900}.toolbar-group{display:flex;align-items:center;gap:2px}.toolbar-separator{width:1px;height:20px;background:var(--cad-border);margin:0 4px}.toolbar-label{font-size:12px;color:var(--cad-text-muted);margin-right:4px}.tool-btn{position:relative;display:flex;align-items:center;justify-content:center;padding:5px;min-width:28px;height:28px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--cad-text-muted);font-size:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;cursor:pointer;transition:background .15s,color .15s}.tool-btn:hover{background:var(--cad-surface-hover);color:var(--cad-text);border-color:var(--cad-input-border)}.tool-btn:after{content:attr(data-tooltip);position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:6px;padding:4px 8px;background:var(--cad-status-bg);border:1px solid var(--cad-input-border);border-radius:4px;color:var(--cad-text);font-size:11px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:1000}.tool-btn:hover:after{opacity:1}.tool-btn.active{background:#0078d4;color:#fff;border-color:#0078d4}.toolbar-spacer{flex:1}.unit-toggle{display:flex;align-items:center;border:1px solid var(--cad-input-border);border-radius:4px;overflow:hidden;height:26px}.unit-toggle-btn{display:flex;align-items:center;justify-content:center;padding:0 8px;height:100%;background:transparent;border:none;color:var(--cad-text-muted);font-size:11px;font-weight:600;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;cursor:pointer;transition:background .15s,color .15s}.unit-toggle-btn:hover{background:var(--cad-surface-hover);color:var(--cad-text)}.unit-toggle-btn.active{background:#0078d4;color:#fff}#layer-color-dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:#f44;flex-shrink:0}#layer-select{padding:3px 6px;background:var(--cad-input-bg);border:1px solid var(--cad-input-border);border-radius:4px;color:var(--cad-text);font-size:12px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;cursor:pointer;outline:none}#layer-select:focus{border-color:#0078d4}#shape-flyout{position:absolute;top:83px;left:0;width:100%;background:var(--cad-surface);border-bottom:1px solid var(--cad-border);box-shadow:0 4px 12px #0006;z-index:950;padding:0 12px;display:none;flex-direction:row;align-items:center;flex-wrap:wrap;gap:4px;min-height:38px}#shape-flyout.open{display:flex}.shape-flyout-title{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--cad-text-muted);padding-right:10px;border-right:1px solid var(--cad-border);margin-right:6px;white-space:nowrap}.shape-category{display:flex;align-items:center;gap:3px;padding:0;margin:0}.shape-cat-header{font-size:10px;font-weight:600;color:var(--cad-text-muted);text-transform:uppercase;letter-spacing:.5px;padding:0 8px 0 2px;border-right:1px solid var(--cad-border);margin-right:2px;white-space:nowrap;user-select:none}.shape-grid{display:flex;flex-direction:row;flex-wrap:wrap;gap:2px}.shape-item{width:auto;padding:4px 10px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--cad-text);font-size:12px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;text-align:left;cursor:pointer;transition:background .12s,color .12s;white-space:nowrap}.shape-item:hover{background:#0078d4;color:#fff;border-color:#0078d4}.shape-error{font-size:12px;color:#f44;padding:10px 12px;text-align:center}#constraint-panel{position:absolute;top:83px;left:0;width:100%;background:var(--cad-surface);border-bottom:1px solid var(--cad-input-border);border-top:1px solid var(--cad-input-border);box-shadow:0 4px 12px #0006;z-index:945;padding:0 12px;flex-direction:row;align-items:center;flex-wrap:wrap;gap:6px;min-height:38px}#constraint-panel.hidden{display:none}#constraint-panel:not(.hidden){display:flex}.constraint-panel-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#4aabff;padding-right:10px;border-right:1px solid var(--cad-border);margin-right:4px;white-space:nowrap}.constraint-btn{display:flex;align-items:center;gap:5px;padding:4px 10px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--cad-text-muted);font-size:12px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;cursor:pointer;transition:background .12s,color .12s;white-space:nowrap}.constraint-btn:hover:not(.dimmed){background:#0078d4;color:#fff;border-color:#0078d4}.constraint-btn.dimmed{opacity:.3;pointer-events:none}.constraint-separator{width:1px;height:22px;background:var(--cad-border);margin:0 4px}#constraint-remove-btn{padding:4px 10px;background:transparent;border:1px solid #664;border-radius:4px;color:#f88;font-size:12px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;cursor:pointer;white-space:nowrap;transition:background .12s}#constraint-remove-btn:hover{background:#3a2020;border-color:#f44;color:#f44}.dim-inline-input{position:absolute;z-index:800;pointer-events:auto;height:20px;padding:0 4px;background:#1e1e2ef2;border:1px solid #00c8ff;border-radius:3px;color:#fff;font-size:13px;font-family:Segoe UI,sans-serif;text-align:center;outline:none;box-shadow:0 0 6px #00c8ff66}.dim-inline-input:focus{border-color:#fc0;box-shadow:0 0 8px #ffc80080}.modal-backdrop{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:9000}.modal-dialog{background:var(--cad-dropdown-bg);border:1px solid var(--cad-border);border-radius:8px;padding:0;min-width:360px;box-shadow:0 8px 32px #00000080}.modal-header{padding:14px 18px;font-size:15px;font-weight:600;color:var(--cad-text);border-bottom:1px solid var(--cad-surface-hover)}.modal-body{padding:16px 18px}.modal-label{display:block;font-size:12px;color:var(--cad-text-muted);margin-bottom:6px}.save-as-input-row{display:flex;align-items:center;gap:4px}.save-as-input-row input{flex:1;padding:7px 10px;font-size:14px;background:var(--cad-input-bg);color:var(--cad-text);border:1px solid var(--cad-input-border);border-radius:4px;outline:none;font-family:inherit}.save-as-input-row input:focus{border-color:#0078d4}.save-as-ext{color:var(--cad-text-muted);font-size:14px;white-space:nowrap}.modal-error{color:#f66;font-size:12px;margin-top:8px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--cad-surface-hover)}.modal-btn{padding:6px 18px;font-size:13px;border-radius:4px;border:1px solid var(--cad-input-border);cursor:pointer;font-family:inherit}.modal-btn.secondary{background:var(--cad-surface);color:var(--cad-text)}.modal-btn.secondary:hover{background:var(--cad-surface-hover)}.modal-btn.primary{background:#0078d4;color:#fff;border-color:#0078d4}.modal-btn.primary:hover{background:#0066b8}.modal-btn:disabled{opacity:.5;cursor:not-allowed}.save-status-segment{margin-left:auto}.save-status{font-size:11px;transition:opacity .3s}.save-status.saving{color:#fc0}.save-status.saved{color:#4f4}.save-status.error{color:#f44}.save-status.idle{opacity:0}.context-menu{position:fixed;background:var(--cad-dropdown-bg);border:1px solid var(--cad-input-border);border-radius:4px;box-shadow:0 4px 16px #00000080;min-width:140px;padding:4px 0;z-index:9500}.context-menu-item{padding:8px 16px;font-size:13px;color:var(--cad-text);cursor:pointer;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.context-menu-item:hover{background:#0078d4;color:#fff}.context-menu-item.danger{color:#f88}.context-menu-item.danger:hover{background:#c33;color:#fff}.context-menu-separator{height:1px;background:var(--cad-border);margin:4px 0}.constraint-symbol{display:inline-block;width:16px;text-align:center;font-size:13px;opacity:.8}.context-menu-label{padding:4px 16px;font-size:11px;color:var(--cad-text-muted);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;text-transform:uppercase;letter-spacing:.5px}.layer-dot{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:8px;vertical-align:middle}.context-menu-icon-btn{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:var(--cad-dropdown-bg);border:1px solid var(--cad-input-border);border-radius:3px;cursor:pointer;color:var(--cad-text);font-size:11px;font-weight:600;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;padding:0;line-height:1}.context-menu-icon-btn:hover{background:var(--cad-surface-hover);color:var(--cad-text)}.context-menu-submenu-trigger{position:relative;display:flex;align-items:center;justify-content:space-between}.context-menu-arrow{font-size:10px;margin-left:12px;opacity:.6}.context-menu-submenu{position:absolute;left:100%;top:-4px;background:var(--cad-dropdown-bg);border:1px solid var(--cad-input-border);border-radius:4px;box-shadow:0 4px 16px #00000080;min-width:180px;padding:4px 0;z-index:9510}.context-menu-item.disabled{color:var(--cad-text-muted);cursor:default}.context-menu-item.disabled:hover{background:transparent;color:var(--cad-text-muted)}#relations-panel{position:absolute;top:calc(83px + (100vh - 113px)/2);right:0;width:250px;height:calc((100vh - 113px)/2);background:var(--cad-toolbar-bg);border-left:1px solid var(--cad-border);border-top:1px solid var(--cad-border);display:flex;flex-direction:row;z-index:500;transition:width .15s ease;overflow:hidden}#relations-panel.collapsed{width:28px}#relations-toggle-btn{flex-shrink:0;width:28px;background:var(--cad-surface);border:none;border-right:1px solid var(--cad-border);color:var(--cad-text-muted);cursor:pointer;font-size:11px;padding:0;display:flex;align-items:center;justify-content:center}#relations-toggle-btn:hover{background:var(--cad-surface-hover);color:var(--cad-text)}#relations-panel-body{flex:1;display:flex;flex-direction:column;min-width:0;padding:10px 8px 8px;gap:6px;overflow-y:auto;overflow-x:hidden}#relations-panel-body::-webkit-scrollbar{width:5px}#relations-panel-body::-webkit-scrollbar-track{background:transparent}#relations-panel-body::-webkit-scrollbar-thumb{background:var(--cad-scrollbar-thumb);border-radius:3px}.relations-panel-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--cad-text-muted);padding-bottom:6px;border-bottom:1px solid var(--cad-border);flex-shrink:0}.relations-empty{font-size:12px;color:var(--cad-text-muted);text-align:center;padding:20px 8px;font-style:italic}.relations-section{margin-bottom:4px}.relations-section-header{font-size:10px;font-weight:600;color:#4aabff;text-transform:uppercase;letter-spacing:.5px;padding:4px 0 3px;border-bottom:1px solid var(--cad-border);margin-bottom:3px}.relations-row{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:3px;font-size:12px;color:var(--cad-text-muted)}.relations-row:hover{background:var(--cad-surface)}.relations-row.clickable{cursor:pointer}.relations-row.clickable:hover{background:#1a2a3a}.relations-symbol{font-size:14px;color:#4aabff;flex-shrink:0;width:18px;text-align:center}.relations-label{font-size:11px;color:var(--cad-text-muted);text-transform:capitalize;flex-shrink:0}.relations-other{font-size:11px;color:var(--cad-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.relations-value{font-family:Courier New,Courier,monospace;font-size:12px;color:var(--cad-text);cursor:pointer;padding:1px 4px;border-radius:2px;flex:1}.relations-value:hover{background:var(--cad-surface);color:var(--cad-text)}.relations-value.readonly{cursor:default}.relations-value.readonly:hover{background:transparent;color:var(--cad-text)}.relations-edit-input{width:70px;padding:2px 4px;background:var(--cad-input-bg);border:1px solid #0078d4;border-radius:3px;color:#fff;font-size:12px;font-family:Courier New,Courier,monospace;outline:none;flex:1}.relations-delete-btn{flex-shrink:0;background:transparent;border:none;color:#664;font-size:12px;cursor:pointer;padding:2px 4px;border-radius:2px;opacity:0;transition:opacity .15s,color .15s}.relations-row:hover .relations-delete-btn{opacity:1}.relations-delete-btn:hover{color:#f44;background:#3a2020}.arc-condition-row{display:flex;gap:8px;padding:2px 8px 4px;align-items:center}.arc-condition-label{display:flex;align-items:center;gap:4px;font-size:10px;color:#aaa}.arc-condition-select{background:var(--cad-surface, #1e1e1e);color:#ccc;border:1px solid #555;border-radius:3px;font-size:10px;padding:1px 2px;cursor:pointer;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.arc-condition-select:hover{border-color:#888}.relations-ungroup-btn{flex-shrink:0;padding:2px 8px;background:var(--cad-surface);color:#f88;border:1px solid #664;border-radius:3px;font-size:11px;cursor:pointer;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.relations-ungroup-btn:hover{background:#3a2020;color:#f44;border-color:#f44}.relations-group-id{font-family:Courier New,Courier,monospace;font-size:10px;color:var(--cad-text-muted)}.relations-constraint-tools{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;padding:6px 0;border-bottom:1px solid var(--cad-border);margin-bottom:4px;flex-shrink:0}.relations-constraint-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px 2px;background:var(--cad-surface);border:1px solid transparent;border-radius:4px;color:var(--cad-text-muted);cursor:pointer;min-width:0;overflow:hidden;transition:background .12s,color .12s,border-color .12s}.relations-constraint-btn:hover:not(.disabled){background:var(--cad-surface-hover);color:var(--cad-text);border-color:var(--cad-border)}.relations-constraint-btn.active{background:#1a3050;color:#4aabff;border-color:#4aabff}.relations-constraint-btn.disabled{opacity:.35;cursor:not-allowed}.relations-constraint-label{font-size:8px;line-height:1;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}#chamfer-fillet-panel{position:absolute;top:83px;right:260px;width:200px;background:var(--cad-toolbar-bg);border:1px solid var(--cad-border);border-radius:0 0 6px 6px;z-index:600;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.cf-panel-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--cad-text-muted);padding-bottom:6px;border-bottom:1px solid var(--cad-border)}.cf-mode-toggle{display:flex;gap:4px}.cf-mode-btn{flex:1;padding:5px 8px;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:4px;color:var(--cad-text-muted);font-size:12px;cursor:pointer;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;transition:background .15s,color .15s}.cf-mode-btn:hover{background:var(--cad-surface-hover);color:var(--cad-text)}.cf-mode-btn.active{background:#2a3a5a;color:#6af;border-color:#4a6a9a}.cf-params{display:flex;flex-direction:column;gap:6px}.cf-label{display:flex;flex-direction:column;font-size:11px;color:var(--cad-text-muted);gap:3px}.cf-input{width:100%;padding:4px 6px;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:3px;color:var(--cad-text);font-size:12px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;box-sizing:border-box}.cf-input:focus{outline:none;border-color:#4a6a9a}.cf-actions{display:flex;gap:6px}.cf-accept-btn{flex:1;padding:6px 8px;background:#1a3a1a;border:1px solid #3a6a3a;border-radius:4px;color:#6d6;font-size:12px;cursor:pointer;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;transition:background .15s}.cf-accept-btn:hover{background:#2a4a2a;color:#8f8}.cf-reject-btn{flex:1;padding:6px 8px;background:#3a1a1a;border:1px solid #6a3a3a;border-radius:4px;color:#d66;font-size:12px;cursor:pointer;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;transition:background .15s}.cf-reject-btn:hover{background:#4a2a2a;color:#f88}.cf-hint{font-size:10px;color:var(--cad-text-muted);font-style:italic;text-align:center;padding-top:4px}#offset-panel{position:absolute;top:83px;right:260px;width:200px;background:var(--cad-toolbar-bg);border:1px solid var(--cad-border);border-radius:0 0 6px 6px;z-index:600;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.offset-panel-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid var(--cad-border)}.offset-panel-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--cad-text-muted)}.offset-panel-actions{display:flex;gap:4px}.offset-accept-btn{padding:3px 8px;background:#1a3a1a;border:1px solid #3a5a3a;border-radius:4px;color:#6c6;font-size:14px;cursor:pointer;transition:background .15s,color .15s}.offset-accept-btn:hover{background:#2a4a2a;color:#8f8}.offset-reject-btn{padding:3px 8px;background:#3a1a1a;border:1px solid #5a3a3a;border-radius:4px;color:#c66;font-size:14px;cursor:pointer;transition:background .15s,color .15s}.offset-reject-btn:hover{background:#4a2a2a;color:#f88}.offset-params{display:flex;flex-direction:column;gap:8px}.offset-label{display:flex;flex-direction:column;font-size:11px;color:var(--cad-text-muted);gap:3px}.offset-input{width:100%;padding:4px 6px;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:4px;color:var(--cad-text);font-size:12px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.offset-input:focus{outline:none;border-color:#4a6a9a}.offset-checkbox-label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--cad-text);cursor:pointer}.offset-checkbox-label input[type=checkbox]{accent-color:#6af}.offset-hint{font-size:10px;color:var(--cad-text-muted);font-style:italic;text-align:center;padding-top:4px}#bridge-panel{position:absolute;top:83px;right:260px;width:200px;background:var(--cad-toolbar-bg);border:1px solid var(--cad-border);border-radius:0 0 6px 6px;z-index:600;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.bridge-panel-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid var(--cad-border)}.bridge-panel-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--cad-text-muted)}.bridge-panel-actions{display:flex;gap:4px}.bridge-accept-btn{padding:3px 8px;background:#1a3a1a;border:1px solid #3a5a3a;border-radius:4px;color:#6c6;font-size:14px;cursor:pointer;transition:background .15s,color .15s}.bridge-accept-btn:hover{background:#2a4a2a;color:#8f8}.bridge-reject-btn{padding:3px 8px;background:#3a1a1a;border:1px solid #5a3a3a;border-radius:4px;color:#c66;font-size:14px;cursor:pointer;transition:background .15s,color .15s}.bridge-reject-btn:hover{background:#4a2a2a;color:#f88}.bridge-mode-toggle{display:flex;gap:0;border:1px solid var(--cad-border);border-radius:4px;overflow:hidden}.bridge-mode-btn{flex:1;padding:4px 8px;background:var(--cad-surface);border:none;color:var(--cad-text-muted);font-size:11px;cursor:pointer;transition:background .15s,color .15s}.bridge-mode-btn:first-child{border-right:1px solid var(--cad-border)}.bridge-mode-btn.active{background:#2a3a5a;color:#8af}.bridge-mode-btn:hover:not(.active){background:var(--cad-toolbar-bg);color:var(--cad-text)}.bridge-params{display:flex;flex-direction:column;gap:8px}.bridge-label{display:flex;flex-direction:column;font-size:11px;color:var(--cad-text-muted);gap:3px}.bridge-input{width:100%;padding:4px 6px;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:4px;color:var(--cad-text);font-size:12px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.bridge-input:focus{outline:none;border-color:#4a6a9a}.bridge-info{display:flex;flex-direction:column;gap:4px;padding-top:4px;border-top:1px solid var(--cad-border)}.bridge-info-row{display:flex;justify-content:space-between;font-size:11px;color:var(--cad-text-muted)}.bridge-info-row span:last-child{color:var(--cad-text);font-variant-numeric:tabular-nums}.bridge-hint{font-size:10px;color:var(--cad-text-muted);font-style:italic;text-align:center;padding-top:4px}#polygon-panel{position:absolute;top:83px;right:260px;width:200px;background:var(--cad-toolbar-bg);border:1px solid var(--cad-border);border-radius:0 0 6px 6px;z-index:600;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.poly-panel-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid var(--cad-border)}.poly-panel-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--cad-text-muted)}.poly-params{display:flex;flex-direction:column;gap:8px}.poly-label{display:flex;flex-direction:column;font-size:11px;color:var(--cad-text-muted);gap:3px}.poly-sides-row{display:flex;align-items:center;gap:4px}.poly-sides-row .poly-input{flex:1;text-align:center}.poly-step-btn{width:26px;height:26px;padding:0;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:4px;color:var(--cad-text);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.poly-step-btn:hover:not(:disabled){background:var(--cad-surface-hover);color:#fff}.poly-step-btn:disabled{opacity:.3;cursor:default}.poly-input{width:100%;padding:4px 6px;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:4px;color:var(--cad-text);font-size:12px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.poly-input:focus{outline:none;border-color:#4a6a9a}.poly-circle-mode{display:flex;flex-direction:column;gap:5px}.poly-radio-label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--cad-text);cursor:pointer}.poly-radio-label input[type=radio]{accent-color:#6af}.poly-new-btn{padding:5px 8px;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:4px;color:var(--cad-text-muted);font-size:12px;cursor:pointer;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;transition:background .15s,color .15s}.poly-new-btn:hover{background:var(--cad-surface-hover);color:var(--cad-text)}.poly-hint{font-size:10px;color:var(--cad-text-muted);font-style:italic;text-align:center;padding-top:4px}#ellipse-panel{position:absolute;top:83px;right:260px;width:200px;background:var(--cad-toolbar-bg);border:1px solid var(--cad-border);border-radius:0 0 6px 6px;z-index:600;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.ellipse-panel-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid var(--cad-border)}.ellipse-panel-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--cad-text-muted)}.ellipse-params{display:flex;flex-direction:column;gap:8px}.ellipse-label{display:flex;flex-direction:column;font-size:11px;color:var(--cad-text-muted);gap:3px}.ellipse-input{width:100%;padding:4px 6px;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:4px;color:var(--cad-text);font-size:12px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.ellipse-input:focus{outline:none;border-color:#4a6a9a}.ellipse-input:disabled{opacity:.5;cursor:default}.ellipse-hint{font-size:10px;color:var(--cad-text-muted);font-style:italic;text-align:center;padding-top:4px}#mirror-panel{position:absolute;top:83px;right:260px;width:220px;background:var(--cad-toolbar-bg);border:1px solid var(--cad-border);border-radius:0 0 6px 6px;z-index:600;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.mirror-action-row{display:flex;gap:6px;padding-bottom:6px;border-bottom:1px solid var(--cad-border)}.mirror-icon-btn{width:26px;height:26px;border-radius:4px;border:1px solid var(--cad-border);background:var(--cad-surface);color:var(--cad-text-muted);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.mirror-icon-btn:disabled{opacity:.35;cursor:default}.mirror-accept-icon:not(:disabled):hover{background:#2a4a2a;color:#8f8;border-color:#3a6a3a}.mirror-reject-icon:hover{background:#4a2a2a;color:#f88;border-color:#6a3a3a}.mirror-section{display:flex;flex-direction:column;gap:4px}.mirror-section-header{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--cad-text-muted);padding-bottom:2px;border-bottom:1px solid var(--cad-border)}.mirror-message{font-size:11px;color:#cc9;background:#2a2a1a;border:1px solid #4a4a2a;border-radius:3px;padding:6px 8px;line-height:1.4}.mirror-field-label{font-size:11px;color:var(--cad-text-muted);margin-top:2px}.mirror-entity-list,.mirror-axis-box{min-height:28px;max-height:100px;overflow-y:auto;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:3px;padding:4px;cursor:pointer;transition:border-color .15s}.mirror-entity-list.active-phase,.mirror-axis-box.active-phase{border-color:#4a8af4;box-shadow:0 0 0 1px #4a8af44d}.mirror-entity-item,.mirror-axis-item{display:flex;align-items:center;justify-content:space-between;padding:2px 4px;font-size:12px;color:var(--cad-text);border-radius:2px}.mirror-entity-item:hover,.mirror-axis-item:hover{background:var(--cad-surface-hover)}.mirror-remove-btn{background:none;border:none;color:var(--cad-text-muted);font-size:10px;cursor:pointer;padding:0 2px;line-height:1}.mirror-remove-btn:hover{color:#f66}.mirror-placeholder{font-size:11px;color:var(--cad-text-muted);font-style:italic;padding:2px 4px}.mirror-copy-label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--cad-text-muted);cursor:pointer;padding:2px 0}.mirror-copy-label input[type=checkbox]{accent-color:#4a8af4}.combine-action-btn{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border-radius:4px;border:1px solid var(--cad-border);background:var(--cad-surface);color:var(--cad-text);font-size:12px;cursor:pointer;transition:background .15s,border-color .15s}.combine-action-btn:not(:disabled):hover{background:var(--cad-surface-hover);border-color:#4a8af4}.combine-action-btn:disabled{opacity:.35;cursor:default}.combine-action-btn svg{flex-shrink:0}.combine-shortcut{margin-left:auto;font-size:10px;color:var(--cad-text-muted);background:#ffffff0f;padding:1px 5px;border-radius:3px}#lp-panel{position:absolute;top:83px;right:260px;width:230px;background:var(--cad-toolbar-bg);border:1px solid var(--cad-border);border-radius:0 0 6px 6px;z-index:600;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.lp-action-row{display:flex;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid var(--cad-border)}.lp-title{font-size:12px;font-weight:600;color:var(--cad-text)}.lp-action-buttons{display:flex;gap:6px}.lp-section{display:flex;flex-direction:column;gap:4px}.lp-section-header{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--cad-text-muted);padding-bottom:2px;border-bottom:1px solid var(--cad-border)}.lp-dir2-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--cad-text-muted)}.lp-dir2-toggle input[type=checkbox]{accent-color:#4a8af4}.lp-field-grid{display:grid;grid-template-columns:52px 1fr;gap:4px 6px;align-items:center}.lp-label{font-size:11px;color:var(--cad-text-muted)}.lp-input{width:100%;padding:3px 6px;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:3px;color:var(--cad-text);font-size:12px;box-sizing:border-box}.lp-input:focus{border-color:#4a8af4;outline:none}.lp-input-suffix{display:flex;align-items:center;gap:4px}.lp-input-suffix .lp-input{flex:1}.lp-suffix{font-size:10px;color:var(--cad-text-muted)}#cp-panel{position:absolute;top:83px;right:260px;width:230px;background:var(--cad-toolbar-bg);border:1px solid var(--cad-border);border-radius:0 0 6px 6px;z-index:600;padding:10px 12px;display:flex;flex-direction:column;gap:8px}#text-input-overlay{position:absolute;background:var(--cad-dropdown-bg);border:1px solid #00ddff;border-radius:6px;padding:10px 12px;z-index:800;min-width:200px;box-shadow:0 4px 16px #00000080;pointer-events:auto;display:flex;flex-direction:column;gap:6px}.text-overlay-title{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#0df;margin-bottom:2px}.text-overlay-row{display:flex;align-items:center;gap:6px}.text-overlay-label{font-size:11px;color:var(--cad-text-muted);min-width:55px;flex-shrink:0}.text-overlay-input{padding:4px 6px;background:var(--cad-input-bg);border:1px solid var(--cad-border);border-radius:3px;color:var(--cad-text);font-size:13px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;outline:none}.text-overlay-input:focus{border-color:#0df}.text-overlay-input-wide{flex:1;min-width:0}.text-overlay-input-narrow{width:60px}.text-overlay-textarea{resize:vertical;min-height:50px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.4}.text-overlay-row-top{align-items:flex-start}.text-overlay-unit{color:var(--cad-text-muted);font-size:12px}.text-overlay-actions{display:flex;gap:6px;margin-top:2px}.text-overlay-btn{flex:1;padding:5px 8px;border-radius:4px;font-size:12px;cursor:pointer;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;border:1px solid;transition:background .15s}.text-overlay-btn-confirm{background:#1a3a3a;border-color:#3a6a6a;color:#6dd}.text-overlay-btn-confirm:hover{background:#2a4a4a;color:#8ff}.text-overlay-btn-cancel{background:#3a1a1a;border-color:#6a3a3a;color:#d66}.text-overlay-btn-cancel:hover{background:#4a2a2a;color:#f88}.text-overlay-hint{font-size:10px;color:var(--cad-text-muted);text-align:center}.transform-dialog{min-width:280px}.transform-tabs{display:flex;gap:4px;margin-bottom:12px}.transform-tab{flex:1;padding:6px 8px;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:4px;color:var(--cad-text-muted);font-size:12px;cursor:pointer;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;transition:background .15s,color .15s;text-align:center}.transform-tab:hover{background:var(--cad-surface-hover);color:var(--cad-text)}.transform-tab.active{background:#2a3a5a;color:#6af;border-color:#4a6a9a}.transform-fields{display:flex;flex-direction:column;gap:8px}.transform-row{display:flex;align-items:center;gap:8px}.transform-row label{font-size:12px;color:var(--cad-text-muted);min-width:80px;flex-shrink:0}.transform-row input[type=number]{flex:1;padding:4px 6px;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:3px;color:var(--cad-text);font-size:12px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;box-sizing:border-box}.transform-row input[type=number]:focus{outline:none;border-color:#4a6a9a}.transform-row input[type=checkbox]{accent-color:#0078d4}#component-library-panel{position:absolute;top:83px;left:0;width:260px;height:calc(100vh - 113px);background:var(--cad-toolbar-bg);border-right:1px solid var(--cad-border);display:flex;flex-direction:row;z-index:500;transition:width .15s ease;overflow:hidden}#component-library-panel.collapsed{width:28px}#component-library-toggle-btn{flex-shrink:0;width:28px;background:var(--cad-surface);border:none;border-left:1px solid var(--cad-border);color:var(--cad-text-muted);cursor:pointer;font-size:11px;padding:0;display:flex;align-items:center;justify-content:center;order:1}#component-library-toggle-btn:hover{background:var(--cad-surface-hover);color:var(--cad-text)}#component-library-body{flex:1;display:flex;flex-direction:column;min-width:0;padding:10px 8px 8px;gap:8px;overflow:hidden}.component-library-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--cad-text-muted);padding-bottom:8px;border-bottom:1px solid var(--cad-border);flex-shrink:0}.component-library-search{width:100%;padding:5px 8px;background:var(--cad-input-bg);border:1px solid var(--cad-border);border-radius:3px;color:var(--cad-text);font-size:12px;outline:none;flex-shrink:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.component-library-search:focus{border-color:#0078d4}.component-library-filters{display:flex;flex-wrap:wrap;gap:4px;flex-shrink:0}.component-filter-pill{padding:2px 8px;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:12px;color:var(--cad-text-muted);font-size:10px;cursor:pointer;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;transition:background .15s,color .15s}.component-filter-pill:hover{background:var(--cad-surface-hover);color:var(--cad-text)}.component-filter-pill.active{background:#0078d4;color:#fff;border-color:#0078d4}.component-library-tree{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.component-library-tree::-webkit-scrollbar{width:5px}.component-library-tree::-webkit-scrollbar-track{background:transparent}.component-library-tree::-webkit-scrollbar-thumb{background:var(--cad-scrollbar-thumb);border-radius:3px}.component-library-loading,.component-library-empty{font-size:12px;color:var(--cad-text-muted);text-align:center;padding:20px 8px;font-style:italic}.component-library-error{font-size:12px;color:#f44;padding:8px;text-align:center}.component-library-category{margin-bottom:4px}.component-cat-header{font-size:11px;font-weight:600;color:var(--cad-text-muted);text-transform:uppercase;letter-spacing:.5px;padding:5px 6px;cursor:pointer;background:var(--cad-surface);border-radius:3px;user-select:none;display:flex;align-items:center;gap:5px}.component-cat-header:before{content:"▾";font-size:10px;color:var(--cad-text-muted)}.component-cat-header.collapsed:before{content:"▸"}.component-cat-header:hover{background:var(--cad-surface-hover)}.component-cat-count{font-size:10px;color:var(--cad-text-muted);margin-left:auto;background:var(--cad-toolbar-bg);padding:0 5px;border-radius:8px}.component-cat-items{padding:4px 0 0 4px;display:flex;flex-direction:column;gap:3px}.component-card{padding:8px 10px;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:4px;cursor:pointer;transition:background .15s,border-color .15s}.component-card:hover{background:var(--cad-surface-hover);border-color:#0078d4}.component-card.placing{background:#1a2a3a;border-color:#0078d4;box-shadow:0 0 8px #0078d44d}.component-card.readonly{cursor:default;opacity:.6}.component-card.readonly:hover{background:var(--cad-surface);border-color:var(--cad-border)}.component-card-header{display:flex;align-items:center;justify-content:space-between;gap:6px}.component-card-name{font-size:12px;color:var(--cad-text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.component-card-spinner{width:12px;height:12px;border:2px solid var(--cad-surface-hover);border-top-color:#6c8dfa;border-radius:50%;animation:cad-spin .8s linear infinite;flex-shrink:0}.component-card-desc{font-size:10px;color:var(--cad-text-muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.component-card-meta{display:flex;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap}.component-card-dims{font-size:10px;color:#6c8dfa;font-family:Courier New,Courier,monospace}.component-card-tags{display:flex;gap:3px;flex-wrap:wrap}.component-card-tag{font-size:9px;color:var(--cad-text-muted);background:var(--cad-toolbar-bg);padding:1px 5px;border-radius:6px;border:1px solid var(--cad-border)}.minimap-container{position:fixed;bottom:40px;right:12px;z-index:600;border-radius:6px;border:1px solid var(--cad-panel-border);box-shadow:0 8px 32px #00000080;overflow:hidden;pointer-events:auto}.minimap-header{display:flex;align-items:center;justify-content:space-between;background:var(--cad-panel-bg);padding:3px 8px;border-bottom:1px solid var(--cad-panel-border)}.minimap-title{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--cad-text-muted)}.minimap-close{background:none;border:none;color:var(--cad-text-muted);font-size:14px;cursor:pointer;padding:0 2px;line-height:1}.minimap-close:hover{color:var(--cad-text)}.minimap-canvas{display:block;cursor:crosshair}.mobile-readonly-banner{position:fixed;bottom:30px;left:0;right:0;z-index:9999;background:#1e40af;color:#fff;text-align:center;padding:6px 12px;font-size:12px;font-weight:500}.panel-collapse-toggle{background:none;border:none;color:var(--cad-text-muted);font-size:12px;cursor:pointer;padding:0 4px;line-height:1;float:right;margin-top:-2px}.panel-collapse-toggle:hover{color:var(--cad-text)}@media(max-width:1023px){#toolbar{height:auto;min-height:38px;flex-wrap:wrap;padding:4px 8px;gap:4px}.tool-btn{padding:4px;min-width:26px;height:26px}.toolbar-separator{height:18px;margin:0 3px}#cad-main-canvas{top:83px}.info-panel{min-width:180px;max-width:200px;padding:10px}.info-panel h2{font-size:12px}.logo-section{margin-right:12px}.menu-item{padding:4px 8px;font-size:12px}#status-bar{gap:12px;padding:0 10px;font-size:11px}}@media(max-width:767px){#toolbar{height:36px;min-height:36px;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;padding:2px 6px;gap:2px;-webkit-overflow-scrolling:touch}#toolbar::-webkit-scrollbar{height:2px}#toolbar::-webkit-scrollbar-thumb{background:var(--cad-scrollbar-thumb);border-radius:2px}.tool-btn{padding:3px 5px;font-size:0;min-width:28px;justify-content:center}.tool-btn svg{width:14px;height:14px}.toolbar-separator{display:none}#cad-main-canvas{top:81px;height:calc(100vh - 111px)}#app-header{height:45px;padding:0 8px 0 0}.logo-section{margin-right:8px;gap:6px}.logo-text{font-size:13px}.menu-bar{gap:2px;overflow-x:auto;flex-shrink:1;min-width:0}.menu-item{padding:4px 6px;font-size:11px;white-space:nowrap}#ui-overlay{display:none}#status-bar{gap:8px;padding:0 8px;font-size:10px}.save-status-segment,.minimap-container,.constraint-panel{display:none}#shape-flyout{max-height:80px;overflow-y:auto}}*:focus-visible{outline:2px solid #6c8dfa;outline-offset:2px}.tool-btn:focus-visible{outline:2px solid #6c8dfa;outline-offset:1px;border-color:#6c8dfa}.die-select:focus-visible,.die-dim-input:focus-visible,#template-search:focus-visible,#layer-select:focus-visible,#dimension-input:focus-visible,.save-as-input-row input:focus-visible,.cf-input:focus-visible,.text-overlay-input:focus-visible,.transform-row input[type=number]:focus-visible,.component-library-search:focus-visible{outline:2px solid #6c8dfa;outline-offset:-1px;border-color:#6c8dfa}.modal-btn:focus-visible{outline:2px solid #6c8dfa;outline-offset:2px}.context-menu-item:focus-visible,.context-menu-icon-btn:focus-visible{outline:2px solid #6c8dfa;outline-offset:-1px;background:var(--cad-surface-hover)}.menu-item:focus-visible{outline:2px solid #6c8dfa;outline-offset:1px}#status-bar button:focus-visible{outline:2px solid #6c8dfa;outline-offset:1px}.properties-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9000}.properties-dialog{background:var(--cad-panel-bg);border:1px solid var(--cad-panel-border);border-radius:8px;width:340px;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #0006;backdrop-filter:blur(12px)}.properties-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--cad-border);font-weight:600;font-size:14px;color:var(--cad-text)}.properties-close{background:none;border:none;color:var(--cad-text-muted);font-size:20px;cursor:pointer;padding:0 4px;line-height:1}.properties-close:hover{color:var(--cad-text)}.properties-body{padding:16px;display:flex;flex-direction:column;gap:20px}.properties-section{display:flex;flex-direction:column;gap:8px}.properties-label{font-size:12px;font-weight:600;color:var(--cad-text);display:flex;align-items:center;justify-content:space-between}.properties-value{font-weight:400;color:var(--cad-text-muted);font-size:11px}.properties-theme-group{display:flex;gap:6px}.properties-theme-btn{flex:1;padding:6px 0;border:1px solid var(--cad-border);border-radius:4px;background:var(--cad-surface);color:var(--cad-text);font-size:12px;cursor:pointer;transition:background .15s,border-color .15s}.properties-theme-btn:hover{background:var(--cad-surface-hover)}.properties-theme-btn.active{background:#6c8dfa;border-color:#6c8dfa;color:#fff}.properties-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;background:var(--cad-border);outline:none}.properties-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#6c8dfa;cursor:pointer}.properties-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#6c8dfa;cursor:pointer;border:none}.properties-range-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--cad-text-muted)}#checkup-panel{position:absolute;top:83px;right:260px;width:270px;max-height:calc(100vh - 140px);background:var(--cad-toolbar-bg);border:1px solid var(--cad-border);border-radius:0 0 6px 6px;z-index:600;padding:10px 12px;display:flex;flex-direction:column;gap:8px;overflow:hidden}.checkup-panel-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid var(--cad-border)}.checkup-panel-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--cad-text-muted)}.checkup-back-btn{padding:2px 6px;background:none;border:1px solid var(--cad-border);border-radius:3px;color:var(--cad-text-secondary);font-size:12px;cursor:pointer}.checkup-back-btn:hover{background:var(--cad-hover);color:var(--cad-text-primary)}.checkup-panel-subtitle{font-size:11px;color:var(--cad-text-secondary);padding-bottom:2px}.checkup-options{display:flex;flex-direction:column;gap:5px}.checkup-option-row{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--cad-text-primary);cursor:pointer}.checkup-option-row input[type=checkbox]{margin:0;accent-color:#4a9aff;cursor:pointer}.checkup-option-label{flex:1;min-width:0;white-space:nowrap}.checkup-option-op{font-size:10px;color:var(--cad-text-muted);width:14px;text-align:center;flex-shrink:0}.checkup-option-input{width:60px;padding:2px 4px;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:3px;color:var(--cad-text-primary);font-size:10px;text-align:right}.checkup-option-input:focus{outline:none;border-color:#4a6a9a}.checkup-option-unit{font-size:9px;color:var(--cad-text-muted);width:18px;flex-shrink:0}.checkup-actions{display:flex;gap:6px;padding-top:4px;border-top:1px solid var(--cad-border)}.checkup-action-btn{flex:1;padding:6px 10px;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:4px;color:var(--cad-text-secondary);font-size:11px;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.checkup-action-btn:hover:not(:disabled){background:var(--cad-hover);color:var(--cad-text-primary)}.checkup-action-btn:disabled{opacity:.5;cursor:not-allowed}.checkup-btn-primary{background:#1a3a2a;border-color:#3a6a4a;color:#6c6}.checkup-btn-primary:hover:not(:disabled){background:#2a4a3a;color:#8f8}.checkup-btn-fix{background:#1a3a2a;border-color:#3a6a4a;color:#6c6}.checkup-btn-fix:hover{background:#2a4a3a!important;color:#8f8!important}.checkup-summary{display:flex;flex-direction:column;gap:4px;padding:6px 0;border-bottom:1px solid var(--cad-border)}.checkup-summary-row{display:flex;justify-content:space-between;font-size:11px;color:var(--cad-text-secondary)}.checkup-count-warn{color:#ffb428;font-weight:600}.checkup-count-ok{color:#6c6;font-weight:600}.checkup-pass{text-align:center;font-size:12px;color:#6c6;padding:4px 0;font-weight:500}.checkup-filters{display:flex;gap:4px}.checkup-filter-btn{flex:1;padding:4px 6px;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:3px;color:var(--cad-text-secondary);font-size:10px;cursor:pointer;transition:background .15s,color .15s}.checkup-filter-btn:hover{background:var(--cad-hover)}.checkup-filter-btn.active{background:#2a3a4a;border-color:#4a6a9a;color:var(--cad-text-primary)}.checkup-issue-list{display:flex;flex-direction:column;gap:2px;overflow-y:auto;max-height:300px;padding-right:4px}.checkup-issue-item{display:flex;align-items:flex-start;gap:6px;padding:5px 6px;border-radius:3px;cursor:pointer;transition:background .12s}.checkup-issue-item:hover{background:var(--cad-hover)}.checkup-issue-item.selected{background:#ffff641f;border:1px solid rgba(255,255,100,.3)}.checkup-issue-icon{font-size:12px;flex-shrink:0;line-height:1;margin-top:1px}.checkup-issue-detail{display:flex;flex-direction:column;gap:1px;min-width:0}.checkup-issue-type{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--cad-text-primary)}.checkup-issue-msg{font-size:10px;color:var(--cad-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.checkup-fix-banner{display:flex;align-items:center;justify-content:space-between;padding:5px 8px;background:#66cc661a;border:1px solid rgba(102,204,102,.3);border-radius:3px}.checkup-fix-count{font-size:11px;font-weight:500;color:#6c6}.checkup-fix-undo{font-size:9px;color:var(--cad-text-muted);font-style:italic}.checkup-fixable-tag{display:inline-block;margin-left:4px;padding:0 3px;background:#66aaff26;border:1px solid rgba(102,170,255,.3);border-radius:2px;font-size:8px;color:#6af;vertical-align:middle;letter-spacing:.5px}.checkup-warning-dialog{max-width:380px}.checkup-warning-icon{font-size:18px;margin-right:8px;color:#ffb428;vertical-align:middle}.checkup-warning-text{font-size:13px;color:var(--cad-text-primary);margin:0 0 8px;line-height:1.4}.checkup-warning-subtext{font-size:12px;color:var(--cad-text-muted);margin:0;line-height:1.5}.checkup-extra-options{display:flex;flex-direction:column;gap:5px;padding-top:6px;border-top:1px solid var(--cad-border)}.checkup-set-default-btn{padding:4px 8px;background:var(--cad-surface);border:1px solid var(--cad-border);border-radius:3px;color:var(--cad-text-secondary);font-size:10px;cursor:pointer;transition:background .15s,color .15s;align-self:flex-start}.checkup-set-default-btn:hover{background:var(--cad-hover);color:var(--cad-text-primary)}
