@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap";[data-theme=dark]{--bg: #0E0E0E;--surface: #161616;--surface-2: #1E1E1E;--text: #F4F4F0;--text-dim: #8C8C88;--text-dim-2: #5A5A57;--line: #2A2A2A;--line-2: #3A3A3A;--signal: #FF3D00;--signal-soft: rgba(255, 61, 0, .16);--signal-faint:rgba(255, 61, 0, .08);--good: #00E676;--warn-soft: #FFB300;--danger: #FF5247;--on-signal: #0E0E0E;--grain-blend: overlay;--grain-op: .05;--row-hover: rgba(255, 255, 255, .025);--p-uni: #FF3D00;--p-ai: #8B7BFF;--p-tg: #3B9EE3;--p-game: #1FB6B6}[data-theme=light]{--bg: #F3F2EC;--surface: #FBFBF7;--surface-2: #E9E8E0;--text: #161613;--text-dim: #6B6A63;--text-dim-2: #9B9A90;--line: #D8D7CD;--line-2: #C4C3B7;--signal: #C8380C;--signal-soft: rgba(200, 56, 12, .12);--signal-faint:rgba(200, 56, 12, .06);--good: #0B8A45;--warn-soft: #9A6700;--danger: #C8302B;--on-signal: #FBFBF7;--grain-blend: multiply;--grain-op: .035;--row-hover: rgba(0, 0, 0, .025);--p-uni: #C8380C;--p-ai: #5A45D6;--p-tg: #1E7FC4;--p-game: #0E8E8E}:root{--display: "Space Grotesk", system-ui, sans-serif;--mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, monospace;--r: 2px;--sidebar-w: 248px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--mono);font-size:14px;line-height:1.5;font-feature-settings:"tnum" 1,"calt" 0;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}#root{min-height:100vh}button{font-family:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--signal);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-2);border:3px solid var(--bg);border-radius:6px}::-webkit-scrollbar-track{background:transparent}.mono{font-family:var(--mono)}.num{font-family:var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.sig{color:var(--signal)}.eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);font-weight:600}.spin{display:inline-block;width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:-1px}@keyframes spin{to{transform:rotate(360deg)}}.app{min-height:100vh}.app.authed{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--line);padding:22px 14px 16px;z-index:5}.brand{display:flex;align-items:baseline;gap:7px;padding:4px 8px 20px}.brand .q{color:var(--signal);font-size:16px;align-self:center}.brand-name{font-family:var(--display);font-weight:700;font-size:18px;letter-spacing:.01em;color:var(--text)}.brand-sub{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim-2);font-weight:600}.nav{display:flex;flex-direction:column;gap:4px;flex:1}.nav-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:11px 10px;border:1px solid transparent;border-radius:var(--r);background:transparent;color:var(--text-dim);cursor:pointer;transition:background .1s linear,color .1s linear,border-color .1s linear}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.on{background:var(--signal-faint);border-color:color-mix(in srgb,var(--signal) 40%,var(--line));color:var(--text)}.nav-item .nav-g{font-size:16px;width:20px;text-align:center;color:var(--text-dim-2);flex:none}.nav-item.on .nav-g{color:var(--signal)}.nav-tx{display:flex;flex-direction:column;gap:2px;min-width:0}.nav-lab{font-family:var(--mono);font-weight:700;font-size:13px;letter-spacing:.01em}.nav-desc{font-size:10px;color:var(--text-dim-2);letter-spacing:.02em}.sidebar-foot{display:flex;flex-direction:column;gap:8px;padding-top:14px;border-top:1px solid var(--line);margin-top:8px}.theme-toggle{display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 10px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--text-dim);cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.06em;font-weight:600;transition:border-color .1s linear,color .1s linear}.theme-toggle:hover{border-color:var(--signal);color:var(--signal)}.whoami{font-size:10px;color:var(--text-dim-2);letter-spacing:.02em;text-align:center;padding:2px 0}.logout{display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 10px;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--line));border-radius:var(--r);background:transparent;color:var(--danger);cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;transition:background .1s linear}.logout:hover{background:color-mix(in srgb,var(--danger) 10%,transparent)}.content{position:relative;min-width:0;padding:28px 32px 64px;overflow-x:hidden}.content:before{content:"";position:fixed;inset:0 0 0 var(--sidebar-w);pointer-events:none;z-index:0;opacity:var(--grain-op);mix-blend-mode:var(--grain-blend);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}.boot{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--text-dim);font-size:13px;letter-spacing:.04em}.page{position:relative;z-index:1;max-width:1180px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}.page-title{font-family:var(--mono);font-weight:700;font-size:26px;letter-spacing:-.01em;margin:6px 0 0;color:var(--text)}.btn2{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;cursor:pointer;border:1px solid var(--line-2);color:var(--text);background:var(--surface);font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;border-radius:var(--r);transition:border-color .1s linear,color .1s linear,background .1s linear,transform 80ms ease}.btn2:hover:not(:disabled){border-color:var(--signal);color:var(--signal)}.btn2:active:not(:disabled){transform:scale(.98)}.btn2:disabled{opacity:.5;cursor:not-allowed}.btn2.sm{min-height:32px;padding:0 12px;font-size:11px;letter-spacing:.04em}.btn2.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--line))}.btn2.danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,transparent)}.btn2.primary{background:var(--signal);color:var(--on-signal);border-color:var(--signal);align-self:flex-end;min-height:44px}.btn2.primary:hover:not(:disabled){filter:brightness(1.08);color:var(--on-signal);border-color:var(--signal)}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.input{min-width:220px;padding:11px 13px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);font-family:var(--mono);font-size:14px;color:var(--text);letter-spacing:.01em;caret-color:var(--signal)}.input::placeholder{color:var(--text-dim-2)}.input:focus{outline:none;border-color:var(--signal)}.select{padding:11px 34px 11px 13px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);font-family:var(--mono);font-size:13px;color:var(--text);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M1 1l4 4 4-4' fill='none' stroke='%238C8C88' stroke-width='1.4'/></svg>");background-repeat:no-repeat;background-position:right 12px center}.select:focus{outline:none;border-color:var(--signal)}.field{display:flex;flex-direction:column;gap:7px}.field>.lab{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);font-weight:600}.issue-bar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);margin-bottom:18px}.issue-bar .field{flex:0 0 150px}.issue-bar .input{min-width:0;width:100%}.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:18px}.seg button{padding:9px 16px;cursor:pointer;background:var(--surface);font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--text-dim);border:none;border-right:1px solid var(--line);transition:color .1s linear,background .1s linear}.seg button:last-child{border-right:none}.seg button:hover:not(.on){color:var(--text)}.seg button.on{color:var(--on-signal);background:var(--signal)}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}.stat{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:18px;transition:border-color .12s linear}.stat:hover{border-color:var(--line-2)}.stat.accent{border-left:2px solid var(--signal)}.stat-lab{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);font-weight:600}.stat-val{font-size:30px;font-weight:700;margin-top:8px;color:var(--text)}.node-strip{display:flex;align-items:center;gap:16px;padding:15px 18px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.node-strip-lab{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);font-weight:600}.node-strip-val{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text)}.node-strip-val.muted{color:var(--text-dim)}.node-strip-val b{font-size:18px}.node-strip-val .sep{color:var(--text-dim-2)}.dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--text-dim-2)}.dot.on{background:var(--good)}.dot.warn{background:var(--warn-soft)}.dot.off{background:var(--text-dim-2)}.table-wrap{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table thead th{text-align:left;padding:12px 16px;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--text-dim);background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap;position:sticky;top:0}.table tbody td{padding:13px 16px;border-bottom:1px solid var(--line);color:var(--text);vertical-align:middle;white-space:nowrap}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{transition:background 90ms linear}.table tbody tr:hover{background:var(--row-hover)}.al-right{text-align:right}.al-center{text-align:center}.cell-strong{font-weight:600;color:var(--text)}.cell-dim{color:var(--text-dim)}.badge{display:inline-block;font-size:9px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;padding:3px 7px;border-radius:var(--r);border:1px solid var(--line-2);color:var(--text-dim)}.badge.ok{color:var(--good);border-color:color-mix(in srgb,var(--good) 40%,var(--line))}.badge.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}.pchip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border:1px solid var(--line);border-radius:var(--r);font-size:11px;letter-spacing:.02em;color:var(--text);background:var(--surface-2);white-space:nowrap}.pchip .g{line-height:1;font-size:11px}.code-copy{display:inline-flex;align-items:center;gap:8px;cursor:pointer;background:transparent;border:none;padding:0;color:var(--text);font-family:var(--mono);font-weight:700;font-size:13px;letter-spacing:.06em}.code-copy:hover{color:var(--signal)}.code-copy-ic{font-size:12px;color:var(--text-dim-2)}.code-copy:hover .code-copy-ic{color:var(--signal)}.confirm-row{display:inline-flex;gap:6px;justify-content:flex-end}.pager{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px}.pager-info{font-size:12px;color:var(--text-dim);letter-spacing:.02em}.pager-btns{display:flex;gap:8px}.state{display:flex;flex-direction:column;align-items:center;gap:14px;padding:56px 20px;text-align:center;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.state .art{width:64px;height:64px;border:1px solid var(--line-2);border-radius:var(--r);display:grid;place-items:center;font-size:28px;color:var(--text-dim);background:var(--surface-2)}.state .art.err{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}.state .t{font-family:var(--mono);font-weight:700;font-size:16px}.state .d{font-size:13px;color:var(--text-dim);line-height:1.5;max-width:360px}.sk{background:var(--surface-2);border-radius:var(--r);position:relative;overflow:hidden}.sk:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--text) 6%,transparent),transparent);animation:shimmer 1.4s steps(8) infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.sk-card{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.sk-line{height:12px}.toast-host{position:fixed;right:24px;bottom:24px;z-index:50;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}.toast{display:inline-flex;align-items:center;gap:9px;background:var(--text);color:var(--bg);padding:11px 16px;border-radius:var(--r);font-size:12px;letter-spacing:.02em;font-weight:600;max-width:380px;animation:toast-in .16s linear}.toast .g{color:var(--good)}.toast.err{background:var(--danger);color:#fff}.toast.err .g{color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;position:relative;isolation:isolate}.login:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:var(--grain-op);mix-blend-mode:var(--grain-blend);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}.login-card{position:relative;z-index:1;width:100%;max-width:400px;border:1px solid var(--line);border-top:2px solid var(--signal);border-radius:var(--r);background:var(--surface);padding:34px 30px 28px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.login-mark{width:64px;height:64px;margin-bottom:10px;border:1px solid var(--line-2);border-radius:var(--r);display:grid;place-items:center;background:var(--bg);position:relative}.login-mark:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border:1px solid var(--line);border-radius:var(--r);opacity:.5}.login-mark .gate{font-size:28px;color:var(--signal);line-height:1}.login-title{font-family:var(--mono);font-weight:700;font-size:22px;letter-spacing:-.01em;margin:6px 0 2px;color:var(--text)}.login-sub{font-size:13px;color:var(--text-dim);line-height:1.5;max-width:300px;margin:0 0 6px}.login-widget{display:flex;flex-direction:column;align-items:center;gap:12px;min-height:48px;margin:12px 0 4px}.login-pending{display:inline-flex;align-items:center;gap:9px;font-size:12px;color:var(--text-dim);letter-spacing:.03em}.login-error{width:100%;margin-top:6px;padding:11px 13px;border:1px solid color-mix(in srgb,var(--danger) 45%,var(--line));border-radius:var(--r);background:color-mix(in srgb,var(--danger) 8%,transparent);color:var(--danger);font-size:12.5px;line-height:1.5;text-align:left}.login-foot{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:11px;color:var(--text-dim-2);line-height:1.5;letter-spacing:.01em}.login-foot .mono{color:var(--text-dim)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: no-preference){.page{animation:rise .28s cubic-bezier(.22,.61,.36,1) both}.login-card{animation:rise .32s cubic-bezier(.22,.61,.36,1) both}}@media (max-width: 1080px){.stat-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 860px){:root{--sidebar-w: 64px}.nav-tx,.brand-name,.brand-sub,.nav-desc,.theme-toggle,.whoami{display:none}.nav-item{justify-content:center;padding:12px 0}.logout{font-size:0;gap:0;padding:10px 0}.logout:before{content:"←";font-size:14px}.content{padding:22px 18px 48px}.stat-grid{grid-template-columns:1fr}}
