@font-face{font-family:Inter;src:url(/3d/ui-fonts/InterVariable.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/3d/ui-fonts/JetBrainsMono-Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(/3d/ui-fonts/i18n/noto-sans-sc-ui.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:CAD UI Japanese;src:url(/3d/ui-fonts/i18n/noto-sans-jp-ui.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:CAD UI Thai;src:url(/3d/ui-fonts/i18n/noto-sans-thai-ui.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:CAD UI Arabic;src:url(/3d/ui-fonts/i18n/noto-sans-arabic-ui.woff2) format("woff2");font-weight:100 900;font-display:swap}:root{--cad-ui-font-family:Inter,system-ui,sans-serif}html[lang=zh-CN]{--cad-ui-font-family:Inter,"Noto Sans SC",system-ui,sans-serif}html[lang=ja]{--cad-ui-font-family:Inter,"CAD UI Japanese",system-ui,sans-serif}html[lang=th]{--cad-ui-font-family:Inter,"CAD UI Thai",system-ui,sans-serif}html[lang=ar]{--cad-ui-font-family:Inter,"CAD UI Arabic",system-ui,sans-serif}body,.cad-app,.floating-panel,.dialog,.sidebar,button,input,select,textarea{font-family:var(--cad-ui-font-family)}input[type=number],.properties dd,.measure-value,pre,[data-source-value]{font-family:"JetBrains Mono",var(--cad-ui-font-family);direction:ltr;unicode-bidi:isolate}.tree-name,.source-file span,.recent-file span,.model-filename,.statusbar,.viewer-host,.view-navigation,.orientation-axes,[data-testid=viewer-canvas]{direction:ltr;unicode-bidi:isolate}html[dir=rtl] .floating-panel,html[dir=rtl] .dialog,html[dir=rtl] .sidebar,html[dir=rtl] .toolbar-menu{direction:rtl;text-align:start}.language-control{position:relative;flex-shrink:0;color:var(--text-primary,#253348)}.language-control button{font:inherit;cursor:pointer;color:inherit;border:0;background:transparent;border-radius:0;box-shadow:none}.language-control button:hover:not(:disabled){background:var(--surface-hover,#e9edf3)}.language-control button:disabled{opacity:.42;cursor:default}.language-control .language-toggle{display:flex;align-items:center;gap:6px;padding:7px;color:inherit;max-width:150px}.language-current{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.language-popover{position:absolute;inset-inline-end:0;top:calc(100% + 8px);width:270px;background:#f8fafc;color:#263548;border:1px solid #dbe2eb;border-radius:10px;box-shadow:0 12px 35px #19273638;z-index:220;overflow:hidden;text-align:start}.language-popover header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #dce3ed;gap:12px}.language-control .language-popover header button{display:flex;align-items:center;justify-content:center;padding:5px;flex-shrink:0}.language-list{overflow-y:auto;max-height:min(480px,70dvh);padding:5px;overscroll-behavior:contain}.language-control .language-option{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;text-align:start;min-height:42px;padding:9px 13px;white-space:normal;font-family:Inter,system-ui,sans-serif}.language-control .language-option[aria-pressed=true]{background:#e4edfb;color:#2a62b9;border-radius:6px}.language-control button:focus-visible{outline:2px solid #4c7fc7;outline-offset:-2px}.language-popover>p{padding:0 12px}.language-control svg{flex-shrink:0}.header-tools .language-current,.header-actions .language-current{display:none}.header-tools .language-popover button,.header-actions .language-popover button{width:auto;height:auto;min-height:42px;justify-content:space-between;border-radius:6px}.header-tools .language-popover .language-option,.header-actions .language-popover .language-option{width:100%}@media(max-width:640px){.language-current{display:none}.language-popover{position:fixed;inset:auto 0 0;width:auto;border-radius:14px 14px 0 0;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -16px 55px #14233150}.language-list{max-height:65dvh}.language-control .language-option{min-height:46px;padding:11px 17px}.language-control .language-toggle{min-width:36px;min-height:36px}}@font-face{font-family:Inter;src:url(/3d/ui-fonts/InterVariable.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/3d/ui-fonts/JetBrainsMono-Regular.woff2) format("woff2");font-weight:400;font-display:swap}:root{--app-background:#f1f3f6;--surface-primary:#fff;--surface-secondary:#f7f8fa;--surface-hover:#e9edf3;--canvas-background:#263441;--text-primary:#253348;--text-secondary:#64748b;--text-muted:#8b97a7;--border-primary:#dde3ea;--border-secondary:#e9edf2;--accent-primary:#5278b4;--accent-hover:#41669f;--accent-light:#e8effa;--success:#39966f;--warning:#c58c45;--danger:#d46565;--accent:var(--accent-primary);--panel:var(--surface-primary);--border:var(--border-primary);--hover:var(--surface-hover);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);font-family:Inter,system-ui,sans-serif;color:var(--text-primary);font-size:13px;font-synthesis:none}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}button,input,select,textarea{font:inherit}button,a.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border-primary);border-radius:5px;background:var(--surface-primary);color:var(--text-primary);padding:7px 10px;cursor:pointer;text-decoration:none}button:hover:not(:disabled),a.button:hover{background:var(--surface-hover)}button:disabled{opacity:.42;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}input,select,textarea{color:var(--text-primary);background:var(--surface-primary);border:1px solid #cdd6e2;border-radius:4px;padding:7px 8px;min-width:0;max-width:100%}input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;margin:0;flex:none}input[type=range]{accent-color:var(--accent);padding:0;width:100%;cursor:pointer}input[type=color]{height:32px;padding:3px;width:100%}input[type=number]{width:72px;font-family:JetBrains Mono,monospace;direction:ltr}input::placeholder{color:var(--text-muted)}a{color:var(--accent-primary);text-decoration:none}svg{flex-shrink:0}hr{height:1px;background:var(--border-primary);border:0;margin:14px 0}h1,h2,h3,h4,p{margin:0 0 12px}h2{font-size:18px;font-weight:600}h3{font-size:15px;margin-top:20px}h4{font-size:13px;font-weight:600;margin-top:16px}p{line-height:1.65}.muted,small{color:var(--text-secondary);font-size:12px;line-height:1.6}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.primary:hover:not(:disabled){background:var(--accent-hover)}.text-button{border:0;background:transparent;color:var(--accent-primary)}.hidden-input{display:none}.cad-app{width:100%;height:100dvh;display:flex;flex-direction:column;position:relative;background:var(--app-background);padding:16px;gap:0}.topbar{height:60px;flex:0 0 60px;background:var(--surface-secondary);display:flex;align-items:center;padding:0 20px;border:1px solid var(--border-primary);border-radius:10px 10px 0 0;gap:14px}.brand{display:flex;align-items:center;gap:8px;color:var(--text-primary);font-size:20px;font-weight:650;white-space:nowrap;line-height:1.15}.brand-mark{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--accent-primary)}.brand-sub{font-size:9px;display:block;line-height:12px;letter-spacing:1.7px;font-weight:400;color:var(--text-secondary)}.header-filename{flex:1;min-width:0;text-align:center;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-secondary)}.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.header-settings{border:0;background:transparent;padding:7px}.viewer-link{display:flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap;padding:7px;border-radius:4px}.viewer-link:hover{background:var(--accent-light)}.header-open{white-space:nowrap;color:var(--accent-primary)}.toolbar-wrap{flex:0 0 48px;position:relative;background:var(--surface-secondary);z-index:12;border:1px solid var(--border-primary);border-top:0}.toolbar{min-height:48px;display:flex;align-items:center;gap:4px;padding:4px 12px;flex-wrap:wrap}.tool{min-width:0;height:36px;flex:none;gap:6px;border:0;background:transparent;padding:7px 9px;font-size:12px;position:relative}.tool span{white-space:nowrap}.tool.active{background:var(--accent-light);color:var(--accent-primary)}.quick-tools{display:flex;margin-inline-start:auto;border-inline-start:1px solid var(--border-primary);padding-inline-start:10px;gap:3px}.toolbar-menu{position:absolute;top:100%;inset-inline-start:12px;background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:0 0 7px 7px;box-shadow:0 8px 24px #25334826;min-width:240px;width:270px;max-width:calc(100vw - 32px);padding:5px;z-index:20;max-height:calc(100dvh - 160px);overflow:auto;overscroll-behavior:contain}.menu-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--border-primary);margin-bottom:4px}.menu-header button{border:0;padding:3px}.menu-measure{inset-inline-start:95px}.menu-inspect{inset-inline-start:200px}.menu-display{inset-inline-start:450px}.menu-tools{inset-inline-start:540px}.toolbar-menu>button{width:100%;justify-content:flex-start;border:0;background:transparent;padding:9px 12px;min-height:34px;height:auto;text-align:start;white-space:normal}.toolbar-menu>button span{white-space:normal}.toolbar-menu button:hover,.toolbar-menu button[aria-checked=true]{background:var(--accent-light);color:var(--accent-primary)}.toolbar-menu button>span:last-child{margin-inline-start:auto}.toolbar-menu .tool>span:last-child{margin:0}.workspace{flex:1;display:flex;min-height:0;min-width:0;border:1px solid var(--border-primary);border-top:0;overflow:hidden;border-radius:0 0 10px 10px}.sidebar{flex-shrink:0;background:var(--surface-secondary);position:relative;display:flex;flex-direction:column;border-inline-end:1px solid var(--border-primary);min-height:0;z-index:5;max-width:45vw}.sidebar-tabs{min-height:44px;display:flex;border-bottom:1px solid var(--border-primary);padding-inline-end:30px}.sidebar-tabs button{flex:1;background:transparent;border:0;border-radius:0;font-size:13px;position:relative}.sidebar-tabs button.active{color:var(--accent-primary)}.sidebar-tabs button.active:after{position:absolute;bottom:0;height:2px;content:"";background:var(--accent);left:12px;right:12px}.collapse-sidebar{position:absolute;right:5px;top:10px;padding:3px;border:0;background:transparent;z-index:2}.tree-search{display:flex;gap:5px;padding:12px}.tree-search input{height:32px;flex:1;font-size:12px;min-width:0}.tree-search button{height:32px;padding:4px 8px;border:1px solid var(--border-primary)}.tree-scroll{flex:1;overflow:auto;min-height:0;padding-bottom:12px;scrollbar-width:thin}.tree-row{height:29px;display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--text-primary);border:1px solid transparent;padding-inline-end:8px;white-space:nowrap;font-size:12px;direction:ltr}.tree-row:hover{background:var(--surface-hover)}.tree-row.selected{background:var(--accent-light);border-color:#bdd0ec}.tree-row.hidden-node{color:var(--text-muted)}.tree-name{overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.tree-expander,.tree-eye{border:0;background:transparent;padding:2px;color:inherit;flex-shrink:0}.tree-expander{width:16px;height:22px}.tree-expander:disabled{opacity:1}.tree-eye{opacity:.7}.tree-eye:hover{opacity:1}.tree-actions{display:flex;flex-wrap:wrap;gap:5px;padding:10px;border-top:1px solid var(--border-primary);max-height:25%;overflow:auto}.tree-actions button{font-size:11px;padding:5px 6px}.sidebar-bottom{height:42px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-top:1px solid var(--border-primary)}.sidebar-bottom select{background:none;border:0;max-width:150px}.sidebar-bottom button{background:none;border:0;padding:3px}.sidebar-resize{position:absolute;top:44px;bottom:0;width:5px;right:-3px;cursor:col-resize;z-index:6}.sidebar-resize:hover{background:var(--accent)}.sidebar-empty{padding:14px 18px;color:var(--text-secondary);line-height:1.65}.files-panel{padding:14px;overflow:auto;flex:1}.source-file{display:flex;gap:7px;align-items:center;margin-bottom:8px;font-size:12px}.source-file span{flex:1;overflow:hidden;text-overflow:ellipsis}.source-file small{white-space:nowrap}.recent-file{width:100%;margin:4px 0;justify-content:flex-start;text-align:start}.recent-file span{overflow:hidden;text-overflow:ellipsis}.recent-file small{display:block}.viewport-area{flex:1;position:relative;min-width:0;min-height:0;overflow:hidden}.canvas-host{position:absolute;inset:0;background:var(--canvas-background);direction:ltr;unicode-bidi:isolate}.canvas-host canvas{touch-action:none;display:block}.welcome{position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);color:#dfe7f0;text-align:center;width:min(540px,90%)}.welcome-icon{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;color:#adc0da;margin-bottom:18px}.welcome h1{font-size:24px;font-weight:550}.welcome p{font-size:13px;color:#b7c6d6}.welcome .button-row{justify-content:center;margin:20px 0}.welcome button{background:#f7f8fa;color:var(--text-primary);padding:10px 15px}.welcome button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.welcome .local-notice{font-size:12px;max-width:430px;margin:0 auto 8px;color:#a3b2c4}.welcome .text-button{background:transparent;border:0;font-size:12px;color:#c5d5eb}.button-row{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.floating-panel{position:absolute;top:0;right:0;width:340px;background:var(--surface-primary);border-inline-start:1px solid var(--border-primary);box-shadow:-4px 0 20px #1324341a;z-index:10;max-height:calc(100% - 30px);height:calc(100% - 30px);display:flex;flex-direction:column;animation:panel-enter .14s ease-out}.panel-header{height:44px;flex-shrink:0;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--surface-secondary);border-bottom:1px solid var(--border-primary);cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.panel-header>span{flex:1;font-size:14px;font-weight:600}.panel-header button{border:0;background:transparent;padding:5px}.panel-content{padding:16px;overflow:auto;min-height:0;scrollbar-width:thin;overscroll-behavior:contain;overflow-wrap:anywhere}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.field input,.field select{width:100%}.check-field{display:flex;align-items:center;gap:8px;margin:11px 0;line-height:1.5}.slider-field{margin:16px 0}.slider-field>label{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px}.slider-field>div{display:flex;align-items:center;gap:10px}.slider-field output{color:var(--text-secondary);font-family:JetBrains Mono,monospace}.normal-fields{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap}.normal-fields label{display:flex;align-items:center;gap:4px}.normal-fields input{width:60px}.notice{color:var(--text-secondary);background:var(--surface-secondary);padding:10px;font-size:12px;border:1px solid var(--border-primary);border-radius:4px;line-height:1.6;margin-bottom:12px}.properties{margin:0;overflow-wrap:anywhere}.properties>div{padding:8px 0;border-bottom:1px solid var(--border-primary)}.properties dt{color:var(--text-secondary);font-size:12px;margin-bottom:4px}.properties dd{margin:0;font-size:12px;line-height:1.5;direction:ltr;unicode-bidi:isolate;font-family:JetBrains Mono,monospace}.measure-records{max-height:none;overflow:visible}.measure-record{padding:9px 0;border-bottom:1px solid var(--border-primary)}.measure-record span,.measure-record small{display:block;margin-top:4px}.measure-record output{font-family:JetBrains Mono,monospace}.export-options{display:flex;flex-direction:column;gap:8px}.export-options button{justify-content:flex-start}.measurement-details summary{font-size:12px;color:var(--text-secondary);cursor:pointer;padding:8px 0}.panel-content textarea{min-height:85px;width:100%;resize:vertical}.mass-properties{padding-top:8px}.mass-properties h4{font-size:12px;color:var(--text-secondary)}.loading-overlay{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);background:var(--surface-primary);border:1px solid var(--border-primary);border-radius:8px;padding:28px;width:min(340px,calc(100% - 24px));display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:0 5px 25px #0003;z-index:15}.loading-overlay progress{width:100%;accent-color:var(--accent)}.loading-overlay details{font-size:11px;max-width:300px;color:var(--text-secondary)}.spin{animation:spin 1s linear infinite}.error-banner{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);background:#fff6f4;color:#6a302b;box-shadow:0 4px 22px #0003;border:1px solid #d39a91;border-radius:6px;padding:18px;display:flex;gap:12px;width:min(90%,520px);z-index:18;max-height:75%;overflow:auto}.error-banner strong{font-size:15px}.error-banner details{margin-top:12px}.error-banner p{overflow-wrap:anywhere;font-size:12px;margin-top:10px}.error-banner button{background:#fff;border-color:#c59b95;color:#6a302b}.context-warning{position:absolute;inset:30% 15% auto;background:#fff6f4;color:#6a302b;padding:20px;z-index:20}.operation-notice{position:absolute;bottom:42px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:9px 12px;max-width:min(440px,calc(100% - 24px));background:var(--surface-primary);color:var(--text-primary);border:1px solid var(--border-primary);border-radius:6px;box-shadow:0 3px 12px #18243220;font-size:12px;line-height:1.5;z-index:40}.operation-notice.warning{border-color:#b9a783}.operation-notice>button{border:0;padding:4px;background:transparent;flex:none}.operation-notice>span{overflow-wrap:anywhere}.statusbar{position:absolute;bottom:0;left:0;right:0;height:30px;display:flex;align-items:center;gap:14px;color:var(--text-secondary);background:var(--surface-secondary);border-top:1px solid var(--border-primary);font-size:11px;padding:0 12px;white-space:nowrap;overflow:hidden;z-index:3;direction:ltr}.statusbar button{margin-inline-start:auto;font-size:11px;padding:0;background:none;border:0;color:var(--text-secondary);white-space:nowrap}.statusbar .unit-status{margin:0;color:var(--accent-primary)}.canvas-file-actions{position:absolute;top:12px;left:16px;display:flex;gap:6px;z-index:4}.canvas-file-actions button{padding:6px;background:#f7f8fae6;border-color:#cdd6e2;color:var(--text-primary)}.view-navigation{position:absolute;top:16px;right:20px;width:96px;height:110px;z-index:2;perspective:350px;direction:ltr;unicode-bidi:isolate}.view-cube{position:absolute;top:4px;left:0;width:96px;height:86px;overflow:visible}.view-cube [role=button]{cursor:pointer;outline:none}.view-cube polygon{stroke:#91a8b8;stroke-width:1;vector-effect:non-scaling-stroke}.view-cube text{font-size:8px;fill:#567285;text-anchor:middle;dominant-baseline:central;pointer-events:none;-webkit-user-select:none;user-select:none}.view-cube .active polygon,.view-cube [role=button]:hover polygon,.view-cube [role=button]:focus-visible polygon{fill:#5278b4}.view-cube .active text,.view-cube [role=button]:hover text,.view-cube [role=button]:focus-visible text{fill:#fff}.iso-view{position:absolute;bottom:0;left:30px;font-size:10px;padding:2px 8px;color:var(--text-primary);background:#f7f8fa;border:1px solid var(--border-primary)}.orientation-axis{position:absolute;bottom:35px;left:16px;font-size:13px;pointer-events:none;direction:ltr}.cube-direction-edge:hover,.cube-direction-edge:focus-visible{fill:#5278b480;stroke:none!important}.cube-direction-corner:hover,.cube-direction-corner:focus-visible{fill:#5278b4;stroke:#fff;stroke-width:1}.dialog-overlay{position:absolute;inset:0;background:#18243266;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.dialog{width:min(640px,100%);max-height:90dvh;background:var(--surface-primary);border:1px solid var(--border-primary);box-shadow:0 12px 50px #14243844;display:flex;flex-direction:column;border-radius:8px;overflow:hidden}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-bottom:1px solid var(--border-primary);flex:none}.dialog-header h2{margin:0}.dialog-header button{background:none;border:0;padding:3px}.dialog-content{padding:22px;overflow:auto;min-height:0;overflow-wrap:anywhere}.dialog-content a{overflow-wrap:anywhere}.sample-row{width:100%;margin:6px 0;justify-content:flex-start;padding:12px;gap:12px;text-align:start}.sample-row span{flex:1;text-align:start}.sample-row small{display:block}.file-row{border:1px solid var(--border-primary);background:var(--surface-secondary);border-radius:4px;padding:14px;margin:12px 0;overflow-wrap:anywhere}.file-row input{width:100%;font-size:12px}.file-row p{margin:7px 0;font-size:12px}.file-row small{display:block;overflow-wrap:anywhere}.error{padding:10px 12px;background:#fff6f4;color:#8b3d39;border:1px solid #e7b5b0;font-size:12px}.diagnostic-log{max-width:100%;font:11px JetBrains Mono,monospace;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.drop-overlay{position:absolute;inset:12px;z-index:160;background:#263441ee;color:#fff;border:3px dashed #88a6c9;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:25px;font-size:25px;pointer-events:none}.mobile-nav,.tree-shade{display:none}.canvas-context-menu button,[data-testid=canvas-context-menu] button,[data-testid=tree-context-menu] button{border:0;justify-content:flex-start;background:transparent;padding:8px 10px;text-align:start}.canvas-context-menu button:hover,[data-testid=canvas-context-menu] button:hover,[data-testid=tree-context-menu] button:hover{background:var(--accent-light)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes panel-enter{0%{opacity:.5}to{opacity:1}}::-webkit-scrollbar{width:7px;height:5px}::-webkit-scrollbar-thumb{background:#bec8d6;border-radius:3px}::-webkit-scrollbar-track{background:transparent}@media(max-width:1150px){.quick-tools .tool span{display:none}.toolbar{gap:1px;padding-inline:6px}.tool{padding:7px}.header-actions{gap:5px}.statusbar{gap:9px}.statusbar>span:nth-last-of-type(-n+2){display:none}.floating-panel{width:310px}.topbar{padding:0 12px}.brand{font-size:18px}}@media(max-width:900px){.cad-app{padding:8px}.tool{font-size:11px;padding:7px 6px}.sidebar{max-width:30vw}.menu-display,.menu-tools{inset-inline-start:auto;inset-inline-end:8px}.header-actions{gap:2px}.viewer-link{font-size:11px}.quick-tools{padding-inline-start:4px}.quick-tools .tool svg{width:16px}.floating-panel{width:290px}}@media(max-width:680px),(max-width:900px)and (pointer:coarse){.cad-app{padding:0}.topbar{height:calc(56px + var(--safe-top));flex-basis:calc(56px + var(--safe-top));padding:var(--safe-top) 9px 0;gap:8px;border-radius:0;border-left:0;border-right:0}.brand{font-size:16px;gap:2px}.brand-mark{width:25px}.brand-sub{font-size:7px;letter-spacing:1px}.header-filename{display:none}.header-open{padding:7px;font-size:12px;min-height:36px}.header-actions{margin-inline-start:auto}.viewer-link{font-size:0;padding:8px}.viewer-link svg{width:18px;height:18px}.header-settings{display:none}.toolbar-wrap{flex-basis:44px;border-left:0;border-right:0}.toolbar{height:44px;flex-wrap:nowrap;justify-content:space-around;padding:3px 6px;gap:0}.toolbar>.tool{flex:1;flex-direction:column;height:38px;padding:0 3px;gap:2px;font-size:10px;min-width:0}.toolbar>.tool span{white-space:normal;max-width:100%;line-height:12px;overflow-wrap:anywhere}.toolbar>.tool>svg:last-child:not(:first-child){display:none}.toolbar>.tool[data-testid=tool-inspect],.toolbar>.tool[data-testid=tool-display],.quick-tools{display:none}.workspace{border:0;border-radius:0}.sidebar{display:none}.mobile-tree-open .sidebar{display:flex;width:min(310px,88vw)!important;max-width:88vw;position:absolute;top:calc(100px + var(--safe-top));bottom:calc(62px + var(--safe-bottom));left:0;z-index:65;box-shadow:5px 0 20px #18243233}.tree-shade{display:block;position:absolute;inset:calc(100px + var(--safe-top)) 0 calc(62px + var(--safe-bottom));z-index:60;background:#18243266;border:0;border-radius:0}.sidebar-resize{display:none}.tree-actions button{min-height:34px}.tree-row{height:36px}.tree-eye{padding:5px}.sidebar.collapsed{width:min(310px,88vw)!important}.sidebar.collapsed .sidebar-tabs{display:flex}.mobile-nav{display:flex;flex:none;justify-content:space-around;height:calc(62px + var(--safe-bottom));padding:5px 9px calc(5px + var(--safe-bottom));background:var(--surface-secondary);border-top:1px solid var(--border-primary);z-index:70}.mobile-nav button{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;border:0;background:transparent;font-size:10px}.mobile-nav button.active{background:var(--accent-light);color:var(--accent-primary)}.toolbar-menu{position:fixed;left:0;right:0;top:auto;bottom:calc(62px + var(--safe-bottom));width:100%;max-width:100%;max-height:calc(78dvh - var(--safe-bottom));border-radius:14px 14px 0 0;inset-inline-start:0;inset-inline-end:0;box-shadow:0 -10px 35px #14233140;padding:7px 10px;z-index:75}.toolbar-menu>button{min-height:42px;font-size:12px}.menu-header{position:sticky;top:-7px;background:var(--surface-primary);z-index:1;padding:10px}.floating-panel{inset:auto 0 30px;width:100%;height:min(63dvh,540px);max-height:calc(100% - 35px);border-radius:14px 14px 0 0;border:1px solid var(--border-primary);box-shadow:0 -6px 25px #17263440;transform:none!important}.panel-header{height:45px;cursor:default;border-radius:14px 14px 0 0}.panel-header>svg{display:none}.panel-header:before{content:"";position:absolute;left:50%;top:5px;width:34px;height:3px;background:#bec8d6;border-radius:3px}.panel-content{padding:15px 18px;font-size:12px}.panel-content input:not([type=range]):not([type=checkbox]),.panel-content select,.panel-content button{min-height:36px}.welcome{width:calc(100% - 30px);top:46%}.welcome-icon{width:56px;height:56px;margin-bottom:10px}.welcome h1{font-size:20px}.welcome p{font-size:11px}.welcome .button-row{margin:14px 0}.welcome .local-notice{font-size:11px}.statusbar{height:30px;font-size:10px;padding:0 8px;gap:7px}.statusbar span:nth-of-type(n+2){display:none}.statusbar button{font-size:10px}.view-navigation{right:8px;top:10px;width:78px;height:95px}.view-cube{width:78px;height:75px}.iso-view{left:20px}.canvas-file-actions{left:8px;top:10px}.dialog-overlay{padding:8px}.dialog{max-height:calc(100dvh - 18px)}.dialog-header{padding:12px 16px}.dialog-content{padding:16px}.loading-overlay{padding:20px}.operation-notice{font-size:11px;bottom:42px;width:max-content;max-width:calc(100% - 24px)}.error-banner{padding:13px}.error-banner .button-row button{font-size:11px}}html[dir=rtl] :is(.sidebar,.panel-content,.toolbar-menu,.dialog){text-align:start}.view-navigation,.canvas-host,.orientation-axis,.header-filename,.tree-name,.source-file,.normal-fields,.statusbar,output{direction:ltr;unicode-bidi:isolate}.panel-content button{white-space:normal;overflow-wrap:anywhere}html[dir=rtl] .floating-panel{right:0;left:auto}.collapsed .collapse-sidebar{right:7px}@media(max-width:680px){html[dir=rtl] .floating-panel{right:0;left:0}}.mobile-view-tools{display:none}@media(max-width:680px),(max-width:900px)and (pointer:coarse){.mobile-view-tools{display:flex;gap:5px;padding:8px}.mobile-view-tools button{flex:1;min-height:42px;font-size:12px}.operation-notice{bottom:calc(78px + var(--safe-bottom))}}.viewport-area:has(.floating-panel) .canvas-host{right:340px}.viewport-area:has(.floating-panel) .view-navigation{right:360px}.mobile-nav{position:relative}.toolbar-wrap{z-index:80}.floating-panel.sheet-minimized{height:44px;max-height:44px}.floating-panel.sheet-minimized .panel-content{display:none}@media(max-width:1150px){.viewport-area:has(.floating-panel) .canvas-host{right:310px}.viewport-area:has(.floating-panel) .view-navigation{right:330px}}@media(max-width:900px){.viewport-area:has(.floating-panel) .canvas-host{right:290px}.viewport-area:has(.floating-panel) .view-navigation{right:310px}}@media(max-width:680px),(max-width:900px)and (pointer:coarse){.viewport-area:has(.floating-panel) .canvas-host{right:0}.viewport-area:has(.floating-panel) .view-navigation{right:8px}.floating-panel.sheet-minimized{height:45px;max-height:45px}.tree-shade{z-index:60}.floating-panel .minimize-panel{display:flex}}
