.quick[data-v-99b9fe20]{flex-direction:column;width:min(980px,96vw);max-height:92vh;display:flex}.quick__body[data-v-99b9fe20]{gap:14px;padding:14px 18px;display:grid;overflow:auto}.quick__step[data-v-99b9fe20]{align-items:flex-start;gap:14px;display:flex}.quick__no[data-v-99b9fe20]{background:var(--accent);color:#1b1305;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-weight:700;display:grid}.quick__content[data-v-99b9fe20]{flex:1;gap:10px;min-width:0;display:grid}.quick__name[data-v-99b9fe20]{max-width:420px}.quick__grid[data-v-99b9fe20]{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.quick__grid--wall[data-v-99b9fe20]{grid-template-columns:repeat(2,minmax(0,1fr));max-width:560px}.quick__row[data-v-99b9fe20]{grid-template-columns:120px 1fr 110px 110px 34px;align-items:end;gap:8px;display:grid}.quick__num[data-v-99b9fe20]{color:var(--dim);gap:2px;font-size:10px;display:grid}.quick__head[data-v-99b9fe20]{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.quick__scenarios[data-v-99b9fe20]{grid-template-columns:1fr 1fr;gap:10px;display:grid}.quick__card[data-v-99b9fe20]{text-align:left;border:1px solid var(--line-2);color:var(--text);cursor:pointer;background:#14171b99;border-radius:12px;gap:4px;padding:12px 14px;display:grid}.quick__card b[data-v-99b9fe20]{font-size:14px}.quick__card span[data-v-99b9fe20]{color:var(--dim);font-size:11px}.quick__card--on[data-v-99b9fe20]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.quick__error[data-v-99b9fe20]{color:#ffb4b4;background:#d64c4c1f;border:1px solid #d64c4c73;border-radius:10px;margin:0;padding:10px 12px;font-size:12px}.modal__foot[data-v-99b9fe20]{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;display:flex}@media (width<=760px){.quick__grid[data-v-99b9fe20]{grid-template-columns:repeat(2,minmax(0,1fr))}.quick__row[data-v-99b9fe20]{grid-template-columns:1fr 1fr}.quick__row .btn[data-v-99b9fe20]{justify-self:end}.quick__scenarios[data-v-99b9fe20]{grid-template-columns:1fr}}.result[data-v-2e25fb44]{flex-direction:column;width:min(980px,96vw);max-height:92vh;display:flex}.result__body[data-v-2e25fb44]{gap:14px;padding:14px 18px;display:grid;overflow:auto}.result__stats[data-v-2e25fb44]{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;display:grid}.result__stats .stat[data-v-2e25fb44]{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.result__stats .stat__k[data-v-2e25fb44]{color:var(--dim);font-size:10px}.result__stats .stat__v[data-v-2e25fb44]{font-size:18px;font-weight:650}.result__stats .stat--money .stat__v[data-v-2e25fb44]{font-size:15px}.result__ready[data-v-2e25fb44]{background:#d64c4c14;border:1px solid #d64c4c73;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;font-size:12px;display:flex}.result__ready.is-ready[data-v-2e25fb44]{background:#50aa6e1a;border-color:#50aa6e80}.result__check[data-v-2e25fb44]{background:#ffffff0f;border-radius:999px;align-items:baseline;gap:4px;padding:3px 8px;display:inline-flex}.result__check.is-bad[data-v-2e25fb44]{color:#ffb4b4}.result__check small[data-v-2e25fb44]{color:var(--dim);font-size:10px}.result__grid[data-v-2e25fb44]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.result__block[data-v-2e25fb44]{border:1px solid var(--line);border-radius:12px;padding:12px 14px}.result__label[data-v-2e25fb44]{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-bottom:8px;font-size:10px}.result__list[data-v-2e25fb44]{gap:6px;margin:0;padding:0;list-style:none;display:grid}.result__list li[data-v-2e25fb44]{justify-content:space-between;gap:10px;font-size:12px;display:flex}.result__list b[data-v-2e25fb44]{font-variant-numeric:tabular-nums}.result__note[data-v-2e25fb44]{margin:0 0 10px;font-size:12px;line-height:1.5}.result__actions[data-v-2e25fb44]{flex-wrap:wrap;gap:8px;display:flex}.result__table-wrap[data-v-2e25fb44]{border:1px solid var(--line);border-radius:12px;overflow:auto}.result__table[data-v-2e25fb44]{border-collapse:collapse;width:100%;font-size:12px}.result__table th[data-v-2e25fb44],.result__table td[data-v-2e25fb44]{text-align:left;border-bottom:1px solid var(--line);padding:8px 10px}.result__table th[data-v-2e25fb44]{color:var(--dim);text-transform:uppercase;font-size:10px;font-weight:500}.result__table tbody tr[data-v-2e25fb44]{cursor:pointer}.result__table tbody tr[data-v-2e25fb44]:hover{background:#ffffff08}.result__table td[data-v-2e25fb44]:not(:first-child),.result__table th[data-v-2e25fb44]:not(:first-child){text-align:right}@media (width<=760px){.result__stats[data-v-2e25fb44]{grid-template-columns:repeat(2,minmax(0,1fr))}.result__grid[data-v-2e25fb44]{grid-template-columns:1fr}}.ai-launcher[data-v-4f2ea284]{z-index:60;color:#1b1305;cursor:pointer;background:#ffbe55;border:1px solid #3a3f46;border-radius:50%;width:46px;height:46px;font:700 13px/1 ui-sans-serif,system-ui,sans-serif;position:fixed;bottom:52px;right:18px;box-shadow:0 6px 20px #00000059}.ai-panel[data-v-4f2ea284]{z-index:80;color:#e8ecf1;background:#15181d;border:1px solid #2c323a;border-radius:10px;flex-direction:column;width:min(380px,100vw - 24px);display:flex;position:fixed;top:56px;bottom:28px;right:12px;overflow:hidden;box-shadow:0 12px 40px #00000073}.ai-head[data-v-4f2ea284]{border-bottom:1px solid #262c33;justify-content:space-between;align-items:center;padding:10px 12px;font-size:13px;display:flex}.ai-model[data-v-4f2ea284]{color:#8d98a5;margin-left:8px;font-size:10px}.ai-cursor[data-v-4f2ea284]{opacity:.55;animation:1s step-end infinite ai-blink-4f2ea284}@keyframes ai-blink-4f2ea284{50%{opacity:0}}.ai-head-actions[data-v-4f2ea284]{align-items:center;gap:2px;display:flex}.ai-new[data-v-4f2ea284],.ai-x[data-v-4f2ea284]{color:#9aa4b0;cursor:pointer;background:0 0;border:0;font-size:18px}.ai-x[data-v-4f2ea284]{font-size:20px}.ai-context[data-v-4f2ea284]{color:#8d98a5;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #22272e;padding:6px 12px;font-size:10px;overflow:hidden}.ai-plan[data-v-4f2ea284]{background:#1a1f26;border:1px solid #3a424c;border-radius:7px;gap:8px;margin:8px 12px 0;padding:8px;display:flex}.ai-plan-shot[data-v-4f2ea284]{object-fit:cover;border:1px solid #2c323a;border-radius:5px;flex:none;width:84px;height:64px}.ai-plan-body[data-v-4f2ea284]{min-width:0;font-size:11px}.ai-plan-body b[data-v-4f2ea284]{color:#e8ecf1;text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ai-plan-body p[data-v-4f2ea284]{color:#cfd7df;margin:3px 0}.ai-plan-notes[data-v-4f2ea284]{color:#9aa4b0;font-size:10px}.ai-plan-error[data-v-4f2ea284]{color:#ff8d8d}.ai-plan-actions[data-v-4f2ea284]{flex-wrap:wrap;gap:4px;margin-top:5px;display:flex}.ai-attach[data-v-4f2ea284]{color:#cfd7df;cursor:pointer;background:#1c2128;border:1px solid #343c46;border-radius:6px;flex:none;padding:0 8px}.ai-log[data-v-4f2ea284]{flex-direction:column;flex:1;gap:8px;padding:10px 12px;display:flex;overflow-y:auto}.ai-empty[data-v-4f2ea284]{color:#9aa4b0;font-size:12px}.ai-chips[data-v-4f2ea284]{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.ai-chips button[data-v-4f2ea284]{color:#cfd7df;cursor:pointer;background:#1c2128;border:1px solid #39414b;border-radius:5px;padding:4px 7px;font-size:10px}.ai-msg[data-v-4f2ea284]{font-size:12px;line-height:1.45}.ai-msg.is-user .ai-text[data-v-4f2ea284]{color:#ffd28a}.ai-msg.is-tool .ai-text[data-v-4f2ea284]{color:#8d98a5;font-size:10px}.ai-msg.is-system .ai-text[data-v-4f2ea284]{color:#7fe0c2;font-size:11px}.ai-text[data-v-4f2ea284]{white-space:pre-wrap}.ai-text.is-error[data-v-4f2ea284]{color:#ff8d8d}.ai-shot[data-v-4f2ea284]{border:1px solid #2c323a;border-radius:5px;width:100%;margin-top:6px}.ai-preview[data-v-4f2ea284]{background:#1a1f26;border:1px solid #3a424c;border-radius:7px;padding:8px;font-size:11px}.ai-preview p[data-v-4f2ea284]{color:#cfd7df;margin:5px 0}.ai-issues[data-v-4f2ea284]{color:#ff8d8d;margin:4px 0;padding-left:16px;font-size:10px}.ai-preview-actions[data-v-4f2ea284]{flex-wrap:wrap;gap:5px;margin-top:6px;display:flex}.ai-hint[data-v-4f2ea284]{color:#ffbe55;border-top:1px solid #262c33;margin:0;padding:8px 12px;font-size:10px}.ai-error[data-v-4f2ea284]{color:#ff8d8d;margin:0;padding:6px 12px;font-size:10px}.ai-form[data-v-4f2ea284]{border-top:1px solid #262c33;gap:6px;padding:8px 12px 12px;display:flex}.ai-form textarea[data-v-4f2ea284]{resize:none;color:#e8ecf1;background:#101419;border:1px solid #343c46;border-radius:6px;flex:1;padding:7px 8px;font:12px/1.4 ui-sans-serif,system-ui,sans-serif}@media (width<=900px){.ai-panel[data-v-4f2ea284]{width:auto;inset:8px 8px 64px}.ai-launcher[data-v-4f2ea284]{bottom:74px}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-0:#0f1114;--bg-1:#15181d;--bg-2:#1b1f26;--bg-3:#232833;--bg-4:#2b313c;--line:#2b323c;--line-2:#3a4350;--text:#e7eaee;--muted:#98a2af;--dim:#6d7886;--accent:#e0a33e;--accent-weak:#e0a33e24;--teal:#57c7b8;--danger:#ef5b5b;--danger-weak:#ef5b5b1f;--ok:#57b97a;--radius:6px;--radius-sm:4px;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--shadow:0 10px 30px #00000059}*,:before,:after{box-sizing:border-box}html,body,#app{height:100%;margin:0}@supports (height:100dvh){html,body,#app{height:100dvh}}body{background:var(--bg-0);color:var(--text);font:13px/1.45 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overscroll-behavior:none;-webkit-text-size-adjust:100%;overflow:hidden}button,.tab,.tree__act{touch-action:manipulation}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}::selection{background:var(--accent-weak)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--bg-4);border:2px solid var(--bg-1);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--line-2)}::-webkit-scrollbar-track{background:0 0}.app{background:var(--bg-0);grid-template-rows:48px minmax(0,1fr) 26px;height:100%;display:grid}.workspace{grid-template-columns:minmax(0,1fr) clamp(380px,30vw,480px);min-height:0;display:grid}.view{background:var(--bg-0);border-right:1px solid var(--line);flex-direction:column;min-width:0;min-height:0;display:flex}.view:last-of-type{border-right:0}.view__head{background:var(--bg-1);border-bottom:1px solid var(--line);flex:0 0 32px;justify-content:space-between;align-items:center;gap:8px;height:32px;padding:0 10px;display:flex}.view__title{letter-spacing:.14em;text-transform:uppercase;color:var(--dim);white-space:nowrap;font-size:10px}.view__actions{gap:2px;display:flex}.view__body{flex:1;min-height:0;position:relative;overflow:hidden}.view__canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block;position:absolute;inset:0}.view__canvas:active{cursor:grabbing}.sidebar{background:var(--bg-1);border-left:1px solid var(--line);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.sidebar__props{border-top:1px solid var(--line-2);flex:0 42%;min-height:150px;max-height:46%;overflow:hidden auto}.statusbar{color:var(--muted);background:var(--bg-1);border-top:1px solid var(--line);white-space:nowrap;align-items:center;gap:14px;padding:0 10px;font-size:11px;display:flex;overflow:hidden}.statusbar__item{font-variant-numeric:tabular-nums;align-items:center;gap:5px;display:inline-flex}.statusbar__spacer{flex:1}@media (width<=1180px){.workspace{grid-template-columns:minmax(0,1fr) 320px}}.minimap .view{border:0;width:100%;height:100%}.minimap{z-index:5;background:var(--bg-1);border:1px solid var(--line-2);width:268px;height:198px;box-shadow:var(--shadow);border-radius:8px;position:absolute;bottom:12px;left:12px;overflow:hidden}.view--mini{border:0;border-radius:0;width:100%;height:100%}.view--mini .view__head{background:#15181deb;flex-basis:26px;height:26px;padding:0 8px}.view--mini .view__title{font-size:9px}.view--mini .view__canvas{cursor:crosshair}.app--presentation{grid-template-rows:1fr}.app--presentation .topbar,.app--presentation .statusbar,.app--presentation .sidebar{display:none}.app--presentation .workspace{grid-template-columns:1fr}.app--presentation .view__head{display:none}.app--presentation .view{border-right:0}.mobilebar,.mobile-scrim{display:none}@media (width<=900px){.app{grid-template-rows:auto minmax(0,1fr) auto;grid-template-rows:auto minmax(0, 1fr) calc(54px + env(safe-area-inset-bottom));height:100dvh}.topbar{scrollbar-width:none;gap:6px;min-height:48px;padding:6px 8px;overflow:auto hidden}.topbar::-webkit-scrollbar{display:none}.topbar>*{flex:none}.topbar .brand__sub,.topbar .save-hint{display:none}.topbar .project-name{width:132px;min-width:96px}.topbar .spacer{display:none}.workspace{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);position:relative;overflow:clip}.view{border-right:0}.sidebar{z-index:30;border-left:0;border-top:1px solid var(--line-2);height:min(62dvh,560px);max-height:calc(100% - 8px);padding-bottom:env(safe-area-inset-bottom);transition:transform .22s;position:absolute;bottom:0;left:0;right:0;transform:translateY(calc(100% + 8px));box-shadow:0 -14px 34px #00000080}.app--panel-open .sidebar{transform:none}.statusbar{display:none}.mobilebar{z-index:76;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:var(--bg-1);border-top:1px solid var(--line);align-items:stretch;gap:6px;display:flex;position:relative}.mobilebar__btn{min-height:42px;color:var(--muted);background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);flex:1;padding:0 8px;font-size:12px;font-weight:600}.mobilebar__btn--on{color:var(--text);border-color:var(--accent);background:var(--accent-weak)}.mobilebar__btn--accent{color:#1b1305;background:var(--accent);border-color:var(--accent);flex:1.2}.mobile-scrim{z-index:20;background:#04060873;display:block;position:fixed;inset:48px 0 54px}.minimap{width:148px;height:108px;bottom:8px;left:8px}.view__hint{display:none}.view__head{gap:8px;overflow-x:auto}.view__actions{flex:none}.minimap--open{width:calc(100vw - 16px);height:min(52dvh,430px)}}@media (width<=640px){.topbar .brand__name{display:none}.topbar .btn{padding:0 8px;font-size:11px}.topbar .seg{flex:none}}@media (pointer:coarse){.btn,.tab,.seg__btn,.tree__act,.wb__tab,.mobilebar__btn{min-height:38px}.btn--sm{min-height:34px}.view__canvas{touch-action:none}input,select,textarea{font-size:16px}}@media (width<=900px){.app--presentation{grid-template-rows:1fr}}.topbar{background:var(--bg-1);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:0 12px;display:flex}.brand{-webkit-user-select:none;user-select:none;align-items:baseline;gap:7px;display:flex}.brand__mark{border:2px solid var(--accent);border-radius:2px;width:11px;height:11px;position:relative;top:1px}.brand__name{letter-spacing:.18em;font-size:12px;font-weight:650}.brand__sub{color:var(--dim);letter-spacing:.06em;font-size:10px}.project-name{width:200px;height:26px;color:var(--text);background:0 0;border:1px solid #0000;border-radius:4px;padding:0 8px;font-weight:500}.project-name:hover{border-color:var(--line)}.project-name:focus{border-color:var(--accent);background:var(--bg-0);outline:none}.spacer{flex:1}.save-hint{color:var(--dim);text-align:right;font-variant-numeric:tabular-nums;min-width:92px;font-size:10px}.btn{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius-sm);height:28px;color:var(--text);white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 10px;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover{background:var(--bg-3)}.btn:active{background:var(--bg-2)}.btn--primary{background:var(--accent);color:#1b1305;border-color:#0000;font-weight:600}.btn--primary:hover{background:#eab254}.btn--ghost{color:var(--muted);background:0 0;border-color:#0000}.btn--ghost:hover{background:var(--bg-2);color:var(--text)}.btn--icon{width:28px;padding:0;font-size:15px;line-height:1}.btn--sm{height:24px;padding:0 8px;font-size:11px}.btn[disabled]{opacity:.38;cursor:not-allowed}.tab{height:22px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:3px;padding:0 7px;font-size:11px}.tab:hover{background:var(--bg-2);color:var(--text)}.tab--active{color:var(--accent);background:var(--accent-weak);border-color:#e0a33e3d}.panel{border-bottom:1px solid var(--line)}.panel__head{letter-spacing:.12em;text-transform:uppercase;color:var(--dim);justify-content:space-between;align-items:center;gap:8px;padding:10px 12px 7px;font-size:10px;display:flex}.panel__body{padding:0 12px 12px}.field-row{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.field-row--3{grid-template-columns:repeat(3,1fr)}.rotate-row .btn{width:30px;padding:0;font-size:13px;line-height:1}.field{flex-direction:column;gap:3px;min-width:0;display:flex}.field__label{color:var(--dim);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.input,.select{background:var(--bg-0);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;height:28px;color:var(--text);font-variant-numeric:tabular-nums;padding:0 7px}.input:hover,.select:hover{border-color:var(--line-2)}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-weak);outline:none}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--dim) 50%), linear-gradient(135deg, var(--dim) 50%, transparent 50%);background-position:calc(100% - 12px) 12px,calc(100% - 8px) 12px;background-repeat:no-repeat;background-size:4px 4px,4px 4px;padding-right:20px}.material-row{grid-template-columns:minmax(0,1fr) 26px 86px;align-items:center;gap:6px;margin-bottom:6px;display:grid}.material-row:last-child{margin-bottom:0}.material-row__name{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.swatch{border:1px solid var(--line-2);cursor:pointer;border-radius:4px;width:26px;height:26px;position:relative;overflow:hidden}.swatch:hover{border-color:var(--accent)}.swatch input{opacity:0;cursor:pointer;border:0;width:150%;height:150%;padding:0;position:absolute;inset:-25%}.table{border-collapse:collapse;width:100%;font-size:11px}.table th{text-align:left;letter-spacing:.04em;color:var(--dim);border-bottom:1px solid var(--line);white-space:nowrap;padding:4px;font-size:10px;font-weight:500}.table td{vertical-align:top;border-bottom:1px solid #2b323c8c;padding:4px}.table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table tbody tr:hover td{background:#ffffff06}.table__name{color:var(--text)}.table__edge{color:var(--dim);margin-top:1px;font-size:10px;display:block}.badge{letter-spacing:.03em;border-radius:3px;align-items:center;height:18px;padding:0 6px;font-size:10px;display:inline-flex}.badge--warn{color:var(--accent);background:var(--accent-weak)}.issues{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.issues li{color:#ffb9b9;background:var(--danger-weak);border-radius:4px;padding:5px 7px;font-size:11px}.issues li.is-warn{color:#f2c87e;background:var(--accent-weak)}.stat{background:var(--bg-2);border:1px solid var(--line);border-radius:4px;padding:6px 8px}.stat__k{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);font-size:9px}.stat__v{font-variant-numeric:tabular-nums;margin-top:1px;font-size:14px}.dim{color:var(--dim)}.view__hint{color:var(--dim);pointer-events:none;-webkit-user-select:none;user-select:none;background:#0f1114a8;border-radius:3px;padding:3px 6px;font-size:10px;position:absolute;bottom:8px;left:10px}.table th.num{text-align:right}.bom-foot{border-top:1px solid var(--line);color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:8px;padding-top:7px;font-size:10px;display:flex}.statusbar__error{color:var(--danger)}.statusbar__warn{color:var(--accent)}.statusbar__ok{color:var(--ok)}.statusbar__next{color:#14171a;background:var(--accent);cursor:pointer;white-space:nowrap;border:0;border-radius:4px;margin-left:10px;padding:2px 10px;font-size:11px;font-weight:600}.statusbar__next:hover{filter:brightness(1.08)}.statusbar__next--error{background:var(--danger);color:#fff}.statusbar__next--warn{color:#1a1c1f;background:#d59a3a}.statusbar__next--ok{background:var(--ok);color:#10231a}.tab-sep{background:var(--line);width:1px;height:14px;margin:0 2px}.seg{background:var(--bg-0);border:1px solid var(--line);border-radius:5px;gap:2px;padding:2px;display:flex}.seg__btn{height:22px;color:var(--muted);background:0 0;border:0;border-radius:3px;padding:0 9px;font-size:11px}.seg__btn:hover{color:var(--text)}.seg__btn--on{color:var(--text);background:var(--bg-3)}.opening{background:var(--bg-2);border:1px solid var(--line);border-radius:5px;margin-bottom:10px;padding:8px}.opening:last-child{margin-bottom:0}.link{color:var(--accent);background:0 0;border:0;padding:0;font-size:10px}.link:hover{text-decoration:underline}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.material-block{margin-bottom:9px}.material-block:last-child{margin-bottom:0}.material-tools{align-items:center;gap:8px;margin-top:3px;font-size:10px;display:flex}.mat-dot{background:var(--ok);border-radius:50%;width:5px;height:5px}.view__hint--right{left:auto;right:12px}.viewcube-wrap{z-index:6;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:10px;right:12px}.viewcube{width:60px;height:60px;transform-style:preserve-3d;position:relative}.viewcube__face{letter-spacing:.08em;width:60px;height:60px;color:var(--muted);backface-visibility:hidden;cursor:pointer;background:#1b1f26d6;border:1px solid #ffffff38;border-radius:3px;justify-content:center;align-items:center;padding:0;font-size:8px;display:flex;position:absolute;inset:0}.viewcube__face:hover{color:var(--text);background:#e0a33e33;border-color:#e0a33eb3}.viewcube__face--front{transform:translateZ(30px)}.viewcube__face--back{transform:rotateY(180deg)translateZ(30px)}.viewcube__face--right{transform:rotateY(90deg)translateZ(30px)}.viewcube__face--left{transform:rotateY(-90deg)translateZ(30px)}.viewcube__face--top{transform:rotateX(90deg)translateZ(30px)}.viewcube__home{width:26px;height:26px;color:var(--muted);border:1px solid var(--line-2);background:#15181ddb;border-radius:4px;justify-content:center;align-items:center;font-size:14px;display:flex}.viewcube__home:hover{color:var(--accent);border-color:var(--accent)}.wallmode{z-index:6;border:1px solid var(--line);background:#15181dd1;border-radius:5px;gap:2px;padding:2px;display:flex;position:absolute;top:10px;left:12px}.popover{width:320px;color:var(--text);background:var(--bg-1);border:1px solid var(--line-2);box-shadow:var(--shadow);border-radius:8px;padding:14px 16px}.popover h4{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin:0 0 10px;font-size:11px}.popover dl{grid-template-columns:auto 1fr;gap:6px 16px;margin:0;font-size:12px;display:grid}.popover dt{color:var(--muted);white-space:nowrap}.popover dd{margin:0}.popover::backdrop{background:#00000073}.minimap--open{z-index:30;width:min(760px,62vw);height:auto;top:24px;bottom:24px;left:24px;box-shadow:0 24px 70px #0009}.minimap__toggle{z-index:2;width:24px;height:24px;color:var(--muted);border:1px solid var(--line-2);background:#15181de0;border-radius:4px;justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;bottom:7px;right:7px}.minimap__toggle:hover{color:var(--accent);border-color:var(--accent)}.present{z-index:50;border:1px solid var(--line-2);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#15181df0;border-radius:8px;align-items:center;gap:10px;padding:7px 9px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.present__label{letter-spacing:.12em;text-transform:uppercase;color:var(--dim);font-size:10px}.present__list{gap:4px;max-width:46vw;display:flex;overflow-x:auto}.present__view{background:var(--bg-2);border:1px solid var(--line);border-radius:4px;align-items:center;display:flex;overflow:hidden}.present__apply{height:26px;color:var(--text);white-space:nowrap;background:0 0;border:0;padding:0 9px;font-size:11px}.present__apply:hover{background:var(--bg-3)}.present__del{width:22px;height:26px;color:var(--dim);border:0;border-left:1px solid var(--line);background:0 0}.present__del:hover{color:var(--danger)}.present__hint{color:var(--dim);font-size:11px}.numfield{background:var(--bg-0);border:1px solid var(--line);border-radius:var(--radius-sm);grid-template-columns:22px minmax(0,1fr) 22px;height:28px;display:grid;overflow:hidden}.numfield:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-weak)}.numfield__btn{color:var(--muted);background:var(--bg-2);border:0;justify-content:center;align-items:center;font-size:14px;display:flex}.numfield__btn:hover{color:var(--accent);background:var(--bg-3)}.numfield__input{text-align:center;width:100%;min-width:0;color:var(--text);font-variant-numeric:tabular-nums;appearance:textfield;background:0 0;border:0}.numfield__input:focus{outline:none}.numfield__input::-webkit-inner-spin-button{appearance:none;margin:0}.numfield__input::-webkit-outer-spin-button{appearance:none;margin:0}.preset{text-align:left;background:var(--bg-2);border:1px solid var(--line);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:5px;flex-direction:column;gap:1px;padding:7px 8px;display:flex}.preset:hover,.preset:focus-visible{background:var(--bg-3);border-color:var(--accent);outline:none}.preset:active{cursor:grabbing}.view__body--drop:after{content:"Отпусти, чтобы добавить";z-index:20;color:var(--accent);pointer-events:none;background:#e0a33e14;border:2px dashed #e0a33eb3;border-radius:4px;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;inset:0}.module-preview{border:1px solid var(--line);border-radius:var(--radius);background:radial-gradient(circle at 50% 35%,#262c36e6,#0f1114f2);margin-bottom:9px;position:relative;overflow:hidden}.module-preview__canvas{cursor:grab;touch-action:none;width:100%;height:100%;display:block}.module-preview__canvas:active{cursor:grabbing}.module-preview__views{opacity:.72;gap:3px;display:flex;position:absolute;top:5px;right:5px}.module-preview__views:hover{opacity:1}.tab--sm{letter-spacing:.02em;height:19px;padding:0 6px;font-size:9.5px}.modal{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#06080a9e;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal__win{background:var(--bg-1);border:1px solid var(--line-2);width:min(1120px,96vw);height:min(720px,92vh);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.modal__head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 14px;display:flex}.modal__title{color:var(--text);font-size:13px;font-weight:600}.modal__sub{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);font-size:10px}.modal__tools{align-items:center;gap:6px;margin-left:auto;display:flex}.modal__tools .btn:last-child{width:26px;padding:0;font-size:15px}.detail{flex:1;grid-template-columns:minmax(0,1fr) 330px;min-height:0;display:grid}.detail__view .module-preview{flex:1;margin:0}.detail__view .module-preview__canvas{height:100%}.detail__gaps,.detail__list{margin:0;padding:0;font-size:11px;list-style:none}.detail__gaps li,.detail__list li{color:var(--muted);border-radius:3px;align-items:baseline;gap:8px;padding:3px 6px;display:flex}.detail__gaps li b{color:var(--text);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:500}.detail__list{flex:1;min-height:0;overflow-y:auto}.detail__list li{cursor:pointer}.detail__list li:hover,.detail__gaps li.is-active,.detail__list li.is-active{background:var(--bg-3);color:var(--text)}.detail__list li.is-active{outline:1px solid #e0a33e73}.detail__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.detail__size{color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}.chan__range{width:100%;height:3px;accent-color:var(--accent);margin:5px 0 3px}.part-popup__actions .btn:first-child{flex:1}.chan{border-bottom:1px dashed var(--line);margin-bottom:8px;padding-bottom:7px}.chan__head{color:var(--muted);justify-content:space-between;font-size:10.5px;display:flex}.chan__head b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:500}.chan__keys{font-variant-numeric:tabular-nums;margin:2px 0 4px;padding:0;font-size:10.5px;list-style:none}.chan__keys li{color:var(--muted);border-radius:3px;align-items:center;gap:8px;padding:1px 4px;display:flex}.chan__keys li:hover{background:var(--bg-3)}.chan__keys b{color:var(--text);margin-left:auto;font-weight:500}.chan__del{width:16px;height:16px;color:var(--dim);background:0 0;border:0;border-radius:3px;padding:0;font-size:12px;line-height:1}.chan__del:hover{color:var(--danger);background:var(--danger-weak)}.chan__empty{color:var(--dim);font-style:italic}.chan__actions{gap:5px;display:flex}.chan__actions--row{margin-top:2px;padding-top:4px}.group-popup__actions .btn{flex:auto}.outliner__body{padding:4px 6px 8px;font-size:12px}.tree__row{cursor:default;min-height:26px;color:var(--muted);border-radius:3px;align-items:center;gap:5px;padding:2px 6px;display:flex}.tree__row:hover{background:var(--bg-3)}.tree__row--item{cursor:pointer}.tree__row.is-active{background:var(--accent-weak);color:var(--text);box-shadow:inset 0 0 0 1px #e0a33e59}.tree__row--root{color:var(--text);font-weight:600}.tree__row--group{color:var(--text)}.tree__row--nested{padding-left:14px}.tree__row--sub{color:var(--muted);cursor:pointer}.tree__row--part{cursor:pointer;padding-left:18px;font-size:11.5px}.tree__twist{width:16px;height:20px;color:var(--dim);background:0 0;border:0;padding:0;font-size:10px;line-height:1}.tree__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tree__meta{color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:10.5px}.tree__act{height:20px;color:var(--dim);white-space:nowrap;background:0 0;border:0;border-radius:4px;padding:0 5px;font-size:10.5px;line-height:1}.tree__act:hover{color:var(--text);background:var(--bg-4)}.tree__act:disabled{opacity:.35}.tree__subs{border-left:1px solid var(--line);margin:2px 0 4px 10px;padding-left:6px}.tree__hint{color:var(--dim);align-items:center;gap:5px;padding:3px 5px;font-size:10.5px;display:flex}.tree__hint--actions{flex-wrap:wrap;gap:3px}.tree__sep{flex:1}.tree__group{margin-top:1px}.tree__dot{background:var(--bg-4);border-radius:50%;flex:none;width:6px;height:6px}.tree__dot.window{background:#7fb6cc}.tree__dot.door{background:#c98f4a}.tree__coords{border-top:1px solid var(--line);margin-top:8px;padding-top:7px}.tree__coords-title{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);justify-content:space-between;margin-bottom:5px;font-size:10px;display:flex}.coords-row{align-items:center;gap:5px;display:flex}.coord{min-width:0;color:var(--dim);flex:1;align-items:center;gap:3px;font-size:10px;display:flex}.coord input{width:100%;min-width:0;height:28px;color:var(--text);background:var(--bg-0);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:3px;padding:0 4px}.coord.is-locked input{color:var(--dim);border-style:dashed}.coord__lock{height:28px;font-size:13px}.ctx .panel__body{padding:8px 10px 10px}.ctx__sub{color:var(--dim);font-variant-numeric:tabular-nums;margin-bottom:7px;font-size:11px}.ctx__note{color:var(--dim);font-size:11px}.ctx__coords{border-top:1px solid var(--line);margin:8px 0 6px;padding-top:7px}.ctx__actions{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.ctx__details{border-top:1px solid var(--line);margin-top:10px;padding-top:6px}.ctx__details summary{cursor:pointer;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);font-size:10.5px}.ctx__details .panel{background:0 0;border:0}.ctx__details .panel__head,.ctx__details .panel__body{padding-left:0;padding-right:0}.ctx__push{align-items:center;gap:5px;margin-top:6px;display:flex}.ctx__push .field__label{flex:1}.ctx__push .btn{width:34px;padding:0;font-size:13px}.group-popup__actions--push .btn{flex:0 0 34px;padding:0;font-size:13px}.tree__row--thumb{gap:8px;min-height:58px;padding:3px 6px}.tree__row--thumb .tree__name{font-size:12px}.tree__col{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.thumb{border:1px solid var(--line);background:radial-gradient(circle at 50% 35%,#262c36e6,#0f1114f2);border-radius:4px;flex:none;display:block}.tree__row--thumb .tree__twist{align-self:flex-start}.props-win .ctx{background:0 0;border:0}.props-win .ctx .panel__head{display:none}.tree__act--add{letter-spacing:0;text-transform:none;margin-left:auto;font-size:10.5px}.modal--add .modal__win{width:min(980px,96vw);height:min(680px,92vh)}.add{flex-direction:column;min-height:0;display:flex}.add__body{flex:1;grid-template-columns:minmax(0,1fr) 330px;min-height:0;display:grid}.add__catalog{border-right:1px solid var(--line);flex-direction:column;gap:8px;min-width:0;padding:12px;display:flex;overflow-y:auto}.add__tabs{background:var(--bg-2);border:1px solid var(--line);border-radius:6px;gap:4px;padding:3px;display:flex}.add__tab{color:var(--muted);background:0 0;border:0;border-radius:4px;flex:1;padding:6px 10px;font-size:11.5px}.add__tab:hover{color:var(--text)}.add__tab--on{color:var(--text);background:var(--bg-4)}.add__search{width:100%}.add__groups{flex-wrap:wrap;gap:4px;display:flex}.chip{color:var(--muted);border:1px solid var(--line);background:0 0;border-radius:999px;padding:3px 9px;font-size:10.5px;line-height:1.6}.chip:hover{color:var(--text);border-color:var(--line-2)}.chip--on{color:#1b1d20;background:var(--accent);border-color:var(--accent)}.add__grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-content:start;gap:6px;display:grid}.add__grid--openings{grid-template-columns:1fr 1fr}.cat-card{text-align:left;color:var(--text);background:var(--bg-2);border:1px solid var(--line);border-radius:7px;grid-template-rows:auto auto auto;grid-template-columns:32px minmax(0,1fr);gap:1px 8px;padding:8px;display:grid;position:relative}.cat-card:hover{background:var(--bg-3);border-color:var(--line-2)}.cat-card--on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.cat-card__mark{width:30px;height:30px;color:var(--accent);background:var(--accent-weak);border-radius:6px;grid-row:1/span 3;justify-content:center;place-self:center;align-items:center;font-size:13px;font-weight:700;display:flex}.cat-card__name{font-size:11.5px;font-weight:600}.cat-card__hint{color:var(--dim);font-size:10px}.cat-card__group{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);font-size:9px}.cat-empty{text-align:center;color:var(--dim);grid-column:1/-1;padding:26px 8px;font-size:11px}.add__settings{background:var(--bg-1);flex-direction:column;gap:8px;min-width:0;padding:12px;display:flex;overflow-y:auto}.add__settings-head{border-bottom:1px solid var(--line);align-items:baseline;gap:8px;padding-bottom:6px;font-size:12px;display:flex}.add__row2{grid-template-columns:1fr 1fr;gap:6px;display:grid}.add__row3{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.add__note{margin:2px 0 0;font-size:10px;line-height:1.45}.add__foot{border-top:1px solid var(--line);flex:none;align-items:center;gap:8px;padding:9px 12px;font-size:10.5px;display:flex}.add__foot .spacer{flex:1}@media (width<=760px){.add__body{grid-template-columns:1fr;overflow-y:auto}.add__catalog{border-right:0;border-bottom:1px solid var(--line);overflow:visible}.add__settings{overflow:visible}}.modal--constructor .modal__win{width:min(1040px,96vw);height:min(720px,92vh)}.fc{flex-direction:column;min-height:0;display:flex}.fc__body{flex:1;grid-template-columns:380px minmax(0,1fr);min-height:0;display:grid}.fc__settings{border-right:1px solid var(--line);flex-direction:column;gap:8px;min-width:0;padding:12px;display:flex;overflow-y:auto}.fc__tabs{background:var(--bg-2);border:1px solid var(--line);border-radius:6px;gap:4px;padding:3px;display:flex}.fc__tab{color:var(--muted);background:0 0;border:0;border-radius:4px;flex:1;padding:6px 10px;font-size:11.5px}.fc__tab--on{color:var(--text);background:var(--bg-4)}.fc__presets{flex-wrap:wrap;gap:4px;display:flex}.fc__blocks{flex-direction:column;gap:6px;display:flex}.fc-block{background:var(--bg-2);border:1px solid var(--line);border-radius:7px;padding:7px}.fc-block__head{align-items:center;gap:6px;margin-bottom:5px;display:flex}.fc-block__no{width:20px;height:20px;color:var(--accent);background:var(--accent-weak);border-radius:4px;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.fc-block__type{flex:1;min-width:0}.fc-block__acts{gap:1px;display:flex}.fc-block__row{grid-template-columns:1fr 1.4fr;gap:6px;display:grid}.fc__add{gap:6px;display:flex}.fc__empty{text-align:center;padding:14px;font-size:11px}.fc__hint{font-size:10px;line-height:1.45}.fc__warn{color:#f0d29a;background:var(--accent-weak);border:1px solid #e0a33e59;border-radius:6px;margin:2px 0 0;padding:8px 10px 8px 22px;font-size:10.5px;line-height:1.5}.fc__preview{background:radial-gradient(circle at 50% 30%, #262c3673, transparent 60%), var(--bg-0);flex-direction:column;gap:10px;min-width:0;padding:16px;display:flex;overflow-y:auto}.fc__preview-head{align-items:baseline;gap:8px;font-size:12px;display:flex}.fc__elevation{border:1px solid var(--line-2);width:min(420px,100%);box-shadow:var(--shadow);background:#14171b;border-radius:4px;flex-direction:column;gap:3px;margin:0 auto;padding:3px;display:flex}.fc__band{border-radius:2px;flex:1 1 0;justify-content:space-between;align-items:center;gap:8px;min-height:22px;padding:2px 8px;font-size:10.5px;display:flex;overflow:hidden}.fc__band span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fc__band small{color:#0000008c;white-space:nowrap;font-size:9.5px}.fc__band--open{color:var(--muted);border:1px dashed var(--line-2);background:repeating-linear-gradient(135deg,#1b1f24,#1b1f24 8px,#21262c 8px 16px);justify-content:center}.fc__legend{text-align:center;font-size:10px;line-height:1.5}.fc__foot{border-top:1px solid var(--line);flex:none;align-items:center;gap:8px;padding:9px 12px;font-size:10.5px;display:flex}.fc__foot .spacer{flex:1}@media (width<=820px){.fc__body{grid-template-columns:1fr;overflow-y:auto}.fc__settings{border-right:0;border-bottom:1px solid var(--line);overflow:visible}.fc__preview{overflow:visible}}.ctx__outline{flex-direction:column;gap:4px;margin-top:6px;display:flex}.ctx__outline-row{grid-template-columns:22px 1fr 1fr 22px;align-items:center;gap:4px;display:grid}.ctx__outline-no{width:20px;height:20px;color:var(--accent);background:var(--accent-weak);border-radius:4px;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.ctx__outline .coord{min-width:0}.ctx__part{background:var(--bg-2);border:1px solid var(--line);border-radius:6px;padding:6px}.ctx__part-head{align-items:center;gap:6px;margin-bottom:4px;display:flex}.ctx__part-head .tree__act{margin-left:auto}.ctx__part-grid{grid-template-columns:1fr 1fr;gap:4px;display:grid}.fc__cutouts{border-top:1px solid var(--line);flex-direction:column;gap:5px;padding-top:6px;display:flex}.fc__cutouts-head{align-items:center;gap:8px;display:flex}.fc__cutouts-head .field__label{flex:1}.fc__cutout{background:var(--bg-2);border:1px solid var(--line);border-radius:6px;padding:6px}.fc__cutout-head{align-items:center;gap:6px;margin-bottom:4px;display:flex}.fc__cutout-head .tree__act{margin-left:auto}.modal--projects .modal__win{width:min(760px,94vw);height:min(520px,88vh)}.pm{flex-direction:column;min-height:0;display:flex}.pm__body{flex:1;grid-template-columns:minmax(0,1fr) 300px;min-height:0;display:grid}.pm__list{border-right:1px solid var(--line);min-width:0;padding:8px;overflow-y:auto}.pm__row{width:100%;color:var(--text);text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;align-items:baseline;gap:8px;padding:8px 10px;display:flex}.pm__row:hover{background:var(--bg-2)}.pm__row--on{background:var(--accent-weak);border-color:#e0a33e59}.pm__name{font-size:12px;font-weight:600}.pm__id{color:var(--dim);margin-left:auto;font-size:9.5px}.pm__empty{text-align:center;padding:20px;font-size:11px}.pm__new{flex-direction:column;gap:8px;min-width:0;padding:12px;display:flex;overflow-y:auto}.pm__hint{margin:0;font-size:10px;line-height:1.5}.pm__error{color:#f0a09a;margin:0;font-size:10.5px}.ctx__assembly{color:var(--muted);margin:4px 0 0;padding-left:18px;font-size:10.5px;line-height:1.6}.ctx__actions--wrap{flex-wrap:wrap}.ctx__wall-row{border-bottom:1px solid var(--line);align-items:center;gap:6px;min-height:26px;padding:2px 4px;font-size:10.5px;display:flex}.ctx__wall-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ctx__dot{background:var(--dim);border-radius:50%;flex:0 0 8px;width:8px;height:8px}.ctx__dot.window{background:#8fb9cc}.ctx__dot.door{background:var(--accent)}.ctx__dot.arch{background:#9a9f8f}.ctx__wall-item{border-bottom:1px solid var(--line);padding:4px 0}.fc__details{flex-direction:column;gap:8px;font-size:10.5px;display:flex}.fc__dims{background:var(--bg-2);border:1px solid var(--line);border-radius:6px;grid-template-columns:1fr auto;gap:3px 8px;padding:7px;display:grid}.fc__dims span{color:var(--dim)}.fc__dims b{color:var(--text);font-variant-numeric:tabular-nums}.fc__drawers{background:var(--bg-2);border:1px solid var(--line);border-radius:6px;flex-direction:column;gap:3px;padding:7px;display:flex}.fc__drawer-row{color:var(--muted);gap:6px;font-size:9.5px;display:flex}.fc__group summary{cursor:pointer;color:var(--muted);font-weight:600}.fc__element{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:6px;padding:2px 0 2px 8px;display:flex}.fc__element b{color:var(--text);font-variant-numeric:tabular-nums}.ctx__wall-item.is-active{background:var(--accent-weak);border-radius:4px;box-shadow:inset 0 0 0 1px #e0a33e59}.minimap__tools{z-index:2;gap:3px;display:flex;position:absolute;top:6px;right:6px}.minimap__btn{min-width:22px;height:22px;color:var(--text);border:1px solid var(--line-2);background:#15181de6;border-radius:4px;padding:0 5px;font-size:12px;line-height:1}.minimap__btn:hover{background:var(--bg-4);border-color:var(--accent)}.minimap__btn--wide{font-size:9.5px}.sidebar__tree{flex:auto;min-height:0;overflow:hidden auto}.wb{flex-direction:column;gap:8px;display:flex}.wb__head{align-items:center;gap:8px;display:flex}.wb__name{flex:1;min-width:0}.wb__tabs{background:var(--bg-0);border:1px solid var(--line-2);border-radius:6px;flex-wrap:nowrap;flex:none;gap:3px;padding:4px;display:flex}.wb__tab{text-align:center;width:100%;height:28px;color:var(--muted);background:var(--bg-2);border:1px solid var(--line);border-radius:5px;padding:0 5px;font-size:10.5px;font-weight:500}.wb__tab:hover{color:var(--text);background:var(--bg-3);border-color:var(--line-2)}.wb__tab--on{color:#1b1305;background:var(--accent);border-color:#0000;font-weight:650}.wb__row{gap:8px;display:grid}.wb__row--2{grid-template-columns:1fr 1fr}.wb__row--3{grid-template-columns:repeat(3,1fr)}.wb__label{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);justify-content:space-between;align-items:center;gap:8px;font-size:10px;display:flex}.wb__note{margin:0;font-size:10.5px;line-height:1.5}.wb__actions{flex-wrap:wrap;gap:5px;display:flex}.wb__coords{flex-direction:column;gap:4px;display:flex}.wb__stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;display:grid}.wb__stats .stat{padding:5px 6px}.wb__stats .stat__v{font-size:12px}.wb__danger:hover{color:var(--danger);border-color:var(--danger)}.wb__chips{flex-wrap:wrap;gap:4px;display:flex}.wb__elevation{background:var(--bg-0);border:1px solid var(--line);border-radius:5px;flex-direction:column;width:100%;display:flex;overflow:hidden}.wb__cutouts{flex-direction:column;gap:6px;display:flex}.wb__rel{border-top:1px solid #e0a33e40;margin:7px 0 0;padding:6px 0 0;font-size:11px;list-style:none}.wb__rel li{color:var(--muted);gap:8px;padding:2px 0;display:flex}.wb__rel li b{color:var(--text);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:500}.wb__groups{flex-direction:column;gap:5px;display:flex}.wb__group{border-top:1px solid var(--line);padding-top:6px}.wb__group>summary{cursor:pointer;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);font-size:10px;list-style:none}.wb__group>summary::-webkit-details-marker{display:none}.wb__drawers{flex-direction:column;gap:4px;display:flex}.wb__drawer{text-align:left;color:var(--muted);background:var(--bg-2);border:1px solid var(--line);border-radius:4px;grid-template-columns:34px 1fr 1fr;align-items:center;gap:6px;padding:5px 7px;font-size:10.5px;display:grid}.wb__drawer:hover{border-color:var(--line-2)}.wb__drawer--on{background:var(--accent-weak);border-color:#e0a33e99}.wb__drawer b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:500}.wb__drawer-no{color:var(--accent)}.inspector .ctx>.panel__head{display:none}.inspector .ctx .panel__body{padding-top:0}.modal--object{-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:0 0;padding:0}.object-modal{pointer-events:auto;width:390px;height:auto;max-height:calc(100vh - 110px);position:fixed;overflow:hidden}.object-modal--full{width:min(1120px,100vw - 32px);height:min(920px,100vh - 100px)}.object-modal__back{width:26px;padding:0;font-size:15px}.object-modal__body{flex:1;min-height:0;padding:10px 12px 14px;overflow-y:auto}.object-modal__body--ctx{padding-top:4px}.object-modal .ctx>.panel__head{display:none}.object-modal .ctx .panel__body{padding-top:0}.om{flex-direction:column;flex:1;gap:9px;min-height:0;padding:10px 12px 14px;display:flex;overflow-y:auto}.om__toggles,.om__actions{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.om__label{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);justify-content:space-between;align-items:baseline;font-size:10px;display:flex}.om__coords{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:7px;display:grid}.om__coords--two{grid-template-columns:repeat(2,minmax(0,1fr))}.om__z{align-items:flex-end;gap:4px;display:flex}.om__z .field{flex:1}.om__lock{width:30px;height:28px;margin-bottom:0;padding:0}.om__danger:hover{color:var(--danger);border-color:var(--danger)}.om__push-label{font-size:10.5px}.om__full-btn{width:100%;height:32px;margin-top:2px}.om__hint{margin:0;font-size:10px;line-height:1.45}@media (width<=1180px){.object-modal,.object-modal--full{width:calc(100vw - 16px)}}.object-modal--full .object-modal__body{flex-direction:column;min-height:0;display:flex;overflow:hidden}.wb{height:100%;min-height:0}.wb__top{flex:0 0 62%;grid-template-columns:minmax(0,1.15fr) minmax(250px,.85fr);gap:10px;min-height:0;max-height:62%;display:grid;overflow:hidden}.wb__visual{min-width:0;min-height:0;display:flex}.wb__visual .module-preview{flex:1;height:100%;margin:0}.wb__visual .module-preview__canvas{height:100%}.wb__visual{position:relative}.wb__visual-inner{flex:auto;min-width:0;height:100%;min-height:0;margin-left:26px;display:flex}.wb-mode-rail{z-index:5;border:1px solid var(--line);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0f1114d1;border-radius:7px;flex-direction:column;gap:2px;width:26px;padding:6px 3px;display:flex;position:absolute;top:4px;bottom:4px;left:0}.wb-mode-rail__btn{min-height:0;color:var(--dim);cursor:pointer;background:0 0;border:0;border-radius:4px;flex:1 1 0;padding:8px 0;transition:color .15s,background .15s}.wb-mode-rail__btn span{writing-mode:vertical-rl;letter-spacing:.09em;text-transform:uppercase;font-size:9px;font-weight:650;display:block;transform:rotate(180deg)}.wb-mode-rail__btn:hover:not(:disabled){color:var(--text);background:var(--bg-2)}.wb-mode-rail__btn--on{color:#1b1305;background:var(--accent)}.wb-mode-rail__btn:disabled{opacity:.35;cursor:default}.wb__view-ctl{z-index:5;border:1px solid var(--line);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0f1114cc;border-radius:6px;gap:2px;padding:2px;display:flex;position:absolute;top:6px;right:6px}.wb__view-btn{width:26px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;font-size:13px;display:grid}.wb__view-btn:hover{color:var(--text);background:var(--bg-2)}.wb__view-btn--on{color:#1b1305;background:var(--accent)}.wb__size{background:var(--bg-0);border:1px solid var(--line);border-radius:var(--radius-sm);padding:7px 8px}.wb__size .wb__label{margin-bottom:5px}.wb__size-row{grid-template-columns:1fr;gap:5px;display:grid}.wb-slide-enter-active,.wb-slide-leave-active{transition:transform .22s,opacity .22s}.wb-slide-enter-from{opacity:0;transform:translate(22px)}.wb-slide-leave-to{opacity:0;transform:translate(-22px)}.wb__side{flex-direction:column;gap:7px;min-width:0;min-height:0;max-height:100%;padding-right:2px;display:flex;overflow-y:auto}.wb__quick{flex-wrap:wrap;gap:4px;display:flex}.wb__eye{color:var(--accent);border-color:#e0a33e80}.wb__side-sel{background:var(--accent-weak);border-radius:var(--radius-sm);border:1px solid #e0a33e59;padding:7px 9px}.wb__side-sel-head{align-items:baseline;gap:8px;font-size:11px;display:flex}.wb__side-sel-head b{color:#f0d29a;font-weight:600}.wb__side-sel-head span{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}.wb__lists{border-top:1px solid var(--line);flex-direction:column;flex:auto;gap:8px;min-height:0;padding-top:8px;display:flex;overflow-y:auto}@media (width<=900px){.wb__top{flex:none;grid-template-columns:1fr}.wb__visual{height:240px}}.view__dims{pointer-events:none;z-index:4;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.view__dims line{stroke:#ffc55d;stroke-width:2.2px;stroke-linecap:round;filter:drop-shadow(0 1px 2px #000000d9)}.view__dims circle{fill:#e0a33ef2}.view__dims text{font-variant-numeric:tabular-nums;fill:#fff8e8;stroke:#050709f2;stroke-width:3.6px;paint-order:stroke fill;text-anchor:middle;dominant-baseline:middle;filter:drop-shadow(0 1px 2px #000c);font:700 13px/1 ui-sans-serif,system-ui,sans-serif}.wb__side-chain{border-top:1px solid var(--line);padding-top:6px}.wb__side-chain .detail__gaps li{padding:2px 4px}.wb__side-dims{color:var(--dim);background:var(--bg-0);border:1px solid var(--line);border-radius:var(--radius-sm);grid-template-columns:auto 1fr;gap:3px 10px;padding:7px 9px;font-size:10.5px;display:grid}.wb__side-dims b{text-align:right;color:var(--text);font-variant-numeric:tabular-nums;font-weight:500}.tree__act--on{color:var(--accent);background:var(--accent-weak);border-color:#e0a33e66}.wb__bounds{color:var(--dim);border-top:1px solid #e0a33e40;grid-template-columns:1fr auto;gap:2px 10px;margin-top:7px;padding-top:6px;font-size:10.5px;display:grid}.wb__bounds b{color:var(--text);font-variant-numeric:tabular-nums;text-align:right;font-weight:500}.wb__edge{color:var(--muted);margin-top:6px;font-size:10px}.matlib{width:min(1040px,94vw);height:min(760px,90vh)}.matlib__body{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px;display:flex;overflow:hidden}.matlib__filters{flex-direction:column;gap:7px;display:flex}.matlib__chips{flex-wrap:wrap;gap:4px;display:flex}.matlib__grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));align-content:start;gap:8px;min-height:0;display:grid;overflow-y:auto}.matcard{text-align:left;background:var(--bg-2);border:1px solid var(--line);border-radius:6px;flex-direction:column;gap:5px;padding:8px;display:flex}.matcard:hover{border-color:var(--accent)}.matcard__swatch{background-image:linear-gradient(135deg,#ffffff1f,#0000002e);border:1px solid;border-radius:4px;height:64px}.matcard__name{color:var(--text);font-size:11px}.matcard__brand{color:var(--accent);letter-spacing:.02em;font-size:9px}.matcard__meta{color:var(--dim);font-size:9.5px}.matlib__url{border-top:1px solid var(--line);flex-direction:column;gap:4px;padding-top:8px;display:flex}.matlib__url-row{grid-template-columns:minmax(0,1fr) auto auto;gap:6px;display:grid}.matlib__file{cursor:pointer;position:relative;overflow:hidden}.matlib__file input{opacity:0;cursor:pointer;position:absolute;inset:0}.matlib__hint{color:var(--dim);font-size:9.5px;line-height:1.4}.wb__cost-line{align-items:flex-start}.wb__cost-name{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.wb__cost-name small{color:var(--dim);font-size:9.5px}.wb__cost-total{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}.wb__cost-grand{font-size:12px}.wb__cost-grand b{color:var(--accent);font-size:14px}.history{width:min(720px,94vw);height:min(640px,88vh)}.history__body{flex:1;min-height:0;padding:10px 14px 14px;overflow-y:auto}.history__list{margin:0;padding:0;list-style:none}.history__list li{border-bottom:1px solid var(--line);grid-template-columns:110px 1fr;gap:10px;padding:7px 4px;font-size:11.5px;display:grid}.history__time{color:var(--dim);font-variant-numeric:tabular-nums}.history__label{color:var(--text)}.part-pill{z-index:6;color:#1b1305;background:var(--accent);border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:15px;line-height:1;display:flex;position:absolute;box-shadow:0 4px 14px #00000073}.part-pill:hover{background:#eab254;transform:scale(1.06)}.om__visual .module-preview{flex:1;height:100%;margin:0}.wb__side .coords-row{grid-template-columns:1fr 1fr;gap:4px;display:grid}.wb__side .coord__lock{width:100%}.modal--settings .modal__win{width:min(900px,96vw);height:min(780px,92dvh)}.settings{flex-direction:column;min-height:0;display:flex}.settings__tabs{border-bottom:1px solid var(--line);gap:4px;padding:8px 12px;display:flex;overflow-x:auto}.settings__tabs .wb__tab{white-space:nowrap;flex:none;width:auto;min-width:120px}.settings__body{flex:1;min-height:0;padding:14px;overflow-y:auto}.settings__lead,.settings__hint{color:var(--muted);margin:0 0 12px;font-size:11.5px;line-height:1.5}.settings__grid{grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:10px 12px;margin-bottom:14px;display:grid}.settings__auto{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px 14px;padding:10px 0;display:flex}.settings__auto .check{color:var(--muted);align-items:center;gap:7px;font-size:11.5px;display:flex}.settings__auto .check input{width:16px;height:16px;accent-color:var(--accent)}.wb__overrides{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);flex-wrap:wrap;align-items:center;gap:6px;padding:8px;display:flex}.wb__overrides-list{flex-wrap:wrap;gap:4px;display:flex}.wb__override-chip{color:var(--accent);background:var(--accent-weak);border:1px solid #e0a33e59;border-radius:999px;padding:2px 7px;font-size:10.5px}@media (width<=640px){.modal{padding:8px}.modal__win{border-radius:12px;width:100%;height:min(88dvh,720px)}.modal--object{padding:0}.object-modal{border-radius:12px;top:auto!important;left:8px!important;right:8px!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;width:auto!important;max-height:84dvh!important}.object-modal--full{border-radius:0;width:100%!important;height:100dvh!important;max-height:none!important;inset:0!important}.object-modal .modal__head{z-index:2;background:var(--bg-1);padding:8px 10px;position:sticky;top:0}.object-modal .modal__sub{display:none}.object-modal--full .object-modal__body{padding:8px;overflow-y:auto}.object-modal--full .wb{height:auto}.wb__top{flex:none;grid-template-columns:1fr}.wb__visual{height:34dvh;min-height:180px}.wb__side{overflow:visible}.wb__side:not(.wb__side--overview)>.wb__quick,.wb__side:not(.wb__side--overview)>.wb__coords,.wb__side:not(.wb__side--overview)>.wb__side-sel,.wb__side:not(.wb__side--overview)>.wb__side-dims,.wb__side:not(.wb__side--overview)>.wb__note,.wb__side:not(.wb__side--overview)>.wb__side-chain{display:none}.wb__tabs{z-index:1;background:var(--bg-1);flex-wrap:nowrap;flex:none;padding-bottom:4px;position:sticky;top:0;overflow-x:auto}.wb__tab{white-space:nowrap;flex:none}.om{max-height:calc(84dvh - 48px)}.add__body,.pm__body{grid-template-columns:1fr}.matlib__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.material-row .select{min-width:104px}.settings__grid{grid-template-columns:1fr 1fr}}@media (width<=420px){.settings__grid,.matlib__grid,.wb__row--2,.wb__row--3,.om__coords{grid-template-columns:1fr}}.modal--quote .quote{width:min(860px,96vw);height:min(900px,92dvh)}.quote{flex-direction:column;min-height:0;display:flex}.quote__body{flex:1;min-height:0;padding:16px 18px 20px;overflow-y:auto}.quote__intro{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:12px;display:flex}.quote__intro p{margin-top:3px;font-size:11px}.quote__stamp{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.quote__stamp b{color:var(--accent);font-variant-numeric:tabular-nums;font-size:20px}.quote__modules{flex-direction:column;gap:8px;margin:12px 0;padding:0;list-style:none;display:flex}.quote__module{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:10px;padding:8px;display:flex}.quote__module-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.quote__module-main b{font-size:12.5px}.quote__module-main span{font-size:11px}.quote__module-price{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.quote__bad{color:var(--danger)}.quote__table{border-collapse:collapse;width:100%;margin:8px 0 12px;font-size:11.5px}.quote__table th,.quote__table td{border-bottom:1px solid var(--line);text-align:left;padding:6px 4px}.quote__table th{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);font-size:10px}.quote__table .is-right{text-align:right;font-variant-numeric:tabular-nums}.quote__totals{flex-direction:column;gap:5px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.quote__totals li{justify-content:space-between;gap:12px;padding:4px 0;display:flex}.quote__totals b{font-variant-numeric:tabular-nums}.quote__grand{border-top:1px solid var(--line-2);margin-top:4px;font-size:15px;padding-top:8px!important}.quote__note{margin-top:14px;font-size:10.5px;line-height:1.5}@media (width<=640px){.quote__body{padding:12px}.quote__intro{flex-direction:column}.quote__stamp,.quote__module{align-items:flex-start}.quote__module canvas{display:none}.quote__table{font-size:10.5px}}@media print{body *{visibility:hidden}.quote,.quote *{visibility:visible}.modal--quote{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;padding:0;display:block;position:absolute;inset:0}.modal--quote .quote{color:#111;width:100%;height:auto;max-height:none;box-shadow:none;background:#fff;border:0;position:static}.quote__tools{display:none}.quote__module,.quote__table th,.quote__table td,.quote__totals li{border-color:#bbb}.quote__stamp b,.quote__module-price{color:#111}}@media (width<=900px){.minimap--open{border-radius:8px;width:calc(100vw - 16px);height:auto;top:8px;bottom:8px;left:8px}}.modal--versions .versions{width:min(760px,96vw);height:min(720px,90dvh)}.versions{flex-direction:column;min-height:0;display:flex}.versions__new{border-bottom:1px solid var(--line);gap:8px;padding:12px 14px;display:flex}.versions__new .input{flex:1}.versions__body{flex:1;min-height:0;padding:12px 14px;overflow-y:auto}.versions__empty{padding:18px 4px;line-height:1.5}.versions__note,.versions__error{border-radius:var(--radius-sm);margin:0 0 10px;padding:7px 9px;font-size:11.5px}.versions__note{color:var(--ok);background:#57b97a1a;border:1px solid #57b97a4d}.versions__error{color:var(--danger);background:var(--danger-weak);border:1px solid #ef5b5b59}.versions__list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.versions__row{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:8px;padding:9px 10px;display:flex}.versions__main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.versions__main b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.versions__main span{font-size:10.5px}.versions__danger:hover{color:var(--danger);border-color:var(--danger)}.versions__hint{border-top:1px solid var(--line);margin:0;padding:10px 14px 14px;font-size:10.5px;line-height:1.5}@media (width<=640px){.versions__new{flex-direction:column}.versions__row{flex-wrap:wrap}.versions__main{flex-basis:100%}}.numfield{grid-template-columns:18px minmax(0,1fr) 18px;max-width:132px;height:26px}.numfield__btn{font-size:12px}.numfield__input{max-width:none;font-size:12px}.field__label{font-size:9.5px}.coord input{max-width:98px;height:26px}.wb__row{gap:6px}.settings__grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 10px}input[type=number]{max-width:120px}input[type=number].numfield__input{max-width:none}@media (pointer:coarse){.numfield{max-width:160px;height:32px}.coord input{max-width:120px;height:32px}input[type=number]{max-width:145px}}@media (width<=640px){.settings__grid .numfield,.wb__row .numfield{max-width:150px}}.mvar{flex-direction:column;gap:10px;display:flex}.mvar__head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.mvar__hint{margin-top:3px;font-size:10.5px;line-height:1.5}.mvar__head-actions{flex:none;gap:6px;display:flex}.mvar__empty{padding:14px 4px;line-height:1.55}.mvar__card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:8px;padding:9px 10px;display:flex}.mvar__card--off{opacity:.58}.mvar__row{align-items:center;gap:6px;display:flex}.mvar__row--wrap{flex-wrap:wrap}.mvar__name{flex:1;min-width:120px}.mvar__swatch{background:var(--bg-0);border:1px solid var(--line-2);border-radius:var(--radius-sm);cursor:pointer;flex:none;width:34px;height:28px;display:block;overflow:hidden}.mvar__swatch input{opacity:0;cursor:pointer;width:100%;height:100%}.mvar__scope{width:126px}.mvar__pattern{width:104px}.mvar__parts{flex-wrap:wrap;gap:4px;display:flex}.mvar__danger:hover{color:var(--danger);border-color:var(--danger)}@media (width<=640px){.mvar__head{flex-direction:column}.mvar__head-actions{width:100%}.mvar__head-actions .btn{flex:1}.mvar__scope,.mvar__pattern{flex:120px;width:auto}}.modal--settings,.modal--versions,.modal--quote{z-index:70}.cam-switch{z-index:6;color:var(--text);border:1px solid var(--line-2);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#121519e6;border-radius:999px;align-items:center;gap:8px;padding:7px 12px 7px 9px;display:flex;position:absolute;top:12px;left:12px}.cam-switch:hover{border-color:var(--accent)}.cam-switch--first,.cam-switch--fly{background:#262014eb;border-color:#e0a33ebf}.cam-switch__icon{color:#14171a;background:var(--accent);border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:14px;display:inline-flex}.cam-switch__text{font-size:12.5px;font-weight:650}.cam-switch__hint{color:var(--muted);font-size:10px}.cam-toast{z-index:7;text-align:center;color:#fff;box-shadow:var(--shadow);pointer-events:none;background:#121519e6;border:1px solid #e0a33eb3;border-radius:12px;justify-items:center;gap:3px;padding:14px 22px;display:grid;position:absolute;top:18%;left:50%;transform:translate(-50%)}.cam-toast__icon{color:var(--accent);font-size:26px}.cam-toast b{letter-spacing:.02em;font-size:20px}.cam-toast small{max-width:320px;color:var(--muted);font-size:11px}.cam-toast-enter-active,.cam-toast-leave-active{transition:opacity .18s,transform .18s}.cam-toast-enter-from,.cam-toast-leave-to{opacity:0;transform:translate(-50%,-8px)}.bp-bar{z-index:6;background:#f5f1e8f0;border:1px solid #1f2a3152;border-radius:8px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;max-width:min(760px,100% - 24px);padding:5px 7px;display:flex;position:absolute;top:54px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000059}.bp-bar__group{align-items:center;gap:3px;display:flex}.bp-bar .tab{color:#24313a;background:#ffffff73;border-color:#1f2a313d;min-height:26px;padding:0 8px;font-size:11px}.bp-bar .tab--active{color:#f7f3ea;background:#26343d;border-color:#26343d}.bp-bar__label,.bp-bar__hint{color:#4d5a62;white-space:nowrap;font-size:10px}.walk-hud{z-index:6;color:var(--text);border:1px solid var(--line-2);pointer-events:none;background:#121519d1;border-radius:8px;justify-items:center;gap:2px;padding:6px 12px;display:grid;position:absolute;bottom:76px;left:50%;transform:translate(-50%)}.walk-hud__main{font-size:11.5px}.walk-hud__main b{color:var(--accent)}.walk-hud__lock{color:var(--muted);font-size:10px}.minimap__pos{z-index:2;color:var(--muted);background:#121519db;border-radius:4px;padding:2px 6px;font-size:9.5px;position:absolute;bottom:6px;left:6px}.minimap__pos b{color:var(--accent);font-weight:650}.minimap__room{color:var(--text);margin-left:5px}.minimap--walk{border-color:#e0a33e8c}.view__fov{color:var(--muted);gap:4px;padding-top:6px;font-size:11px;display:grid}.view__fov b{color:var(--accent)}.view__fov input{width:100%}@media (width<=900px){.cam-switch{padding:5px 9px 5px 6px;top:8px;left:8px}.cam-switch__hint{display:none}.cam-toast{padding:10px 16px;top:12%}.cam-toast b{font-size:16px}.bp-bar{gap:4px;max-width:calc(100% - 16px);top:52px}.bp-bar__hint{display:none}.walk-hud{bottom:88px}}.wallmode{top:12px;left:268px}.view__perf{top:52px;left:12px}@media (width<=900px){.wallmode{top:48px;left:8px}.view__dock{top:52px}.cam-switch{z-index:18}}.view__sel{pointer-events:none;z-index:5;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.view__sel rect,.view__sel polygon,.view__sel polyline{fill:none;stroke:#f2bd6a;stroke-width:2px;stroke-dasharray:8 6;stroke-linejoin:round;stroke-linecap:round;opacity:.9;filter:drop-shadow(0 0 3px #000000e6)}.view__dims-badge{fill:#0a0d10db;stroke-width:1px}.view__dims-edge{stroke-width:3.6px;stroke-linecap:round;opacity:.88;filter:drop-shadow(0 0 3px #000000e6)}.save-state{height:28px;color:var(--muted);border-radius:var(--radius-sm);white-space:nowrap;background:0 0;border:1px solid #0000;align-items:center;gap:7px;padding:0 8px;font-size:11px;display:inline-flex}.save-state:hover{color:var(--text);background:var(--bg-2);border-color:var(--line)}.save-state__dot{background:var(--muted);border-radius:50%;flex:none;width:7px;height:7px}.save-state--saved .save-state__dot{background:var(--ok)}.save-state--saving .save-state__dot{background:var(--accent);animation:1s ease-in-out infinite save-pulse}.save-state--dirty .save-state__dot{background:var(--warn,#d8a33e)}.save-state--error{color:var(--danger)}.save-state--error .save-state__dot{background:var(--danger)}.save-state--idle .save-state__dot{background:var(--dim)}@keyframes save-pulse{50%{opacity:.35}}.modal--menu{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;padding:0}.appmenu{width:min(340px,100vw - 24px);max-height:calc(100dvh - 70px);color:var(--text);background:var(--bg-1);border:1px solid var(--line-2);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;display:flex;position:fixed;top:52px;right:12px;overflow-y:auto}.appmenu__head{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:12px 12px 10px;display:flex}.appmenu__head>div{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.appmenu__head b{font-size:13px}.appmenu__head .dim{font-size:10.5px}.appmenu__grid{flex-direction:column;gap:2px;padding:6px;display:flex}.appmenu__item{text-align:left;color:var(--text);border-radius:var(--radius-sm);background:0 0;border:0;grid-template-columns:22px minmax(0,1fr);gap:1px 9px;padding:9px 10px;display:grid}.appmenu__item:hover{background:var(--bg-2)}.appmenu__item b{grid-column:2;font-size:12px;font-weight:600}.appmenu__item span{color:var(--dim);grid-column:2;font-size:10.5px;line-height:1.35}.appmenu__ico{color:var(--accent);opacity:.9;grid-row:1/span 2;margin-top:1px}.appmenu__current{text-align:left;width:calc(100% - 20px);color:var(--text);background:var(--accent-weak);border-radius:var(--radius-sm);border:1px solid #e0a33e59;align-items:center;gap:10px;margin:8px 10px 2px;padding:10px 12px;display:flex}.appmenu__current:hover{border-color:#e0a33ea6}.appmenu__current .app-icon{color:var(--accent);flex:none}.appmenu__current-text{flex-direction:column;min-width:0;display:flex}.appmenu__current-text b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.appmenu__current-text small{color:var(--dim);font-size:10px}.appmenu__current-arrow{color:var(--accent);margin-left:auto;font-size:16px}.appmenu__error{color:var(--danger);background:var(--danger-weak);border-radius:var(--radius-sm);border:1px solid #ef5b5b59;margin:8px 12px 0;padding:8px 9px;font-size:11px;line-height:1.4}.appmenu__hint{border-top:1px solid var(--line);margin:0;padding:8px 12px 12px;font-size:10px;line-height:1.45}.view__dock{display:none}.view__sheet{z-index:70;padding-bottom:calc(56px + env(safe-area-inset-bottom));background:#0406088c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.view__sheet-card{width:100%;max-height:min(74dvh,560px);padding:10px 12px calc(14px + env(safe-area-inset-bottom));background:var(--bg-1);border:1px solid var(--line-2);box-shadow:var(--shadow);border-radius:14px 14px 0 0;flex-direction:column;gap:12px;display:flex;overflow-y:auto}.view__sheet-grip{background:var(--line-2);border-radius:99px;align-self:center;width:38px;height:4px}.view__sheet-head{align-items:center;gap:8px;font-size:12px;font-weight:650;display:flex}.view__sheet-head .btn{margin-left:auto}.view__sheet-section{flex-direction:column;gap:5px;display:flex}.view__sheet-label{color:var(--dim);letter-spacing:.1em;text-transform:uppercase;font-size:9.5px}.view__sheet-row{flex-wrap:wrap;gap:5px;display:flex}.view__sheet-row .tab,.view__sheet-row .btn{border-color:var(--line);flex:1 0 auto;min-height:38px}.view__sheet-row .tab--active{color:#1b1305;background:var(--accent);border-color:var(--accent);font-weight:650}.thumb{width:72px;height:54px}.outliner__tabs{gap:4px;padding:0 12px 8px;display:flex}.outliner__tabs .tab{flex:1;justify-content:center;min-height:30px}.outliner__panel-head{z-index:4;background:var(--bg-1);position:sticky;top:0}.outliner__close{display:none}@media (width<=900px){.topbar{overflow:visible}.topbar .seg{display:none}.topbar .project-name{flex:auto;width:auto;min-width:0;max-width:none}.topbar .brand{flex:none}.topbar .save-hint{display:none}.save-state{justify-content:center;width:28px;height:38px;padding:0}.save-state__text,.topbar__save{display:none}.topbar__more{display:inline-flex}.topbar .btn--icon{width:30px}.view__head{display:none}.view__dock{z-index:16;border:1px solid var(--line-2);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);scrollbar-width:none;background:#101215e6;border-radius:8px;gap:3px;max-width:calc(100% - 96px);padding:3px;display:flex;position:absolute;top:8px;left:8px;overflow-x:auto}.view__dock::-webkit-scrollbar{display:none}.view__dock .tab{white-space:nowrap;min-height:34px;padding:0 9px;font-size:11px}.view__dock .tab--primary{color:#1b1305;background:var(--accent);border-color:var(--accent)}.wallmode{display:none}.outliner__close{display:inline-flex}.outliner .thumb{width:54px!important;height:40px!important}.tree__row--thumb{min-height:46px}.minimap{width:118px;height:88px}.minimap__tools{gap:2px;padding:3px}.minimap__btn{min-height:26px;font-size:10px}.appmenu{width:100%;max-height:78dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:14px 14px 0 0;inset:auto 0 0}.appmenu__item{padding:11px 12px}.appmenu__item b{font-size:13px}.appmenu__item span{font-size:11px}}@media (width<=640px){.topbar{gap:4px;padding:6px 10px}.topbar .brand__mark{margin-right:0}.topbar .project-name{font-size:13px}.mode-label{display:inline}}@media (prefers-reduced-motion:reduce){.save-state--saving .save-state__dot{animation:none}}.add__back{display:none}@media (width<=760px){.add__catalog,.add__settings{border:0}.add__step-hidden{display:none!important}.add__back{align-self:flex-start;margin-bottom:4px;display:inline-flex}.add__settings{padding-top:8px;overflow:visible}.add__foot{padding:8px 10px calc(8px + env(safe-area-inset-bottom));flex-wrap:wrap;gap:6px}.add__foot>.dim{flex:1 0 100%;font-size:10px}.add__foot .btn{flex:1}}@media (width<=900px){.wb__tabs{scrollbar-width:none;flex-wrap:nowrap;flex:none;gap:3px;min-height:34px;display:flex;overflow-x:auto}.wb__tabs::-webkit-scrollbar{display:none}.wb__tab{white-space:nowrap;flex:none;width:auto;min-width:max-content;height:34px;padding:0 12px}.object-modal:not(.object-modal--full){overflow-y:auto;bottom:calc(54px + env(safe-area-inset-bottom) + 8px)!important;max-height:calc(100dvh - 126px)!important}.modal--settings .modal__sub{display:none}.modal--settings .modal__head{padding:9px 12px}}.outliner__tabs .tab{color:var(--muted);background:var(--bg-2);border:1px solid var(--line)}.outliner__tabs .tab--active{color:#1b1305;background:var(--accent);border-color:var(--accent);font-weight:650}.wb__tabs{flex-wrap:wrap;flex:none;gap:3px;min-height:32px;display:flex}.wb__tabs::-webkit-scrollbar{display:none}.wb__tab{flex:auto;width:auto;min-width:max-content;padding:0 9px}@media (width<=900px){.app--object-open .sidebar,.app--object-open .mobile-scrim{display:none}.app:not(.app--panel-open) .sidebar{visibility:hidden;pointer-events:none}.app--panel-open .sidebar{visibility:visible;pointer-events:auto}.app--object-open .object-modal{z-index:80}.object-modal .modal__tools .tab{min-height:38px;padding:0 10px}.object-modal__back{width:36px;height:38px}.module-preview__views{border:1px solid var(--line);background:#101215c7;border-radius:7px;gap:2px;padding:3px;top:6px;right:6px}.module-preview__views .tab--sm{min-height:32px;padding:0 7px;font-size:10.5px}}.quote__mode{gap:3px;margin-top:8px;display:flex}.quote__mode .tab--sm{min-height:28px;padding:0 8px;font-size:10px}@media (width<=640px){.quote__intro{flex-wrap:wrap}.quote__stamp{align-items:flex-start}}.mvar__card{padding:9px 10px}.mvar__card-head{gap:6px}.mvar__toggle{width:24px;height:28px;color:var(--dim);border-radius:var(--radius-sm);background:0 0;border:0;flex:none;padding:0;font-size:12px}.mvar__toggle:hover{color:var(--text);background:var(--bg-2)}.mvar__mini{border:1px solid var(--line-2);border-radius:var(--radius-sm);flex:none;width:24px;height:28px}.mvar__title{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.mvar__title .mvar__name{width:100%;min-width:0;height:26px}.mvar__meta{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;overflow:hidden}.mvar__body{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:8px;padding-top:8px;display:flex}.mvar__empty{color:var(--muted);flex-direction:column;align-items:flex-start;gap:10px;padding:18px 4px;display:flex}.mvar__empty p{max-width:580px;margin:0;line-height:1.5}.mvar__empty-actions{flex-wrap:wrap;gap:6px;display:flex}@media (width<=640px){.mvar__card-head{flex-wrap:wrap}.mvar__title{flex-basis:calc(100% - 90px)}.mvar__toggle,.mvar__mini{width:28px;height:34px}.mvar__title .mvar__name{height:32px}}.toast{left:50%;bottom:calc(74px + env(safe-area-inset-bottom));z-index:120;max-width:min(520px,100vw - 24px);color:var(--text);background:var(--bg-2);border:1px solid var(--line-2);box-shadow:var(--shadow);border-radius:9px;align-items:center;gap:10px;padding:10px 12px;font-size:12px;display:flex;position:fixed;transform:translate(-50%)}.toast--error{border-color:#ef5b5b8c}.toast--success{border-color:#57b97a8c}.toast__text{flex:1;min-width:0}.toast__action,.toast__close{min-height:30px;color:var(--accent);background:var(--accent-weak);font:inherit;border:1px solid #e0a33e59;border-radius:5px;flex:none;padding:0 9px;font-weight:650}.toast__close{width:30px;color:var(--muted);background:0 0;border-color:#0000;padding:0;font-size:16px}@media (width<=900px){.toast{left:8px;right:8px;bottom:calc(64px + env(safe-area-inset-bottom));gap:8px;max-width:none;padding:9px 10px;font-size:12px;line-height:1.35;transform:none}.toast__text{flex:100%}.toast__action{margin-left:0}}.wb__toggle-part{width:100%;margin-top:6px}.wb__assembly-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.wb__assembly-plan{border:1px solid var(--line);background:var(--bg-0);color:var(--muted);border-radius:6px;flex-wrap:wrap;gap:4px 10px;padding:7px 9px;font-size:11px;display:flex}.wb__assembly-plan b{color:var(--text)}.wb__assembly-plan .is-warn{color:#e8b25a}.wb__chips--wrap{flex-wrap:wrap}.chip--off{opacity:.45;text-decoration:line-through}.wb__map{border:1px solid var(--line);background:var(--bg-0);border-radius:6px;padding:8px}.wb__map-head{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:6px;font-size:11px;display:flex}.wb__map-head b{font-size:12px}.wb__ops{gap:2px;max-height:190px;margin:6px 0 0;padding:0;list-style:none;display:grid;overflow-y:auto}.wb__ops li{background:var(--bg-1);border-radius:4px;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:2px 4px;font-size:10.5px;display:flex}.wb__op-kind{color:var(--accent);font-weight:600}.wb__draft,.wb__price-note .wb__draft{color:#e8b25a;border:1px solid #e8b25a80;border-radius:4px;padding:0 4px;font-size:10px}.wb__price-note{color:var(--muted);font-size:10.5px}.wb__cost-vat span,.wb__cost-vat b{color:var(--muted)}.dmap{gap:4px;margin:0;display:grid;position:relative}.dmap__zoom{z-index:3;gap:4px;display:flex;position:absolute;top:6px;right:6px}.dmap__zoom-btn{width:32px;height:32px;color:var(--text);border:1px solid var(--line);cursor:pointer;background:#14171be0;border-radius:6px;font-size:15px;line-height:1}.dmap__zoom-btn:hover{border-color:var(--accent)}.dmap__svg{touch-action:pan-y;background:linear-gradient(90deg,#ffffff05 1px,#0000 1px) 0 0/20px 20px,linear-gradient(#ffffff05 1px,#0000 1px) 0 0/20px 20px;border-radius:4px;width:100%;max-height:none}.dmap__svg--pan{touch-action:none;cursor:grab}.dmap__svg--pan:active{cursor:grabbing}@media (width<=900px){.dmap__zoom-btn{width:38px;height:38px;font-size:17px}.dmap__zoom{gap:6px;top:8px;right:8px}}@media print{.dmap__zoom{display:none}}.dmap__dim,.dmap__front{fill:#d7dde4;paint-order:stroke;stroke:#080a0ccc;stroke-width:3px;font-size:18px}.dmap__dim--val{fill:#ffe2ad;letter-spacing:.02em;font-weight:650}.dmap__dimbg{fill:#0a0d10d6;stroke:#e8b25a59;stroke-width:1px}.dmap__front{fill:#e8b25a;font-weight:600}.dmap__legend{color:var(--muted);flex-wrap:wrap;gap:4px 10px;font-size:10px;display:flex}.dmap__key--hint{opacity:.75;margin-left:auto;font-style:italic}.dmap__key{align-items:center;gap:4px;display:inline-flex}.dmap__key i{border-radius:50%;width:9px;height:9px;display:inline-block}.dmap__key i.dmap__key--edge{border-radius:2px;background:linear-gradient(90deg,#ff8a3d 50%,#4ea3ff 50%)!important}.bom__edge-row{align-items:center;gap:6px;margin-top:3px;display:inline-flex}.bom__edge-box{background:#ffffff08;border:1px solid #ffffff2e;border-radius:2px;flex:none;width:30px;height:20px;display:inline-block;position:relative}.bom__edge-side{display:block;position:absolute}.bom__edge-side--left{width:3px;top:0;bottom:0;left:0}.bom__edge-side--right{width:3px;top:0;bottom:0;right:0}.bom__edge-side--top{height:3px;top:0;left:0;right:0}.bom__edge-side--bottom{height:3px;bottom:0;left:0;right:0}.bom__front-dot{background:#e8b25a;border-radius:50%;width:6px;height:6px;position:absolute;top:-4px;right:-4px}.bom-legend{color:var(--muted);flex-wrap:wrap;gap:4px 10px;padding:6px 0 0;font-size:10px;display:flex}.bom-legend__item{align-items:center;gap:4px;display:inline-flex}.bom-legend__item i{border-radius:2px;width:10px;height:10px;display:inline-block}.settings__price-note{border:1px solid var(--line);background:var(--bg-0);color:var(--muted);border-radius:6px;margin:8px 0;padding:8px 10px;font-size:11px}@media print{body{background:#fff!important}.topbar,.sidebar,.statusbar,.mobilebar,.modal__tools,.wb__tabs,.wb__quick,.wb__coords,.wb__visual,.wb__side,.wb__lists>.dim,.wb__assembly-head .btn,.wb__chips{display:none!important}.modal--object,.modal--quote{background:#fff!important;display:block!important;position:static!important;inset:auto!important}.object-modal,.quote{width:auto!important;height:auto!important;max-height:none!important;box-shadow:none!important;color:#111!important;background:#fff!important;border:0!important;position:static!important;overflow:visible!important}.object-modal__body,.wb,.wb__lists{height:auto!important;max-height:none!important;display:block!important;overflow:visible!important}.wb__map{break-inside:avoid;page-break-inside:avoid;background:#fff;border-color:#ccc}.dmap__svg{background:#fff;border:1px solid #ddd;max-height:none}.dmap__dim,.dmap__front,.dmap__legend,.wb__ops li,.wb__assembly-plan,.wb__map-head{fill:#222;color:#222!important;background:#fff!important}.wb__op-kind{color:#333!important}}@media (width>=901px){.wb__top--compact{flex-basis:40%;max-height:40%}}.wb__visual{min-width:0;position:relative}.wb__mode{z-index:4;border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#121518c7;border-radius:6px;gap:2px;padding:2px;display:flex;position:absolute;top:6px;left:6px}.wb__mode .tab{min-height:26px;padding:0 9px;font-size:11px}.wb__visual--part{display:flex;overflow-y:auto}.wb__visual--part .pdetail{flex:1;min-width:0}@media (width>=901px){.wb__top--part{flex-basis:78%;grid-template-columns:minmax(0,1fr);max-height:78%}.wb__top--part .wb__side{display:none}}@media (width<=900px){.wb__top--part{flex-basis:62dvh;max-height:62dvh}.wb__visual--part{height:100%}}.pmat{border:1px solid var(--line);background:var(--bg-0);border-radius:6px;margin-top:8px;padding:6px 7px}.pmat__head{color:var(--muted);justify-content:space-between;gap:6px;margin-bottom:5px;font-size:10.5px;display:flex}.pmat__row{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.pmat__swatch{flex:none;width:26px;height:26px}.pmat__pattern{width:86px}.pmat__hint{margin-top:4px;font-size:10px}.wb__zone{grid-template-columns:1fr 1fr;align-items:end;gap:6px;display:grid}.wb__vars-now{border:1px solid var(--line);background:var(--bg-0);border-radius:6px;padding:7px 8px}.wb__vars-now .wb__label{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.wb__vars-now ul{gap:3px;margin:5px 0 0;padding:0;list-style:none;display:grid}.wb__vars-now li{align-items:center;gap:6px;font-size:10.5px;display:flex}.wb__vars-now li i{border-radius:2px;flex:none;width:10px;height:10px}.wb__vars-now li span:last-child{margin-left:auto}.pdetail{flex-direction:column;gap:8px;width:100%;min-height:0;padding:34px 10px 10px;display:flex}.pdetail__head{align-items:center;gap:8px;display:flex}.pdetail__back{flex:none}.pdetail__select{flex:1;min-width:0;max-width:280px}.pdetail__sub{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.pmat--inline{background:0 0;align-items:center;gap:4px;margin:0;padding:3px 5px;display:flex}.pdetail__head b{font-size:13px}.pdetail__head .dim{margin-left:6px;font-size:11px}.pdetail__count{color:var(--muted);white-space:nowrap;font-size:10.5px}.pdetail__body{flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex}.pdetail__map{flex:240px;min-width:200px;max-width:62%}.pdetail__map .dmap__svg{max-height:380px}.pdetail__side{flex-direction:column;flex:170px;gap:7px;min-width:160px;display:flex}.pdetail__block{border:1px solid var(--line);background:var(--bg-0);border-radius:6px;padding:7px 8px}.pdetail__label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:4px;font-size:10px}.pdetail__edges{gap:3px;margin:0;padding:0;list-style:none;display:grid}.pdetail__edges li{align-items:center;gap:5px;font-size:10.5px;display:flex}.pdetail__edges i{border-radius:2px;flex:none;width:8px;height:8px}.pdetail__edges li b{margin-left:auto}.pdetail__front{color:#e8b25a;background:#e8b25a2e;border-radius:3px;margin-left:4px;padding:0 3px;font-size:9px;font-weight:600;display:inline-block}.pdetail__hole-name{margin-bottom:4px;font-size:12px;font-weight:600}.pdetail__dims{gap:2px;margin:0;padding:0;list-style:none;display:grid}.pdetail__dims li{gap:8px;font-size:10.5px;display:flex}.pdetail__dims li span{color:var(--muted);min-width:92px}.pdetail__dims li b{word-break:break-word;font-weight:500}.pdetail__warn{color:#e8b25a;margin:5px 0 0;font-size:10px}.pdetail__basis{margin:5px 0 0;font-size:9.5px}.pdetail__hint{color:var(--muted);font-size:10.5px}.pdetail__holes{gap:2px;max-height:180px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.pdetail__holes li{cursor:pointer;border-radius:4px;grid-template-columns:8px 1fr auto;gap:2px 6px;padding:3px 4px;font-size:10px;display:grid}.pdetail__holes li:hover,.pdetail__holes li.is-on{background:#e0a33e21}.pdetail__holes li i{color:#8a8f96;border-radius:50%;width:7px;height:7px;margin-top:3px}.pdetail__holes li small{color:var(--muted);grid-column:2/-1;font-size:9.5px}.pdetail__foot{font-size:10px}.pdetail--empty{color:var(--muted);padding:24px}.wb__override-note{color:var(--muted);background:#e8b25a14;border:1px solid #e8b25a73;border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:7px 9px;font-size:10.5px;display:flex}.wb__override-note b{color:#e8b25a}.pdetail__source{margin-top:-2px;font-size:10px}.pdetail__edge-edit{gap:4px;margin:0;padding:0;list-style:none;display:grid}.pdetail__edge-edit li{align-items:center;gap:5px;font-size:10.5px;display:flex}.pdetail__edge-edit i{border:1px solid #ffffff40;border-radius:2px;flex:none;width:9px;height:9px}.pdetail__edge-edit i.is-off{border-style:dashed}.pdetail__edge-select{max-width:150px;height:26px;margin-left:auto;font-size:10.5px}.pdetail__edge-hint{margin-top:5px;font-size:9.5px}.pdetail__group{border-top:1px solid var(--line);margin-top:5px;padding-top:5px}.pdetail__group:first-of-type{border-top:0;margin-top:0;padding-top:0}.pdetail__group-head{align-items:baseline;gap:6px;font-size:10.5px;display:flex}.pdetail__group-head b{color:var(--accent)}.pdetail__group-head .dim{margin-left:auto}.pdetail__group-name{color:var(--muted);margin:1px 0 3px;font-size:9.5px}.pdetail__group-coords{flex-wrap:wrap;gap:3px;display:flex}.pdetail__coord{border:1px solid var(--line);background:var(--bg-1);color:var(--muted);cursor:pointer;border-radius:4px;padding:2px 5px;font-family:ui-monospace,monospace;font-size:9.5px}.pdetail__coord:hover,.pdetail__coord.is-on{color:#1b1305;background:var(--accent);border-color:var(--accent)}.wb__issue{cursor:pointer;-webkit-text-decoration:underline dotted #0000;text-decoration:underline dotted #0000}.wb__issue:hover{text-decoration-color:currentColor}.wb__joints{gap:2px;max-height:160px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.wb__joints li{background:var(--bg-1);border-radius:4px;align-items:baseline;gap:6px;padding:2px 4px;font-size:10.5px;display:flex}.wb__joints li b{color:var(--accent);margin-left:auto;font-weight:550}.wb__assembly-steps-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.wb__progress{background:var(--bg-2);border-radius:2px;height:4px;margin:4px 0 6px;overflow:hidden}.wb__progress i{background:var(--accent);height:100%;transition:width .18s;display:block}.wb__steps{gap:2px;margin:0;padding:0;list-style:none;display:grid}.wb__steps li{cursor:pointer;border-radius:4px;align-items:flex-start;gap:6px;padding:3px 4px;font-size:10.5px;display:flex}.wb__steps li:hover{background:var(--bg-1)}.wb__steps li.is-done{color:var(--muted);text-decoration:line-through}.wb__step-check{border:1px solid var(--line-2);color:#1b1305;border-radius:4px;flex:none;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;display:inline-flex}.wb__steps li.is-done .wb__step-check{background:var(--accent);border-color:var(--accent)}.mvar__zone-chip{align-items:center;gap:3px;display:inline-flex}.mvar__zone-x{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:0;padding:0 1px;font-size:12px;line-height:1}.mvar__zone-x:hover{opacity:1;color:#ff8a73}.statusbar__cost{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:6px;padding:0;display:inline-flex}.statusbar__cost:hover{color:var(--text);-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.statusbar__draft{color:#e8b25a;border:1px solid #e8b25a73;border-radius:3px;padding:0 3px;font-size:9.5px}.dmap__measure{color:#ffe2ad;background:#e8b25a17;border:1px solid #e8b25a59;border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:5px 7px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:13px;display:flex}.dmap__measure span b{font-weight:650}.dmap__measure em{color:var(--muted);margin-left:auto;font-size:10px;font-style:normal}.pdetail__step{min-width:26px;padding:0 6px;font-size:14px;line-height:1}.p3d{gap:4px;margin:0;display:grid}.p3d__svg{background:radial-gradient(circle at 50% 40%,#ffffff0a,#0000 70%),#0000001f;border-radius:6px;width:100%;max-height:365px}.p3d__txt{fill:var(--muted);paint-order:stroke;stroke:#080a0ccc;stroke-width:2.5px;font-size:15px}.p3d__cap{color:var(--muted);font-size:10px}.pdetail__viewtabs{align-items:center;gap:4px;display:flex}.pdetail__viewtabs .dim{margin-left:4px;font-size:9.5px}.pdetail__view-label{color:var(--dim);letter-spacing:.08em;text-transform:uppercase;font-size:9px}.pdetail__viewseg{background:var(--bg-0);border:1px solid var(--line);border-radius:6px;gap:2px;padding:2px;display:inline-flex}.pdetail__viewbtn{height:26px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:4px;padding:0 9px;font-size:10.5px;display:inline-flex}.pdetail__viewbtn span{font-size:13px;line-height:1}.pdetail__viewbtn:hover{color:var(--text);background:var(--bg-2)}.pdetail__viewbtn--on{color:#1b1305;background:var(--accent)}.pdetail__mark{grid-template-columns:118px 1fr;gap:2px 6px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:10.5px;display:grid}.pdetail__mark span{color:var(--muted);font-family:ui-sans-serif,system-ui,sans-serif}.pdetail__mark b{color:var(--text);word-break:break-word;font-weight:550}.p3dv{gap:4px;margin:0;display:grid}.p3dv__host{touch-action:none;background:#0b0d10;border-radius:6px;width:100%;height:365px;position:relative;overflow:hidden}.p3dv__canvas{outline:none;width:100%;height:100%;display:block}.p3dv__cap{color:var(--muted);font-size:10px}.dmap__key i.dmap__key--hole{border:1.5px dashed #e8b25a;border-radius:50%;background:0 0!important}.dmap__tip{z-index:200;pointer-events:none;max-width:280px;color:var(--text);pointer-events:none;background:#0e1114f5;border:1px solid #e8b25a80;border-radius:7px;gap:2px;padding:7px 9px;font-size:10.5px;display:grid;position:fixed;box-shadow:0 6px 22px #00000073}.dmap__tip b{color:#ffe2ad;font-size:11px}.dmap__tip span{color:var(--muted)}.dmap__tip-note{border-top:1px solid var(--line);margin-top:2px;padding-top:3px;color:var(--text)!important}.p3dv__hud{border:1px solid var(--line);background:var(--bg-0);color:var(--muted);border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:5px 8px;font-size:10.5px;display:flex}.p3dv__hud b{color:var(--text);font-weight:600}.p3dv__tip{z-index:300;max-width:300px;color:var(--muted);pointer-events:none;background:#0c0f12f7;border:1px solid #e8b25a8c;border-radius:7px;gap:2px;padding:8px 10px;font-size:10.5px;display:grid;position:fixed;box-shadow:0 8px 26px #00000080}.p3dv__tip b{color:#ffe2ad;font-size:11.5px}.p3dv__tip span:first-of-type{color:var(--text)}.obj-icon{width:54px;height:40px;color:var(--muted)}.cat-card:has(.cat-card__icon){grid-template-columns:54px minmax(0,1fr);align-items:center;min-height:82px}.cat-card__icon{width:46px;height:36px;color:var(--accent);grid-row:1/span 3;place-self:center}.add__hint{color:var(--muted);background:#e8b25a14;border:1px solid #e8b25a47;border-radius:6px;margin-bottom:6px;padding:6px 8px;font-size:10.5px}.outliner__add{margin-left:auto}.outliner__wall{border-left:1px solid var(--line);margin:2px 0 6px;padding-left:2px}.tree__row--child{padding-left:26px!important}.hw-icon{width:56px;height:42px;color:var(--accent)}.modal--hardware .hwlib{flex-direction:column;width:min(860px,100vw - 24px);height:auto;max-height:min(86dvh,720px);display:flex}.hwlib__tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:3px;padding:8px 10px 0;display:flex}.hwlib__body{flex:auto;min-height:0;padding:10px;overflow-y:auto}.hwlib__grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.hw-card{border:1px solid var(--line);background:var(--bg-0);color:var(--text);text-align:left;cursor:pointer;border-radius:8px;flex-direction:column;align-items:flex-start;gap:3px;padding:8px;display:flex}.hw-card:hover,.hw-card--on{border-color:var(--accent);background:#e0a33e14}.hw-card__icon{align-self:center;margin-bottom:2px}.hw-card__name{font-size:11px;font-weight:600}.hw-card__meta{color:var(--muted);font-size:9.5px}.modal--finish .finish{flex-direction:column;width:min(620px,100vw - 24px);max-height:min(88dvh,760px);display:flex}.finish__body{gap:8px;min-height:0;padding:10px 12px;display:grid;overflow-y:auto}.finish__grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.finish__color{border:1px solid var(--line);background:0 0;border-radius:6px;width:100%;height:30px;padding:0}.finish__calc{border:1px solid var(--line);background:var(--bg-0);border-radius:7px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:6px;padding:8px;display:grid}.finish__calc div{flex-direction:column;gap:1px;display:flex}.finish__calc span{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:9.5px}.finish__calc b{font-size:12px}.finish__foot{border-top:1px solid var(--line);align-items:center;gap:6px;padding:9px 12px;display:flex}.auth{background:radial-gradient(900px 520px at 12% 8%, #e0a33e1f, transparent 65%), var(--bg-0);grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);min-height:100dvh;display:grid}.auth__brand{flex-direction:column;justify-content:center;gap:14px;max-width:720px;padding:clamp(28px,7vw,96px);display:flex}.auth__mark{border:2px solid var(--accent);border-radius:8px;width:34px;height:34px;margin-bottom:8px;transform:rotate(45deg)}.auth__eyebrow{color:var(--accent);letter-spacing:.24em;margin:0;font-size:11px}.auth h1{letter-spacing:-.035em;margin:0;font-size:clamp(28px,4.2vw,54px);font-weight:650;line-height:1.08}.auth__lead{max-width:520px;color:var(--muted);margin:0;font-size:14px;line-height:1.65}.auth__features{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0 0;padding:0;list-style:none;display:grid}.auth__features li{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:3px;padding:10px;display:flex}.auth__features b{font-size:11.5px}.auth__features span{color:var(--dim);font-size:10.5px;line-height:1.35}.auth__demo{color:#1b1305;background:var(--accent);font:inherit;border:0;border-radius:7px;align-self:flex-start;align-items:center;gap:18px;margin-top:16px;padding:12px 16px;font-size:13px;font-weight:700;display:inline-flex}.auth__demo:hover{filter:brightness(1.06)}.auth__demo:disabled{opacity:.55}.auth__demo-note{color:var(--dim);margin:-6px 0 0;font-size:10.5px}.auth__card{background:var(--bg-1);border:1px solid var(--line-2);width:min(430px,100vw - 32px);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;align-self:center;gap:16px;margin:32px auto;padding:24px;display:flex}.auth__card-head{align-items:flex-start;gap:12px;display:flex}.auth__card-head>div{flex:1}.auth__card h2{margin:0 0 3px;font-size:20px}.auth__card-head p{margin:0;font-size:11px}.auth__badge{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;border:1px solid #e0a33e66;border-radius:99px;padding:2px 7px;font-size:9px}.auth__form{flex-direction:column;gap:10px;display:flex}.auth__form .field{flex-direction:column;gap:4px;display:flex}.auth__submit{width:100%;min-height:40px;margin-top:2px}.auth__error{color:var(--danger);background:var(--danger-weak);border-radius:var(--radius-sm);border:1px solid #ef5b5b59;margin:0;padding:8px 9px;font-size:11px}.auth__switch{align-self:flex-start;font-size:11px}.auth__legal{margin:0;font-size:9.5px;line-height:1.45}@media (width<=900px){.auth{grid-template-columns:1fr;align-content:start}.auth__brand{gap:10px;padding:28px 22px 6px}.auth__features{grid-template-columns:1fr;gap:6px}.auth__features li{flex-direction:row;align-items:baseline;gap:8px;padding:8px 10px}.auth__features span{font-size:10px}.auth__demo{justify-content:space-between;width:100%;margin-top:12px}.auth__card{margin:18px auto 28px;padding:18px}}.pm__row{align-items:stretch;gap:4px;padding:3px;display:flex}.pm__open{text-align:left;min-width:0;color:var(--text);border-radius:var(--radius-sm);background:0 0;border:0;flex-direction:column;flex:1;gap:2px;padding:8px 9px;display:flex}.pm__row--on .pm__open{background:var(--accent-weak)}.pm__delete{color:var(--dim);border-radius:var(--radius-sm);background:0 0;border:0;flex:0 0 34px;font-size:16px}.pm__delete:hover{color:var(--danger);background:var(--danger-weak)}.pm__account{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:8px;margin-top:auto;padding:12px 9px 4px;font-size:10.5px;display:flex}.auth-loading{min-height:100dvh;color:var(--muted);background:var(--bg-0);justify-content:center;align-items:center;gap:14px;font-size:12px;display:flex}.auth-loading .boot__mark{border:2px solid var(--accent);border-radius:6px;width:24px;height:24px;animation:1.2s ease-in-out infinite save-pulse;transform:rotate(45deg)}.tour{z-index:140;pointer-events:auto;position:fixed;inset:0}.tour--plain{background:#030507a8}.tour__hole{pointer-events:none;border:2px solid var(--accent);border-radius:9px;transition:left .18s,top .18s,width .18s,height .18s;position:fixed;box-shadow:0 0 0 9999px #030507a8}.tour__card{z-index:141;background:var(--bg-1);border:1px solid var(--accent);width:min(350px,100vw - 28px);box-shadow:var(--shadow);pointer-events:auto;border-radius:11px;padding:15px 16px 14px;position:fixed}.tour__top{justify-content:space-between;align-items:center;gap:8px;display:flex}.tour__step{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-size:9.5px}.tour__skip{color:var(--dim);font:inherit;background:0 0;border:0;padding:2px 0;font-size:10px}.tour__card h3{margin:8px 0 5px;font-size:16px}.tour__card p{color:var(--muted);margin:0;font-size:11.5px;line-height:1.55}.tour__actions{justify-content:flex-end;gap:6px;margin-top:14px;display:flex}@media (width<=760px){.tour__card{left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));width:auto}.tour__hole{max-height:calc(100dvh - 240px)}}.appmenu__foot{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:8px;padding:9px 12px;font-size:10px;display:flex}.tour,.tour__card{pointer-events:auto}.topbar{gap:12px}.topbar__left,.topbar__right{align-items:center;gap:8px;min-width:0;display:flex}.topbar__left{flex:0 auto}.topbar__center{align-items:center;gap:7px;margin:0 auto;display:flex}.topbar__right{flex:none;margin-left:auto}.topbar__label{color:var(--dim);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;font-size:9.5px}.topbar__group{border-radius:var(--radius-sm);background:var(--bg-0);border:1px solid var(--line);align-items:center;gap:1px;padding:1px;display:inline-flex}.topbar__history .btn{height:24px}.topbar__menu{gap:6px}.topbar__menu-icon{font-size:14px;line-height:1}.view__title-wrap{align-items:center;gap:7px;min-width:0;display:flex}.view__mode-label{color:var(--accent);background:var(--accent-weak);letter-spacing:.04em;white-space:nowrap;border:1px solid #e0a33e47;border-radius:99px;padding:1px 6px;font-size:9px;font-weight:650}.view__groups,.view__actions{min-width:0}.view__group{border-left:1px solid var(--line);align-items:center;gap:1px;padding:1px 2px;display:inline-flex}.view__group:first-child{border-left:0}.view__group-label{color:var(--dim);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;padding:0 4px;font-size:8.5px}.view__group--tools .tab--active{color:var(--text);background:var(--bg-3);border-color:var(--line-2)}.view__more{margin-left:2px}.view__sheet-row--stack{flex-direction:column;align-items:stretch}.view__sheet-row--stack .tab{text-align:left;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;min-height:44px;padding:6px 10px;display:flex}.view__sheet-row--stack .tab small{color:var(--dim);font-size:9.5px;font-weight:400}.view__sheet-row--stack .tab--active small{color:var(--accent)}.view__sheet-note{color:var(--muted);margin:0;font-size:10.5px;line-height:1.45}.view__sheet-note b{color:var(--text)}@media (width<=900px){.wallview .view__head,.view--plan .view__head{flex-wrap:wrap;flex-basis:auto;gap:4px;height:auto;min-height:40px;padding:4px 8px;display:flex;overflow:visible}.wallview .view__actions,.view--plan .view__actions{flex-wrap:wrap;flex:100%}.wallview .view__title,.view--plan .view__title{font-size:11px}.wallview .view__actions,.view--plan .view__actions{gap:2px}.wallview .view__actions .tab,.view--plan .view__actions .tab{min-height:32px;padding:0 7px;font-size:10px}}.view__zoom{z-index:12;flex-direction:column;gap:4px;display:flex;position:absolute;top:10px;right:10px}.view__zoom-btn{width:34px;height:34px;color:var(--text);border:1px solid var(--line);cursor:pointer;background:#14171bdb;border-radius:6px;font-size:16px;line-height:1}.view__zoom-btn:hover{border-color:var(--accent)}.view__building{z-index:15;color:var(--muted);border:1px solid var(--line);pointer-events:none;background:#0f1114c7;border-radius:5px;padding:6px 12px;font-size:11px;position:absolute;top:14px;left:50%;transform:translate(-50%)}.view__gpu-note{z-index:14;max-width:calc(100% - 24px);color:var(--text);box-shadow:var(--shadow);background:#14120ceb;border:1px solid #e0a33e73;border-radius:8px;align-items:center;gap:8px;padding:7px 10px;font-size:10.5px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.view__gpu-note--strong{background:#1c160cf5;border-color:#e0a33ecc}.view__gpu-btn{color:#1b1305;background:var(--accent);cursor:pointer;border:0;border-radius:5px;padding:4px 8px;font-size:10px;font-weight:650}@media (width<=900px){.add__tabs{scrollbar-width:none;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap!important}.add__tabs::-webkit-scrollbar{display:none}.add__tab{white-space:nowrap;flex:none}}.cat-card__icon--emoji{place-items:center;font-size:26px;line-height:1;display:grid}@media (width<=900px){.object-modal:not(.object-modal--full) .om-mode{display:none}.object-modal .modal__title{text-overflow:ellipsis;white-space:nowrap;max-width:42vw;overflow:hidden}.object-modal:not(.object-modal--full) .modal__sub{display:none}.object-modal .modal__tools .tab{padding:0 6px;font-size:10px}.object-modal--full .om-mode{display:none}.object-modal--full .modal__title{max-width:46vw}.wb .module-preview__views{display:none}.wb__view-ctl{top:4px;right:4px}}.outliner__search{align-items:center;gap:4px;padding:0 12px 8px;display:flex}.outliner__search-input{flex:1;min-height:32px;font-size:12px}@media (width<=900px){.outliner__search{padding:0 10px 8px}.outliner__search-input{min-height:36px}}.outliner__note{color:var(--dim);background:var(--bg-0);border:1px dashed var(--line);border-radius:6px;margin:6px 10px 10px;padding:7px 9px;font-size:9.5px;line-height:1.45}@media (width<=900px){.appmenu{top:calc(48px + env(safe-area-inset-top));width:auto;max-height:calc(100dvh - 48px - 66px - env(safe-area-inset-bottom));padding-bottom:calc(8px + env(safe-area-inset-bottom));left:8px;right:8px}}.m-layout-badge{display:none}@media (width<=900px){.m-layout-badge{top:calc(46px + env(safe-area-inset-top));z-index:38;color:#1b1305;background:var(--accent);border:0;border-radius:999px;align-items:center;gap:4px;padding:6px 9px;font-size:11px;font-weight:700;display:inline-flex;position:fixed;right:10px;box-shadow:0 4px 12px #0006}.m-layout-badge--err{color:#fff;background:var(--danger)}}.prop-panel{left:14px;bottom:calc(196px + env(safe-area-inset-bottom));z-index:72;background:var(--bg-1);border:1px solid var(--line-2);width:min(340px,100vw - 24px);box-shadow:var(--shadow);border-radius:10px;position:fixed;overflow:hidden}.prop-panel__head{background:var(--bg-2);border-bottom:1px solid var(--line);cursor:grab;touch-action:none;align-items:center;gap:8px;padding:8px 10px;display:flex}.prop-panel__ico{color:var(--accent);font-size:13px}.prop-panel__title{flex-direction:column;min-width:0;margin-right:auto;display:flex}.prop-panel__title b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.prop-panel__title small{color:var(--dim);font-size:9.5px}.prop-panel__body{flex-direction:column;gap:7px;max-height:min(62dvh,520px);padding:9px 10px 11px;display:flex;overflow-y:auto}.prop-panel__mini{padding:7px 10px calc(9px + env(safe-area-inset-bottom));gap:5px;display:flex}.prop-panel__fold{display:none}.prop-panel__row{flex-wrap:wrap;gap:4px;display:flex}.prop-panel__danger{color:var(--danger);border-color:#ef5b5b66;margin-left:auto}.prop-panel__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.prop-panel__grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.prop-panel__color{background:var(--bg-0);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted);align-items:center;gap:6px;padding:5px 7px;font-size:10px;display:flex}.prop-panel__color input{border:1px solid var(--line-2);background:0 0;border-radius:4px;width:32px;height:24px;margin-left:auto;padding:0}.prop-panel__hint{color:var(--dim);margin:0;font-size:9.5px;line-height:1.45}@media (width<=900px){.prop-panel{left:8px;right:8px;bottom:calc(84px + env(safe-area-inset-bottom));width:auto}.prop-panel__grid{gap:4px}.prop-panel__fold{justify-content:center;align-items:center;min-width:36px;padding:0;display:inline-flex}.view__zoom{z-index:12;flex-direction:column;gap:4px;display:flex;position:absolute;top:10px;right:10px}.view__zoom-btn{width:34px;height:34px;color:var(--text);border:1px solid var(--line);cursor:pointer;background:#14171bdb;border-radius:6px;font-size:16px;line-height:1}.view__zoom-btn:hover{border-color:var(--accent)}.view__building{z-index:15;color:var(--muted);border:1px solid var(--line);pointer-events:none;background:#0f1114c7;border-radius:5px;padding:6px 12px;font-size:11px;position:absolute;top:14px;left:50%;transform:translate(-50%)}.view__gpu-note{display:none}}.view__perf{z-index:12;color:#9ff0b8;pointer-events:none;-webkit-user-select:none;user-select:none;background:#0a0e0cc7;border:1px solid #6edc964d;border-radius:4px;padding:3px 7px;font:10px/1.2 ui-monospace,SFMono-Regular,monospace;position:absolute;top:8px;left:10px}.wallview{flex-direction:column;min-height:0;display:flex}.wallview__tabs{scrollbar-width:none;border-bottom:1px solid var(--line);background:#101215eb;gap:3px;padding:5px 8px;display:flex;overflow-x:auto}.wallview__tabs::-webkit-scrollbar{display:none}.wallview__tab{min-height:28px;color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;flex:none;padding:0 9px;font-size:10.5px}.wallview__tab:hover{color:var(--text);background:var(--bg-2)}.wallview__tab--on{color:#1b1305;background:var(--accent);border-color:var(--accent);font-weight:650}.wallview__body{background:#0f1215;flex:auto;min-height:0;position:relative;overflow:hidden}.wallview__canvas{cursor:crosshair;touch-action:none;width:100%;height:100%;display:block}.wallview__hint{bottom:8px;left:10px}@media (width<=900px){.wallview__tabs{padding:4px 6px}.wallview__tab{min-height:30px;font-size:10px}}.campad{z-index:18;-webkit-user-select:none;user-select:none;touch-action:none;align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:12px;left:12px}.campad__joy{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:grab;touch-action:none;background:radial-gradient(circle at 50% 42%,#e0a33e1f,#0000 62%),#0f111494;border:1px solid #ffffff2e;border-radius:50%;flex:none;width:112px;height:112px;position:relative;box-shadow:inset 0 0 24px #00000073,0 8px 22px #00000059}.campad__joy:active,.campad--active .campad__joy{cursor:grabbing;border-color:#e0a33e99}.campad__ring{pointer-events:none;background:#ffffff14;position:absolute}.campad__ring--h{height:1px;top:50%;left:12%;right:12%}.campad__ring--v{width:1px;top:12%;bottom:12%;left:50%}.campad__thumb{pointer-events:none;background:radial-gradient(circle at 38% 32%,#ffffff47,#0000 45%),linear-gradient(160deg,#eab254,#c28625);border:1px solid #ffffff52;border-radius:50%;width:46px;height:46px;margin:-23px 0 0 -23px;transition:transform 60ms linear;position:absolute;top:50%;left:50%;box-shadow:0 6px 14px #00000073}.campad__label{color:#e7eaee9e;letter-spacing:.08em;text-transform:uppercase;text-align:center;pointer-events:none;font-size:8.5px;position:absolute;inset:-17px 0 auto}.campad__z{flex-direction:column;gap:6px;display:flex}.campad__zbtn{width:44px;height:43px;color:var(--text);border:1px solid var(--line-2);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);touch-action:none;background:#15181dc7;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:0;display:flex}.campad__zbtn span{font-size:14px;line-height:1}.campad__zbtn small{color:var(--dim);letter-spacing:.08em;font-size:8px}.campad__zbtn--on,.campad__zbtn:active{color:#1b1305;background:var(--accent);border-color:var(--accent)}.campad__zbtn--on small,.campad__zbtn:active small{color:#1b1305b3}.campad__key{z-index:2;color:#e7eaeec7;pointer-events:none;background:#101215d1;border:1px solid #ffffff2e;border-radius:4px;place-items:center;width:18px;height:18px;font-size:9px;font-weight:650;line-height:1;display:grid;position:absolute;box-shadow:0 2px 6px #0000004d}.campad__key--w{top:8px;left:50%;transform:translate(-50%)}.campad__key--s{bottom:8px;left:50%;transform:translate(-50%)}.campad__key--a{top:50%;left:8px;transform:translateY(-50%)}.campad__key--d{top:50%;right:8px;transform:translateY(-50%)}.campad--desktop{bottom:14px;left:auto;right:14px}.campad--desktop .campad__joy{width:92px;height:92px}.campad--desktop .campad__thumb{width:40px;height:40px;margin:-20px 0 0 -20px}.campad--desktop .campad__zbtn{width:38px;height:37px}.appmenu__section+.appmenu__section{border-top:1px solid var(--line)}.appmenu__label{color:var(--dim);letter-spacing:.12em;text-transform:uppercase;padding:8px 16px 2px;font-size:9px;display:block}.mobilebar__ico{font-size:15px;line-height:1}@media (width<=900px){.topbar{gap:6px;padding:6px 8px;overflow:visible}.topbar__left{flex:auto;gap:6px;min-width:0}.topbar__center{display:none}.topbar__right{flex:none;gap:3px;margin-left:0}.topbar__history{display:none}.topbar .project-name{flex:auto;width:auto;min-width:0}.topbar .brand{flex:none}.topbar .brand__name,.topbar .brand__sub{display:none}.topbar__menu{height:38px;padding:0 10px}.topbar__menu-text{display:none}.topbar__menu-icon{font-size:17px}.view__head{display:none}.view__dock{justify-content:flex-start;width:auto;max-width:none;top:8px;left:8px;right:8px;overflow-x:auto}.view__dock .tab{flex:none}.view__dock .tab:first-child{color:var(--text);font-weight:650}.campad{bottom:10px;left:10px}.campad__joy{width:104px;height:104px}.minimap{width:116px;height:86px;bottom:10px;left:auto;right:8px}.minimap--open{width:auto;height:auto;inset:8px}.wallmode{display:none}.mobilebar{padding:5px 6px calc(5px + env(safe-area-inset-bottom));gap:4px}.mobilebar__btn{flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:0;min-height:46px;padding:3px 2px;font-size:10px;line-height:1.1;display:flex}.mobilebar__btn--add{flex:0 0 52px;font-size:24px;font-weight:400}.view__sheet-card{max-height:min(82dvh,640px)}}@media (width<=640px){.viewcube-wrap{display:none}.topbar .brand__mark{width:9px;height:9px}.topbar .project-name{font-size:13px}.campad__joy{width:96px;height:96px}.campad__thumb{width:42px;height:42px;margin:-21px 0 0 -21px}.campad__zbtn{width:40px;height:39px}.minimap{width:100px;height:74px}}@media (width<=380px){.minimap{display:none}}.om-compact,.om-collapse{display:none}@media (width<=900px){.object-modal:not(.object-modal--full) .om-compact{padding:8px 12px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);align-items:center;gap:8px;display:flex}.object-modal:not(.object-modal--full) .om-collapse{justify-content:center;align-items:center;min-width:36px;padding:0;display:inline-flex}.om-compact__text{flex-direction:column;min-width:0;margin-right:auto;display:flex}.om-compact__text b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.om-compact__text span{color:var(--dim);white-space:nowrap;font-size:10px}.object-modal--quick-collapsed{max-height:none!important;overflow:hidden!important}.object-modal--quick-collapsed .om{display:none}}.om-mode{background:var(--bg-0);border:1px solid var(--line);border-radius:5px;gap:2px;margin-left:8px;padding:2px;display:inline-flex}.om-mode__btn{height:22px;color:var(--muted);background:0 0;border:0;border-radius:3px;padding:0 8px;font-size:10.5px}.om-mode__btn:hover{color:var(--text)}.om-mode__btn--on{color:var(--text);background:var(--bg-3)}@media (width<=640px){.om-mode{margin-left:0}.modal__sub{display:none}}@media (width<=1500px){.view__group-label{display:none}}@media (width<=900px){.viewcube-wrap{display:none}}.layout-panel{width:min(620px,100vw - 24px);height:auto;min-height:0;max-height:min(80dvh,700px)}.layout-panel__body{flex-direction:column;gap:10px;padding:12px;display:flex;overflow-y:auto}.layout-panel__lead{margin:0;font-size:11px;line-height:1.45}.layout-panel__list{flex-direction:column;gap:4px;display:flex}.layout-panel__row{background:var(--bg-2);border:1px solid var(--line);border-radius:5px;grid-template-columns:auto auto minmax(90px,auto) 1fr auto auto;align-items:center;gap:8px;padding:7px 8px;font-size:11px;display:grid}.layout-panel__pick{cursor:pointer;justify-content:center;align-items:center;padding:0 2px;display:inline-flex}.layout-panel__pick input{width:13px;height:13px;accent-color:var(--accent);cursor:pointer}.layout-panel__row.is-error{border-color:#ef5b5b59}.layout-panel__tag{color:var(--dim);background:var(--bg-0);letter-spacing:.04em;white-space:nowrap;border-radius:3px;padding:1px 5px;font-size:9px}.layout-panel__row.is-error .layout-panel__tag{color:var(--danger)}.layout-panel__row span:last-child{color:var(--muted)}.layout-panel__row.is-link{cursor:pointer}.layout-panel__fix{color:var(--dim);font-style:normal}.layout-panel__btn{white-space:nowrap;padding:1px 7px;font-size:10px}@media (width<=900px){.layout-panel__row{grid-template-columns:auto auto 1fr;align-items:center;gap:4px 8px;padding:8px 9px;font-size:11.5px}.layout-panel__pick{grid-column:1}.layout-panel__tag{grid-column:2}.layout-panel__row b{grid-column:3}.layout-panel__row .layout-panel__msg{grid-column:1/-1}.layout-panel__btn{grid-column:1/-1;justify-self:start}.layout-panel__row .layout-panel__msg{color:var(--muted);line-height:1.45}.layout-panel__row b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.layout-panel__go{display:none}}.layout-panel__row.is-link:hover{border-color:var(--accent);background:var(--bg-3)}.layout-panel__go{color:var(--accent);font-weight:600}.layout-panel__checks{flex-wrap:wrap;gap:4px 6px;display:flex}.layout-panel__checks span{color:var(--ok);background:#4abe7814;border:1px solid #4abe783d;border-radius:999px;padding:3px 7px;font-size:10px}.layout-panel__checks span:before{content:"✓ "}.layout-panel__err{color:var(--danger);margin:0;font-size:11px}.layout-panel__ok{color:var(--ok);margin:0;font-size:11px}.layout-panel__foot{flex-wrap:wrap;justify-content:flex-end;gap:6px;padding-top:4px;display:flex}@media (width<=900px){.layout-panel__foot .btn{flex:40%}.object-modal--full .wb__name{display:none}.object-modal--full .wb__head{padding-bottom:2px}.object-modal--full .wb__tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;min-height:0;display:grid;overflow:visible}.object-modal--full .wb__tab{width:auto;min-height:30px;padding:0 6px;font-size:11px}.object-modal--full .wb__top{gap:6px}.wb__top--part{flex:none;max-height:none}.wb__visual--part{height:auto;min-height:0;overflow:visible}.object-modal--full .pdetail__map .dmap__svg{max-height:58dvh}.object-modal--full .part-detail__corpus{display:none}.view__dock{top:52px}.cam-switch{z-index:18}.bp-bar{top:52px}}
