@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-latin-700-normal-7sUh57Bg.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-700-normal-CNHXzs6v.woff)format("woff")}@layer reset{*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}}@layer tokens{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--surface-paper:var(--lightningcss-light,#edf0f2)var(--lightningcss-dark,#12171c);--surface-panel:var(--lightningcss-light,#fbfcfd)var(--lightningcss-dark,#191f26);--surface-raised:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1f262e);--surface-sunken:var(--lightningcss-light,#f0f3f5)var(--lightningcss-dark,#151b21);--surface-band:var(--lightningcss-light,#f2f5f7)var(--lightningcss-dark,#1c232b);--surface-input:var(--lightningcss-light,#fff)var(--lightningcss-dark,#12171c);--surface-hover:var(--lightningcss-light,#f0f4f7)var(--lightningcss-dark,#212a33);--surface-selected:var(--lightningcss-light,#e7eff6)var(--lightningcss-dark,#1d3446);--surface-drop-hover:var(--lightningcss-light,#f2f7fb)var(--lightningcss-dark,#1b2c3a);--surface-scrim:var(--lightningcss-light,#22303c59)var(--lightningcss-dark,#0009);--ink-base:var(--lightningcss-light,#22303c)var(--lightningcss-dark,#dfe6ec);--ink-soft:var(--lightningcss-light,#5b6b7a)var(--lightningcss-dark,#93a2b0);--ink-inverse:var(--lightningcss-light,#fff)var(--lightningcss-dark,#12171c);--ink-hover:var(--lightningcss-light,#33434f)var(--lightningcss-dark,#cbd5dd);--line-base:var(--lightningcss-light,#d4dae0)var(--lightningcss-dark,#2b343d);--line-strong:var(--lightningcss-light,#b9c2ca)var(--lightningcss-dark,#3c4854);--line-subtle:var(--lightningcss-light,#eaeef1)var(--lightningcss-dark,#232b33);--line-danger:var(--lightningcss-light,#e3c4c1)var(--lightningcss-dark,#5c332f);--line-dot-grid:var(--lightningcss-light,#c9d1d8)var(--lightningcss-dark,#262f38);--line-port-ring:var(--lightningcss-light,#c2cbd3)var(--lightningcss-dark,#3c4854);--wire-direct:var(--lightningcss-light,#3e7cb1)var(--lightningcss-dark,#6ba6d8);--wire-transform:var(--lightningcss-light,#c77d2e)var(--lightningcss-dark,#dfa156);--wire-constant:var(--lightningcss-light,#7a5ea8)var(--lightningcss-dark,#a68ad0);--wire-expression:var(--lightningcss-light,#2e8b74)var(--lightningcss-dark,#55b39a);--wire-merge:var(--lightningcss-light,#a8557e)var(--lightningcss-dark,#d187ab);--wire-template:var(--wire-merge);--wire-join:var(--wire-transform);--wire-valuemap:var(--lightningcss-light,#4f7a3c)var(--lightningcss-dark,#86b46e);--corr:var(--lightningcss-light,#8895a2)var(--lightningcss-dark,#7f8d9b);--danger:var(--lightningcss-light,#b54a44)var(--lightningcss-dark,#e0837c);--danger-surface:var(--lightningcss-light,#f9efee)var(--lightningcss-dark,#2a1b1a);--danger-surface-strong:var(--lightningcss-light,#fbf1f0)var(--lightningcss-dark,#2a1b1a);--warn-surface:var(--lightningcss-light,#f8f2e9)var(--lightningcss-dark,#2b2418);--merge-surface:var(--lightningcss-light,#f7f1f4)var(--lightningcss-dark,#2a1f26);--focus:var(--lightningcss-light,#3e7cb1)var(--lightningcss-dark,#6ba6d8);--solid-bg:var(--lightningcss-light,#22303c)var(--lightningcss-dark,#6ba6d8);--solid-bg-hover:var(--lightningcss-light,#33434f)var(--lightningcss-dark,#7cb3e0);--solid-ink:var(--lightningcss-light,#fff)var(--lightningcss-dark,#0d1216);--toast-bg:var(--lightningcss-light,#22303c)var(--lightningcss-dark,#1f262e);--toast-ink:var(--lightningcss-light,#fff)var(--lightningcss-dark,#dfe6ec);--toast-line:var(--lightningcss-light,#0000)var(--lightningcss-dark,#3c4854);--kind-openapi:var(--wire-direct);--kind-asyncapi:var(--wire-constant);--kind-schema:var(--ink-soft);--font-sans:"Space Grotesk Variable", "Space Grotesk", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--radius:8px;--radius-sm:4px;--radius-md:6px;--radius-lg:12px;--radius-pill:20px;--shadow-modal:0 18px 50px var(--lightningcss-light,#22303c40)var(--lightningcss-dark,#0000008c);--shadow-card:0 2px 6px var(--lightningcss-light,#22303c14)var(--lightningcss-dark,#0006);--shadow-chip:0 1px 3px var(--lightningcss-light,#22303c1f)var(--lightningcss-dark,#00000073);--panel-width:340px;--attr-pad-x:14px;--indent-step:14px;--z-sticky:2;--z-canvas:5;--z-overlay:50;--z-toast:60;--z-error:70;font-size:15px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}}@layer base{body{font-family:var(--font-sans);background:var(--surface-paper);color:var(--ink-base);flex-direction:column;display:flex;overflow:hidden}#root{flex-direction:column;height:100%;min-height:0;display:flex}code{font-family:var(--font-mono)}}@layer layout{.spacer{flex:1}.rule{background:var(--line-base);flex:none;align-self:stretch;width:1px}header{background:var(--surface-panel);border-bottom:1px solid var(--line-base);flex:none;align-items:center;gap:14px;padding:10px 18px;display:flex}header h1{letter-spacing:.01em;white-space:nowrap;flex:none;font-size:.92rem;font-weight:700}.hdr-title{flex-direction:column;flex:0 auto;gap:1px;min-width:0;display:flex;overflow:hidden}.hdr-title-crumb{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:.6rem;font-weight:600;text-decoration:none;overflow:hidden}a.hdr-title-crumb:hover{color:var(--ink-base);text-decoration:underline}.hdr-title-main{white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:700;overflow:hidden}.hdr-actions{flex:none;gap:8px;display:flex}.hdr-actions button{white-space:nowrap}.hdr-session{align-items:center;gap:8px;margin-left:16px;display:flex}.hdr-session-name{font-size:.8rem;font-weight:600}main{flex:1;min-height:0;display:flex;position:relative}.panel{flex:0 0 var(--panel-width);background:var(--surface-panel);border-right:1px solid var(--line-base);flex-direction:column;min-height:0;display:flex}.panel.right{border-right:none;border-left:1px solid var(--line-base)}.attr-scroll{flex:1;padding:6px 0 40px;position:relative;overflow:hidden auto}.canvas-gap{background-image:radial-gradient(var(--line-dot-grid) 1px, transparent 1px);background-size:18px 18px;flex:1;min-width:120px;position:relative}.canvas-hint{color:var(--ink-soft);text-align:center;pointer-events:none;justify-content:center;align-items:center;padding:20px;font-size:.8rem;display:flex;position:absolute;inset:0}#wires{width:100%;height:100%;z-index:var(--z-canvas);pointer-events:none;position:absolute;inset:0;overflow:visible}footer{background:var(--surface-panel);border-top:1px solid var(--line-base);color:var(--ink-soft);flex-wrap:wrap;flex:none;align-items:center;gap:8px 12px;padding:8px 18px;font-size:.75rem;display:flex}footer .stat b{color:var(--ink-base);font-family:var(--font-mono);font-variant-numeric:tabular-nums}footer .stat.warn{color:var(--danger);border:1px solid var(--line-danger);border-radius:var(--radius-pill);background:0 0;align-items:center;gap:5px;padding:2px 10px 2px 8px;font-family:inherit;font-size:.75rem;font-weight:600;display:inline-flex}footer .stat.warn b{color:var(--danger);font-variant-numeric:tabular-nums}footer .stat.warn:hover{background:var(--danger-surface);border-color:var(--danger)}header h1 a{color:inherit;align-items:center;gap:8px;text-decoration:none;display:inline-flex}header h1 a:hover{color:var(--wire-direct)}.hdr-mark{flex:none}.hdr-mark-port{fill:var(--ink-base)}.hdr-mark-wire{stroke:var(--wire-direct)}main.page{display:block;overflow-y:auto}.page-inner{flex-direction:column;gap:18px;max-width:760px;margin:0 auto;padding:28px 18px 60px;display:flex}.board-scroll{background:var(--surface-paper);display:block;overflow:auto}.board{width:calc(var(--board-w) * 1px);height:calc(var(--board-h) * 1px);background-image:radial-gradient(var(--line-dot-grid) 1px, transparent 1px);background-size:18px 18px;position:relative}.board-hint{text-align:center;max-width:380px;color:var(--ink-soft);z-index:var(--z-sticky);flex-direction:column;align-items:center;gap:12px;font-size:.82rem;line-height:1.5;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.board-hint-title{color:var(--ink-base);font-size:.95rem;font-weight:700}.board-hint-steps{text-align:left;pointer-events:none;flex-direction:column;align-items:flex-start;gap:7px;font-size:.78rem;display:flex}.board-hint-steps li{align-items:center;gap:8px;display:flex}.board-hint-step-n{border:1px solid var(--line-strong);width:17px;height:17px;color:var(--ink-soft);font-family:var(--font-mono);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.6rem;font-weight:600;display:inline-flex}}@layer components{button{border:1px solid var(--line-base);background:var(--surface-panel);color:var(--ink-base);border-radius:var(--radius);cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:7px 13px;font-family:inherit;font-size:.8rem;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}button:hover{background:var(--surface-sunken);border-color:var(--line-strong)}button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}button.primary{background:var(--solid-bg);color:var(--solid-ink);border-color:var(--solid-bg)}button.primary:hover{background:var(--solid-bg-hover);border-color:var(--solid-bg-hover)}button.ghost{color:var(--ink-soft);border-color:#0000}button.ghost:hover{background:var(--surface-paper);color:var(--ink-base)}button.danger{color:var(--danger);border-color:var(--line-danger)}button.danger:hover{background:var(--danger-surface)}button:disabled{opacity:.45;cursor:default}.dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px;display:inline-block}.dot--in{background:var(--wire-expression)}.dot--out{background:var(--wire-direct)}.dot--empty{border:1.5px solid var(--line-strong);background:0 0}.avatar{object-fit:cover;border-radius:50%;flex:none;width:26px;height:26px}.avatar--fallback{background:var(--solid-bg);color:var(--solid-ink);justify-content:center;align-items:center;font-size:.65rem;font-weight:700;display:inline-flex}.panel-head{border-bottom:1px solid var(--line-base);flex:none;padding:10px 14px 8px}.panel-head--bare{border:none;padding:0 0 4px}.panel-head .row1{align-items:baseline;gap:8px;display:flex}.panel-head .side-label{font-family:var(--font-mono);letter-spacing:.12em;color:var(--ink-soft);text-transform:uppercase;font-size:.62rem;font-weight:600}.panel-head .api-name{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:700;overflow:hidden}.panel-head .api-kind,.doc-choices .api-kind,.node-docs .api-kind{font-family:var(--font-mono);color:var(--ink-inverse);border-radius:var(--radius-sm);flex:none;margin-left:auto;padding:1px 6px;font-size:.65rem}.doc-choices .api-kind,.node-docs .api-kind{margin-left:0}.kind-openapi{background:var(--kind-openapi)}.kind-asyncapi{background:var(--kind-asyncapi)}.kind-schema{background:var(--kind-schema)}.panel-tools{gap:6px;margin-top:8px;display:flex}.panel-tools input[type=search]{min-width:0;font-family:var(--font-mono);border:1px solid var(--line-base);border-radius:var(--radius-md);background:var(--surface-input);color:var(--ink-base);flex:1;padding:5px 8px;font-size:.72rem}.panel-tools input:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.panel-tools button{white-space:nowrap;flex:none}.doc-head{background:var(--surface-band);border-top:1px solid var(--line-base);border-bottom:1px solid var(--line-base);align-items:center;gap:8px;padding:9px 14px 7px;font-size:.82rem;font-weight:700;display:flex}.doc-head:first-child{border-top:none}.doc-head .api-kind{margin-left:0}.doc-head .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.doc-head button{padding:1px 7px;font-size:.72rem}.group-head{text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;color:var(--ink-base);background:var(--surface-panel);z-index:var(--z-sticky);border:none;border-bottom:1px solid var(--line-subtle);border-radius:0;justify-content:flex-start;align-items:center;gap:6px;padding:7px 14px 5px;font-size:.8rem;font-weight:600;display:flex;position:sticky;top:0}.group-head:hover{background:var(--surface-panel);border-color:#0000}.group-head .chev{color:var(--ink-soft);font-size:.6rem;transition:transform .12s}.group-head.collapsed .chev{transform:rotate(-90deg)}.group-head .count{font-family:var(--font-mono);color:var(--ink-soft);margin-left:auto;font-size:.65rem}.attr-row{position:relative}.attr{padding:4px var(--attr-pad-x);cursor:pointer;font-family:var(--font-mono);padding-left:calc(var(--attr-pad-x) + var(--depth,0) * var(--indent-step));text-align:left;color:inherit;width:100%;padding-right:calc(var(--attr-pad-x) + 28px);background:0 0;border-width:0 0 0 3px;border-left-style:solid;border-left-color:#0000;border-radius:0;justify-content:flex-start;align-items:center;gap:7px;font-size:.74rem;font-weight:400;display:flex}.attr:hover{background:var(--surface-hover)}.attr:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.attr .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attr .dim{color:var(--ink-soft)}.attr .type{border-radius:var(--radius-sm);border:1px solid var(--line-subtle);color:var(--ink-soft);background:0 0;flex:none;margin-left:auto;padding:1px 5px;font-size:.62rem}.attr.pending{background:var(--surface-selected);border-left-color:var(--wire-direct)}.attr .port{border:2px solid var(--line-port-ring);background:var(--surface-raised);opacity:.55;border-radius:50%;flex:none;width:8px;height:8px}.attr.mapped .port{opacity:1;border-color:currentColor}.attr--linked{background:var(--surface-hover)}.attr--linked .name{font-weight:600}.attr--linked .port{opacity:1;transform:scale(1.4)}.attr .req{color:var(--danger);margin-left:1px;font-weight:700}.attr .gtd{color:var(--ink-soft);border:1px solid var(--line-subtle);border-radius:var(--radius-sm);background:0 0;flex:none;align-items:center;padding:2px 4px;font-size:.6rem;line-height:1;display:inline-flex}.attr.req-missing{border-left-color:var(--danger)}.attr.req-missing .name,.attr.req-missing .req{color:var(--danger)}.attr.req-missing .port{border-color:var(--danger);opacity:.9}.attr-row .static-btn{right:var(--attr-pad-x);opacity:0;pointer-events:none;font-family:var(--font-mono);border-radius:var(--radius-sm);border:1px solid var(--line-base);background:var(--surface-raised);color:var(--ink-soft);cursor:pointer;padding:2px 6px;font-size:.68rem;line-height:1;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.attr-row:hover .static-btn,.attr-row:focus-within .static-btn{opacity:1;pointer-events:auto}.attr-row .static-btn:hover{border-color:var(--wire-constant);color:var(--wire-constant)}.attr.attr--rule-direct .port{border-color:var(--wire-direct);background:var(--wire-direct)}.attr.attr--rule-transform .port{border-color:var(--wire-transform);background:var(--wire-transform)}.attr.attr--rule-valueMap .port{border-color:var(--wire-valuemap);background:var(--wire-valuemap)}.attr.attr--rule-constant .port{border-color:var(--wire-constant);background:var(--wire-constant)}.attr.attr--rule-expression .port{border-color:var(--wire-expression);background:var(--wire-expression)}.attr.attr--rule-template .port{border-color:var(--wire-template);background:var(--wire-template)}.attr.attr--rule-join .port{border-color:var(--wire-join);background:var(--wire-join)}.attr.attr--correlated .port{border-color:var(--corr);background:var(--surface-raised);opacity:1}.spec-input{flex-direction:column;flex:1;gap:10px;padding:16px 14px;display:flex;overflow-y:auto}.spec-input p.lead{color:var(--ink-soft);font-size:.8rem;line-height:1.45}.drop{border:1.5px dashed var(--line-strong);border-radius:var(--radius);text-align:center;width:100%;color:var(--ink-soft);cursor:pointer;background:0 0;padding:18px 12px;font-size:.78rem;font-weight:400;transition:border-color .12s,background .12s;display:block}.drop-formats{font-size:.65rem}.drop:hover,.drop.over{border-color:var(--wire-direct);background:var(--surface-drop-hover);color:var(--ink-base)}.spec-input textarea{font-family:var(--font-mono);resize:vertical;border:1px solid var(--line-base);border-radius:var(--radius);background:var(--surface-input);min-height:150px;color:var(--ink-base);padding:10px;font-size:.7rem;line-height:1.5}.spec-input textarea:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.spec-input .btnrow{flex-wrap:wrap;gap:8px;display:flex}.parse-error{color:var(--danger);background:var(--danger-surface);border:1px solid var(--line-danger);border-radius:var(--radius-md);white-space:pre-wrap;font-size:.72rem;font-family:var(--font-mono);padding:8px 10px}.add-doc-bar{border-top:1px solid var(--line-base);flex:none;padding:8px 14px}.add-doc-bar button{width:100%}.overlay{background:var(--surface-scrim);z-index:var(--z-overlay);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface-panel);border-radius:var(--radius-lg);width:min(540px,92vw);box-shadow:var(--shadow-modal);flex-direction:column;gap:14px;max-height:88vh;padding:20px;display:flex;overflow-y:auto}.modal h2{font-size:.95rem}.modal--compact{width:min(430px,92vw)}.ask-body{color:var(--ink-soft);white-space:pre-wrap;font-size:.78rem;line-height:1.5;font-family:var(--font-mono)}.provider-list{flex-direction:column;gap:8px;display:flex}.provider-option{justify-content:flex-start;padding:11px 13px}.map-route{font-family:var(--font-mono);background:var(--surface-sunken);border-radius:var(--radius);gap:8px;padding:10px 12px;font-size:.72rem;display:flex}.map-route--stack{flex-direction:column;align-items:stretch;gap:6px}.map-route--inline{align-items:center}.flow-divider{color:var(--ink-soft);justify-content:center;font-size:.7rem;display:flex}.map-route .ep{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.map-route .ep small{color:var(--ink-soft);font-size:.62rem;display:block}.src-stack{flex-direction:column;gap:6px;display:flex}.src-row{font-family:var(--font-mono);background:var(--surface-sunken);border-radius:var(--radius);align-items:center;gap:8px;padding:8px 12px;font-size:.72rem;display:flex}.src-row .ep{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.src-row .ep small{color:var(--ink-soft);font-size:.62rem;display:block}.src-row button{flex:none;padding:2px 8px;font-size:.7rem}.src-row--empty .ep{color:var(--ink-soft)}.funnel-note{color:var(--ink-soft);border-left:3px solid var(--wire-merge);background:var(--merge-surface);border-radius:0 var(--radius-md) var(--radius-md) 0;padding:4px 10px;font-size:.68rem;line-height:1.45}.funnel-note--warn{border-left-color:var(--wire-transform);background:var(--warn-surface)}.funnel-note--danger{border-left-color:var(--danger);background:var(--danger-surface-strong)}.modal .actions{justify-content:flex-end;gap:8px;display:flex}.modal .actions .danger{margin-right:auto}.hint{color:var(--ink-soft);font-size:.68rem;line-height:1.4}.field{flex-direction:column;gap:5px;display:flex}fieldset.field{border:0;margin:0;padding:0}.field label,.field legend{color:var(--ink-soft);font-size:.72rem;font-weight:600}.field select,.field input[type=text],.field textarea{font-family:var(--font-mono);border:1px solid var(--line-base);border-radius:var(--radius-md);background:var(--surface-input);color:var(--ink-base);padding:8px;font-size:.75rem}.field textarea{resize:vertical;min-height:64px}.field select:focus-visible,.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.value-map{flex-direction:column;gap:6px;max-height:40vh;display:flex;overflow-y:auto}.value-row{border:1px solid var(--line-base);border-radius:var(--radius-md);background:var(--surface-raised);grid-template-columns:minmax(0,9rem) minmax(0,1fr);align-items:start;gap:8px;padding:6px;display:grid}.value-row--orphan{border-color:var(--wire-transform)}.value-target{font-family:var(--font-mono);overflow-wrap:anywhere;flex-direction:column;gap:2px;padding-top:6px;font-size:.75rem;display:flex}.value-row .value-target small{font-family:var(--font-sans);color:var(--wire-transform);font-size:.62rem}.tokens{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.token{font-family:var(--font-mono);border-radius:var(--radius-pill);border:1px solid var(--line-base);background:var(--surface-input);overflow-wrap:anywhere;align-items:center;gap:2px;padding:2px 4px 2px 7px;font-size:.7rem;display:inline-flex}.token em{color:var(--ink-soft)}.token .ghost{padding:0 3px;font-size:.62rem;line-height:1}.value-row .token-input{flex:7rem;min-width:6rem;padding:4px 7px}.token-add{white-space:nowrap;font-size:.65rem}.value-map-foot{flex-wrap:wrap;align-items:center;gap:8px;font-size:.72rem;display:flex}.value-map-foot select{font-size:.72rem}.check{cursor:pointer;align-items:center;gap:5px;display:inline-flex}.rule-types{flex-wrap:wrap;gap:6px;display:flex}.rule-pill{border-radius:var(--radius-pill);border:1.5px solid var(--line-base);background:var(--surface-raised);cursor:pointer;padding:6px 11px;font-size:.72rem;font-weight:600}.rule-pill[data-active=true]{color:var(--ink-inverse);border-color:#0000}.rule-pill[data-rt=direct][data-active=true]{background:var(--wire-direct)}.rule-pill[data-rt=transform][data-active=true]{background:var(--wire-transform)}.rule-pill[data-rt=valueMap][data-active=true]{background:var(--wire-valuemap)}.rule-pill[data-rt=constant][data-active=true]{background:var(--wire-constant)}.rule-pill[data-rt=expression][data-active=true]{background:var(--wire-expression)}.rule-pill[data-rt=template][data-active=true]{background:var(--wire-template)}.rule-pill[data-rt=join][data-active=true]{background:var(--wire-join)}#wires path.wire{fill:none;pointer-events:stroke;cursor:pointer}#wires .wire-hits path.wire-hit{fill:none;stroke:#0000;stroke-width:12px;pointer-events:stroke;cursor:pointer}#wires text.wire{fill:var(--ink-inverse);font-family:var(--font-mono);font-size:9px;font-weight:700}#wires text.wire--correlation{font-size:8px}#wires g:has(>polygon)>text.wire{font-size:8px}#wires g.wire{pointer-events:all;cursor:pointer}#wires .wire--direct{stroke:var(--wire-direct);fill:var(--wire-direct)}#wires .wire--transform{stroke:var(--wire-transform);fill:var(--wire-transform)}#wires .wire--valueMap{stroke:var(--wire-valuemap);fill:var(--wire-valuemap)}#wires .wire--constant{stroke:var(--wire-constant);fill:var(--wire-constant)}#wires .wire--expression{stroke:var(--wire-expression);fill:var(--wire-expression)}#wires .wire--template{stroke:var(--wire-template);fill:var(--wire-template)}#wires .wire--join{stroke:var(--wire-join);fill:var(--wire-join)}#wires .wire--correlation{stroke:var(--corr);fill:var(--corr);stroke-dasharray:5 4}#wires .wire{stroke-width:2.5px}#wires .wire--thin{stroke-width:2px}#wires .wire--thick{stroke-width:3px}#wires .wire-group{opacity:.4;transition:opacity .12s ease-out}#wires .wire-group--correlation{opacity:.35}#wires .wire-group--clipped{opacity:.2}#wires .wire-group--correlation.wire-group--clipped{opacity:.18}#wires .wire-group--active{opacity:1}@media (prefers-reduced-motion:reduce){#wires .wire-group{transition:none}}#toast{background:var(--toast-bg);color:var(--toast-ink);border:1px solid var(--toast-line);border-radius:var(--radius-pill);opacity:0;pointer-events:none;z-index:var(--z-toast);text-align:center;max-width:80vw;padding:8px 16px;font-size:.75rem;transition:opacity .2s,transform .2s;position:fixed;bottom:64px;left:50%;transform:translate(-50%)translateY(10px)}#toast.show{opacity:1;transform:translate(-50%)translateY(0)}.legend{color:var(--ink-soft);flex-wrap:wrap;gap:6px 12px;font-size:.72rem;display:flex}.legend span{align-items:center;gap:5px;display:flex}.swatch{border-radius:2px;width:14px;height:3px;display:inline-block}.swatch--direct{background:var(--wire-direct)}.swatch--transform{background:var(--wire-transform)}.swatch--valueMap{background:var(--wire-valuemap)}.swatch--constant{background:var(--wire-constant)}.swatch--expression{background:var(--wire-expression)}.swatch--template{background:var(--wire-template)}.swatch--correlation{background:repeating-linear-gradient(90deg, var(--corr) 0 3px, transparent 3px 6px)}.node-card{left:calc(var(--node-x) * 1px);top:calc(var(--node-y) * 1px);width:calc(var(--node-w) * 1px);height:calc(var(--node-h) * 1px);background:var(--surface-raised);border:1px solid var(--line-base);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);z-index:var(--z-canvas);-webkit-user-select:none;user-select:none;touch-action:none;cursor:grab;flex-direction:column;gap:4px;padding:8px 10px;display:flex;position:absolute}.node-card:active{cursor:grabbing}.node-card.linking{border-color:var(--wire-direct);box-shadow:0 0 0 2px var(--surface-selected)}.node-card.link-target{cursor:pointer;border-style:dashed}.node-card.link-target:hover{border-color:var(--wire-direct);background:var(--surface-drop-hover)}.node-card-head{align-items:center;min-width:0;display:flex}.node-name,.linklike{all:unset;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:700;overflow:hidden}.node-name:focus-visible,.linklike:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.node-rename{border:1px solid var(--line-base);border-radius:var(--radius-sm);background:var(--surface-input);width:100%;color:var(--ink-base);padding:2px 6px;font-family:inherit;font-size:.9rem;font-weight:700}.node-card-docs{font-family:var(--font-mono);color:var(--ink-soft);align-items:center;gap:10px;font-size:.66rem;display:flex}.node-card-docs span{align-items:center;gap:4px;min-width:0;display:inline-flex}.node-card-actions{opacity:.3;align-items:center;gap:2px;margin-top:auto;transition:opacity .12s;display:flex}.node-card:hover .node-card-actions,.node-card:focus-within .node-card-actions{opacity:1}.node-card-actions button{padding:4px 7px;font-size:.7rem}.node-port{background:var(--surface-raised);border:2px solid var(--line-strong);width:18px;height:18px;color:var(--ink-soft);border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:-9px;transform:translateY(-50%)}.node-port:hover{border-color:var(--wire-direct);color:var(--wire-direct);background:var(--surface-raised)}.node-card.linking .node-port{border-color:var(--wire-direct);background:var(--wire-direct);color:var(--ink-inverse)}.node-card.link-target .node-port{border-style:dashed}button.icon-only{padding:4px 6px}.edges{pointer-events:none;position:absolute;inset:0;overflow:visible}.edge{fill:none;stroke:var(--wire-direct);stroke-width:2px;opacity:.75}.edge-chip{left:calc(var(--edge-x) * 1px);top:calc(var(--edge-y) * 1px);background:var(--surface-raised);border:1px solid var(--line-base);border-radius:var(--radius-pill);box-shadow:var(--shadow-chip);z-index:var(--z-canvas);white-space:nowrap;align-items:center;gap:2px;padding:2px 4px 2px 8px;font-size:.7rem;display:flex;position:absolute;transform:translate(-50%,-50%)}.edge-chip a{color:var(--ink-base);font-weight:600;text-decoration:none}.edge-chip a:hover{color:var(--wire-direct)}.inline-form{gap:8px;display:flex}.inline-form input{border:1px solid var(--line-base);border-radius:var(--radius);background:var(--surface-input);color:var(--ink-base);flex:1;padding:8px 12px;font-family:inherit;font-size:.85rem}.inline-form input:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.card-list{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;list-style:none;display:grid}.card-list li{background:var(--surface-panel);border:1px solid var(--line-base);border-radius:var(--radius);align-items:stretch;gap:10px;padding:10px 8px 10px 12px;display:flex}.card-list li:hover{border-color:var(--line-strong)}.card-list-main{color:inherit;flex-direction:column;flex:1;gap:4px;min-width:0;text-decoration:none;display:flex}.card-list-title{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:700;overflow:hidden}.card-list-meta{font-family:var(--font-mono);color:var(--ink-soft);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:2px 10px;font-size:.66rem;display:flex}.canvas-archetype{border:1px solid var(--line-subtle);border-radius:var(--radius-sm);background-color:var(--surface-input);background-image:radial-gradient(var(--line-dot-grid) .5px, transparent .5px);background-size:7px 7px;flex:none;align-self:center;width:62px;height:44px;display:block}.canvas-archetype .arch-node{fill:var(--ink-soft)}.canvas-archetype .arch-link{stroke:var(--wire-direct);stroke-width:.8px;opacity:.45}.canvas-archetype .arch-grid{stroke:var(--wire-direct);stroke-width:.8px;opacity:.22}.canvas-archetype .arch-frame{fill:none;stroke:var(--line-strong);stroke-width:1px;stroke-dasharray:3 3}.canvas-archetype .arch-node--faint{opacity:.38}.canvas-state{font-family:var(--font-mono);color:var(--ink-soft);align-items:center;gap:5px;font-size:.62rem;display:inline-flex}.canvas-state--dirty{color:var(--wire-direct)}.canvas-state--never{color:var(--wire-transform)}.empty-state{color:var(--ink-soft);font-size:.82rem}.doc-picker{flex-direction:column;flex:1;gap:10px;padding:16px 14px;display:flex;overflow-y:auto}.doc-picker p.lead{color:var(--ink-soft);font-size:.8rem;line-height:1.45}.doc-choices{flex-direction:column;gap:6px;list-style:none;display:flex}.doc-choices button{flex-wrap:wrap;justify-content:flex-start;gap:6px;width:100%;padding:9px 12px;font-weight:400}.doc-choice-name{font-weight:700}.doc-choice-count{font-family:var(--font-mono);color:var(--ink-soft);margin-left:auto;font-size:.65rem}.doc-choices-empty{color:var(--ink-soft);font-size:.78rem;line-height:1.5}.node-docs{margin-bottom:14px}.node-docs h3{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:.78rem;display:flex}.node-docs ul{flex-direction:column;gap:4px;list-style:none;display:flex}.node-docs li{border:1px solid var(--line-subtle);border-radius:var(--radius-md);align-items:center;gap:8px;padding:6px 6px 6px 10px;font-size:.8rem;display:flex}.node-docs-empty{color:var(--ink-soft);font-size:.75rem}.browser{grid-template-columns:180px 1fr;gap:12px;height:320px;margin-bottom:14px;display:grid}.browser-orgs{border:1px solid var(--line-base);border-radius:var(--radius);background:var(--surface-sunken);flex-direction:column;gap:2px;padding:6px;display:flex;overflow-y:auto}.browser-org{all:unset;cursor:pointer;border-radius:var(--radius-md);flex-direction:column;gap:1px;padding:7px 9px;display:flex}.browser-org:hover{background:var(--surface-hover)}.browser-org.selected{background:var(--surface-selected)}.browser-org:focus-visible,.browser-item:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.browser-org-name{font-size:.82rem;font-weight:700}.browser-org-kind{font-family:var(--font-mono);color:var(--ink-soft);font-size:.62rem}.browser-list{border:1px solid var(--line-base);border-radius:var(--radius);background:var(--surface-input);padding:6px;overflow-y:auto}.browser-list--flat{height:auto;max-height:260px;margin-bottom:14px}.browser-list ul{flex-direction:column;gap:2px;list-style:none;display:flex}.browser-item{all:unset;cursor:pointer;box-sizing:border-box;border-radius:var(--radius-md);grid-template-columns:1fr auto;gap:2px 10px;width:100%;padding:8px 10px;display:grid}.browser-item:hover{background:var(--surface-hover)}.browser-item.selected{background:var(--surface-selected)}.browser-item[disabled]{cursor:default;opacity:.45}.browser-item-name{font-size:.85rem;font-weight:700}.browser-item-meta,.browser-item-date{font-family:var(--font-mono);color:var(--ink-soft);font-size:.65rem}.browser-item-date{grid-area:1/2/span 2;align-self:center}.browser-message{color:var(--ink-soft);padding:10px;font-size:.8rem}.browser-message--error{color:var(--danger)}.route-loading{min-height:40vh;color:var(--ink-soft);opacity:0;flex:1;justify-content:center;align-items:center;font-size:.8rem;animation:.2s ease-out .3s forwards route-loading-in;display:flex}@keyframes route-loading-in{to{opacity:1}}@media (prefers-reduced-motion:reduce){.route-loading{opacity:1;transition:opacity 0s .3s;animation:none}}.error-overlay{z-index:var(--z-error);position:fixed}.error-overlay--fatal{background:var(--surface-scrim);justify-content:center;align-items:center;padding:20px;display:flex;inset:0}.error-overlay:not(.error-overlay--fatal){max-width:min(420px,100vw - 32px);bottom:16px;right:16px}.error-box{background:var(--surface-panel);border:1px solid var(--line-base);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);flex-direction:column;gap:12px;max-height:88vh;padding:18px;display:flex;overflow-y:auto}.error-overlay--fatal .error-box{width:min(560px,92vw)}.error-head{align-items:flex-start;gap:10px;display:flex}.error-icon{color:var(--danger);flex:none;margin-top:1px;font-size:1.1rem}.error-headings{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.error-title{font-size:.9rem;font-weight:700}.error-message{font-family:var(--font-mono);color:var(--ink-soft);overflow-wrap:anywhere;font-size:.74rem}.error-suppressed,.error-reassurance{color:var(--ink-soft);font-size:.75rem;line-height:1.5}.error-details{font-family:var(--font-mono);color:var(--ink-soft);background:var(--surface-raised);border:1px solid var(--line-base);border-radius:var(--radius-sm);white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;max-height:34vh;padding:10px;font-size:.68rem;line-height:1.5;overflow-y:auto}}@layer utilities{.not-found{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:40px;display:flex}.mono{font-family:var(--font-mono)}}@layer responsive{@media (prefers-reduced-motion:reduce){*{transition:none!important}}@media (width<=900px){.panel{flex-basis:44vw}}}
