:root{--bg: #eceef3;--card: #ffffff;--ink: #1b1f2a;--muted: #6b7280;--line: #e3e6ec;--brand: #6d28d9;--accent: #7c5cff;--ok: #16a34a;--good: #16a34a;--warn: #b45309;--danger: #dc2626;--rail: #14161d;--rail-2: #1b1e28;--rail-line: #262a36;--rail-ink: #c3c8d4;--rail-muted: #7b8194}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}input,textarea,select{font:inherit}code,.mono{font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,monospace}.app{display:flex;min-height:100vh}.sidebar{width:244px;flex-shrink:0;background:var(--rail);color:var(--rail-ink);border-right:1px solid var(--rail-line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .brand{display:flex;align-items:center;gap:8px;padding:16px 18px;color:#fff;font-weight:700;letter-spacing:-.01em;border-bottom:1px solid var(--rail-line)}.sidebar .brand .dot{width:9px;height:9px;border-radius:3px;background:var(--accent);box-shadow:0 0 10px var(--accent)}.sidebar .brand small{color:var(--rail-muted);font-weight:500;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.nav-group{padding:12px 10px 4px}.nav-group>.lbl{font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rail-muted);padding:4px 10px;font-weight:600}.nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 10px;margin:1px 0;border-radius:8px;border:none;background:none;color:var(--rail-ink);font-size:.875rem;font-weight:500}.nav-item:hover{background:var(--rail-2);color:#fff}.nav-item.active{background:var(--accent);color:#fff;font-weight:600}.nav-item .ico{width:18px;text-align:center;opacity:.9}.nav-item .badge{margin-left:auto;font-size:.68rem;background:#ffffff1a;padding:1px 7px;border-radius:999px}.sidebar .foot{margin-top:auto;padding:12px 14px;border-top:1px solid var(--rail-line);font-size:.78rem;color:var(--rail-muted)}.sidebar .env{margin:8px 10px;padding:10px 12px;background:var(--rail-2);border:1px solid var(--rail-line);border-radius:10px}.sidebar .env .k{font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--rail-muted)}.sidebar .env .v{color:#fff;font-weight:600;font-size:.92rem;margin-top:2px}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 22px;background:#fbfcfe;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.topbar .crumb{font-size:.95rem;font-weight:600}.topbar .crumb small{color:var(--muted);font-weight:500}.content{padding:22px;max-width:1180px;width:100%;margin:0 auto}.btn{background:var(--brand);color:#fff;border:none;padding:.55rem .9rem;border-radius:8px;font-weight:600}.btn:hover{filter:brightness(1.06)}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}.btn:disabled{opacity:.55;cursor:default}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.05rem 1.15rem}.input,.textarea,.select{width:100%;border:1px solid var(--line);border-radius:8px;padding:.55rem .7rem;background:#fff;color:var(--ink)}.input:focus,.textarea:focus,.select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.textarea{min-height:160px;resize:vertical;line-height:1.5}.label{font-size:.78rem;font-weight:600;color:var(--muted);margin-bottom:.3rem;display:block}.muted{color:var(--muted)}h2,h3,h4{letter-spacing:-.01em}.chat{display:flex;flex-direction:column;gap:.5rem;max-height:380px;overflow:auto;padding:.6rem;background:#f7f8fa;border:1px solid var(--line);border-radius:10px}.bubble{padding:.5rem .75rem;border-radius:12px;max-width:80%;white-space:pre-wrap;line-height:1.4}.bubble.user{align-self:flex-end;background:var(--brand);color:#fff}.bubble.bot{align-self:flex-start;background:#fff;border:1px solid var(--line)}.flownode{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;border:1px solid var(--line);border-radius:10px;background:#fff}.pill{font-size:.7rem;padding:.15rem .5rem;border-radius:999px;background:#efeafe;color:var(--brand);font-weight:600}.tabs{display:none}.container{width:100%}
