:root{--bg:#f5f6f8;--panel:#fff;--sunken:#f8f9fb;--line:#e6e8ec;--line-strong:#d5d9e0;--hover:#f1f3f6;--text:#0f172a;--text-2:#334155;--muted:#64748b;--accent:#4f46e5;--accent-strong:#4338ca;--accent-soft:#eef0ff;--ok:#059669;--warn:#d97706;--err:#dc2626;--idle:#94a3b8;--radius:12px;--radius-sm:8px;--shadow-sm:0 1px 2px #0f172a0d;--shadow:0 1px 2px #0f172a0a, 0 4px 16px #0f172a0d;--shadow-lg:0 24px 64px #0f172a38;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font:14px/1.6 -apple-system,BlinkMacSystemFont,Inter,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#0b0d12;--panel:#14171f;--sunken:#10131a;--line:#232834;--line-strong:#323949;--hover:#1b2029;--text:#f1f5f9;--text-2:#cbd5e1;--muted:#94a3b8;--accent:#818cf8;--accent-strong:#a5b4fc;--accent-soft:#1e2140;--ok:#34d399;--warn:#fbbf24;--err:#f87171;--shadow-sm:none;--shadow:0 1px 0 #ffffff05;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin:0}h1{letter-spacing:-.01em;font-size:22px;font-weight:650;line-height:1.3}h2{letter-spacing:-.01em;font-size:20px;font-weight:650}h3{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px;font-size:12px;font-weight:600}pre{color:var(--text-2);white-space:pre-wrap;word-break:break-all;margin:0;font:12px/1.7 ui-monospace,SF Mono,Menlo,monospace}code,.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}::selection{background:var(--accent-soft)}.muted{color:var(--muted)}.small{font-size:12px}.row{align-items:center;gap:8px;display:flex}.stack{flex-direction:column;gap:16px;display:flex}.grow{flex:1;min-width:0}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.icon{flex-shrink:0}.shell{grid-template-columns:236px minmax(0,1fr);min-height:100vh;display:grid}.side{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:4px;height:100vh;padding:18px 12px 12px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.01em;align-items:center;gap:10px;padding:4px 8px 18px;font-weight:650;display:flex}.brand-mark{color:#fff;background:linear-gradient(135deg,#6366f1,#4338ca);border-radius:9px;place-items:center;width:30px;height:30px;display:grid;box-shadow:0 2px 8px #4f46e559}.brand small{color:var(--muted);letter-spacing:0;margin-top:-2px;font-size:11px;font-weight:500;display:block}.nav{flex-direction:column;gap:2px;display:flex}.nav a{border-radius:var(--radius-sm);color:var(--text-2);align-items:center;gap:10px;padding:8px 10px;font-weight:500;display:flex}.nav a:hover{background:var(--hover);text-decoration:none}.nav a.active{background:var(--accent-soft);color:var(--accent-strong)}.nav a .icon{opacity:.85}.nav-label{letter-spacing:.06em;color:var(--muted);text-transform:uppercase;padding:14px 10px 6px;font-size:11px;font-weight:600}.count{background:var(--warn);color:#fff;text-align:center;border-radius:10px;min-width:20px;margin-left:auto;padding:0 6px;font-size:11px;font-weight:700;line-height:20px}.side-foot{flex-direction:column;gap:8px;margin-top:auto;display:flex}.conn{border-radius:var(--radius-sm);color:var(--muted);align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.conn:before{content:"";background:var(--ok);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 20%, transparent);border-radius:50%}.conn.off{color:var(--warn)}.conn.off:before{background:var(--warn);box-shadow:0 0 0 3px color-mix(in srgb, var(--warn) 20%, transparent)}.me{border:1px solid var(--line);border-radius:var(--radius);background:var(--sunken);align-items:center;gap:10px;padding:8px;display:flex}.me b{font-weight:600;line-height:1.3;display:block}.me small{color:var(--muted);font-size:12px}.main{min-width:0}.page{max-width:1160px;margin:0 auto;padding:32px 36px 56px}.head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.sub{color:var(--muted);margin-top:4px}@media (width<=860px){.shell{grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid var(--line);flex-flow:wrap;align-items:center;height:auto;padding:10px 12px;position:static}.brand{padding:0 8px 0 0}.brand small,.nav-label,.conn{display:none}.nav{flex-direction:row}.side-foot{flex-direction:row;margin:0 0 0 auto}.me>div{display:none}.page{padding:20px 16px 40px}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.pad{padding:22px}.panel-head{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:16px 20px;display:flex}.panel-head h3{margin:0}.panel-head p{color:var(--muted);margin-top:2px;font-size:12px}.btn{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--panel);height:34px;color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:500;transition:background .12s,border-color .12s,transform 50ms;display:inline-flex}.btn:hover:not(:disabled){background:var(--hover)}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 1px 2px #4f46e54d}.btn.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.btn.danger{color:var(--err);border-color:color-mix(in srgb, var(--err) 35%, var(--line))}.btn.danger:hover:not(:disabled){background:color-mix(in srgb, var(--err) 8%, transparent)}.btn.danger.solid{background:var(--err);border-color:var(--err);color:#fff}.btn.sm{height:28px;padding:0 10px;font-size:13px}.btn.lg{border-radius:10px;height:44px;padding:0 20px;font-size:15px}.btn.ghost{box-shadow:none;color:var(--muted);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--hover);color:var(--text)}.btn.link{height:auto;color:var(--accent);box-shadow:none;background:0 0;border:0;padding:0;font-weight:500}.btn.link:hover:not(:disabled){background:0 0;text-decoration:underline}.btn.icon-only{width:34px;padding:0}.input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);width:100%;height:36px;color:var(--text);font:inherit;padding:0 12px;transition:border-color .12s,box-shadow .12s}.input::placeholder{color:var(--idle)}.input:hover:not(:disabled){border-color:var(--idle)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.input:disabled,.input[readonly]{background:var(--sunken);color:var(--text-2)}select.input{padding-right:28px}.input.sm{height:30px;font-size:13px}.search{position:relative}.search .icon{color:var(--idle);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.search .input{padding-left:34px}.field{flex-direction:column;gap:6px;font-size:13px;display:flex}.field>span{color:var(--text-2);font-weight:500}.field>.small{color:var(--muted);font-weight:400}.seg{background:var(--hover);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:5px 14px;font-weight:500;transition:background .12s,color .12s}.seg button:hover:not(:disabled):not([aria-pressed=true]){color:var(--text)}.seg button[aria-pressed=true]{background:var(--panel);color:var(--text);box-shadow:0 1px 3px #0f172a1f}.seg button:disabled{opacity:.5;cursor:not-allowed}.switch{background:var(--line-strong);cursor:pointer;border:0;border-radius:11px;flex-shrink:0;width:38px;height:22px;padding:0;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:left .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true]:after{left:19px}.switch:disabled{opacity:.5;cursor:not-allowed}.status{white-space:nowrap;color:var(--idle);background:color-mix(in srgb, currentColor 11%, transparent);border-radius:999px;align-items:center;gap:6px;padding:2px 10px 2px 8px;font-size:12px;font-weight:600;display:inline-flex}.status:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.s-pending{color:var(--warn)}.s-running{color:var(--accent)}.s-running:before{animation:1.2s infinite blink}.s-succeeded,.s-ok{color:var(--ok)}.s-failed,.s-error{color:var(--err)}.s-rejected,.s-off{color:var(--idle)}@keyframes blink{50%{opacity:.25}}.badge{color:var(--text-2);background:var(--hover);white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.badge.accent{color:var(--accent-strong);background:var(--accent-soft)}.badge.warn{color:var(--warn);background:color-mix(in srgb, var(--warn) 13%, transparent)}.avatar{object-fit:cover;-webkit-user-select:none;user-select:none;flex-shrink:0;place-items:center;font-weight:650;display:inline-grid}.split{grid-template-columns:360px minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (width<=1000px){.split{grid-template-columns:1fr}}.list{max-height:calc(100vh - 140px);position:sticky;top:20px;overflow:hidden auto}.item{text-align:left;border:0;border-bottom:1px solid var(--line);width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;align-items:flex-start;gap:12px;padding:14px 16px;transition:background .1s;display:flex;position:relative}.item:last-child{border-bottom:0}.item:hover{background:var(--hover)}.item[aria-current=true]{background:var(--accent-soft)}.item[aria-current=true]:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:10px;bottom:10px;left:0}.item b{font-weight:600}.item.ghost-item{color:var(--muted);justify-content:center;font-size:13px}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:2px;font-size:12px;display:flex}.meta>*+:before{content:"·";color:var(--line-strong);margin-right:8px}.detail-head{align-items:flex-start;gap:14px;display:flex}.meter{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.meter-bar{background:var(--hover);border-radius:3px;width:72px;height:6px;overflow:hidden}.meter-bar i{background:linear-gradient(90deg, #818cf8, var(--accent));border-radius:3px;height:100%;display:block}.divider{background:var(--line);border:0;height:1px;margin:0}.pipe{border:1px solid var(--line);border-radius:var(--radius);background:var(--sunken);grid-template-columns:repeat(4,1fr);padding:16px 18px;display:grid}@media (width<=640px){.pipe{grid-template-columns:1fr 1fr;row-gap:16px}}.node{flex-direction:column;gap:8px;padding-right:10px;display:flex;position:relative}.node:before{content:"";background:var(--line-strong);border-radius:1px;height:2px;position:absolute;top:11px;left:30px;right:6px}.node:last-child:before{display:none}.node.done:before{background:var(--ok)}.dot{z-index:1;border:2px solid var(--line-strong);background:var(--panel);color:#fff;border-radius:50%;place-items:center;width:24px;height:24px;display:grid;position:relative}.node.done .dot{background:var(--ok);border-color:var(--ok)}.node.active .dot{border-color:var(--accent)}.node.active .dot:after{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1.2s infinite blink}.node.wait .dot{border-color:var(--warn)}.node.wait .dot:after{content:"";background:var(--warn);border-radius:50%;width:8px;height:8px}.node.bad .dot{background:var(--err);border-color:var(--err)}.node b{font-size:13px;font-weight:600;line-height:1.3;display:block}.node span{color:var(--muted);font-size:12px;line-height:1.4;display:block}.evidence{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);padding:14px 16px}.evidence+.evidence{margin-top:10px}.quote{border-left:3px solid var(--accent-soft);background:var(--sunken);color:var(--text-2);border-radius:0 6px 6px 0;margin:8px 0 0;padding:6px 12px}.callout{border-radius:var(--radius-sm);background:var(--hover);color:var(--text-2);padding:12px 14px}.callout.err{background:color-mix(in srgb, var(--err) 9%, transparent);color:var(--err)}.callout.info{background:var(--accent-soft);color:var(--accent-strong)}.logbox{border-radius:var(--radius-sm);background:var(--sunken);border:1px solid var(--line);padding:12px 14px}.action-bar{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));border-radius:var(--radius);background:var(--accent-soft);flex-direction:column;gap:10px;padding:16px;display:flex}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--muted);background:var(--sunken);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 20px;font-size:12px;font-weight:600}th:first-child{border-top-left-radius:var(--radius)}th:last-child{border-top-right-radius:var(--radius)}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:14px 20px}tbody tr{transition:background .1s}tbody tr:hover{background:var(--sunken)}tr:last-child td{border-bottom:0}tr.is-off td{opacity:.55}tr.is-off td:last-child,tr.is-off td:first-child{opacity:1}.backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:20;background:#0f172a73;place-items:center;animation:.12s fade;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);width:min(480px,92vw);max-height:88vh;box-shadow:var(--shadow-lg);border-radius:16px;padding:26px;animation:.15s pop;overflow:auto}.modal h2{margin-bottom:20px;font-size:18px}.modal-foot{justify-content:flex-end;gap:8px;margin-top:24px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(6px)scale(.98)}}.toasts{z-index:30;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow-lg);border-radius:10px;padding:10px 18px;font-weight:500;animation:.15s pop}.toast.danger{background:var(--err);color:#fff}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:6px;padding:56px 16px;display:flex}.empty-icon{background:var(--hover);width:44px;height:44px;color:var(--idle);border-radius:12px;place-items:center;margin-bottom:6px;display:grid}.skeleton{background:linear-gradient(90deg, var(--hover) 25%, var(--line) 37%, var(--hover) 63%);background-size:400% 100%;border-radius:6px;height:14px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.roles{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;display:grid}@media (width<=800px){.roles{grid-template-columns:1fr}}.role-card{padding:14px 16px}.role-card b{align-items:center;gap:8px;margin-bottom:4px;display:flex}.role-card p{color:var(--muted);font-size:12px}.person{align-items:center;gap:12px;min-width:0;display:flex}.person b{align-items:center;gap:6px;font-weight:600;display:flex}.toolbar{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:14px 20px;display:flex}.toolbar .search{width:260px}.login{background:var(--panel);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:100vh;display:grid}@media (width<=900px){.login{grid-template-columns:1fr}.login-hero{display:none}}.login-hero{color:#fff;background:radial-gradient(1200px 600px at 0 0,#6366f1 0%,#0000 60%),radial-gradient(900px 500px at 100% 100%,#7c3aed 0%,#0000 55%),#1e1b4b;flex-direction:column;justify-content:space-between;padding:48px 56px;display:flex;position:relative;overflow:hidden}.login-hero:after{content:"";pointer-events:none;background-image:radial-gradient(#ffffff1f 1px,#0000 1px);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 40%,#0000);mask-image:linear-gradient(#0000,#000 40%,#0000)}.login-hero>*{z-index:1;position:relative}.login-hero .brand{padding:0;font-size:16px}.login-hero .brand-mark{background:#ffffff29;box-shadow:inset 0 0 0 1px #ffffff40}.login-hero h2{letter-spacing:-.02em;max-width:440px;font-size:34px;line-height:1.25}.login-hero p{color:#ffffffb8;max-width:420px;margin-top:14px;font-size:15px}.flow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.flow span{background:#ffffff1f;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:500;box-shadow:inset 0 0 0 1px #ffffff2e}.flow i{color:#ffffff80;font-style:normal}.login-main{place-items:center;padding:32px;display:grid}.login-card{flex-direction:column;gap:22px;width:min(380px,100%);display:flex}.login-card h1{font-size:26px}.login-card .sub{margin-top:6px}.login-err{border-radius:var(--radius-sm);color:var(--err);background:color-mix(in srgb, var(--err) 9%, transparent);gap:8px;padding:10px 12px;font-size:13px;display:flex}.feishu-btn{width:100%}.feishu-mark{color:#3370ff;background:#fff;border-radius:6px;place-items:center;width:22px;height:22px;font-size:13px;font-weight:800;display:grid}.note{border-radius:var(--radius-sm);background:var(--sunken);border:1px solid var(--line);color:var(--muted);gap:10px;padding:12px 14px;font-size:12px;display:flex}.note .icon{color:var(--accent);margin-top:2px}.authz{color:#1f2329;background:#f2f4f8;place-items:center;min-height:100vh;padding:24px;display:grid}.authz-card{background:#fff;border-radius:16px;flex-direction:column;gap:18px;width:min(420px,100%);padding:32px;display:flex;box-shadow:0 8px 40px #1f23291f}.authz-card h2{font-size:18px}.authz-acc{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #dee0e3;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.authz-acc:hover:not(:disabled){background:#f5f8ff;border-color:#3370ff}.authz-acc:disabled{opacity:.5}.authz-tag{color:#8a6d00;background:#fff3cd;border-radius:6px;align-self:flex-start;padding:3px 10px;font-size:12px;font-weight:600}.fidelity{border-radius:var(--radius);border:1px solid var(--line);background:var(--sunken);padding:14px 16px}.fidelity-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fid-code{letter-spacing:.02em;color:#fff;background:var(--idle);border-radius:7px;place-items:center;min-width:34px;height:24px;padding:0 8px;font-size:13px;font-weight:800;display:inline-grid}.verbatim{border-radius:999px;margin-left:auto;padding:2px 10px;font-size:12px;font-weight:700}.verbatim.yes{color:var(--ok);background:color-mix(in srgb, var(--ok) 13%, transparent)}.verbatim.no{color:var(--warn);background:color-mix(in srgb, var(--warn) 14%, transparent)}.fidelity-hint{color:var(--muted);margin-top:6px}.tone-ok{border-color:color-mix(in srgb, var(--ok) 40%, var(--line));background:color-mix(in srgb, var(--ok) 6%, var(--panel))}.tone-ok .fid-code{background:var(--ok)}.tone-warn{border-color:color-mix(in srgb, var(--warn) 45%, var(--line));background:color-mix(in srgb, var(--warn) 7%, var(--panel))}.tone-warn .fid-code{background:var(--warn)}.tone-err{border-color:color-mix(in srgb, var(--err) 45%, var(--line));background:color-mix(in srgb, var(--err) 7%, var(--panel))}.tone-err .fid-code{background:var(--err)}.tone-err .verbatim.no{color:var(--err);background:color-mix(in srgb, var(--err) 12%, transparent)}.facts{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 16px;margin:12px 0 0;display:grid}.facts div{min-width:0}.facts dt{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.facts dd{text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;overflow:hidden}.raw-output summary{cursor:pointer}
