@import"https://fonts.googleapis.com/css2?family=Barlow:wght@700;800;900&family=Manrope:wght@400;500;600&family=JetBrains+Mono:wght@400;700&display=swap";:root{--navy-900:#12142B;--navy-800:#1A1F4A;--navy-700:#21295C;--navy-500:#3A4380;--navy-300:#6670A8;--fuchsia-300:#FABFE2;--fuchsia-500:#EB008B;--fuchsia-700:#C10072;--blue-300:#BFE4F6;--blue-500:#0094D9;--blue-700:#006FA3;--amber-300:#FCE7C0;--amber-500:#F6AE2D;--amber-700:#C58B24;--gray-900:#12142B;--gray-700:#454A6B;--gray-500:#7B7F99;--gray-300:#C6C9D9;--gray-100:#F1F2F7;--white:#FFFFFF;--surface-dark:var(--navy-700);--surface-darkest:var(--navy-900);--surface-light:var(--white);--surface-subtle:var(--gray-100);--text-primary:var(--gray-900);--text-secondary:var(--gray-700);--text-muted:var(--gray-500);--text-on-dark:var(--white);--text-on-dark-muted:var(--gray-300);--border-default:var(--gray-300);--border-on-dark:rgba(255,255,255,.16);--accent-primary:var(--fuchsia-500);--accent-primary-hover:var(--fuchsia-700);--accent-primary-tint:var(--fuchsia-300);--accent-secondary:var(--blue-500);--accent-secondary-hover:var(--blue-700);--accent-secondary-tint:var(--blue-300);--accent-emphasis:var(--amber-500);--accent-emphasis-tint:var(--amber-300);--accent-emphasis-dark:var(--amber-700)}:root{--font-display:"Barlow",system-ui,sans-serif;--font-body:"Manrope",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--fw-stat:900;--fw-h1:800;--fw-h2:700;--fw-h3:700;--fw-lead:500;--fw-body:400;--fw-label:700;--fw-mono:400;--fs-stat:64px;--fs-h1:44px;--fs-h2:32px;--fs-h3:22px;--fs-lead:19px;--fs-body:16px;--fs-caption:13px;--fs-mono:16px;--lh-tight:1.08;--lh-heading:1.2;--lh-body:1.55;--ls-label:.14em}:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(18,20,43,.08);--shadow-md:0 8px 24px rgba(18,20,43,.12);--shadow-lg:0 16px 48px rgba(18,20,43,.18);--ease-standard:cubic-bezier(.4,0,.2,1);--dur-fast:.12s;--dur-base:.2s}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--surface-subtle);font-family:var(--font-body);color:var(--text-primary);font-size:14px;line-height:var(--lh-body)}.eyebrow{font-family:var(--font-mono);font-weight:700;font-size:11px;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted)}.mono{font-family:var(--font-mono);font-size:13px;white-space:nowrap}.muted{color:var(--text-muted)}h2.page{font-family:var(--font-display);font-weight:800;font-size:28px;line-height:var(--lh-heading);margin:0}h3{font-family:var(--font-display);font-weight:700;font-size:18px;margin:0 0 var(--space-3)}.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body);font-weight:600;font-size:14px;border-radius:var(--radius-pill);padding:9px 18px;border:1px solid transparent;cursor:pointer;white-space:nowrap}.btn.primary{background:var(--accent-primary);color:#fff}.btn.secondary{background:var(--accent-secondary);color:#fff}.btn.ghost{background:#fff;color:var(--text-primary);border-color:var(--border-default)}.btn.sm{padding:6px 12px;font-size:13px}.btn[disabled]{opacity:.4;cursor:not-allowed}.tag{display:inline-block;font-family:var(--font-mono);font-weight:700;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:var(--radius-sm);white-space:nowrap}.tag.ok{background:#d7f2e3;color:#1d7a4c}.tag.no{background:var(--fuchsia-300);color:var(--fuchsia-700)}.tag.unk{background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-300)}.tag.info{background:var(--blue-300);color:var(--blue-700)}.tag.warn{background:var(--amber-300);color:var(--amber-700)}.tag.plain{background:var(--gray-100);color:var(--navy-700)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--space-4)}.field label{font-weight:600;font-size:13px;color:var(--text-secondary)}.field .hint{font-size:12px;color:var(--text-muted)}.input,select.input,textarea.input{font-family:var(--font-body);font-size:14px;color:var(--text-primary);background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-md);padding:9px 12px;width:100%}.input:focus{outline:2px solid var(--blue-300);border-color:var(--accent-secondary)}.input.error{border-color:var(--fuchsia-500)}textarea.input{resize:none;line-height:1.5}.card{background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-5)}.banner{border-radius:var(--radius-md);padding:12px 16px;font-size:13.5px}.banner.warn{background:var(--amber-300);color:#5c3f06;border:1px solid #EBC67E}.banner.err{background:#fde8f3;color:var(--fuchsia-700);border:1px solid var(--fuchsia-300)}.banner.dev{background:var(--navy-900);color:var(--text-on-dark)}.banner strong{font-weight:700}.side{width:232px;flex:none;background:var(--navy-700);color:var(--text-on-dark);display:flex;flex-direction:column;padding:var(--space-5) var(--space-3)}.side .logo{display:flex;align-items:center;gap:10px;padding:0 var(--space-3) var(--space-5)}.side .logo img{height:30px}.side .logo b{font-family:var(--font-display);font-weight:800;font-size:16px;line-height:1.05}.side .logo b small{display:block;font-family:var(--font-mono);font-weight:400;font-size:10px;letter-spacing:.12em;color:var(--text-on-dark-muted);text-transform:uppercase}.side a{display:flex;align-items:center;justify-content:space-between;color:var(--text-on-dark-muted);text-decoration:none;font-weight:500;padding:9px var(--space-3);border-radius:var(--radius-md);margin-bottom:2px}.side a.on{background:#ffffff1a;color:#fff;box-shadow:inset 3px 0 0 var(--accent-primary)}.side a.off{opacity:.45}.side a .count{background:var(--accent-primary);color:#fff;font-family:var(--font-mono);font-size:11px;font-weight:700;border-radius:var(--radius-pill);padding:1px 7px}.side a .soon{font-family:var(--font-mono);font-size:10px;border:1px solid var(--border-on-dark);border-radius:var(--radius-sm);padding:0 5px}.side .sep{border-top:1px solid var(--border-on-dark);margin:var(--space-3) var(--space-3)}.side .foot{margin-top:auto;padding:var(--space-3);font-size:12px;color:var(--text-on-dark-muted)}.side .foot .chan{display:flex;align-items:center;gap:8px;margin-bottom:6px;color:#fff;font-weight:600}.dot{width:8px;height:8px;border-radius:50%;background:var(--amber-500);display:inline-block}.dot.green{background:#2fb673}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:64px;flex:none;background:#fff;border-bottom:1px solid var(--border-default);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6)}.content{flex:1;overflow:auto;padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-5)}table.data{width:100%;border-collapse:collapse;background:#fff}table.data th{text-align:left;font-family:var(--font-mono);font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);padding:10px 14px;border-bottom:1px solid var(--border-default);background:var(--surface-subtle)}table.data td{padding:11px 14px;border-bottom:1px solid var(--gray-100);vertical-align:middle}table.data tr:hover td{background:#fafafd}.tablewrap{border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden}.inbox{flex:1;display:flex;min-height:0}.convlist{width:320px;flex:none;background:#fff;border-right:1px solid var(--border-default);display:flex;flex-direction:column}.convlist .search{padding:var(--space-4);border-bottom:1px solid var(--border-default)}.conv{display:flex;gap:var(--space-3);padding:12px var(--space-4);border-bottom:1px solid var(--gray-100)}.conv.on{background:#eef6fc;box-shadow:inset 3px 0 0 var(--accent-secondary)}.avatar{width:40px;height:40px;flex:none;border-radius:50%;background:var(--navy-500);color:#fff;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:15px}.avatar.b{background:var(--blue-500)}.avatar.f{background:var(--fuchsia-500)}.avatar.a{background:var(--amber-700)}.avatar.g{background:var(--gray-500)}.conv .body{flex:1;min-width:0}.conv .row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.conv .name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv .time{font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.conv .last{color:var(--text-secondary);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv.unread .name,.conv.unread .last{font-weight:700;color:var(--text-primary)}.conv.unread .time{color:var(--accent-primary);font-weight:700}.badge{background:var(--accent-primary);color:#fff;font-family:var(--font-mono);font-size:11px;font-weight:700;border-radius:var(--radius-pill);padding:0 7px;line-height:18px}.thread{flex:1;display:flex;flex-direction:column;min-width:0}.thread .head{height:64px;flex:none;background:#fff;border-bottom:1px solid var(--border-default);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-5)}.thread .head .who{display:flex;align-items:center;gap:var(--space-3)}.msgs{flex:1;overflow:hidden;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);background:var(--surface-subtle)}.day{align-self:center;font-family:var(--font-mono);font-size:11px;color:var(--text-muted);background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-pill);padding:2px 10px}.bub{max-width:62%;padding:9px 12px 6px;border-radius:12px;box-shadow:var(--shadow-sm);font-size:14px}.bub.in{align-self:flex-start;background:#fff;border-top-left-radius:4px}.bub.out{align-self:flex-end;background:var(--navy-700);color:#fff;border-top-right-radius:4px}.bub.out.tpl{background:#2b3470}.bub .meta{display:flex;justify-content:flex-end;gap:6px;font-family:var(--font-mono);font-size:10.5px;margin-top:4px;opacity:.75}.bub.out .meta .st{color:var(--blue-300);opacity:1}.bub.out .meta .st.read{color:#7fe0ae}.bub.out.failed{background:#fff;color:var(--text-primary);border:1px solid var(--fuchsia-500)}.bub.out.failed .meta .st{color:var(--fuchsia-700)}.bub .tplname{font-family:var(--font-mono);font-size:10.5px;color:var(--amber-300);margin-bottom:4px;letter-spacing:.06em}.bub .qr{margin-top:8px;display:flex;gap:6px}.bub .qr span{border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-pill);padding:2px 10px;font-size:12px}.composer{flex:none;background:#fff;border-top:1px solid var(--border-default);padding:var(--space-4) var(--space-5);display:flex;gap:var(--space-3);align-items:flex-end}.composer textarea{flex:1;height:44px}.detailpane{width:260px;flex:none;background:#fff;border-left:1px solid var(--border-default);padding:var(--space-5);font-size:13px}.kv{display:grid;grid-template-columns:1fr;gap:2px;margin-bottom:var(--space-4)}.kv dt{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.kv dd{margin:0}.phone{width:320px;flex:none;background:var(--navy-900);border-radius:28px;padding:14px;box-shadow:var(--shadow-md);align-self:flex-start}.phone .screen{background:#e9ebf2;border-radius:18px;padding:var(--space-4);min-height:420px;display:flex;flex-direction:column}.phone .screen .tophead{font-weight:700;font-size:13px;padding-bottom:var(--space-3);border-bottom:1px solid var(--gray-300);margin-bottom:var(--space-4)}.preview{background:#fff;border-radius:3px 10px 10px;padding:10px 12px;box-shadow:var(--shadow-sm);font-size:13.5px}.preview .h{font-weight:700;margin-bottom:4px}.preview .f{color:var(--text-muted);font-size:12px;margin-top:6px}.preview .var{background:var(--blue-300);color:var(--blue-700);border-radius:4px;padding:0 3px;font-family:var(--font-mono);font-size:12px}.pbtn{background:#fff;border-radius:10px;margin-top:4px;text-align:center;padding:8px;color:var(--accent-secondary);font-weight:600;font-size:13px;box-shadow:var(--shadow-sm)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-family:var(--font-mono);font-size:12px;border:1px dashed var(--accent-secondary);color:var(--blue-700);border-radius:var(--radius-pill);padding:2px 10px;background:#f4fafe}html,body{height:100%}body{background:var(--surface-subtle)}.app-root{height:100vh;display:flex}.side a,.conv{cursor:pointer}.toast{position:fixed;left:50%;top:16px;transform:translate(-50%);background:var(--navy-900);color:#fff;padding:10px 18px;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:60;font-size:14px;max-width:640px}.toast.err{background:var(--fuchsia-700)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#12142b73;display:grid;place-items:center;z-index:40}.modal{background:#fff;border-radius:var(--radius-lg);width:760px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);overflow:auto;padding:var(--space-6);box-shadow:var(--shadow-lg)}.modal.small{width:480px}.row-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-5)}table.data tr.click,.tag.x{cursor:pointer}.err-text{color:var(--fuchsia-700);font-size:12px}.inline{display:flex;gap:var(--space-2);align-items:center}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--space-4)}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5);align-items:start}.empty{padding:var(--space-7);text-align:center;color:var(--text-muted)}.msgs{overflow:auto}.bub .txt{white-space:pre-wrap}.bub .src{font-family:var(--font-mono);font-size:10px;color:var(--amber-300);margin-bottom:4px;letter-spacing:.06em}.listitem{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--gray-100);gap:8px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-default);background:#fff;padding:0 var(--space-6)}.tabs a{padding:10px 14px;cursor:pointer;color:var(--text-secondary);font-weight:600;border-bottom:2px solid transparent}.tabs a.on{color:var(--text-primary);border-color:var(--accent-primary)}.builder{flex:1;display:flex;min-height:0}.canvas{flex:1;overflow:auto;padding:32px 40px;display:flex;justify-content:safe center;align-items:flex-start;background-color:#f4f5f9;background-image:radial-gradient(var(--gray-300) 1px,transparent 1px);background-size:20px 20px}.chain{display:flex;flex-direction:column;align-items:center}.link{display:flex;flex-direction:column;align-items:center;flex:none}.link:before,.link:after{content:"";height:12px;border-left:2px solid var(--gray-300)}.plus{width:26px;height:26px;border-radius:50%;border:2px solid var(--gray-300);background:#fff;color:var(--navy-500);font-weight:700;cursor:pointer;display:grid;place-items:center;font-size:15px;line-height:1;padding:0}.plus:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.endcap{width:10px;height:10px;border-radius:50%;background:var(--gray-300);flex:none}.node{width:220px;flex:none;background:#fff;border:1px solid var(--border-default);border-top:4px solid var(--navy-500);border-radius:var(--radius-md);padding:10px 12px;box-shadow:var(--shadow-sm);cursor:pointer}.node.msg{border-top-color:var(--fuchsia-500)}.node.logic{border-top-color:var(--blue-500)}.node.data{border-top-color:var(--amber-500)}.node.trigger{border-top-color:var(--amber-500);background:var(--navy-700);color:#fff}.node.trigger .nsum{color:var(--text-on-dark-muted)}.node.sel{outline:2px solid var(--accent-secondary);outline-offset:2px}.node .nhead{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--text-muted)}.node.trigger .nhead{color:var(--amber-500)}.node .ntitle{font-family:var(--font-display);font-weight:700;font-size:15px;margin:2px 0}.node .nsum{font-size:12.5px;color:var(--text-secondary);line-height:1.4;max-height:54px;overflow:hidden}.node .nstats{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.node .nstats span{font-family:var(--font-mono);font-size:10.5px;border-radius:var(--radius-sm);padding:1px 6px;background:var(--gray-100);color:var(--gray-700)}.node .nstats span.w{background:var(--blue-300);color:var(--blue-700)}.node .nstats span.f{background:var(--fuchsia-300);color:var(--fuchsia-700)}.branches{display:flex;gap:20px;align-items:flex-start}.branch{display:flex;flex-direction:column;align-items:center;position:relative;padding-top:14px}.branch:before{content:"";position:absolute;top:0;left:-10px;right:-10px;border-top:2px solid var(--gray-300)}.branch:first-child:before{left:50%}.branch:last-child:before{right:50%}.branch:only-child:before{display:none}.branch>.blabel{position:relative}.branch>.blabel:before{content:"";position:absolute;left:50%;top:-14px;height:14px;border-left:2px solid var(--gray-300)}.blabel{font-family:var(--font-mono);font-size:11px;font-weight:700;background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-pill);padding:2px 9px;white-space:nowrap;flex:none}.panel{width:360px;flex:none;background:#fff;border-left:1px solid var(--border-default);overflow:auto;padding:var(--space-5)}.picker{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.picker button{text-align:left;background:#fff;border:1px solid var(--border-default);border-left:4px solid var(--navy-500);border-radius:var(--radius-md);padding:10px 12px;cursor:pointer;font-family:var(--font-body)}.picker button.msg{border-left-color:var(--fuchsia-500)}.picker button.logic{border-left-color:var(--blue-500)}.picker button.data{border-left-color:var(--amber-500)}.picker button b{display:block;font-family:var(--font-display);font-size:15px}.picker button span{font-size:12px;color:var(--text-muted)}.condgroup{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:10px;margin-bottom:8px;background:#fafafd}.condrow{display:grid;grid-template-columns:1fr 1fr 1fr 24px;gap:6px;margin-bottom:6px;align-items:center}.condrow .input{padding:6px 8px;font-size:13px}.or{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--text-muted);text-align:center;margin:6px 0}.xbtn{border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:16px}.tiles{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-3)}.tile{background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-md);padding:14px}.tile .n{font-family:var(--font-display);font-weight:900;font-size:30px;line-height:1}.tile .l{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-top:6px}.tile .p{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary)}.bar{height:8px;background:var(--gray-100);border-radius:var(--radius-pill);overflow:hidden}.bar>div{height:100%;background:var(--accent-secondary)}.step-h{display:flex;gap:10px;align-items:baseline}.step-h .num{font-family:var(--font-display);font-weight:900;color:var(--accent-primary);font-size:20px}pre.code{background:var(--navy-900);color:#e6e8f0;font-family:var(--font-mono);font-size:12px;border-radius:var(--radius-md);padding:12px;white-space:pre-wrap;word-break:break-all;margin:8px 0}.pipeline{opacity:.7}.hint{font-size:12px;color:var(--text-muted)}.card>.hint,.card>span.hint{display:block;margin-top:6px}.eyebrow a{color:inherit;text-decoration:none}.eyebrow a:hover{color:var(--accent-secondary)}.pf-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.pf-list{padding:0}.pf-row{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:16px;align-items:center;padding:14px 16px;border-top:1px solid var(--border-default)}.pf-row:first-child{border-top:0}.pf-row b{display:block}.pf-row small{color:var(--text-muted)}.pf-state{font-size:13px;font-weight:600}.pf-state.ok{color:#18794e}.pf-state.no{color:var(--fuchsia-500)}.pf-state.unk{color:var(--text-muted)}.pf-why{grid-column:1 / -1;background:#fdf1f6;border-radius:var(--radius-md);padding:10px 12px;font-size:13px;display:flex;justify-content:space-between;align-items:center;gap:12px}.pf-warn{font-size:12.5px;color:#8a5a00}.pf-choose{max-width:460px;margin:10vh auto;padding:0 16px}.pf-pick{display:flex;justify-content:space-between;align-items:center;width:100%;padding:14px 16px;margin-bottom:8px;background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;font:inherit;text-align:left}.pf-pick:hover{border-color:var(--accent-secondary)}@media (max-width: 760px){.pf-row{grid-template-columns:1fr}}.flow{flex:1;display:flex;min-height:0}.flow .canvas{flex:1;position:relative;min-width:0;padding:0;display:block;background:none;overflow:hidden}.flow .scroller{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;background-color:#f4f5f9;background-image:radial-gradient(var(--gray-300) 1px,transparent 1px);background-size:20px 20px}.flow .sizer{position:relative}.flow .stage{position:absolute;left:0;top:0;transform-origin:0 0}.flow svg.edges{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}.flow svg.edges path{fill:none;stroke:var(--gray-300);stroke-width:2}.flow svg.edges path.k-error{stroke:var(--fuchsia-300);stroke-dasharray:2 4}.flow svg.edges path.k-reply{stroke:#1d7a4c}.flow svg.edges path.k-other{stroke:var(--amber-500)}.flow svg.edges path.k-no_reply{stroke:var(--navy-300);stroke-dasharray:8 5}.flow svg.edges path.free{stroke-dasharray:7 6}.flow svg.edges path.link{stroke:var(--accent-secondary);stroke-dasharray:7 6}.flow svg.edges path.on{stroke:var(--accent-primary);stroke-width:3}.flow svg.edges path.tmp{stroke:var(--accent-primary);stroke-dasharray:4 4}.flow svg.edges path.hit{stroke:transparent;stroke-width:14;pointer-events:stroke;cursor:pointer}.flow .tools{position:absolute;left:16px;bottom:16px;display:flex;gap:6px;align-items:center;background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-pill);padding:4px 6px;box-shadow:var(--shadow-sm);font-size:13px}.flow .tools button{border:none;background:none;font-family:var(--font-body);font-weight:600;cursor:pointer;padding:4px 10px;border-radius:var(--radius-pill)}.flow .tools button:hover{background:var(--gray-100)}.flow .tools .z{font-family:var(--font-mono);font-size:12px;min-width:44px;text-align:center}.flow .tools label{display:flex;align-items:center;gap:6px;padding:0 8px;border-left:1px solid var(--gray-300);cursor:pointer}.flow .linkbar{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:5;background:var(--accent-primary);color:#fff;border-radius:var(--radius-pill);padding:8px 18px;font-size:13.5px;box-shadow:var(--shadow-md);white-space:nowrap}.flow .linkbar a{cursor:pointer;text-decoration:underline;font-weight:700}.flow .node{position:absolute;width:240px;padding:8px 12px 10px}.flow .node:not(.trigger){cursor:grab}.flow .node:not(.trigger):active{cursor:grabbing}.flow .node.msg{border-top:6px solid var(--fuchsia-500)}.flow .node.small,.flow .node.small.bad,.flow .node.small.warn{width:160px;padding:0;background:none;border:none;box-shadow:none}.flow .node.small.sel,.flow .node.small.drop{outline:none}.flow .node.small .face{width:160px;height:160px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:14px}.flow .node.small .face .nhead{justify-content:center;gap:6px}.flow .node.small .face .nsum{max-height:38px;font-size:12px}.flow .node.small .nstats{justify-content:center}.flow .node.small .nerr,.flow .node.small .outs{text-align:center}.flow .node.wait .face{border-radius:50%;background:#a8e6c1}.flow .node.wait .face .nhead,.flow .node.wait .face .ntitle,.flow .node.wait .face .nsum{color:var(--navy-900)}.flow .node.data .face{border-radius:10px;background:var(--amber-500)}.flow .node.data .face .nhead,.flow .node.data .face .ntitle,.flow .node.data .face .nsum{color:var(--navy-900)}.flow .node.small.sel .face{outline:3px solid var(--accent-secondary);outline-offset:3px}.flow .node.small.drop .face{outline:3px solid var(--accent-primary);outline-offset:3px}.flow .node.small.bad .face{box-shadow:0 0 0 5px var(--fuchsia-500)}.flow .node.logic{clip-path:polygon(0 0,calc(100% - 26px) 0,100% 50%,calc(100% - 26px) 100%,0 100%);border:none;border-radius:0;box-shadow:none;background:var(--blue-500);padding:10px 40px 10px 14px}.flow .node.logic .nhead,.flow .node.logic .ntitle,.flow .node.logic .nsum,.flow .node.logic .nerr{color:#fff}.flow .node.logic.sel{background:var(--blue-700)}.flow .node.logic.bad{background:var(--fuchsia-500)}.flow .node.logic.drop{background:var(--navy-700)}.flow .node.tgt{outline:2px dashed var(--accent-secondary);outline-offset:3px}.flow .node.warn{border-color:var(--amber-500)}.flow .node.bad{border-color:var(--fuchsia-500);background:#fff7fb}.flow .node.drop{outline:3px solid var(--accent-primary);outline-offset:3px}.flow .node .nhead{align-items:center;height:20px;letter-spacing:.06em;text-transform:none}.flow .node .nhead .nm{font-family:var(--font-body);font-size:12.5px;letter-spacing:0;color:var(--navy-700)}.flow .node .nhead .tag{font-size:9.5px;padding:1px 6px}.flow .node .nsum{max-height:52px}.flow .node .nerr{font-size:12px;color:var(--fuchsia-700);margin-top:4px;font-weight:600}.flow .node .var{background:var(--blue-300);color:var(--blue-700);border-radius:4px;padding:0 3px;font-family:var(--font-mono);font-size:11.5px}.flow .outs{margin-top:8px;border-top:1px solid var(--gray-100);padding-top:4px}.flow .out{position:relative;height:26px;display:flex;align-items:center}.flow .out .ol{font-family:var(--font-mono);font-size:11px;font-weight:700;background:var(--gray-100);color:var(--navy-700);border-radius:var(--radius-pill);padding:1px 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.flow .out.reply .ol{background:#d7f2e3;color:#1d7a4c}.flow .out.other .ol{background:var(--amber-300);color:var(--amber-700)}.flow .out.no_reply .ol{background:#fff;border:1px dashed var(--navy-300);color:var(--navy-500);font-weight:400}.flow .out.error .ol{background:#fff;border:1px dashed var(--fuchsia-300);color:var(--fuchsia-700);font-weight:400}.flow .plus{position:absolute;z-index:2}.flow .port{position:absolute;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--navy-300);cursor:crosshair;z-index:2}.flow .port:hover{border-color:var(--accent-primary);background:var(--fuchsia-300)}.flow .tip{position:absolute;width:18px;height:18px;border-radius:50%;cursor:grab;z-index:3}.flow .tip:hover{background:#eb008b40;box-shadow:0 0 0 2px var(--accent-primary)}.flow .xedge{position:absolute;width:24px;height:24px;border-radius:50%;background:var(--accent-primary);color:#fff;border:none;cursor:pointer;font-weight:700;font-size:14px;z-index:3;box-shadow:var(--shadow-md)}.flow .end{position:absolute;font-family:var(--font-mono);font-size:11px;color:var(--text-muted);white-space:nowrap}.flow .end.k-reply{color:#1d7a4c;font-weight:700}.flow .end.k-other{color:var(--amber-700);font-weight:700}.flow .end.k-no_reply{color:var(--navy-500);font-weight:700}.flow .end.k-error{color:var(--fuchsia-700)}.flow .help-x{border:none;background:none;font-size:20px;line-height:1;cursor:pointer;color:var(--text-muted)}.flow .panel{width:380px}.flow .statgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:var(--space-5)}.flow .statgrid div{background:var(--gray-100);border-radius:var(--radius-md);padding:8px;text-align:center}.flow .statgrid b{display:block;font-family:var(--font-display);font-size:22px}.flow .statgrid span{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.bands{display:flex;flex-direction:column;gap:6px;padding:8px var(--space-6);background:#fff;border-bottom:1px solid var(--border-default)}.bands .banner{padding:8px 14px;display:flex;justify-content:space-between;align-items:center;gap:12px}.bands .banner a{cursor:pointer;font-weight:700;text-decoration:underline;white-space:nowrap}.banner.on{background:#d7f2e3;color:#1d7a4c;border:1px solid #A9DFC2}.banner.off{background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-300)}.banner.blue{background:var(--blue-300);color:var(--blue-700)}.cnt{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);align-self:flex-end}.cnt.over{color:var(--fuchsia-700);font-weight:700}.rowedit{display:flex;gap:6px;align-items:center;margin-bottom:6px}.rowedit .input{flex:1}.seg{display:flex;gap:4px;margin-bottom:var(--space-3)}.seg button{flex:1;border:1px solid var(--border-default);background:#fff;border-radius:var(--radius-pill);padding:6px 8px;font-family:var(--font-body);font-size:12.5px;font-weight:600;cursor:pointer}.seg button.on{background:var(--navy-700);color:#fff;border-color:var(--navy-700)}.field>.btn{align-self:flex-start}.tplprev{display:flex;flex-direction:column;gap:6px;background:#e7f7ee;border-radius:var(--radius-md);padding:10px 12px;font-size:13.5px;white-space:pre-wrap}.tplprev small{color:var(--text-muted)}.tplprev .tag{align-self:flex-start}.danger{color:var(--fuchsia-700)!important;border-color:var(--fuchsia-300)!important}.modal.wide{width:920px;padding:0;display:flex;flex-direction:column}.mhead{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid var(--border-default)}.mhead h3{margin:0}.mcols{display:flex;min-height:0;flex:1;overflow:hidden;max-height:calc(100vh - 140px)}.mlist{width:230px;flex:none;border-right:1px solid var(--border-default);overflow:auto;padding:8px 0}.mlist h4{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin:10px 16px 4px}.mlist button{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;border:none;background:none;padding:8px 16px;font-family:var(--font-body);font-size:14px;cursor:pointer;border-left:3px solid transparent}.mlist button:hover{background:var(--gray-100)}.mlist button.on{background:#fde8f3;border-left-color:var(--accent-primary);font-weight:600}.mlist button[disabled]{color:var(--text-muted);cursor:not-allowed;background:none}.mbody{flex:1;overflow:auto;padding:20px 24px}.mfoot{display:flex;justify-content:flex-end;gap:12px;padding:14px 24px;border-top:1px solid var(--border-default)}.node.trigger .start{display:block;margin-top:10px}
