.fm-panel{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;background:#fff;color:#35434c;outline:none}.fm-header{display:flex;align-items:center;gap:8px;min-height:42px;flex-shrink:0;padding:0 10px;border-bottom:1px solid var(--line)}.fm-heading{display:flex;align-items:center;gap:8px;min-width:0;color:#45645e}.fm-heading h2{margin:0;font-size:14px;font-weight:600;white-space:nowrap}.fm-storage-label{margin-left:auto;font-size:11px;color:#8b959c;white-space:nowrap}@container (max-width: 225px){.fm-storage-label{display:none}}.fm-pathbar{display:flex;align-items:center;gap:8px;min-height:36px;flex-shrink:0;padding:4px 8px;background:#fafbfc;border-bottom:1px solid var(--line)}.fm-pathbar>.icon-button{border-color:#e0e5e8;background:#fff}.fm-breadcrumbs{display:flex;align-items:center;min-width:0;flex:1;overflow-x:auto;overscroll-behavior:contain;scrollbar-width:thin}.fm-breadcrumbs button{display:inline-flex;align-items:center;gap:5px;min-height:26px;max-width:190px;padding:3px 6px;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#667680}.fm-breadcrumbs button:hover:not(:disabled){background:#e9eff0}.fm-breadcrumbs button[aria-current=page]{color:#304e43;font-weight:550}.fm-crumb{display:flex;align-items:center;flex-shrink:0;color:#a6afb5}.fm-toolbar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;flex-shrink:0;padding:8px}.fm-tool{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:0;height:30px;padding:0 4px;border:1px solid transparent;border-radius:3px;color:#66747f;white-space:nowrap;font-size:11px}.fm-tool:hover:not(:disabled){background:#f0f4f5;border-color:#e1e7e9;color:#2f464f}.fm-primary-tool{grid-column:span 3;gap:6px;border-color:#d8e6df;background:#f2f8f5;color:var(--accent)}.fm-tool:not(.fm-primary-tool) span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.fm-danger-tool:hover:not(:disabled){color:#aa5548;background:#fff5f2;border-color:#efded8}.fm-filterbar{display:flex;flex-wrap:wrap;align-items:center;gap:7px;flex-shrink:0;padding:8px}.fm-search{min-width:0;flex:1 1 100%;display:flex;align-items:center;gap:7px;border:1px solid #d9e1e5;border-radius:3px;padding:0 8px;background:#fbfcfd;color:#929ea7}.fm-search:focus-within{border-color:#5c9fbf}.fm-search input{width:100%;height:29px;border:none;padding:4px 0;color:#425660;background:transparent;font-size:11px}.fm-search input:focus-visible{outline:none}.fm-sort{display:flex;align-items:center;gap:4px;margin-left:auto;flex-shrink:0;color:#7c8a94;font-size:11px}.fm-sort select{height:29px;padding:3px 18px 3px 5px;border:1px solid #d9e1e5;border-radius:3px;background:#fff;color:#546973;max-width:92px}.fm-feedback{display:flex;align-items:center;gap:7px;flex-shrink:0;max-height:76px;overflow:auto;margin:0 8px 8px;padding:7px 9px;border:1px solid #dbe9e2;border-radius:3px;background:#f6faf8;color:#4a7463;font-size:11px;line-height:1.6}.fm-feedback>span{min-width:0;flex:1;overflow-wrap:anywhere;white-space:pre-line}.fm-feedback .icon-button{width:22px;height:22px}.fm-error{color:#a15345;border-color:#ebd5cf;background:#fff8f5}.fm-action-panel{display:flex;align-items:flex-end;flex-wrap:wrap;gap:9px;flex-shrink:0;max-height:180px;overflow:auto;margin:0 8px 8px;padding:9px;background:#f8fafb;border:1px solid #d8e2e7;border-radius:3px}.fm-action-title{display:block;width:100%;color:#516670;font-size:11px;font-weight:600}.fm-field{display:flex;align-items:center;gap:8px;min-width:0;flex:1;color:#6a7a86;font-size:11px}.fm-action-panel .fm-field{flex-basis:100%}.fm-field>span{flex-shrink:0}.fm-field input,.fm-field select{min-width:0;width:100%;height:30px;padding:4px 7px;background:#fff;border:1px solid #d0dce2;border-radius:3px;color:#3e5763}.fm-destination{min-width:0;width:100%;max-width:100%}.fm-action-message{min-width:0;flex:1;margin:0;color:#6c777e;line-height:1.7;font-size:11px;overflow-wrap:anywhere}.fm-action-message>span{display:block;color:#a56d50}.fm-action-buttons{display:flex;justify-content:flex-end;align-items:center;flex-shrink:0;gap:7px;margin-left:auto}.fm-confirm-danger{border-color:#e7dad3;background:#fffbf8}.fm-panel .fm-danger-button{border-color:#ba6759;color:#fff;background:#b26052}.fm-panel .fm-danger-button:hover:not(:disabled){background:#994d42}.fm-content{display:flex;flex-direction:column;min-width:0;min-height:140px;flex:1 0 140px;border-top:1px solid var(--line);overflow:hidden}.fm-content:has(.fm-attachments){min-height:300px;flex-basis:300px}.fm-files{display:flex;flex-direction:column;min-width:0;min-height:0;flex:1}.fm-list-header,.fm-entry{display:grid;grid-template-columns:minmax(0,1fr) 56px;align-items:center;gap:8px;padding:0 10px}.fm-list-header{height:30px;flex-shrink:0;background:#fafbfc;border-bottom:1px solid #e9edf0;color:#8c979f;font-size:10px}.fm-list-header>:nth-child(2),.fm-entry-time{display:none}.fm-list-header>:last-child,.fm-entry-size{text-align:right}.fm-file-list{min-width:0;min-height:0;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;overscroll-behavior:contain;padding:4px 0}.fm-entry{width:100%;min-width:0;height:38px;border-top:1px solid transparent;border-bottom:1px solid transparent;text-align:left;color:#445864}.fm-entry:hover:not(:disabled){background:#f4f7f8}.fm-entry[aria-selected=true],.fm-entry[aria-selected=true]:hover:not(:disabled){background:#eaf4ef;border-color:#dbece3;color:#305f4c}.fm-entry:focus-visible{outline-offset:-2px}.fm-entry-name{display:flex;align-items:center;gap:9px;min-width:0}.fm-entry-name>svg{color:#849ca6}.fm-folder-entry .fm-entry-name>svg{color:#a99154;fill:#f9f4e9}.fm-entry-label{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fm-entry-time,.fm-entry-size{color:#8b969e;font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap}.fm-active-tag{margin-left:auto;flex-shrink:0;padding:1px 4px;border:1px solid #d3e5db;border-radius:2px;background:#f7fbf8;color:#628c76;font-size:9px}.fm-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;height:100%;min-height:65px;padding:14px;color:#9aa6ae;font-size:11px}.fm-attachments{display:flex;flex-direction:column;flex-shrink:0;width:100%;height:155px;min-height:120px;max-height:50%;border-top:1px solid var(--line);background:#fbfcfd}.fm-attachment-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;min-height:42px;padding:8px 10px}.fm-attachment-heading>strong{display:flex;align-items:center;gap:5px;color:#596e77;font-size:11px;font-weight:550}.fm-selected-name{margin:0 11px 8px;flex-shrink:0;color:#8e9aa2;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fm-attachment-list{min-height:0;flex:1;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;padding:0 9px 8px}.fm-attachment-empty,.fm-attachment-error{margin:9px 2px;color:#97a2aa;font-size:11px;line-height:1.7;overflow-wrap:anywhere}.fm-attachment-error{color:#a36352}.fm-attachment{display:flex;align-items:center;gap:8px;min-width:0;padding:7px 0;border-top:1px solid #e7edf0}.fm-attachment-preview{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:42px;height:42px;overflow:hidden;border:1px solid #dde5e9;border-radius:3px;background:#fff;color:#9aabb3}.fm-attachment-preview img{display:block;width:100%;height:100%;object-fit:contain}.fm-attachment-info{min-width:0;flex:1;display:flex;flex-direction:column;gap:5px}.fm-attachment-info>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#596f7b;font-size:11px}.fm-attachment-info small{display:flex;align-items:center;gap:4px;color:#9aa8b0;font-size:10px}.fm-attachment-actions{display:flex;flex-shrink:0;gap:1px}.fm-attachment-actions .icon-button{width:24px;height:26px}.fm-footer{display:flex;align-items:center;gap:10px;min-height:49px;flex-shrink:0;padding:9px 10px;background:#fafcfc;border-top:1px solid var(--line)}.fm-count{flex-shrink:0;font-size:10px;color:#8d9aa2}.fm-selection-summary{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#82959c;font-size:10px}.fm-save-form{display:grid;align-items:center;grid-template-columns:minmax(0,1fr);gap:8px;width:100%;min-width:0}.fm-save-name{grid-column:1}.fm-save-location{min-width:0;grid-column:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#93a0a7;font-size:10px}.fm-footer-buttons{display:flex;justify-content:flex-end;gap:7px;grid-column:1;grid-row:auto}@media(max-width:480px){.fm-entry{min-height:40px}.fm-tool{min-height:32px}.fm-footer-buttons .button{min-height:34px;min-width:64px}}:root,[data-theme=light]{--cad-icon-ink: #040000;--cad-icon-strong: #515151;--cad-icon-muted: #676768;--cad-icon-subtle: #a6a6a6;--cad-icon-blue: #20a2dd;--cad-icon-orange: #f39835;--cad-icon-line: #dcdddd}[data-theme=dark]{--cad-icon-ink: #f2f5f6;--cad-icon-strong: #c9d0d4;--cad-icon-muted: #aab3b8;--cad-icon-subtle: #7c878d;--cad-icon-blue: #5bc8f2;--cad-icon-orange: #ffb25e;--cad-icon-line: #65717a}.cad-icon{display:inline-block;flex-shrink:0;vertical-align:middle;pointer-events:none}:root{font-family:Inter,Noto Sans SC,Microsoft YaHei,system-ui,sans-serif;color:#30363b;background:#fff;font-synthesis:none;font-size:12px;letter-spacing:0;color-scheme:light;--accent: #16745b;--line: #e1e4e7;--muted: #7b8389;--blue: #277ac2}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;letter-spacing:0}button{cursor:pointer;color:inherit;background:none;border:none}button:disabled{opacity:.35;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid #3488ce;outline-offset:2px}input,select,textarea{min-width:0}svg{flex-shrink:0}button svg{pointer-events:none}input[type=checkbox]{accent-color:var(--accent);width:14px;height:14px;margin:0;cursor:pointer}a{color:var(--accent)}.app{--sidebar-width: 218px;--browser-track: var(--sidebar-width);--properties-track: 242px;display:flex;flex-direction:column;height:100dvh;min-height:360px;overflow:hidden}.app-body{flex:1;min-height:0;display:flex}.app-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.app.left-closed{--browser-track: 0px}.app.right-closed{--properties-track: 0px}.app-header{height:48px;flex-shrink:0;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line);padding:0 16px;background:#fff;position:relative;z-index:35}.brand{display:flex;align-items:center;gap:9px;white-space:nowrap}.brand strong{font-size:16px;font-weight:650}.brand-mark{position:relative;width:27px;height:27px;display:flex;align-items:center;justify-content:center;color:var(--accent)}.brand-mark svg:last-child{position:absolute;transform:rotate(-35deg)}.brand-tag{font-size:9px;font-weight:700;color:#7c858b;padding:2px 4px;background:#edf0f2;border-radius:3px}.document-title{display:flex;align-items:center;gap:8px;margin-left:4px;color:#858d94;min-width:0}.document-name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#39454e;font-weight:500}.header-action{height:30px;display:flex;align-items:center;gap:6px;padding:0 10px;border-radius:3px;color:#4b5a63;white-space:nowrap}.header-action:hover:not(:disabled){background:#e7ebed}.header-action[aria-pressed=true]{background:#e5f1ec;color:var(--accent)}.save-dot{width:5px;height:5px;border-radius:50%;background:#dfa84a}.save-dot[data-saved=true]{background:#50a58b}.header-right{margin-left:auto;display:flex;align-items:center;gap:16px;white-space:nowrap}.save-label{font-size:11px;color:#91989e}.header-link{color:#8c969b;height:24px;display:flex;align-items:center}.export-button{height:30px;display:flex;gap:7px;align-items:center;border-radius:4px;color:#fff;background:var(--accent);padding:0 11px;font-weight:500}.export-button:hover{background:#105f49}.project-tabs{height:36px;flex-shrink:0;display:flex;align-items:stretch;gap:4px;padding:2px 8px 0;border-bottom:1px solid var(--line);background:#f6f7f8;position:relative;z-index:32;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.project-tabs::-webkit-scrollbar{display:none}.project-tab{display:flex;align-items:center;min-width:0;max-width:220px;flex-shrink:0;border:1px solid transparent;border-bottom:none;border-radius:4px 4px 0 0;color:#65717b}.project-tab.active{background:#fff;border-color:var(--line)}.project-tab-label{min-width:0;height:32px;padding:0 4px 0 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.project-tab.active .project-tab-label{color:#2f4a43;font-weight:600}.project-tab-close{display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:3px;border-radius:3px;color:#8b959c;flex-shrink:0}.project-tab-close:hover{background:#e7ebed;color:#37454c}.project-tab-add{display:flex;align-items:center;justify-content:center;align-self:center;width:28px;height:28px;margin-left:2px;border-radius:3px;color:#65717b;flex-shrink:0}.project-tab-add:hover:not(:disabled){background:#e7ebed;color:#2f4a43}.file-menu-wrap{position:relative}.file-menu-toggle{height:30px;display:flex;align-items:center;gap:6px;padding:0 10px;border-radius:3px}.file-menu-toggle:hover{background:#e7ebed}.workspace-tabbar{height:36px;flex-shrink:0;display:flex;align-items:center;padding:0 13px;gap:5px;border-bottom:1px solid var(--line);background:#fff;position:relative;z-index:32}.workspace-tab{height:36px;padding:0 20px;position:relative;font-weight:600;color:#37454c}.workspace-tab.selected:after{content:"";height:2px;background:var(--accent);position:absolute;bottom:0;left:16px;right:16px}.tab-spacer{flex:1}.tab-divider{height:16px;background:#d7dce0;width:1px;margin:0 7px}.icon-button{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border:1px solid transparent;flex-shrink:0;border-radius:3px;color:#65717b;padding:0}.icon-button:hover:not(:disabled){background:#e8edf0;color:#2d3b42}.icon-button.active{background:#e5f1ec;border-color:#b7d8ca;color:var(--accent)}.ribbon{height:91px;flex-shrink:0;display:flex;padding:6px 12px 0;background:#fafafa;border-bottom:1px solid #d9dde0;gap:7px;position:relative;z-index:30}.ribbon-group{position:relative;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid #dde1e4;padding:0 8px 0 0;flex-shrink:0}.ribbon-tools{display:flex;gap:2px}.ribbon-tool{padding:0 2px;white-space:nowrap;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:52px;height:58px;border:1px solid transparent;border-radius:3px;font-size:11px;color:#4a5964}.ribbon-tool svg{color:#547a91;stroke-width:1.55}.ribbon-tool:hover{background:#e9eff3}.ribbon-tool.selected{background:#e6eff7;border-color:#bad0e4;color:#165f9e}.ribbon-tool.selected svg{color:#1979c1}.group-caption{height:22px;display:flex;align-items:center;justify-content:center;font-size:11px;color:#78848c;gap:4px;flex-shrink:0}.dropdown-caption:hover,.dropdown-caption.open{background:#e6ecef;color:#2c607d}.select-group .ribbon-tool{width:44px}.modify-group .ribbon-tool svg{color:#728187}.dimension-group .ribbon-tool{width:46px}.dimension-group .ribbon-tool svg{color:#567f91}.constraints-group{min-width:244px;max-width:300px;flex:1}.constraint-ribbon{display:grid;grid-template-columns:repeat(5,1fr);gap:0 4px;padding:0 4px;max-width:300px}.constraint-ribbon .icon-button{width:35px;height:29px;color:#b66666}.constraint-ribbon .icon-button:disabled{opacity:.42}.ribbon-end{margin-left:auto;display:flex;align-items:flex-start;padding:2px 5px}.construction-button{height:57px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#677983;font-size:11px;padding:5px 10px;border-radius:3px}.construction-button[aria-pressed=true]{background:#e7eff4;color:#2470a8}.work-area{flex:1;min-height:0;display:grid;grid-template-columns:var(--browser-track) minmax(0,1fr) var( --properties-track )}.browser-panel,.properties-panel{min-height:0;display:flex;flex-direction:column;background:#fafbfc;position:relative;z-index:5}.project-panel{flex:0 0 var(--sidebar-width);width:var(--sidebar-width);min-height:0;display:flex;flex-direction:column;background:#fafbfc;border-right:1px solid var(--line);overflow:hidden;container-type:inline-size}.project-panel .fm-header{min-height:36px}.browser-panel{grid-column:1;border-right:1px solid var(--line);overflow:hidden}.canvas-container{grid-column:2}.properties-panel{grid-column:3}.sketch-browser{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.project-transition-overlay{position:fixed;inset:0;z-index:150;display:flex;align-items:center;justify-content:center;gap:10px;background:#ffffffc9;color:var(--accent);font-size:14px;cursor:progress}.properties-panel{border-left:1px solid var(--line)}.panel-heading{height:37px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;font-weight:600;color:#48535c;border-bottom:1px solid var(--line);flex-shrink:0;background:#f5f7f8}.panel-heading .icon-button{width:24px;height:24px}.tree-document{height:38px;display:flex;align-items:center;gap:7px;padding:0 12px}.tree-document strong{font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.document-settings{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 30px;font-size:11px;color:#727f87}.unit-setting{display:flex;align-items:center;gap:8px;margin:5px 16px 10px 40px;color:#7c8992;font-size:11px}.unit-setting select{margin-left:auto;border:1px solid #dee4e7;background:#fff;height:23px;border-radius:3px;color:#455866;padding:0 4px;width:63px}.tree-section{height:29px;display:flex;gap:9px;align-items:center;padding:0 19px;color:#667580}.tree-section .subtle{margin-left:auto;font-size:10px;color:#9aa5ad}.count-badge{font-size:10px;padding:1px 5px;background:#e9edf0;border-radius:3px;color:#82909a;line-height:17px}.tree-section .count-badge{margin-left:auto}.sketch-tree{padding:2px 8px 10px}.sketch-row{height:30px;display:flex;align-items:center;border-radius:3px}.sketch-row.current{background:#e9f2ef;color:var(--accent)}.sketch-name{display:flex;gap:7px;align-items:center;min-width:0;flex:1;padding:0 5px}.sketch-name span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sketch-row .icon-button{width:23px;height:23px}.sketch-row .icon-button svg{width:14px}.entity-list-heading{display:flex;align-items:center;justify-content:space-between;padding:12px 15px 8px;font-size:10px;color:#8b969d;border-top:1px solid var(--line)}.entity-list{flex:1;min-height:0;overflow:auto;padding:0 8px 12px}.entity-row{width:100%;height:29px;display:flex;align-items:center;gap:9px;text-align:left;border-radius:3px;font-size:11px;padding:0 9px;color:#647582}.entity-row:hover{background:#eef1f3}.entity-row.selected{background:#e5eff9;color:#216fa8}.entity-row span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-row small{font-size:9px;color:#a1abb3;font-variant-numeric:tabular-nums}.browser-footer{height:30px;display:flex;align-items:center;gap:7px;font-size:10px;color:#7b8b95;padding:0 15px;border-top:1px solid var(--line);flex-shrink:0}.browser-footer>span:last-child{margin-left:auto}.plane-dot{width:6px;height:6px;border-radius:2px;background:#62a699}.canvas-container{position:relative;min-width:0;min-height:0;overflow:hidden;background:#fcfcfc}.parameter-panel{position:absolute;top:52px;right:14px;z-index:18;width:294px;max-width:calc(100% - 28px);max-height:calc(100% - 72px);display:flex;flex-direction:column;background:#fafbfc;border:1px solid #cdd3d9;border-radius:5px;box-shadow:0 4px 18px #24354520}.parameter-panel-title{display:flex;align-items:center;justify-content:space-between;min-height:34px;padding:3px 8px 3px 12px;border-bottom:1px solid var(--line)}.parameter-panel-body{overflow-y:auto;min-height:0;padding:9px 10px}.geometry-parameter{padding:5px 4px;border:1px solid transparent;border-radius:3px;margin-bottom:3px}.geometry-parameter.active{border-color:#72add8;background:#edf6fc}.geometry-parameter-row{display:flex;align-items:center;gap:5px}.geometry-parameter-row>label{width:76px;flex-shrink:0;font-weight:550}.geometry-pick{min-width:0;flex:1;display:flex;align-items:center;gap:4px;padding:5px 6px;border:1px solid #c4cdd6;border-radius:2px;background:#fff;text-align:left}.geometry-pick[aria-pressed=true]{border-color:#3d96d0;color:#1769a2}.geometry-pick span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.geometry-clear{display:flex;padding:3px;color:#75818a}.geometry-selection-list{display:flex;gap:4px;flex-wrap:wrap;max-height:65px;overflow:auto;margin:5px 0 0 81px}.geometry-selection-list button{display:flex;align-items:center;gap:4px;border-radius:2px;padding:2px 4px;background:#e4eaf0;font-size:10px;overflow-wrap:anywhere}.parameter-pick-hint{display:flex;align-items:flex-start;gap:5px;color:#74818b;line-height:1.5;font-size:11px;margin:7px 4px 9px}.parameter-pick-hint svg{margin-top:2px}.parameter-fields{display:flex;flex-direction:column;gap:7px;border-top:1px solid var(--line);padding:9px 4px 2px}.parameter-fields>label{display:flex;align-items:center;gap:5px}.parameter-fields>label>span{width:76px;flex-shrink:0}.parameter-fields>label>div{display:flex;align-items:center;flex:1;min-width:0;background:#fff;border:1px solid #d6dce1;border-radius:2px}.parameter-fields input,.parameter-fields select{width:100%;border:0;background:transparent;padding:5px 6px}.parameter-fields>label>div>span{padding-right:6px;color:var(--muted)}.parameter-validation{color:#8a6b35;margin:8px 4px 0;font-size:11px}.parameter-panel-actions{display:flex;gap:8px;justify-content:flex-end;padding:8px 10px;border-top:1px solid var(--line)}@media(max-width:700px){.parameter-panel{top:48px;right:8px;width:270px;max-height:52%}}.viewport{width:100%;height:100%;position:relative;overflow:hidden;touch-action:none}.canvas-surface{display:block;width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none}.dimension-input{position:absolute;transform:translate(-50%,-132%);display:flex;align-items:center;gap:4px;padding:3px 5px 3px 6px;background:#fff;border:1px solid #4a9278;border-radius:4px;box-shadow:0 2px 10px #26334024;z-index:12;white-space:nowrap}.dimension-input input{width:84px;border:none;outline:none;padding:1px 2px;font-size:12px;color:#2c3b35;background:transparent;font-variant-numeric:tabular-nums}.dimension-input .dimension-unit{font-size:10px;color:#6b7c74}.dimension-input small{font-size:9px;color:#93a09a;border-left:1px solid var(--line);padding-left:5px}.view-controls{position:absolute;bottom:auto;right:15px;height:36px;display:flex;align-items:center;background:#fff;border:1px solid #e0e5e8;border-radius:4px;box-shadow:0 1px 3px #2633400c;padding:2px}.view-controls button{width:28px;height:27px;border-radius:3px;display:flex;align-items:center;justify-content:center;color:#607581}.view-controls button:hover{background:#edf1f3}.view-badge{position:absolute;top:18px;right:auto;color:#788790;display:flex;align-items:center;justify-content:center;width:auto;height:24px;min-width:95px;white-space:nowrap;background:transparent;border:0;border-radius:0;font-size:11px}.scale-bar{position:absolute;bottom:19px;left:18px;color:#8b989f;font-size:10px;pointer-events:none}.option-list{padding:12px 14px;display:flex;flex-direction:column;gap:12px;flex-shrink:0}.option-list label{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#657580}.option-list label>span{display:flex;align-items:center;gap:8px}.option-list label svg{color:#8c999f}.section-heading{height:33px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 13px;display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:500;color:#596974;background:#f7f9fa;flex-shrink:0}.section-heading .icon-button{width:22px;height:22px}.property-content{padding:12px 14px;flex-shrink:0}.empty-selection{display:flex;align-items:center;justify-content:center;gap:9px;padding:12px 0;color:#a0aab0;font-size:11px}.empty-selection svg{color:#b2bbc1}.property-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;gap:8px;color:#445a69;font-weight:500;overflow-wrap:anywhere}.property-chip{background:#eaf0f3;color:#83959e;border-radius:3px;padding:2px 5px;font-size:9px;font-weight:400;flex-shrink:0}.property-row{display:flex;align-items:center;justify-content:space-between;font-size:11px;padding:4px 0;color:#7e8d98}.property-row strong{font-weight:500;font-variant-numeric:tabular-nums;color:#496375}.property-row small{font-size:9px;font-weight:400;margin-left:6px;color:#8d9ca6}.selection-actions{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:31px;padding:0 12px;border:1px solid #d9e0e4;border-radius:4px;background:#fff;font-size:12px}.button:hover{background:#f5f7f9}.button.small{height:25px;min-height:25px;font-size:11px;padding:0 8px}.button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.button.primary:hover{background:#115e49}.derived-note{display:flex;align-items:center;gap:6px;color:#8ba29c;font-size:10px}.derived-note .icon-button{margin-left:auto}.constraint-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:2px;padding:9px 10px}.constraint-grid .icon-button{width:30px;height:28px;color:#bd6a6a}.constraint-grid .icon-button:disabled{opacity:.35}.dimension-select{display:flex;gap:4px;padding:0 13px 10px}.dimension-select select{flex:1;height:26px;border:1px solid #dde4e8;border-radius:3px;background:#fff;padding:0 5px;font-size:11px;color:#6e818f}.constraint-list{flex:1;min-height:30px;overflow:auto;padding:0 9px 7px}.constraint-row{display:flex;gap:6px;align-items:center;height:28px;border-bottom:1px solid #edf0f2;padding:0 4px;font-size:10px;color:#7e8c96}.constraint-row>button:not(.icon-button){padding:0;font-size:10px;text-align:left}.constraint-row>svg{color:#ab7979}.constraint-row .constraint-value{margin-left:auto;color:#337fa8;font-variant-numeric:tabular-nums;max-width:65px;overflow:hidden;text-overflow:ellipsis}.constraint-row .icon-button{width:20px;height:20px;margin-left:auto;color:#aab3b9;opacity:0}.constraint-row .icon-button svg{width:12px}.constraint-row .constraint-value+.icon-button{margin-left:0}.constraint-row:hover{background:#f0f4f6}.constraint-row:hover .icon-button{opacity:1}.constraint-row.conflict{background:#faeaea;color:#be4848}.parameter-footer{border-top:1px solid var(--line);height:33px;flex-shrink:0;padding:0 12px}.parameter-footer button{width:100%;height:32px;display:flex;align-items:center;gap:9px;color:#617783;font-size:11px}.parameter-footer button>span{margin-left:auto;background:#e9edf0;border-radius:3px;padding:1px 5px;font-size:10px}.bottom-strip{height:31px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);background:#f8f9fa;padding:0 11px}.sketch-tabs{display:flex;flex:1;min-width:0;height:100%;align-items:center;gap:3px;overflow-x:auto}.sketch-tabs>button:not(.icon-button){height:27px;display:flex;align-items:center;gap:7px;border-right:1px solid #e3e7e9;padding:0 14px;font-size:11px;white-space:nowrap;color:#819099}.sketch-tabs>button.active{color:var(--accent);background:#fff;border-bottom:2px solid var(--accent)}.bottom-actions{display:flex;flex-shrink:0;gap:2px}.bottom-actions .icon-button{height:24px;width:26px}.bottom-actions svg{width:15px}.status-bar{height:26px;flex-shrink:0;display:flex;align-items:center;gap:22px;padding:0 14px;background:#fff;border-top:1px solid #e8ecee;font-size:10px;color:#87959f}.solver-status{display:flex;align-items:center;gap:6px;white-space:nowrap}.status-dot{width:5px;height:5px;border-radius:50%;background:#499acf}.status-dot.complete{background:#43a487}.status-dot.error{background:#c76464}.tool-status{color:#94a1a9}.status-right{margin-left:auto;display:flex;align-items:center;gap:18px;font-variant-numeric:tabular-nums}.status-right strong{font-weight:400;display:inline-block;min-width:44px;text-align:right;color:#566f7f}.status-separator{height:10px;width:1px;background:#dfe5e9}.menu{background:#fff;border:1px solid #d7dde1;box-shadow:0 5px 20px #25394b20;border-radius:4px;position:absolute;min-width:208px;z-index:45;padding:5px;max-height:calc(100dvh - 195px);overflow-y:auto}.file-menu{top:32px;left:0}.ribbon-menu{top:85px;left:0}.create-menu{columns:2;min-width:388px;column-gap:5px}.create-menu .menu-item{break-inside:avoid}.menu-item{width:100%;height:30px;display:flex;align-items:center;gap:10px;padding:0 9px;font-size:11px;white-space:nowrap;text-align:left;border-radius:3px}.menu-item svg{color:#648ba3;stroke-width:1.6}.menu-item:hover:not(:disabled){background:#e9f0f5}.menu-item kbd{font:inherit;font-size:10px;margin-left:auto;color:#9ca8b0;padding-left:20px}.menu-divider{height:1px;background:#e2e7ea;margin:5px}.menu-dismiss{position:fixed;inset:175px 0 0;z-index:25;background:transparent}.modal-shade{position:fixed;inset:0;z-index:80;background:#21344040;display:flex;align-items:center;justify-content:center;padding:20px}.dialog{width:370px;max-width:100%;background:#fff;border:1px solid #d8e0e5;border-radius:6px;box-shadow:0 15px 60px #26374c30;max-height:90dvh;overflow:auto}.dialog-title{height:52px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e6ebee}.dialog-title h2{font-size:14px;font-weight:600;margin:0;color:#334d5c}.dialog-fields{padding:20px;display:flex;flex-direction:column;gap:15px}.field{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#71838e}.input-unit{position:relative;display:flex;align-items:center;gap:7px}.input-unit input,.input-unit select,.input-unit textarea{flex:1;width:100%;border:1px solid #d5dfe5;border-radius:3px;min-height:32px;padding:6px 10px;color:#3d596b;background:#fcfdfd;font-size:12px}.input-unit textarea{height:150px;resize:vertical}.input-unit>span{color:#9cabb4;font-size:10px;position:absolute;right:10px;pointer-events:none}.input-unit input{padding-right:32px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding:13px 20px;background:#fafcfc;border-top:1px solid #e5ebed}.dialog-warning{font-size:11px;color:#8a7463;background:#fff8ed;margin:15px 20px 0;padding:10px;border:1px solid #ede3d5;border-radius:3px;line-height:1.7;overflow-wrap:anywhere}.toast{position:fixed;bottom:72px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:8px 9px 8px 13px;border:1px solid #c5ded4;background:#f4fbf7;box-shadow:0 3px 12px #25394814;color:#316f57;font-size:12px;border-radius:4px;z-index:100;max-width:min(560px,90vw);line-height:1.6}.toast.error{border-color:#e7c9c3;background:#fff7f5;color:#a85745}.toast .icon-button{height:22px;width:22px}.toast span{overflow-wrap:anywhere}.loading-overlay{position:absolute;inset:0;background:#ffffffd9;display:flex;align-items:center;justify-content:center;gap:12px;color:#78908d;z-index:20}.spin{animation:spin 1.3s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.left-closed .browser-panel,.right-closed .properties-panel{display:none}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:#d4dce1;border-radius:3px}::-webkit-scrollbar-track{background:transparent}@media(min-width:1600px){.app{--sidebar-width: 236px;--properties-track: 260px}.constraints-group{max-width:340px}.ribbon-tool{width:57px}.constraint-ribbon{max-width:320px}}@media(max-width:1200px){.app{--sidebar-width: 190px;--properties-track: 220px}.constraints-group{display:none}.ribbon-tool{width:48px}.ribbon{gap:5px}.ribbon-group{padding-right:5px}}@media(max-width:960px){.work-area{position:relative;grid-template-columns:minmax(0,1fr)}.canvas-container{grid-column:auto}.app-body{position:relative}.browser-panel,.properties-panel{position:absolute;top:0;bottom:0;width:230px;z-index:27;box-shadow:0 3px 20px #25394b17}.browser-panel{left:0}.project-panel{position:absolute;inset:0 auto 0 0;width:230px;z-index:40;box-shadow:0 3px 20px #25394b17}.properties-panel{right:0}.ribbon-end{display:none}.app-header{gap:12px}.document-title{margin-left:0}.save-label{display:none}.ribbon-tool{width:43px}.select-group .ribbon-tool{width:34px}.header-right{gap:10px}.create-menu{columns:1;min-width:230px}}@media(max-width:700px){.brand strong{font-size:14px}.brand-tag,.document-title,.save-dot,.header-link{display:none}.brand{gap:4px}.app-header{padding:0 8px;gap:8px;height:44px}.header-action{padding:0 7px}.header-action span{display:none}.export-button{padding:0 7px;font-size:11px;gap:4px}.header-right{gap:4px}.project-tabs{padding:2px 6px 0;height:33px}.project-tab-label{height:29px;padding-left:9px}.workspace-tabbar{padding:0 6px;height:33px}.workspace-tab{height:33px;padding:0 12px}.project-panel .fm-header{min-height:33px}.ribbon{height:78px;padding:5px 4px 0;gap:4px}.ribbon-tool{width:34px;height:47px;font-size:9px;gap:4px}.ribbon-tool svg{width:21px;height:21px}.ribbon-tools{gap:0}.select-group .ribbon-tool{width:28px}.dimension-group .ribbon-tool{width:32px}.ribbon-group{padding-right:4px}.modify-group .ribbon-tools .ribbon-tool:nth-child(2),.modify-group .ribbon-tools .ribbon-tool:nth-child(4){display:none}.create-group .ribbon-tool:nth-child(5),.create-group .ribbon-tool:nth-child(6){display:none}.group-caption{height:22px;font-size:10px}.ribbon-menu{position:fixed;top:153px;left:10px;max-height:calc(100dvh - 215px);width:220px;min-width:220px}.menu-dismiss{inset:155px 0 0}.status-bar{padding:0 8px;gap:8px;font-size:9px}.status-right{gap:8px}.status-right>span:last-child,.status-separator,.tool-status{display:none}.status-right strong{min-width:31px}.bottom-strip{padding:0 5px}.dialog{width:340px}.sketch-tabs>button:not(.icon-button){padding:0 10px}.save-label{display:none}.view-controls{right:10px;bottom:auto}.view-badge{top:12px;right:auto}}.app.creation-mode{--properties-track: 308px}.creation-panel{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column;background:#fafbfc}.creation-panel-title{display:flex;align-items:center;justify-content:space-between;min-height:34px;padding:3px 8px 3px 12px;border-bottom:1px solid var(--line);flex-shrink:0}.creation-panel-title strong{font-size:12px}.creation-panel-body{overflow-y:auto;flex:1;min-height:0;padding:9px 10px}.creation-methods{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.creation-method{display:flex;align-items:center;gap:4px;border:1px solid #c4cdd6;border-radius:10px;padding:3px 9px;background:#fff;font-size:11px;cursor:pointer}.creation-method input{margin:0;accent-color:#3d96d0}.creation-method:has(input:checked){border-color:#3d96d0;background:#edf6fc;color:#1769a2}.creation-polygon{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}.creation-polygon-option{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 6px;border:1px solid #c4cdd6;border-radius:4px;background:#fff;text-align:center}.creation-polygon-option strong{font-size:12px}.creation-polygon-option small{font-size:10px;color:#74818b;line-height:1.45}.creation-polygon-option.active{border-color:#3d96d0;background:#edf6fc;box-shadow:inset 0 0 0 1px #3d96d0}.creation-polygon-option.active strong{color:#1769a2}.creation-points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.creation-point{display:grid;grid-template-columns:17px 56px minmax(0,1fr) 22px 22px;align-items:center;gap:5px;padding:4px;border:1px solid transparent;border-radius:3px}.creation-point.active{border-color:#72add8;background:#edf6fc}.creation-point.pending{opacity:.55}.creation-point-marker{width:17px;height:17px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#e4eaf0;font-size:10px;font-weight:600;color:#4a5a66}.creation-point.done .creation-point-marker{background:#62a699;color:#fff}.creation-point.active .creation-point-marker{background:#3d96d0;color:#fff}.creation-point-label{width:56px;flex-shrink:0;font-size:11px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.creation-coords{flex:1;min-width:0;display:flex;align-items:center;gap:3px}.creation-coords input{width:100%;min-width:0;border:1px solid #d6dce1;border-radius:2px;background:#fff;padding:3px 4px;font-size:11px;font-variant-numeric:tabular-nums}.creation-coords input:disabled{background:transparent;border-color:transparent;padding-left:0;color:#5d6b76}.creation-coords input.invalid{border-color:#c0392b}.creation-coord-unit{flex-shrink:0;font-size:9px;color:var(--muted)}.creation-point .icon-button{flex-shrink:0;padding:3px}.creation-point .creation-pick[aria-pressed=true]{color:#1769a2}.creation-fields{display:flex;flex-direction:column;gap:7px;border-top:1px solid var(--line);padding:8px 4px 2px;margin-top:4px}.creation-field{display:flex;align-items:center;gap:5px}.creation-field>span:first-child{width:56px;flex-shrink:0;font-size:11px;font-weight:550}.creation-field>div{flex:1;min-width:0;display:flex;align-items:center;background:#fff;border:1px solid #d6dce1;border-radius:2px}.creation-field input{width:100%;min-width:0;border:0;background:transparent;padding:4px 6px;font-size:11px}.creation-field input.invalid{box-shadow:inset 0 0 0 1px #c0392b}.creation-field>div>span{padding-right:6px;font-size:9px;color:var(--muted)}.creation-summary{display:flex;flex-wrap:wrap;gap:4px 10px;margin:7px 4px 0;padding:5px 7px;background:#eef3f6;border-radius:3px;font-size:10.5px;color:#405361;font-variant-numeric:tabular-nums}.creation-panel-actions{display:flex;align-items:center;gap:8px;padding:8px 10px;border-top:1px solid var(--line);flex-shrink:0}.creation-note{margin-right:auto;font-size:10px;color:#7b8b95}@media(max-width:960px){.creation-mode .work-area{grid-template-columns:0px minmax(0,1fr) var(--properties-track)}.creation-mode .canvas-container{grid-column:2}.creation-mode .properties-panel{position:relative;grid-column:3;top:auto;bottom:auto;width:auto;z-index:5;box-shadow:none}}@media(max-width:700px){.app.creation-mode{--properties-track: 180px;--view-badge-top: 56px}.creation-panel-body{padding:7px 5px}.creation-point{grid-template-columns:17px minmax(0,1fr) 22px 22px;gap:4px}.creation-coords{grid-column:2 / -1;grid-row:2}.creation-pick{grid-column:3;grid-row:1}.creation-truncate{grid-column:4;grid-row:1}.creation-polygon{grid-template-columns:1fr}.creation-panel-actions{flex-wrap:wrap;padding:7px}.creation-panel-actions .button{min-height:30px}}.creation-section-label{font-size:10px;font-weight:600;color:#647580;margin:2px 4px 7px}.creation-parameters-heading{border-top:1px solid var(--line);margin-top:10px;padding-top:9px}.creation-method-description{margin:0 4px 8px;font-size:11px;color:#647580}.creation-point .icon-button{width:22px;height:24px}.creation-point-purpose{grid-column:2 / -1;color:#657782;font-size:10px;line-height:1.45;margin-bottom:3px}.creation-point.active .creation-point-purpose{color:#1769a2}.creation-angle-purpose{color:var(--muted);font-size:10px;line-height:1.5}
