@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/Inter.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/JetBrainsMono.woff2)format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/SpaceGrotesk-Variable.woff2)format("woff2")}:where(.zaicad-app),:where(.zaicad-app) *,:where(.zaicad-app) :before,:where(.zaicad-app) :after{box-sizing:border-box;margin:0;padding:0}.zaicad-app{--bg:#07090e;--surface:#0c0f15;--elev:#12161f;--bg-elev:#161b22;--border:#ffffff12;--border-strong:#ffffff24;--accent:#8f7bff;--accent-dim:#8f7bff21;--accent2:#5c9eff;--green:#46d17a;--gold:#e8b85b;--text:#f0f4f9;--muted:#98a3b3;--dim:#5f6b7c;--error:#ff6b66;--warning:#e8b85b;--grad:linear-gradient(120deg, #8f7bff, #5c9eff);--grad-suite:linear-gradient(120deg, #5c9eff, #8f7bff);--font-ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Courier New", monospace;--ease:cubic-bezier(.22, 1, .36, 1);--suite-rail-h:38px}.zaicad-app[data-theme=light]{--bg:#f2f3f7;--surface:#fff;--elev:#f7f8fb;--bg-elev:#f0f1f5;--border:#e2e5ec;--border-strong:#d2d7e2;--text:#12141a;--muted:#5b6274;--dim:#7d8497}.zaicad-app[data-theme=light] .btn{background:#12141a09}.zaicad-app[data-theme=light] .btn:hover{background:#12141a12}.zaicad-app[data-theme=light] .shape-btn{background:#12141a08}.zaicad-app[data-theme=light] .num-input{background:#12141a0b}.zaicad-app[data-theme=light] .obj-item:hover{background:#12141a09}.zaicad-app[data-theme=light] ::-webkit-scrollbar-thumb{background:#12141a24}.zaicad-app[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#12141a38}.suite-chrome,html[data-theme=light] .suite-chrome{--bg:#f2f3f7;--panel:#fff;--panel2:#f7f8fb;--line:#e2e5ec;--line2:#d2d7e2;--tx:#12141a;--tx2:#5b6274;--mut:#7d8497;--ac:#14b8a6}html[data-theme=dark] .suite-chrome{--bg:#0d0e12;--panel:#15171e;--panel2:#1a1d26;--line:#252936;--line2:#323847;--tx:#e8eaf0;--tx2:#9aa1b4;--mut:#6d7488;--ac:#14b8a6}.suite-chrome,.suite-chrome input,.suite-chrome button{color:var(--tx);font-family:Space Grotesk,system-ui,sans-serif}.suite-chrome button:focus-visible,.suite-chrome a:focus-visible{outline:2px solid var(--ac);outline-offset:-1px}.suite-chrome button:focus:not(:focus-visible),.suite-chrome a:focus:not(:focus-visible){outline:none}.suite-chrome .mono{font-family:JetBrains Mono,ui-monospace,monospace}.suite-chrome .lbl{letter-spacing:.13em;text-transform:uppercase;color:var(--mut);font:600 10px/1 JetBrains Mono,monospace}#rail{background:var(--panel);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:2px;height:38px;padding:0 10px;display:flex}#rail .tt{letter-spacing:.14em;text-transform:uppercase;color:var(--mut);margin-right:12px;font:600 10px/1 JetBrains Mono,monospace}#rail a,#rail button{color:var(--tx2);cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:7px;padding:5px 10px;font-size:12.5px;text-decoration:none;display:flex}#rail a:hover,#rail button:hover{color:var(--tx)}#rail [aria-selected=true]{background:var(--panel2);color:var(--tx);box-shadow:inset 0 0 0 1px var(--line2)}#rail .sw{background:var(--c);border-radius:3px;flex:none;width:8px;height:8px}@media (max-width:640px){#rail{display:none}}.suite-chrome.top{background:var(--panel);border-bottom:1px solid var(--line);z-index:30;flex:none;align-items:center;gap:8px;height:50px;padding:0 12px;display:flex;position:relative}.suite-chrome.top>.chip{background:0 0;border:0;border-radius:8px;flex:none;place-items:center;width:32px;height:32px;padding:0;display:grid;overflow:hidden}.suite-chrome.top>.chip svg{width:100%;height:100%;display:block}.suite-chrome .wm{flex-direction:column;margin-right:4px;line-height:1.05;display:flex}.suite-chrome .wm b{letter-spacing:-.2px;color:var(--tx);font-size:14px;font-weight:600}.suite-chrome .wm span{letter-spacing:.1em;text-transform:uppercase;color:var(--mut);font:500 9px/1.3 JetBrains Mono,monospace}.suite-chrome .vr{background:var(--line);flex:none;width:1px;height:22px}.suite-chrome .pname{cursor:pointer;min-width:0;max-width:230px;color:var(--tx);background:0 0;border:1px solid #0000;border-radius:7px;flex-shrink:1;align-items:center;gap:7px;padding:5px 9px;display:flex}.suite-chrome .pname:hover{border-color:var(--line2);background:var(--panel2)}.suite-chrome .pname b{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:500;overflow:hidden}.suite-chrome .saved{color:var(--mut);white-space:nowrap;font:500 10px/1 JetBrains Mono,monospace}.suite-chrome .menus{gap:1px;display:flex;position:relative}.suite-chrome .mbtn{color:var(--tx2);cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:5px;padding:6px 9px;font-size:13px;display:flex}.suite-chrome .mbtn:hover,.suite-chrome .mbtn[aria-expanded=true]{background:var(--panel2);color:var(--tx)}.suite-chrome .mbtn .cv{stroke-width:2px;opacity:.6;width:12px;height:12px}.suite-chrome .drop{background:var(--panel);border:1px solid var(--line2);z-index:50;border-radius:10px;min-width:224px;padding:5px;position:absolute;top:44px;box-shadow:0 16px 40px #00000073}.suite-chrome .drop button{width:100%;color:var(--tx2);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:9px;padding:7px 9px;font-size:13px;display:flex}.suite-chrome .drop button:hover{background:var(--panel2);color:var(--tx)}.suite-chrome .drop button.danger:hover{color:#ff8085;background:#e5484d29;background:lab(54.5836% 61.4482 33.7329/.16)}.suite-chrome .drop .sep{background:var(--line);height:1px;margin:5px 3px}.suite-chrome .drop .k{color:var(--mut);margin-left:auto;font:500 10px/1 JetBrains Mono,monospace}.suite-chrome .run{background:var(--ac);color:#fff;cursor:pointer;border:0;border-radius:8px;align-items:center;gap:6px;padding:7px 13px;font-size:13px;font-weight:600;display:flex}.suite-chrome .run:hover{filter:brightness(1.12)}.suite-chrome .run:disabled{opacity:.5;cursor:not-allowed}.suite-chrome .tb{border:1px solid var(--line);color:var(--tx2);cursor:pointer;background:0 0;border-radius:7px;align-items:center;gap:6px;padding:6px 10px;font-size:12.5px;display:flex}.suite-chrome .tb:hover{border-color:var(--line2);color:var(--tx)}.suite-chrome .tb[aria-pressed=true]{border-color:var(--ac);color:var(--tx);background:color-mix(in oklch, var(--ac) 14%, transparent)}.suite-chrome .live{color:#ff8085;letter-spacing:.1em;border:1px solid #e5484d73;border:1px solid lab(54.5836% 61.4482 33.7329/.45);border-radius:999px;align-items:center;gap:6px;padding:5px 9px;font:600 10px/1 JetBrains Mono,monospace;display:flex}.suite-chrome .livedot{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.6s infinite suite-pulse}@keyframes suite-pulse{50%{opacity:.25}}.suite-chrome .idt{color:var(--tx2);flex:none;align-items:center;gap:8px;min-width:0;font-size:12.5px;display:flex}.suite-chrome .av{background:var(--ac);color:#fff;border-radius:7px;flex:none;place-items:center;width:26px;height:26px;font-size:11px;font-weight:600;display:grid}.suite-chrome .sq{border:1px solid var(--line);width:30px;height:30px;color:var(--tx2);cursor:pointer;background:0 0;border-radius:8px;place-items:center;display:grid}.suite-chrome .sq:hover{border-color:var(--line2);color:var(--tx)}.suite-chrome.status{border-top:1px solid var(--line);background:var(--panel);height:26px;color:var(--mut);flex:none;align-items:center;gap:14px;padding:0 12px;font:500 10.5px/1 JetBrains Mono,monospace;display:flex}#scrim{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:80;background:#0405089e;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.suite-chrome .modal{background:var(--panel);border:1px solid var(--line);width:min(920px,100%);max-height:86vh;color:var(--tx);border-radius:14px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 30px 90px #0009}.suite-chrome .mh{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:13px 15px;display:flex}.suite-chrome .mtabs{border-bottom:1px solid var(--line);gap:2px;padding:8px 12px;display:flex}.suite-chrome .mtabs button{color:var(--tx2);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:6px 11px;font-size:13px}.suite-chrome .mtabs button[aria-selected=true]{background:var(--panel2);color:var(--tx);box-shadow:inset 0 0 0 1px var(--line2)}.suite-chrome .mb{padding:14px 15px;overflow:auto}.suite-chrome table{border-collapse:collapse;width:100%;font-size:13px}.suite-chrome th{text-align:left;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);border-bottom:1px solid var(--line);padding:7px 10px;font:600 10px/1 JetBrains Mono,monospace}.suite-chrome td{border-bottom:1px solid var(--line);color:var(--tx);padding:9px 10px}.suite-chrome tr:hover td{background:var(--panel2)}.suite-chrome .pw{color:var(--mut);border:1px dashed var(--line2);cursor:pointer;border-radius:5px;padding:4px 7px;font:500 12px/1 JetBrains Mono,monospace}.suite-chrome .pill{border:1px solid var(--line2);color:var(--tx2);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:12.5px;display:inline-flex}.suite-chrome .pill:hover{border-color:var(--ac);color:var(--tx)}.suite-chrome .ok{color:#2fbf6a}.suite-chrome .wn{color:#f5a524}.zaicad-app{background:var(--bg);width:100%;height:100%;color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;overflow:hidden}.zaicad-app button{cursor:pointer;font-family:var(--font-ui)}.zaicad-app ::-webkit-scrollbar{width:8px;height:8px}.zaicad-app ::-webkit-scrollbar-track{background:0 0}.zaicad-app ::-webkit-scrollbar-thumb{background:#ffffff1a padding-box padding-box;border:2px solid #0000;border-radius:4px}.zaicad-app ::-webkit-scrollbar-thumb:hover{background:#ffffff2e padding-box padding-box}.zaicad-app :focus-visible{outline:2px solid var(--accent2);outline-offset:1px;border-radius:4px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes spin{to{transform:rotate(360deg)}}.topbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);-webkit-user-select:none;user-select:none;z-index:50;background:#ffffff05;flex-shrink:0;align-items:center;gap:6px;height:48px;padding:0 12px;display:flex;position:relative}.btn{border:1px solid var(--border);color:var(--text);background:#ffffff08;border-radius:7px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:700;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}.btn:hover{border-color:var(--border-strong);background:#ffffff12}.btn:active{transform:translateY(1px)}.btn-ghost{background:0 0}.btn-primary{background:var(--grad);color:#05060a;border:none;box-shadow:0 0 16px -4px #8f7bff99}.btn-primary:hover{filter:brightness(1.07)}.btn-danger{color:var(--error)}.btn:disabled{opacity:.45;cursor:not-allowed}.panel{background:var(--surface);border:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.panel-left{border-right:1px solid var(--border);width:188px}.panel-right{border-left:1px solid var(--border);width:248px}.panel-title{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding:10px 14px 8px;font-size:10px;font-weight:800}.shape-grid{grid-template-columns:1fr 1fr;gap:8px;padding:4px 12px 12px;display:grid}.shape-btn{aspect-ratio:1;border:1px solid var(--border);color:var(--text);background:#ffffff06;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;transition:background .15s,border-color .15s,transform 80ms;display:flex}.shape-btn:hover{background:var(--accent-dim);border-color:var(--accent);transform:translateY(-2px)}.shape-btn .glyph{font-size:22px}.shape-btn .lbl{color:var(--muted);font-size:10px;font-weight:700}.insp-row{align-items:center;gap:8px;padding:5px 14px;display:flex}.insp-row label{width:18px;color:var(--dim);font-size:11px;font-weight:700}.num-input{border:1px solid var(--border);min-width:0;color:var(--text);font-family:var(--font-mono);background:#ffffff0a;border-radius:6px;outline:none;flex:1;padding:5px 8px;font-size:12px}.num-input:focus{border-color:var(--accent)}.obj-item{color:var(--muted);cursor:pointer;border-left:2px solid #0000;align-items:center;gap:8px;padding:7px 14px;font-size:12px;font-weight:600;display:flex}.obj-item:hover{color:var(--text);background:#ffffff08}.obj-item.sel{background:var(--accent-dim);color:var(--text);border-left-color:var(--accent)}.toolbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#0c0f15d1;border:1px solid #ffffff12;border-radius:11px;gap:4px;padding:5px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.tool{color:#98a3b3;background:0 0;border:none;border-radius:7px;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:700;display:flex}.tool:hover{color:#f0f4f9;background:#ffffff0d}.tool.active{background:var(--accent-dim);color:#f0f4f9}.tool .key{opacity:.6;font-size:9px;font-family:var(--font-mono)}.modal-backdrop{z-index:500;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#030408a8;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--elev);border:1px solid var(--border-strong);border-radius:16px;width:min(440px,92vw);padding:24px;box-shadow:0 24px 64px #0009}.modal h2{margin-bottom:4px;font-size:18px;font-weight:800}.modal p.sub{color:var(--muted);margin-bottom:18px;font-size:13px}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:700}.field input{border:1px solid var(--border);color:var(--text);font-size:14px;font-family:var(--font-ui);background:#ffffff0a;border-radius:8px;outline:none;padding:10px 12px}.field input:focus{border-color:var(--accent)}.lock-screen{z-index:600;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#030408eb;flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:fixed;inset:0}.mobile-panel{width:100%}.mobile-panel>.panel{border-left:none;border-right:none;width:100%!important}.mobile-tabs{background:var(--bg);border-top:1px solid var(--border);flex-shrink:0;height:54px;display:flex}.mobile-tab{color:var(--muted);background:0 0;border:none;border-top:2px solid #0000;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;display:flex}.mobile-tab.active{color:var(--accent);border-top-color:var(--accent)}.spinner{border:3px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite spin}