:root{--bg-app: #0b0c10;--bg-canvas: #0e0f14;--surface-1: #14151b;--surface-2: #1a1c24;--surface-3: #22242e;--surface-4: #2b2e3a;--overlay: rgba(6,7,10,.66);--border-subtle: rgba(255,255,255,.06);--border: rgba(255,255,255,.09);--border-strong: rgba(255,255,255,.14);--border-inset: inset 0 0 0 1px rgba(255,255,255,.04);--text: #e7e9f0;--text-strong: #f4f5f9;--text-secondary:#a3a7b4;--text-muted: #767b8a;--text-faint: #565b69;--text-on-accent:#ffffff;--accent: #6d6af5;--accent-hover: #7f7dff;--accent-active: #5b57e0;--accent-fg: #b7b6ff;--accent-tint: rgba(109,106,245,.14);--accent-tint-2: rgba(109,106,245,.22);--accent-ring: rgba(109,106,245,.4);--accent-glow: rgba(109,106,245,.28);--ok: #3fb950;--ok-fg: #5dd17a;--ok-tint: rgba(63,185,80,.14);--warn: #d99e35;--warn-fg: #eab763;--warn-tint: rgba(217,158,53,.14);--err: #e5484d;--err-fg: #ff7377;--err-tint: rgba(229,72,77,.14);--info: #4a9fff;--info-fg: #79bbff;--info-tint: rgba(74,159,255,.14);--neutral-tint: rgba(255,255,255,.06);--data-1: #7c8cf8;--data-2: #4bbfa6;--data-3: #e0a648;--data-4: #ec6a9c;--data-5: #9b8cf0;--data-6: #5ab0e0;--data-7: #6fbf73;--node-base: #5aa06f;--node-sms: #5b8def;--node-telegram: #25b7c9;--node-call: #f0883e;--node-filter: #2fae9c;--node-cond: #b46ae8;--node-wait: #8b93a7;--node-action: #c76b8e;--node-stop: #e5484d;--node-soon: #565b69;--track: rgba(255,255,255,.07);--font: "Inter", -apple-system, system-ui, "Segoe UI", Roboto, sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--fs-11: 11px;--fs-12: 12px;--fs-13: 13px;--fs-14: 14px;--fs-16: 16px;--fs-18: 18px;--fs-20: 20px;--fs-24: 24px;--fs-30: 30px;--lh-tight: 1.2;--lh: 1.45;--lh-loose: 1.6;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--tracking: .01em;--tracking-caps: .06em;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-7: 32px;--sp-8: 40px;--sp-9: 48px;--sp-10: 64px;--r-xs: 4px;--r-sm: 6px;--r: 8px;--r-md: 10px;--r-lg: 12px;--r-xl: 16px;--r-full: 999px;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow: 0 4px 12px rgba(0,0,0,.35);--shadow-md: 0 8px 24px rgba(0,0,0,.42);--shadow-lg: 0 18px 48px rgba(0,0,0,.52);--shadow-node: 0 6px 18px rgba(0,0,0,.38), var(--border-inset);--topbar-h: 56px;--rail-w: 60px;--rail-w-open: 236px;--nav-active: var(--accent);--inspector-w: 340px;--t-fast: .12s cubic-bezier(.4,0,.2,1);--t: .16s cubic-bezier(.4,0,.2,1);--ring: 0 0 0 3px var(--accent-ring);--z-topbar: 100;--z-inspector: 90;--z-overlay: 500;--z-menu: 600;color-scheme:dark}.theme-light,:root.theme-light,html.theme-light,body.theme-light{--bg-app: #f5f6f9;--bg-canvas: #eef0f4;--surface-1: #ffffff;--surface-2: #f4f5f8;--surface-3: #eaecf1;--surface-4: #dfe2ea;--overlay: rgba(20,22,30,.34);--border-subtle: rgba(16,19,32,.06);--border: rgba(16,19,32,.1);--border-strong: rgba(16,19,32,.16);--border-inset: inset 0 0 0 1px rgba(255,255,255,.6);--text: #1b1e29;--text-strong: #0d0f17;--text-secondary:#565b6b;--text-muted: #767c8c;--text-faint: #9aa0af;--accent: #5b57e0;--accent-hover: #6d6af5;--accent-active: #4a46c9;--accent-fg: #4a46c9;--accent-tint: rgba(91,87,224,.1);--accent-tint-2: rgba(91,87,224,.16);--accent-ring: rgba(91,87,224,.32);--accent-glow: rgba(91,87,224,.2);--nav-active: #e5397a;--ok: #1f9d43;--ok-fg: #197a34;--ok-tint: rgba(31,157,67,.12);--warn: #b8791a;--warn-fg: #8f5d10;--warn-tint: rgba(184,121,26,.12);--err: #d33840;--err-fg: #b22a30;--err-tint: rgba(211,56,64,.12);--info: #2f7fe0;--info-fg: #1f63b8;--info-tint: rgba(47,127,224,.12);--neutral-tint: rgba(16,19,32,.05);--track: rgba(16,19,32,.08);--shadow-sm: 0 1px 2px rgba(20,22,40,.06);--shadow: 0 4px 12px rgba(20,22,40,.08);--shadow-md: 0 8px 24px rgba(20,22,40,.12);--shadow-lg: 0 18px 48px rgba(20,22,40,.16);--shadow-node: 0 6px 18px rgba(20,22,40,.1), var(--border-inset);--node-base: #3f8a57;--node-sms: #3f6fd4;--node-telegram: #0f8fa0;--node-call: #d9701f;--node-filter: #1a917f;--node-cond: #9a4fd0;--node-wait: #6b7385;--node-action: #b04d72;--node-stop: #d33840;--node-soon: #9aa0af;color-scheme:light}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);font-size:var(--fs-13);line-height:var(--lh);letter-spacing:var(--tracking);color:var(--text);background:var(--bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"cv11","ss01","tnum";min-height:100vh}img,svg{display:block;max-width:100%}svg{flex-shrink:0}button,input,select,textarea{font:inherit;letter-spacing:inherit;color:inherit}button{cursor:pointer;background:none;border:none}a{color:var(--accent-fg);text-decoration:none;transition:color var(--t-fast)}a:hover{color:var(--accent-hover)}h1,h2,h3,h4{color:var(--text-strong);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}h1{font-size:var(--fs-24);letter-spacing:-.01em}h2{font-size:var(--fs-20);letter-spacing:-.01em}h3{font-size:var(--fs-16)}h4{font-size:var(--fs-14)}code,kbd,pre{font-family:var(--mono);font-size:.92em}hr,.divider{border:0;height:1px;background:var(--border);margin:var(--sp-4) 0}::selection{background:var(--accent-tint-2);color:var(--text-strong)}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-sm)}.row{display:flex;align-items:center;gap:var(--sp-3)}.col{display:flex;flex-direction:column;gap:var(--sp-3)}.grow{flex:1 1 auto;min-width:0}.spacer{flex:1 1 auto}.muted{color:var(--text-muted)}.secondary{color:var(--text-secondary)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.tnum{font-variant-numeric:tabular-nums}.caps{text-transform:uppercase;letter-spacing:var(--tracking-caps);font-size:var(--fs-11);font-weight:var(--fw-semibold);color:var(--text-muted)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:var(--z-topbar);display:flex;align-items:center;gap:var(--sp-5);height:var(--topbar-h);padding:0 var(--sp-5);background:color-mix(in srgb,var(--surface-1) 82%,transparent);border-bottom:1px solid var(--border);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px)}.topbar .brand{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--text-strong);letter-spacing:-.01em;white-space:nowrap;text-decoration:none}a.brand:hover{color:var(--text)}.topbar .brand .brand-mark{width:26px;height:26px;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--text-on-accent);background:linear-gradient(140deg,var(--accent-hover),var(--accent-active));box-shadow:0 2px 8px var(--accent-glow),var(--border-inset)}.topbar .brand small{color:var(--text-muted);font-weight:var(--fw-regular);font-size:var(--fs-12)}.topbar-actions{display:flex;align-items:center;gap:var(--sp-2);margin-left:auto}.account-menu{position:relative}.account-trigger{display:inline-flex;align-items:center;gap:var(--sp-2);height:36px;padding:0 6px;border-radius:var(--r);background:transparent;border:1px solid transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast)}.account-trigger:hover{background:var(--surface-2);border-color:var(--border);color:var(--text)}.account-name{font-size:var(--fs-13);font-weight:var(--fw-medium)}.account-caret{width:14px;height:14px;opacity:.7}@media (max-width: 640px){.account-name{display:none}}.account-dropdown{position:absolute;right:0;top:calc(100% + 6px);min-width:224px;z-index:var(--z-menu);display:flex;flex-direction:column;gap:2px;padding:var(--sp-2);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}.account-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2)}.account-head-name{font-size:var(--fs-13);font-weight:var(--fw-semibold);color:var(--text)}.account-head-sub{font-size:var(--fs-11);color:var(--text-muted)}.account-item{display:flex;align-items:center;width:100%;height:34px;padding:0 var(--sp-2);border-radius:var(--r-sm);background:transparent;border:none;text-align:left;cursor:pointer;color:var(--text-secondary);font-size:var(--fs-13)}.account-item:hover{background:var(--surface-2);color:var(--text)}.account-row{display:flex;align-items:center;justify-content:space-between;padding:4px var(--sp-2);font-size:var(--fs-13);color:var(--text-secondary)}.account-sep{height:1px;background:var(--border-subtle);margin:4px 0}.sidebar{position:sticky;top:var(--topbar-h);align-self:flex-start;flex:0 0 var(--rail-w);height:calc(100dvh - var(--topbar-h));z-index:50}.sidebar-panel{position:absolute;top:0;bottom:0;left:0;width:var(--rail-w);display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) 10px;background:var(--surface-1);border-right:1px solid var(--border);overflow:hidden;transition:width var(--t),box-shadow var(--t)}.sidebar:hover .sidebar-panel,.sidebar:focus-within .sidebar-panel{width:var(--rail-w-open);box-shadow:var(--shadow-md)}.sidebar.pinned{flex-basis:var(--rail-w-open)}.sidebar.pinned .sidebar-panel{width:var(--rail-w-open);box-shadow:none}.sidebar-nav{display:flex;flex-direction:column;gap:var(--sp-3)}.side-group{display:flex;flex-direction:column;gap:2px}.side-group-label{padding:0 8px 2px;height:14px;overflow:hidden;white-space:nowrap;opacity:0;transition:opacity var(--t-fast)}.sidebar:hover .side-group-label,.sidebar:focus-within .side-group-label,.sidebar.pinned .side-group-label{opacity:1}.sidebar-util{margin-top:auto;padding-top:var(--sp-2);border-top:1px solid var(--border-subtle)}.side-pin{width:100%;justify-content:flex-start;gap:var(--sp-3);height:40px;padding:0 8px;color:var(--text-secondary)}.side-pin .side-ic{flex:0 0 24px;width:24px;height:24px;display:grid;place-items:center}.side-pin .side-ic svg{width:18px;height:18px}.side-link{display:flex;align-items:center;gap:var(--sp-3);height:40px;padding:0 8px;border-radius:var(--r-sm);color:var(--text-secondary);white-space:nowrap;transition:color var(--t-fast),background var(--t-fast)}.side-link .side-ic{flex:0 0 24px;width:24px;height:24px;display:grid;place-items:center}.side-link .side-ic svg{width:18px;height:18px}.side-link .side-label{font-size:var(--fs-13);font-weight:var(--fw-medium);opacity:0;transition:opacity var(--t-fast)}.sidebar:hover .side-label,.sidebar:focus-within .side-label,.sidebar.pinned .side-label{opacity:1}.side-link:hover{color:var(--text);background:var(--surface-2)}.side-link.active,.side-link.active:hover{color:var(--text-on-accent);background:var(--nav-active)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);height:34px;padding:0 var(--sp-4);font-size:var(--fs-13);font-weight:var(--fw-medium);line-height:1;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r);white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast)}.btn svg{width:16px;height:16px}.btn:hover{background:var(--surface-3);border-color:var(--border-strong)}.btn:active{transform:translateY(.5px);background:var(--surface-4)}.btn:disabled{opacity:.5;pointer-events:none}.btn-primary{color:var(--text-on-accent);background:var(--accent);border-color:transparent;box-shadow:0 1px 2px #00000040,0 0 0 1px #ffffff0d inset}.btn-primary:hover{background:var(--accent-hover);box-shadow:0 2px 10px var(--accent-glow),0 0 0 1px #ffffff0f inset}.btn-primary:active{background:var(--accent-active);transform:translateY(.5px)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--surface-2);color:var(--text);border-color:var(--border-subtle)}.btn-ghost:active{background:var(--surface-3)}.btn-danger{color:var(--err-fg);background:var(--err-tint);border-color:transparent}.btn-danger:hover{background:color-mix(in srgb,var(--err) 22%,transparent);color:#fff}.btn-sm{height:28px;padding:0 var(--sp-3);font-size:var(--fs-12)}.btn-lg{height:40px;padding:0 var(--sp-5);font-size:var(--fs-14)}.btn-icon{width:34px;padding:0}.btn-icon.btn-sm{width:28px}.card,.panel{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card{padding:var(--sp-5)}.card-header{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.card-title{font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--text-strong)}.card-subtitle{font-size:var(--fs-12);color:var(--text-muted);margin-top:2px}.card-body{padding:var(--sp-5)}.card-actions{display:flex;align-items:center;gap:var(--sp-2);margin-left:auto}.panel-flush{padding:0;overflow:hidden}.badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 var(--sp-2) 0 var(--sp-2);font-size:var(--fs-11);font-weight:var(--fw-semibold);letter-spacing:.02em;line-height:1;color:var(--text-secondary);background:var(--neutral-tint);border:1px solid var(--border-subtle);border-radius:var(--r-full);white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:var(--r-full);background:currentColor;flex-shrink:0;opacity:.9}.badge.no-dot:before{display:none}.badge-ok{color:var(--ok-fg);background:var(--ok-tint);border-color:color-mix(in srgb,var(--ok) 24%,transparent)}.badge-warn{color:var(--warn-fg);background:var(--warn-tint);border-color:color-mix(in srgb,var(--warn) 24%,transparent)}.badge-err{color:var(--err-fg);background:var(--err-tint);border-color:color-mix(in srgb,var(--err) 24%,transparent)}.badge-info{color:var(--info-fg);background:var(--info-tint);border-color:color-mix(in srgb,var(--info) 24%,transparent)}.badge-accent{color:var(--accent-fg);background:var(--accent-tint);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.badge-neutral{color:var(--text-muted)}.badge-live:before{animation:pulse-dot 1.8s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.35}}.table-wrap{width:100%;overflow-x:auto;border-radius:var(--r-lg)}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-13);font-variant-numeric:tabular-nums}.table thead th{position:sticky;top:0;z-index:1;padding:var(--sp-2) var(--sp-4);text-align:left;font-size:var(--fs-11);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--text-muted);background:var(--surface-1);border-bottom:1px solid var(--border);white-space:nowrap}.table tbody td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle);color:var(--text);vertical-align:middle}.table tbody tr:nth-child(2n) td{background:#ffffff04}.theme-light .table tbody tr:nth-child(2n) td{background:#10132005}.table tbody tr{transition:background var(--t-fast)}.table tbody tr:hover td{background:var(--surface-2)}.table tbody tr:last-child td{border-bottom:0}.table td.num,.table th.num{text-align:right}.table .cell-strong{color:var(--text-strong);font-weight:var(--fw-medium)}.table .cell-muted{color:var(--text-muted)}.table-compact tbody td{padding:var(--sp-2) var(--sp-4)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-4)}.kpi{position:relative;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:border-color var(--t-fast),transform var(--t-fast)}.kpi:hover{border-color:var(--border-strong)}.kpi-label{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-12);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--text-muted)}.kpi-label svg{width:15px;height:15px;opacity:.7}.kpi-value{font-size:var(--fs-30);font-weight:var(--fw-semibold);line-height:1;letter-spacing:-.02em;color:var(--text-strong);font-variant-numeric:tabular-nums}.kpi-value small{font-size:var(--fs-14);font-weight:var(--fw-medium);color:var(--text-muted);margin-left:4px}.kpi-delta{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-12);font-weight:var(--fw-medium)}.kpi-delta svg{width:14px;height:14px}.kpi-delta.up{color:var(--ok-fg)}.kpi-delta.down{color:var(--err-fg)}.kpi-delta.flat{color:var(--text-muted)}.kpi-spark{margin-top:var(--sp-1);height:34px;width:100%}.kpi-accent{border-left:2px solid var(--accent)}.meter{height:6px;border-radius:var(--r-full);background:var(--track);overflow:hidden}.meter>span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width var(--t)}.meter.ok>span{background:var(--ok)}.meter.warn>span{background:var(--warn)}.meter.err>span{background:var(--err)}.canvas{position:relative;flex:1 1 auto;min-height:0;background:radial-gradient(circle at 1px 1px,var(--border) 1px,transparent 0) 0 0 / 22px 22px,var(--bg-canvas);overflow:hidden}.node{position:relative;width:236px;min-height:60px;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-node);transition:border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast)}.node:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border-strong));box-shadow:var(--shadow-md)}.node.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 0 4px var(--accent-ring),var(--shadow-md)}.node-header{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);border-bottom:1px solid var(--border-subtle)}.node-icon{width:26px;height:26px;flex-shrink:0;display:grid;place-items:center;border-radius:var(--r-sm);color:var(--accent-fg);background:var(--accent-tint)}.node-icon svg{width:15px;height:15px}.node-title{font-size:var(--fs-13);font-weight:var(--fw-semibold);color:var(--text-strong);line-height:1.25}.node-sub{font-size:var(--fs-11);color:var(--text-muted);margin-top:1px}.node-body{padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2);font-size:var(--fs-12);color:var(--text-secondary)}.node-tag{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;padding:3px 7px;border-radius:var(--r-sm);font-size:var(--fs-11);font-weight:var(--fw-medium);background:var(--neutral-tint);color:var(--text-secondary)}.handle{position:absolute;width:11px;height:11px;border-radius:var(--r-full);background:var(--surface-4);border:2px solid var(--accent);box-shadow:0 0 0 3px var(--bg-canvas);cursor:crosshair;transition:transform var(--t-fast),background var(--t-fast)}.handle:hover{background:var(--accent);transform:scale(1.25)}.handle.in{left:-6px;top:50%;transform:translateY(-50%)}.handle.out{right:-6px;top:50%;transform:translateY(-50%)}.handle.top{top:-6px;left:50%;transform:translate(-50%)}.handle.bottom{bottom:-6px;left:50%;transform:translate(-50%)}.handle.yes{border-color:var(--ok)}.handle.no{border-color:var(--err)}.handle-label{position:absolute;font-size:var(--fs-11);font-weight:var(--fw-semibold);color:var(--text-muted)}.node.type-base{--node-accent: var(--node-base)}.node.type-sms{--node-accent: var(--node-sms)}.node.type-telegram{--node-accent: var(--node-telegram)}.node.type-call{--node-accent: var(--node-call)}.node.type-filter{--node-accent: var(--node-filter)}.node.type-cond{--node-accent: var(--node-cond)}.node.type-wait{--node-accent: var(--node-wait)}.node.type-action{--node-accent: var(--node-action)}.node.type-stop{--node-accent: var(--node-stop)}.node.type-whatsapp,.node.type-crm{--node-accent: var(--node-soon)}.node[class*=type-] .node-icon{color:var(--node-accent);background:color-mix(in srgb,var(--node-accent) 16%,transparent)}.node[class*=type-]:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:var(--r-full);background:var(--node-accent);opacity:.9}.edge{fill:none;stroke:var(--border-strong);stroke-width:1.5}.edge.active{stroke:var(--accent)}.edge.yes{stroke:var(--ok)}.edge.no{stroke:var(--err)}.node-palette{display:flex;flex-direction:column;gap:var(--sp-2)}.palette-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r);border:1px solid var(--border-subtle);background:var(--surface-2);font-size:var(--fs-13);color:var(--text);cursor:grab;text-align:left;transition:border-color var(--t-fast),background var(--t-fast)}.palette-item:hover{border-color:var(--border-strong);background:var(--surface-3)}.palette-item:active{cursor:grabbing}.inspector{width:var(--inspector-w);flex-shrink:0;display:flex;flex-direction:column;background:var(--surface-1);border-left:1px solid var(--border);z-index:var(--z-inspector)}.inspector-header{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.inspector-title{font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--text-strong)}.inspector-body{flex:1 1 auto;overflow-y:auto;padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-5)}.inspector-section{display:flex;flex-direction:column;gap:var(--sp-3)}.inspector-section>.caps{margin-bottom:2px}.inspector-footer{padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border-subtle);display:flex;gap:var(--sp-2)}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:var(--fs-12);font-weight:var(--fw-medium);color:var(--text-secondary);display:flex;align-items:center;gap:var(--sp-2)}.field-hint{font-size:var(--fs-11);color:var(--text-faint);line-height:var(--lh)}.sms-oversize{margin-top:var(--sp-2);padding:var(--sp-3) var(--sp-3);border:1px solid var(--err);border-left:4px solid var(--err);border-radius:var(--radius-2, 8px);background:var(--err-tint);color:var(--err-fg);font-size:var(--fs-13);font-weight:600;line-height:var(--lh)}.field-row{display:flex;gap:var(--sp-3)}.field-row>.field{flex:1}.input,.select,.textarea,input[type=text],input[type=number],input[type=search],input[type=tel],input[type=email],select,textarea{width:100%;height:34px;padding:0 var(--sp-3);font-size:var(--fs-13);color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r);transition:border-color var(--t-fast),box-shadow var(--t-fast),background var(--t-fast)}.textarea,textarea{height:auto;min-height:76px;padding:var(--sp-2) var(--sp-3);line-height:var(--lh);resize:vertical}.input::placeholder,textarea::placeholder{color:var(--text-faint)}.input:hover,.select:hover,.textarea:hover,input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}.input:focus,.select:focus,.textarea:focus,input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);background:var(--surface-1)}.input:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}.select,select{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:var(--sp-8);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23767b8a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right var(--sp-3) center}.input-group{position:relative;display:flex;align-items:center}.input-group svg{position:absolute;left:var(--sp-3);width:16px;height:16px;color:var(--text-muted);pointer-events:none}.input-group .input{padding-left:var(--sp-8)}.input-suffix{position:absolute;right:var(--sp-3);font-size:var(--fs-12);color:var(--text-muted)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:var(--r-full);background:var(--track);cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:var(--r-full);background:var(--accent);border:2px solid var(--surface-1);box-shadow:var(--shadow-sm);transition:transform var(--t-fast)}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}input[type=range]::-moz-range-thumb{width:14px;height:14px;border:2px solid var(--surface-1);border-radius:var(--r-full);background:var(--accent)}.switch{position:relative;display:inline-flex;width:36px;height:20px;flex-shrink:0}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch .track{width:100%;height:100%;border-radius:var(--r-full);background:var(--surface-4);transition:background var(--t-fast)}.switch .track:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:var(--r-full);background:#fff;box-shadow:var(--shadow-sm);transition:transform var(--t-fast)}.switch input:checked+.track{background:var(--accent)}.switch input:checked+.track:after{transform:translate(16px)}.switch input:focus-visible+.track{box-shadow:var(--ring)}.segmented{display:inline-flex;padding:3px;gap:2px;background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--r)}.segmented button{height:28px;padding:0 var(--sp-3);border-radius:var(--r-sm);font-size:var(--fs-12);font-weight:var(--fw-medium);color:var(--text-secondary);transition:background var(--t-fast),color var(--t-fast)}.segmented button:hover{color:var(--text)}.segmented button.active{background:var(--surface-4);color:var(--text-strong);box-shadow:var(--shadow-sm)}.legend{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-4);font-size:var(--fs-12);color:var(--text-secondary)}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.workspace{display:flex;flex:1 1 auto;min-height:0}.content{flex:1 1 auto;min-width:0;padding:var(--sp-6);overflow-y:auto}.content-narrow{max-width:1360px;margin:0 auto}.page-header{display:flex;align-items:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-6);flex-wrap:wrap}.page-header h1{margin-bottom:2px}.page-header .page-sub{font-size:var(--fs-13);color:var(--text-muted)}.page-back{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-13);color:var(--accent-fg);text-decoration:none;margin-bottom:6px}.page-back svg{width:14px;height:14px}.page-back:hover{text-decoration:underline}.page-header .page-actions{display:flex;gap:var(--sp-2);margin-left:auto;flex-wrap:wrap}@media (max-width: 1180px){.page-header .page-actions{margin-left:0;width:100%}}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-5)}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-5)}@media (max-width: 1180px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 1024px){.grid-2,.grid-3{grid-template-columns:1fr}.content{padding:var(--sp-5)}}*{scrollbar-width:thin;scrollbar-color:var(--surface-4) transparent}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface-4);border-radius:var(--r-full);border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--surface-4) 60%,var(--text-muted));background-clip:padding-box}::-webkit-scrollbar-corner{background:transparent}.tooltip{position:relative}.kbd{display:inline-flex;align-items:center;height:18px;padding:0 5px;font-family:var(--mono);font-size:var(--fs-11);color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-bottom-width:2px;border-radius:var(--r-xs)}.avatar{width:28px;height:28px;border-radius:var(--r-full);display:grid;place-items:center;font-size:var(--fs-12);font-weight:var(--fw-semibold);color:var(--text-on-accent);background:linear-gradient(140deg,var(--data-5),var(--data-1))}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-9);text-align:center;color:var(--text-muted)}.empty-state svg{width:32px;height:32px;opacity:.5}.empty-state .es-title{font-size:var(--fs-16);font-weight:var(--fw-semibold);color:var(--text)}.empty-state .es-cta{margin-top:var(--sp-3)}.name-cell{display:flex;flex-direction:column;gap:2px}.name-cell .name-link{font-weight:var(--fw-semibold);color:var(--text);text-decoration:none}.name-cell .name-link:hover{color:var(--accent-fg);text-decoration:underline}.name-cell .name-id{font-size:var(--fs-11);color:var(--text-faint)}.breadcrumbs{display:flex;align-items:center;gap:6px;font-size:var(--fs-12);color:var(--text-muted);margin-bottom:6px}.breadcrumbs a{color:var(--accent-fg);text-decoration:none}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .sep{opacity:.55}.breadcrumbs .crumb-current{color:var(--text-secondary)}.onboarding{display:flex;flex-direction:column;gap:var(--sp-4);max-width:640px;margin:var(--sp-6) auto}.onb-head h2{font-size:var(--fs-18);margin-bottom:4px}.onb-head p{font-size:var(--fs-13);color:var(--text-muted)}.onb-list{display:flex;flex-direction:column}.onb-step{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);color:var(--text);text-decoration:none;transition:background var(--t-fast)}.onb-step+.onb-step{border-top:1px solid var(--border-subtle)}.onb-step:hover{background:var(--surface-2)}.onb-check{flex:0 0 22px;width:22px;height:22px;border-radius:var(--r-full);display:grid;place-items:center;border:1px solid var(--border-strong);color:var(--text-muted)}.onb-check svg{width:13px;height:13px}.onb-check.done{background:var(--ok-tint);border-color:var(--ok-fg);color:var(--ok-fg)}.onb-num{font-size:var(--fs-12);font-weight:var(--fw-semibold)}.onb-ic{display:grid;place-items:center;color:var(--text-muted)}.onb-ic svg{width:18px;height:18px}.onb-step-title{font-weight:var(--fw-medium)}.onb-step-done .onb-step-title{color:var(--text-muted)}.onb-arrow{margin-left:auto;color:var(--text-faint);display:grid;place-items:center}.onb-arrow svg{width:16px;height:16px;transform:rotate(-90deg)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);background:var(--overlay);display:grid;place-items:center;padding:var(--sp-5)}.modal{width:min(560px,100%);max-height:calc(100dvh - var(--sp-8));overflow-y:auto;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}.modal-header{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-5);border-bottom:1px solid var(--border-subtle)}.modal-title{font-size:var(--fs-16);font-weight:var(--fw-semibold);color:var(--text-strong)}.modal-sub{font-size:var(--fs-13);color:var(--text-muted);margin-top:2px}.modal-body{padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border-subtle)}.sanity-row{display:flex;gap:var(--sp-3);font-size:var(--fs-13)}.sanity-label{flex:0 0 128px;color:var(--text-muted)}.sanity-val{color:var(--text);min-width:0}.sanity-val.sanity-warn{color:var(--warn-fg)}.sms-preview{padding:var(--sp-3);background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--r);font-size:var(--fs-13);color:var(--text);white-space:pre-wrap;word-break:break-word}.launch-warn{padding:var(--sp-3) var(--sp-4);background:var(--warn-tint);border:1px solid var(--warn);border-radius:var(--r);font-size:var(--fs-12);color:var(--text-secondary)}.launch-warn-head{display:flex;align-items:center;gap:6px;font-weight:var(--fw-semibold);color:var(--warn-fg);margin-bottom:4px}.launch-warn-head svg{width:15px;height:15px}.launch-warn ul{margin:0;padding-left:var(--sp-4);display:flex;flex-direction:column;gap:2px}.filter-select{width:auto;min-width:168px}.filter-select.narrow{min-width:132px}.page-actions .divider-v{width:1px;height:22px;background:var(--border);margin:0 2px}.dash-alert{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);font-size:var(--fs-13);line-height:var(--lh);margin-bottom:var(--sp-5)}.dash-alert svg{width:16px;height:16px;flex-shrink:0}.dash-alert.warn{color:var(--warn-fg);background:var(--warn-tint);border:1px solid color-mix(in srgb,var(--warn) 24%,transparent)}.kpi-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.kpi-icon{width:26px;height:26px;border-radius:var(--r-sm);flex-shrink:0;display:grid;place-items:center;background:var(--accent-tint);color:var(--accent-fg)}.kpi-icon svg{width:15px;height:15px}.kpi-icon.tone-ok{background:var(--ok-tint);color:var(--ok-fg)}.kpi-icon.tone-err{background:var(--err-tint);color:var(--err-fg)}.kpi-icon.tone-info{background:var(--info-tint);color:var(--info-fg)}.kpi-label{text-transform:none;letter-spacing:normal;font-size:var(--fs-12);font-weight:var(--fw-medium);color:var(--text-secondary)}.kpi-delta.good{color:var(--ok-fg)}.kpi-delta.bad{color:var(--err-fg)}.kpi-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.kpi-note{font-size:var(--fs-11);color:var(--text-faint)}.grid-main{display:grid;grid-template-columns:1.7fr 1fr;gap:var(--sp-5);align-items:stretch}@media (max-width: 1180px){.grid-main{grid-template-columns:1fr}}.section-gap{margin-top:var(--sp-5)}.card-icon{width:24px;height:24px;border-radius:var(--r-sm);flex-shrink:0;display:grid;place-items:center;background:var(--surface-3);color:var(--text-secondary)}.card-icon svg{width:14px;height:14px}.chart-legend{padding:var(--sp-3) var(--sp-5) 0}.chart-wrap{position:relative;padding:var(--sp-2) var(--sp-5) var(--sp-4)}.chart-wrap svg{width:100%;height:auto;overflow:visible}.chart-svg .gridline{stroke:var(--border-subtle);stroke-width:1}.chart-svg .axis-label{font-size:9.5px;fill:var(--text-faint);font-family:var(--font)}.chart-svg .day-hit{fill:transparent;cursor:crosshair}.chart-svg .crosshair{stroke:var(--border-strong);stroke-width:1;opacity:0;pointer-events:none}.chart-svg .hover-dot{opacity:0;pointer-events:none}.chart-svg .hover-dot circle{r:3.5;stroke-width:2;stroke:var(--surface-1)}.chart-tooltip{position:fixed;z-index:800;pointer-events:none;padding:var(--sp-2) var(--sp-3);border-radius:var(--r);background:var(--surface-3);border:1px solid var(--border-strong);box-shadow:var(--shadow-md);font-size:var(--fs-12);color:var(--text);opacity:0;transform:translate(-50%,calc(-100% - 12px));transition:opacity 90ms ease;min-width:150px;white-space:nowrap}.chart-tooltip.visible{opacity:1}.chart-tooltip .tt-title{font-size:var(--fs-11);color:var(--text-muted);margin-bottom:6px;font-weight:var(--fw-medium)}.chart-tooltip .tt-row{display:flex;align-items:center;gap:var(--sp-2);justify-content:space-between}.chart-tooltip .tt-row+.tt-row{margin-top:3px}.chart-tooltip .tt-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.chart-tooltip .tt-label{color:var(--text-secondary)}.chart-tooltip .tt-val{color:var(--text-strong);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;margin-left:var(--sp-4)}.chart-table-wrap{display:none;padding:0 var(--sp-5) var(--sp-5)}.chart-table-wrap.visible{display:block}.chart-wrap.hidden{display:none}.funnel{padding:var(--sp-2) var(--sp-5) var(--sp-4);display:flex;flex-direction:column}.funnel-row{display:flex;flex-direction:column;gap:6px}.funnel-row-top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2)}.funnel-label{font-size:var(--fs-13);color:var(--text);font-weight:var(--fw-medium)}.funnel-value{font-size:var(--fs-13);color:var(--text-strong);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums}.funnel-value small{color:var(--text-muted);font-weight:var(--fw-regular);margin-left:4px}.funnel-bar-track{height:20px;border-radius:var(--r-sm);background:var(--track);overflow:hidden}.funnel-bar-fill{height:100%;border-radius:var(--r-sm);background:var(--accent);transition:filter var(--t-fast);cursor:crosshair}.funnel-bar-fill:hover{filter:brightness(1.12)}.funnel-connector{display:flex;align-items:center;gap:6px;padding:6px 2px 6px 6px}.funnel-connector svg{width:12px;height:12px;color:var(--text-faint)}.funnel-connector .drop-pill{font-size:var(--fs-11);font-weight:var(--fw-medium);padding:2px 7px;border-radius:var(--r-full)}.drop-mild{color:var(--text-muted);background:var(--neutral-tint)}.drop-steep{color:var(--warn-fg);background:var(--warn-tint)}.funnel-note{display:flex;gap:6px;align-items:flex-start;margin-top:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border-subtle);font-size:var(--fs-11);color:var(--text-faint);line-height:var(--lh)}.funnel-note svg{width:13px;height:13px;flex-shrink:0;margin-top:1px;color:var(--text-faint)}.error-list{padding:var(--sp-2) var(--sp-5) var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4)}.error-row-top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);margin-bottom:6px}.error-label{font-size:var(--fs-13);color:var(--text)}.error-figs{font-size:var(--fs-13);font-variant-numeric:tabular-nums}.error-figs .n{color:var(--text-strong);font-weight:var(--fw-semibold)}.error-figs .p{color:var(--text-muted);margin-left:6px}.error-row .meter{cursor:crosshair}.ab-body{padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-5)}.ab-charts{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5)}.ab-chart-title{font-size:var(--fs-12);color:var(--text-muted);font-weight:var(--fw-medium);margin-bottom:var(--sp-2);text-align:center}.ab-chart svg{width:100%;height:auto;overflow:visible}.ab-chart .ab-bar{cursor:crosshair}.ab-chart .ab-val{font-size:10.5px;fill:var(--text-strong);font-weight:600;font-family:var(--font)}.ab-chart .ab-cat{font-size:10.5px;fill:var(--text-muted);font-family:var(--font)}.variant-dot{width:9px;height:9px;border-radius:3px;flex-shrink:0;display:inline-block}.ab-table td,.ab-table th{white-space:nowrap}.ab-table .variant-cell{display:flex;align-items:center;gap:8px}.btn.is-active{background:var(--accent-tint);border-color:color-mix(in srgb,var(--accent) 30%,transparent);color:var(--accent-fg)}.filter-bar{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.segmented .count{margin-left:6px;font-size:10px;font-weight:var(--fw-semibold);line-height:1;padding:2px 5px;border-radius:999px;background:#ffffff12;color:var(--text-faint)}.theme-light .segmented .count{background:#1013200f}.segmented button.active .count{background:var(--accent-tint-2);color:var(--accent-fg)}.search-box{width:240px;flex-shrink:0}.result-count{font-size:var(--fs-12);color:var(--text-muted);white-space:nowrap}th.sortable{cursor:pointer}.th-sort{display:inline-flex;align-items:center;gap:4px}.th-sort svg{width:11px;height:11px;opacity:.35;transition:opacity var(--t-fast),transform var(--t-fast),color var(--t-fast)}th.sortable:hover .th-sort svg{opacity:.7}th.sorted .th-sort svg{opacity:1;color:var(--accent-fg)}th.sorted.sort-asc .th-sort svg{transform:rotate(180deg)}.campaign-cell{display:flex;flex-direction:column;gap:2px;max-width:220px}.campaign-name{font-weight:var(--fw-medium);color:var(--text-strong);font-size:var(--fs-13)}.campaign-project{font-size:var(--fs-11);color:var(--text-muted)}.funnel-cell{display:flex;align-items:center;gap:9px}.funnel-icon{width:24px;height:24px;border-radius:var(--r-sm);flex-shrink:0;display:grid;place-items:center;background:var(--neutral-tint);color:var(--text-muted)}.funnel-icon svg{width:13px;height:13px}.funnel-name{display:flex;flex-direction:column;gap:3px;min-width:0}.funnel-name .n{font-size:var(--fs-12);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:168px}.progress-cell{display:flex;flex-direction:column;gap:6px;min-width:152px}.progress-nums{display:flex;justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-11);color:var(--text-muted)}.progress-nums strong{color:var(--text-secondary);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.delivered-val{font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.delivered-val.good{color:var(--ok-fg)}.delivered-val.mid{color:var(--warn-fg)}.delivered-val.low{color:var(--err-fg)}.delivered-val.dash{color:var(--text-faint);font-weight:var(--fw-regular)}.errors-cell{position:relative;display:inline-flex;flex-direction:column;align-items:flex-end;gap:2px}.errors-trigger{display:inline-flex;align-items:center;gap:5px;cursor:help;border-bottom:1px dashed var(--border-strong);padding-bottom:1px}.errors-trigger svg{width:12px;height:12px;color:var(--err-fg);opacity:.85}.errors-val{font-weight:var(--fw-medium);color:var(--err-fg);font-variant-numeric:tabular-nums}.errors-val.dash{color:var(--text-faint);font-weight:var(--fw-regular)}.errors-pct{font-size:var(--fs-11);color:var(--text-muted)}.err-tooltip{position:absolute;right:-4px;top:calc(100% + 8px);z-index:var(--z-menu);width:218px;padding:var(--sp-3);background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-4px);pointer-events:none;transition:opacity var(--t-fast),transform var(--t-fast),visibility var(--t-fast);text-align:left;cursor:default}.errors-cell:hover .err-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.err-tooltip-title{font-size:10px;font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.err-tooltip-row{display:flex;justify-content:space-between;gap:8px;font-size:var(--fs-12);padding:4px 0;color:var(--text-secondary)}.err-tooltip-row span:last-child{color:var(--text);font-variant-numeric:tabular-nums;font-weight:var(--fw-medium)}.err-tooltip-row+.err-tooltip-row{border-top:1px solid var(--border-subtle)}.clicks-val{font-weight:var(--fw-medium);color:var(--text-strong);font-variant-numeric:tabular-nums;display:block;text-align:right}.clicks-val.dash{color:var(--text-faint);font-weight:var(--fw-regular)}.clicks-ctr{font-size:var(--fs-11);color:var(--text-muted);display:block;text-align:right}.updated-cell{display:flex;flex-direction:column;gap:1px}.updated-rel{color:var(--text-secondary);font-size:var(--fs-12)}.updated-abs{color:var(--text-faint);font-size:var(--fs-11)}.row-action{opacity:0;transition:opacity var(--t-fast)}.table tbody tr:hover .row-action{opacity:1}.table tbody tr{cursor:pointer}.pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-5)}.pagination .muted{font-size:var(--fs-12)}.pagination .pager{display:flex;align-items:center;gap:var(--sp-2)}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.kpi{animation:rise .5s cubic-bezier(.4,0,.2,1) backwards}.kpi:nth-child(1){animation-delay:.02s}.kpi:nth-child(2){animation-delay:.08s}.kpi:nth-child(3){animation-delay:.14s}.table tbody tr{animation:rise .4s cubic-bezier(.4,0,.2,1) backwards}.table tbody tr:nth-child(1){animation-delay:.05s}.table tbody tr:nth-child(2){animation-delay:.09s}.table tbody tr:nth-child(3){animation-delay:.13s}.table tbody tr:nth-child(4){animation-delay:.17s}.table tbody tr:nth-child(5){animation-delay:.21s}.table tbody tr:nth-child(6){animation-delay:.25s}.table tbody tr:nth-child(7){animation-delay:.29s}.table tbody tr:nth-child(8){animation-delay:.33s}.table tbody tr:nth-child(9){animation-delay:.37s}.refresh-btn.spinning svg{animation:spin .7s linear}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.search-card{display:flex;flex-direction:column;gap:var(--sp-4);margin-bottom:var(--sp-5)}.search-row{display:flex;gap:var(--sp-3)}.search-row .input-group{max-width:420px}.recent-row{flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 var(--sp-3);font-family:var(--mono);font-size:var(--fs-12);color:var(--text-secondary);background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--r-full);transition:border-color var(--t-fast),background var(--t-fast),color var(--t-fast)}.chip:hover{color:var(--text);background:var(--surface-3);border-color:var(--border-strong)}.contact-strip{margin-bottom:var(--sp-6);transition:box-shadow .9s ease}.contact-strip.flash{animation:flashHighlight .9s ease}@keyframes flashHighlight{0%{box-shadow:0 0 0 3px var(--accent-ring),var(--shadow-sm)}to{box-shadow:var(--shadow-sm)}}.contact-main{gap:var(--sp-4)}.contact-avatar{width:48px;height:48px;flex-shrink:0;border-radius:var(--r-lg);display:grid;place-items:center;color:var(--accent-fg);background:var(--accent-tint);border:1px solid color-mix(in srgb,var(--accent) 24%,transparent)}.contact-avatar svg{width:22px;height:22px}.contact-phone{font-size:var(--fs-18);font-weight:var(--fw-semibold);color:var(--text-strong);letter-spacing:.01em}.contact-id-block{display:flex;flex-direction:column;gap:4px;align-items:flex-end}.id-value{font-size:var(--fs-14);color:var(--accent-fg)}.btn.copied{color:var(--ok-fg);border-color:color-mix(in srgb,var(--ok) 30%,transparent);background:var(--ok-tint)}.contact-meta-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--sp-5);padding-top:var(--sp-1)}.meta-item{display:flex;flex-direction:column;gap:5px;min-width:0}.meta-item .value{font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--text-strong)}.meta-item .value a{font-weight:var(--fw-semibold)}.meta-item .value .badge{font-size:var(--fs-11)}.trace-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--sp-6);align-items:start}.timeline-col{min-width:0}.timeline-toolbar{margin-bottom:var(--sp-4)}.timeline-toolbar h3{white-space:nowrap}.timeline{position:relative;display:flex;flex-direction:column}.timeline:before{content:"";position:absolute;left:17px;top:20px;bottom:20px;width:2px;background-image:repeating-linear-gradient(to bottom,var(--accent) 0 6px,transparent 6px 16px);background-size:2px 32px;opacity:.45;animation:threadFlow 2.4s linear infinite}@keyframes threadFlow{0%{background-position-y:0}to{background-position-y:32px}}.t-item{position:relative;display:flex;gap:var(--sp-4);padding-bottom:var(--sp-7);animation:riseIn .46s cubic-bezier(.4,0,.2,1) both}.t-item:last-child{padding-bottom:0}.t-item.is-hidden{display:none}@keyframes riseIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.t-item:nth-child(1){animation-delay:0ms}.t-item:nth-child(2){animation-delay:40ms}.t-item:nth-child(3){animation-delay:80ms}.t-item:nth-child(4){animation-delay:.12s}.t-item:nth-child(5){animation-delay:.16s}.t-item:nth-child(6){animation-delay:.2s}.t-item:nth-child(7){animation-delay:.24s}.t-item:nth-child(8){animation-delay:.28s}.t-item:nth-child(9){animation-delay:.32s}.t-item:nth-child(10){animation-delay:.36s}.t-marker{position:relative;z-index:2;flex-shrink:0;width:36px;height:36px;border-radius:var(--r-full);display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text-secondary);transition:transform var(--t-fast),box-shadow var(--t-fast)}.t-marker svg{width:17px;height:17px}.t-item:hover .t-marker{transform:scale(1.07)}.t-marker.info{color:var(--info-fg);background:var(--info-tint);border-color:color-mix(in srgb,var(--info) 30%,transparent)}.t-marker.sms{color:var(--data-1);background:color-mix(in srgb,var(--data-1) 16%,transparent);border-color:color-mix(in srgb,var(--data-1) 34%,transparent)}.t-marker.ok{color:var(--ok-fg);background:var(--ok-tint);border-color:color-mix(in srgb,var(--ok) 30%,transparent)}.t-marker.engage{color:var(--data-5);background:color-mix(in srgb,var(--data-5) 16%,transparent);border-color:color-mix(in srgb,var(--data-5) 34%,transparent)}.t-marker.wait{color:var(--data-3);background:color-mix(in srgb,var(--data-3) 16%,transparent);border-color:color-mix(in srgb,var(--data-3) 34%,transparent)}.t-marker.warn{color:var(--warn-fg);background:var(--warn-tint);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}.t-marker.err{color:var(--err-fg);background:var(--err-tint);border-color:color-mix(in srgb,var(--err) 30%,transparent)}.t-marker.muted{color:var(--text-muted);background:var(--neutral-tint);border-color:var(--border-strong)}.t-marker.pending{color:var(--text-faint);background:transparent;border:1.5px dashed var(--border-strong)}.t-marker.pending:after{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:var(--r-full);border:1.5px solid var(--accent-ring);animation:pendingRing 2s ease-out infinite}@keyframes pendingRing{0%{transform:scale(.8);opacity:.8}to{transform:scale(1.35);opacity:0}}.t-card{flex:1;min-width:0;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);box-shadow:var(--shadow-sm);transition:border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast)}.t-item:hover .t-card{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.t-card.is-pending{border-style:dashed;box-shadow:none}.t-card.is-pending:hover{transform:none;box-shadow:none}.t-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:6px}.t-time{font-size:var(--fs-11);color:var(--text-muted);white-space:nowrap}.t-thread{font-size:var(--fs-11);color:var(--text-faint);padding:2px 7px;border-radius:var(--r-sm);background:var(--neutral-tint);border:1px solid var(--border-subtle);white-space:nowrap}.t-title{font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--text-strong);margin-bottom:3px}.t-desc{font-size:var(--fs-12);color:var(--text-secondary);line-height:var(--lh)}.t-desc .mono{color:var(--text-secondary)}.msg-preview{margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--r);font-size:var(--fs-13);color:var(--text);line-height:var(--lh);position:relative}.msg-preview:before{content:"«";color:var(--text-faint);font-size:1.1em;margin-right:1px}.msg-preview:after{content:"»";color:var(--text-faint);font-size:1.1em;margin-left:1px}.t-tech{margin-top:var(--sp-2);font-size:var(--fs-11);color:var(--text-muted)}.t-wait-meter{margin-top:var(--sp-3);display:flex;flex-direction:column;gap:6px}.t-wait-meter .row-between{display:flex;justify-content:space-between;font-size:var(--fs-11);color:var(--text-muted)}.trace-aside{display:flex;flex-direction:column;gap:var(--sp-5);position:sticky;top:calc(var(--topbar-h) + var(--sp-6))}.aside-kv{display:flex;justify-content:space-between;gap:var(--sp-3);padding:7px 0;font-size:var(--fs-12);border-bottom:1px solid var(--border-subtle)}.aside-kv:last-child{border-bottom:0;padding-bottom:0}.aside-kv .k{color:var(--text-muted)}.aside-kv .v{color:var(--text);font-weight:var(--fw-medium);text-align:right}.stage-map{display:flex;align-items:flex-start;gap:2px;margin-top:var(--sp-4)}.stage-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.stage-dot{width:20px;height:20px;border-radius:var(--r-full);display:grid;place-items:center;border:2px solid var(--border-strong);background:var(--surface-2);flex-shrink:0}.stage-dot svg{width:11px;height:11px}.stage-step.done .stage-dot{border-color:var(--ok);color:var(--ok-fg);background:var(--ok-tint)}.stage-step.current .stage-dot{border-color:var(--accent);color:var(--accent-fg);background:var(--accent-tint);box-shadow:0 0 0 4px var(--accent-ring)}.stage-step.todo .stage-dot{color:var(--text-faint)}.stage-line{flex:1;height:2px;background:var(--border-strong);margin-top:9px}.stage-step.done+.stage-line{background:var(--ok);opacity:.5}.stage-label{font-size:10.5px;color:var(--text-muted);line-height:1.25;max-width:74px}.stage-step.current .stage-label{color:var(--text-strong);font-weight:var(--fw-medium)}.action-btn{width:100%;justify-content:flex-start;gap:var(--sp-3)}.action-btn svg:last-child{margin-left:auto;width:14px;height:14px;opacity:.5}.info-panel-text{font-size:var(--fs-12);color:var(--text-secondary);line-height:var(--lh-loose)}.info-code-block{margin:var(--sp-3) 0;padding:var(--sp-2) var(--sp-3);background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--r);font-size:var(--fs-12);color:var(--accent-fg)}.info-list{display:flex;flex-direction:column;gap:6px;margin-top:var(--sp-2)}.info-list li{list-style:none;display:flex;gap:8px;font-size:var(--fs-12);color:var(--text-secondary);line-height:var(--lh)}.info-list li svg{width:13px;height:13px;margin-top:2px;flex-shrink:0;color:var(--text-faint)}@media (max-width: 1180px){.trace-layout{grid-template-columns:1fr}.trace-aside{position:static}.contact-meta-grid{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:var(--sp-4)}}@media (max-width: 1024px){.contact-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.search-row{flex-wrap:wrap}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.builder-body{display:flex;flex:1 1 auto;min-height:0}.palette-rail{width:232px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--sp-5);padding:var(--sp-5) var(--sp-4);background:var(--surface-1);border-right:1px solid var(--border);overflow-y:auto}.palette-rail .caps{padding:0 var(--sp-1)}.palette-item .p-icon{width:30px;height:30px;flex-shrink:0;border-radius:var(--r-sm);display:grid;place-items:center}.palette-item .p-icon svg{width:16px;height:16px}.palette-item.pi-base .p-icon{color:var(--node-base);background:color-mix(in srgb,var(--node-base) 16%,transparent)}.palette-item.pi-sms .p-icon{color:var(--node-sms);background:color-mix(in srgb,var(--node-sms) 16%,transparent)}.palette-item.pi-telegram .p-icon{color:var(--node-telegram);background:color-mix(in srgb,var(--node-telegram) 16%,transparent)}.palette-item.pi-call .p-icon{color:var(--node-call);background:color-mix(in srgb,var(--node-call) 16%,transparent)}.palette-item.pi-wait .p-icon{color:var(--node-wait);background:color-mix(in srgb,var(--node-wait) 16%,transparent)}.palette-item.pi-filter .p-icon{color:var(--node-filter);background:color-mix(in srgb,var(--node-filter) 16%,transparent)}.palette-item.pi-cond .p-icon{color:var(--node-cond);background:color-mix(in srgb,var(--node-cond) 16%,transparent)}.palette-item.pi-action .p-icon{color:var(--node-action);background:color-mix(in srgb,var(--node-action) 16%,transparent)}.palette-item.pi-stop .p-icon{color:var(--node-stop);background:color-mix(in srgb,var(--node-stop) 16%,transparent)}.palette-item.pi-whatsapp .p-icon,.palette-item.pi-crm .p-icon{color:var(--node-soon);background:color-mix(in srgb,var(--node-soon) 16%,transparent)}.palette-item .p-label{display:flex;flex-direction:column;gap:1px;min-width:0}.palette-item .p-label strong{font-size:var(--fs-13);font-weight:var(--fw-medium);color:var(--text)}.palette-item .p-label span{font-size:var(--fs-11);color:var(--text-muted)}.palette-item .p-drag{margin-left:auto;color:var(--text-faint);width:14px;height:14px}.funnel-summary{margin-top:auto;padding:var(--sp-4);border-radius:var(--r-lg);background:var(--surface-2);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--sp-2)}.funnel-summary .fs-row{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-12)}.funnel-summary .fs-row strong{color:var(--text-strong);font-variant-numeric:tabular-nums}.canvas-wrap{position:relative;flex:1 1 auto;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(circle at 1px 1px,var(--border) 1px,transparent 0) 0 0 / 22px 22px,var(--bg-canvas)}.edges-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:1}.canvas-toolbar{position:absolute;top:var(--sp-4);left:var(--sp-4);z-index:20;display:flex;align-items:center;gap:var(--sp-2)}.canvas-toolbar .badge{background:var(--surface-1);box-shadow:var(--shadow-sm)}.zoom-controls{position:absolute;bottom:var(--sp-4);left:var(--sp-4);z-index:20;display:flex;flex-direction:column;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-md);overflow:hidden}.zoom-controls button{width:34px;height:32px;display:grid;place-items:center;color:var(--text-secondary);transition:background var(--t-fast),color var(--t-fast);border-bottom:1px solid var(--border-subtle)}.zoom-controls button:last-child{border-bottom:none}.zoom-controls button:hover{background:var(--surface-3);color:var(--text)}.zoom-controls svg{width:16px;height:16px}.zoom-level{position:absolute;bottom:var(--sp-4);left:56px;z-index:20;display:flex;align-items:center;height:32px;padding:0 var(--sp-3);font-size:var(--fs-12);font-variant-numeric:tabular-nums;color:var(--text-muted);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-md)}.minimap{position:absolute;bottom:var(--sp-4);right:var(--sp-4);z-index:20;width:176px;height:118px;background:color-mix(in srgb,var(--surface-1) 90%,transparent);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);overflow:hidden}.minimap svg{width:100%;height:100%}.minimap-viewport{fill:var(--accent-tint);stroke:var(--accent);stroke-width:1.5}.edge-label{font-size:10.5px;font-weight:var(--fw-semibold);fill:var(--text-muted);letter-spacing:.01em}.edge-label-bg{fill:var(--bg-canvas)}.edge-label.yes{fill:var(--ok-fg)}.edge-label.no{fill:var(--err-fg)}.node .node-ab-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:var(--r-sm);font-size:var(--fs-11);font-weight:var(--fw-semibold);background:var(--accent-tint);color:var(--accent-fg);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}.node-stat-row{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-11);color:var(--text-muted)}.node-stat-row strong{color:var(--text-secondary);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.node.type-stop .node-body{color:var(--err-fg)}.node .node-chans{display:flex;flex-direction:column;gap:4px}.node .node-chan{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-11);font-weight:var(--fw-medium);color:var(--text-secondary)}.node .node-chan .ch-ic{width:15px;height:15px;color:var(--data-1);display:inline-grid;place-items:center}.node .node-chan .ch-ic svg{width:15px;height:15px}.node .node-chan.off{color:var(--text-faint);text-decoration:line-through}.node .node-chan.off .ch-ic{color:var(--text-faint)}.palette-item.is-soon{cursor:not-allowed;opacity:.55}.palette-item.is-soon:hover{border-color:var(--border-subtle);background:var(--surface-2)}.palette-item.is-soon .p-soon{margin-left:auto;flex-shrink:0;padding:1px 6px;border-radius:var(--r-sm);font-size:var(--fs-11);font-weight:var(--fw-semibold);color:var(--text-faint);background:var(--neutral-tint)}.outcome-split{margin-top:var(--sp-2);padding:var(--sp-3);border-radius:var(--r);background:var(--surface-2);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--sp-2)}.outcome-split-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.outcome-reasons{display:flex;flex-direction:column;gap:4px;padding-left:var(--sp-2)}.outcome-note{font-size:var(--fs-11);color:var(--text-faint)}.ab-weight-total{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);border-radius:var(--r);background:var(--ok-tint);border:1px solid color-mix(in srgb,var(--ok) 26%,transparent);font-size:var(--fs-12);color:var(--ok-fg);font-weight:var(--fw-medium)}.ab-weight-total.mismatch{background:var(--err-tint);border-color:color-mix(in srgb,var(--err) 26%,transparent);color:var(--err-fg)}.ab-weight-total svg{width:14px;height:14px}.ab-share{flex:0 0 auto;min-width:52px;height:34px;display:inline-flex;align-items:center;justify-content:center;padding:0 var(--sp-3);border-radius:var(--r);background:var(--surface-2);border:1px solid var(--border-subtle);color:var(--text-strong);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;font-size:var(--fs-13)}.variant-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);overflow:hidden}.variant-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--surface-3);border-bottom:1px solid var(--border-subtle)}.variant-letter{width:20px;height:20px;border-radius:var(--r-sm);display:grid;place-items:center;flex-shrink:0;font-size:10.5px;font-weight:var(--fw-bold);color:var(--text-on-accent)}.variant-card:nth-of-type(1) .variant-letter{background:var(--data-1)}.variant-card:nth-of-type(2) .variant-letter{background:var(--data-2)}.variant-card:nth-of-type(3) .variant-letter{background:var(--data-3)}.variant-head strong{font-size:var(--fs-12);font-weight:var(--fw-semibold);color:var(--text-strong)}.variant-head .spacer{flex:1}.variant-remove{width:22px;height:22px;display:grid;place-items:center;border-radius:var(--r-sm);color:var(--text-faint);transition:background var(--t-fast),color var(--t-fast)}.variant-remove:hover{background:var(--err-tint);color:var(--err-fg)}.variant-remove svg{width:14px;height:14px}.variant-body{padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-3)}.char-count{display:flex;justify-content:flex-end;font-size:var(--fs-11);color:var(--text-faint);margin-top:2px}.char-count.warn{color:var(--warn-fg)}.weight-row{display:flex;align-items:center;gap:var(--sp-3)}.weight-row input[type=range]{flex:1}.weight-value{width:46px;flex-shrink:0;text-align:right;font-size:var(--fs-12);font-variant-numeric:tabular-nums;color:var(--text-strong);font-weight:var(--fw-medium)}.track-code-field{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-3);height:30px;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--r-sm);font-family:var(--mono);font-size:var(--fs-11);color:var(--text-secondary)}.track-code-field .spacer{flex:1}.track-code-field button{color:var(--text-faint);width:16px;height:16px;display:grid;place-items:center}.track-code-field button:hover{color:var(--accent-fg)}.track-code-field button svg{width:13px;height:13px}.add-variant-btn{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);height:36px;border:1px dashed var(--border-strong);border-radius:var(--r);color:var(--text-secondary);font-size:var(--fs-13);font-weight:var(--fw-medium);background:transparent;transition:border-color var(--t-fast),background var(--t-fast),color var(--t-fast)}.add-variant-btn:hover{border-color:var(--accent);color:var(--accent-fg);background:var(--accent-tint)}.add-variant-btn svg{width:15px;height:15px}.add-variant-hint{text-align:center;font-size:var(--fs-11);color:var(--text-faint)}.channel-pill{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r);background:var(--surface-2);border:1px solid var(--border)}.channel-pill .ch-icon{width:22px;height:22px;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--info-tint);color:var(--info-fg)}.channel-pill .ch-icon svg{width:13px;height:13px}.channel-pill strong{font-size:var(--fs-13);font-weight:var(--fw-medium);color:var(--text)}.channel-pill span{font-size:var(--fs-11);color:var(--text-muted)}.canvas-wrap{background:var(--bg-canvas)}.canvas-wrap .react-flow{flex:1 1 auto;min-height:0}.react-flow__attribution{display:none}.react-flow__node{cursor:grab;font-family:var(--font)}.react-flow__node:active{cursor:grabbing}.react-flow__node.selected{outline:none}.react-flow__handle{width:11px;height:11px;border-radius:var(--r-full);box-shadow:0 0 0 3px var(--bg-canvas)}.react-flow__handle.target{width:16px;height:8px;border-radius:4px;background:transparent;border:1.5px solid var(--text-muted)}.react-flow__handle.target:hover{border-color:var(--accent);background:var(--accent-tint)}.react-flow__handle.source{--port: var(--accent);background:var(--port);border:2px solid var(--port)}.react-flow__handle.source.yes,.react-flow__handle.source.lead{--port: var(--ok)}.react-flow__handle.source.no,.react-flow__handle.source.negative{--port: var(--err)}.react-flow__handle.source.no_answer{--port: var(--text-muted)}.react-flow__handle.source.timeout{--port: var(--text-faint)}.react-flow__handle.source:hover{filter:brightness(1.15)}.react-flow__handle.source:after{content:"";position:absolute;width:0;height:0;pointer-events:none}.react-flow__handle-bottom.source:after{left:50%;top:100%;margin-top:3px;transform:translate(-50%);border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--port)}.react-flow__handle-right.source:after{top:50%;left:100%;margin-left:3px;transform:translateY(-50%);border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:5px solid var(--port)}.react-flow__handle.connectingfrom,.react-flow__handle.connectingto{box-shadow:0 0 0 3px var(--accent-ring)}.react-flow__edge-path{stroke-width:2}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--accent-hover)!important}.react-flow__edge-text{font-family:var(--font)}.react-flow__controls{box-shadow:var(--shadow-md);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.react-flow__controls-button{background:var(--surface-1);border-bottom:1px solid var(--border-subtle);width:30px;height:30px}.react-flow__controls-button:hover{background:var(--surface-3)}.react-flow__controls-button svg{fill:var(--text-secondary)}.react-flow__minimap{background:color-mix(in srgb,var(--surface-1) 90%,transparent);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md)}.react-flow svg{max-width:none}.port-label{position:absolute;left:100%;transform:translate(13px,-50%);max-width:132px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;font-weight:var(--fw-medium);line-height:1;pointer-events:none}.port-label.bottom{left:50%;top:100%;transform:translate(-50%,13px);max-width:220px;text-align:center}.node-outcome-legend{display:flex;flex-wrap:wrap;gap:4px 10px}.node-outcome-legend .ol-item{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-11);color:var(--text-muted)}.node-outcome-legend .ol-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}.react-flow__node.node-invalid{outline:2px solid var(--err-fg);outline-offset:3px;border-radius:var(--r-lg)}.validation-wrap{position:relative;display:inline-flex}.validation-toggle{cursor:pointer;border:none;font:inherit}.validation-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:320px;max-width:460px;max-height:320px;overflow-y:auto;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:var(--sp-2);display:flex;flex-direction:column;gap:2px}.validation-row{display:flex;flex-direction:column;gap:1px;text-align:left;cursor:pointer;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);border:none;background:transparent;font:inherit}.validation-row:hover{background:var(--surface-2)}.validation-row strong{font-size:var(--fs-12);color:var(--text-strong)}.validation-row span{font-size:var(--fs-12);color:var(--text-muted);line-height:1.3}.login-page{min-height:100vh;display:grid;place-items:center;padding:var(--sp-5);background:var(--bg-app)}.login-card{width:min(360px,100%);display:flex;flex-direction:column;gap:var(--sp-4)}.login-brand{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--text-strong);letter-spacing:-.01em}.login-brand-mark{width:26px;height:26px;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--text-on-accent);background:linear-gradient(140deg,var(--accent-hover),var(--accent-active));box-shadow:0 2px 8px var(--accent-glow),var(--border-inset)}.login-title{margin:0}.login-error{padding:var(--sp-2) var(--sp-3);border:1px solid color-mix(in srgb,var(--err) 24%,transparent);border-radius:var(--r);background:var(--err-tint);color:var(--err-fg);font-size:var(--fs-13)}
