:root{--bg:#16171b;--panel:#1f2127;--panel-2:#272a31;--border:#33363f;--text:#c9ccd4;--text-dim:#a0a6b3;--accent:#ffb020;--accent-dim:#ffb02026;--danger:#e5534b;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;font:13px/1.4 system-ui,-apple-system,Segoe UI,Apple SD Gothic Neo,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}button{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);cursor:pointer;border-radius:4px;padding:4px 10px}button:hover:not(:disabled){border-color:var(--text-dim)}button:disabled{opacity:.4;cursor:default}button.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}button.danger{color:var(--danger)}input{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:3px;min-width:0;padding:3px 5px}input:focus{outline:1px solid var(--accent);border-color:var(--accent)}input[type=color]{width:44px;height:22px;padding:0}input[type=range]{accent-color:var(--accent);border:none;padding:0}.app{flex-direction:column;height:100%;display:flex}.workspace{flex:1;min-height:0;display:flex}.viewport{flex:1;min-width:0;position:relative}.viewport.dragging:after{content:"";border:2px dashed var(--accent);pointer-events:none;border-radius:8px;position:absolute;inset:8px}.drop-hint{background:var(--panel);pointer-events:none;border-radius:6px;padding:12px 18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.empty-state{color:var(--text-dim);text-align:center;pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.empty-state p{margin:0}.empty-state button{pointer-events:auto}.tree .empty button{margin-top:8px}.toast{z-index:40;white-space:pre-line;border:1px solid var(--danger);background:#3b1f1f;border-radius:6px;align-items:center;gap:10px;max-width:min(640px,100% - 24px);padding:8px 12px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.toast.warning{border-color:var(--accent);background:#3a2f12}.toast button{background:0 0;border:none;padding:0 4px}.toolbar{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:6px 12px;line-height:18px;display:flex}.brand{color:var(--accent);text-transform:uppercase;letter-spacing:.14em}.group{gap:4px;display:flex}.segmented{gap:0}.segmented button{border-radius:0}.segmented button:first-child{border-radius:4px 0 0 4px}.segmented button:last-child{border-radius:0 4px 4px 0}.stats{color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap;gap:12px;margin-left:auto;display:flex;overflow:hidden}.stats span:first-child{color:var(--text);text-overflow:ellipsis;overflow:hidden}.panel{background:var(--panel);flex-shrink:0;width:280px;overflow-y:auto}.tree{border-right:1px solid var(--border);flex-direction:column;display:flex;overflow:hidden}.tree-scroll{flex:1;min-height:0;overflow-y:auto}.inspector{border-left:1px solid var(--border);width:300px}.panel h2{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:0;padding:10px 12px 6px;font-size:11px}.panel-heading{all:unset;cursor:pointer;border-radius:4px;align-items:center;gap:4px;display:inline-flex}.panel-heading:hover{color:var(--text)}.panel-heading:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.panel.collapsed{width:32px;overflow:hidden}.panel.collapsed>:not(h2){display:none}.panel.collapsed h2{justify-content:center;padding:10px 0;display:flex}.panel.collapsed .panel-heading{writing-mode:vertical-rl;letter-spacing:.2em;padding:4px 0}.panel h3{align-items:center;gap:6px;margin:0 0 8px;font-size:12px;display:flex}.panel section{border-top:1px solid var(--border);padding:10px 12px}.panel .empty{color:var(--text-dim);padding:0 12px}.panel section .empty{padding:0}.count{color:var(--text-dim);font-weight:400}.meta{color:var(--text-dim);margin-top:6px}.node{cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;height:24px;padding-right:6px;display:flex}.node:hover{background:var(--panel-2)}.node.selected{background:var(--accent-dim);color:var(--accent)}.node.hidden-node .label{opacity:.4}.node button{color:var(--text-dim);background:0 0;border:none;padding:0 2px}.node .label{text-overflow:ellipsis;flex:1;overflow:hidden}.node .kind{color:var(--text-dim);font-size:9px}.node .eye{opacity:0}.node:hover .eye,.node.hidden-node .eye{opacity:1}.field{grid-template-columns:80px 1fr;align-items:center;gap:8px;margin-bottom:6px;display:grid}.field>span,.vec3>span,.vec2>span,.texture-slot>span{color:var(--text-dim)}.field.slider{grid-template-columns:80px 1fr 34px}.field.checkbox input{justify-self:start}.field output{text-align:right;font-variant-numeric:tabular-nums}.vec3,.vec2{grid-template-columns:50px repeat(3,1fr);align-items:center;gap:4px;margin-bottom:4px;display:grid}.vec2{grid-template-columns:80px repeat(2,1fr);gap:8px}.material{border:1px solid var(--border);border-radius:4px;margin-bottom:8px}.material-head{background:var(--panel-2);text-align:left;border:none;align-items:center;gap:8px;width:100%;display:flex}.material-head .label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.swatch{border:1px solid var(--border);border-radius:3px;flex-shrink:0;width:14px;height:14px}.shared{color:var(--accent);font-size:11px}.material-body{padding:8px}.texture-slot{grid-template-columns:80px 1fr auto;align-items:center;gap:8px;margin-bottom:4px;display:grid}.texture-name{text-overflow:ellipsis;white-space:nowrap;text-align:left;overflow:hidden}.texture-slot .clear{padding:2px 6px}.perf{color:var(--text-dim);font-variant-numeric:tabular-nums;pointer-events:none;font-size:11px;position:absolute;bottom:8px;left:10px}.button-row{gap:6px;margin-bottom:8px;display:flex}.report{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-bottom:10px}.report th{text-align:left;color:var(--text-dim);padding:2px 0;font-weight:400}.report td{text-align:right}.report tr.problem td{color:var(--accent)}.mesh-cleanup details .button-row{flex-wrap:wrap;margin-top:8px}.mesh-cleanup summary{cursor:pointer}.simplify{border-top:1px dashed var(--border);flex-direction:column;gap:6px;padding-top:8px;display:flex}.simplify>button{align-self:flex-start}.segmented.small{display:flex}.segmented.small button{border-radius:0;flex:1}.segmented.small button:first-child{border-radius:4px 0 0 4px}.segmented.small button:last-child{border-radius:0 4px 4px 0}.status,.mesh-cleanup .repair-note{color:var(--text-dim);margin:8px 0 0}.status.result{color:var(--text)}.ifc .report td{word-break:break-all;padding-left:8px}.pset{margin-top:4px}.pset-head{text-align:left;background:0 0;border:none;width:100%;padding:4px 0}.pset .report{width:calc(100% - 12px);margin:0 0 6px 12px}.ai-material{flex-direction:column;gap:6px;display:flex}.ai-material h3{margin-bottom:2px}.ai-material textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);resize:vertical;border-radius:3px;padding:5px 6px}.ai-material textarea:focus{outline:1px solid var(--accent);border-color:var(--accent)}.ai-material>button{align-self:flex-start}.badge{color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:0 4px;font-size:10px;font-weight:400}.suggestion{border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:6px;padding:8px;display:flex}.suggestion-head{align-items:center;gap:8px;display:flex}.suggestion-head img{object-fit:cover;background:var(--panel-2);border-radius:3px}.suggestion .meta{align-items:center;gap:4px;margin-top:2px;display:flex}.swatch.inline{width:10px;height:10px}.reason{margin:0}.license{color:var(--text-dim);margin:0;font-size:11px}.license a{color:var(--text)}.alternatives{flex-wrap:wrap;gap:4px;display:flex}.alternatives button{padding:2px 6px;font-size:11px}button.primary{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);align-self:flex-start}.material-body .license{margin-bottom:8px}.marquee{--marquee:var(--accent);border:1px solid var(--marquee);background:color-mix(in srgb, var(--marquee) 15%, transparent);pointer-events:none;display:none;position:absolute}.marquee[data-mode=subtract]{--marquee:var(--danger);border-style:dashed}.marquee[data-mode=replace]{--marquee:#539bf5}.marquee:after{content:attr(data-label);color:var(--marquee);white-space:nowrap;font-size:11px;position:absolute;top:2px;left:4px}.node.selected.primary{box-shadow:inset 2px 0 0 var(--accent)}.hint{color:var(--text-dim);margin:0;font-size:11px}.add-menu{position:relative}.add-menu .menu{z-index:60;background:var(--panel);border:1px solid var(--border);border-radius:4px;flex-direction:column;min-width:220px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0}.add-menu .menu button{text-align:left;background:0 0;border:none;justify-content:space-between;gap:12px;display:flex}.add-menu .menu button:hover{background:var(--panel-2)}html,body{overscroll-behavior:none}body{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.app{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}@supports (height:100dvh){.app{height:100dvh}}.viewport canvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.drawer,.more-group{display:contents}.toolbar-more,.touch-bar{display:none}.app.compact .workspace{position:relative}.app.compact .viewport{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.app.compact .drawer{z-index:40;width:min(340px,88vw);display:none;position:absolute;top:0;bottom:0;box-shadow:0 0 24px #000a}.app.compact .drawer[data-open=true]{display:flex}.app.compact .drawer-tree{left:0}.app.compact .drawer-inspector{width:min(380px,92vw);right:0}.app.compact .drawer>.panel{width:100%;height:100%}.app.compact button{min-width:40px;min-height:40px;padding:6px 12px}.app.compact input:not([type=checkbox]):not([type=range]):not([type=color]),.app.compact select,.app.compact textarea{min-height:36px;font-size:16px}.app.compact input[type=range]{min-height:32px}.app.compact input[type=checkbox]{width:22px;height:22px}.app.compact .toolbar{flex-wrap:wrap;gap:6px;padding:4px 8px}.app.compact .toolbar:not(.expanded) .more{display:none}.app.compact .toolbar-more{font-size:16px;line-height:1;display:inline-block}.app.compact .stats{flex:1 1 0;justify-content:flex-end;min-width:32px}.app.compact .node button{min-width:32px;height:100%;min-height:0;padding:0}.app.compact .node .eye{opacity:.6}.app.compact .touch-bar{background:var(--panel);border-top:1px solid var(--border);scrollbar-width:none;touch-action:pan-x;align-items:center;gap:6px;padding:6px 8px;display:flex;overflow-x:auto}.touch-bar button{white-space:nowrap;flex-shrink:0}.touch-bar-sep{background:var(--border);flex-shrink:0;align-self:stretch;width:1px}@media (width<=699px){.app.compact .stats span:not(:first-child){display:none}}@media (width<=479px){.app.compact .brand{display:none}.app.compact .toolbar button,.app.compact .touch-bar button{padding:6px 9px}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.panel:focus-visible,.viewport:focus-visible{outline-offset:-3px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.toolbar button:has(.btn-icon-svg){justify-content:center;align-items:center;display:inline-flex}.toolbar .btn-icon-svg{flex-shrink:0;display:none}@media (width<=699px){.toolbar .btn-label{display:none}.toolbar .btn-icon-svg{display:block}}.toolbar{flex-shrink:0;gap:8px}.toolbar button{white-space:nowrap}.toolbar-cluster+.toolbar-cluster{border-left:1px solid var(--border);padding-left:8px}.toolbar .stats{flex:1;min-width:0}.stats>.stats-detail{display:none}.advanced-tools{flex-shrink:0;position:relative}.advanced-tools summary{cursor:pointer;border:1px solid var(--border);color:var(--text-dim);border-radius:4px;padding:4px 10px;list-style:none}.advanced-tools summary::-webkit-details-marker{display:none}.advanced-tools[open] summary{color:var(--accent);border-color:var(--accent)}.advanced-add{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:4px;padding-bottom:6px;display:flex}.advanced-label{width:100%;color:var(--text-dim);font-size:11px}.advanced-menu{z-index:60;border:1px solid var(--border);background:var(--panel);border-radius:6px;gap:8px;width:220px;padding:12px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 24px #0006}.advanced-stats{color:var(--text-dim);font-variant-numeric:tabular-nums;gap:4px;display:grid}.welcome{border:1px solid var(--border);pointer-events:auto;background:#1f2127f5;border-radius:16px;gap:16px;width:min(520px,100% - 32px);max-height:calc(100% - 120px);padding:28px 24px;overflow:auto;box-shadow:0 16px 48px #0003}.welcome h1{color:var(--text);margin:0;font-size:clamp(20px,2vw,28px)}.welcome-eyebrow{color:var(--accent);letter-spacing:.18em;font-size:11px}.welcome-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.welcome-actions button{padding:9px 16px}.welcome-formats{font-size:12px;line-height:1.8}.welcome .welcome-blank{text-underline-offset:4px;background:0 0;border-color:#0000;text-decoration:underline}.inspector-section-toggle{text-align:left;background:0 0;border:none;align-items:center;gap:6px;width:100%;padding:2px 0;font-weight:600;display:flex}.panel .inspector-section:has(.inspector-section-toggle[aria-expanded=false])>h3{margin-bottom:0}.inspector-section>div:not([hidden]){flex-direction:column;gap:6px;display:flex}.node:focus-within .eye{opacity:1}.app.compact .advanced-tools summary{min-width:40px;min-height:40px;padding:10px}.app.compact .advanced-menu{top:var(--advanced-top,112px);max-height:calc(100dvh - var(--advanced-top,112px) - 12px);position:fixed;right:12px;overflow-y:auto}.app.compact .toolbar-cluster+.toolbar-cluster{border-left:none;padding-left:0}.app.compact .toolbar:not(.expanded)>.autosave-status{display:none}@media (width<=479px){.welcome{gap:12px;padding:20px 16px}}@media (width>=1024px) and (width<=1240px){.toolbar{flex-wrap:wrap}}.recovery-overlay{z-index:25;background:#16181ccc;place-items:center;display:grid;position:absolute;inset:0}.recovery-card{color:#e6e8ec;overflow-wrap:anywhere;background:#252830;border:1px solid #656b78;border-radius:6px;max-width:560px;margin:16px;padding:20px;line-height:1.6}.recovery-card p{margin:0 0 16px}.browser-unsupported{max-width:680px;margin:auto;padding:40px 24px;line-height:1.8}.context-notice{z-index:24;background:#16181ccc;place-items:center;display:grid;position:absolute;inset:0}.storage-notice{z-index:12;background:#252830;border:1px solid #656b78;border-radius:6px;max-width:480px;padding:12px;font-size:12px;position:absolute;bottom:36px;left:16px}.autosave-status{color:var(--text-dim);white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:11px}.autosave-status.failed{color:var(--danger)}.restore-banner{background:var(--panel-2);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:8px 12px;line-height:18px;display:flex}.restore-banner>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.restore-banner button{flex-shrink:0}.layers{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex}.layers.open{max-height:45%}.layers-head{justify-content:space-between;align-items:center;display:flex}.panel h2.layers-head{padding:6px 8px 4px}.layers-head button{font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--text-dim);background:0 0;border:none;padding:0 4px}.layers-head button:hover{color:var(--text)}.layers-dims{padding:0 12px 6px}.layers-dims button{flex:1;padding:2px 6px}.layers-list{min-height:0;padding-bottom:6px;overflow-y:auto}.layer-row{white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;height:24px;padding:0 6px 0 8px;display:flex}.layer-row:hover{background:var(--panel-2)}.layer-row button{color:var(--text-dim);background:0 0;border:none;padding:0 3px}.layer-row button:hover{color:var(--accent)}.layer-row.hidden .layer-label{opacity:.4}.layer-label{text-overflow:ellipsis;flex:1;overflow:hidden}.layer-count{color:var(--text-dim);font-variant-numeric:tabular-nums}.layer-row .layer-action{opacity:0;font-size:11px}.layer-row:hover .layer-action,.layer-row .layer-action:focus-visible{opacity:1}.tool-dock{--dock-top:52px;z-index:24;pointer-events:none;position:absolute;inset:0}.dock-column{top:var(--dock-top);pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;width:min(350px,50% - 12px);min-height:0;display:flex;position:absolute;bottom:8px}.dock-left{align-items:flex-start;left:8px}.dock-right{right:8px}.tool-dock .dock-panel{z-index:auto;box-sizing:border-box;pointer-events:auto;flex:0 auto;width:100%;max-width:100%;min-height:0;max-height:65%;padding:6px;position:relative;inset:auto;overflow:auto}.tool-dock .dock-panel[data-dock-id=site],.tool-dock .dock-panel[data-dock-id=terrain]{width:min(248px,100%);max-height:34%}.tool-dock .dock-panel[data-expanded=false]:not(.picking){flex-shrink:0}.tool-dock .measure-panel[data-expanded=true]{height:240px}.dock-heading{align-items:center;gap:4px;display:flex}.dock-heading button{flex-shrink:0;min-height:28px}.dock-heading .dock-title{text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:600;overflow:hidden}.tool-dock .dock-body[hidden]{display:none}.tool-dock .dock-panel.picking{pointer-events:none;flex-shrink:0;height:50px;max-height:52px;padding:4px 8px;overflow:hidden}.dock-panel.picking>.dock-body{display:contents}.dock-panel.picking button{pointer-events:auto;flex-shrink:0}.tool-dock .underlay-panel.picking .underlay-alignment{align-items:center;gap:6px;padding:0;display:flex}.underlay-panel.picking :is(.underlay-row,fieldset,.underlay-alignment){min-width:0}.underlay-panel.picking .underlay-alignment p{white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.tool-dock.compact-dock{padding:var(--dock-top) 8px 8px;box-sizing:border-box;flex-direction:column;align-items:flex-end;gap:8px;display:flex}.tool-dock.compact-dock .dock-column{display:contents}.tool-dock.compact-dock .dock-left .dock-panel{align-self:flex-start}.tool-dock.compact-dock .dock-right .dock-panel:first-child{margin-top:auto}.tool-dock.compact-dock .dock-panel{width:min(350px,100%);max-height:22%}.tool-dock.compact-dock .dock-panel :is(button,summary,select,input){min-height:40px}.tool-dock.compact-dock .dock-panel.picking{max-height:52px}.section-panel .dock-body{flex-direction:column;gap:8px;display:flex}.section-panel{background:var(--panel);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:8px;padding:10px 12px;display:flex;box-shadow:0 4px 16px #0005}.section-row{align-items:center;gap:6px;display:flex}.section-row .segmented{flex:1}.section-row input[type=range]{flex:1;min-width:0}.section-panel input[type=number]{width:72px;font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:4px;padding:2px 4px}.section-panel .unit{color:var(--text-dim)}.section-box{flex-direction:column;gap:4px;display:flex}.section-box label{align-items:center;gap:6px;display:flex}.section-box label span{width:14px;color:var(--text-dim)}.section-box input[type=number]{flex:1;width:auto;min-width:0}.snap-control{position:relative}.snap-menu{z-index:10;background:var(--panel);border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:6px;min-width:200px;padding:8px;display:flex;position:absolute;top:calc(100% + 4px);left:0}.snap-menu .field{margin:0}.align-tools .align-grid{grid-template-columns:20px repeat(4,1fr);align-items:center;gap:4px;display:grid}.align-tools .align-grid>span{color:var(--text-dim);font-weight:600}.align-tools .align-grid button{padding-left:0;padding-right:0}.align-tools .button-row{margin-top:6px}.view-panel{z-index:25;flex-direction:column;align-items:flex-end;gap:6px;max-width:calc(100% - 16px);display:flex;position:absolute;top:8px;right:8px}.view-bar{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.view-bar button,.view-menu button{padding:3px 8px;font-size:12px}.view-group{display:flex}.view-group button{border-radius:0;margin-left:-1px}.view-group button:first-child{border-radius:4px 0 0 4px;margin-left:0}.view-group button:last-child{border-radius:0 4px 4px 0}.view-group button.active{position:relative}.view-menu{background:var(--panel);border:1px solid var(--border);border-radius:6px;width:280px;max-width:100%;max-height:50vh;padding:10px;overflow-y:auto;box-shadow:0 4px 16px #0005}.view-row{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.view-row input:not([type]){min-width:0;font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:4px;flex:1;padding:3px 6px}.view-hint{color:var(--text-dim);margin:4px 0 0;font-size:11px}.view-bookmarks{margin:0;padding:0;list-style:none}.view-bookmarks li{gap:4px;margin-top:4px;display:flex}.view-bookmark-name{text-align:left;flex:1;justify-content:space-between;display:flex;overflow:hidden}.view-bookmark-name small{color:var(--text-dim)}.view-toggle{display:none}@media (width<=699px){.view-toggle{display:inline-block}.view-bar[data-collapsed=true]{display:none}}.app.compact .view-bar button,.app.compact .view-menu button{font-size:13px}
