@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-vietnamese-400-normal-B8B3d_DU.woff2) format("woff2"),url(/assets/barlow-vietnamese-400-normal-Dcxa7Lg7.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-ext-400-normal-DsA6LmuC.woff2) format("woff2"),url(/assets/barlow-latin-ext-400-normal-DGsTVCL_.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-400-normal-CtwdMZP0.woff2) format("woff2"),url(/assets/barlow-latin-400-normal-Gqj0RTbC.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-vietnamese-500-normal-Ds--_AhX.woff2) format("woff2"),url(/assets/barlow-vietnamese-500-normal-OcIDFxwj.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-ext-500-normal-D9Q9nrG3.woff2) format("woff2"),url(/assets/barlow-latin-ext-500-normal-B8S-Wk_i.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-500-normal-BRhHB0xN.woff2) format("woff2"),url(/assets/barlow-latin-500-normal-BAaAwKGi.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-vietnamese-600-normal-gKnznvH6.woff2) format("woff2"),url(/assets/barlow-vietnamese-600-normal--rM-LJkj.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-ext-600-normal-Brs4HSvV.woff2) format("woff2"),url(/assets/barlow-latin-ext-600-normal-DxfNEZIW.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-600-normal-DMnFtVx9.woff2) format("woff2"),url(/assets/barlow-latin-600-normal-DznpAvW9.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-6E49mAj2.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-fAytnyZo.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-D1u2T3o9.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-CUij3gnH.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-B9NQhHK3.woff2) format("woff2"),url(/assets/barlow-condensed-latin-700-normal-IaWpoxiT.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/barlow-condensed-vietnamese-800-normal-D2oojiIM.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-800-normal-CdnUq9wh.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/barlow-condensed-latin-ext-800-normal-YDFeh8Us.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-800-normal-Cc-50DQD.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/barlow-condensed-latin-800-normal-jAD-BpyZ.woff2) format("woff2"),url(/assets/barlow-condensed-latin-800-normal-BsAaU7jR.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #07090c;--panel: #10151b;--panel2: #151c24;--line: #232b35;--fg: #eef2f6;--mute: #8d99a8;--sel: #5ec8ff;--ok: #46d39a;--att: #ffc83a;--alto: #ff8a1f;--crit: #ff3347;--display: "Barlow Condensed", "Arial Narrow", sans-serif;--body: "Barlow", "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.4}.layout{height:100%;display:grid;grid-template-columns:minmax(0,1fr) 400px}.layout.solo{grid-template-columns:minmax(0,1fr)}.stage{position:relative;display:grid;place-items:center;padding:16px;min-width:0;min-height:0}.cabin{width:min(100%,calc((100vh - 32px)*1.6));height:auto;display:block;border-radius:18px;background:#0a0e13}.show-panel{position:absolute;top:20px;right:20px;opacity:.5}.show-panel:hover{opacity:1}.t-inst{font-family:var(--display);font-weight:800;fill:#fff;text-anchor:middle;letter-spacing:.01em}.t-norm{font-family:var(--display);font-weight:700;fill:#4f8f73;text-anchor:middle;letter-spacing:.04em}.t-cause{font-family:var(--body);font-weight:500;fill:#e1e7ee;text-anchor:middle}.t-chip{font-family:var(--display);font-weight:700;text-anchor:middle;font-variant-numeric:tabular-nums}.obj{transition:r .3s ease-out,cx .3s ease-out,cy .3s ease-out,fill .3s}@keyframes pulse{0%,to{opacity:.62}50%{opacity:1}}.p1{animation:pulse 2.4s ease-in-out infinite}.p2{animation:pulse 1.4s ease-in-out infinite}.p3{animation:pulse .7s ease-in-out infinite}.cabin.frozen .p1,.cabin.frozen .p2,.cabin.frozen .p3{animation:none}@media(prefers-reduced-motion:reduce){.p1,.p2,.p3{animation:none}}.panel{background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;gap:14px;padding:16px;overflow-y:auto;min-height:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.panel h1{font-family:var(--display);font-weight:800;font-size:26px;letter-spacing:.03em;text-transform:uppercase;margin:0}.group{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--line);min-width:0}.group.grow{flex:1;min-height:220px}.lbl{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--mute);font-weight:600}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row.between{justify-content:space-between}.seg{display:flex;flex-wrap:wrap;gap:6px}.muted{color:var(--mute)}.small{font-size:13px}.mono{font-family:var(--mono);font-size:12px;overflow-wrap:anywhere}.state{font-weight:600}button,select{font:inherit;color:var(--fg);background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:7px 12px;cursor:pointer;font-weight:500}select{width:100%}button:hover:not(:disabled){border-color:#3a4654}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,select:focus-visible{outline:2px solid var(--sel);outline-offset:2px}button[aria-pressed=true]{border-color:var(--sel);background:#12212b;color:#fff}button.primary:not(:disabled){background:var(--sel);border-color:var(--sel);color:#07090c;font-weight:600}button.ghost{background:transparent;font-size:13px;padding:5px 10px}.conn{display:flex;align-items:center;gap:8px;font-size:14px}.dot{width:10px;height:10px;border-radius:50%;background:var(--mute);flex:none}.dot.on{background:var(--ok)}.dot.off{background:var(--crit)}.dot.wait{background:var(--att)}.notice{font-size:13px;padding:8px 10px;border-radius:8px;border:1px solid var(--line)}.notice.error{border-color:#6b2630;background:#2a1116;color:#ffb3bc}.notice.ok{border-color:#22543f;background:#0f2219}.log{flex:1;margin:0;padding:10px;background:#0b1016;border:1px solid var(--line);border-radius:10px;font-family:var(--mono);font-size:11.5px;line-height:1.45;color:#9fb0c2;overflow:auto;min-height:160px;white-space:pre}.log .hl{color:#fff;background:#1b2a38}@media(max-width:900px){.layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;height:auto}.panel{border-left:0;border-top:1px solid var(--line)}.cabin{width:100%}}
