:root{color-scheme:dark;--bg: #071013;--bg-deep: #050c0e;--panel: rgba(11, 22, 26, .92);--panel-solid: #0c171b;--panel-raised: #111f23;--panel-soft: #0d191d;--line: rgba(133, 179, 187, .13);--line-strong: rgba(133, 179, 187, .24);--text: #e8f1f0;--text-soft: #c1cfce;--muted: #849a9d;--dim: #5d7377;--accent: #5fe4d5;--accent-strong: #8df8ea;--accent-deep: #43bcb4;--accent-dim: rgba(95, 228, 213, .12);--accent-line: rgba(95, 228, 213, .28);--ambient-a: rgba(38, 135, 141, .12);--ambient-b: rgba(21, 67, 83, .16);--blue: #5db8e8;--amber: #ffc978;--amber-dim: rgba(255, 201, 120, .12);--danger: #ff8173;--danger-dim: rgba(255, 129, 115, .12);--violet: #b49aff;--radius-xs: 6px;--radius-sm: 8px;--radius: 11px;--radius-lg: 16px;--font: "Inter", "SF Pro Display", "Segoe UI", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;--mono: "JetBrains Mono", "SFMono-Regular", "Cascadia Code", Consolas, monospace;--shadow-panel: 0 20px 70px rgba(0, 0, 0, .32)}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100%}body{min-width:320px;overflow:hidden;background:radial-gradient(1000px 650px at 72% -8%,var(--ambient-a),transparent 68%),radial-gradient(900px 700px at -5% 100%,var(--ambient-b),transparent 70%),var(--bg);color:var(--text);font-family:var(--font);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-variant-numeric:tabular-nums}button,input,select,textarea{font:inherit;color:inherit}button{border:0;padding:0;background:none;cursor:pointer}button:disabled{cursor:not-allowed}h1,h2,h3,h4,p,ul{margin:0}ul{list-style:none;padding:0}svg{display:block;flex:none}::selection{background:#5fe4d547;color:#fff}:focus-visible{outline:1px solid var(--accent);outline-offset:2px}html[data-theme=ocean]{--accent: #63b8ff;--accent-strong: #a5d8ff;--accent-deep: #3a8fd0;--accent-dim: rgba(99, 184, 255, .12);--accent-line: rgba(99, 184, 255, .3);--ambient-a: rgba(38, 108, 160, .14);--ambient-b: rgba(17, 52, 91, .2)}html[data-theme=forest]{--accent: #8ed67a;--accent-strong: #c2f5ae;--accent-deep: #64a850;--accent-dim: rgba(142, 214, 122, .12);--accent-line: rgba(142, 214, 122, .3);--ambient-a: rgba(67, 137, 81, .12);--ambient-b: rgba(27, 73, 47, .18)}html[data-theme=sunset]{--accent: #ffab6b;--accent-strong: #ffd1a3;--accent-deep: #d17d3b;--accent-dim: rgba(255, 171, 107, .12);--accent-line: rgba(255, 171, 107, .3);--ambient-a: rgba(158, 94, 43, .13);--ambient-b: rgba(93, 51, 25, .18)}html[data-theme=violet]{--accent: #b49aff;--accent-strong: #d9c9ff;--accent-deep: #8566d8;--accent-dim: rgba(180, 154, 255, .12);--accent-line: rgba(180, 154, 255, .3);--ambient-a: rgba(92, 67, 153, .13);--ambient-b: rgba(50, 36, 91, .18)}*{scrollbar-width:thin;scrollbar-color:rgba(128,167,173,.28) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-thumb{border-radius:999px;background:#80a7ad42}*::-webkit-scrollbar-thumb:hover{background:#80a7ad6b}*::-webkit-scrollbar-track{background:transparent}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{display:grid;grid-template-columns:286px minmax(0,1fr) 362px;grid-template-rows:60px minmax(0,1fr);width:100%;height:100%;overflow:hidden}.app-header{position:relative;z-index:50;grid-column:1 / -1;display:flex;align-items:center;gap:0;min-width:0;padding:0 14px 0 18px;background:linear-gradient(180deg,#0a1418f5,#081013d6);border-bottom:1px solid var(--line);backdrop-filter:blur(24px)}.app-header-main{display:flex;align-items:center;gap:10px;height:60px;min-width:0;width:100%}.brand{display:flex;align-items:center;gap:10px;flex:none;min-width:186px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:radial-gradient(circle at 35% 25%,rgba(116,240,223,.22),transparent 60%),linear-gradient(145deg,#1a4649e6,#09181bf5);border:1px solid rgba(112,232,219,.25);box-shadow:inset 0 1px #ffffff0f,0 8px 24px #00000040}.brand-mark svg{width:28px;height:28px}.brand-text{display:flex;flex-direction:column;line-height:1.18}.brand-text strong{font-size:14px;font-weight:650;letter-spacing:.08em}.brand-text span{margin-top:2px;color:var(--muted);font-size:8px;font-weight:600;letter-spacing:.19em}.project-identity{display:flex;flex-direction:column;justify-content:center;gap:3px;min-width:0;margin-right:auto}.project-name-wrap{display:flex;align-items:center;gap:10px;min-width:0}.project-name-wrap>input{width:clamp(160px,23vw,310px);height:24px;padding:0;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--text);font-size:13px;font-weight:600;letter-spacing:.01em;text-overflow:ellipsis;transition:border-color .2s}.project-name-wrap>input:hover{border-bottom-color:var(--line-strong)}.project-name-wrap>input:focus{outline:none;border-bottom-color:var(--accent-line)}.project-subline{display:flex;align-items:center;gap:5px;color:var(--dim);font-size:9px;font-weight:500;letter-spacing:.13em;text-transform:uppercase}.project-subline svg{width:10px;height:10px;color:#5fe4d599}.save-state{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:9px;font-weight:500;white-space:nowrap;background:#ffffff05}.save-state svg{width:10px;height:10px}.save-state.save-cloud{color:var(--accent);border-color:#5fe4d533;background:#5fe4d50f}.save-state.save-error{color:var(--danger);border-color:#ff817340}.save-dot{width:4px;height:4px;border-radius:50%;background:currentColor}.header-actions{display:flex;align-items:center;gap:5px;flex:none;margin-left:auto}.history-actions{display:flex;gap:2px}.header-actions .toolbar-divider{margin:0 4px}.header-project-btn{padding:0 10px}.header-save-btn{min-width:72px}.account-chip{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 9px 0 5px;border:1px solid var(--line);border-radius:999px;background:#ffffff06;color:var(--text-soft);font-size:11px;transition:border-color .2s,background .2s;cursor:pointer;list-style:none}.account-chip::-webkit-details-marker{display:none}.account-chip:hover{background:#ffffff0d;border-color:var(--line-strong)}.account-chip.guest{padding-left:5px;border-color:#5fe4d52e}.avatar{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:linear-gradient(145deg,#2a5e60,#133638);color:#c9fff7;font-size:11px;font-weight:700;border:1px solid rgba(104,234,220,.2)}.avatar svg{width:13px;height:13px}.guest-avatar{background:#5fe4d51a;color:var(--accent)}.avatar-lg{width:36px;height:36px;font-size:15px}.account-name{max-width:82px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-icon{width:12px;height:12px;color:var(--accent)}.chevron{width:11px;height:11px;opacity:.55}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 13px;border:1px solid transparent;border-radius:8px;font-size:11.5px;font-weight:570;letter-spacing:.01em;white-space:nowrap;transition:background .18s,border-color .18s,color .18s,box-shadow .18s,transform .12s}.btn svg{width:14px;height:14px}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.38}.btn-sm{height:30px;padding:0 10px;font-size:10.5px;border-radius:7px}.btn-sm svg{width:13px;height:13px}.btn-lg{height:43px;padding:0 18px;font-size:12.5px;border-radius:10px}.btn-block{width:100%}.btn-primary{color:#05231f;background:linear-gradient(135deg,var(--accent-strong),var(--accent) 60%,var(--accent-deep));border-color:color-mix(in srgb,var(--accent-strong) 55%,transparent);box-shadow:0 8px 22px #34cab729,inset 0 1px #ffffff80}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,color-mix(in srgb,var(--accent-strong) 80%,white),var(--accent-strong) 55%,var(--accent));box-shadow:0 10px 28px #34cab73d,inset 0 1px #ffffff80}.btn-secondary{color:var(--text-soft);background:#ffffff09;border-color:var(--line)}.btn-secondary:hover:not(:disabled){background:#fff1;border-color:var(--line-strong)}.btn-ghost{color:var(--muted);background:transparent;border-color:transparent}.btn-ghost:hover:not(:disabled){color:var(--text);background:#ffffff0b}.btn-soft{color:var(--accent);background:#5fe4d513;border-color:#5fe4d52e}.btn-soft:hover:not(:disabled){background:#5fe4d51f;border-color:#5fe4d54d}.btn-danger{color:var(--danger);background:#ff81730f;border-color:#ff817329}.btn-danger:hover:not(:disabled){background:#ff81731f;border-color:#ff817347}.icon-btn{position:relative;display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;color:var(--muted);background:transparent;transition:color .18s,background .18s}.icon-btn:hover:not(:disabled){color:var(--text);background:#ffffff0d}.icon-btn.is-active{color:var(--accent);background:#5fe4d514}.icon-btn.tone-danger:hover:not(:disabled){color:var(--danger);background:var(--danger-dim)}.icon-btn:disabled{opacity:.28}.icon-btn svg{width:15px;height:15px}.icon-btn-sm{width:27px;height:27px;border-radius:7px}.icon-btn-sm svg{width:14px;height:14px}.icon-btn-lg{width:38px;height:38px}.icon-btn:after{content:attr(data-tooltip);position:absolute;z-index:120;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,3px);padding:5px 8px;border:1px solid var(--line-strong);border-radius:6px;background:#122226;color:var(--text-soft);font-size:9.5px;font-weight:500;white-space:nowrap;pointer-events:none;opacity:0;box-shadow:0 8px 24px #00000059;transition:opacity .15s,transform .15s}.icon-btn:hover:after{opacity:1;transform:translate(-50%);transition-delay:.35s}.toolbar-divider{width:1px;height:18px;background:var(--line);flex:none}.text-action{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-size:10px;font-weight:550;white-space:nowrap}.text-action:hover{color:var(--accent-strong)}.text-action svg{width:12px;height:12px}.footer-link{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:10px;transition:color .18s}.footer-link:hover{color:var(--accent)}.footer-link svg{width:12px;height:12px}.inline-link{margin-left:6px;color:var(--accent);font-size:10px;text-decoration:underline;text-underline-offset:2px}.dropdown{position:relative}.dropdown>summary{list-style:none;cursor:pointer}.dropdown>summary::-webkit-details-marker{display:none}.dropdown[open]>summary{color:var(--text);background:#ffffff0f}.dropdown-menu{position:absolute;top:calc(100% + 9px);right:0;z-index:200;width:240px;padding:6px;border:1px solid var(--line-strong);border-radius:11px;background:#0d1a1efa;box-shadow:0 24px 60px #00000073;backdrop-filter:blur(22px);animation:menu-in .16s ease-out}@keyframes menu-in{0%{opacity:0;transform:translateY(-5px) scale(.99)}to{opacity:1;transform:none}}.dropdown-menu>button{display:flex;align-items:flex-start;gap:9px;width:100%;padding:8px 9px;border-radius:7px;color:var(--text-soft);text-align:left;transition:background .16s}.dropdown-menu>button:hover{background:#ffffff0d}.dropdown-menu>button svg{width:15px;height:15px;margin-top:2px;color:var(--muted)}.dropdown-menu>button span{display:flex;flex-direction:column;gap:1px}.dropdown-menu strong{color:var(--text);font-size:11px;font-weight:550}.dropdown-menu small{color:var(--muted);font-size:9.5px;line-height:1.4}.dropdown-menu>button.danger:hover{background:var(--danger-dim)}.dropdown-menu>button.danger svg,.dropdown-menu>button.danger strong{color:var(--danger)}.account-menu{width:260px}.theme-menu{width:210px}.theme-menu-head{display:flex;align-items:center;gap:8px;padding:8px 9px 9px;margin-bottom:3px;border-bottom:1px solid var(--line)}.theme-menu-head>svg{width:15px;height:15px;color:var(--accent)}.theme-menu-head span{display:flex;flex-direction:column;gap:1px}.theme-menu .theme-swatch{width:15px;height:15px;flex:none;border:1px solid rgba(255,255,255,.2);border-radius:50%;box-shadow:0 0 12px color-mix(in srgb,currentColor 30%,transparent)}.theme-menu button.is-active{background:var(--accent-dim)}.theme-menu .theme-check{margin-left:auto;color:var(--accent)}.header-actions details>summary.icon-btn{list-style:none}.header-actions details>summary.icon-btn::-webkit-details-marker{display:none}.account-summary{display:flex;align-items:center;gap:10px;padding:9px;margin-bottom:4px;border-bottom:1px solid var(--line)}.account-summary>div{display:flex;flex-direction:column;min-width:0}.account-summary strong{font-size:11.5px}.account-summary small{margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:linear-gradient(180deg,#0e1b1ff2,#091216f7);backdrop-filter:blur(16px)}.panel-left{border-right:1px solid var(--line)}.panel-right{border-left:1px solid var(--line)}.panel-tabs{display:flex;align-items:stretch;gap:2px;flex:none;height:47px;padding:0 9px;border-bottom:1px solid var(--line);background:#ffffff03}.panel-tabs>button{position:relative;display:flex;align-items:center;gap:6px;padding:0 11px;color:var(--muted);font-size:11px;font-weight:550;letter-spacing:.02em;transition:color .18s}.panel-tabs>button svg{width:14px;height:14px}.panel-tabs>button:hover{color:var(--text-soft)}.panel-tabs>button.is-active{color:var(--text)}.panel-tabs>button.is-active:after{content:"";position:absolute;left:9px;right:9px;bottom:-1px;height:1.5px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);box-shadow:0 0 12px #5fe4d566}.tab-count{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:#ffffff0f;color:var(--muted);font-size:8.5px;font-weight:600}.panel-tabs>button.is-active .tab-count{background:var(--accent-dim);color:var(--accent)}.panel-toolbar{flex:none;padding:11px 12px 9px;border-bottom:1px solid var(--line)}.search-box{display:flex;align-items:center;gap:7px;height:33px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:#040b0d70;transition:border-color .18s,background .18s}.search-box:focus-within{border-color:var(--accent-line);background:#040b0da3}.search-box>svg{width:13px;height:13px;color:var(--dim)}.search-box input{width:100%;min-width:0;border:0;background:transparent;color:var(--text);font-size:11px}.search-box input:focus{outline:none}.search-box input::placeholder{color:var(--dim)}.search-box button{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;color:var(--muted)}.search-box button:hover{color:var(--text);background:#ffffff14}.search-box button svg{width:11px;height:11px}.category-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px;padding-bottom:2px}.chip{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border:1px solid transparent;border-radius:6px;color:var(--muted);background:#ffffff05;font-size:9.5px;font-weight:500;white-space:nowrap;transition:color .16s,background .16s,border-color .16s}.chip svg{width:11px;height:11px}.chip span{margin-left:1px;color:var(--dim);font-size:8px}.chip:hover{color:var(--text-soft);background:#ffffff0b}.chip.is-active{color:var(--accent);border-color:#5fe4d52e;background:#5fe4d514}.chip.is-active span{color:var(--accent)}.panel-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:12px;overscroll-behavior:contain}.panel-footer{display:flex;align-items:center;justify-content:space-between;flex:none;height:39px;padding:0 13px;border-top:1px solid var(--line);color:var(--dim);font-size:9px;background:#0000001f}.panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:220px;padding:24px 16px;text-align:center;color:var(--muted)}.panel-empty>svg{width:26px;height:26px;margin-bottom:3px;color:var(--dim)}.panel-empty h3{color:var(--text-soft);font-size:12px;font-weight:550}.panel-empty p{max-width:210px;color:var(--dim);font-size:10px;line-height:1.6}.panel-empty .btn{margin-top:7px}.library-group{margin-bottom:17px}.library-group:last-child{margin-bottom:4px}.library-group-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px;padding:0 2px}.library-group-head>div{display:flex;align-items:center;gap:6px;min-width:0}.group-icon{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;background:#5fe4d512;color:var(--accent)}.group-icon svg{width:11px;height:11px}.library-group-head h3{font-size:10.5px;font-weight:600;letter-spacing:.06em;color:var(--text-soft)}.library-group-head small{display:none;color:var(--dim);font-size:9px}.blank-add{display:inline-flex;align-items:center;gap:3px;color:var(--dim);font-size:9px;white-space:nowrap;transition:color .18s}.blank-add:hover{color:var(--accent)}.blank-add svg{width:10px;height:10px}.preset-list{display:flex;flex-direction:column;gap:5px}.preset-card{position:relative;display:flex;align-items:flex-start;gap:9px;width:100%;padding:8px;border:1px solid transparent;border-radius:10px;background:#ffffff05;text-align:left;transition:background .18s,border-color .18s,transform .18s}.preset-card:hover{border-color:var(--line-strong);background:#ffffff0b;transform:translate(2px)}.preset-card:active{transform:translate(1px) scale(.995)}.preset-icon{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:9px;border:1px solid rgba(255,255,255,.05);background:radial-gradient(circle at 30% 20%,rgba(115,234,220,.16),transparent 65%),#102427b3;color:var(--accent)}.preset-icon svg{width:17px;height:17px;stroke-width:1.7}.preset-card.cat-stand .preset-icon{color:#d7b87f;background:radial-gradient(circle at 30% 20%,rgba(226,187,115,.14),transparent 65%),#261f149e}.preset-card.cat-glass .preset-icon{color:#8ed5ee;background:radial-gradient(circle at 30% 20%,rgba(128,212,238,.14),transparent 65%),#12242c9e}.preset-card.cat-pipe .preset-icon{color:#86d1b4;background:radial-gradient(circle at 30% 20%,rgba(126,216,179,.13),transparent 65%),#13251f9e}.preset-card.cat-cabinet .preset-icon{color:#d6ad84;background:radial-gradient(circle at 30% 20%,rgba(216,175,132,.15),transparent 65%),#261e179e}.preset-card.cat-equipment .preset-icon{color:#a8a9ff;background:radial-gradient(circle at 30% 20%,rgba(162,161,255,.14),transparent 65%),#1a1b2d9e}.preset-card.cat-set .preset-icon{color:#ffd07d;background:radial-gradient(circle at 30% 20%,rgba(255,200,110,.17),transparent 65%),#271f149e}.preset-content{display:flex;flex-direction:column;min-width:0;flex:1;gap:1px;padding-top:1px}.preset-title{display:flex;align-items:center;justify-content:space-between;gap:5px}.preset-title strong{overflow:hidden;color:var(--text-soft);font-size:11.5px;font-weight:550;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.preset-card:hover .preset-title strong{color:var(--text)}.preset-subtitle{overflow:hidden;color:var(--dim);font-size:9px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.preset-badges{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}.preset-badges em{padding:0 4px;border:1px solid rgba(255,255,255,.06);border-radius:3px;color:var(--muted);font-size:8px;font-style:normal;line-height:14px}.preset-add{display:grid;place-items:center;flex:none;width:17px;height:17px;border-radius:5px;color:var(--dim);background:#ffffff0a;opacity:0;transform:scale(.85);transition:opacity .15s,transform .15s,color .15s}.preset-add svg{width:11px;height:11px}.preset-card:hover .preset-add{opacity:1;transform:scale(1);color:var(--accent);background:var(--accent-dim)}.preset-card.cat-set{border-color:#ffc9781c;background:linear-gradient(120deg,rgba(255,194,107,.05),transparent 60%),#ffffff05}.object-list{display:flex;flex-direction:column;gap:3px}.object-row{display:flex;align-items:center;gap:8px;min-height:47px;padding:6px 7px;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:background .16s,border-color .16s}.object-row:hover{background:#ffffff09}.object-row.is-selected{border-color:#5fe4d533;background:linear-gradient(90deg,#5fe4d514,#5fe4d505)}.object-row.is-hidden{opacity:.5}.object-icon{display:grid;place-items:center;flex:none;width:29px;height:29px;border-radius:7px;background:#ffffff0a;color:var(--muted)}.object-icon svg{width:14px;height:14px}.object-text{display:flex;flex-direction:column;min-width:0;flex:1;gap:1px}.object-text strong{overflow:hidden;color:var(--text-soft);font-size:10.5px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.object-row.is-selected .object-text strong{color:var(--text)}.object-text small{overflow:hidden;color:var(--dim);font-size:8.5px;text-overflow:ellipsis;white-space:nowrap}.object-actions{display:flex;gap:0;opacity:0;transition:opacity .15s}.object-row:hover .object-actions,.object-row.is-selected .object-actions{opacity:1}.mini-action{display:grid;place-items:center;width:21px;height:21px;border-radius:5px;color:var(--dim)}.mini-action:hover{color:var(--text);background:#ffffff0f}.mini-action.is-active{color:var(--accent)}.mini-action.danger:hover{color:var(--danger);background:var(--danger-dim)}.mini-action svg{width:11px;height:11px}.workspace{position:relative;min-width:0;min-height:0;overflow:hidden;background:#081013}.viewport{position:relative;width:100%;height:100%;overflow:hidden;background:#081013;isolation:isolate}.viewport canvas{display:block;width:100%!important;height:100%!important;touch-action:none}.viewport:before{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:radial-gradient(850px 500px at 63% 20%,rgba(47,137,142,.045),transparent 68%),linear-gradient(180deg,rgba(3,8,10,.22),transparent 18%,transparent 78%,rgba(3,8,10,.34))}.viewport:after{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;box-shadow:inset 0 0 140px #0000006b}.viewport-topbar{position:absolute;z-index:6;top:12px;left:12px;right:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;pointer-events:none}.viewport-topbar>*{pointer-events:auto}.viewport-crumbs{display:flex;align-items:center;gap:7px;min-height:36px;min-width:0;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:#070f12b8;box-shadow:0 8px 28px #00000038;backdrop-filter:blur(18px);font-size:10px}.crumb-root{display:flex;align-items:center;gap:4px;color:var(--muted);white-space:nowrap}.crumb-root svg{width:12px;height:12px;color:var(--accent)}.crumb-sep{color:var(--dim)}.crumb-current{max-width:190px;overflow:hidden;color:var(--text-soft);font-weight:500;text-overflow:ellipsis;white-space:nowrap}.scene-count{margin-left:4px;padding-left:8px;border-left:1px solid var(--line);color:var(--dim);font-size:8.5px;white-space:nowrap}.viewport-actions{display:flex;align-items:center;gap:2px;height:38px;padding:4px;border:1px solid var(--line);border-radius:9px;background:#070f12c2;box-shadow:0 8px 28px #00000038;backdrop-filter:blur(18px)}.view-switcher{display:flex;align-items:center;gap:1px}.view-switcher button{display:flex;align-items:center;gap:4px;height:28px;padding:0 7px;border-radius:6px;color:var(--dim);font-size:9px;transition:color .16s,background .16s}.view-switcher button svg{width:12px;height:12px}.view-switcher button:hover{color:var(--text-soft);background:#ffffff0d}.view-switcher button.is-active{color:var(--accent);background:#5fe4d517}.viewport-actions .icon-btn{width:28px;height:28px}.transform-tools{display:flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--line);border-radius:7px;background:#ffffff05}.transform-tools button{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 7px;border-radius:5px;color:var(--dim);font-size:8.5px;font-weight:550;white-space:nowrap;transition:color .16s,background .16s}.transform-tools button svg{width:12px;height:12px}.transform-tools button:hover:not(:disabled){color:var(--text-soft);background:#ffffff0d}.transform-tools button.is-active{color:var(--accent);background:var(--accent-dim);box-shadow:inset 0 0 0 1px var(--accent-line)}.transform-tools button:disabled{opacity:.3}.transform-hint{position:absolute;z-index:6;top:58px;left:50%;display:flex;align-items:center;gap:6px;transform:translate(-50%);padding:5px 9px;border:1px solid var(--accent-line);border-radius:6px;background:#061012d1;color:var(--text-soft);font-size:8.5px;white-space:nowrap;pointer-events:none;backdrop-filter:blur(12px);animation:hint-in .2s ease-out}@keyframes hint-in{0%{opacity:0;transform:translate(-50%,-4px)}to{opacity:1;transform:translate(-50%)}}.hint-pulse{width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}@media(max-width:780px){.transform-tools button span{display:none}.transform-tools button{width:24px;justify-content:center;padding:0}}@media(max-width:620px){.transform-hint{top:52px;max-width:92%;overflow:hidden;text-overflow:ellipsis}}.flow-toggle{display:inline-flex;align-items:center;gap:5px;height:27px;padding:0 8px;border:1px solid rgba(255,129,115,.25);border-radius:6px;color:#ffa99ecc;background:#ff817314;font-size:8.5px;font-weight:550;white-space:nowrap}.flow-toggle.is-on{border-color:var(--accent-line);color:var(--accent);background:var(--accent-dim)}.flow-pulse{width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 9px currentColor}.flow-toggle.is-on .flow-pulse{animation:flow-pulse 1.3s ease-in-out infinite}@keyframes flow-pulse{0%,to{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.viewport-actions .toolbar-divider{height:16px;margin:0 3px}.viewport-footer{position:absolute;z-index:5;left:14px;right:14px;bottom:13px;display:flex;align-items:flex-end;justify-content:space-between;gap:14px;pointer-events:none}.viewport-stats{display:flex;align-items:center;gap:8px;height:28px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:#070f12a8;backdrop-filter:blur(14px);color:var(--dim);font-size:8.5px;white-space:nowrap}.viewport-stats b{color:var(--text-soft);font-family:var(--mono);font-size:9.5px;font-weight:500}.viewport-stats>i{width:1px;height:9px;background:var(--line)}.viewport-hint{position:absolute;left:50%;bottom:1px;display:flex;align-items:center;gap:5px;transform:translate(-50%);color:#89a3a78c;font-size:8.5px;white-space:nowrap;pointer-events:none}.viewport-hint svg{width:11px;height:11px}.axis-compass{position:relative;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:#070f129e;backdrop-filter:blur(12px)}.axis-compass i{position:absolute;left:50%;top:50%;width:4px;height:4px;transform:translate(-50%,-50%);border-radius:50%;background:#ffffff4d}.axis-compass span{position:absolute;font-family:var(--mono);font-size:7px;font-weight:600}.axis-y{top:4px;left:50%;transform:translate(-50%);color:#8be8cf}.axis-x{right:5px;bottom:8px;color:#ff9f9f}.axis-z{left:7px;bottom:8px;color:#82bdf3}.axis-compass:before,.axis-compass:after{content:"";position:absolute;left:50%;top:50%;transform-origin:0 0;height:1px;opacity:.5}.axis-compass:before{width:13px;background:linear-gradient(90deg,#ff9f9f,transparent);transform:rotate(30deg)}.axis-compass:after{width:12px;background:linear-gradient(90deg,#82bdf3,transparent);transform:rotate(150deg)}.viewport-empty{position:absolute;z-index:4;top:50%;left:50%;display:flex;flex-direction:column;align-items:center;width:min(410px,78%);transform:translate(-50%,-52%);text-align:center;pointer-events:none}.viewport-empty>*{pointer-events:auto}.empty-orbit{position:relative;display:grid;place-items:center;width:114px;height:114px;margin-bottom:19px}.empty-orbit:before,.empty-orbit:after{content:"";position:absolute;inset:0;border:1px solid rgba(95,228,213,.12);border-radius:50%;animation:orbit-pulse 5s ease-in-out infinite}.empty-orbit:after{inset:17px;border-color:#5fe4d52e;animation-delay:-2.5s}.empty-orbit span{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}.empty-orbit span:nth-child(1){top:10px;left:28px}.empty-orbit span:nth-child(2){right:9px;top:57px;width:3px;height:3px;opacity:.6}.empty-orbit span:nth-child(3){left:25px;bottom:10px;width:3px;height:3px;opacity:.4}.empty-orbit>svg{width:38px;height:38px;color:#5fe4d5bf;stroke-width:1.1}@keyframes orbit-pulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.04);opacity:1}}.viewport-empty h2{margin-bottom:7px;font-size:25px;font-weight:500;letter-spacing:.04em;background:linear-gradient(180deg,#f4fffd,#9dc2c0);-webkit-background-clip:text;background-clip:text;color:transparent}.viewport-empty p{max-width:340px;margin-bottom:18px;color:var(--muted);font-size:11px;line-height:1.75}.dimension-tag{padding:2px 5px;border:1px solid rgba(95,228,213,.24);border-radius:4px;background:#050e10c7;color:#9ff6ea;font-family:var(--mono);font-size:8px;font-weight:500;line-height:1.4;letter-spacing:.02em;white-space:nowrap;pointer-events:none;user-select:none;box-shadow:0 4px 12px #0003;backdrop-filter:blur(6px)}.dimension-tag.is-muted{border-color:var(--line);color:var(--muted)}.toast-stack{position:fixed;z-index:400;right:18px;bottom:18px;display:flex;flex-direction:column;align-items:flex-end;gap:7px;pointer-events:none}.toast{display:flex;align-items:center;gap:9px;max-width:390px;min-height:42px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:9px;background:#0c191cf5;box-shadow:0 18px 50px #0006;color:var(--text-soft);font-size:10.5px;pointer-events:auto;animation:toast-in .24s ease-out;backdrop-filter:blur(18px)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.toast-icon{display:grid;place-items:center;width:24px;height:24px;border-radius:6px;background:var(--accent-dim);color:var(--accent)}.toast-icon svg{width:13px;height:13px}.toast-error{border-color:#ff817340}.toast-error .toast-icon{background:var(--danger-dim);color:var(--danger)}.toast-info .toast-icon{background:#5db8e81f;color:var(--blue)}.toast>span:nth-child(2){flex:1}.toast>button{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;color:var(--muted)}.toast>button:hover{color:var(--text);background:#ffffff12}.toast>button svg{width:11px;height:11px}.mobile-dock,.dock-scrim{display:none}.inspector{display:flex;flex-direction:column;min-height:0;height:100%;overflow:hidden;border-left:1px solid var(--line);background:linear-gradient(180deg,#0c171bfa,#071013fa)}.inspector-head{flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px 14px 12px;border-bottom:1px solid var(--line)}.inspector-head>div:first-child{min-width:0}.inspector-head h2{margin:2px 0 1px;font-size:16px;font-weight:450;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspector-eyebrow{color:var(--accent);font-size:8px;letter-spacing:.14em}.inspector-head small{color:var(--muted);font-size:8px}.inspector-object-actions{display:flex;align-items:center;gap:2px;flex:none}.inspector-empty{padding:22px 16px;color:var(--muted);font-size:9px;line-height:1.8}.inspector-empty h3{margin-bottom:6px;color:var(--text);font-size:14px;font-weight:450}.inspector-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(95,228,213,.35) transparent}.inspector-scroll::-webkit-scrollbar{width:7px}.inspector-scroll::-webkit-scrollbar-thumb{border-radius:8px;background:#5fe4d547}.inspector-scroll{padding:14px 14px 24px}.inspector-tabs{padding-left:11px}.object-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;padding-bottom:12px;border-bottom:1px solid var(--line)}.object-editor-title{display:flex;align-items:center;gap:9px;min-width:0;flex:1}.object-editor-title>div{display:flex;flex-direction:column;min-width:0;gap:1px}.eyebrow{color:var(--dim);font-size:8px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.object-name-input{width:100%;min-width:0;padding:0;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--text);font-size:13px;font-weight:600;line-height:1.45;text-overflow:ellipsis;transition:border-color .18s}.object-name-input:hover:not(:disabled){border-bottom-color:var(--line-strong)}.object-name-input:focus{outline:none;border-bottom-color:var(--accent-line)}.object-name-input:disabled{opacity:.72}.object-kind-badge{display:grid;place-items:center;flex:none;width:35px;height:35px;border:1px solid var(--line);border-radius:9px;color:var(--muted);background:#ffffff08}.object-kind-badge svg{width:16px;height:16px}.object-kind-badge.kind-aquarium{color:#76e8db;background:#174b4947;border-color:#5fe4d52e}.object-kind-badge.kind-stand{color:#d8b577;background:#43351e47;border-color:#d8b57729}.object-kind-badge.kind-glass{color:#8ad3ee;background:#1c3a4547;border-color:#8ad3ee29}.object-kind-badge.kind-pipe{color:#88d8b7;background:#1a3a2e47;border-color:#88d8b729}.object-kind-badge.kind-door{color:#d9b186;background:#392b1d47;border-color:#d9b18629}.object-kind-badge.kind-hardware{color:#b9c2c5;background:#2a33354d;border-color:#b9c2c526}.object-kind-badge.kind-pump{color:#a8a9ff;background:#2b2b484d;border-color:#a8a9ff29}.object-kind-badge.kind-powerstrip{color:#ffb27c;background:#412b1d4d;border-color:#ffb27c29}.object-kind-badge.kind-pegboard{color:#a7cfc5;background:#2534324d;border-color:#a7cfc526}.object-editor-actions{display:flex;gap:1px;flex:none}.object-editor-actions .icon-btn{width:27px;height:27px}.inspector-fieldset{min-width:0;margin:0;padding:0;border:0}.section{padding:14px 0;border-bottom:1px solid var(--line)}.section:last-child{border-bottom:0}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:0}.section.is-open .section-head{margin-bottom:10px}.section-head-actions{display:flex;align-items:center;gap:8px;flex:none}.section-toggle{display:flex;flex:1;align-items:flex-start;gap:6px;min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.section-toggle-copy{display:flex;flex:1;flex-direction:column;min-width:0}.section-chevron{flex:none;width:12px;height:12px;margin-top:1px;color:var(--dim);transform:rotate(-90deg);transition:transform .16s ease}.section.is-open .section-chevron{transform:rotate(0)}.section-toggle:hover .section-title{color:var(--text)}.section-title{color:var(--text-soft);font-size:10.5px;font-weight:600;letter-spacing:.055em}.section-hint{margin-top:2px;color:var(--dim);font-size:8.5px;line-height:1.5}.section-body{display:flex;flex-direction:column;gap:10px}.section-note{color:var(--dim);font-size:9px;line-height:1.65}.section-note.mini{font-size:8.5px;color:var(--dim)}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field-label{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:9.5px;font-weight:500}.field-label small{color:var(--dim);font-size:8px;font-weight:400}.field-error{color:var(--danger);font-size:8.5px}.field-grid{display:grid;grid-template-columns:repeat(var(--cols, 2),minmax(0,1fr));gap:7px;min-width:0}.number-input{display:flex;align-items:center;min-width:0;height:33px;padding:0 7px;border:1px solid var(--line);border-radius:7px;background:#040b0d6b;transition:border-color .18s,background .18s}.number-input:focus-within{border-color:var(--accent-line);background:#040b0da6}.number-input.is-disabled{opacity:.55}.number-input input{width:100%;min-width:0;padding:0;border:0;background:transparent;color:var(--text);font-family:var(--mono);font-size:10.5px;font-weight:500;text-align:left}.number-input input:focus{outline:none}.number-unit{flex:none;margin-left:3px;color:var(--dim);font-family:var(--font);font-size:8px;white-space:nowrap}.number-input.is-compact{height:31px}.number-step{display:grid;place-items:center;flex:none;width:16px;height:22px;margin:0 2px;border-radius:4px;color:var(--dim)}.number-step:hover:not(:disabled){color:var(--accent);background:var(--accent-dim)}.number-step svg{width:10px;height:10px}.range-row{display:flex;flex-direction:column;gap:5px}.range-label{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:9.5px}.range-label strong{color:var(--text-soft);font-family:var(--mono);font-size:10px;font-weight:500}.range-label small{margin-left:1px;color:var(--dim);font-size:8px;font-weight:400}.range-row input[type=range]{width:100%;height:16px;margin:0;appearance:none;background:transparent;cursor:pointer}.range-row input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:4px;background:linear-gradient(90deg,var(--accent) var(--range-progress),transparent var(--range-progress)),#ffffff14}.range-row input[type=range]::-moz-range-track{height:3px;border-radius:4px;background:#ffffff14}.range-row input[type=range]::-moz-range-progress{height:3px;border-radius:4px;background:var(--accent)}.range-row input[type=range]::-webkit-slider-thumb{width:11px;height:11px;margin-top:-4px;appearance:none;border:2px solid #0b1a1c;border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px #5fe4d580,0 0 12px #5fe4d540}.range-row input[type=range]::-moz-range-thumb{width:9px;height:9px;border:2px solid #0b1a1c;border-radius:50%;background:var(--accent)}.range-hint{color:var(--dim);font-size:8px}.range-row.is-disabled{opacity:.5}.segmented{display:flex;flex-wrap:wrap;gap:2px;padding:2px;border:1px solid var(--line);border-radius:7px;background:#040b0d61}.segmented.is-full{width:100%}.segment{display:inline-flex;align-items:center;justify-content:center;gap:3px;flex:1;min-width:0;height:26px;padding:0 7px;border-radius:5px;color:var(--dim);font-size:9px;font-weight:500;white-space:nowrap;transition:color .16s,background .16s}.segment svg{width:11px;height:11px}.segment:hover{color:var(--text-soft);background:#ffffff0a}.segment.is-active{color:var(--accent);background:#5fe4d51a;box-shadow:inset 0 0 0 1px #5fe4d521}.toggle-row{position:relative;display:flex;align-items:center;gap:8px;cursor:pointer}.toggle-row>span{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.toggle-row strong{color:var(--text-soft);font-size:9.5px;font-weight:500}.toggle-row small{color:var(--dim);font-size:8px;line-height:1.45}.toggle-row input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.switch-track{position:relative;display:block;flex:none;width:29px;height:16px;border-radius:99px;background:#ffffff1a;transition:background .2s}.switch-track i{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#8a9a9a;transition:transform .2s,background .2s}.toggle-row input:checked+.switch-track{background:#5fe4d552}.toggle-row input:checked+.switch-track i{transform:translate(13px);background:var(--accent);box-shadow:0 0 9px #5fe4d566}.toggle-row.is-disabled{opacity:.5}.select-wrap{position:relative;display:flex;align-items:center;min-width:0}.select-wrap select{width:100%;height:33px;padding:0 24px 0 8px;appearance:none;border:1px solid var(--line);border-radius:7px;background:#040b0d6b;color:var(--text-soft);font-size:9.5px;cursor:pointer}.select-wrap select:focus{outline:none;border-color:var(--accent-line)}.select-wrap>svg{position:absolute;right:7px;width:11px;height:11px;color:var(--dim);pointer-events:none}.inline-control{display:flex;align-items:center;gap:7px}.inline-control>.number-input{flex:none;width:84px}.quick-values{display:flex;gap:3px;flex-wrap:wrap}.quick-values button{height:25px;min-width:25px;padding:0 4px;border:1px solid var(--line);border-radius:5px;color:var(--dim);font-family:var(--mono);font-size:8.5px;transition:color .16s,border-color .16s,background .16s}.quick-values button:hover{color:var(--text-soft);border-color:var(--line-strong)}.quick-values button.is-active{color:var(--accent);border-color:#5fe4d542;background:var(--accent-dim)}.color-field{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:4px}.color-chip{display:flex;align-items:center;gap:5px;height:27px;padding:0 6px;border:1px solid var(--line);border-radius:6px;color:var(--dim);font-size:8.5px;text-align:left;transition:color .16s,border-color .16s,background .16s}.color-chip>i{width:11px;height:11px;flex:none;border:1px solid rgba(255,255,255,.16);border-radius:50%;box-shadow:inset 0 1px 2px #fff3}.color-chip>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.color-chip>svg{width:9px;height:9px;color:var(--accent)}.color-chip:hover{color:var(--text-soft);border-color:var(--line-strong)}.color-chip.is-active{color:var(--text-soft);border-color:#5fe4d547;background:#5fe4d50f}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.metric-card{position:relative;display:flex;flex-direction:column;gap:0;min-width:0;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(145deg,rgba(255,255,255,.035),transparent 75%),#03090b3d}.metric-card>span:not(.metric-icon){color:var(--dim);font-size:8px}.metric-card strong{margin-top:1px;color:var(--text-soft);font-family:var(--mono);font-size:12.5px;font-weight:500;letter-spacing:-.02em}.metric-card strong small{margin-left:2px;color:var(--dim);font-family:var(--font);font-size:7.5px;font-weight:400;letter-spacing:0}.metric-icon{position:absolute;top:7px;right:7px;display:grid;place-items:center;width:16px;height:16px;color:#5fe4d580}.metric-icon svg{width:11px;height:11px}.axis-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.rotation-label{display:flex;align-items:baseline;gap:6px;margin-top:7px}.rotation-label span{color:var(--muted);font-size:9.5px;font-weight:500}.rotation-label small{color:var(--dim);font-size:7.5px}.axis-field{display:flex;flex-direction:column;gap:3px}.axis-field>span{color:var(--dim);font-family:var(--mono);font-size:8px;font-weight:600}.axis-field .number-input{height:30px;padding:0 5px}.axis-field .number-input input{font-size:9.5px}.axis-field .number-unit{display:none}.quick-align{display:flex;gap:4px;flex-wrap:wrap}.quick-align button{height:23px;padding:0 7px;border:1px solid var(--line);border-radius:5px;color:var(--dim);font-size:8.5px;transition:color .16s,border-color .16s}.quick-align button:hover{color:var(--accent);border-color:var(--accent-line)}.stack-actions{display:flex;flex-direction:column;gap:5px}.stack-actions .btn{justify-content:flex-start}.profile-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.profile-option{display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 4px 6px;border:1px solid var(--line);border-radius:8px;background:#ffffff05;transition:border-color .16s,background .16s}.profile-option:hover{border-color:var(--line-strong)}.profile-option.is-active{border-color:#5fe4d542;background:#5fe4d50f}.profile-glyph{position:relative;display:block;width:25px;height:25px;margin-bottom:1px}.profile-glyph i{position:absolute;border:1px solid rgba(180,200,201,.5);background:linear-gradient(145deg,#9aa5a7,#4c585b);border-radius:2px}.profile-glyph i:nth-child(1){left:1px;top:1px;width:6px;height:6px}.profile-glyph i:nth-child(2){right:1px;top:1px;width:6px;height:6px}.profile-glyph i:nth-child(3){left:50%;bottom:1px;width:15px;height:4px;transform:translate(-50%)}.profile-2020{transform:scale(.74)}.profile-4040{transform:scale(1.08)}.profile-option strong{color:var(--text-soft);font-family:var(--mono);font-size:9.5px;font-weight:550}.profile-option small{color:var(--dim);font-size:7px}.level-list{display:flex;flex-direction:column;gap:6px}.level-card{padding:8px;border:1px solid var(--line);border-radius:9px;background:#ffffff05}.level-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:7px}.level-head>div{display:flex;align-items:center;gap:5px;min-width:0;flex-wrap:wrap}.level-index{display:inline-grid;place-items:center;min-width:22px;height:16px;padding:0 4px;border:1px solid rgba(95,228,213,.18);border-radius:4px;color:var(--accent);background:var(--accent-dim);font-family:var(--mono);font-size:7.5px;font-weight:600}.level-head strong{color:var(--text-soft);font-size:9.5px;font-weight:550}.level-head small{color:var(--dim);font-size:7.5px}.level-card .field-label{font-size:8.5px}.level-card .number-input{height:29px}.level-card .field{gap:3px}.level-card>.field{margin-top:6px}.level-card .select-wrap select{height:29px}.door-panel-picker{display:grid;grid-template-columns:1fr 1fr;gap:6px}.door-panel-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:7px;border:1px solid var(--line);border-radius:8px;background:#ffffff05;text-align:left;transition:border-color .16s,background .16s}.door-panel-option:hover{border-color:var(--line-strong)}.door-panel-option.is-active{border-color:#5fe4d53d;background:#5fe4d50e}.door-panel-option strong{color:var(--text-soft);font-size:9.5px;font-weight:550}.door-panel-option small{color:var(--dim);font-size:7.5px}.panel-preview{position:relative;display:block;width:100%;height:31px;margin-bottom:3px;overflow:hidden;border:1px solid rgba(255,255,255,.09);border-radius:4px;background:linear-gradient(145deg,#d9d8d1,#aaa9a2)}.honeycomb-preview i{position:absolute;width:7px;height:7px;border:1px solid rgba(55,58,57,.28);transform:rotate(30deg)}.honeycomb-preview i:nth-child(1){left:18%;top:8px}.honeycomb-preview i:nth-child(2){left:38%;top:15px}.honeycomb-preview i:nth-child(3){left:58%;top:8px}.honeycomb-preview i:nth-child(4){left:78%;top:15px}.glass-preview{background:linear-gradient(120deg,rgba(255,255,255,.28),transparent 45%),linear-gradient(160deg,#263c42f2,#0c1a1fe6)}.glass-preview:after{content:"";position:absolute;inset:4px;border:1px solid rgba(183,207,208,.35);border-radius:2px}.segment-list{display:flex;flex-direction:column;gap:6px}.segment-card{padding:8px;border:1px solid var(--line);border-radius:9px;background:#ffffff05}.segment-head{display:flex;align-items:center;gap:6px;margin-bottom:6px}.segment-head strong{flex:1;color:var(--text-soft);font-family:var(--mono);font-size:9px;font-weight:500}.segment-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px}.segment-grid .field{gap:3px}.segment-grid .field-label{font-size:8px}.segment-grid .number-input,.segment-grid .select-wrap select{height:29px}.segment-grid .number-unit{display:none}.fitting-add-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.fitting-add{display:flex;align-items:center;justify-content:center;gap:2px;height:27px;border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:8.5px;transition:color .16s,border-color .16s,background .16s}.fitting-add:hover{color:var(--accent);border-color:var(--accent-line);background:var(--accent-dim)}.fitting-add svg{width:9px;height:9px}.fitting-list{display:flex;flex-direction:column;gap:4px}.fitting-row{display:flex;align-items:center;gap:4px;padding:5px;border:1px solid var(--line);border-radius:7px;background:#ffffff05}.fitting-type-badge{display:inline-grid;place-items:center;flex:none;min-width:34px;height:20px;padding:0 4px;border:1px solid var(--line);border-radius:4px;color:var(--muted);font-size:8px}.fit-valve{color:var(--accent);border-color:#5fe4d533;background:var(--accent-dim)}.fit-tee{color:var(--amber);border-color:#ffc97833;background:var(--amber-dim)}.fitting-row .select-wrap{flex:1;min-width:0}.fitting-row .select-wrap select{height:25px;padding:0 20px 0 6px;font-size:8.5px}.valve-state{display:inline-flex;align-items:center;gap:3px;flex:none;height:22px;padding:0 5px;border:1px solid var(--line);border-radius:4px;font-size:8px}.valve-state span{width:4px;height:4px;border-radius:50%;background:currentColor;box-shadow:0 0 6px currentColor}.valve-state.is-open{color:var(--accent)}.valve-state.is-closed{color:var(--danger)}.fitting-seg{flex:none;color:var(--dim);font-size:8px}.hole-canvas-wrap{position:relative;width:100%;padding:8px 9px 20px;border:1px solid var(--line);border-radius:9px;background:linear-gradient(180deg,rgba(34,69,74,.18),transparent),repeating-linear-gradient(45deg,rgba(255,255,255,.012) 0 1px,transparent 1px 12px),#02080a78}.hole-canvas{display:block;width:100%;max-height:225px;touch-action:none;cursor:crosshair;border-radius:3px}.hole-canvas.is-disabled{cursor:not-allowed;opacity:.65}.hole-canvas.is-disabled .hole-handle{cursor:not-allowed}.hole-handle{cursor:grab}.hole-handle:active{cursor:grabbing}.hole-axis-label{position:absolute;bottom:5px;color:var(--dim);font-family:var(--mono);font-size:7px;pointer-events:none}.x-label{right:9px}.y-label{left:9px}.hole-origin{position:absolute;left:9px;bottom:5px;color:#ffc97866;font-family:var(--mono);font-size:7px;pointer-events:none}.hole-list{display:flex;flex-direction:column;gap:5px}.hole-row{padding:8px;border:1px solid var(--line);border-radius:8px;background:#ffffff04;cursor:pointer;transition:border-color .16s,background .16s}.hole-row.is-selected{border-color:#ffc97836;background:#ffc97809}.hole-row-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.hole-row-head strong{display:flex;align-items:center;gap:5px;color:var(--text-soft);font-size:9px;font-weight:500}.hole-row-head strong span{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:4px;background:#ffc9781f;color:var(--amber);font-family:var(--mono);font-size:7px}.hole-row .field-grid{gap:4px}.hole-row .field{gap:3px}.hole-row .field-label{font-size:7.5px}.hole-row .number-input{height:28px}.hole-row .number-unit{display:none}.hole-empty{display:flex;align-items:flex-start;gap:7px;padding:9px;border:1px dashed var(--line-strong);border-radius:8px;color:var(--dim);font-size:8.5px;line-height:1.55}.hole-empty svg{width:14px;height:14px;flex:none;color:var(--muted)}.inline-warning{display:flex;align-items:center;gap:4px;margin-top:5px;color:var(--amber);font-size:8px;line-height:1.4}.inline-warning svg{width:10px;height:10px}.inline-notice{display:flex;align-items:flex-start;gap:7px;margin-top:11px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:#ffffff05;font-size:8.5px;line-height:1.6}.inline-notice>svg{width:13px;height:13px;flex:none;margin-top:1px;color:var(--accent)}.inline-notice.tone-warning{border-color:#ffc9782e;background:#ffc9780b}.inline-notice.tone-warning>svg{color:var(--amber)}.inline-notice.tone-success>svg{color:var(--accent)}.bom-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:5px 0 13px;border-bottom:1px solid var(--line)}.bom-head h2,.overview-hero h2{margin-top:2px;color:var(--text);font-size:19px;font-weight:500;letter-spacing:.01em}.bom-head p{margin-top:3px;color:var(--dim);font-size:9px}.bom-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:12px 0 15px;padding:8px;border:1px solid var(--line);border-radius:9px;background:linear-gradient(120deg,rgba(95,228,213,.04),transparent 70%),#0000001c}.bom-summary>div{display:flex;flex-direction:column;gap:1px;padding:0 5px;border-right:1px solid var(--line)}.bom-summary>div:last-child{border-right:0}.bom-summary span{color:var(--dim);font-size:7.5px}.bom-summary strong{color:var(--text-soft);font-family:var(--mono);font-size:9.5px;font-weight:500}.bom-groups{display:flex;flex-direction:column;gap:12px}.bom-group{border:1px solid var(--line);border-radius:9px;overflow:hidden}.bom-group-head{display:flex;align-items:center;justify-content:space-between;padding:7px 9px;border-bottom:1px solid var(--line);background:#ffffff06}.bom-group-head h3{color:var(--text-soft);font-size:9.5px;font-weight:600;letter-spacing:.08em}.bom-group-head span{color:var(--dim);font-size:8px}.bom-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:7px 9px;border-bottom:1px solid rgba(133,179,187,.07)}.bom-row:last-child{border-bottom:0}.bom-line-main{display:flex;flex-direction:column;min-width:0;gap:1px}.bom-line-main strong{color:var(--text-soft);font-size:9px;font-weight:500;line-height:1.45}.bom-line-main span{color:var(--dim);font-family:var(--mono);font-size:7.5px;line-height:1.45}.bom-line-main small{color:#ffc97899;font-size:7.5px}.bom-qty{display:flex;align-items:baseline;gap:2px;flex:none}.bom-qty strong{color:var(--accent);font-family:var(--mono);font-size:11px;font-weight:500}.bom-qty span{color:var(--dim);font-size:7.5px}.overview-hero{position:relative;padding:4px 0 14px;border-bottom:1px solid var(--line)}.overview-orb{display:grid;place-items:center;width:34px;height:34px;margin-bottom:9px;border:1px solid rgba(95,228,213,.18);border-radius:50%;color:var(--accent);background:radial-gradient(circle,rgba(95,228,213,.11),transparent 72%)}.overview-orb svg{width:15px;height:15px}.overview-hero h2{font-size:20px;line-height:1.25}.overview-hero p{margin-top:5px;color:var(--muted);font-size:9.5px;line-height:1.7}.overview-hero-actions{display:flex;gap:5px;margin-top:11px}.overview-metrics{margin-top:12px}.type-summary{display:flex;flex-direction:column;gap:5px}.type-summary-row{display:flex;align-items:center;gap:7px;padding:4px 0}.type-summary-row .object-kind-badge{width:25px;height:25px;border-radius:6px}.type-summary-row .object-kind-badge svg{width:12px;height:12px}.type-summary-row>span:nth-child(2){flex:1;color:var(--muted);font-size:9px}.type-summary-row strong{color:var(--text-soft);font-family:var(--mono);font-size:10px;font-weight:500}.overview-actions{margin-top:4px}.quick-start{padding:15px 0;border-bottom:1px solid var(--line)}.quick-start h3{margin-bottom:10px;color:var(--text-soft);font-size:10.5px;font-weight:600;letter-spacing:.04em}.quick-step{display:flex;gap:9px;margin-bottom:10px}.quick-step:last-child{margin-bottom:0}.quick-step>span{display:grid;place-items:center;flex:none;width:22px;height:22px;border:1px solid rgba(95,228,213,.16);border-radius:50%;color:var(--accent);font-family:var(--mono);font-size:7px}.quick-step strong{display:block;color:var(--text-soft);font-size:9.5px;font-weight:500}.quick-step p{margin-top:2px;color:var(--dim);font-size:8.5px;line-height:1.55}.overview-tip{display:flex;gap:8px;margin-top:13px;padding:9px;border:1px solid var(--line);border-radius:8px;background:#ffffff05}.tip-icon{display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:6px;color:var(--blue);background:#5db8e81a}.tip-icon svg{width:12px;height:12px}.overview-tip strong{color:var(--text-soft);font-size:8.5px;font-weight:500}.overview-tip p{margin-top:2px;color:var(--dim);font-size:8px;line-height:1.6}.modal-backdrop{position:fixed;z-index:300;inset:0;display:grid;place-items:center;padding:24px;background:#02080ab8;backdrop-filter:blur(10px);animation:backdrop-in .2s ease-out}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.modal{display:flex;flex-direction:column;width:min(100%,680px);max-height:min(90vh,900px);overflow:hidden;border:1px solid rgba(133,179,187,.2);border-radius:16px;background:radial-gradient(700px 300px at 20% 0%,rgba(54,130,132,.1),transparent 68%),linear-gradient(155deg,#101f23,#0a1519 62%,#081114);box-shadow:0 40px 120px #0000009e,inset 0 1px #ffffff0a;animation:modal-in .24s cubic-bezier(.2,.85,.3,1)}@keyframes modal-in{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}.modal-sm{width:min(100%,460px)}.modal-md{width:min(100%,680px)}.modal-lg{width:min(100%,880px)}.modal-xl{width:min(100%,1000px)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex:none;padding:20px 22px 16px;border-bottom:1px solid var(--line)}.modal-eyebrow{display:block;margin-bottom:5px;color:var(--accent);font-size:8px;font-weight:600;letter-spacing:.2em}.modal-head h2{color:var(--text);font-size:21px;font-weight:500;letter-spacing:.01em}.modal-head p{max-width:620px;margin-top:4px;color:var(--muted);font-size:10px;line-height:1.6}.modal-head .icon-btn{margin-top:-2px;flex:none}.modal-body{flex:1;min-height:0;overflow-y:auto;padding:20px 22px 22px}.modal-footer{flex:none;padding:12px 22px;border-top:1px solid var(--line);background:#0000001f}.auth-layout{display:grid;grid-template-columns:.92fr 1.08fr;gap:22px;min-height:465px}.auth-aside{position:relative;display:flex;flex-direction:column;padding:20px;overflow:hidden;border:1px solid rgba(95,228,213,.12);border-radius:12px;background:radial-gradient(350px 250px at 15% 0%,rgba(95,228,213,.11),transparent 70%),radial-gradient(300px 300px at 100% 100%,rgba(47,128,150,.14),transparent 70%),#050e1080}.auth-aside:after{content:"";position:absolute;right:-80px;bottom:-100px;width:260px;height:260px;border:1px solid rgba(95,228,213,.08);border-radius:50%;box-shadow:0 0 0 30px #5fe4d505,0 0 0 60px #5fe4d504;pointer-events:none}.auth-brand{display:flex;align-items:center;gap:8px;margin-bottom:28px}.auth-mark{display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(95,228,213,.2);border-radius:8px;color:var(--accent);background:#5fe4d514}.auth-mark svg{width:15px;height:15px}.auth-brand div{display:flex;flex-direction:column;line-height:1.2}.auth-brand strong{font-size:12px;letter-spacing:.08em}.auth-brand span{margin-top:1px;color:var(--dim);font-size:7px;letter-spacing:.16em}.auth-aside h3{max-width:220px;color:var(--text);font-size:24px;font-weight:450;line-height:1.35;letter-spacing:.01em}.auth-aside>p{max-width:260px;margin-top:8px;color:var(--muted);font-size:9.5px;line-height:1.75}.auth-aside ul{display:flex;flex-direction:column;gap:8px;margin-top:20px}.auth-aside li{display:flex;align-items:center;gap:7px;color:var(--text-soft);font-size:9px}.auth-aside li>span{display:grid;place-items:center;width:15px;height:15px;flex:none;border-radius:50%;color:var(--accent);background:#5fe4d517}.auth-aside li svg{width:8px;height:8px}.auth-aside-footer{display:flex;align-items:center;gap:5px;margin-top:auto;padding-top:20px;color:var(--dim);font-size:8px}.auth-aside-footer svg{width:12px;height:12px;color:var(--accent)}.auth-main{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:2px 4px}.auth-tabs{display:flex;gap:2px;margin-bottom:15px;padding:3px;border:1px solid var(--line);border-radius:8px;background:#0000002e}.auth-tabs button{flex:1;height:29px;border-radius:6px;color:var(--dim);font-size:10px;font-weight:500;transition:color .16s,background .16s}.auth-tabs button.is-active{color:var(--accent);background:#5fe4d517;box-shadow:inset 0 0 0 1px #5fe4d51f}.auth-reason{display:flex;align-items:flex-start;gap:6px;margin-bottom:12px;padding:7px 8px;border:1px solid rgba(95,228,213,.14);border-radius:7px;background:#5fe4d50b;color:var(--accent);font-size:8.5px;line-height:1.5}.auth-reason svg{width:12px;height:12px;flex:none;margin-top:1px}.auth-form{display:flex;flex-direction:column;gap:10px}.auth-input{display:flex;flex-direction:column;gap:4px}.auth-input>span{color:var(--muted);font-size:9px;font-weight:500}.auth-input>div{display:flex;align-items:center;gap:8px;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#02080a61;transition:border-color .18s,background .18s}.auth-input>div:focus-within{border-color:var(--accent-line);background:#02080a94}.auth-input>div>svg{width:14px;height:14px;color:var(--dim)}.auth-input input{flex:1;min-width:0;height:100%;border:0;background:transparent;color:var(--text);font-size:11px}.auth-input input:focus{outline:none}.auth-input input::placeholder{color:var(--dim)}.auth-captcha-button{display:grid;place-items:center;flex:none;width:102px;height:30px;padding:0;border:1px solid rgba(95,228,213,.22);border-radius:6px;overflow:hidden;background:#0b1b1e;color:var(--muted);font-size:9px}.auth-captcha-button:hover{border-color:var(--accent)}.auth-captcha-button img{width:100%;height:100%;object-fit:cover}.password-toggle{display:grid;place-items:center;width:22px;height:22px;border-radius:5px;color:var(--dim)}.password-toggle:hover{color:var(--text-soft);background:#ffffff0d}.password-toggle svg{width:13px;height:13px}.password-strength{display:flex;align-items:center;gap:3px;margin-top:-3px}.password-strength i{flex:1;height:2px;border-radius:3px;background:#ffffff14}.password-strength.strength-1 i:nth-child(1){background:var(--danger)}.password-strength.strength-2 i:nth-child(-n+2){background:var(--amber)}.password-strength.strength-3 i{background:var(--accent)}.password-strength span{flex:none;margin-left:3px;color:var(--dim);font-size:7.5px}.auth-error{padding:7px 9px;border:1px solid rgba(255,129,115,.2);border-radius:7px;background:var(--danger-dim);color:#ffada3;font-size:9px;line-height:1.5}.auth-submit{width:100%;margin-top:2px}.auth-terms{color:var(--dim);font-size:7.5px;line-height:1.55;text-align:center}.auth-switch{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:13px;color:var(--dim);font-size:8.5px}.auth-switch button{color:var(--accent);font-size:8.5px;text-decoration:underline;text-underline-offset:2px}.projects-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:15px}.projects-toolbar h3{color:var(--text);font-size:13px;font-weight:550}.projects-toolbar p{margin-top:2px;color:var(--dim);font-size:9px}.projects-toolbar-actions{display:flex;gap:5px;flex:none}.projects-loading{display:flex;align-items:center;justify-content:center;gap:7px;min-height:260px;color:var(--muted);font-size:9.5px}.projects-loading svg{width:15px;height:15px;color:var(--accent)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.project-card{overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#ffffff05;transition:border-color .18s,background .18s,transform .18s}.project-card:hover{border-color:var(--line-strong);background:#ffffff09;transform:translateY(-1px)}.project-card.is-current{border-color:#5fe4d53b}.project-open{display:flex;align-items:center;gap:10px;width:100%;padding:9px;text-align:left}.project-open:disabled{cursor:wait}.project-thumb{position:relative;display:grid;place-items:center;flex:none;width:78px;height:58px;overflow:hidden;border:1px solid rgba(255,255,255,.06);border-radius:7px;background:#091417}.thumb-glow{position:absolute;top:-20px;right:-10px;width:70px;height:70px;border-radius:50%;background:radial-gradient(circle,rgba(95,228,213,.18),transparent 65%)}.thumb-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(108,164,168,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(108,164,168,.09) 1px,transparent 1px);background-size:9px 9px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.85),transparent)}.project-thumb>svg{position:relative;z-index:1;width:23px;height:23px;color:#5fe4d58c;stroke-width:1.2}.current-badge{position:absolute;z-index:2;top:4px;left:4px;padding:1px 4px;border:1px solid rgba(95,228,213,.24);border-radius:3px;background:#051414bf;color:var(--accent);font-size:6.5px;font-style:normal;letter-spacing:.08em}.project-card-body{display:flex;flex-direction:column;min-width:0;flex:1;gap:4px}.project-card-body strong{overflow:hidden;color:var(--text-soft);font-size:10.5px;font-weight:550;text-overflow:ellipsis;white-space:nowrap}.project-card-body small{display:flex;align-items:center;gap:3px;color:var(--dim);font-size:7.5px;white-space:nowrap}.project-card-body small svg{width:9px;height:9px}.project-card-body small>span{width:1px;height:7px;margin:0 2px;background:var(--line)}.project-open-arrow{display:grid;place-items:center;flex:none;width:23px;height:23px;border-radius:50%;color:var(--dim);transition:color .16s,background .16s}.project-card:hover .project-open-arrow{color:var(--accent);background:var(--accent-dim)}.project-open-arrow svg{width:11px;height:11px}.project-opening{display:grid;place-items:center;width:23px;height:23px;color:var(--accent)}.project-opening svg{width:14px;height:14px}.project-card-footer{display:flex;align-items:center;justify-content:space-between;height:27px;padding:0 8px;border-top:1px solid rgba(133,179,187,.07);color:var(--dim);font-size:7.5px}.project-delete{display:grid;place-items:center;width:19px;height:19px;border-radius:4px;color:var(--dim)}.project-delete:hover{color:var(--danger);background:var(--danger-dim)}.project-delete svg{width:10px;height:10px}.inline-confirm{display:flex;align-items:center;gap:3px;color:var(--amber);font-size:7.5px}.inline-confirm button{padding:0 3px;border-radius:3px;color:var(--muted);font-size:7.5px;text-decoration:underline}.inline-confirm button:hover{color:var(--text)}.projects-empty,.projects-guest{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:320px;padding:30px;text-align:center}.projects-empty>span{display:grid;place-items:center;width:52px;height:52px;margin-bottom:11px;border:1px solid var(--line);border-radius:50%;color:var(--muted);background:#ffffff06}.projects-empty>span svg{width:21px;height:21px}.projects-empty h3,.projects-guest h3{color:var(--text);font-size:15px;font-weight:500}.projects-empty p,.projects-guest p{max-width:390px;margin:5px 0 15px;color:var(--muted);font-size:9.5px;line-height:1.7}.guest-illustration{position:relative;display:grid;place-items:center;width:76px;height:76px;margin-bottom:16px;border:1px solid rgba(95,228,213,.15);border-radius:50%;color:var(--accent);background:radial-gradient(circle,rgba(95,228,213,.12),transparent 70%)}.guest-illustration>svg{width:28px;height:28px;stroke-width:1.2}.guest-illustration i{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent)}.guest-illustration i:nth-child(2){top:11px;right:9px;width:3px;height:3px;opacity:.5}.guest-illustration i:nth-child(3){left:5px;bottom:20px;width:2px;height:2px;opacity:.4}.guest-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.guest-feature-row{display:flex;gap:14px;margin-top:21px;padding-top:14px;border-top:1px solid var(--line);color:var(--dim);font-size:8px}.guest-feature-row span{display:flex;align-items:center;gap:4px}.guest-feature-row svg{width:9px;height:9px;color:var(--accent)}.projects-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:12px;border-top:1px solid var(--line);color:var(--dim);font-size:8px}.help-intro{display:flex;align-items:flex-start;gap:11px;margin-bottom:17px;padding:12px;border:1px solid rgba(95,228,213,.12);border-radius:10px;background:linear-gradient(120deg,rgba(95,228,213,.055),transparent 65%),#0000001a}.help-intro>span{display:grid;place-items:center;flex:none;width:31px;height:31px;border-radius:8px;color:var(--accent);background:#5fe4d517}.help-intro>span svg{width:15px;height:15px}.help-intro h3{color:var(--text);font-size:12px;font-weight:550}.help-intro p{margin-top:3px;color:var(--muted);font-size:9px;line-height:1.65}.help-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:17px}.help-card{padding:10px;border:1px solid var(--line);border-radius:9px;background:#ffffff05}.help-card header{display:flex;align-items:center;gap:5px;margin-bottom:5px}.help-card header svg{width:12px;height:12px;color:var(--accent)}.help-card h4{color:var(--text-soft);font-size:9px;font-weight:550}.help-card p{color:var(--dim);font-size:8px;line-height:1.65}.help-shortcuts{padding:12px;border:1px solid var(--line);border-radius:10px;background:#ffffff04}.help-shortcuts header{display:flex;align-items:center;gap:6px;margin-bottom:9px}.help-shortcuts header svg{width:13px;height:13px;color:var(--accent)}.help-shortcuts h4{color:var(--text-soft);font-size:9.5px;font-weight:550}.shortcut-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 22px}.shortcut-grid>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid rgba(133,179,187,.06)}.shortcut-grid span{color:var(--muted);font-size:8.5px}.shortcut-grid kbd{padding:2px 5px;border:1px solid var(--line);border-radius:4px;background:#0003;color:var(--text-soft);font-family:var(--mono);font-size:7.5px;white-space:nowrap}.help-tips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:13px}.help-tips>div{display:flex;align-items:flex-start;gap:6px;padding:8px;border-radius:7px;background:#ffffff05}.help-tips svg{width:12px;height:12px;flex:none;margin-top:1px;color:var(--accent)}.help-tips span{display:flex;flex-direction:column;gap:2px;color:var(--dim);font-size:7.5px;line-height:1.5}.help-tips strong{color:var(--text-soft);font-size:8.5px;font-weight:500}.help-disclaimer{display:flex;align-items:flex-start;gap:7px;margin-top:15px;padding:9px 10px;border:1px solid rgba(255,201,120,.13);border-radius:8px;background:#ffc97809}.help-disclaimer svg{width:13px;height:13px;flex:none;margin-top:1px;color:var(--amber)}.help-disclaimer p{color:#ffc978a8;font-size:8px;line-height:1.65}@media(max-width:1380px){.app-shell{grid-template-columns:266px minmax(0,1fr) 340px}.brand{min-width:172px}.view-switcher button span{display:none}.view-switcher button{width:27px;justify-content:center;padding:0}.viewport-hint{display:none}}@media(max-width:1180px){.app-shell{grid-template-columns:240px minmax(0,1fr) 318px}.brand{min-width:46px}.brand-text,.header-project-btn span,.account-name{display:none}.header-project-btn{width:30px;padding:0}.account-chip{padding:0 4px}.project-subline{display:none}.project-name-wrap>input{width:180px}.viewport-crumbs{max-width:45%}.scene-count{display:none}.help-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:980px){.app-shell{grid-template-columns:1fr;grid-template-rows:56px minmax(0,1fr) 50px}.app-header{grid-column:1;grid-row:1;padding:0 10px;gap:10px}.brand{min-width:38px}.brand-mark{width:32px;height:32px}.brand-mark svg{width:25px;height:25px}.project-identity{flex:1}.project-name-wrap>input{width:100%}.project-name-wrap{gap:5px}.save-state{display:none}.header-actions .history-actions,.header-actions .toolbar-divider,.header-actions details:not(.account-dropdown):not(.theme-dropdown),.header-actions>.icon-btn{display:none}.header-save-btn span{display:none}.header-save-btn{width:30px;min-width:0;padding:0}.workspace{grid-column:1;grid-row:2}.panel{position:fixed;z-index:90;top:56px;bottom:50px;width:min(92vw,360px);transition:transform .26s cubic-bezier(.22,.85,.32,1);box-shadow:0 30px 80px #0000008c}.panel-left{left:0;transform:translate(-103%)}.panel-right{right:0;transform:translate(103%)}.app-shell.mobile-panel-left .panel-left,.app-shell.mobile-panel-right .panel-right{transform:translate(0)}.dock-scrim{position:fixed;z-index:80;inset:56px 0 50px;display:block;border:0;background:#0207098a;backdrop-filter:blur(3px)}.mobile-dock{position:relative;z-index:100;grid-column:1;grid-row:3;display:flex;align-items:center;justify-content:space-around;border-top:1px solid var(--line);background:#081114f7;backdrop-filter:blur(20px)}.mobile-dock button{display:flex;align-items:center;gap:5px;height:100%;padding:0 24px;color:var(--muted);font-size:10px}.mobile-dock button.is-active{color:var(--accent)}.mobile-dock button svg{width:15px;height:15px}.dock-brand{color:var(--dim);font-size:8px;letter-spacing:.2em}.viewport-topbar{top:8px;left:8px;right:8px}.viewport-crumbs{display:none}.viewport-actions{margin-left:auto}.viewport-actions .view-switcher{display:none}.viewport-footer{left:8px;right:8px;bottom:8px}.viewport-stats span:nth-child(n+5),.axis-compass{display:none}.toast-stack{bottom:62px;right:10px;left:10px;align-items:center}.toast{width:100%}.modal-backdrop{padding:10px}.modal{max-height:92vh}.modal-head{padding:15px 16px 12px}.modal-body{padding:15px 16px 18px}.auth-layout{grid-template-columns:1fr;min-height:0}.auth-aside{display:none}.project-grid{grid-template-columns:1fr}.projects-toolbar{flex-direction:column}.help-grid,.help-tips,.shortcut-grid{grid-template-columns:1fr}}@media(max-width:620px){.project-name-wrap>input{font-size:11px}.header-actions{gap:3px}.account-chip.guest .login-icon{display:none}.viewport-actions .icon-btn{width:27px}.viewport-stats{gap:5px;padding:0 7px}.viewport-stats span:nth-child(n+4){display:none}.bom-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.bom-summary>div:nth-child(2){border-right:0}.bom-head{flex-direction:column}.projects-toolbar-actions{width:100%}.projects-toolbar-actions .btn{flex:1}.guest-feature-row{flex-wrap:wrap;justify-content:center}}html[data-theme=black]{color-scheme:dark;--bg: #050808;--bg-deep: #020404;--panel: rgba(8, 14, 15, .94);--panel-solid: #080e0f;--panel-raised: #101a1b;--panel-soft: #0b1314;--ambient-a: rgba(47, 121, 122, .08);--ambient-b: rgba(18, 44, 46, .12)}html[data-theme=black] .app-header{background:linear-gradient(180deg,#05090afa,#030708e6)}html[data-theme=white]{color-scheme:light;--bg: #eef3f3;--bg-deep: #e4ebeb;--panel: rgba(255, 255, 255, .94);--panel-solid: #ffffff;--panel-raised: #f8fbfa;--panel-soft: #f2f7f6;--line: rgba(24, 62, 66, .13);--line-strong: rgba(24, 62, 66, .24);--text: #172728;--text-soft: #344b4d;--muted: #5f7779;--dim: #83989a;--accent: #0d9e92;--accent-strong: #28c8b7;--accent-deep: #087b73;--accent-dim: rgba(13, 158, 146, .1);--accent-line: rgba(13, 158, 146, .3);--ambient-a: rgba(88, 184, 176, .12);--ambient-b: rgba(154, 198, 203, .16);--blue: #2278a7;--amber: #a66a19;--danger: #c44535;--danger-dim: rgba(196, 69, 53, .1);--shadow-panel: 0 20px 60px rgba(36, 69, 72, .12)}html[data-theme=white] body{background:radial-gradient(1000px 650px at 72% -8%,var(--ambient-a),transparent 68%),radial-gradient(900px 700px at -5% 100%,var(--ambient-b),transparent 70%),var(--bg);color:var(--text)}html[data-theme=white] .app-header{background:linear-gradient(180deg,#fffffff5,#f7fafae6);border-bottom-color:var(--line);box-shadow:0 4px 22px #2445480d}html[data-theme=white] .brand-mark{background:radial-gradient(circle at 35% 25%,rgba(55,200,185,.2),transparent 60%),linear-gradient(145deg,#e1f4f1f2,#f2f9f8fa);border-color:#0d9e9240;box-shadow:inset 0 1px #ffffffe6,0 8px 20px #24454814}html[data-theme=white] .panel{background:linear-gradient(180deg,#fffffff7,#f8fbfafa)}html[data-theme=white] .panel-tabs{background:#143c4005}html[data-theme=white] .tab-count{background:#183e4212}html[data-theme=white] .workspace,html[data-theme=white] .viewport{background:#e9eff0}html[data-theme=white] .viewport:before{background:radial-gradient(850px 500px at 63% 20%,rgba(65,150,150,.06),transparent 68%),linear-gradient(180deg,rgba(255,255,255,.04),transparent 18%,transparent 80%,rgba(40,72,76,.08))}html[data-theme=white] .viewport:after{box-shadow:inset 0 0 100px #3d5b5e14}html[data-theme=white] .chip{background:#183e4209}html[data-theme=white] .chip:hover{background:#183e4212}html[data-theme=white] .chip.is-active{border-color:var(--accent-line);background:var(--accent-dim)}html[data-theme=white] .search-box,html[data-theme=white] .number-input,html[data-theme=white] .segmented,html[data-theme=white] .select-wrap select{background:#f5f9f8}html[data-theme=white] .search-box:focus-within,html[data-theme=white] .number-input:focus-within{background:#fff}html[data-theme=white] .preset-card,html[data-theme=white] .level-card{background:#183e4206}html[data-theme=white] .preset-card:hover{background:#0d9e920f}html[data-theme=white] .preset-icon{border-color:#183e4214;background:radial-gradient(circle at 30% 20%,rgba(115,234,220,.2),transparent 65%),#eef7f5}html[data-theme=white] .object-row:hover{background:#183e420a}html[data-theme=white] .object-icon{background:#183e420d}html[data-theme=white] .object-row.is-selected{border-color:var(--accent-line);background:linear-gradient(90deg,var(--accent-dim),rgba(13,158,146,.02))}html[data-theme=white] .viewport-crumbs,html[data-theme=white] .viewport-actions,html[data-theme=white] .viewport-stats{background:#ffffffe0;box-shadow:0 8px 26px #2e4e5217}html[data-theme=white] .view-switcher button:hover,html[data-theme=white] .transform-tools button:hover:not(:disabled),html[data-theme=white] .icon-btn:hover:not(:disabled){background:#183e420f}html[data-theme=white] .view-switcher button.is-active,html[data-theme=white] .transform-tools button.is-active{background:var(--accent-dim)}html[data-theme=white] .transform-tools{background:#183e4206}html[data-theme=white] .transform-hint{background:#ffffffed;color:var(--text-soft);box-shadow:0 8px 24px #2e4e521f}html[data-theme=white] .dropdown-menu{background:#fffffffa;box-shadow:0 24px 60px #2445482e}html[data-theme=white] .dropdown-menu>button:hover,html[data-theme=white] .dropdown[open]>summary{background:#183e420f}html[data-theme=white] .modal{border-color:var(--line-strong);background:radial-gradient(700px 300px at 20% 0%,rgba(68,180,168,.07),transparent 68%),linear-gradient(155deg,#fff,#f7fbfa 62%,#f1f6f5);box-shadow:0 40px 100px #24454838,inset 0 1px #ffffffe6}html[data-theme=white] .modal-backdrop{background:#2a3d3f42}html[data-theme=white] .toast{background:#fffffff7;box-shadow:0 18px 50px #2445482e}html[data-theme=white] .metric-card{background:linear-gradient(145deg,rgba(255,255,255,.85),transparent 75%),#183e4206}html[data-theme=white] .quick-align button{background:#183e4205}html[data-theme=white] .quick-align button:hover{background:#0d9e9212}html[data-theme=white] .btn-secondary{background:#183e4209}html[data-theme=white] .btn-secondary:hover:not(:disabled){background:#183e4212}html[data-theme=white] .btn-ghost:hover:not(:disabled){background:#183e420e}html[data-theme=white] .help-card{background:#183e4206}html[data-theme=white] .project-card{background:#ffffffb8}html[data-theme=white] .project-thumb{background:#eef4f3}html[data-theme=white] .auth-main{background:#fff}html[data-theme=white] .auth-input>div{background:#f5f9f8;border-color:var(--line)}html[data-theme=white] .theme-menu .theme-swatch{border-color:#183e422e}.text-input,.text-area{width:100%;border:1px solid var(--line);border-radius:8px;background:#040b0d6b;color:var(--text);font-size:11px;padding:9px 10px;transition:border-color .18s,background .18s}.text-input{height:34px}.text-area{resize:vertical;min-height:88px;line-height:1.6}.text-input:focus,.text-area:focus{outline:none;border-color:var(--accent-line);background:#040b0d9e}.form-error{padding:8px 10px;border:1px solid rgba(255,129,115,.28);border-radius:7px;background:var(--danger-dim);color:var(--danger);font-size:10px}.set-submit-form{display:flex;flex-direction:column;gap:14px}.set-submit-meta{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#ffffff05}.set-submit-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--accent-dim);color:var(--accent);font-family:var(--mono);font-weight:600}.set-submit-meta div{display:flex;flex-direction:column;gap:2px}.set-submit-meta strong{color:var(--text);font-size:11.5px}.set-submit-meta small{color:var(--muted);font-size:9px}.set-submit-tip{display:flex;align-items:flex-start;gap:7px;color:var(--dim);font-size:9px;line-height:1.6}.set-submit-tip svg{width:13px;height:13px;margin-top:1px;color:var(--accent)}.set-submit-done{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 0 6px;text-align:center}.done-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--accent-dim);color:var(--accent)}.done-icon svg{width:24px;height:24px}.set-submit-done h3{color:var(--text);font-size:15px}.set-submit-done p{max-width:440px;color:var(--muted);font-size:11px;line-height:1.7}.review-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.review-tabs{display:flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:8px;background:#ffffff05}.review-tabs button{height:27px;padding:0 10px;border-radius:5px;color:var(--muted);font-size:9.5px}.review-tabs button:hover{color:var(--text-soft);background:#ffffff0d}.review-tabs button.is-active{color:var(--accent);background:var(--accent-dim)}.review-admin-mark{display:flex;align-items:center;gap:5px;color:var(--accent);font-size:9px}.review-admin-mark svg{width:13px;height:13px}.review-loading{display:flex;align-items:center;justify-content:center;gap:7px;min-height:140px;color:var(--muted);font-size:10px}.review-loading svg{width:15px;height:15px}.review-list{display:flex;flex-direction:column;gap:7px;max-height:min(54vh,540px);overflow-y:auto;padding-right:2px}.review-card{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px;border:1px solid var(--line);border-radius:9px;background:#ffffff05}.review-card-main{display:flex;flex-direction:column;gap:4px;min-width:0}.review-card-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.review-card-title strong{color:var(--text);font-size:11.5px}.review-card-main p{color:var(--muted);font-size:9.5px;line-height:1.6}.review-card-main small{color:var(--dim);font-size:8.5px}.review-card-main em{color:var(--amber);font-size:8.5px;font-style:normal}.review-status{padding:2px 6px;border-radius:4px;font-size:8px}.review-status.status-pending{color:var(--amber);background:var(--amber-dim)}.review-status.status-approved{color:var(--accent);background:var(--accent-dim)}.review-status.status-rejected{color:var(--danger);background:var(--danger-dim)}.review-actions{display:flex;flex-direction:column;gap:5px;flex:none}.review-empty{display:flex;flex-direction:column;align-items:center;gap:5px;min-height:160px;justify-content:center;text-align:center}.review-empty svg{width:28px;height:28px;color:var(--dim)}.review-empty h3{color:var(--text-soft);font-size:12px}.review-empty p{color:var(--dim);font-size:9.5px}html[data-theme=white] .text-input,html[data-theme=white] .text-area{background:#f5f9f8;color:var(--text)}html[data-theme=white] .text-input:focus,html[data-theme=white] .text-area:focus{background:#fff}html[data-theme=white] .set-submit-meta,html[data-theme=white] .review-tabs{background:#183e4206}html[data-theme=white] .review-tabs button:hover{background:#183e420f}html[data-theme=white] .review-card{background:#183e4206}.theme-menu{max-height:min(70vh,520px);overflow-y:auto}html[data-theme=white] .mobile-dock{background:#fffffff7;border-top-color:var(--line)}html[data-theme=white] .dock-scrim{background:#2a3d3f33}.sms-send-button{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 8px;border:1px solid var(--accent-line);border-radius:6px;color:var(--accent);background:var(--accent-dim);font-size:9px;white-space:nowrap}.sms-send-button:hover:not(:disabled){border-color:var(--accent)}.sms-send-button:disabled{opacity:.55}.sms-send-button svg{width:12px;height:12px}.auth-dev-code{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border:1px dashed var(--accent-line);border-radius:8px;background:var(--accent-dim);color:var(--muted);font-size:9px}.auth-dev-code strong{color:var(--accent);font-family:var(--mono);font-size:14px;letter-spacing:.14em}.auth-dev-code small{color:var(--dim);font-size:8px}.theme-menu-foot{margin:6px -2px 0;padding:9px 8px 3px;border-top:1px solid var(--line)}.theme-menu-foot>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:7px}.theme-menu-foot strong{color:var(--text-soft);font-size:10px}.theme-menu-foot small{color:var(--dim);font-size:8px}.font-size-options{display:flex;gap:3px;padding:2px;border:1px solid var(--line);border-radius:7px;background:#ffffff05}.font-size-options button{flex:1;height:24px;border-radius:5px;color:var(--muted);font-size:9px}.font-size-options button:hover{color:var(--text-soft);background:#ffffff0d}.font-size-options button.is-active{color:var(--accent);background:var(--accent-dim)}html[data-theme=white] .font-size-options{background:#183e4206}html[data-theme=white] .font-size-options button:hover{background:#183e420f}.review-tabs button svg{width:12px;height:12px;margin-right:3px}.review-fee-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:-2px 0 12px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#ffffff05;color:var(--muted);font-size:9px}.review-fee-row input{width:52px;height:26px;border:1px solid var(--line);border-radius:5px;background:#040b0d66;color:var(--text);text-align:center;font-family:var(--mono);font-size:10px}.review-fee-row small{color:var(--dim);font-size:8px}.review-sale-badge{padding:2px 6px;border:1px solid var(--amber-dim);border-radius:4px;color:var(--amber);background:var(--amber-dim);font-size:8px}.market-sale-toggle{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1px solid var(--line);border-radius:8px;cursor:pointer}.market-sale-toggle input{margin-top:2px;accent-color:var(--accent)}.market-sale-toggle span{display:flex;flex-direction:column;gap:2px}.market-sale-toggle strong{color:var(--text-soft);font-size:10.5px}.market-sale-toggle small{color:var(--dim);font-size:8.5px;line-height:1.5}.price-input-wrap{display:flex;align-items:center;gap:5px}.price-input-wrap>span{color:var(--accent);font-family:var(--mono);font-size:13px}.market-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.market-user{color:var(--dim);font-size:9px}.market-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:min(58vh,560px);overflow-y:auto;padding-right:2px}.market-card{display:flex;flex-direction:column;gap:7px;padding:11px;border:1px solid var(--line);border-radius:10px;background:#ffffff05}.market-card-head{display:flex;align-items:flex-start;gap:8px}.market-card-head>div{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.market-card-head strong{color:var(--text);font-size:11.5px}.market-card-head small{color:var(--dim);font-size:8.5px}.market-card-icon,.market-row-icon{display:grid;place-items:center;flex:none;width:29px;height:29px;border-radius:7px;background:var(--accent-dim);color:var(--accent)}.market-card-icon svg,.market-row-icon svg{width:14px;height:14px}.market-price{color:var(--amber);font-family:var(--mono);font-size:13px;white-space:nowrap}.market-card>p{min-height:32px;color:var(--muted);font-size:9px;line-height:1.6}.market-meta{display:flex;flex-wrap:wrap;gap:4px 8px;color:var(--dim);font-size:8px}.market-card-actions{display:flex;justify-content:flex-end;margin-top:auto;padding-top:4px}.market-owned{color:var(--accent);font-size:9px}.market-list{display:flex;flex-direction:column;gap:7px;max-height:min(55vh,520px);overflow-y:auto}.market-row{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#ffffff05}.market-row>div{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.market-row strong{color:var(--text-soft);font-size:10.5px}.market-row small{color:var(--dim);font-size:8.5px}.market-sales-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:10px}.market-sales-metrics>div{padding:9px;border:1px solid var(--line);border-radius:8px;background:#ffffff05}.market-sales-metrics span{display:block;color:var(--dim);font-size:8px}.market-sales-metrics strong{color:var(--text-soft);font-family:var(--mono);font-size:13px}.market-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%}.market-footer>span{color:var(--dim);font-size:8.5px}@media(max-width:760px){.market-grid{grid-template-columns:1fr}.market-footer{flex-direction:column;align-items:stretch;gap:7px}.market-sales-metrics{grid-template-columns:1fr}.review-fee-row small{width:100%}}html[data-theme=white] .review-fee-row,html[data-theme=white] .market-card,html[data-theme=white] .market-row,html[data-theme=white] .market-sales-metrics>div{background:#183e4206}html[data-theme=white] .review-fee-row input{background:#f5f9f8}html{--ui-scale: 1}body{width:calc(100% / var(--ui-scale));height:calc(100% / var(--ui-scale))}html{overflow:hidden}.overflow-panel-title{margin-top:11px;padding-top:9px;border-top:1px dashed var(--line);color:var(--accent);font-size:9px;font-weight:650;letter-spacing:.05em}.corner-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.corner-row{display:flex;align-items:center;gap:5px;padding:7px;border:1px solid var(--line);border-radius:8px;background:#ffffff05}.corner-row>strong{color:var(--muted);font-size:8.5px;white-space:nowrap}.corner-row .segmented{flex:none}.corner-row .number-input{min-width:0;flex:1}.sump-drain-block{display:flex;flex-direction:column;gap:9px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}@media(max-width:760px){.corner-grid{grid-template-columns:1fr}}html[data-theme=white] .corner-row{background:#183e4206}.system-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}.system-stat-grid>div{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#ffffff06}.system-stat-grid strong{font-size:20px;line-height:1;color:var(--text)}.system-stat-grid span{color:var(--muted);font-size:9px}.system-tabs{display:flex;gap:5px;margin-bottom:12px;padding:4px;border:1px solid var(--line);border-radius:10px;background:#ffffff05}.system-tabs button{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:10px;cursor:pointer}.system-tabs button.is-active{background:var(--accent);color:#062322}.system-tabs svg{width:14px;height:14px}.system-panel{display:flex;flex-direction:column;gap:11px}.system-toolbar{display:flex;align-items:center;gap:8px}.system-search{display:flex;align-items:center;gap:7px;flex:1;max-width:340px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#ffffff05}.system-search svg{width:14px;height:14px;color:var(--muted)}.system-search input{width:100%;padding:8px 0;border:0;outline:0;background:transparent;color:var(--text);font:inherit}.system-create-form{display:grid;grid-template-columns:1.2fr 1fr .9fr auto;gap:7px}.system-create-form input,.system-create-form select,.system-role-card input,.system-create-role input,.system-table-row select{min-width:0;padding:8px 9px;border:1px solid var(--line);border-radius:7px;background:#ffffff08;color:var(--text);font:inherit;font-size:10px}.system-table{overflow:auto;border:1px solid var(--line);border-radius:10px}.system-table-head,.system-table-row{display:grid;grid-template-columns:minmax(150px,1.5fr) minmax(105px,1fr) minmax(105px,1fr) minmax(75px,.65fr) minmax(125px,1.2fr) 34px;gap:8px;align-items:center;min-width:700px;padding:9px 11px}.system-table-head{background:#ffffff0a;color:var(--muted);font-size:8.5px;text-transform:uppercase;letter-spacing:.05em}.system-table-row{border-top:1px solid var(--line);font-size:10px}.system-account-name{display:flex;flex-direction:column;gap:2px}.system-account-name strong{color:var(--text);font-size:11px}.system-account-name small{color:var(--muted);font-size:8.5px}.system-status{padding:5px 8px;border:1px solid rgba(96,206,180,.35);border-radius:99px;background:#60ceb41a;color:#8be6d1;font-size:8.5px;cursor:pointer}.system-status.is-off{border-color:#ff806459;background:#ff806414;color:#ff9f8a}.system-muted{color:var(--muted);font-size:9px}.system-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.system-role-card{display:flex;flex-direction:column;gap:9px;padding:11px;border:1px solid var(--line);border-radius:10px;background:#ffffff05}.system-role-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.system-role-card header>div{display:flex;flex-direction:column;gap:3px;flex:1}.system-role-card header input{font-weight:650}.system-role-card small{color:var(--muted);font-size:8px}.system-permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.system-permission-grid label{display:flex;align-items:center;gap:6px;padding:5px 7px;border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:9px}.system-permission-grid input{accent-color:var(--accent)}.system-create-role{display:flex;flex-direction:column;gap:8px;margin-top:4px;padding:11px;border:1px dashed var(--line);border-radius:10px}.system-create-role h4{margin:0;color:var(--text);font-size:11px}.system-log-list{display:flex;flex-direction:column;gap:5px;max-height:390px;overflow:auto}.system-log-list article{display:grid;grid-template-columns:145px minmax(0,1fr);gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#ffffff05}.system-log-list time{color:var(--muted);font-size:8.5px}.system-log-list strong{color:var(--text);font-size:10px}.system-log-list p{margin:2px 0;color:var(--muted);font-size:9px}.system-log-list small{color:var(--muted);font-size:8px}.system-loading,.system-empty{display:flex;align-items:center;justify-content:center;gap:7px;padding:28px;color:var(--muted);font-size:10px}.system-error{margin-bottom:10px;padding:8px 10px;border:1px solid rgba(255,120,90,.35);border-radius:7px;background:#ff785a14;color:#ff9f8a;font-size:9px}.spin{animation:spin .9s linear infinite}@media(max-width:900px){.system-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.system-create-form,.system-role-grid{grid-template-columns:1fr}.system-toolbar{flex-wrap:wrap}.system-search{max-width:none}}.system-delete{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:1px solid rgba(255,120,90,.28);border-radius:6px;background:#ff785a0f;color:#ff9f8a;cursor:pointer}.system-delete:disabled{opacity:.3;cursor:not-allowed}.system-delete svg{width:12px;height:12px}.system-permission-grid input[type=checkbox]{appearance:none;display:inline-grid;place-content:center;width:14px;height:14px;margin:0;border:1px solid var(--line);border-radius:3px;background:#ffffff08;opacity:1}.system-permission-grid input[type=checkbox]:before{content:"";width:7px;height:4px;border-left:1.5px solid #062322;border-bottom:1.5px solid #062322;transform:rotate(-45deg) scale(0);transition:transform .12s ease}.system-permission-grid input[type=checkbox]:checked{border-color:var(--accent);background:var(--accent)}.system-permission-grid input[type=checkbox]:checked:before{transform:rotate(-45deg) scale(1)}.system-permission-grid input[type=checkbox]:disabled{opacity:.9;cursor:not-allowed}.background-control{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.background-control>.select-wrap{flex:1 1 100%;min-width:0}.background-color-input{width:100%;height:26px;padding:2px;border:1px solid rgba(139,170,170,.25);border-radius:7px;background:#0c1718;cursor:pointer}.model-admin{display:flex;flex-direction:column;gap:12px;min-height:0}.model-admin-toolbar{display:flex;align-items:center;gap:8px}.model-admin-toolbar .text-input{flex:1;min-width:0}.model-admin-layout{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(360px,1.25fr);gap:12px;min-height:460px;max-height:66vh}.model-admin-list{display:flex;flex-direction:column;gap:5px;overflow-y:auto;padding-right:3px}.model-admin-row{display:flex;align-items:center;gap:9px;padding:9px;border:1px solid var(--line);border-radius:9px;background:#ffffff05;cursor:pointer}.model-admin-row:hover,.model-admin-row.is-selected{border-color:var(--accent-line);background:var(--accent-dim)}.model-admin-icon{display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:7px;color:var(--accent);background:#5fe4d514}.model-admin-icon svg{width:15px;height:15px}.model-admin-meta{display:flex;flex-direction:column;min-width:0;flex:1;gap:2px}.model-admin-meta strong{overflow:hidden;color:var(--text);font-size:10.5px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.model-admin-meta small{overflow:hidden;color:var(--dim);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.model-admin-actions{display:flex;align-items:center;gap:3px;flex:none}.model-admin-actions button,.model-admin-actions a{display:grid;place-items:center;width:24px;height:24px;border-radius:5px;color:var(--muted)}.model-admin-actions button:hover,.model-admin-actions a:hover{color:var(--accent);background:#5fe4d514}.model-admin-actions button.danger:hover{color:var(--danger);background:var(--danger-dim)}.model-admin-actions svg{width:13px;height:13px}.model-admin-preview{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#02080a59}.model-preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line)}.model-preview-head>div{display:flex;flex-direction:column;min-width:0;gap:2px}.model-preview-head strong{font-size:11px;font-weight:500}.model-preview-head small{color:var(--dim);font-size:8px}.model-preview-stage{flex:1;min-height:360px}.model-preview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;height:100%;min-height:260px;padding:20px;color:var(--muted);text-align:center}.model-preview-empty svg{width:26px;height:26px;color:var(--accent);opacity:.7}.model-preview-empty strong{color:var(--text-soft);font-size:11px;font-weight:500}.model-preview-empty small{max-width:260px;color:var(--dim);font-size:8px;line-height:1.7}@media(max-width:900px){.model-admin-layout{grid-template-columns:1fr;max-height:none}.model-preview-stage{min-height:300px}}.pump-align-form{display:flex;flex-direction:column;gap:10px}.pump-align-preview{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px dashed var(--accent-line);border-radius:7px;color:var(--muted);font-size:9px}.pump-align-preview svg{width:14px;height:14px;color:var(--accent)}.pump-align-axes{display:flex;align-items:center;gap:12px;padding:7px 9px;border:1px solid var(--line);border-radius:7px;color:var(--muted);font-size:9px}.pump-align-axes>span{color:var(--dim)}.pump-align-axes label{display:flex;align-items:center;gap:4px;cursor:pointer}.pump-align-axes input{accent-color:var(--accent)}.pump-align-axes strong{color:var(--text-soft);font-size:9px;font-weight:500}.header-nav{display:flex;align-items:center;gap:2px;height:auto;margin:0;padding:0;border:0;overflow:visible;flex:none}.header-nav-sep{width:1px;height:15px;margin:0 6px;background:var(--line);flex:none}.header-nav-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:27px;padding:0 10px;border-radius:6px;color:var(--text-soft);font-size:9.5px;white-space:nowrap;transition:color .16s,background .16s}.header-nav-btn:hover{color:var(--accent);background:#5fe4d512}.header-nav-btn svg{width:13px;height:13px;color:var(--accent);opacity:.78}.header-nav-btn:focus-visible{outline:1px solid var(--accent-line);outline-offset:-1px}@media(max-width:1320px){.header-nav-btn{width:28px;padding:0}.header-nav-btn span{display:none}}@media(max-width:980px){.header-nav{display:none}}@media(max-width:980px){.app-header-main{height:56px}}.header-nav-end{display:flex;align-items:center;gap:5px;margin-left:0;flex:none;padding-left:6px}.header-nav-end .icon-btn{width:27px;height:27px}.header-nav-end .account-chip{height:28px;padding:0 5px 0 3px}.header-nav-end .account-chip .avatar{width:22px;height:22px;font-size:9px}.header-nav-end .account-name{max-width:76px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-nav .brand-top{min-width:0;gap:7px;flex:none;padding-right:11px}.header-nav .brand-top .brand-mark{width:27px;height:27px;border-radius:8px}.header-nav .brand-top .brand-mark svg{width:21px;height:21px}.header-nav .brand-top .brand-text strong{font-size:12px;letter-spacing:.06em}.header-nav .brand-top .brand-text span{margin-top:0;font-size:6px;letter-spacing:.14em}.brand-mobile{display:none}@media(max-width:980px){.brand-mobile{display:flex;min-width:132px}}@media(max-width:1180px){.header-nav-btn{width:28px;padding:0}.header-nav-btn span{display:none}}.sidebar-project{flex:none;padding:12px 12px 11px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(95,228,213,.055),transparent 62%),linear-gradient(180deg,#14282c8c,#09131652);box-shadow:inset 3px 0 #5fe4d559}.sidebar-project-label{display:block;margin-bottom:5px;color:var(--dim);font-size:8px;font-weight:500;letter-spacing:.12em}.sidebar-project-row{display:flex;align-items:center;gap:7px}.sidebar-project-row input{flex:1;min-width:0;height:24px;padding:0;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--text);font-size:14px;font-weight:520;outline:none}.sidebar-project-row input:focus{border-bottom-color:var(--accent-line)}.sidebar-project-row .save-state{flex:none;height:19px;padding:0 6px;font-size:8px}.app-shell.page-mode{grid-template-columns:minmax(0,1fr);grid-template-rows:60px minmax(0,1fr)}.workspace-page{grid-column:1 / -1;display:flex;flex-direction:column;min-height:0;height:100%;overflow:hidden;padding:14px 18px 16px;background:radial-gradient(900px 420px at 50% -10%,rgba(48,124,126,.12),transparent 70%),linear-gradient(180deg,#060e11f5,#050c0f)}.workspace-page-head{display:flex;align-items:flex-start;gap:16px;width:100%;margin:0 0 12px;flex:none}.workspace-page-head>.btn{margin-top:2px;flex:none}.workspace-page-title{display:flex;flex-direction:column;gap:2px;min-width:0}.workspace-page-title>span{color:var(--accent);font-size:8px;font-weight:600;letter-spacing:.17em}.workspace-page-title h1{color:var(--text);font-size:25px;font-weight:500;letter-spacing:.01em}.workspace-page-title p{color:var(--muted);font-size:10px}.workspace-page-body{display:flex;width:100%;min-height:0;flex:1;margin:0}.page-panel{display:flex;flex:1;flex-direction:column;width:100%;min-height:0;overflow:hidden;border:1px solid rgba(133,179,187,.18);border-radius:14px;background:radial-gradient(700px 300px at 20% 0%,rgba(54,130,132,.08),transparent 68%),linear-gradient(155deg,#101f23,#0a1519 62%,#081114);box-shadow:0 22px 70px #0000003d,inset 0 1px #ffffff09}.page-panel-body{flex:1;min-height:0;overflow-y:auto;padding:16px 18px}.workspace-page .model-admin-layout{max-height:none;min-height:520px}.workspace-page .model-preview-stage{min-height:480px}.workspace-page .system-panel{max-height:none}@media(max-width:900px){.workspace-page{padding:14px 12px 24px}.workspace-page-head{flex-wrap:wrap;gap:10px}.workspace-page-title h1{font-size:21px}.page-panel-body{padding:14px}}.page-panel-footer{display:none}.model-admin-summary{display:flex;align-items:center;gap:10px;justify-content:space-between}.model-admin-filters{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--line);border-radius:7px;background:#0000001f}.model-admin-filters button{display:inline-flex;align-items:center;gap:5px;height:25px;padding:0 8px;border-radius:5px;color:var(--muted);font-size:9px}.model-admin-filters button:hover{color:var(--text-soft)}.model-admin-filters button.is-active{color:var(--accent);background:var(--accent-dim)}.model-admin-filters button span{display:inline-grid;place-items:center;min-width:15px;height:15px;padding:0 3px;border-radius:4px;background:#ffffff0a;font-size:7px}.model-admin-search{display:flex;align-items:center;gap:6px;width:min(300px,44%);height:29px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:#ffffff05}.model-admin-search svg{width:13px;height:13px;flex:none;color:var(--dim)}.model-admin-search input{width:100%;min-width:0;border:0;background:transparent;color:var(--text);font-size:9px;outline:none}.model-admin-row.is-builtin{width:100%;text-align:left;font:inherit}.model-admin-row.is-builtin:hover .model-admin-actions{color:var(--accent)}.model-source-tag{flex:none;padding:2px 5px;border:1px solid rgba(95,228,213,.2);border-radius:4px;color:var(--accent);background:#5fe4d50e;font-size:7px;white-space:nowrap}.model-admin-icon.cat-aquarium{color:#6fe3d4}.model-admin-icon.cat-stand{color:#9fbfc5}.model-admin-icon.cat-glass{color:#8fd2ef}.model-admin-icon.cat-pipe{color:#e0a56b}.model-admin-icon.cat-cabinet{color:#c3a7e8}.model-admin-icon.cat-equipment{color:#8fc99b}.model-admin-icon.cat-set{color:#e6cf78}.model-builtin-preview{display:flex;flex-direction:column;align-items:flex-start;gap:8px;height:100%;padding:26px 30px;overflow-y:auto;background:radial-gradient(420px 220px at 30% 0%,rgba(95,228,213,.06),transparent 70%),linear-gradient(160deg,#11242880,#0710134d)}.model-builtin-icon{display:grid;place-items:center;width:44px;height:44px;margin-bottom:2px;border:1px solid rgba(95,228,213,.18);border-radius:12px;color:var(--accent);background:#5fe4d50f}.model-builtin-icon svg{width:22px;height:22px}.model-builtin-preview h3{margin-top:2px;color:var(--text);font-size:20px;font-weight:500}.model-builtin-subtitle{color:var(--text-soft);font-size:10px}.model-builtin-desc{max-width:480px;color:var(--muted);font-size:10px;line-height:1.8}.model-builtin-meta{display:flex;gap:26px;margin-top:4px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);width:100%}.model-builtin-meta span{display:flex;flex-direction:column;gap:2px}.model-builtin-meta small{color:var(--dim);font-size:7px}.model-builtin-meta strong{color:var(--text-soft);font-size:9px;font-weight:500}.model-builtin-badges{display:flex;gap:5px;flex-wrap:wrap}.model-builtin-badges span{padding:3px 6px;border:1px solid var(--line);border-radius:4px;color:var(--muted);font-size:7px}.model-builtin-note{margin-top:auto;padding-top:16px;color:var(--dim);font-size:8px;line-height:1.7}.workspace-page .model-admin{height:100%;min-height:0}.workspace-page .model-admin-layout{flex:1;min-height:0;max-height:none}.workspace-page .model-admin-list{min-height:0;overflow-y:auto}.workspace-page .model-admin-preview{min-height:0}.workspace-page .model-preview-stage{flex:1;min-height:0}.workspace-page .model-builtin-preview{height:100%}.model-meta-editor{gap:12px;padding:18px 20px}.model-meta-title{display:flex;align-items:flex-start;gap:12px}.model-meta-title .model-builtin-icon{margin:0;flex:none}.model-meta-title>div{display:flex;flex-direction:column;gap:3px;min-width:0}.model-meta-title h3{font-size:18px}.model-meta-title p{color:var(--muted);font-size:9px}.model-meta-field{display:flex;flex-direction:column;gap:5px;width:100%}.model-meta-field>span,.model-meta-head strong{color:var(--text-soft);font-size:9px;font-weight:500}.model-meta-field input,.model-meta-row input{height:27px;padding:0 8px;border:1px solid var(--line);border-radius:5px;background:#ffffff05;color:var(--text);font-size:9px;outline:none}.model-meta-field input:focus,.model-meta-row input:focus{border-color:var(--accent-line)}.model-meta-section{display:flex;flex-direction:column;gap:6px;width:100%;padding-top:10px;border-top:1px solid var(--line)}.model-meta-head{display:flex;align-items:baseline;gap:8px}.model-meta-head small{color:var(--dim);font-size:7px}.model-meta-rows{display:flex;flex-direction:column;gap:4px}.model-meta-row{display:grid;grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr);align-items:center;gap:5px}.model-meta-row>span{color:var(--dim);font-size:9px;text-align:center}.model-meta-add{align-self:flex-start;margin-top:2px;color:var(--accent);font-size:8px}.model-meta-editor .model-builtin-badges,.model-meta-editor .model-builtin-desc{flex:none}.model-admin-toolbar{flex-wrap:wrap}.model-admin-check{display:inline-flex;align-items:center;gap:5px;height:29px;padding:0 8px;border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:8px;cursor:pointer;white-space:nowrap}.model-admin-check input{accent-color:var(--accent)}.model-upload-meta{display:inline-flex;align-items:center;gap:3px}.model-upload-meta svg{width:9px;height:9px;margin-left:4px;color:var(--dim)}.model-upload-meta svg:first-child{margin-left:0}.model-status-tag{flex:none;padding:2px 5px;border-radius:4px;font-size:7px;white-space:nowrap}.model-status-tag.is-approved{color:var(--accent);background:#5fe4d514;border:1px solid rgba(95,228,213,.18)}.model-status-tag.is-pending{color:#e8c36c;background:#e8c36c14;border:1px solid rgba(232,195,108,.22)}.model-status-tag.is-rejected{color:#ff8173;background:#ff817314;border:1px solid rgba(255,129,115,.2)}.model-status-tag.is-private{color:var(--dim);border:1px solid var(--line)}.model-admin-actions button.approve{color:#76d9a0}.model-admin-actions button.approve:hover{color:#9ff0bd;background:#76d9a01a}.model-preview-head{flex-wrap:wrap}.model-preview-head>.model-status-tag{margin-left:auto}.model-status-tag.is-unpublished{color:#c7a86b;background:#c7a86b12;border:1px solid rgba(199,168,107,.2)}.model-admin-actions button.warn{color:#e8c36c}.model-admin-actions button.warn:hover{color:#ffe09a;background:#e8c36c1a}.mobile-nav{display:none}.mobile-nav-menu{min-width:210px}@media(max-width:980px){.mobile-nav{display:block}}
