:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI Variable", "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--bg:#e7eaee;--surface:#ffffffc7;--surface-solid:#fff;--elev:#f1f3f6;--elev-hover:#e8ebf0;--line:#0f172a14;--line-strong:#0f172a24;--ink:#0f172a;--ink-2:#334155;--muted:#64748b;--accent:#2766d6;--accent-2:#3a86f0;--accent-soft:#2766d61c;--accent-ink:#fff;--primary-grad:linear-gradient(180deg, #3a86f0, #2766d6);--field-bg:#f8f9fb;--danger:#dc2626;--warn:#b45309;--ok:#059669;--hl-cmd:#2766d6;--hl-macro:#7c3aed;--hl-param:#b45309;--hl-var:#047857;--shadow:0 1px 2px #0f172a0f, 0 8px 24px #0f172a1a;--shadow-lg:0 2px 6px #0f172a14, 0 20px 48px #0f172a2e;--tip-bg:#1e293b;--tip-ink:#f8fafc;--tip-line:transparent;--tip-shadow:0 4px 14px #0f172a38;--blur:saturate(160%) blur(18px);--r:14px;--r-sm:9px;--check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");--chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#0d0f12;--surface:#181b20bd;--surface-solid:#181b20;--elev:#22262d;--elev-hover:#2a2f37;--line:#ffffff12;--line-strong:#ffffff21;--ink:#e7eaee;--ink-2:#c3c9d2;--muted:#8a93a1;--accent:#56a9ff;--accent-2:#3778e3;--accent-soft:#56a9ff24;--accent-ink:#fff;--primary-grad:linear-gradient(180deg, #4b9cff, #2f6fe0);--field-bg:#1d2026;--danger:#f87171;--warn:#fbbf24;--ok:#34d399;--hl-cmd:#6cb4ff;--hl-macro:#c4a1ff;--hl-param:#f0b45a;--hl-var:#5fd3a4;--shadow:0 1px 2px #0000004d, 0 10px 30px #00000059;--shadow-lg:0 2px 8px #00000059, 0 24px 60px #00000080;--tip-bg:#2c323c;--tip-ink:#eef1f5;--tip-line:#ffffff1f;--tip-shadow:0 6px 18px #00000080}}:root[data-theme=dark]{--bg:#0d0f12;--surface:#181b20bd;--surface-solid:#181b20;--elev:#22262d;--elev-hover:#2a2f37;--line:#ffffff12;--line-strong:#ffffff21;--ink:#e7eaee;--ink-2:#c3c9d2;--muted:#8a93a1;--accent:#56a9ff;--accent-2:#3778e3;--accent-soft:#56a9ff24;--accent-ink:#fff;--primary-grad:linear-gradient(180deg, #4b9cff, #2f6fe0);--field-bg:#1d2026;--danger:#f87171;--warn:#fbbf24;--ok:#34d399;--hl-cmd:#6cb4ff;--hl-macro:#c4a1ff;--hl-param:#f0b45a;--hl-var:#5fd3a4;--shadow:0 1px 2px #0000004d, 0 10px 30px #00000059;--shadow-lg:0 2px 8px #00000059, 0 24px 60px #00000080;--tip-bg:#2c323c;--tip-ink:#eef1f5;--tip-line:#ffffff1f;--tip-shadow:0 6px 18px #00000080}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font:13.5px/1.45 var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h2,h3{margin:0}.muted{color:var(--muted)}.small{font-size:12px}.error{color:var(--danger)}.warning{color:var(--warn)}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}::selection{background:var(--accent-soft)}:where(button,input,select,textarea,summary):focus-visible{outline:2px solid var(--accent);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}.btn,.modal>button,.preview-legend button:not(.select-trigger){border-radius:var(--r-sm);border:1px solid var(--line);background:var(--elev);height:32px;color:var(--ink);white-space:nowrap;align-items:center;gap:7px;padding:0 12px;font-weight:500;transition:background .15s,border-color .15s,transform 50ms,opacity .15s;display:inline-flex}.btn:hover:not(:disabled),.modal>button:hover{background:var(--elev-hover);border-color:var(--line-strong)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45}.btn.primary,.btn.primary:hover:not(:disabled){background:var(--primary-grad);color:var(--accent-ink);box-shadow:0 1px 0 #ffffff40 inset, 0 4px 14px color-mix(in srgb, var(--accent) 35%, transparent);border-color:#0000;font-weight:600}.btn.primary:hover:not(:disabled){filter:brightness(1.06)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--elev)}.btn.small{height:26px;padding:0 9px;font-size:12px}.icon-btn{border-radius:var(--r-sm);width:32px;height:32px;color:var(--ink-2);background:0 0;border:1px solid #0000;flex:none;place-items:center;padding:0;transition:background .15s,color .15s;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--elev);color:var(--ink)}.icon-btn:disabled{opacity:.35}.icon-btn.small{border-radius:6px;width:24px;height:24px}.icon-btn.danger:hover:not(:disabled){color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.icon-btn.accent{color:var(--accent)}.link-btn{color:var(--muted);background:0 0;border:none;align-items:center;gap:6px;padding:4px 2px;font-size:12px;display:inline-flex}.link-btn:hover{color:var(--accent)}input,select,textarea,.select-trigger{font:inherit;color:var(--ink)}.select-trigger,input[type=text],input[type=number],input[type=search]{border-radius:var(--r-sm);border:1px solid var(--line);background-color:var(--elev);min-width:0;height:32px;padding:0 10px;transition:border-color .15s,background-color .15s,box-shadow .15s}.select-trigger:hover,input[type=text]:hover,input[type=number]:hover,input[type=search]:hover{border-color:var(--line-strong)}.select-trigger:hover:not(:disabled):not(:focus){background-color:var(--elev-hover)}.select-trigger:focus-visible,.select-trigger[aria-expanded=true],input[type=text]:focus,input[type=number]:focus,input[type=search]:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background-color:var(--surface-solid);outline:none}.select-trigger:disabled,input:disabled{opacity:.55}.select{display:contents}.select-trigger{text-align:left;cursor:default;background-image:var(--chevron);background-position:right 10px center;background-repeat:no-repeat;align-items:center;gap:8px;width:100%;padding-right:30px;display:inline-flex}.select-value{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.select-pop{border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface-solid);color:var(--ink);box-shadow:var(--shadow-lg);z-index:1000;flex-direction:column;margin:0;padding:0;font-size:13px;display:flex;position:fixed;inset:auto;overflow:hidden}.tooltip{border:1px solid var(--tip-line);background:var(--tip-bg);max-width:min(340px,100vw - 12px);color:var(--tip-ink);font:400 12px/1.45 var(--font);white-space:pre-line;overflow-wrap:anywhere;box-shadow:var(--tip-shadow);pointer-events:none;border-radius:8px;margin:0;padding:6px 10px;animation:.1s fade;position:fixed;inset:auto}.select-pop{transform-origin:top;animation:.14s cubic-bezier(.2,.8,.3,1) pop-in}.select-pop[data-up]{transform-origin:bottom}.select-pop[data-sheet]{animation:.22s cubic-bezier(.2,.8,.3,1) sheet-in}@keyframes pop-in{0%{opacity:0;transform:scale(.97)translateY(-3px)}}@keyframes sheet-in{0%{transform:translateY(100%)}}.select-pop[data-sheet]{width:auto;min-width:0;max-width:none;max-height:70vh;padding-bottom:env(safe-area-inset-bottom);border-radius:14px 14px 0 0;inset:auto 0 0}.select-search{border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:6px;padding:6px 8px 6px 10px;display:flex}.select-search input[type=search]{height:28px;box-shadow:none;background:0 0;border:none;flex:1;padding:0}.select-search input[type=search]:focus{box-shadow:none;background:0 0}.select-list{overscroll-behavior:contain;padding:4px;overflow-y:auto}.select-group{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:8px 8px 3px;font-size:11px;font-weight:600}.select-opt{cursor:default;border-radius:6px;align-items:center;gap:6px;min-height:30px;padding:4px 10px 4px 4px;display:flex}.select-pop[data-sheet] .select-opt{min-height:40px}.select-opt[data-active]{background:var(--elev-hover)}.select-opt[aria-selected=true]{color:var(--accent);font-weight:550}.select-opt[aria-disabled]{opacity:.5}.select-opt.action{color:var(--ink-2)}.select-check{flex:none;justify-content:center;width:16px;display:inline-flex}.select-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.select-swatch{width:12px;height:12px;box-shadow:inset 0 0 0 1px var(--line-strong);border-radius:3px;flex:none}.select-sep{background:var(--line);height:1px;margin:4px 6px}.select-empty{color:var(--muted);padding:10px 12px}input[type=number]{appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}textarea{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--elev);padding:8px 10px}input[type=color]{border:1px solid var(--line);background:var(--elev);border-radius:7px;width:40px;height:28px;padding:2px}input[type=checkbox].switch{appearance:none;background:var(--line-strong);cursor:pointer;border-radius:999px;flex:none;width:34px;height:20px;margin:0;transition:background .2s;position:relative}input[type=checkbox].switch:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s cubic-bezier(.3,.7,.4,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000004d}input[type=checkbox].switch:checked{background:var(--accent)}input[type=checkbox].switch:checked:after{transform:translate(14px)}input[type=checkbox].switch:disabled{opacity:.45;cursor:default}:where(input[type=checkbox]:not(.switch)){appearance:none;box-sizing:border-box;border:1.5px solid var(--line-strong);background:var(--elev);cursor:pointer;border-radius:4px;flex:none;width:16px;height:16px;margin:0;transition:background-color .15s,border-color .15s,box-shadow .15s;position:relative}:where(input[type=checkbox]:not(.switch)):hover:not(:disabled){border-color:var(--accent)}:where(input[type=checkbox]:not(.switch)):checked{background:var(--accent);border-color:var(--accent)}:where(input[type=checkbox]:not(.switch)):checked:after{content:"";background:var(--accent-ink);-webkit-mask:var(--check) center / 12px no-repeat;-webkit-mask:var(--check) center / 12px no-repeat;mask:var(--check) center / 12px no-repeat;position:absolute;inset:0}:where(input[type=checkbox]:not(.switch)):focus-visible{box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--accent);outline:none}:where(input[type=checkbox]:not(.switch)):disabled{cursor:default}.switch-label{cursor:pointer;color:var(--ink-2);align-items:center;gap:8px;display:inline-flex}.spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);vertical-align:-1px;border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin;display:inline-block}.spinner.large{border-width:3px;width:40px;height:40px}@keyframes spin{to{transform:rotate(360deg)}}.app{grid-template-rows:56px 1fr;grid-template-columns:minmax(0,1fr);height:100%;display:grid}.topbar{background:var(--surface-solid);border-bottom:1px solid var(--line);z-index:10;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:0 14px;display:grid}.brand{letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:9px;font-size:15px;font-weight:650;display:flex}.logo{width:30px;height:auto;display:block}.actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.segmented{background:var(--elev);border:1px solid var(--line);border-radius:11px;gap:2px;padding:3px;display:inline-flex;position:relative}.segmented>button{z-index:1;position:relative}.seg-thumb{pointer-events:none;opacity:0;background:var(--surface-solid);box-shadow:0 1px 2px #0000001f, 0 0 0 1px var(--line);border-radius:8px;transition:transform .28s cubic-bezier(.3,.8,.3,1),width .28s cubic-bezier(.3,.8,.3,1),height .28s,opacity .15s;position:absolute;top:0;left:0}.seg-thumb.instant{transition:none}.segmented button{height:30px;color:var(--muted);background:0 0;border:none;border-radius:8px;align-items:center;gap:7px;padding:0 14px;font-weight:550;transition:background .15s,color .15s,box-shadow .15s;display:inline-flex}.segmented button:hover:not(:disabled),.segmented button[aria-selected=true]{color:var(--ink)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .seg-thumb{background:var(--elev-hover)}}:root[data-theme=dark] .seg-thumb{background:var(--elev-hover)}.segmented button:disabled{opacity:.4}.slice{justify-content:center;min-width:132px}.slice-progress{border-radius:var(--r-sm);background:var(--elev);border:1px solid var(--line);flex:none;align-items:center;gap:8px;width:240px;height:32px;padding:0 4px 0 12px;display:flex;position:relative;overflow:hidden}.slice-progress .fill{background:linear-gradient(90deg, var(--accent-soft), color-mix(in srgb, var(--accent) 30%, transparent));transition:width .3s;position:absolute;inset:0 auto 0 0}.slice-progress .stage-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-2);flex:1;font-size:12.5px;position:relative;overflow:hidden}.slice-progress .pct{text-align:right;font-variant-numeric:tabular-nums;min-width:4ch;color:var(--accent);font-size:12.5px;font-weight:600;position:relative}.slice-progress .cancel{width:24px;height:24px;color:var(--muted);background:0 0;border:none;border-radius:6px;place-items:center;display:grid;position:relative}.slice-progress .cancel:hover{background:var(--elev-hover);color:var(--danger)}.stage{min-height:0;position:relative;overflow:hidden}.viewport{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.view-home{z-index:2;color:var(--ink-2);opacity:.55;transition:opacity .15s;position:absolute}.view-home[hidden]{display:none}.view-home:hover:not(:disabled),.view-home:focus-visible{opacity:1;background:var(--surface)}.card{background:var(--surface);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:12px}.card-head{justify-content:space-between;align-items:center;gap:8px;min-height:28px;margin-bottom:8px;display:flex}.card-head h2{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);align-items:center;gap:8px;font-size:11.5px;font-weight:650;display:flex}.card-tools{gap:2px;margin-right:-4px;display:flex}.count{letter-spacing:0;color:var(--ink-2);background:var(--elev);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600}.dock{z-index:3;pointer-events:none;scrollbar-width:none;flex-direction:column;gap:10px;width:344px;padding:12px 40px 40px 12px;display:flex;position:absolute;top:0;bottom:0;left:0;overflow-y:auto}.dock>*{pointer-events:auto;flex:none}.preset-field{margin-bottom:9px}.preset-field:last-of-type{margin-bottom:2px}.preset-field>.caption{color:var(--muted);font-size:12px;font-weight:500;display:block}.presets .select-trigger{height:34px}.select-row{gap:6px;margin-top:4px;display:flex}.select-row .select-trigger{flex:1;min-width:0}.select-row .btn.edit{width:34px;height:34px;color:var(--ink-2);flex:none;justify-content:center;padding:0}.select-row .variant-select{flex:none;display:flex}.select-row .variant-select .select-trigger{background-position:right 7px center;flex:none;gap:0;width:auto;padding:0 22px 0 9px}.bed-type-field{margin-top:6px}.bed-type-field>.caption{color:var(--muted);font-size:12px;font-weight:500;display:block}.select-row .edit-spacer{flex:none;width:34px}.icon-btn.edit:hover:not(:disabled){color:var(--accent)}.objects{gap:2px;max-height:280px;margin:0 0 6px;padding:0;list-style:none;display:grid;overflow-y:auto}.objects li{border-radius:var(--r-sm);cursor:pointer;grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:center;column-gap:9px;padding:6px 6px 6px 9px;transition:background .12s;display:grid}.objects li:hover{background:var(--elev)}.objects li.selected{background:var(--accent-soft)}.objects li .obj-icon{color:var(--muted);grid-row:1/span 2}.objects li.selected .obj-icon{color:var(--accent)}.objects .name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.objects li:not(.with-meta) .name{grid-row:1/span 2}.objects .meta{color:var(--muted);grid-column:2;font-size:11.5px}.objects .icon-btn{opacity:0;grid-area:1/3/span 2}.objects li:hover .icon-btn,.objects li.selected .icon-btn,.objects .icon-btn:focus-visible{opacity:1}.dropzone{border:1.5px dashed var(--line-strong);border-radius:var(--r-sm);width:100%;color:var(--muted);background:0 0;flex-direction:column;align-items:center;gap:6px;margin-bottom:6px;padding:18px 10px;font-size:12.5px;transition:border-color .15s,color .15s,background .15s;display:flex}.dropzone:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.settings-actions .sep{background:var(--line-strong);width:1px;height:20px;margin:0 4px}.object-panel{z-index:4;width:400px;animation:.16s ease-out fade;position:absolute;bottom:16px;right:16px}.object-panel .card-head{margin-bottom:6px}.card-head h2.op-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink);text-transform:none;letter-spacing:0;font-size:13.5px;font-weight:600;display:block;overflow:hidden}.op-coords .select-trigger{width:100%;height:28px}.op-grid{grid-template-columns:minmax(84px,1fr) repeat(3,minmax(0,76px)) 20px 22px;align-items:center;gap:4px;display:grid}.op-label{color:var(--ink-2);-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere;align-items:center;gap:2px;min-width:0;font-size:12.5px;line-height:1.25;display:flex}.op-label .icon-btn{flex:none}.op-axis{justify-content:center;align-items:center;gap:2px;font-size:11.5px;font-weight:650;display:flex}.op-axis .icon-btn,.op-reset{width:22px;height:22px;color:var(--muted)}.op-axis .icon-btn:hover,.op-reset:hover{color:var(--ink)}.op-axis.a0{color:#e5484d}.op-axis.a1{color:#30a46c}.op-axis.a2{color:#3e7bfa}.op-unit{color:var(--muted);font-size:12px}.op-grid input.num{text-align:right;font-variant-numeric:tabular-nums;width:100%;height:28px;padding:0 6px}.op-grid input.num:disabled{opacity:.55}.op-lock{color:var(--muted);margin-left:auto}.op-lock.on{color:var(--accent)}.op-info{border-top:1px solid var(--line);grid-template-columns:auto 1fr;gap:2px 8px;margin:10px 0 0;padding-top:8px;font-size:12px;display:grid}.op-info dt{color:var(--muted)}.op-info dd{font-variant-numeric:tabular-nums;margin:0}@media (max-width:1100px){.actions .btn-label{display:none}}.topbar>.segmented button{white-space:nowrap}.topbar[data-compact~=labels] .actions .btn-label,.topbar[data-compact~=brand] .brand-name{display:none}.topbar[data-compact~=tight]>.segmented button{padding:0 10px}.topbar[data-compact~=tight]>.segmented button svg{display:none}.topbar[data-compact~=icons]>.segmented button svg{display:block}.topbar[data-compact~=icons] .tab-label,.topbar[data-compact~=slice] .slice-label{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.topbar[data-compact~=slice] .slice{min-width:0}.topbar[data-compact~=slice] .slice-progress{width:110px;min-width:0}.topbar[data-compact~=slice] .slice-progress .stage-text{visibility:hidden}.loading-overlay{pointer-events:none;z-index:4;place-items:center;display:grid;position:absolute;inset:0}.loading-overlay .spinner{box-shadow:0 0 0 10px var(--surface);background:var(--surface)}.drop-overlay{z-index:20;border:2px dashed var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:none;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:16px;font-weight:550;display:flex;position:absolute;inset:12px}.plate-toolbar{z-index:3;scrollbar-width:none;background:var(--surface);max-width:calc(100% - 332px);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:2px;margin-left:max(0px,563px - 50%);padding:4px;display:flex;position:absolute;top:12px;left:50%;overflow-x:auto;transform:translate(-50%)}.plate-toolbar .icon-btn{flex:none}.plate-toolbar .sep{background:var(--line);flex:none;width:1px;height:20px;margin:0 4px}.icon-btn.on,.icon-btn.on:hover:not(:disabled){color:var(--accent);background:var(--accent-soft)}.menu-backdrop{z-index:70;position:fixed;inset:0}.menu{background:var(--surface-solid);border:1px solid var(--line);min-width:220px;box-shadow:var(--shadow-lg);border-radius:10px;padding:4px;animation:.1s fade;display:grid;position:fixed}.menu button{height:30px;color:var(--ink);font:inherit;text-align:left;cursor:default;background:0 0;border:0;border-radius:6px;grid-template-columns:16px 1fr auto;align-items:center;gap:10px;padding:0 10px;display:grid}.menu button:hover:not(:disabled),.menu button:focus-visible{background:var(--elev-hover);outline:none}.menu button:disabled{color:var(--muted);opacity:.6}.menu button svg{color:var(--ink-2)}.menu kbd{font:inherit;color:var(--muted);font-size:12px}.menu hr{border:0;border-top:1px solid var(--line);margin:4px 6px}.notices{z-index:60;gap:8px;width:min(380px,100% - 32px);display:grid;position:absolute;bottom:16px;right:16px}@media (min-width:1140px){.stage:has(>.object-panel)>.notices{right:428px}}@media (min-width:761px) and (max-width:1139px){.stage:has(>.object-panel)>.notices{top:64px;bottom:auto}}.notice{background:var(--surface-solid);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px;padding:11px 10px 11px 12px;animation:.22s cubic-bezier(.3,.7,.4,1) toast;display:grid}.notice-icon{margin-top:1px}.notice.timed{position:relative;overflow:hidden}.notice-timer{background:var(--ok);opacity:.7;transform-origin:0;height:3px;animation:5s linear forwards notice-timer;position:absolute;bottom:0;left:0;right:0}.notice.timed:hover .notice-timer{animation-play-state:paused}@keyframes notice-timer{to{transform:scaleX(0)}}.notice.error .notice-icon{color:var(--danger)}.notice.warning .notice-icon{color:var(--warn)}.notice.info .notice-icon{color:var(--ok)}.notice-body{min-width:0;color:var(--ink-2);overflow-wrap:anywhere}.notice-body strong{color:var(--ink);margin-bottom:1px;display:block}.notice details{color:var(--muted);margin-top:4px;font-size:12px}.notice pre{white-space:pre-wrap;max-height:160px;font:11px/1.4 var(--mono);overflow:auto}@keyframes toast{0%{opacity:0;transform:translateY(8px)scale(.98)}}.notice.leaving{pointer-events:none;animation:.18s ease-in forwards toast-out}@keyframes toast-out{to{opacity:0;transform:translate(24px)}}.preview-legend{z-index:3;width:236px;max-height:calc(100% - 24px);position:absolute;top:12px;right:98px;overflow-y:auto}.preview-legend h3{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:12px 0 6px;font-size:11.5px;font-weight:650}.stats{grid-template-columns:auto 1fr;gap:3px 12px;margin:0;display:grid}.stats dt{color:var(--muted)}.stats dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:600}.legend{gap:1px;margin:0 -4px;padding:0;list-style:none;display:grid}.legend label{cursor:pointer;border-radius:7px;align-items:center;gap:9px;padding:4px 6px;font-size:12.5px;display:flex}.legend label:hover{background:var(--elev)}.legend input{opacity:0;pointer-events:none;position:absolute}.legend label:has(input:not(:checked)){color:var(--muted)}.legend label:has(input:not(:checked)) .swatch{opacity:.25}.legend label:has(input:focus-visible){outline:2px solid var(--accent)}.swatch{border-radius:4px;flex:none;width:12px;height:12px;box-shadow:inset 0 0 0 1px #00000026}.swatch.none{box-shadow:none}.preview-legend .view-type .select-trigger{margin-bottom:10px;display:flex}.preview-legend>:not(:first-child).stats,.preview-legend>:not(:first-child).warning{margin-top:12px}.legend.values li{font-variant-numeric:tabular-nums;align-items:center;gap:9px;padding:3px 6px;font-size:12.5px;display:flex}.legend.values .amount{color:var(--muted);margin-left:auto}.layer-slider{z-index:3;flex-direction:column;align-items:center;gap:8px;width:76px;padding:10px 4px;display:flex;position:absolute;top:12px;bottom:12px;right:12px}.layer-label{text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px;font-weight:650;line-height:1.25}.layer-label .of{color:var(--muted);font-size:11px;font-weight:400}.layer-label .muted{font-weight:400}.range{cursor:pointer;touch-action:none;flex:1;width:28px;margin:10px 0;position:relative}.range .rail{background:var(--line-strong);border-radius:2px;width:4px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.range .fill{background:var(--accent);border-radius:2px;width:4px;position:absolute;left:50%;transform:translate(-50%)}.range .thumb{background:var(--surface-solid);border:3px solid var(--accent);cursor:grab;border-radius:50%;width:18px;height:18px;margin:0 0 -9px -9px;transition:transform .12s,box-shadow .12s;position:absolute;left:50%;box-shadow:0 1px 4px #00000059}.range .thumb:hover,.range .thumb:focus-visible{box-shadow:0 0 0 5px var(--accent-soft), 0 1px 4px #00000059;outline:none;transform:scale(1.15)}.range .thumb:active{cursor:grabbing}.settings{z-index:3;background:var(--surface-solid);flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.settings>*{animation:.16s ease-out fade}.app[data-view=settings] .viewport,.app[data-view=settings] .dock,.app[data-view=library] .viewport,.app[data-view=library] .dock{visibility:hidden}.settings-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:14px;padding:10px 12px;display:flex}.preset-name{flex:1;min-width:140px;display:flex}.preset-name .select-trigger{letter-spacing:-.01em;text-overflow:ellipsis;width:auto;max-width:min(460px,100%);font-size:14.5px}.settings-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.name-form{gap:6px;display:flex}.name-form input{width:280px}.name-field{display:flex;position:relative}.name-form input[aria-invalid=true],.name-form input[aria-invalid=true]:focus{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 22%, transparent)}.field-bubble{z-index:30;border:1px solid color-mix(in srgb, var(--danger) 55%, var(--line));border-radius:var(--r-sm);background:var(--surface-solid);max-width:320px;color:var(--danger);box-shadow:var(--shadow-lg);padding:7px 10px;font-size:12.5px;line-height:1.35;position:absolute;top:calc(100% + 8px);left:0}.field-bubble:before{content:"";background:var(--surface-solid);border-left:1px solid color-mix(in srgb, var(--danger) 55%, var(--line));border-top:1px solid color-mix(in srgb, var(--danger) 55%, var(--line));width:10px;height:10px;position:absolute;top:-6px;left:16px;transform:rotate(45deg)}.settings-tools{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px 16px;padding:10px 12px;display:flex}.search{color:var(--muted);align-items:center;display:flex;position:relative}.search svg{pointer-events:none;position:absolute;left:10px}.search input{width:min(360px,50vw);padding-left:32px}.settings-body{flex:1;min-height:0;display:flex}.settings-pages{border-right:1px solid var(--line);align-content:start;gap:2px;width:176px;margin:0;padding:10px 8px;list-style:none;display:grid;overflow-y:auto}.settings-pages button{text-align:left;width:100%;color:var(--ink-2);background:0 0;border:none;border-radius:8px;padding:7px 10px;font-weight:500}.settings-pages button:hover{background:var(--elev);color:var(--ink)}.settings-pages button[aria-current=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.settings-content{flex:1;padding:6px 18px 28px;overflow-y:auto}.settings-content>section{max-width:820px}.settings-content>.spinner{margin:40px auto;display:block}.settings-content .page-title{color:var(--muted);margin:18px 0 2px;font-size:13px}.settings-group{border:none;min-width:0;margin:16px 0 0;padding:0}.settings-group legend{color:var(--ink);padding:0 0 7px;font-size:13px;font-weight:650}.settings-group>.field{border:1px solid var(--line);background:var(--field-bg);border-top-width:0;padding:6px 12px}.settings-group>.field input[type=text],.settings-group>.field .select-trigger,.settings-group>.field textarea{background-color:var(--surface-solid)}.settings-group>legend+.field{border-top-width:1px;border-top-left-radius:11px;border-top-right-radius:11px}.settings-group>.field:last-child{border-bottom-right-radius:11px;border-bottom-left-radius:11px}.field{grid-template-columns:minmax(170px,42%) 1fr;align-items:center;gap:6px 14px;min-height:44px;display:grid}.field.wide{grid-template-columns:1fr;padding-top:10px;padding-bottom:10px}.field-label{align-items:center;gap:5px;min-width:0;display:flex}.field-label>.name{color:var(--ink-2);min-width:0;margin:0}.field.changed .field-label>.name{color:var(--accent)}.field.dirty .field-label>.name{color:var(--ink);font-weight:600}.field.dirty .field-label>.name:after{content:" •";color:var(--accent)}.help{font:inherit;text-align:left;cursor:help;text-underline-offset:3px;background:0 0;border:0;border-radius:0;padding:0;-webkit-text-decoration:underline dotted #0000;text-decoration:underline dotted #0000;text-decoration-thickness:1px;transition:text-decoration-color .12s}.help:hover,.help:focus-visible{text-decoration-color:currentColor}.docs-panel{border-left:1px solid var(--line);background:var(--surface-solid);outline:none;flex-direction:column;flex:none;width:min(440px,40%);min-height:0;animation:.15s fade;display:flex}.docs-panel>header{border-bottom:1px solid var(--line);align-items:center;gap:4px;padding:10px 10px 10px 18px;display:flex}.docs-panel h2{overflow-wrap:anywhere;flex:1;min-width:0;margin:0;font-size:15px;font-weight:600}.docs-panel>header a.icon-btn{color:inherit;place-items:center;display:inline-grid}.docs-body{flex:1;padding:4px 18px 24px;overflow-y:auto}.docs-body>.spinner{margin:32px auto;display:block}.docs-text{color:var(--ink-2);overflow-wrap:anywhere;line-height:1.55}.docs-text h1,.docs-text h2,.docs-text h3,.docs-text h4{color:var(--ink);margin:18px 0 6px;font-size:14px}.docs-text p,.docs-text ul,.docs-text ol{margin:8px 0}.docs-text ul,.docs-text ol{padding-left:20px}.docs-text a{color:var(--accent)}.docs-text img{background:var(--elev);border-radius:8px;max-width:100%;height:auto;margin:10px 0;display:block}.docs-text code{font:12px var(--mono);background:var(--elev);color:var(--ink);border-radius:4px;padding:1px 4px}.docs-text pre{background:var(--elev);border-radius:8px;padding:8px 10px;overflow-x:auto}.docs-text pre code{background:0 0;padding:0}.docs-text table{border-collapse:collapse;font-size:12.5px;display:block;overflow-x:auto}.docs-text th,.docs-text td{border:1px solid var(--line-strong);text-align:left;padding:4px 8px}.docs-text .docs-ref{color:var(--muted);margin:10px 0;font-size:12px}.docs-text .docs-ref summary{cursor:pointer;width:-moz-fit-content;width:fit-content;padding:2px 0}.docs-text .docs-ref summary:hover{color:var(--ink-2)}.docs-text .docs-ref table{margin-top:4px;font-size:12px;display:table}.docs-text .docs-ref th,.docs-text .docs-ref td{vertical-align:top;border:0;padding:2px 12px 2px 0;font-weight:400}.docs-text .docs-ref th a{color:var(--muted)}.docs-text .docs-ref code{font-size:11.5px}.docs-text blockquote{border-left:3px solid var(--line-strong);color:var(--muted);margin:10px 0;padding:6px 12px}.docs-text blockquote.callout{border-left-color:var(--accent);background:var(--accent-soft);color:var(--ink-2);border-radius:0 8px 8px 0}.docs-text blockquote.warning,.docs-text blockquote.caution{border-left-color:var(--warn);background:color-mix(in srgb, var(--warn) 10%, transparent)}@media (max-width:900px){.settings-body{position:relative}.docs-panel{z-index:2;width:min(440px,100%);box-shadow:var(--shadow-lg);position:absolute;inset:0 0 0 auto}}.field .control{align-items:center;gap:6px;min-width:0;display:flex}.field .control>fieldset.input{display:contents}.field.off .field-label>.name{color:var(--muted)}.field.off .control>fieldset.input>*{opacity:.45}.field .control input[type=text]{width:160px}.field .control input.line{width:100%;max-width:420px}.field .control input.num{text-align:right;font-variant-numeric:tabular-nums;width:96px}.field .control .select-trigger{width:auto;min-width:160px;max-width:300px}.field textarea{width:100%;font:12px/1.45 var(--mono);resize:vertical}.field .sidetext{color:var(--muted);font-size:12px}.field .error{grid-column:1/-1}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;background:#05080c73;place-items:center;padding:16px;animation:.15s fade;display:grid;position:fixed;inset:0}.modal{background:var(--surface-solid);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:16px;width:100%;max-width:520px;max-height:90vh;padding:22px 24px;animation:.2s toast;overflow-y:auto}.modal:focus{outline:none}.modal>button{width:-moz-fit-content;width:fit-content;margin-left:auto;display:flex}.about-brand{align-items:center;gap:12px;margin-bottom:10px;display:flex}.about-brand img{width:44px}.about-brand h2{margin:0!important}dialog.confirm{max-width:400px;color:var(--ink);margin:auto;padding:0}dialog.confirm::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#05080c73;animation:.15s fade}.confirm-body{padding:20px 22px 16px}.confirm-body p{color:var(--ink);overflow-wrap:anywhere;margin:0 0 18px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:8px;display:flex}.btn.primary.destructive,.btn.primary.destructive:hover:not(:disabled){background:var(--danger);color:#fff;box-shadow:0 4px 14px color-mix(in srgb, var(--danger) 30%, transparent)}.modal h2{letter-spacing:-.01em;margin-bottom:10px;font-size:18px}.modal h3{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin:16px 0 4px;font-size:11.5px}.modal p{color:var(--ink-2)}.modal .ok{color:var(--ok)}.modal .error{color:var(--danger)}.modal ul{color:var(--ink-2);padding-left:18px}@keyframes fade{0%{opacity:0}}.no-webgl{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.no-webgl pre{text-align:left;white-space:pre-wrap;font-size:11px}.bed-summary{border-radius:var(--r-sm);border:1px solid var(--line);background-color:var(--elev);min-width:0;max-width:100%;height:44px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;align-items:center;gap:10px;padding:4px 12px 4px 4px;transition:background-color .15s,border-color .15s;display:flex}.bed-summary:hover:not(:disabled){background-color:var(--elev-hover);border-color:var(--line-strong)}.bed-summary>span{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;overflow:hidden}.bed-summary .edit-icon{color:var(--muted);flex:none;margin-left:4px}.bed-summary .bed-preview.mini{background:var(--surface-solid);border-radius:6px;flex:none;width:34px;height:34px}.modal.bed-dialog{max-width:940px;padding:18px 20px 20px}.bed-dialog-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.bed-dialog-head h2{margin:0}.bed-dialog-body{grid-template-columns:minmax(0,1.25fr) minmax(300px,1fr);align-items:start;gap:20px;display:grid}.bed-preview-wrap{position:sticky;top:0}.bed-preview{position:relative}.bed-preview svg{aspect-ratio:1;width:100%;height:auto;max-height:62vh;display:block}.bed-preview:not(.mini){background:var(--elev);border:1px solid var(--line);border-radius:var(--r);padding:10px}.bed-preview path,.bed-preview line,.bed-preview circle{vector-effect:non-scaling-stroke}.bed-surface{fill:var(--surface-solid);stroke:var(--ink-2);stroke-width:1.5px}.bed-preview.mini .bed-surface{stroke-width:1px}.bed-surface.focus{stroke:var(--accent);stroke-width:2px}.bed-gridlines line{stroke:var(--line-strong);stroke-width:.6px}.bed-gridlines line.major{stroke-width:1.1px}.bed-exclude{stroke:var(--danger);fill:var(--danger);fill-opacity:.22;stroke-width:1.4px}.bed-exclude.focus{stroke-width:2px}.bed-volume-shape{fill-opacity:.22;stroke-width:1.4px}.bed-volume-shape.focus{stroke-width:2px}.bed-axes line{stroke-width:2.2px;stroke-linecap:round}.bed-axes .ax-x{stroke:#d92b2b;fill:#d92b2b}.bed-axes .ax-y{stroke:#2bb32b;fill:#2bb32b}.bed-axes text{stroke:none;font-weight:600}.bed-axes .ax-o{fill:var(--ink)}.bed-dims text{fill:var(--muted);font-variant-numeric:tabular-nums}.bed-coords{color:var(--muted);text-align:center;font-variant-numeric:tabular-nums;white-space:pre;margin-top:8px;font-size:12px}.bed-form{flex-direction:column;gap:12px;min-width:0;display:flex}.bed-form h3{text-transform:none;letter-spacing:0;color:var(--ink-2);margin:4px 0 -4px;font-size:12.5px}.bed-form h3 .muted{margin-left:4px;font-weight:400}.bed-form p{margin:0}.bed-form code{font:11.5px var(--mono);background:var(--elev);border-radius:4px;padding:1px 4px}.bed-form textarea{width:100%;font:12px/1.5 var(--mono);resize:vertical}.segmented.bed-seg{display:flex}.segmented.bed-seg button{flex:1;justify-content:center}.segmented.bed-seg.small button{height:26px;font-size:12px}.bed-grid2{grid-template-columns:1fr 1fr;gap:10px 12px;display:grid}.bed-num{color:var(--muted);flex-direction:column;gap:4px;min-width:0;font-size:12px;display:flex}.bed-num-input{align-items:center;gap:6px;display:flex}.bed-num-input input{text-align:right;font-variant-numeric:tabular-nums;width:100%;min-width:0}.bed-num-input .sidetext{color:var(--muted);font-size:12px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--elev);height:26px;color:var(--ink-2);font:inherit;cursor:pointer;border-radius:999px;padding:0 10px;font-size:12px;transition:background-color .15s,border-color .15s,color .15s}.chip:hover{background:var(--elev-hover);color:var(--ink)}.chip.on{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--accent)}.points{flex-direction:column;gap:6px;display:flex}.points-head,.points-row{grid-template-columns:22px 1fr 1fr 28px;align-items:center;gap:8px;display:grid}.points-head{color:var(--muted);padding:0 2px;font-size:11.5px}.points-row .bed-num>span:first-child{display:none}.points-row>.muted{text-align:right;font-variant-numeric:tabular-nums;font-size:12px}.bed-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bed-empty{color:var(--muted);text-align:center;border:1px dashed var(--line-strong);border-radius:var(--r-sm);padding:14px;font-size:13px}fieldset.bed-volume{border:1px solid var(--line);border-radius:var(--r-sm);flex-direction:column;gap:10px;min-width:0;margin:0;padding:10px 12px 12px;display:flex}fieldset.bed-volume legend{color:var(--ink-2);align-items:center;gap:8px;padding:0 6px;font-size:12.5px;font-weight:600;display:flex}.swatch{border-radius:3px;flex:none;width:10px;height:10px}.bed-form-foot{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:8px;margin-top:4px;padding-top:12px;display:flex}.bed-form-foot .error{margin-right:auto}@media (max-width:760px){.bed-dialog-body{grid-template-columns:1fr}.bed-preview-wrap{position:static}.bed-preview svg{max-height:40vh}.app{grid-template-rows:auto 1fr}.topbar{grid-template-columns:1fr auto;grid-template-areas:"brand actions""nav nav";row-gap:8px;padding:8px 12px}.brand{grid-area:brand}.actions{grid-area:actions}.segmented{grid-area:nav;justify-self:center}.actions{gap:4px}.actions .btn-label{display:none}.dock{width:auto;max-height:calc(45% + 52px);padding:40px 12px 12px;top:auto;bottom:0;right:0}.settings-pages{width:120px}.field{grid-template-columns:1fr}.preview-legend{width:180px;max-height:calc(55% - 76px);right:80px}.layer-slider{width:60px;bottom:calc(45% + 64px)}.plate-toolbar{max-width:calc(100% - 24px);margin-left:0}.object-panel{width:auto;inset:64px 12px auto}.op-grid input.num{padding:0 4px}.op-info{display:none}}@media (max-width:480px){.topbar{column-gap:6px;padding:8px}.brand-name{display:none}.topbar>.segmented button{padding:0 10px}.topbar>.segmented button svg{display:none}}.modal.prefs{max-width:480px}.prefs-grid{grid-template-columns:max-content 1fr;align-items:center;gap:14px 18px;margin:6px 0 22px;display:grid}.prefs-grid>.caption{color:var(--ink-2);font-weight:550}.prefs-grid .segmented{width:-moz-fit-content;width:fit-content}.prefs-drive{border-top:1px solid var(--line);padding-top:14px}.prefs-drive h3{align-items:center;gap:6px;margin:0 0 6px;display:flex}.prefs-drive p{margin:0 0 10px}.prefs-row{flex-wrap:wrap;gap:8px;display:flex}.prefs-row .close{margin-left:auto}.notice-action{margin-top:8px}.signin-wait{align-items:center;gap:8px;display:inline-flex}.signin-wait .link-btn{margin:0}.modal.wizard{flex-direction:column;max-width:980px;height:min(760px,92vh);padding:18px 20px 16px;display:flex;overflow:hidden}.wizard-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.wizard-head h2{margin:0}.wizard-body{flex:1;gap:16px;min-height:0;display:flex}.wizard-nav{flex:none;align-content:start;gap:2px;width:190px;display:grid}.wizard-nav button{color:var(--ink-2);text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:9px;padding:8px 10px;font-weight:500;display:flex}.wizard-nav button:hover:not(:disabled){background:var(--elev);color:var(--ink)}.wizard-nav button[aria-current=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.wizard-nav button span:not(.count){flex:1}.wizard-nav .count,.wizard-vendors .count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11.5px}.wizard-page{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.wizard-page>div{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex}.wizard-page .search input,.wizard-page .search{width:100%}.wizard-split{flex:1;gap:12px;min-height:0;display:flex}.wizard-vendors{border-right:1px solid var(--line);flex:none;width:200px;margin:0;padding:0 4px 0 0;list-style:none;overflow-y:auto}.wizard-vendors button{width:100%;color:var(--ink-2);text-align:left;background:0 0;border:none;border-radius:7px;justify-content:space-between;gap:6px;padding:6px 9px;display:flex}.wizard-vendors button:hover{background:var(--elev);color:var(--ink)}.wizard-vendors button[aria-current=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.wizard-models,.wizard-filament-list,.wizard-import{flex:1;min-height:0;overflow-y:auto}.wizard-models h3,.wizard-filament-list h3{margin:12px 0 6px}.wizard-models section:first-child h3,.wizard-filament-list section:first-child h3{margin-top:2px}.wizard-model{border:1px solid var(--line);background:var(--field-bg);border-radius:10px;align-items:center;gap:12px;margin-bottom:6px;padding:8px 10px;display:flex}.wizard-model.on{border-color:color-mix(in srgb, var(--accent) 45%, transparent);background:var(--accent-soft)}.wizard-model .name{flex:1;min-width:0;font-weight:550}.wizard-model .nozzles{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.wizard-tools{gap:8px;display:grid}.wizard-filament-list ul{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:2px 12px;margin:0;padding:0;list-style:none;display:grid}.wizard-filament-list label{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:4px 6px;display:flex}.wizard-filament-list label:hover{background:var(--elev)}.wizard-filament-list .tag{color:var(--muted);margin-left:auto;font-size:11px}.wizard-import{display:block!important}.import-card{border:1px solid var(--line);background:var(--field-bg);border-radius:12px;margin:10px 0;padding:12px 14px}.import-card h3{text-transform:none;letter-spacing:0;color:var(--ink);margin:0 0 6px;font-size:14px}.import-card ol{color:var(--ink-2);margin:0 0 8px;padding-left:18px}.import-card.muted-card p{color:var(--ink-2);margin:0}.import-paths{grid-template-columns:max-content 1fr;gap:2px 10px;margin:0 0 10px;display:grid}.import-paths dt{color:var(--muted)}.import-paths dd{overflow-wrap:anywhere;margin:0}.wizard-foot{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:10px;margin-top:12px;padding-top:12px;display:flex}@media (max-width:720px){.wizard-body{flex-direction:column}.wizard-nav{grid-auto-flow:column;width:auto}.wizard-vendors{width:140px}}.import-report{margin:8px 0 4px}.import-report>p{margin:0 0 6px}.import-converted{border:1px solid var(--line);background:var(--surface-solid);border-radius:10px;margin-bottom:6px;padding:8px 12px}.import-converted summary{cursor:pointer}.import-converted summary svg{vertical-align:-2px}.import-converted .tag{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.import-converted h4{color:var(--ink-2);margin:10px 0 4px;font-size:12px}.import-converted ul{color:var(--ink-2);gap:3px;margin:0;padding-left:18px;font-size:12.5px;display:grid}.ok{color:var(--ok)}.code-area{border-radius:var(--r-sm);background:var(--elev);width:100%;position:relative}.code-area>pre,.code-area>textarea{font:12px/1.45 var(--mono);white-space:pre;tab-size:4;letter-spacing:0;word-spacing:0;border:1px solid #0000;margin:0;padding:8px 10px}.code-area>pre{color:var(--ink);pointer-events:none;position:absolute;inset:0;overflow:hidden}.field .code-area>textarea,.code-area>textarea{color:#0000;caret-color:var(--ink);border-color:var(--line);display:block;position:relative;overflow:auto;background:0 0!important}.settings-group>.field .code-area{background:var(--surface-solid)}.code-area>textarea::selection{background:var(--accent-soft);color:#0000}.hl-cmd{color:var(--hl-cmd)}.hl-macro{color:var(--hl-macro)}.hl-param{color:var(--hl-param)}.hl-var{color:var(--hl-var)}.hl-comment{color:var(--muted);font-style:italic}.wizard-hint{color:var(--warn);align-items:center;gap:6px;font-weight:500;display:inline-flex}.wizard-vendors button.create{color:var(--accent);justify-content:flex-start;font-weight:550}.wizard-vendors li:nth-child(2){border-bottom:1px solid var(--line);margin-bottom:4px;padding-bottom:4px}.wizard-create-card{border:1px dashed color-mix(in srgb, var(--accent) 50%, transparent);background:var(--accent-soft);border-radius:10px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;padding:12px 14px;display:flex}.wizard-create-card p{margin:2px 0 0}.create-printer{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex}.create-form{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex;overflow-y:auto}.create-form .radios{border:none;flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;display:flex}.create-form .radios legend{margin-bottom:6px;padding:0;font-weight:600}.create-form .radios label{cursor:pointer;align-items:center;gap:7px;display:inline-flex}.create-form .row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.create-form .row .caption{width:150px;color:var(--ink-2);flex:none}.create-form .row input[type=text]{flex:200px;width:200px;max-width:300px}.create-form .row input.num{text-align:right;font-variant-numeric:tabular-nums;flex:none;width:80px}.create-form .row .select-trigger{width:auto;min-width:160px}.create-templates{grid-template-columns:1fr 1.4fr;gap:16px;min-height:0;display:grid}.template-list{flex-direction:column;gap:6px;min-height:0;display:flex}.template-head{align-items:baseline;gap:10px;display:flex}.template-head h3{flex:1;margin:0}.template-list ul{border:1px solid var(--line);border-radius:8px;max-height:300px;margin:0;padding:4px;list-style:none;overflow-y:auto}.template-list label{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:3px 6px;display:flex}.template-list label:hover{background:var(--elev)}button.link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:12.5px}button.link:hover{text-decoration:underline}.create-foot{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:10px;padding-top:12px;display:flex}.based-on{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}@media (max-width:720px){.create-templates{grid-template-columns:1fr}.create-form .row .caption{width:100%}}.template-head h3{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.wizard-intro{justify-content:space-between;align-items:center;gap:12px;display:flex}.wizard-intro p{margin:0}.create-form label.check{cursor:pointer;align-items:center;gap:7px;display:inline-flex}.printer-checks{border:1px solid var(--line);border-radius:8px;max-height:320px;margin:0;padding:4px;list-style:none;overflow-y:auto}.printer-checks li{border-radius:6px;align-items:center;gap:10px;padding:3px 6px;display:flex}.printer-checks li:hover{background:var(--elev)}.printer-checks label{cursor:pointer;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.printer-checks .select-trigger{width:auto;max-width:50%}.library-title{letter-spacing:-.01em;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:650;display:flex}.library .search{flex:1}.tag-filter{flex-wrap:wrap;gap:6px}.library-body{flex:1;padding:14px;overflow-y:auto}.library-empty{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:60px 16px;display:flex}.model-grid{grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.model-card{border:1px solid var(--line);border-radius:var(--r);background:var(--surface-solid);flex-direction:column;display:flex;overflow:hidden}.model-open{aspect-ratio:1;border:none;border-bottom:1px solid var(--line);background:var(--elev);cursor:pointer;place-items:center;padding:0;transition:background-color .15s;display:grid;position:relative}.model-open:hover{background:var(--elev-hover)}.model-open img{object-fit:contain;width:100%;height:100%}.model-noimg{color:var(--muted)}.model-busy{position:absolute}.model-info{gap:3px;padding:8px 10px 10px;display:grid;position:relative}.model-name{text-overflow:ellipsis;white-space:nowrap;padding-right:54px;font-weight:600;overflow:hidden}.model-tags{flex-wrap:wrap;gap:4px;min-width:0;margin-top:3px;display:flex}.chip.small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;height:20px;padding:0 7px;font-size:11px;overflow:hidden}.model-actions{display:flex;position:absolute;top:5px;right:4px}.model-edit{gap:6px;padding:8px;display:grid}.model-edit-actions{justify-content:flex-end;gap:6px;display:flex}@media (max-width:600px){.model-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.modal.printers{max-width:560px}.modal.printers .prefs-grid{margin:4px 0 14px}.modal.printers .prefs-grid input:not([type=checkbox]){width:100%}.prefs-grid>.caption.top{align-self:start;padding-top:6px}.printer-form .printer-checks{max-height:150px}.bed-summary.compatible-summary{max-width:320px;height:32px;padding:0 10px}.modal.compatible-dialog{max-width:440px;padding:18px 20px 20px}.compatible-dialog .printer-checks{max-height:50vh;margin:12px 0 0;padding:4px}label.check{cursor:pointer;align-items:center;gap:7px;display:inline-flex}.modal .printer-list{gap:8px;margin:0 0 4px;padding:0;list-style:none;display:grid}.printer-row{border:1px solid var(--line);border-radius:var(--r-sm);gap:6px;padding:10px 12px;display:grid}.printer-row-head{align-items:center;gap:6px;display:flex}.printer-title{flex:1;min-width:0;display:grid}.printer-title>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.printer-row p{margin:0}.state-badge{background:var(--elev);color:var(--ink-2);white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:600}.state-badge.ready,.state-badge.done{color:var(--ok);background:color-mix(in srgb, var(--ok) 12%, transparent)}.state-badge.printing{color:var(--accent);background:var(--accent-soft)}.state-badge.paused,.state-badge.busy{color:var(--warn);background:color-mix(in srgb, var(--warn) 12%, transparent)}.state-badge.error,.state-badge.offline,.state-badge.cancelled{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.printer-status{gap:4px;display:grid}.printer-job{gap:8px;display:flex}.printer-file{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.printer-status .pct{font-variant-numeric:tabular-nums;font-weight:600}.printer-status .bar{background:var(--elev);border-radius:3px;height:5px;overflow:hidden}.printer-status .bar>div{background:var(--accent);height:100%;transition:width .3s}.printer-facts{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:12px;display:flex}.printer-controls{gap:6px;display:flex}.btn.danger{color:var(--danger)}.printer-help{color:var(--ink-2);margin:0 0 12px}.printer-help summary{cursor:pointer;font-weight:550}.printer-help p{margin:8px 0 4px}.printer-help pre{background:var(--elev);font-family:var(--mono);border-radius:8px;margin:0;padding:8px 10px;font-size:12px;overflow-x:auto}.printer-form>p{margin:0 0 8px}.send-printer{gap:6px;display:flex}.send-printer .select-trigger{flex:1;min-width:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}::backdrop{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.notice-timer{animation-duration:5s!important}}.extruder-switch{margin-bottom:10px}
