@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--fs-xs:10px;--fs-sm:11px;--fs-md:12px;--fs-base:13px;--fs-lg:15px;--fs-xl:18px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:40px;--z-bar:5;--z-overlay:20;--z-menu:40;--z-login:100;--z-window:150;--z-modal:200;--z-toast:300;--focus:0 0 0 3px var(--accent-soft);--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--dur-press:.1s;--dur-tint:.12s;--dur-pop:.2s;--dur-out:.12s;--dur-modal:.22s;--dur-panel:.26s;--dur-step:0s;--bg:#e7ebf1;--bg-2:#dfe4ec;--surface:#fff;--surface-2:#f4f7fb;--surface-3:#eaeff5;--hair:#dde3ec;--hair-2:#eaeef4;--ink:#18202e;--ink-2:#3c4659;--muted:#5d6b80;--muted-2:#7e899c;--brand:#2d63e0;--accent:#2d63e0;--accent-2:#5b86ee;--accent-soft:#ecf1fe;--accent-line:#c5d6f8;--accent-ink:#1e47a8;--ok:#18925b;--warn:#e0a106;--bad:#db3b40;--hl:#e8910c;--hl-soft:#fff4e2;--hl-ink:#8a540a;--err:var(--bad);--acc:var(--accent);--sel:var(--accent-soft);--surface-sunken:var(--bg);--surface-raised:var(--surface-2);--warn-bg:var(--hl-soft);--warn-ink:var(--hl-ink);--bad-bg:color-mix(in srgb, var(--bad) 12%, transparent);--line:var(--hair);--d-pipe:#2d63e0;--d-equip:#0e9384;--d-steel:#6c5bd4;--d-hvac:#2e8fb8;--d-elec:#d4477e;--d-inst:#8b55e6;--d-civil:#b5781f;--d-conc:#6b7a87;--rail:#161d2b;--rail-2:#1f2838;--rail-line:#2a3346;--rail-fg:#8b97ac;--rail-fg-2:#5a6577;--con-bg:#141b27;--con-fg:#cdd7e6;--con-line:#283143;--paper:#fbfaf6;--paper-ink:#1a1a1a;--paper-line:#1a1a1a;--paper-fill:#f0eee6;--scene-bg:#fafcfe;--scene-dot:#d7dee9;--scene-grid:#dfe5ef;--scene-grid2:#edf1f7;--scene-ink:#18202e;--scene-txt:#18202e;--scene-sub:#69748a;--scene-fill:#ffffff8c;--scene-fill2:#ffffffe0;--sh-1:0 1px 2px #141c2a0d;--sh-2:0 2px 5px -1px #141c2a17, 0 1px 2px #141c2a0d;--sh-3:0 10px 26px -10px #141c2a33, 0 3px 8px -4px #141c2a1a;--sh-4:0 22px 50px -16px #141c2a4d;--r1:6px;--r2:9px;--r3:13px;--fui:"Inter Variable",Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans SC",system-ui,sans-serif;--fmono:"JetBrains Mono Variable","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}[data-theme=dark]{--bg:#0f141d;--bg-2:#0c111a;--surface:#151b26;--surface-2:#1a2231;--surface-3:#202a3c;--hair:#232e41;--hair-2:#1c2536;--ink:#e7ecf4;--ink-2:#c0c9d8;--muted:#8c97ab;--muted-2:#67758c;--accent:#4a79e8;--accent-2:#729bf2;--accent-soft:color-mix(in srgb, var(--accent) 16%, transparent);--accent-line:color-mix(in srgb, var(--accent) 42%, transparent);--accent-ink:var(--accent-2);--ok:#2fbf71;--warn:#e0a93a;--bad:#ef5a5e;--hl:#f0a03a;--hl-soft:#f0a03a26;--hl-ink:#f5c289;--rail:#0b0f16;--rail-2:#111724;--rail-line:#232e41;--rail-fg:#8c97ab;--rail-fg-2:#5a6577;--con-bg:#0d1220;--con-fg:#cdd7e6;--con-line:#232e41;--scene-bg:#0c1119;--scene-dot:#1f2838;--scene-grid:#19212f;--scene-grid2:#121925;--scene-ink:#e7ecf4;--scene-txt:#e7ecf4;--scene-sub:#8c97ab;--scene-fill:#151b268c;--scene-fill2:#151b26e0;--sh-1:0 1px 2px #0006;--sh-2:0 2px 6px #00000080;--sh-3:0 12px 30px -10px #0009, 0 3px 8px -4px #0006;--sh-4:0 22px 55px -16px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark] [data-disc]{--accent-soft:color-mix(in srgb, var(--accent) 16%, transparent);--accent-line:color-mix(in srgb, var(--accent) 42%, transparent);--accent-ink:var(--accent-2)}[data-disc=pipe]{--accent:#2d63e0;--accent-2:#5b86ee;--accent-soft:#ecf1fe;--accent-line:#c5d6f8;--accent-ink:#1e47a8}[data-disc=equip]{--accent:#0e9384;--accent-2:#1fb7a6;--accent-soft:#e2f6f2;--accent-line:#b2e5dd;--accent-ink:#0a6e63}[data-disc=steel]{--accent:#6c5bd4;--accent-2:#8b7ce6;--accent-soft:#eeebfb;--accent-line:#d2caf6;--accent-ink:#4b3dae}[data-disc=hvac]{--accent:#2e8fb8;--accent-2:#4fabd2;--accent-soft:#e5f3f9;--accent-line:#b4dcec;--accent-ink:#1f6b8c}[data-disc=elec]{--accent:#d4477e;--accent-2:#e670a0;--accent-soft:#fcebf2;--accent-line:#f4c5da;--accent-ink:#a8315f}[data-disc=inst]{--accent:#8b55e6;--accent-2:#a77bef;--accent-soft:#f1ebfd;--accent-line:#dbc9f8;--accent-ink:#6838be}[data-disc=civil]{--accent:#b5781f;--accent-2:#d29a3e;--accent-soft:#faf0df;--accent-line:#ebd4a8;--accent-ink:#875811}[data-disc=rdl]{--accent:#4338ca;--accent-2:#6d5dec;--accent-soft:#ecebfb;--accent-line:#cbc8f4;--accent-ink:#322b9e}[data-disc=admin]{--accent:#475569;--accent-2:#64748b;--accent-soft:#eef1f5;--accent-line:#cdd5df;--accent-ink:#334155}[data-disc=cat]{--accent:#2f9e44;--accent-2:#52b868;--accent-soft:#e6f5ea;--accent-line:#b6e2c1;--accent-ink:#1e7233}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:var(--fui);color:var(--ink);background:var(--bg);font-size:var(--fs-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.45}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-property:background-color,border-color,color,opacity,box-shadow,filter!important;transition-duration:var(--dur-tint)!important;animation:none!important}.vld-spin{animation:1.4s linear infinite vld-spin!important}.pid-stage-busy,.dwg-sheet-busy{animation:stage-busy-in var(--dur-tint) var(--ease-out) var(--dur-tint) forwards!important}}button,input{font-family:inherit}button{cursor:pointer}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--muted) 38%, transparent);background-clip:padding-box;border:2px solid #0000;border-radius:6px}@media (hover:hover) and (pointer:fine){::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--muted) 55%, transparent);background-clip:padding-box}}.app{grid-template-rows:100%;grid-template-columns:64px 1fr;width:100vw;height:100vh;display:grid;overflow:hidden}.rail{background:linear-gradient(180deg, var(--rail), var(--rail-2));border-right:1px solid var(--rail-line);scrollbar-width:thin;flex-direction:column;align-items:center;padding:10px 0;display:flex;overflow-y:auto}.rail-logo{background:linear-gradient(155deg,#2a63e0,#5b86ee);border-radius:11px;place-items:center;width:40px;height:40px;margin-bottom:14px;display:grid;box-shadow:0 6px 16px -4px #2d63e099}.rail-modules{flex-direction:column;align-items:center;gap:6px;width:100%;display:flex}.rail-mod{width:50px;height:52px;color:var(--rail-fg);transition:background var(--dur-tint) var(--ease-out), color var(--dur-tint) var(--ease-out), border-color var(--dur-tint) var(--ease-out), transform var(--dur-press) var(--ease-out);background:0 0;border:1px solid #0000;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:relative}.rail-mod .rl{letter-spacing:.02em;font-size:8.5px;font-weight:700}@media (hover:hover) and (pointer:fine){.rail-mod:hover{background:var(--rail-line);color:#fff}}.rail-mod.on{color:#fff;background:#ffffff12}.rail-mod.on:before{content:"";background:var(--accent-2);border-radius:0 3px 3px 0;width:3px;position:absolute;top:12px;bottom:12px;left:-10px}.rail-spacer{flex:1}.rail-btn{width:40px;height:40px;color:var(--rail-fg);background:0 0;border:none;border-radius:10px;place-items:center;margin-top:4px;display:grid}@media (hover:hover) and (pointer:fine){.rail-btn:hover{background:var(--rail-line);color:#fff}}.rail-av{color:#fff;border:2px solid var(--rail-2);background:linear-gradient(135deg,#2d63e0,#0e9384);border-radius:50%;place-items:center;width:34px;height:34px;margin-top:8px;font-size:11px;font-weight:700;display:grid}.work{grid-template-rows:50px 1fr 26px;min-width:0;min-height:0;display:grid}.topbar{background:var(--surface);border-bottom:1px solid var(--hair);z-index:5;align-items:center;gap:14px;padding:0 14px;display:flex}.tb-title{flex-direction:column;display:flex}.tb-title .t{letter-spacing:-.01em;font-size:13px;font-weight:700}.tb-title .s{color:var(--muted);font-size:10px;font-family:var(--fmono)}.tb-div{background:var(--hair);width:1px;height:24px}.crumbs{color:var(--muted);align-items:center;gap:5px;min-width:0;font-size:12px;display:flex}.crumb{border-radius:var(--r1);white-space:nowrap;align-items:center;gap:5px;padding:4px 8px;display:flex}@media (hover:hover) and (pointer:fine){.crumb:hover{background:var(--surface-3);color:var(--ink)}}.crumb.on{color:var(--ink);font-weight:600}.crumb .ct{font-family:var(--fmono);background:var(--accent-soft);color:var(--accent-ink);border:1px solid var(--accent-line);border-radius:4px;padding:1px 6px;font-size:10px}.crumb-sep{color:var(--muted-2)}.tb-grow{flex:1}.search{background:var(--surface-2);border:1px solid var(--hair);border-radius:var(--r2);width:260px;color:var(--muted);align-items:center;gap:8px;padding:7px 11px;display:flex}.search input{color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:12px}.search input::placeholder{color:var(--muted-2)}.search:focus-within{border-color:var(--accent-line);background:var(--surface);box-shadow:var(--focus)}.kbd{font-family:var(--fmono);background:var(--surface-3);border:1px solid var(--hair);color:var(--muted);border-radius:4px;padding:1px 5px;font-size:10px}.lang-switch{border:1px solid var(--hair);border-radius:var(--r1);background:var(--surface-2);display:flex;overflow:hidden}.lang-switch button{color:var(--muted);font-size:11px;font-weight:700;font-family:var(--fmono);background:0 0;border:none;padding:5px 9px}.lang-switch button.on{background:var(--accent);color:#fff}.ico-btn{border-radius:var(--r1);width:30px;height:30px;color:var(--ink-2);background:0 0;border:1px solid #0000;place-items:center;display:grid}@media (hover:hover) and (pointer:fine){.ico-btn:hover{background:var(--surface-3)}}.ico-btn.sm{width:24px;height:24px}.ico-btn.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line)}.ico-btn.off{color:var(--muted-2)}.stage{min-width:0;min-height:0;display:grid}.panel{background:var(--surface);flex-direction:column;min-height:0;display:flex}.panel+.panel{border-top:1px solid var(--hair)}.phead{border-bottom:1px solid var(--hair-2);flex:none;align-items:center;gap:7px;padding:9px 12px;display:flex}.phead .pt{letter-spacing:-.005em;flex:1;font-size:11.5px;font-weight:600}.phead .pt .m{color:var(--muted);font-weight:400;font-family:var(--fmono);font-size:10px}.pfoot{border-top:1px solid var(--hair-2);background:var(--surface-2);color:var(--muted);flex:none;justify-content:space-between;align-items:center;padding:7px 12px;font-size:10px;display:flex}.status{background:var(--surface);border-top:1px solid var(--hair);color:var(--ink-2);align-items:center;gap:8px;padding:0 12px;font-size:10.5px;display:flex}.st-mono{font-family:var(--fmono);color:var(--ink);font-variant-numeric:tabular-nums}.st-tog{font-family:var(--fmono);color:var(--muted);background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:4px;padding:2px 7px;font-size:10px;display:flex}@media (hover:hover) and (pointer:fine){.st-tog:hover{background:var(--surface-2)}}.st-tog.on{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-line)}.st-grow{flex:1}.st-pill{font-family:var(--fmono);background:var(--surface-2);border:1px solid var(--hair);color:var(--muted);border-radius:4px;padding:2px 7px;font-size:10px}.status .st-pill,.status .st-tog{white-space:nowrap;flex-shrink:0}.status .st-pill[role=alert]{text-overflow:ellipsis;flex-shrink:1;min-width:0;overflow:hidden}.st-pill.bad{color:var(--bad)}.st-pill.ok{color:var(--ok)}.st-pill.acc{color:var(--accent)}.rail-btn,.ico-btn,.st-tog,.lang-switch button{transition:transform var(--dur-press) var(--ease-out)}.rail-mod:active,.rail-btn:active,.ico-btn:active,.st-tog:active,.lang-switch button:active{transform:scale(.97)}.ws-model{grid-template-columns:312px 1fr 340px}.ws-pid{grid-template-columns:248px 1fr 320px}.ws-draw{transition:grid-template-columns var(--dur-step) linear;grid-template-columns:260px 1fr 300px}.ws-draw.settings-collapsed{transition-delay:var(--dur-panel);grid-template-columns:260px 1fr 0}.ws-draw .col.right{transition:transform var(--dur-panel) var(--ease-in-out)}.ws-draw.settings-collapsed .col.right{transform:translate(100%)}.col{flex-direction:column;min-width:0;min-height:0;display:flex}.col.left{border-right:1px solid var(--hair)}.col.right{border-left:1px solid var(--hair);background:var(--surface)}.ws-draw.settings-collapsed .col.right{border-left:none;overflow:hidden}.col.center{background:var(--bg)}.ws-model>.col.center{position:relative}div.mxRubberband{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 18%, transparent);position:absolute;overflow:hidden}.pid-toast{z-index:var(--z-toast);border-radius:var(--r2);background:var(--surface);border:1px solid var(--hair);border-left:3px solid var(--accent);max-width:min(560px,80vw);color:var(--ink);cursor:pointer;opacity:0;pointer-events:none;transition:opacity var(--dur-out) var(--ease-out), transform var(--dur-out) var(--ease-out);padding:9px 14px;font-size:12px;position:fixed;bottom:38px;left:50%;transform:translate(-50%)translateY(8px);box-shadow:0 8px 28px #141e3238}.pid-toast.on{opacity:1;pointer-events:auto;transition:opacity var(--dur-pop) var(--ease-out), transform var(--dur-pop) var(--ease-out);transform:translate(-50%)translateY(0)}.pid-toast.error{border-left-color:var(--bad)}.pid-toast.success{border-left-color:var(--ok)}.pid-toast.info{border-left-color:var(--accent)}.disc-head{border-bottom:1px solid var(--hair);background:linear-gradient(180deg, var(--accent-soft), transparent);padding:10px 12px 11px}.disc-row{align-items:center;gap:8px;display:flex}.disc-badge{background:var(--accent);color:#fff;width:30px;height:30px;box-shadow:var(--sh-1);border-radius:9px;flex:none;place-items:center;display:grid}.disc-pick{flex:1;min-width:0}.disc-pick .lab{font-family:var(--fmono);text-transform:uppercase;letter-spacing:.1em;color:var(--accent-ink);font-size:9px}.disc-pick .nm{letter-spacing:-.01em;align-items:center;gap:6px;font-size:14px;font-weight:700;display:flex}.disc-pick .nm .en{color:var(--muted);font-size:10px;font-weight:500;font-family:var(--fmono)}.disc-caret{color:var(--accent)}.disc-menu{z-index:40;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r2);box-shadow:var(--sh-3);max-height:340px;margin-top:6px;padding:5px;position:absolute;top:100%;left:10px;right:10px;overflow:auto}.disc-opt{border-radius:var(--r1);cursor:pointer;align-items:center;gap:9px;padding:8px 9px;display:flex}@media (hover:hover) and (pointer:fine){.disc-opt:hover{background:var(--surface-2)}}.disc-opt.on{background:var(--accent-soft)}.disc-opt .dot{border-radius:50%;flex:none;width:10px;height:10px}.disc-opt .oo{flex:1}.disc-opt .oo .a{font-size:12px;font-weight:600}.disc-opt .oo .b{color:var(--muted);font-size:10px;font-family:var(--fmono)}.disc-opt .cnt{font-family:var(--fmono);color:var(--muted);font-size:10px}.disc-stats{gap:6px;margin-top:9px;display:flex}.disc-stat{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r1);flex:1;padding:6px 8px}.disc-stat .v{font-family:var(--fmono);color:var(--accent-ink);font-size:14px;font-weight:700}.disc-stat .k{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:9px}.expl-search{border-bottom:1px solid var(--hair-2);color:var(--muted);align-items:center;gap:7px;padding:7px 12px;display:flex}.expl-search input{color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:11.5px}.expl-search input::placeholder{color:var(--muted-2)}.expl-search input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.expl-tabs{border-bottom:1px solid var(--hair-2);gap:2px;padding:6px 10px;display:flex}.expl-tab{color:var(--muted);background:0 0;border:none;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:600}.expl-tab.on{background:var(--accent-soft);color:var(--accent-ink)}@media (hover:hover) and (pointer:fine){.expl-tab:hover:not(.on){background:var(--surface-2);color:var(--ink)}}.mw-rail{border-right:1px solid var(--hair);scrollbar-width:thin;flex-direction:column;flex:none;align-items:center;gap:2px;padding:4px 2px;display:flex;overflow-y:auto}.mw-rail .sep{background:var(--hair);flex:none;width:16px;height:1px;margin:3px 0}.insp-bar{border-bottom:1px solid var(--hair);flex:none;align-items:center;gap:2px;padding:2px 4px 0 0;display:flex}.insp-tabs{scrollbar-width:none;flex:1;gap:2px;min-width:0;padding:0 6px;display:flex;overflow-x:auto}.insp-tabs::-webkit-scrollbar{height:0}.insp-tabs .expl-tab{white-space:nowrap;border-bottom:2px solid #0000;border-radius:0;flex:none}.insp-tabs .expl-tab.on{border-bottom-color:var(--accent);background:0 0}.insp-body{border-bottom:1px solid var(--hair);flex-direction:column;flex:none;min-height:0;max-height:46%;display:flex}.mw-rail .ico-btn.sm{width:34px;height:34px}.mw-rail .sep{width:22px}.tree{flex:1;padding:4px 0;overflow:auto}.tnode{-webkit-user-select:none;user-select:none}.trow{cursor:pointer;align-items:center;gap:5px;padding:4px 12px 4px 6px;font-size:11.5px;display:flex;position:relative}@media (hover:hover) and (pointer:fine){.trow:hover{background:var(--surface-2)}}.trow.sel{background:var(--accent-soft)}.trow-acts{visibility:hidden;background:inherit;align-items:center;gap:2px;padding-left:4px;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}@media (hover:hover) and (pointer:fine){.trow:hover .trow-acts{visibility:visible}}@media not all and (hover:hover){.trow-acts{visibility:visible}}.trow.sel:before{content:"";background:var(--accent);width:2px;position:absolute;top:0;bottom:0;left:0}.tchev{width:13px;color:var(--muted-2);transition:transform var(--dur-tint) var(--ease-out);flex:none;place-items:center;display:grid}.tchev.open{transform:rotate(90deg)}.tchev.empty{visibility:hidden}.ticon{width:17px;color:var(--accent);flex:none;place-items:center;display:grid}.ticon.dim{color:var(--muted)}.ttag{font-family:var(--fmono);background:var(--surface-3);color:var(--ink-2);border-radius:3px;flex:none;padding:1px 5px;font-size:10px;font-weight:700}.tname{flex:1;align-items:baseline;gap:6px;min-width:0;display:flex}.tname .ru{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tname .en{font-family:var(--fmono);color:var(--muted-2);white-space:nowrap;font-size:9.5px}.tcount{font-family:var(--fmono);color:var(--muted);flex:none;padding:0 3px;font-size:10px}.tdot{border-radius:2px;flex:none;width:7px;height:7px}.struct-panel{scrollbar-width:thin;overflow-y:auto}.struct-panel>*{flex:none}.struct-panel>.struct-form{max-height:min(62vh,640px)}.struct-panel>.struct-list{min-height:96px;max-height:40vh;overflow-y:auto}.vtoolbar{background:var(--surface);border-bottom:1px solid var(--hair);flex-wrap:wrap;align-items:center;gap:8px;padding:7px 12px;display:flex}.vt-disc{border-radius:var(--r2);background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent-ink);align-items:center;gap:7px;padding:5px 10px 5px 8px;font-size:11.5px;font-weight:700;display:flex}.vt-disc .dot{background:var(--accent);border-radius:50%;width:9px;height:9px}.vt-grp{align-items:center;gap:3px;padding:0 6px;display:flex}.vt-grp.annot-tools{flex-wrap:wrap;row-gap:2px}.vt-grp.annot-tools .vt-btn{gap:5px;padding:0 6px}.vt-btn{border-radius:var(--r2);min-width:32px;height:32px;color:var(--ink-2);white-space:nowrap;transition:background var(--dur-tint) var(--ease-out), color var(--dur-tint) var(--ease-out), border-color var(--dur-tint) var(--ease-out), transform var(--dur-press) var(--ease-out);background:0 0;border:1px solid #0000;align-items:center;gap:7px;padding:0 10px;font-size:11.5px;font-weight:500;display:inline-flex}@media (hover:hover) and (pointer:fine){.vt-btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--hair)}}.vt-btn.primary{background:var(--accent);color:#fff;box-shadow:0 3px 10px -3px color-mix(in srgb, var(--accent) 60%, transparent);font-weight:600}@media (hover:hover) and (pointer:fine){.vt-btn.primary:hover:not(:disabled){background:var(--accent-2)}}.vt-btn .kbd{color:inherit;background:#fff3;border-color:#0000}.vt-btn:not(.primary) .kbd{background:var(--surface-3)}.vt-grow{flex:1}.vt-right{margin-left:auto}.vt-icon{border-radius:var(--r1);width:32px;height:32px;color:var(--ink-2);background:0 0;border:1px solid #0000;place-items:center;display:grid}@media (hover:hover) and (pointer:fine){.vt-icon:hover:not(:disabled){background:var(--surface-2);border-color:var(--hair)}}.vt-icon.active{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent-line)}.vt-icon.bad{color:var(--bad)}.vt-btn:disabled,.vt-icon:disabled,.btn:disabled{opacity:.45;cursor:default}.vt-pop{transform-origin:top;animation:vt-pop var(--dur-pop) var(--ease-out)}@keyframes vt-pop{0%{opacity:0;transform:translateY(-4px)scale(.97)}to{opacity:1;transform:none}}.vt-sel{border-radius:var(--r1);border:1px solid var(--hair);background:var(--surface);min-width:62px;height:32px;color:var(--ink-2);font-size:11px;font-family:var(--fmono);padding:0 4px}@media (hover:hover) and (pointer:fine){.vt-sel:hover{border-color:var(--accent-line)}}.viewport{flex:1;min-height:0;position:relative;overflow:hidden}.vp-empty{z-index:3;text-align:center;max-width:420px;color:var(--muted);transition:opacity var(--dur-pop) var(--ease-out);flex-direction:column;align-items:center;gap:5px;font-size:12px;display:flex;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.vp-empty .t{color:var(--ink-2);font-size:14px;font-weight:700}.vp-empty .a{gap:8px;margin-top:7px;display:flex}.vp-empty .w{color:var(--muted-2);align-self:center;font-size:11px}.vp-empty.gone{opacity:0;pointer-events:none}.vp-bar{background:var(--surface-2);border-bottom:1px solid var(--hair);align-items:center;gap:8px;padding:7px 12px;display:flex}.vp-tag{font-family:var(--fmono);color:var(--muted);align-items:center;gap:6px;font-size:10.5px;display:flex}.vp-tag .pip{background:var(--accent);border-radius:50%;width:6px;height:6px}.vp-div{background:var(--hair);width:1px;height:18px}.seg{border:1px solid var(--hair);border-radius:var(--r2);background:var(--surface);display:flex;overflow:hidden}.seg button{color:var(--ink-2);background:0 0;border:none;align-items:center;gap:5px;padding:5px 11px;font-size:11px;font-weight:500;display:flex}.seg button+button{border-left:1px solid var(--hair)}.seg button.on{background:var(--accent);color:#fff}.vp-grow{flex:1}.vp-stage{background:radial-gradient(ellipse at 50% 55%, var(--accent-soft), transparent 62%), var(--bg);flex:1;min-height:0;position:relative}.vp-stage>.svg{position:absolute;inset:0}.float{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r2);box-shadow:var(--sh-2);position:absolute}.float.cube{place-items:center;width:96px;height:96px;display:grid;top:14px;right:14px}.float.mini{padding:7px;bottom:14px;right:14px}.float.scale{font-family:var(--fmono);color:var(--muted);align-items:center;gap:8px;padding:6px 10px;font-size:10.5px;display:flex;bottom:14px;left:14px}.float.scale .bar{background:linear-gradient(90deg, var(--ink) 50%, var(--surface) 50%);border:1px solid var(--ink);width:76px;height:5px}.float.legend{min-width:210px;padding:9px 11px;top:14px;left:14px}.float.legend .lh{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:9.5px;font-family:var(--fmono);margin-bottom:7px}.float.legend .lr{font-size:10.5px;font-family:var(--fmono);align-items:center;gap:8px;padding:3px 0;display:flex}.float.legend .lr.sel{color:var(--hl-ink);font-weight:700}.float.legend .sw{border-radius:2px;flex:none;width:16px;height:4px}.console{background:var(--con-bg);max-width:880px;color:var(--con-fg);border-radius:var(--r2);box-shadow:var(--sh-4);font-family:var(--fmono);align-items:center;gap:11px;margin:0 auto;padding:8px 14px;font-size:11.5px;display:flex;position:absolute;bottom:14px;left:14px;right:14px}.console .p{color:var(--hl)}.console .c{color:#7fa8ff;font-weight:700}.console .q{color:#8a93a6}.console .ck{background:#ffffff14;border-radius:4px;padding:2px 6px;font-size:10px}.console .rs{white-space:nowrap;flex:none;font-weight:700}.console .rs.ok{color:#4ade80}.console .rs.warn{color:#fbbf24}.console .rs.err{color:#f87171}.pal-body{flex:1;padding:8px;overflow:auto}.pal-grid{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.pal-item{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r2);text-align:left;min-height:80px;color:var(--ink);transition:background var(--dur-tint) var(--ease-out), border-color var(--dur-tint) var(--ease-out), box-shadow var(--dur-tint) var(--ease-out), transform var(--dur-press) var(--ease-out);flex-direction:column;align-items:flex-start;gap:6px;padding:10px;display:flex;position:relative}@media (hover:hover) and (pointer:fine){.pal-item:hover{border-color:var(--accent);background:var(--accent-soft);box-shadow:var(--sh-2);transform:translateY(-1px)}}.pal-item .pi-ico{border-radius:var(--r1);background:var(--accent-soft);width:30px;height:30px;color:var(--accent);place-items:center;display:grid}.pal-item .pi-tag{font-family:var(--fmono);color:var(--muted);font-size:9px;font-weight:700}.pal-item .pi-nm{font-size:11px;font-weight:600;line-height:1.2}.pal-item .pi-k{font-family:var(--fmono);color:var(--muted-2);border:1px solid var(--hair);border-radius:3px;padding:0 4px;font-size:8.5px;position:absolute;top:7px;right:8px}.pal-sub{font-family:var(--fmono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:12px 4px 7px;font-size:9px}.pal-sub:first-child{padding-top:2px}.pal-hint{border-top:1px solid var(--hair-2);background:var(--surface-2);color:var(--muted);align-items:center;gap:8px;padding:9px 12px;font-size:10.5px;display:flex}.pal-hint .d{background:var(--accent);border-radius:50%;width:6px;height:6px}.pr-head{border-bottom:1px solid var(--hair-2);background:linear-gradient(180deg, var(--accent-soft), transparent);padding:12px 14px 14px}.pr-tagline{align-items:center;gap:9px;display:flex}.pr-chip{background:var(--accent);color:#fff;width:32px;height:32px;box-shadow:var(--sh-1);border-radius:9px;flex:none;place-items:center;display:grid}.pr-tag{font-family:var(--fmono);font-size:15px;font-weight:700;line-height:1.1}.pr-type{margin-top:4px;font-size:11.5px;line-height:1.4}.pr-type .m{color:var(--muted)}.pr-spec{font-family:var(--fmono);color:var(--muted);margin-top:7px;font-size:10.5px}.pr-actions{border-bottom:1px solid var(--hair-2);grid-template-columns:1fr 1fr;gap:7px;padding:11px 14px;display:grid}.btn{border-radius:var(--r2);border:1px solid var(--hair);background:var(--surface-2);color:var(--ink);justify-content:center;align-items:center;gap:6px;padding:8px 10px;font-size:11px;font-weight:600;display:flex}@media (hover:hover) and (pointer:fine){.btn:hover:not(:disabled){background:var(--surface-3)}}.btn.primary{background:var(--accent);color:#fff;box-shadow:0 3px 10px -3px color-mix(in srgb, var(--accent) 60%, transparent);border-color:#0000}@media (hover:hover) and (pointer:fine){.btn.primary:hover:not(:disabled){background:var(--accent-2)}}.btn.danger{background:var(--bad);color:#fff;box-shadow:0 3px 10px -3px color-mix(in srgb, var(--bad) 60%, transparent);border-color:#0000}@media (hover:hover) and (pointer:fine){.btn.danger:hover:not(:disabled){background:color-mix(in srgb, var(--bad) 88%, #fff)}}.vt-icon,.btn,.expl-tab,.seg button{transition:transform var(--dur-press) var(--ease-out)}.vt-btn:active,.vt-icon:active,.btn:active,.expl-tab:active,.seg button:active{transform:scale(.97)}.pal-item:active{transform:translateY(-1px)scale(.97)}@keyframes vld-spin{to{transform:rotate(360deg)}}.vld-spin{animation:1s linear infinite vld-spin}.pr-body{flex:1;overflow:auto}.pr-sec{border-bottom:1px solid var(--hair-2);padding:9px 0}.pr-sec-h{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:10px;font-family:var(--fmono);align-items:center;gap:6px;padding:0 14px 7px;display:flex}.pr-row{grid-template-columns:1fr auto;gap:12px;padding:5px 14px;font-size:11.5px;display:grid}@media (hover:hover) and (pointer:fine){.pr-row:hover{background:var(--surface-2)}}.pr-k{color:var(--muted)}.pr-v{font-family:var(--fmono);color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;font-size:11.5px}.pr-v.acc{color:var(--accent-ink);font-weight:700}.pr-props .pr-row{grid-template-columns:88px 1fr;align-items:center;gap:8px}.pr-props .pr-row .pr-v{text-align:left}.pr-props .pr-row input,.pr-props .pr-row select{width:100%;min-width:0;font-size:11px}.pr-props-foot{border-top:1px solid var(--hair-2);background:var(--surface);flex:none;padding:8px 14px}.geo{grid-template-columns:repeat(3,1fr);gap:6px;padding:4px 14px 9px;display:grid}.geo .cell{border:1px solid var(--hair);border-radius:var(--r1);background:var(--surface-2);padding:6px 8px}.geo .k{color:var(--muted);font-size:9px;font-family:var(--fmono)}.geo .v{font-family:var(--fmono);font-variant-numeric:tabular-nums;font-size:11.5px;font-weight:700}.ptabs{border-bottom:1px solid var(--hair-2);background:var(--surface-2);flex:none;display:flex}.ptab{color:var(--muted-2);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px;font-size:11px;font-weight:600;display:flex}.ptab.on{color:var(--ink);border-bottom-color:var(--accent);background:var(--surface)}.ptab.on svg{color:var(--accent)}.lrow{align-items:center;gap:8px;padding:5px 12px;font-size:11.5px;display:flex}@media (hover:hover) and (pointer:fine){.lrow:hover{background:var(--surface-2)}}.lcolor{border:1px solid #0000001f;border-radius:2px;flex:none;width:10px;height:10px}.lname{flex:1}.pbs-menu{z-index:30;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r2);width:236px;color:var(--ink);font-size:12px;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 28px #141e322e}.pbs-menu-head{border-bottom:1px solid var(--hair-2);justify-content:space-between;align-items:center;padding:7px 10px;display:flex}.pbs-menu-title{align-items:center;gap:6px;font-weight:600;display:flex}.pbs-menu-row{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:6px 10px;display:flex}@media (hover:hover) and (pointer:fine){.pbs-menu-row:hover{background:var(--surface-2)}}.pbs-menu-row input{margin:0}.dwt-cols{flex:1;min-height:0;display:flex}.dwt-rail{border-left:1px solid var(--hair);background:var(--surface-2);flex-direction:column;flex:none;gap:6px;padding:6px 3px;display:flex}.dwt-rail-item{flex-direction:column;justify-content:center;align-items:center;gap:3px;width:54px;height:48px;padding:0 1px;display:flex;position:relative}.dwt-rail-cap{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:8px;font-weight:700;line-height:1.1;overflow:hidden}.dwt-rail-end{margin-top:auto}.dwt-rail-badge{position:absolute;top:1px;right:1px}.dwt-badge{background:var(--accent);color:#fff;text-align:center;font-variant-numeric:tabular-nums;border-radius:9px;min-width:14px;padding:0 4px;font-size:9px;line-height:14px}.dwt-badge.dot{border-radius:50%;width:6px;min-width:6px;height:6px;padding:0}.dwt-body{flex:1;min-width:0;min-height:0;overflow-y:auto}@keyframes dwt-fade{0%{opacity:0}to{opacity:1}}.dwt-fade{animation:dwt-fade var(--dur-tint) var(--ease-out)}.dwt-empty{color:var(--muted);padding:14px 12px;font-size:11.5px;line-height:1.6}.col-resizer{z-index:15;cursor:col-resize;touch-action:none;width:8px;position:absolute;top:0;bottom:0}.col-resizer.active{background:color-mix(in srgb, var(--accent) 22%, transparent)}@media (hover:hover) and (pointer:fine){.col-resizer:hover{background:color-mix(in srgb, var(--accent) 22%, transparent)}}.col-resizer:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.mvs{z-index:20;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r2);width:244px;max-height:calc(100% - 16px);color:var(--ink);font-size:12px;position:absolute;top:8px;right:8px;overflow-y:auto;box-shadow:0 8px 28px #141e322e}.mvs-draggable{flex-direction:column;display:flex;overflow:visible}.mvs-draggable .mvs-scroll{flex:1;min-height:0;overflow-y:auto}.mvs-draggable .mvs-head{border-top-left-radius:var(--r2);border-top-right-radius:var(--r2);position:static}.mvs-head{border-bottom:1px solid var(--hair-2);background:var(--surface);justify-content:space-between;align-items:center;padding:8px 10px;display:flex;position:sticky;top:0}.mvs-title{align-items:center;gap:6px;font-weight:600;display:flex}.mvs-x{border-radius:var(--r1);width:24px;height:24px;color:var(--ink-2);background:0 0;border:1px solid #0000;place-items:center;display:grid}@media (hover:hover) and (pointer:fine){.mvs-x:hover{background:var(--surface-2);border-color:var(--hair)}}.mvs-sec{border-bottom:1px solid var(--hair-2);padding:8px 10px}.mvs-sec:last-child{border-bottom:none}.mvs-lbl{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);margin-bottom:6px;font-size:10.5px}.mvs-seg{gap:3px;margin-bottom:4px;display:flex}.mvs-segbtn{border-radius:var(--r1);border:1px solid var(--hair);background:var(--surface-2);color:var(--ink-2);flex:1;padding:4px 2px;font-size:11px}@media (hover:hover) and (pointer:fine){.mvs-segbtn:hover{border-color:var(--accent-line)}}.mvs-segbtn.on{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent-line)}.mvs-row{align-items:center;gap:8px;padding:4px 0;display:flex}.mvs-row>span{color:var(--ink-2);flex:1}.mvs-row input[type=range]{flex:1.3}.mvs-row input[type=number]{border:1px solid var(--hair);border-radius:var(--r1);background:var(--surface);width:74px;color:var(--ink);padding:3px 6px}.mvs-row input[type=color]{border:1px solid var(--hair);border-radius:var(--r1);background:var(--surface);width:34px;height:22px;padding:0}.mvs-row em{color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;min-width:30px;font-style:normal}.mvs-toggle>span{flex:1}.windows-host{z-index:150;pointer-events:none;position:fixed;inset:0}.fw{pointer-events:auto;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r2);box-shadow:var(--sh-3);flex-direction:column;display:flex;position:absolute;overflow:hidden}.fw-head{background:var(--surface-2);border-bottom:1px solid var(--hair);cursor:move;-webkit-user-select:none;user-select:none;touch-action:none;flex:none;justify-content:space-between;align-items:center;height:32px;padding:0 6px 0 10px;display:flex}.fw-title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.fw-close{border-radius:var(--r1);width:22px;height:22px;color:var(--muted);background:0 0;border:none;flex:none;place-items:center;font-size:15px;line-height:1;display:grid}@media (hover:hover) and (pointer:fine){.fw-close:hover{background:var(--surface-3);color:var(--bad)}}.fw-body{flex:1;min-height:0;position:relative;overflow:auto}.fw-unknown{color:var(--muted);font-size:12px;font-family:var(--fmono);padding:14px}.fw-rz{touch-action:none;position:absolute}.fw-rz-n{cursor:n-resize;height:6px;top:-3px;left:10px;right:10px}.fw-rz-s{cursor:s-resize;height:6px;bottom:-3px;left:10px;right:10px}.fw-rz-w{cursor:w-resize;width:6px;top:10px;bottom:10px;left:-3px}.fw-rz-e{cursor:e-resize;width:6px;top:10px;bottom:10px;right:-3px}.fw-rz-nw{cursor:nwse-resize;width:10px;height:10px;top:-5px;left:-5px}.fw-rz-ne{cursor:nesw-resize;width:10px;height:10px;top:-5px;right:-5px}.fw-rz-sw{cursor:nesw-resize;width:10px;height:10px;bottom:-5px;left:-5px}.fw-rz-se{cursor:nwse-resize;width:10px;height:10px;bottom:-5px;right:-5px}.bulk-bar{z-index:var(--z-toast);border-radius:var(--r2);background:var(--surface);border:1px solid var(--hair);border-left:3px solid var(--accent);color:var(--ink);align-items:center;gap:10px;padding:8px 12px;font-size:12px;display:flex;position:fixed;bottom:38px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #141e3238}.bulk-bar-n{font-family:var(--fmono)}.bulk-bar-track{background:var(--hair);border-radius:2px;width:120px;height:4px}.bulk-bar-fill{background:var(--accent);height:100%;transition:width var(--dur-out) var(--ease-out);border-radius:2px}.pid-pal{flex:1;padding:6px 0;overflow:auto}.pid-cat{border-bottom:1px solid var(--hair-2)}.pid-cat-h{color:var(--ink-2);align-items:center;gap:7px;padding:8px 12px;font-size:11px;font-weight:700;display:flex}.pid-cat-h .cc{font-family:var(--fmono);color:var(--muted);margin-left:auto;font-size:9px}.pid-syms{grid-template-columns:repeat(3,1fr);gap:6px;padding:4px 10px 12px;display:grid}.pid-cat-h{text-align:left;cursor:pointer;width:100%;transition:background var(--dur-tint) var(--ease-out);background:0 0;border:none}@media (hover:hover) and (pointer:fine){.pid-cat-h:hover{background:var(--surface-2)}}.pid-tog{text-align:left;font-size:10px;font-family:var(--fmono);border:1px solid var(--hair);background:var(--surface-2);color:var(--ink);cursor:pointer;transition:transform var(--dur-press) var(--ease-out);border-radius:3px;padding:4px 8px}.pid-tog[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.pid-tog:not(:disabled):active{transform:scale(.97)}.pid-tog:disabled{cursor:default;opacity:.45}.pid-tog.sm{padding:3px 8px;font-size:9px}.pid-sym{aspect-ratio:1;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r1);color:var(--ink);transition:background var(--dur-tint) var(--ease-out), border-color var(--dur-tint) var(--ease-out), color var(--dur-tint) var(--ease-out), transform var(--dur-press) var(--ease-out);place-items:center;display:grid}@media (hover:hover) and (pointer:fine){.pid-sym:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}}.pid-sym:active{transform:scale(.97)}.pid-stage{background:linear-gradient(var(--hair-2) 1px, transparent 1px) 0 0/24px 24px, linear-gradient(90deg, var(--hair-2) 1px, transparent 1px) 0 0/24px 24px, var(--surface);flex:1;justify-content:center;align-items:center;min-height:0;padding:28px;display:flex;position:relative;overflow:auto}.pid-tabs{background:var(--surface);border-bottom:1px solid var(--hair);flex:none;gap:2px;padding:0 8px;display:flex;overflow:auto hidden}.pid-tab{height:26px;color:var(--muted);font-family:var(--fmono);white-space:nowrap;transition:background var(--dur-tint) var(--ease-out), color var(--dur-tint) var(--ease-out), border-color var(--dur-tint) var(--ease-out);background:0 0;border:none;border-bottom:2px solid #0000;flex:none;padding:0 10px;font-size:10.5px}@media (hover:hover) and (pointer:fine){.pid-tab:hover{background:var(--surface-2);color:var(--ink-2)}}.pid-tab.on{color:var(--accent-ink);border-bottom-color:var(--accent)}.pid-panning *{cursor:inherit!important}.pid-stage-busy{z-index:60;background:color-mix(in srgb, var(--surface) 62%, transparent);color:var(--muted);opacity:0;animation:stage-busy-in var(--dur-tint) var(--ease-out) var(--dur-tint) forwards;place-items:center;font-size:12px;display:grid;position:absolute;inset:0}@keyframes stage-busy-in{to{opacity:1}}.pid-sheet{background:var(--surface);border:1px solid var(--hair);box-shadow:var(--sh-3);position:relative}.pid-frame{border:1.4px solid var(--paper-ink);position:absolute;inset:14px}.pid-port{cursor:crosshair;z-index:41;pointer-events:auto;position:absolute;transform:translate(-50%,-50%)}.pid-port-dot{background:var(--pid-port-c);box-shadow:0 0 0 1px var(--pid-port-c);pointer-events:none;opacity:0;transition:opacity var(--dur-press) var(--ease-out), transform var(--dur-press) var(--ease-out);border:1.5px solid #fff;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pid-port.near .pid-port-dot{opacity:1}@media (hover:hover) and (pointer:fine){.pid-port:hover .pid-port-dot{transform:translate(-50%,-50%)scale(1.4)}}.pid-port:after{content:"";border:1.5px solid var(--pid-port-c);pointer-events:none;opacity:0;width:22px;height:22px;transition:opacity var(--dur-press) var(--ease-out), transform var(--dur-press) var(--ease-out);border-radius:50%;margin:-11px 0 0 -11px;position:absolute;top:50%;left:50%;transform:scale(.65)}@media (hover:hover) and (pointer:fine){.pid-port:hover:after{opacity:1;transform:scale(1)}}.pid-port-tick{z-index:40;pointer-events:none;opacity:0;transition:opacity var(--dur-press) var(--ease-out);position:absolute;transform:translate(-50%,-50%)}.pid-port-tick.near{opacity:1}.pid-port-tick.h{width:var(--pid-tick-len);border-top:2px solid var(--pid-port-c);height:0}.pid-port-tick.v{width:0;height:var(--pid-tick-len);border-left:2px solid var(--pid-port-c)}.pid-port-tip{z-index:42;pointer-events:none;border-radius:var(--r1);background:var(--surface);border:1px solid var(--hair);box-shadow:var(--sh-2);color:var(--ink);white-space:nowrap;padding:3px 7px;font-size:10.5px;position:absolute;transform:translate(-50%,-100%)}.pid-pick{pointer-events:stroke;cursor:pointer;stroke:#0000}.pid-pick:hover{stroke:color-mix(in srgb, var(--accent) 30%, transparent)}.dwg-toolbar{background:var(--surface);border-bottom:1px solid var(--hair);align-items:center;gap:8px;padding:8px 12px;display:flex}.dwg-list{flex:1;overflow:auto}.dwg-row{border-bottom:1px solid var(--hair-2);cursor:pointer;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:9px 12px;display:grid}@media (hover:hover) and (pointer:fine){.dwg-row:hover{background:var(--surface-2)}}.dwg-row.on{background:var(--accent-soft)}.dwg-row.on:before{content:"";width:2px;position:absolute;left:0}.dwg-thumb{border:1px solid var(--hair);background:var(--paper);width:34px;height:26px;color:var(--muted-2);border-radius:3px;place-items:center;display:grid}.dwg-meta .nm{font-size:11.5px;font-weight:600}.dwg-meta .no{font-family:var(--fmono);color:var(--muted);font-size:9.5px}.dwg-stat{font-family:var(--fmono);border-radius:10px;padding:2px 6px;font-size:9px;font-weight:700}.dwg-stat.issued{background:color-mix(in srgb, var(--ok) 14%, transparent);color:var(--ok)}.dwg-stat.review{background:var(--hl-soft);color:var(--hl-ink)}.dwg-stat.wip{background:var(--surface-3);color:var(--muted)}.dwg-preview{z-index:var(--z-overlay);background:var(--surface);animation:dwg-preview-in var(--dur-modal) var(--ease-out);display:flex;position:absolute;inset:0}@keyframes dwg-preview-in{0%{opacity:0}}.dwg-crop-dim{pointer-events:none;background:#0000002e;position:absolute}.dwg-crop-box{cursor:move;border:2px solid #e0322d;position:absolute}.dwg-crop-h{background:#e0322d;border:1px solid #fff;position:absolute}.dwg-vframe{transition:stroke var(--dur-tint) var(--ease-out), stroke-width var(--dur-tint) var(--ease-out)}.dwg-vhandle{transition:fill var(--dur-tint) var(--ease-out)}.dwg-vhandle:hover{fill:var(--acc)}.dwg-stamp{stroke:#0000;stroke-width:.6px;transition:fill var(--dur-tint) var(--ease-out), stroke var(--dur-tint) var(--ease-out)}.dwg-stamp:hover,.dwg-stamp:focus-visible{fill:color-mix(in srgb, var(--accent) 10%, transparent);stroke:var(--accent)}.dwg-sheet-busy{z-index:5;background:color-mix(in srgb, var(--surface-sunken) 72%, transparent);opacity:0;animation:stage-busy-in var(--dur-tint) var(--ease-out) var(--dur-tint) forwards;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.dwg-rowdel{opacity:0;pointer-events:none;transition:opacity var(--dur-tint) var(--ease-out)}.trow:focus-within .dwg-rowdel{opacity:1;pointer-events:auto}@media (hover:hover) and (pointer:fine){.trow:hover .dwg-rowdel{opacity:1;pointer-events:auto}}@media (hover:none){.dwg-rowdel{opacity:1;pointer-events:auto}}.dwg-busy{transition:opacity var(--dur-tint) var(--ease-out)}.dwg-busy.on{opacity:.55;pointer-events:none}.dwg-addrow{animation:dwg-addrow-in var(--dur-pop) var(--ease-out)}@keyframes dwg-addrow-in{0%{opacity:0;transform:translateY(4px)}}.draw-stage{background:linear-gradient(var(--hair-2) 1px, transparent 1px) 0 0/24px 24px, linear-gradient(90deg, var(--hair-2) 1px, transparent 1px) 0 0/24px 24px, var(--bg);flex:1;justify-content:center;align-items:flex-start;min-height:0;padding:26px;display:flex;position:relative;overflow:auto}.sheet{background:var(--paper);color:var(--paper-ink);border:1px solid var(--hair);box-shadow:var(--sh-3);position:relative}.sheet-frame{border:1.5px solid var(--paper-ink);position:absolute;inset:16px}.sheet-frame-inner{border:.6px solid var(--paper-ink);position:absolute;inset:6px}.view-tag{font-family:var(--fmono);background:var(--hl-soft);color:var(--hl-ink);border:1px solid var(--hl);z-index:2;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:700;position:absolute}.tblock{font-family:var(--fmono);color:var(--paper-ink);background:var(--paper);border:1.4px solid var(--paper-ink);font-size:8px;display:grid;position:absolute;bottom:16px;right:16px}.tblock .tb-cell{border-right:.5px solid var(--paper-ink);border-bottom:.5px solid var(--paper-ink);align-items:center;padding:2px 4px;display:flex}.tblock .tb-cell.bg{background:var(--paper-fill)}.tblock .tb-cell.lbl{color:#6b6b5b;font-size:7px}.tblock .tb-cell.bold{font-size:11px;font-weight:700}.tblock .tb-cell.title{font-size:13px;font-weight:700}.sheets-strip{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r2);box-shadow:var(--sh-2);z-index:2;gap:6px;padding:6px;display:flex;position:absolute;bottom:14px;left:14px}.sheets-strip .s{font-family:var(--fmono);color:var(--muted);background:var(--surface-2);border-radius:5px;align-items:center;gap:6px;padding:5px 9px;font-size:10.5px;display:flex}.sheets-strip .s.on{background:var(--accent);color:#fff}.sheets-strip .s .num{font-weight:700}.bom-block{background:var(--paper);border:1px solid var(--paper-ink);font-family:var(--fmono);color:var(--paper-ink);position:absolute}.bom-block .head{background:var(--paper-fill);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--paper-ink);padding:3px 6px;font-size:9px;font-weight:700}.bom-block table{border-collapse:collapse;width:100%;font-size:8.5px}.bom-block th,.bom-block td{border:.5px solid var(--paper-ink);text-align:left;padding:2px 5px}.bom-block th{background:#eceae0;font-weight:700}.bom-block td.pos{color:var(--hl-ink);text-align:center;font-weight:700}.notes-block{background:var(--paper);border:1px solid var(--paper-ink);font-family:var(--fmono);color:var(--paper-ink);padding:6px 8px;position:absolute}.notes-block h4{text-transform:uppercase;letter-spacing:.08em;margin:0 0 4px;font-size:9px}.notes-block ol{margin:0;padding-left:14px;font-size:9px;line-height:1.5}.pid-tools{gap:7px;padding:8px 12px;display:grid}.pid-toolrow{border:1px solid var(--hair);border-radius:var(--r2);background:var(--surface-2);align-items:center;gap:8px;padding:8px 10px;font-size:11.5px;display:flex}.pid-toolrow .ic{border-radius:var(--r1);background:var(--accent-soft);width:26px;height:26px;color:var(--accent);flex:none;place-items:center;display:grid}.pid-toolrow .tt{flex:1}.pid-toolrow .tt .a{font-weight:600}.pid-toolrow .tt .b{color:var(--muted);font-size:10px}.login-page{background:var(--bg);z-index:var(--z-login);place-items:center;display:grid;position:fixed;inset:0}.login-box{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r3);box-shadow:var(--sh-3);width:360px;padding:36px 40px}.login-logo{align-items:center;gap:12px;margin-bottom:24px;display:flex}.login-brand .lb-name{letter-spacing:-.02em;color:var(--ink);font-size:17px;font-weight:800}.login-brand .lb-sub{color:var(--muted);font-size:11px;font-family:var(--fmono);margin-top:2px}.login-title{margin-bottom:20px;font-size:20px;font-weight:700}.login-form{flex-direction:column;gap:14px;display:flex}.lf-field{flex-direction:column;gap:5px;display:flex}.lf-field label{color:var(--ink-2);font-size:11.5px;font-weight:600}.lf-field input{border:1px solid var(--hair);border-radius:var(--r1);background:var(--surface-2);color:var(--ink);outline:none;padding:9px 12px;font-size:13px}.lf-field input:focus{border-color:var(--accent);background:var(--surface)}.lf-field input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lf-error{color:var(--bad);align-items:center;gap:6px;font-size:11.5px;display:flex}.inp-dup,input.inp-dup{box-shadow:0 0 0 1px var(--bad);border-color:var(--bad)!important}.lf-submit{width:100%;margin-top:4px;padding:11px;font-size:14px}.login-box.noaccess{text-align:center}.noaccess-icon{color:var(--bad);margin-bottom:12px}.noaccess-desc{color:var(--muted);margin:6px 0 20px;font-size:12.5px;line-height:1.5}.noaccess-actions{flex-direction:column;gap:8px;display:flex}.noaccess-actions .btn{width:100%;padding:10px;font-size:13px}.rdl-modbar{border-bottom:1px solid var(--hair);background:var(--surface-2);align-items:center;gap:6px;padding:8px 14px;display:flex}.rdl-modbar-lbl{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-right:4px;font-size:11px;font-weight:600}.rdl-modtab{border:1px solid var(--hair);border-radius:var(--r2);background:var(--surface);color:var(--ink-2);cursor:pointer;transition:background var(--dur-tint) var(--ease-out), color var(--dur-tint) var(--ease-out), border-color var(--dur-tint) var(--ease-out), transform var(--dur-press) var(--ease-out);padding:5px 13px;font-size:12.5px;font-weight:600}@media (hover:hover) and (pointer:fine){.rdl-modtab:hover:not(:disabled){border-color:var(--accent-line);color:var(--ink)}}.rdl-modtab.on{background:var(--accent);border-color:var(--accent);color:#fff}.rdl-modtab:disabled{cursor:default}.rdl-modbar-note{color:var(--muted);margin-left:8px;font-size:11px;font-style:italic}.proj-select{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r3);box-shadow:var(--sh-3);flex-direction:column;width:640px;max-width:92vw;max-height:88vh;padding:30px 34px;display:flex}.ps-head{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.ps-user{align-items:center;gap:10px;display:flex}.ps-uname{color:var(--muted);font-size:12px;font-family:var(--fmono)}.ps-title{color:var(--ink);font-size:20px;font-weight:700}.ps-sub{color:var(--muted);margin-top:4px;margin-bottom:18px;font-size:12px}.ps-empty{text-align:center;color:var(--muted);justify-content:center;align-items:center;gap:6px;padding:24px;font-size:12.5px;display:flex}.ps-empty.err{color:var(--bad)}.ps-grid{grid-template-columns:1fr 1fr;gap:10px;padding-right:4px;display:grid;overflow:auto}.ps-card{text-align:left;border:1px solid var(--hair);border-radius:var(--r2);background:var(--surface-2);cursor:pointer;transition:border-color var(--dur-tint) var(--ease-out), background var(--dur-tint) var(--ease-out), transform var(--dur-press) var(--ease-out);align-items:center;gap:12px;padding:13px 14px;display:flex}@media (hover:hover) and (pointer:fine){.ps-card:hover{border-color:var(--accent);background:var(--surface)}}.ps-card-ic{border-radius:var(--r2);background:var(--accent-soft);width:38px;height:38px;color:var(--accent);flex:none;place-items:center;display:grid}.ps-card-body{flex:1;min-width:0}.ps-card-code{font-size:11px;font-weight:700;font-family:var(--fmono);color:var(--accent-ink,var(--accent))}.ps-card-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.ps-card-desc{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.modal-overlay{z-index:var(--z-modal);animation:modal-fade var(--dur-modal) var(--ease-out);background:#00000059;place-items:center;display:grid;position:fixed;inset:0}.modal-box{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r3);box-shadow:var(--sh-3);transform-origin:50%;max-height:90vh;animation:modal-in var(--dur-modal) var(--ease-out);flex-direction:column;display:flex;position:relative;overflow:hidden}@keyframes modal-fade{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:scale(.97)}}.modal-box.modal-moved{z-index:201}.modal-hdr{border-bottom:1px solid var(--hair);background:var(--surface-2);flex:none;align-items:center;gap:10px;padding:14px 18px;display:flex}.modal-title{flex:1;font-size:14px;font-weight:700}.modal-close{font-size:14px}.modal-body{flex:1;overflow:auto}.mf{flex-direction:column;gap:12px;padding:18px;display:flex}.mf-row{flex-direction:column;gap:4px;display:flex}.mf-row label{color:var(--ink-2);font-size:11.5px;font-weight:600}.mf-row input,.mf-row select{border:1px solid var(--hair);border-radius:var(--r1);background:var(--surface-2);color:var(--ink);outline:none;padding:7px 10px;font-size:12.5px}.mf-row input:focus,.mf-row select:focus{border-color:var(--accent);background:var(--surface)}.mf-row input:focus-visible,.mf-row select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mf-actions{border-top:1px solid var(--hair-2);justify-content:flex-end;gap:8px;margin-top:4px;padding-top:6px;display:flex}.mf-check-row{border-bottom:1px solid var(--hair-2);cursor:pointer;align-items:center;padding:7px 4px;font-size:12px;display:flex}@media (hover:hover) and (pointer:fine){.mf-check-row:hover{background:var(--surface-2)}}.adm-loading{color:var(--muted);padding:20px 18px;font-size:12px}.adm-error{color:var(--bad);padding:20px 18px;font-size:12px}.adm-pager{border-top:1px solid var(--hair-2);align-items:center;gap:10px;padding:10px 16px;font-size:12px;display:flex}.adm-pager button{border:1px solid var(--hair);border-radius:var(--r1);background:var(--surface-2);color:var(--ink);padding:4px 10px;font-size:14px}.adm-pager button:disabled{opacity:.35;cursor:default}@media (hover:hover) and (pointer:fine){.adm-pager button:not(:disabled):hover{background:var(--accent-soft)}}.adm-checkbox{color:var(--ink-2);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.bad-btn{color:var(--bad);border-radius:var(--r1);cursor:pointer;background:#fcebec;border:1px solid #f5c0c2;padding:3px 10px;font-size:11px;font-weight:600}@media (hover:hover) and (pointer:fine){.bad-btn:hover{background:#f8d0d2}}.ws-elec,.ws-inst{grid-template-columns:288px 1fr 332px}.ws-rdl{grid-template-columns:300px 1fr 332px}.ws-admin{grid-template-columns:240px 1fr}.dt-wrap{flex:1;overflow:auto}.dtable{border-collapse:collapse;width:100%;font-size:11.5px}.dtable thead th{z-index:2;background:var(--surface-2);color:var(--muted);text-align:left;font-weight:600;font-family:var(--fmono);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--hair);white-space:nowrap;padding:8px 12px;font-size:9.5px;position:sticky;top:0}.dtable td{border-bottom:1px solid var(--hair-2);white-space:nowrap;padding:8px 12px}@media (hover:hover) and (pointer:fine){.dtable tbody tr:hover{background:var(--surface-2)}}.dtable tbody tr.sel{background:var(--accent-soft)}.dtable .mono{font-family:var(--fmono)}.dtable .tag{font-family:var(--fmono);color:var(--accent-ink);font-weight:700}.cellbadge{font-family:var(--fmono);border-radius:9px;padding:1px 7px;font-size:9.5px;font-weight:700}.cellbadge.ok{color:var(--ok);background:#e2f6ee}.cellbadge.warn{background:var(--hl-soft);color:var(--hl-ink)}.cellbadge.bad{color:var(--bad);background:#fcebec}.cellbadge.neu{background:var(--surface-3);color:var(--muted)}.mod-stage{background:var(--bg);flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.sheet-stage{background:linear-gradient(var(--hair-2) 1px, transparent 1px) 0 0/24px 24px, linear-gradient(90deg, var(--hair-2) 1px, transparent 1px) 0 0/24px 24px, var(--bg);flex:1;justify-content:center;align-items:flex-start;min-height:0;padding:26px;display:flex;position:relative;overflow:auto}.diagram{background:var(--paper);color:var(--paper-ink);border:1px solid var(--hair);box-shadow:var(--sh-3);position:relative}.diagram .frame{border:1.4px solid var(--paper-ink);position:absolute;inset:14px}.modtabs{background:var(--surface);border-bottom:1px solid var(--hair);align-items:center;gap:2px;padding:7px 12px;display:flex}.modtab{border-radius:var(--r2);color:var(--muted);background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:6px 12px;font-size:11.5px;font-weight:600;display:flex}.modtab.on{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent-line)}@media (hover:hover) and (pointer:fine){.modtab:hover:not(.on){background:var(--surface-2);color:var(--ink)}}.modtabs .grow{flex:1}.cards{gap:9px;padding:11px 14px;display:grid}.metric{border:1px solid var(--hair);border-radius:var(--r2);background:var(--surface);align-items:center;gap:10px;padding:11px;display:flex}.metric .mi{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:9px;flex:none;place-items:center;display:grid}.metric .mv{font-family:var(--fmono);font-size:18px;font-weight:700;line-height:1}.metric .mk{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:3px;font-size:10px}.metric .mtrend{font-family:var(--fmono);color:var(--ok);margin-left:auto;font-size:10px}.rdl-head{border-bottom:1px solid var(--hair);background:var(--surface);align-items:center;gap:10px;padding:11px 14px;display:flex}.rdl-head .ic{background:var(--accent);color:#fff;border-radius:9px;place-items:center;width:32px;height:32px;display:grid}.rdl-head .nm{font-size:14px;font-weight:700}.rdl-head .nm .m{font-family:var(--fmono);color:var(--muted);font-size:10px;font-weight:400}.rdl-head .grow{flex:1}.attr-row{grid-template-columns:1fr 1fr;align-items:center;gap:9px;padding:5px 14px;font-size:11.5px;display:grid}.attr-row .ak{color:var(--muted)}.attr-field{border:1px solid var(--hair);border-radius:var(--r1);background:var(--surface-2);font-family:var(--fmono);align-items:center;gap:6px;padding:5px 8px;font-size:11px;display:flex}.attr-field.acc{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-ink);font-weight:700}.chiprow{flex-wrap:wrap;gap:5px;padding:8px 14px;display:flex}.uchip{font-family:var(--fmono);background:var(--surface-2);border:1px solid var(--hair);color:var(--ink-2);border-radius:8px;padding:3px 8px;font-size:10px}.uchip.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink);font-weight:700}.admin-nav{flex-direction:column;padding:8px 0;display:flex;overflow:auto}.admin-sec{font-family:var(--fmono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted-2);padding:12px 16px 6px;font-size:9px}.admin-item{color:var(--ink-2);cursor:pointer;border-left:2px solid #0000;align-items:center;gap:9px;padding:8px 16px;font-size:12px;display:flex}@media (hover:hover) and (pointer:fine){.admin-item:hover{background:var(--surface-2)}}.admin-item.on{background:var(--accent-soft);color:var(--accent-ink);border-left-color:var(--accent);font-weight:600}.admin-item .ai{color:var(--muted)}.admin-item.on .ai{color:var(--accent)}.admin-item .badge{font-family:var(--fmono);background:var(--surface-3);color:var(--muted);border-radius:9px;margin-left:auto;padding:1px 7px;font-size:9px}.admin-main{background:var(--bg);padding:20px 24px;overflow:auto}.admin-h{align-items:center;gap:12px;margin-bottom:18px;display:flex}.admin-h .t{letter-spacing:-.01em;font-size:18px;font-weight:700}.admin-h .s{color:var(--muted);font-size:12px}.admin-h .grow{flex:1}.adash{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px;display:grid}.acard{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r3);box-shadow:var(--sh-1);padding:16px}.acard .av{font-family:var(--fmono);font-size:26px;font-weight:700;line-height:1}.acard .ak{color:var(--muted);margin-top:6px;font-size:11px}.acard .atrend{font-size:10px;font-family:var(--fmono);color:var(--ok);margin-top:8px}.panel-card{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r3);box-shadow:var(--sh-1);margin-bottom:16px;overflow:hidden}.panel-card .pc-h{border-bottom:1px solid var(--hair-2);align-items:center;gap:9px;padding:13px 16px;display:flex}.panel-card .pc-h .t{flex:1;font-size:13px;font-weight:700}.panel-card .pc-h .ico-btn{color:var(--muted)}.matrix{border-collapse:collapse;width:100%;font-size:11.5px}.matrix th{text-align:center;font-family:var(--fmono);text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--hair);padding:9px 8px;font-size:9.5px}.matrix th:first-child{text-align:left}.matrix td{border-bottom:1px solid var(--hair-2);text-align:center;padding:9px 8px}.matrix td:first-child{text-align:left;font-weight:600}.matrix .yes{color:var(--ok)}.matrix .no{color:var(--muted-2)}.matrix .ro{color:var(--hl-ink);font-family:var(--fmono);font-size:9.5px}.urow{border-bottom:1px solid var(--hair-2);align-items:center;gap:12px;padding:11px 16px;display:flex}@media (hover:hover) and (pointer:fine){.urow:hover{background:var(--surface-2)}}.uav{color:#fff;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:11px;font-weight:700;display:grid}.urow .un{font-size:12.5px;font-weight:600}.urow .ue{color:var(--muted);font-size:11px;font-family:var(--fmono)}.urow .grow{flex:1}.rolepill{background:var(--accent-soft);color:var(--accent-ink);border:1px solid var(--accent-line);border-radius:9px;padding:4px 10px;font-size:10.5px;font-weight:600}.dot-on{background:var(--ok);border-radius:50%;width:8px;height:8px}.dot-off{background:var(--muted-2);border-radius:50%;width:8px;height:8px}.toggle{background:var(--surface-3);border:1px solid var(--hair);cursor:pointer;border-radius:10px;flex:none;width:36px;height:20px;position:relative}.toggle.on{background:var(--accent);border-color:var(--accent)}.toggle:after{content:"";width:16px;height:16px;box-shadow:var(--sh-1);transition:transform var(--dur-tint) var(--ease-out);background:#fff;border-radius:50%;position:absolute;top:1px;left:1px}.toggle.on:after{transform:translate(16px)}.loop-band{font-family:var(--fmono);color:var(--muted);font-size:9px;font-weight:700;position:absolute}.ws-cat{grid-template-columns:280px 1fr 320px}.editor-body{flex:1;overflow:auto}.ed-block{border-bottom:1px solid var(--hair-2);padding:10px 0}.ed-h{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:10px;font-family:var(--fmono);align-items:center;gap:6px;padding:0 14px 8px;display:flex}.ed-h .grow{flex:1}.ed-field{grid-template-columns:96px 1fr;align-items:center;gap:8px;padding:5px 14px;font-size:11.5px;display:grid}.ed-field .k{color:var(--muted)}.ed-input{border:1px solid var(--hair);border-radius:var(--r1);background:var(--surface-2);font-family:var(--fmono);justify-content:space-between;align-items:center;gap:6px;padding:5px 8px;font-size:11px;display:flex}.ed-input.acc{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-ink);font-weight:700}.ed-input .ch{color:var(--muted-2)}.typetag{font-family:var(--fmono);border-radius:5px;padding:1px 6px;font-size:9px;font-weight:700}.typetag.num{color:#1e47a8;background:#e6f0fe}.typetag.txt{color:#1e7233;background:#e6f5ea}.typetag.enum{color:#6838be;background:#f1ebfd}.typetag.bool{background:var(--hl-soft);color:var(--hl-ink)}.typetag.ref{color:#a8315f;background:#fcebf2}.inh{font-family:var(--fmono);background:var(--surface-3);color:var(--muted);border-radius:4px;padding:1px 5px;font-size:8.5px}.inh.own{background:var(--accent-soft);color:var(--accent-ink)}.rel-canvas{background:linear-gradient(var(--hair-2) 1px, transparent 1px) 0 0/22px 22px, linear-gradient(90deg, var(--hair-2) 1px, transparent 1px) 0 0/22px 22px, var(--surface);flex:1;min-height:0;padding:24px;overflow:auto}.rel-node{background:var(--surface);border:1.5px solid var(--accent);border-radius:var(--r2);box-shadow:var(--sh-2);min-width:130px;position:absolute}.rel-node .rn-h{background:var(--accent-soft);color:var(--accent-ink);border-bottom:1px solid var(--accent-line);font-size:11px;font-weight:700;font-family:var(--fmono);border-radius:8px 8px 0 0;align-items:center;gap:6px;padding:6px 10px;display:flex}.rel-node .rn-b{font-size:10.5px;font-family:var(--fmono);color:var(--ink-2);padding:6px 10px}.rel-node .rn-b div{padding:1px 0}.hier-list{flex-direction:column;gap:0;display:flex}.hier-tpl{border-bottom:1px solid var(--hair-2);cursor:pointer;align-items:center;gap:9px;padding:11px 14px;display:flex}@media (hover:hover) and (pointer:fine){.hier-tpl:hover{background:var(--surface-2)}}.hier-tpl.on{background:var(--accent-soft)}.hier-tpl .hi{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:8px;flex:none;place-items:center;display:grid}.hier-tpl .ht{flex:1}.hier-tpl .ht .a{font-size:12px;font-weight:600}.hier-tpl .ht .b{color:var(--muted);font-size:10px;font-family:var(--fmono)}.hier-chain{flex-wrap:wrap;align-items:center;gap:8px;padding:18px 22px;display:flex}.hier-lvl{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r2);box-shadow:var(--sh-1);align-items:center;gap:9px;padding:10px 14px;display:flex}.hier-lvl .ln{background:var(--accent);color:#fff;width:22px;height:22px;font-family:var(--fmono);border-radius:6px;place-items:center;font-size:10px;font-weight:700;display:grid}.hier-lvl .lt{font-size:12px;font-weight:600}.hier-lvl .lt .b{color:var(--muted);font-size:9.5px;font-family:var(--fmono)}.hier-arrow{color:var(--muted-2)}.cat-preview{background:radial-gradient(ellipse at 50% 45%, var(--accent-soft), transparent 60%), var(--bg);border-bottom:1px solid var(--hair);flex:none;height:320px;position:relative}.cat-preview .badge3d{font-family:var(--fmono);color:var(--muted);background:var(--surface);border:1px solid var(--hair);border-radius:6px;align-items:center;gap:6px;padding:4px 9px;font-size:10px;display:flex;position:absolute;top:12px;left:14px}.cat-preview .conn-leg{font-family:var(--fmono);color:var(--muted);gap:12px;font-size:9.5px;display:flex;position:absolute;bottom:12px;left:14px}.cat-preview .conn-leg .cl{align-items:center;gap:5px;display:flex}.cat-preview .conn-leg .dot{border-radius:50%;width:8px;height:8px}.param-panel{border-bottom:1px solid var(--hair);background:var(--surface);flex:none}.param-row{border-bottom:1px solid var(--hair-2);grid-template-columns:130px 1fr 70px;align-items:center;gap:10px;padding:8px 14px;display:grid}.param-row .pk{font-size:11.5px}.param-row .pk .sub{font-family:var(--fmono);color:var(--muted);font-size:9.5px}.param-slider{appearance:none;background:var(--accent-line);border-radius:3px;outline:none;height:4px}.param-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;width:15px;height:15px;box-shadow:var(--sh-1);border:2px solid #fff;border-radius:50%}.param-slider:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.param-val{font-family:var(--fmono);color:var(--accent-ink);text-align:right;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r1);padding:4px 8px;font-size:11.5px;font-weight:700}.cat-formula{font-family:var(--fmono);color:var(--muted);background:var(--surface-2);align-items:center;gap:8px;padding:8px 14px;font-size:10px;display:flex}.cat-formula .ic{color:var(--accent)}.prim-bar{flex-wrap:wrap;gap:6px;padding:10px 12px;display:flex}.prim-btn{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r2);width:calc(33.33% - 4px);color:var(--ink-2);transition:background var(--dur-tint) var(--ease-out), border-color var(--dur-tint) var(--ease-out), color var(--dur-tint) var(--ease-out), transform var(--dur-press) var(--ease-out);flex-direction:column;align-items:center;gap:5px;padding:9px 6px;display:flex}@media (hover:hover) and (pointer:fine){.prim-btn:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);transform:translateY(-1px)}}.prim-btn .pi{color:var(--accent)}.prim-btn .pl{font-size:10.5px;font-weight:600}.radial-layer{z-index:200;pointer-events:none;position:fixed;inset:0}.radial-layer>*{pointer-events:all}.radial{width:0;height:0;animation:radial-in var(--dur-pop) var(--ease-out);position:absolute}@keyframes radial-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.radial-hub{background:var(--rail);color:#fff;width:38px;height:38px;box-shadow:var(--sh-3);border:2px solid var(--accent);border-radius:50%;place-items:center;display:grid;position:absolute;top:-19px;left:-19px}.radial-hub.sm{border-color:var(--accent-2);width:28px;height:28px;top:-14px;left:-14px}.radial-item{background:var(--surface);border:1px solid var(--hair);width:60px;height:60px;box-shadow:var(--sh-3);color:var(--ink-2);transition:transform var(--dur-press) var(--ease-out), background var(--dur-tint) var(--ease-out), color var(--dur-tint) var(--ease-out);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;transform:translate(-50%,-50%)}@media (hover:hover) and (pointer:fine){.radial-item:hover{background:var(--accent);color:#fff;border-color:var(--accent);z-index:2;transform:translate(-50%,-50%)scale(1.12)}}.radial-item .rl{letter-spacing:-.01em;font-size:8.5px;font-weight:700;line-height:1}.radial-item.sm{width:48px;height:48px}.radial-item.sm .rl{font-size:8px}.radial-item .rdot{background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:6px;right:9px}@media (hover:hover) and (pointer:fine){.radial-item:hover .rdot{background:#fff}}.radial.sub .radial-item{background:var(--accent-soft);border-color:var(--accent-line)}@media (hover:hover) and (pointer:fine){.radial.sub .radial-item:hover{background:var(--accent);color:#fff}}[data-disc=tags]{--accent:#16a34a;--accent-2:#22c55e;--accent-soft:#e6f5ea;--accent-line:#b6e2c1;--accent-ink:#15803d}[data-disc=hub]{--accent:#2d63e0;--accent-2:#5b86ee;--accent-soft:#ecf1fe;--accent-line:#c5d6f8;--accent-ink:#1e47a8}[data-disc=bim]{--accent:#0891b2;--accent-2:#22d3ee;--accent-soft:#e0f7fa;--accent-line:#a5f3fc;--accent-ink:#0e7490}.modtab,.adm-pager button,.bad-btn{transition:transform var(--dur-press) var(--ease-out)}.rdl-modtab:active,.ps-card:active,.modtab:active,.adm-pager button:active,.bad-btn:active{transform:scale(.97)}.prim-btn:active{transform:translateY(-1px)scale(.97)}.radial-item:active{transform:translate(-50%,-50%)scale(1.06)}.sheet-preview{justify-content:center;align-items:center;display:flex}.sheet-preview svg{width:100%;height:100%;display:block}
