@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(./ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(./ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(./ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(./ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(./ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(./ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(./ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(./ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(./ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(./ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(./ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(./ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(./ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(./ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(./ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(./ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(./ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");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{--chrome:#1d2733;--chrome-2:#273342;--chrome-3:#33414f;--chrome-ink:#dce6ee;--chrome-muted:#8fa1b1;--ink:#18212b;--muted:#5d6b78;--paper:#fff;--panel:#f6f8fa;--canvas:#edf1f4;--grid:#c3cdd6;--line:#d5dce2;--line-strong:#b8c3cd;--cobalt:#2f5bea;--cobalt-soft:#e5ecfd;--up:#22a55b;--wait:#e8a33d;--down:#d9434e;--term-bg:#1d2733;--term-ink:#dfe8ef;--radius-s:4px;--radius-m:8px;--font:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;height:100%;margin:0}button,input,select{touch-action:manipulation}body{font-family:var(--font);color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;font-size:13.5px;line-height:1.45;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}code,kbd,.mono{font-family:var(--mono);font-size:.92em}kbd{background:var(--panel);border:1px solid var(--line);border-bottom-width:2px;border-radius:3px;padding:0 5px}.muted{color:var(--muted)}.small{font-size:12px}.pad{padding:16px 18px}.nowrap{white-space:nowrap}.app{height:100%;grid-template-rows:48px 1fr auto;height:100dvh;display:grid}.main{min-height:0;display:flex}.stage{flex:1;min-width:0;position:relative;overflow:hidden}.topbar{background:var(--chrome);color:var(--chrome-ink);z-index:50;align-items:center;gap:10px;padding:0 10px 0 14px;display:flex;position:relative}.brand{align-items:center;gap:8px;margin-right:6px;display:flex}.brand-name{letter-spacing:.01em;font-size:15px;font-weight:600}.menus{display:flex}.menu{position:relative}.menu-btn{border-radius:var(--radius-s);color:var(--chrome-ink);background:0 0;border:0;padding:6px 10px}.menu-btn:hover,.menu-btn.on{background:var(--chrome-3)}.menu-pop{background:var(--paper);min-width:240px;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-m);z-index:100;padding:6px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 32px #18212b38}.menu-pop button{border-radius:var(--radius-s);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:18px;width:100%;padding:7px 10px;display:flex}.menu-pop button:hover{background:var(--cobalt-soft)}.menu-pop .menu-example{flex-direction:column;align-items:flex-start;gap:1px;width:340px}.menu-example small{color:var(--muted);font-size:12px}.menu-sep{background:var(--line);height:1px;margin:6px 4px}.menu-label{color:var(--muted);padding:4px 10px 2px;font-size:12px}.toolbar{border-left:1px solid var(--chrome-3);align-items:center;gap:2px;padding-left:10px;display:flex}.tool{width:34px;height:32px;color:var(--chrome-ink);border-radius:var(--radius-s);background:0 0;border:0;place-items:center;display:grid}.tool:hover{background:var(--chrome-3)}.tool.on{background:var(--cobalt);color:#fff}.toolbar-sep{background:var(--chrome-3);width:1px;height:20px;margin:0 6px}.file-title{text-align:center;color:var(--chrome-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;justify-content:center;align-items:center;gap:6px;display:flex;overflow:hidden}.dirty{background:var(--wait);border-radius:50%;width:7px;height:7px}.mode-switch{background:var(--chrome-2);border-radius:var(--radius-m);align-items:center;gap:2px;padding:3px;display:flex}.mode-switch .clock{font-family:var(--mono);color:var(--chrome-muted);padding:0 8px;font-size:12px}.mode-switch button{color:var(--chrome-muted);background:0 0;border:0;border-radius:6px;padding:4px 12px}.mode-switch button.on{background:var(--paper);color:var(--ink);font-weight:500}.mode-switch button.on.sim{background:var(--wait);color:#2a1c05}.canvas-wrap{position:absolute;inset:0}.canvas{background:var(--canvas);touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.link-hit{stroke:#0000;stroke-width:14px;cursor:pointer}.link-line{stroke:#34404c;stroke-width:2px;pointer-events:none}.link-line.selected{stroke:var(--cobalt);stroke-width:3px}.light{stroke:#fff;stroke-width:1.6px}.light.up{fill:var(--up)}.light.down{fill:var(--down)}.port-label{fill:var(--muted);text-anchor:middle;paint-order:stroke;stroke:var(--canvas);stroke-width:3px;pointer-events:none;font-size:10.5px}.rubber{stroke:var(--cobalt);stroke-width:2px;pointer-events:none}.device{cursor:pointer}.tool-delete .device,.tool-delete .link-hit{cursor:not-allowed}.device-halo{fill:#0000;stroke:#0000}.device:hover .device-halo{fill:#2f5bea0f}.device.selected .device-halo{fill:#2f5bea14;stroke:var(--cobalt);stroke-width:1.5px}.device.marked .device-halo{fill:#e8a33d24;stroke:var(--wait);stroke-width:2px;stroke-dasharray:5 4}.device-name{text-anchor:middle;fill:var(--ink);paint-order:stroke;stroke:var(--canvas);stroke-width:4px;font-size:12.5px;font-weight:500}.device-model{text-anchor:middle;fill:var(--muted);paint-order:stroke;stroke:var(--canvas);stroke-width:3px;font-size:10px}.envelope{cursor:pointer;filter:drop-shadow(0 2px 3px #18212b4d)}.note-fo{overflow:visible}.note{border-radius:var(--radius-s);white-space:pre-wrap;cursor:move;background:#fff8d9;border:1px solid #ecdc9a;max-width:220px;padding:7px 9px;font-size:12.5px;display:inline-block;box-shadow:0 1px 2px #0000000f}.note.selected{border-color:var(--cobalt)}.note textarea{resize:both;background:0 0;border:0;outline:none;width:200px;min-height:70px}.empty-hint{text-align:center;pointer-events:none;color:var(--muted);place-content:center;max-width:380px;margin:auto;display:grid;position:absolute;inset:0}.empty-title{color:var(--ink);margin:0 0 6px;font-size:22px;font-weight:600}.empty-hint p{margin:0}.empty-examples{pointer-events:auto;flex-direction:column;gap:8px;margin-top:18px;display:flex}.port-picker{z-index:40;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-m);width:270px;position:absolute;overflow:hidden;box-shadow:0 12px 30px #18212b33}.port-picker-title{border-bottom:1px solid var(--line);background:var(--panel);padding:8px 12px;font-weight:500}.port-picker-list{max-height:300px;padding:4px;overflow:auto}.port-picker-list button{border-radius:var(--radius-s);text-align:left;background:0 0;border:0;justify-content:space-between;width:100%;padding:5px 8px;display:flex}.port-picker-list button:hover:not(:disabled){background:var(--cobalt-soft)}.port-picker-list button:disabled{color:#9aa7b3;cursor:default}.port-peer{font-size:12px}.tooltip{z-index:30;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-m);pointer-events:none;min-width:200px;padding:9px 12px;position:absolute;box-shadow:0 10px 26px #18212b2e}.tooltip strong{display:block}.tooltip-model{color:var(--muted);font-size:12px}.tooltip table{border-collapse:collapse;margin-top:6px;font-size:12px}.tooltip td{white-space:nowrap;padding:1px 10px 1px 0}.dot{vertical-align:0;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.dot.up{background:var(--up)}.dot.down{background:var(--down)}.dock{background:var(--paper);border-top:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) minmax(260px,28%) auto;height:156px;display:grid}.dock-picker{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:6px;width:252px;padding:8px;display:flex}.dock-tops{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.dock-top{border-radius:var(--radius-m);color:var(--muted);background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:1px;padding:4px 2px 5px;font-size:11px;line-height:1.15;display:flex}.dock-top:hover{background:var(--paper)}.dock-top.on{background:var(--paper);border-color:var(--line-strong);color:var(--ink);font-weight:500;box-shadow:0 1px 2px #18212b0f}.dock-subs{border-top:1px solid var(--line);gap:4px;padding-top:6px;display:flex}.dock-sub{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:3px;padding:2px 4px;font-size:11.5px;display:flex}.dock-sub.on{background:var(--cobalt-soft);color:var(--cobalt);border-color:#c3d1fb;font-weight:500}.dock-strip-wrap{flex-direction:column;min-width:0;display:flex}.dock-strip{flex:1;align-items:stretch;gap:6px;padding:10px 12px 4px;display:flex;overflow-x:auto}.dock-item{border-radius:var(--radius-m);cursor:grab;background:0 0;border:1px solid #0000;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:2px;width:92px;padding:4px;display:flex}.dock-item:hover{border-color:var(--line);background:var(--panel)}.dock-item.on{border-color:var(--cobalt);background:var(--cobalt-soft)}.dock-item.cable{cursor:pointer;width:96px}.cable-swatch{place-items:center;height:50px;display:grid}.dock-item-label{text-align:center;font-size:11.5px;font-weight:500;line-height:1.2}.dock-caption{border:1px solid var(--line);background:var(--panel);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;margin:0 12px 8px;padding:4px 10px;font-size:12px;overflow:hidden}.scenarios{border-left:1px solid var(--line);padding:8px 12px;overflow:auto}.scenarios-head{justify-content:space-between;align-items:baseline;margin-bottom:4px;font-weight:500;display:flex}.status{font-size:12px;font-weight:500}.status.successful{color:var(--up)}.status.failed{color:var(--down)}.status.in-progress{color:#a86e14}.status.ready{color:var(--muted)}.modebox{border-left:1px solid var(--line);background:var(--panel);flex-direction:column;gap:6px;width:196px;padding:8px 10px;display:flex}.modebox-time{justify-content:space-between;align-items:baseline;display:flex}.modebox-time .clock{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:15px}.modebox-actions{grid-template-columns:1fr;gap:4px;display:grid}.modebox-actions .btn{justify-content:flex-start}.btn.small{gap:4px;padding:3px 6px;font-size:11.5px}.btn.small svg{width:14px;height:14px}.modebox-tabs{grid-template-columns:1fr 1fr;gap:4px;margin-top:auto;display:grid}.modebox-tabs button{border:1px solid var(--line-strong);background:var(--paper);color:var(--muted);border-radius:6px;flex-direction:column;align-items:center;gap:1px;padding:4px 2px;font-size:11.5px;display:flex}.modebox-tabs button.on{background:var(--chrome);border-color:var(--chrome);color:#fff;font-weight:500}.modebox-tabs button.on.sim{background:var(--wait);border-color:var(--wait);color:#2a1c05}.palette{top:14px;right:max(14px, env(safe-area-inset-right,0px));z-index:20;background:var(--chrome);border-radius:10px;flex-direction:column;gap:2px;padding:4px;display:flex;position:absolute;box-shadow:0 8px 24px #18212b40}.inspect-menu{z-index:45;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-m);min-width:190px;padding:4px;position:absolute;box-shadow:0 12px 30px #18212b33}.inspect-menu-title{color:var(--muted);padding:5px 8px 4px;font-size:12px}.inspect-menu button{text-align:left;border-radius:var(--radius-s);background:0 0;border:0;width:100%;padding:6px 8px;display:block}.inspect-menu button:hover{background:var(--cobalt-soft)}.inspect-win{z-index:35;background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--radius-m);flex-direction:column;width:360px;max-height:300px;display:flex;position:absolute;overflow:hidden;box-shadow:0 14px 36px #18212b3d}.inspect-title{background:var(--panel);border-bottom:1px solid var(--line);cursor:move;justify-content:space-between;align-items:center;padding:4px 4px 4px 10px;font-size:12.5px;display:flex}.inspect-body{overflow:auto}.physical-panel{border-radius:var(--radius-m);background:#e3e9ee;margin-bottom:10px;padding:12px;overflow-x:auto}.app-icon.term{background:#2e6f99}.grid-table{border-collapse:collapse;width:100%}.grid-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);background:var(--paper);padding:6px 8px;font-size:12px;font-weight:500}.grid-table td{vertical-align:middle;border-bottom:1px solid #edf0f3;padding:6px 8px}.grid-table.compact th,.grid-table.compact td{padding:4px 6px;font-size:12.5px}.grid-table.sticky th{z-index:1;position:sticky;top:0}.btn{border:1px solid var(--line-strong);background:var(--paper);white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:5px 12px;display:inline-flex}.btn:hover:not(:disabled){background:var(--panel)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--cobalt);border-color:var(--cobalt);color:#fff}.btn.primary:hover:not(:disabled){background:#2449c9}.btn.icon{padding:5px 8px}.btn.grow{flex:1}.btn-row{gap:8px;margin:4px 0 12px 140px;display:flex}.link-btn{color:var(--cobalt);background:0 0;border:0;padding:0 4px}.link-btn:hover{text-decoration:underline}.link-btn.danger{color:var(--down)}.icon-btn{border-radius:var(--radius-s);width:28px;height:28px;color:inherit;background:0 0;border:0;place-items:center;display:grid}.icon-btn:hover{background:#00000012}.field{grid-template-columns:140px 1fr;align-items:center;gap:4px 0;margin-bottom:10px;display:grid}.field-label{color:var(--muted)}.field-ctl{align-items:center;gap:8px;display:flex}.field-err{color:var(--down);grid-column:2;font-size:12px}input[type=text],.field input:not([type]),.row3 input,.field select{border:1px solid var(--line-strong);background:var(--paper);width:220px;min-width:0;font-family:var(--mono);border-radius:6px;padding:5px 8px;font-size:13px}.field select{font-family:var(--font)}.field input:disabled{background:var(--panel);color:var(--muted)}.row3{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px;display:grid}.row3 label{color:var(--muted);flex-direction:column;gap:3px;font-size:12px;display:flex}.row3 input{width:100%}.switch{align-items:center;gap:8px;display:inline-flex}.switch input{appearance:none;background:var(--line-strong);cursor:pointer;border-radius:10px;width:34px;height:20px;margin:0;transition:background .15s;position:relative}.switch input:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch input:checked{background:var(--up)}.switch input:checked:after{transform:translate(14px)}h3{margin:2px 0 12px;font-size:14px;font-weight:600}.devwin{background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--radius-m);resize:both;flex-direction:column;width:700px;min-width:460px;max-width:calc(100vw - 20px);height:500px;min-height:320px;display:flex;position:absolute;overflow:hidden;box-shadow:0 18px 50px #18212b47}.devwin-title{background:var(--panel);border-bottom:1px solid var(--line);cursor:move;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:5px 6px 5px 10px;display:flex}.devwin-name{font-weight:600}.devwin-model{color:var(--muted);flex:1;font-size:12px}.devwin-tabs{border-bottom:1px solid var(--line);gap:2px;padding:0 10px;display:flex}.devwin-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 12px 7px}.devwin-tabs button.on{color:var(--ink);border-bottom-color:var(--cobalt);font-weight:500}.devwin-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.physical{padding:14px 18px}.physical-art{align-items:center;gap:18px;margin-bottom:12px;display:flex}.physical-name{font-size:18px;font-weight:600}.config{flex:1;min-height:0;display:flex}.config-nav{border-right:1px solid var(--line);background:var(--panel);flex-shrink:0;width:200px;padding:8px 6px;overflow:auto}.config-nav-group{color:var(--muted);padding:8px 8px 3px;font-size:12px}.config-nav button{text-align:left;border-radius:var(--radius-s);background:0 0;border:0;align-items:center;width:100%;padding:4px 8px;font-size:12.5px;display:flex}.config-nav button.on{background:var(--paper);box-shadow:inset 0 0 0 1px var(--line-strong);font-weight:500}.config-main{flex-direction:column;flex:1;min-width:0;display:flex}.config-form{flex:1;padding:14px 18px;overflow:auto}.config-log{border-top:1px solid var(--line);flex-direction:column;height:120px;display:flex}.config-log-title{color:var(--muted);background:var(--panel);padding:4px 10px;font-size:12px}.config-log pre{font-family:var(--mono);background:var(--term-bg);color:var(--term-ink);white-space:pre-wrap;flex:1;margin:0;padding:6px 10px;font-size:12px;overflow:auto}.terminal{background:var(--term-bg);min-height:0;color:var(--term-ink);font-family:var(--mono);cursor:text;flex-direction:column;flex:1;font-size:13px;line-height:1.42;display:flex}.terminal-scroll{flex:1;padding:10px 12px;overflow:auto}.terminal-out{font:inherit;white-space:pre-wrap;word-break:break-word;margin:0}.terminal-line{white-space:pre;display:flex}.terminal-input{color:inherit;font:inherit;caret-color:#7fd6cf;background:0 0;border:0;outline:0;flex:1;padding:0}.terminal ::selection{background:#3d5b8a}.desktop{background:linear-gradient(160deg,#e8eef3,#dfe8ef);flex-wrap:wrap;flex:1;align-content:flex-start;gap:14px;padding:22px;display:flex}.app-tile{border-radius:var(--radius-m);background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:8px;width:120px;padding:12px 6px;font-size:12.5px;display:flex}.app-tile:hover{border-color:var(--line);background:#fff9}.app-icon{width:54px;height:54px;font-family:var(--mono);color:#fff;border-radius:12px;place-items:center;font-weight:500;display:grid}.app-icon.ip{background:#157a82}.app-icon.cmd{background:var(--chrome);font-size:13px}.desktop-app{flex-direction:column;flex:1;min-height:0;display:flex}.desktop-app-bar{border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;display:flex}.radio-row{align-items:center;gap:18px;margin-bottom:14px;display:flex}.dhcp-status{color:var(--up);font-size:12px}.dhcp-status.bad{color:var(--down)}.simpanel{background:var(--paper);border-left:1px solid var(--line);flex-direction:column;flex-shrink:0;width:380px;min-height:0;display:flex}.sim-head{justify-content:space-between;align-items:baseline;padding:12px 14px 6px;display:flex}.sim-head h2{margin:0;font-size:15px}.sim-controls{gap:6px;padding:4px 14px;display:flex}.speed{color:var(--muted);align-items:center;gap:10px;padding:8px 14px 4px;font-size:12px;display:flex}.speed input{accent-color:var(--cobalt);flex:1}.sim-filters{border-bottom:1px solid var(--line);gap:6px;padding:6px 14px 10px;display:flex}.chip{border:1px solid var(--line-strong);background:var(--paper);opacity:.5;border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:12px;display:inline-flex}.chip.on{opacity:1}.chip-swatch{border-radius:2px;width:10px;height:10px;display:inline-block}.chip-swatch.big{border-radius:4px;width:18px;height:18px}.events{flex:1;min-height:0;overflow:auto}.events tbody tr{cursor:pointer}.events tbody tr:hover{background:var(--cobalt-soft)}.events tr.drop td{color:var(--down)}.modal-back{z-index:200;background:#18212b59;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--paper);border-radius:10px;width:min(520px,100vw - 32px);max-height:calc(100vh - 80px);padding:18px 20px;overflow:auto;box-shadow:0 24px 60px #18212b59}.modal-head{align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.modal-head>div,.modal-head>h2{flex:1}.modal h2{margin:0;font-size:17px}.modal-head p{margin:2px 0 0}.pdu-summary{font-family:var(--mono);background:var(--panel);border-radius:6px;padding:8px 10px;font-size:12.5px}.layer h3{margin:14px 0 4px;font-size:13px}.layer ul{font-family:var(--mono);margin:0;padding-left:16px;font-size:12.5px}.about p{max-width:64ch;margin:0 0 10px}.toast{background:var(--chrome);color:#fff;border-radius:var(--radius-m);z-index:300;max-width:min(560px,90vw);padding:9px 16px;position:fixed;bottom:158px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #18212b4d}.toast.error{background:#8c2730}@media (max-width:900px){.toolbar,.file-title{display:none}.dock{grid-template-columns:auto minmax(0,1fr) auto}.scenarios{display:none}.simpanel{width:300px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.topbar-right{align-items:center;gap:6px;margin-left:8px;display:flex}.topbar-btn{border:1px solid var(--chrome-3);background:var(--chrome-2);height:32px;color:var(--chrome-ink);white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.topbar-btn:hover{background:var(--chrome-3)}.topbar-btn.ai{border-color:#4a5bd6}.topbar-btn.ai.on{background:var(--cobalt);border-color:var(--cobalt);color:#fff}.plan-badge{background:var(--chrome-3);color:var(--chrome-ink);border-radius:999px;margin-left:4px;padding:1px 7px;font-size:11px;font-weight:600}.plan-badge.pro{color:#3a2a05;background:#f2c14e}.menu-pop.right{left:auto;right:0}.aipanel{background:var(--paper);border-left:1px solid var(--line);flex-direction:column;flex-shrink:0;width:420px;min-height:0;display:flex}.ai-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:8px 8px 0 10px;display:flex}.ai-tabs{gap:2px;display:flex}.ai-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:8px 10px 9px;display:inline-flex}.ai-tabs button.on{color:var(--ink);border-bottom-color:var(--cobalt);font-weight:500}.ai-chat{flex-direction:column;flex:1;min-height:0;display:flex}.ai-list{flex-direction:column;flex:1;gap:12px;padding:14px;display:flex;overflow:auto}.ai-gate,.ai-intro{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.ai-gate h3{margin:0}.ai-gate p,.ai-intro p{max-width:60ch;margin:0}.ai-suggest{flex-direction:column;gap:6px;width:100%;display:flex}.ai-suggest button{text-align:left;border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:8px 10px;font-size:13px}.ai-suggest button:hover{border-color:var(--cobalt);background:var(--cobalt-soft)}.ai-turn.user{align-self:flex-end;max-width:88%}.ai-bubble{background:var(--cobalt);color:#fff;white-space:pre-wrap;border-radius:12px 12px 2px;padding:8px 12px}.ai-answer{flex-direction:column;gap:10px;display:flex}.ai-reply{white-space:pre-wrap;margin:0}.ai-thinking{color:var(--muted);font-style:italic}.ai-error{color:var(--down);background:#fdecee;border-radius:8px;padding:8px 10px}.ai-table-wrap{border:1px solid var(--line);border-radius:8px;overflow-x:auto}.ai-actions{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-direction:column;gap:8px;padding:10px;display:flex}.ai-actions-head{justify-content:space-between;align-items:baseline;display:flex}.ai-actions ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.ai-actions label{align-items:flex-start;gap:8px;font-size:13px;display:flex}.ai-actions details{margin:2px 0 0 24px;font-size:12px}.ai-actions pre{background:var(--term-bg);color:var(--term-ink);font-family:var(--mono);white-space:pre-wrap;border-radius:6px;margin:4px 0 0;padding:6px 8px;font-size:12px}.ai-results li{padding-left:18px;font-size:13px;position:relative}.ai-results li:before{content:"";background:var(--up);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;left:2px}.ai-results li.bad:before{background:var(--down)}.ai-results li.bad{color:#9b2731}.ai-input{padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;display:flex}.ai-input textarea{resize:none;border:1px solid var(--line-strong);min-width:0;font:inherit;border-radius:8px;flex:1;padding:8px 10px;font-size:14px}.ai-usage{flex-basis:100%}.ai-calc{flex-direction:column;flex:1;align-items:flex-start;gap:10px;padding:14px;display:flex;overflow:auto}.calc-base{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.ai-calc input,.stack-field input,.search{border:1px solid var(--line-strong);font:inherit;background:var(--paper);border-radius:6px;padding:6px 8px}.calc-base input{font-family:var(--mono);width:220px}.calc-rows input{width:100%;min-width:70px}.ai-calc .ai-table-wrap{width:100%}.stack{flex-direction:column;gap:12px;display:flex}.stack p{margin:0}.stack-field{flex-direction:column;gap:4px;font-size:13px;display:flex}.btn.google{border-color:var(--line-strong);padding:8px 12px}.or{text-align:center;color:var(--muted);font-size:12px}.ok-note{color:#175c34;background:#e8f6ee;border-radius:8px;padding:8px 10px}.pro-list{margin:0;padding-left:18px}.plans{grid-template-columns:1fr 1fr;gap:8px;display:grid}.plan{border:1px solid var(--line-strong);cursor:pointer;border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.plan.on{border-color:var(--cobalt);background:var(--cobalt-soft)}.plan input{opacity:0;pointer-events:none;position:absolute}.plan-name{font-weight:600}.plan-price{font-variant-numeric:tabular-nums;font-size:20px;font-weight:600}.pay-box{border:1px solid var(--line);border-radius:10px;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.pay-box p{margin:4px 0 0}.qr{object-fit:contain;border-radius:6px;flex-shrink:0;width:120px;height:120px}.modal.wide{width:min(860px,100vw - 32px)}.seg{background:var(--panel);border:1px solid var(--line);border-radius:8px;align-self:flex-start;gap:2px;padding:2px;display:inline-flex}.seg button{background:0 0;border:0;border-radius:6px;padding:5px 12px}.seg button.on{background:var(--paper);font-weight:500;box-shadow:0 1px 2px #18212b1a}.dock-item{touch-action:pan-x}.drag-ghost{z-index:500;pointer-events:none;opacity:.85;filter:drop-shadow(0 6px 10px #18212b4d);width:64px;height:64px;position:fixed;top:0;left:0}.drag-ghost svg{width:64px;height:64px}.term-keys{padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));background:#151c23;flex-shrink:0;gap:6px;display:none;overflow-x:auto}.term-keys button{color:#dfe8ef;min-width:44px;height:36px;font-family:var(--mono);background:#26313c;border:1px solid #3a4652;border-radius:6px;flex-shrink:0;padding:0 10px;font-size:13px}.term-keys button.enter{background:var(--cobalt);border-color:var(--cobalt);margin-left:auto}@media (pointer:coarse){.term-keys{display:flex}.terminal-input,.field input,.field select,.row3 input{font-size:16px}.tool{width:42px;height:40px}.link-hit{stroke-width:26px}}@media (max-width:1100px){.dock{grid-template-columns:auto minmax(0,1fr) minmax(200px,24%) auto}.simpanel{width:320px}.aipanel{width:360px}.devwin{max-width:calc(100vw - 24px);max-height:calc(100% - 16px)}}@media (max-width:760px){.app{grid-template-rows:auto 1fr auto}.topbar{height:calc(48px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);padding-left:max(10px, env(safe-area-inset-left,0px));padding-right:max(10px, env(safe-area-inset-right,0px));gap:4px}.brand-name{font-size:14px}.menu-btn{padding:6px 7px}.menu-pop{left:8px;right:8px;top:calc(52px + env(safe-area-inset-top,0px));min-width:0;position:fixed}.menu-pop .menu-example{width:auto}.main{flex-direction:column}.simpanel{border-left:0;border-top:1px solid var(--line);order:2;width:auto;height:42%}.sim-head{padding:6px 14px 2px}.sim-head h2{font-size:14px}.simpanel .speed{display:none}.sim-controls .btn{padding:4px 10px}.sim-filters{padding:6px 14px}.chip{padding:1px 8px}.aipanel{z-index:140;width:auto;padding-top:env(safe-area-inset-top,0px);border:0;position:fixed;inset:0}.topbar-btn span:not(.plan-badge){display:none}.topbar-btn{padding:0 8px}.plans{grid-template-columns:1fr}.pay-box{flex-direction:column}.palette{top:8px;right:max(8px, env(safe-area-inset-right,0px))}.dock{height:auto;padding-bottom:env(safe-area-inset-bottom,0px);grid-template-columns:1fr;grid-template-areas:"picker""strip""mode";display:grid}.dock-picker{width:auto;padding:6px max(8px, env(safe-area-inset-left,0px));border-right:0;border-bottom:1px solid var(--line);flex-direction:row;grid-area:picker;align-items:center;gap:6px;overflow-x:auto}.dock-tops{flex-shrink:0;display:flex}.dock-top{white-space:nowrap;flex-direction:row;gap:4px;padding:3px 8px 3px 4px}.dock-top svg{width:26px;height:26px}.dock-top span{display:none}.dock-top{padding:3px 6px}.dock-subs{border-top:0;border-left:1px solid var(--line);flex-shrink:0;padding-top:0;padding-left:6px}.dock-sub{white-space:nowrap;padding:4px 8px}.dock-strip-wrap{grid-area:strip}.dock-strip{padding:6px max(8px, env(safe-area-inset-left,0px)) 6px}.dock-item,.dock-item.cable{width:80px}.dock-item svg{width:40px;height:40px}.cable-swatch{height:40px}.dock-caption,.scenarios{display:none}.modebox{width:auto;padding:6px max(8px, env(safe-area-inset-left,0px));border-left:0;border-top:1px solid var(--line);flex-direction:row;grid-area:mode;align-items:center}.modebox-time .muted{display:none}.modebox-time .clock{font-size:13px}.modebox-actions{display:flex}.modebox-actions .btn{gap:0;padding:6px 8px;font-size:0}.modebox-actions .btn svg{width:18px;height:18px}.modebox-tabs{margin:0 0 0 auto;display:flex}.modebox-tabs button{flex-direction:row;gap:4px;padding:6px 10px}.devwin{resize:none;min-width:0;max-width:none;min-height:0;max-height:none;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);border:0;border-radius:0;position:fixed;z-index:150!important;width:100%!important;height:100%!important;top:0!important;left:0!important}.devwin-title{cursor:default;padding:8px 8px 8px 12px}.devwin-tabs{overflow-x:auto}.config{flex-direction:column}.config-nav{border-right:0;border-bottom:1px solid var(--line);width:auto;max-height:132px}.field{grid-template-columns:1fr}.field-err{grid-column:1}.field input:not([type]),.field select,.row3 input{width:100%}.btn-row{margin-left:0}.row3{grid-template-columns:1fr}.inspect-win{width:auto;right:8px;left:8px!important}.port-picker{width:auto;bottom:8px;right:8px;top:auto!important;left:8px!important}.toast{bottom:calc(190px + env(safe-area-inset-bottom,0px))}.tooltip{display:none}}
