.gridfinity-app{color-scheme:light;--background:oklch(1.0000 0.0000 0.0);--foreground:oklch(0.3067 0.0187 248.4);--muted:oklch(0.9760 0.0020 264.5);--muted-foreground:oklch(0.4600 0.0150 251.7);--popover:oklch(1.0000 0.0000 0.0);--popover-foreground:oklch(0.3067 0.0187 248.4);--card:oklch(1.0000 0.0000 0.0);--card-foreground:oklch(0.3067 0.0187 248.4);--border:oklch(0.9372 0.0028 264.5);--input:oklch(0.9677 0.0031 264.5);--ring:oklch(0.5660 0.2250 261.5);--radius:10px;--primary:oklch(0.5660 0.2250 261.5);--primary-foreground:oklch(1.0000 0 0);--secondary:oklch(0.9670 0.0140 252);--secondary-foreground:oklch(0.2630 0.0550 260);--accent:oklch(0.9460 0.0280 256);--accent-foreground:oklch(0.4800 0.1900 260);--destructive:oklch(0.9736 0.0134 39.4);--destructive-foreground:oklch(0.5674 0.1817 33.9);--sidebar-background:oklch(1.0000 0.0000 0.0);--sidebar-foreground:oklch(0.3067 0.0187 248.4);--sidebar-primary:oklch(0.5576 0.1467 252.3);--sidebar-primary-foreground:oklch(1.0000 0.0000 0.0);--sidebar-accent:oklch(0.9736 0.0131 248.0);--sidebar-accent-foreground:oklch(0.5576 0.1467 252.3);--sidebar-border:oklch(0.9372 0.0028 264.5);--sidebar-ring:oklch(0.7323 0.1374 241.5);--bg:var(--background);--panel:var(--popover);--viewport:oklch(1.0000 0.0000 0.0);--muted-fill:var(--muted);--muted-strong:oklch(0.9677 0.0031 264.5);--line:var(--border);--text:var(--foreground);--subtle:var(--muted-foreground);--primary-color:var(--primary);--primary-hover:color-mix(in oklch,var(--primary) 90%,transparent);--secondary-color:var(--secondary);--primary-fg:var(--primary-foreground);--surface:var(--card);--surface-hover:var(--accent);--surface-selected:var(--accent);--accent-surface:var(--accent);--accent-surface-hover:var(--accent);--accent-text:var(--accent-foreground);--accent-text-strong:oklch(0.4200 0.1900 260);--control-fg:var(--foreground);--soft-text:var(--muted-foreground);--faint-text:oklch(0.5573 0.0188 251.7);--value-text:var(--foreground);--danger:var(--destructive-foreground);--danger-soft:var(--destructive-foreground);--overlay:oklch(0.0000 0.0000 0.0/40%);--shadow-soft:oklch(0.0000 0.0000 0.0/12%);--shadow-strong:oklch(0.0000 0.0000 0.0/22%);--shadow-inset:oklch(1.0000 0.0000 0.0/16%);--slider-fill:oklch(0.5660 0.2250 261.5/55%);--thumb-shadow:oklch(0.0000 0.0000 0.0/18%);--status-bg:oklch(1.0000 0.0000 0.0/92%);--gizmo-bg:oklch(1.0000 0.0000 0.0/88%);--gizmo-border:oklch(0.8717 0.0107 258.3);--gizmo-text:oklch(0.4600 0.0150 251.7);--cube-border:oklch(0.8058 0.0163 258.4);--cube-text:oklch(0.3067 0.0187 248.4);--cube-hover:oklch(0.9474 0.0263 248.1);--cube-top:oklch(0.9203 0.0066 258.3);--cube-bottom:oklch(0.9746 0.0028 286.3);--cube-front:oklch(0.8181 0.0839 238.3);--cube-back:oklch(0.9444 0.0046 258.3);--cube-left:oklch(0.8862 0.1336 126.1);--cube-right:oklch(0.7485 0.1136 9.4);--axis-shadow:oklch(1.0000 0.0000 0.0/90%);--mobile-sidebar-shadow:oklch(0.0000 0.0000 0.0/35%);--sidebar:336px;--topbar:56px}.gridfinity-app *{box-sizing:border-box}.gridfinity-app{width:100%;height:100%;margin:0;overflow:hidden;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px}.gridfinity-app button,.gridfinity-app input,.gridfinity-app select{font:inherit;color:inherit}.gridfinity-app button{border:0;cursor:pointer}.gridfinity-app .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.gridfinity-app.editor-shell{width:100vw;height:100vh;padding-left:var(--sidebar);transition:padding-left .45s cubic-bezier(.2,.8,.2,1)}.gridfinity-app.sidebar-collapsed{padding-left:0}.gridfinity-app.sidebar-collapsed .sidebar{transform:translateX(-100%)}.gridfinity-app .topbar{position:fixed;z-index:30;inset:0 0 auto;display:flex;align-items:center;height:var(--topbar);border-bottom:1px solid var(--line);background:var(--bg)}.gridfinity-app .brand-block,.gridfinity-app .top-actions,.gridfinity-app .topbar nav{display:flex;align-items:center;height:100%;gap:6px}.gridfinity-app .brand-block{width:var(--sidebar);flex:0 0 var(--sidebar);padding:0 9px;border-right:1px solid var(--line);transition:width .45s cubic-bezier(.2,.8,.2,1),flex-basis .45s cubic-bezier(.2,.8,.2,1)}.gridfinity-app .brand{display:grid;place-items:center;width:33px;height:33px;flex:0 0 33px;margin-right:2px;overflow:hidden}.gridfinity-app .brand img{display:block;width:33px;height:33px;object-fit:contain}.gridfinity-app .collection{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--control-fg)}.gridfinity-app .collection svg{width:16px}.gridfinity-app .collection:hover{background:var(--muted-fill)}.gridfinity-app .model-picker{position:relative;min-width:0;flex:1}.gridfinity-app .draft{display:flex;align-items:center;width:100%;height:36px;gap:8px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--soft-text);font-weight:600}.gridfinity-app .draft>span:first-child{min-width:0;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gridfinity-app .draft>svg{width:14px;flex:0 0 14px}.gridfinity-app .draft-shortcut{display:flex;align-items:center;height:22px;padding:0 6px;border:1px solid var(--line);border-radius:4px;color:var(--faint-text);font-size:10px;font-weight:500}.gridfinity-app .topbar nav{min-width:0;flex:1;gap:8px;padding:0 8px}.gridfinity-app .topbar nav a,.gridfinity-app .topbar nav button{height:28px;padding:0 8px;border-radius:4px;background:transparent;color:var(--text);font-size:12px;font-weight:600;text-decoration:none}.gridfinity-app .topbar nav a:hover,.gridfinity-app .topbar nav button:hover{background:var(--surface-hover);color:var(--accent-text)}.gridfinity-app .topbar-sidebar-toggle{display:grid!important;place-items:center;width:36px!important;height:36px!important;padding:0!important;border:1px solid var(--line)!important;border-radius:6px!important;background:var(--bg)!important;color:var(--subtle)!important}.gridfinity-app .topbar-sidebar-toggle svg{width:16px;height:16px}.gridfinity-app .topbar-sidebar-toggle:hover{background:var(--muted-fill)!important;color:var(--text)!important}.gridfinity-app .menubar{display:flex;align-items:center;height:36px;gap:1px;padding:4px;border:1px solid var(--line);border-radius:6px;background:var(--bg);box-shadow:0 1px 2px var(--shadow-soft)}.gridfinity-app .top-menu{position:relative}.gridfinity-app .nav-save{display:none;align-items:center;margin-left:auto;padding-left:8px;border-left:1px solid var(--line)}.gridfinity-app .nav-export{display:none;align-items:center;height:36px!important;gap:6px;margin-left:auto;padding:0 10px!important;border-radius:6px!important;background:var(--primary-color)!important;color:var(--primary-fg)!important;box-shadow:inset 0 1px 0 var(--shadow-inset),0 1px 2px var(--shadow-soft)}.gridfinity-app .nav-export:hover{background:var(--primary-hover)!important}.gridfinity-app .nav-export svg{width:15px;height:15px}.gridfinity-app .nav-save button{display:flex;align-items:center;height:36px!important;gap:5px;padding:0 10px!important;border-radius:6px!important;background:var(--accent-surface)!important;color:var(--accent-text)!important}.gridfinity-app .nav-save button:hover{background:var(--accent-surface-hover)!important;color:var(--accent-text-strong)!important}.gridfinity-app .top-actions{flex:0 0 auto;gap:8px;padding:0 12px 0 8px}.gridfinity-app .top-actions button{display:flex;align-items:center;height:36px;gap:6px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);font-size:12px;font-weight:600;white-space:nowrap}.gridfinity-app .top-actions svg{width:15px}.gridfinity-app .top-actions .save{background:var(--accent-surface);color:var(--accent-text)}.gridfinity-app .top-actions .save:hover{background:var(--accent-surface-hover);color:var(--accent-text-strong)}.gridfinity-app .top-actions .export{border-color:transparent;background:var(--primary-color);color:var(--primary-fg);box-shadow:inset 0 1px 0 var(--shadow-inset),0 1px 2px var(--shadow-soft)}.gridfinity-app .top-actions .export:hover{background:var(--primary-hover)}.gridfinity-app .top-account{display:flex;align-items:center;min-height:32px;margin-left:2px;padding-left:8px;border-left:1px solid var(--line)}.gridfinity-app .top-account>div{padding:0}.gridfinity-app .top-account [data-slot=avatar]{width:32px;height:32px;border:1px solid var(--line)}.gridfinity-app .top-account button{height:32px;padding-inline:8px}.gridfinity-app .add-menu,.gridfinity-app .top-menu-popover,.gridfinity-app .top-submenu{position:absolute;z-index:60;padding:5px;border:1px solid var(--line);border-radius:5px;background:var(--surface);box-shadow:0 10px 28px var(--shadow-strong)}.gridfinity-app .top-menu-popover{top:34px;left:0;display:flex!important;width:192px;height:auto!important;flex-direction:column;align-items:stretch!important}.gridfinity-app .top-menu-popover button,.gridfinity-app .top-menu-popover>a,.gridfinity-app .top-submenu a,.gridfinity-app .top-submenu button{position:relative;display:flex;align-items:center;width:100%;height:32px!important;gap:8px;padding:0 9px;border-radius:3px;background:transparent;color:var(--text);font-size:12px;text-align:left;text-decoration:none}.gridfinity-app .add-menu button:hover,.gridfinity-app .top-menu-popover button:hover,.gridfinity-app .top-menu-popover>a:hover,.gridfinity-app .top-submenu a:hover,.gridfinity-app .top-submenu button:hover{background:var(--surface-hover)}.gridfinity-app .top-menu-popover button:disabled{cursor:default;color:var(--faint-text);opacity:.58}.gridfinity-app .top-menu-popover button>svg{width:14px;height:14px}.gridfinity-app .top-menu-popover button>span:first-child,.gridfinity-app .top-submenu a>span:first-child{display:grid;place-items:center;width:14px;flex:0 0 14px}.gridfinity-app .top-menu-popover button>span:first-child svg,.gridfinity-app .top-submenu a>span:first-child svg{width:13px;height:13px}.gridfinity-app .menu-shortcut{width:auto!important;margin-left:auto!important;color:var(--faint-text);font-size:10px}.gridfinity-app .submenu-trigger>svg{margin-left:auto}.gridfinity-app .top-submenu{z-index:80;top:4px;left:calc(100% - 2px);width:184px}.gridfinity-app .language-submenu{max-height:286px;overflow:auto}.gridfinity-app .sidebar{position:fixed;z-index:20;inset:0 auto 0 0;display:flex;width:var(--sidebar);flex-direction:column;overflow:hidden;border-right:1px solid var(--line);background:var(--bg);transition:transform .45s cubic-bezier(.2,.8,.2,1)}.gridfinity-app .sidebar-spacer{height:var(--topbar);flex:0 0 auto}.gridfinity-app .sidebar-content{display:flex;min-height:0;flex:1;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:6px}.gridfinity-app .sidebar-fill{flex:1}.gridfinity-app .panel{flex:0 0 auto;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--surface);box-shadow:0 1px 2px var(--shadow-soft)}.gridfinity-app .panel-head{display:flex;align-items:center;min-height:34px;margin:-1px -1px 0;padding:0 8px 0 10px;border-bottom:1px solid transparent;border-radius:5px 5px 0 0}.gridfinity-app .panel:has(.panel-body) .panel-head{border-bottom-color:var(--line);background:var(--muted-fill)}.gridfinity-app .panel-head:has(.add-button){min-height:38px;padding-block:3px}.gridfinity-app .panel:has(.add-wrap){overflow:visible}.gridfinity-app .panel:has(.add-wrap) .panel-head{border:0;border-bottom:1px solid var(--line);border-radius:5px 5px 0 0;background:var(--muted-fill)}.gridfinity-app .panel-head .add-wrap{display:flex;flex:0 0 auto;align-items:center}.gridfinity-app .panel-head>button{display:flex;align-items:center;height:33px;flex:1;gap:6px;padding:0;background:transparent;color:var(--text);font-size:12px;font-weight:650;letter-spacing:0;text-align:left}.gridfinity-app .panel-head svg{width:14px;height:14px;color:var(--accent-text)}.gridfinity-app .panel-head>button>svg:first-child{margin-right:0}.gridfinity-app .panel-head svg.open{transform:rotate(90deg)}.gridfinity-app .panel-body{display:flex;flex-direction:column;gap:7px;padding:7px 8px 8px;font-size:12px}.gridfinity-app .field,.gridfinity-app .segmented-row,.gridfinity-app .switch-row{display:flex;align-items:center;min-height:30px;gap:10px}.gridfinity-app .field>span:first-child,.gridfinity-app .segmented-row>span,.gridfinity-app .switch-row>span{display:flex;align-items:center;min-width:0;gap:5px;font-size:12px;font-weight:500;letter-spacing:0}.gridfinity-app .field>span svg{width:14px;height:14px;opacity:.7}.gridfinity-app .field-control,.gridfinity-app .segmented,.gridfinity-app .switch-row>button{margin-left:auto;width:160px;flex:0 0 160px}.gridfinity-app .field-control{display:flex;height:30px;overflow:hidden;border:1px solid var(--line);border-radius:5px;background:var(--muted-fill)}.gridfinity-app .slider{width:auto;flex:1 1 auto;min-width:0;height:28px;margin:0;appearance:none;background:linear-gradient(90deg,var(--slider-fill) var(--pct),var(--muted-fill) var(--pct));outline:0}.gridfinity-app .slider::-webkit-slider-thumb{width:9px;height:28px;appearance:none;border:1px solid var(--primary-color);border-radius:3px;background:var(--primary-fg);box-shadow:0 1px 3px var(--thumb-shadow)}.gridfinity-app .slider::-moz-range-thumb{width:9px;height:28px;border:1px solid var(--primary-color);border-radius:3px;background:var(--primary-fg);box-shadow:0 1px 3px var(--thumb-shadow)}.gridfinity-app .number{position:relative;width:72px;flex:0 0 72px;height:30px}.gridfinity-app .number input{width:100%;height:100%;min-width:0;padding:0 29px 0 6px;border:0;outline:0;background:transparent;text-align:right;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;-moz-appearance:textfield}.gridfinity-app .number input::-webkit-inner-spin-button{display:none}.gridfinity-app .number i{position:absolute;top:0;right:5px;pointer-events:none;display:flex;align-items:center;height:30px;color:var(--faint-text);font-size:12px;font-style:normal}.gridfinity-app .number:has(i) input{padding-right:29px}.gridfinity-app .field.compact .slider{display:none}.gridfinity-app .field.compact .field-control,.gridfinity-app .field.compact .number{width:82px;flex-basis:82px}.gridfinity-app .switch-row>button{position:relative;width:36px;height:20px;flex:0 0 36px;padding:2px;border:1px solid var(--line);border-radius:999px;background:var(--muted-fill)}.gridfinity-app .switch-row>button i{display:block;width:14px;height:14px;border:0;border-radius:999px;background:var(--primary-fg);transition:transform .15s}.gridfinity-app .switch-row>button.checked{background:var(--slider-fill)}.gridfinity-app .switch-row>button.checked i{transform:translateX(16px);border-color:transparent;background:var(--primary-fg)}.gridfinity-app .segmented{display:flex;width:auto;min-width:160px;flex-basis:auto;padding:3px;border:1px solid var(--line);border-radius:5px;background:var(--muted-fill)}.gridfinity-app .segmented button{height:22px;padding:0 8px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--subtle);font-size:12px;font-weight:600}.gridfinity-app .segmented button.active{border-color:transparent;background:var(--muted-strong);color:var(--accent-text);box-shadow:0 1px 2px var(--shadow-soft)}.gridfinity-app .segmented.segmented-compact{width:max-content;min-width:0;flex:0 0 auto}.gridfinity-app .segmented.segmented-compact button{min-width:49px}.gridfinity-app .nested-fields{display:flex;flex-direction:column;gap:7px;padding-top:2px}.gridfinity-app .conditional-fields{position:relative;margin:0 0 2px;padding:7px;border:1px dashed var(--line);border-radius:5px;background:var(--muted-fill)}.gridfinity-app .conditional-fields .field-control{width:160px;flex-basis:160px}.gridfinity-app .measurements-card{flex:0 0 auto;margin:0;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--muted-fill);color:var(--subtle)}.gridfinity-app .measurements-card>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:9px;font-weight:650}.gridfinity-app .measurements-card button{padding:0;background:transparent;color:var(--primary-color)}.gridfinity-app .measurements{padding-top:7px}.gridfinity-app .measurements-card .measurements{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.gridfinity-app .measurements-card .measurements span{display:flex;flex-direction:column;gap:2px;color:var(--subtle);font-size:11px}.gridfinity-app .measurements-card .measurements b{margin-right:0;color:var(--value-text);font-size:10px;font-weight:700}.gridfinity-app .panel-head .add-button,.gridfinity-app .panel-head .file-add{display:flex;align-items:center;height:30px;gap:5px;padding:0 8px;border-radius:5px;background:var(--accent-surface);color:var(--accent-text)}.gridfinity-app .panel-head .add-button:hover,.gridfinity-app .panel-head .file-add:hover{background:var(--accent-surface-hover);color:var(--accent-text-strong)}.gridfinity-app .file-add{position:relative;cursor:pointer}.gridfinity-app .file-add input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.gridfinity-app .add-wrap{position:relative}.gridfinity-app .add-menu{z-index:70;top:34px;right:0;width:116px;padding:4px}.gridfinity-app .add-menu button{display:block;width:100%;height:30px;padding:0 9px;border-radius:3px;background:transparent;text-align:left}.gridfinity-app .element-list{display:flex;flex-direction:column;gap:6px}.gridfinity-app .element-item{border:1px solid var(--line);border-radius:5px;background:var(--bg)}.gridfinity-app .element-item.selected{border-color:var(--primary-color);box-shadow:inset 3px 0 0 var(--primary-color)}.gridfinity-app .element-main{display:flex;align-items:center;justify-content:space-between;width:100%;height:34px;padding:0 9px;background:transparent;font-size:12px;text-align:left}.gridfinity-app .element-main svg{width:13px}.gridfinity-app .cutout-list{gap:7px;padding-bottom:2px}.gridfinity-app .cutout-item{overflow:hidden;background:var(--surface);transition:border-color .15s}.gridfinity-app .cutout-item:hover{border-color:var(--muted-strong)}.gridfinity-app .cutout-item.is-hidden{opacity:.7}.gridfinity-app .cutout-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gridfinity-app .cutout-note,.gridfinity-app .setting-note{display:flex;gap:8px;margin:0;padding:2px 4px 4px;color:var(--subtle);font-size:10px;font-style:italic;line-height:1.45}.gridfinity-app .cutout-note svg,.gridfinity-app .setting-note svg{width:14px;height:14px;flex:0 0 14px}.gridfinity-app .cutout-note{padding:12px}.gridfinity-app .feedback{display:flex;align-items:center;height:28px;gap:8px;margin:4px 8px 8px;padding:0 8px;border-radius:4px;background:transparent;font-size:12px;text-align:left}.gridfinity-app .feedback svg{width:16px}.gridfinity-app .feedback:hover{background:var(--surface-hover)}.gridfinity-app .inspector{display:flex;min-height:0;flex:1;flex-direction:column}.gridfinity-app .inspector-header{display:grid;grid-template-columns:1fr minmax(0,40%) 1fr;align-items:center;gap:8px;padding:16px 8px}.gridfinity-app .inspector-close{display:flex;align-items:center;width:max-content;height:30px;gap:2px;padding:0 7px;border:1px solid var(--line);border-radius:4px;background:transparent}.gridfinity-app .inspector-close svg{width:14px;height:14px}.gridfinity-app .inspector-close kbd{margin-left:1px;padding:2px 4px;border:1px solid var(--line);border-radius:3px;color:var(--subtle);font-family:inherit;font-size:9px}.gridfinity-app .inspector-title{display:flex;min-width:0;flex-direction:column;align-items:center;text-align:center}.gridfinity-app .inspector-title strong{font-size:12px}.gridfinity-app .inspector-title span{overflow:hidden;width:100%;color:var(--subtle);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.gridfinity-app .inspector-actions{display:flex;justify-content:flex-end;gap:4px}.gridfinity-app .inspector-actions button{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--subtle)}.gridfinity-app .inspector-actions button:hover{background:var(--muted-fill);color:var(--text)}.gridfinity-app .inspector-actions button:last-child:hover{color:var(--danger-soft)}.gridfinity-app .inspector-actions svg{width:15px;height:15px}.gridfinity-app .inspector-divider{height:1px;flex:0 0 1px;background:var(--line)}.gridfinity-app .inspector-fields{display:flex;flex-direction:column;gap:8px;padding:12px}.gridfinity-app .inspector-measurements{margin-top:8px;padding-top:10px}.gridfinity-app .inspector-measurements>div{display:flex;gap:8px;color:var(--subtle)}.gridfinity-app .inspector-measurements button{padding:0;background:transparent;color:var(--primary-color)}.gridfinity-app .inspector-measurements p{display:flex;justify-content:space-between;margin:6px 0 0;padding-top:5px;border-top:1px dashed var(--line);color:var(--subtle);font-size:11px}.gridfinity-app .inspector-measurements b{color:var(--value-text);font-weight:400}.gridfinity-app .select-row{display:flex;align-items:center;min-height:28px}.gridfinity-app .select-row select{width:160px;height:28px;margin-left:auto;padding:0 7px;border:1px solid var(--line);border-radius:3px;background:var(--muted-fill)}.gridfinity-app .cutout-inspector>.panel{padding-inline:8px}.gridfinity-app .cutout-inspector>.panel .panel-body{padding-inline:5px}.gridfinity-app .viewport{padding-top:var(--topbar);overflow:hidden;background:var(--viewport)}.gridfinity-app .three-host,.gridfinity-app .viewport{position:relative;width:100%;height:100%}.gridfinity-app .three-host canvas{display:block;width:100%;height:100%}.gridfinity-app .model-status{position:absolute;z-index:4;bottom:12px;left:50%;display:inline-flex;align-items:center;gap:8px;padding:8px 11px;transform:translateX(-50%);border:1px solid var(--line);border-radius:4px;background:var(--status-bg);color:var(--subtle);font-size:12px;pointer-events:none}.gridfinity-app .model-status:before{content:"";width:13px;height:13px;border:2px solid color-mix(in oklch,var(--subtle) 28%,transparent);border-top-color:var(--subtle);border-radius:999px;animation:gridfinity-spin .8s linear infinite}.gridfinity-app .model-status.error{color:var(--danger-soft)}.gridfinity-app .model-status.error:before{display:none}@keyframes gridfinity-spin{to{transform:rotate(1turn)}}.gridfinity-app .fit-button{position:absolute;z-index:10;bottom:12px;left:50%;display:flex;align-items:center;height:40px;gap:8px;padding:0 13px;transform:translateX(-50%);border:1px solid var(--line);border-radius:5px;background:var(--bg);box-shadow:0 2px 7px var(--shadow-strong);font-weight:600}.gridfinity-app .fit-button svg{width:20px}.gridfinity-app.editor-shell:has(.webgl-error) .fit-button{display:none}.gridfinity-app .webgl-error{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:7px;color:var(--subtle)}.gridfinity-app .webgl-error svg{width:38px;height:38px}.gridfinity-app .webgl-error strong{color:var(--text);font-size:14px}.gridfinity-app .view-gizmo{position:absolute;z-index:8;right:16px;bottom:16px;width:112px;height:112px;pointer-events:auto}.gridfinity-app .view-gizmo-head{position:absolute;z-index:4;top:-4px;right:-3px;height:22px}.gridfinity-app .view-gizmo-head>span{display:none}.gridfinity-app .view-gizmo-head button{display:grid;place-items:center;width:24px;height:22px;border:1px solid var(--gizmo-border);border-radius:3px;background:var(--gizmo-bg);color:var(--gizmo-text);box-shadow:0 2px 8px var(--shadow-soft)}.gridfinity-app .view-gizmo-head button:hover{background:var(--muted-strong);color:var(--text)}.gridfinity-app .view-gizmo-head svg{width:14px;height:14px}.gridfinity-app .view-cube{position:absolute;top:13px;left:4px;width:82px;height:82px;perspective:260px;cursor:grab;touch-action:none;user-select:none}.gridfinity-app .view-cube:active{cursor:grabbing}.gridfinity-app .cube-3d{position:relative;width:62px;height:62px;margin:10px auto;transform:rotateX(-22deg) rotateY(35deg);transform-style:preserve-3d;transition:transform .25s ease}.gridfinity-app .view-face{position:absolute;top:0;left:0;display:grid;place-items:center;width:62px;height:62px;border:1px solid var(--cube-border);border-radius:2px;color:var(--cube-text);font-size:9px;font-weight:700;letter-spacing:.02em;backface-visibility:visible;box-shadow:inset 0 0 0 1px var(--shadow-inset),0 2px 5px var(--shadow-soft);transform-origin:center;transition:background .15s,border-color .15s,color .15s,filter .15s;user-select:none}.gridfinity-app .view-face:hover{z-index:5;border-color:var(--secondary-color);background:var(--cube-hover);color:var(--primary-fg);filter:brightness(1.18)}.gridfinity-app .view-face:active{transform:var(--cube-transform) scale(.96)}.gridfinity-app .view-top{--cube-transform:rotateX(-90deg) translateZ(31px);transform:var(--cube-transform);background:var(--cube-top)}.gridfinity-app .view-bottom{--cube-transform:rotateX(90deg) translateZ(31px);transform:var(--cube-transform);background:var(--cube-bottom)}.gridfinity-app .view-front{--cube-transform:translateZ(31px);transform:var(--cube-transform);border-color:var(--secondary-color);background:var(--cube-front)}.gridfinity-app .view-back{--cube-transform:rotateY(180deg) translateZ(31px);transform:var(--cube-transform);background:var(--cube-back)}.gridfinity-app .view-left{--cube-transform:rotateY(-90deg) translateZ(31px);transform:var(--cube-transform);background:var(--cube-left)}.gridfinity-app .view-right{--cube-transform:rotateY(90deg) translateZ(31px);transform:var(--cube-transform);background:var(--cube-right)}.gridfinity-app .axis-indicator{position:absolute;right:0;bottom:0;width:43px;height:39px;font-size:10px;font-weight:800}.gridfinity-app .axis-indicator:after,.gridfinity-app .axis-indicator:before{position:absolute;left:20px;top:20px;content:"";transform-origin:left center}.gridfinity-app .axis-indicator:before{width:20px;border-top:1px solid oklch(.6749 .1747 23);transform:rotate(-8deg)}.gridfinity-app .axis-indicator:after{width:18px;border-top:1px solid oklch(.7899 .1508 152.9);transform:rotate(145deg)}.gridfinity-app .axis-indicator span{position:absolute;z-index:1;text-shadow:0 1px 3px var(--axis-shadow)}.gridfinity-app .axis-x{right:0;top:13px;color:oklch(.6749 .1747 23)}.gridfinity-app .axis-y{left:0;top:25px;color:oklch(.7899 .1508 152.9)}.gridfinity-app .axis-z{left:18px;top:0;color:oklch(.7271 .1438 255.1)}.gridfinity-app .dialog-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:20px;background:var(--overlay)}.gridfinity-app .export-dialog{position:relative;width:min(426px,100%);border:1px solid var(--line);border-radius:7px;background:var(--panel);box-shadow:0 24px 70px var(--shadow-strong)}.gridfinity-app .dialog-head{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 20px 13px}.gridfinity-app .dialog-head h2{margin:0 0 4px;font-size:18px}.gridfinity-app .dialog-head span{color:var(--subtle);font-size:12px}.gridfinity-app .dialog-field{display:flex;flex-direction:column;gap:7px;padding:12px 20px 0}.gridfinity-app .dialog-field>span{font-weight:650}.gridfinity-app .filename-control{display:flex;height:36px;border:1px solid var(--line);border-radius:4px;background:var(--panel)}.gridfinity-app .filename-control input{min-width:0;flex:1;padding:0 10px;border:0;outline:0;background:transparent}.gridfinity-app .filename-control i{display:flex;align-items:center;padding-right:10px;color:var(--subtle);font-style:normal}.gridfinity-app .format-options{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.gridfinity-app .format-options button{display:flex;align-items:center;justify-content:center;min-width:0;height:42px;padding:0;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--subtle);font-weight:650}.gridfinity-app .format-options button.active{border-color:var(--primary-color);background:var(--surface-selected);color:var(--accent-text)}.gridfinity-app .format-options button:disabled{cursor:not-allowed;opacity:.45}.gridfinity-app .export-error{margin:12px 20px 0;color:var(--danger-soft)}.gridfinity-app .dialog-actions{display:flex;justify-content:space-between;gap:8px;padding:18px 20px 20px}.gridfinity-app .dialog-actions button{display:flex;align-items:center;height:36px;gap:6px;padding:0 13px;border:1px solid var(--line);border-radius:4px;background:var(--panel)}.gridfinity-app .dialog-actions button.primary{margin-left:auto;border-color:var(--primary-color);background:var(--primary-color);color:var(--primary-fg)}.gridfinity-app .dialog-actions button:disabled{cursor:wait;opacity:.6}.gridfinity-app .dialog-actions svg{width:15px}.gridfinity-app .dialog-actions .feedback-link{display:flex;align-items:center;border:0;background:transparent;color:var(--subtle);cursor:pointer;font-size:11px}.gridfinity-app .dialog-close{position:absolute;top:13px;right:13px;width:28px;height:28px;border-radius:4px;background:transparent;color:var(--subtle);font-size:20px}.gridfinity-app .dialog-close:hover{background:var(--muted-fill)}html.dark .gridfinity-app,html[data-theme=dark] .gridfinity-app{color-scheme:dark;--background:oklch(0.2227 0.0186 248.7);--foreground:oklch(0.9425 0.0007 247.8);--muted:oklch(0.2723 0.0220 255.3);--muted-foreground:oklch(0.6792 0.0077 247.9);--popover:oklch(0.2227 0.0186 248.7);--popover-foreground:oklch(0.9425 0.0007 247.8);--card:oklch(0.2336 0.0186 248.6);--card-foreground:oklch(0.9425 0.0007 247.8);--border:oklch(0.3042 0.0278 250.4);--input:oklch(0.3132 0.0217 255.2);--ring:oklch(0.7000 0.1650 256);--primary:oklch(0.7000 0.1650 256);--primary-foreground:oklch(0.9850 0 0);--secondary:oklch(0.2800 0.0180 262);--secondary-foreground:oklch(0.9550 0.0080 256);--accent:oklch(0.2900 0.0220 260);--accent-foreground:oklch(0.8100 0.0950 250);--destructive:oklch(0.4783 0.1161 21.5);--destructive-foreground:oklch(0.9826 0.0071 37.7);--sidebar-background:oklch(0.2227 0.0186 248.7);--sidebar-foreground:oklch(0.9425 0.0007 247.8);--sidebar-primary:oklch(0.5576 0.1467 252.3);--sidebar-primary-foreground:oklch(1.0000 0.0000 0.0);--sidebar-accent:oklch(0.3075 0.0432 246.2);--sidebar-accent-foreground:oklch(0.7323 0.1374 241.5);--sidebar-border:oklch(0.3042 0.0278 250.4);--sidebar-ring:oklch(0.6583 0.1410 235.7);--bg:var(--background);--panel:var(--popover);--viewport:oklch(0.2173 0.0179 248.7);--muted-fill:var(--muted);--muted-strong:oklch(0.3325 0.0235 255.2);--line:var(--border);--text:var(--foreground);--subtle:var(--muted-foreground);--primary-color:var(--primary);--primary-hover:color-mix(in oklch,var(--primary) 90%,transparent);--secondary-color:var(--secondary);--primary-fg:var(--primary-foreground);--surface:var(--card);--surface-hover:color-mix(in oklch,var(--accent) 50%,transparent);--surface-selected:var(--accent);--accent-surface:var(--accent);--accent-surface-hover:color-mix(in oklch,var(--accent) 50%,transparent);--accent-text:var(--accent-foreground);--accent-text-strong:oklch(1.0000 0.0000 0.0);--control-fg:var(--foreground);--soft-text:oklch(0.7555 0.0058 247.9);--faint-text:var(--muted-foreground);--value-text:oklch(0.8447 0.0018 247.8);--danger:var(--destructive);--danger-soft:var(--destructive-foreground);--overlay:oklch(0.0000 0.0000 0.0/60%);--shadow-soft:oklch(0.0000 0.0000 0.0/25%);--shadow-strong:oklch(0.0000 0.0000 0.0/60%);--shadow-inset:oklch(1.0000 0.0000 0.0/16%);--slider-fill:oklch(0.7000 0.1650 256/55%);--thumb-shadow:oklch(0.0000 0.0000 0.0/70%);--status-bg:oklch(0.1727 0.0134 264.1/88%);--gizmo-bg:oklch(0.1974 0.0169 252.6/76%);--gizmo-border:oklch(0.3527 0.0338 250.5);--gizmo-text:oklch(0.7636 0.0056 247.9);--cube-border:oklch(0.5541 0.0349 250.2);--cube-text:oklch(0.9154 0.0010 247.8);--cube-hover:oklch(0.4990 0.0680 239.3);--cube-top:oklch(0.4379 0.0336 250.3);--cube-bottom:oklch(0.2731 0.0217 253.7);--cube-front:oklch(0.6538 0.1218 241.4);--cube-back:oklch(0.3046 0.0256 250.4);--cube-left:oklch(0.7934 0.1689 127.1);--cube-right:oklch(0.6178 0.1472 12.2);--axis-shadow:oklch(0.0000 0.0000 0.0/70%);--mobile-sidebar-shadow:oklch(0.0000 0.0000 0.0/50%)}@media (min-width:1051px){.gridfinity-app .nav-export{display:none!important}}@media (max-width:1050px){.gridfinity-app{--sidebar:100vw;--topbar:108px;overflow:hidden}.gridfinity-app.editor-shell,.gridfinity-app.editor-shell.sidebar-collapsed{display:flex;height:100vh;padding-top:var(--topbar);padding-left:0;flex-direction:column;overflow:auto;-webkit-overflow-scrolling:touch}.gridfinity-app .topbar{height:var(--topbar);flex-wrap:wrap;align-content:flex-start}.gridfinity-app .brand-block{width:auto;min-width:0;height:56px;flex:1 1 0;overflow:hidden;padding-inline:8px;border-right:0}.gridfinity-app .brand-block .collection{display:grid}.gridfinity-app .model-picker{min-width:0;flex:1}.gridfinity-app .draft-shortcut{display:none}.gridfinity-app .top-actions{display:flex;order:2;height:56px;gap:0;padding:0 10px 0 0}.gridfinity-app .top-actions .export,.gridfinity-app .top-actions .save{display:none}.gridfinity-app .top-account{margin:0;padding:0;border-left:0}.gridfinity-app .topbar nav{order:3;height:52px;flex:0 0 100%;gap:8px;padding:8px;border-top:1px solid var(--line)}.gridfinity-app .topbar-sidebar-toggle{display:none!important}.gridfinity-app .menubar{max-width:100%}.gridfinity-app .nav-save{display:flex;margin-left:auto;padding-left:0;border-left:0}.gridfinity-app .nav-export{display:flex!important;margin-left:0}.gridfinity-app .viewport{order:1;min-height:clamp(360px,48vh,560px);height:auto;flex:0 0 clamp(360px,48vh,560px);padding-top:0}.gridfinity-app .sidebar,.gridfinity-app.editor-shell:not(.sidebar-collapsed) .sidebar,.gridfinity-app.sidebar-collapsed .sidebar{position:relative;order:2;inset:auto;width:100%;min-height:0;flex:0 0 auto;overflow:visible;transform:none;border-top:1px solid var(--line);border-right:0;box-shadow:none}.gridfinity-app .sidebar-fill,.gridfinity-app .sidebar-spacer{display:none}.gridfinity-app .sidebar-content{overflow:visible;gap:6px;padding:8px 12px 14px}.gridfinity-app .conditional-fields .field-control,.gridfinity-app .field-control{width:min(38vw,160px);flex-basis:min(38vw,160px)}.gridfinity-app .segmented,.gridfinity-app .select-row select,.gridfinity-app .switch-row>button{margin-left:auto}.gridfinity-app .measurements-card{margin-inline:0}.gridfinity-app .feedback{margin:8px 12px 12px}.gridfinity-app .view-gizmo{right:10px;bottom:10px;transform:scale(.9);transform-origin:bottom right}}@media (max-width:600px){.gridfinity-app,.gridfinity-app .topbar{width:100vw;max-width:100vw;overflow-x:hidden}.gridfinity-app .topbar nav{width:100vw;max-width:100vw;flex-basis:100vw;padding-right:8px;justify-content:flex-start;overflow-x:visible}.gridfinity-app .nav-export{position:static;width:auto;flex:0 0 auto}.gridfinity-app .menubar{flex:0 1 auto}.gridfinity-app .field,.gridfinity-app .segmented-row,.gridfinity-app .switch-row{gap:8px}.gridfinity-app .conditional-fields .field-control,.gridfinity-app .field-control{width:160px;flex-basis:160px}.gridfinity-app .segmented{min-width:160px}.gridfinity-app .measurements-card .measurements{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:380px){.gridfinity-app .brand{width:31px;height:31px;flex-basis:31px}.gridfinity-app .brand img{width:31px;height:31px}.gridfinity-app .collection{width:32px;height:32px;flex-basis:32px}.gridfinity-app .topbar nav a,.gridfinity-app .topbar nav button{padding-inline:6px}.gridfinity-app .nav-export{gap:4px;padding-inline:8px!important}.gridfinity-app .conditional-fields .field-control,.gridfinity-app .field-control,.gridfinity-app .segmented{width:148px;min-width:148px;flex-basis:148px}.gridfinity-app .number{width:66px;flex-basis:66px}}