html,body,#app{height:100%;margin:0}.status-pill.warn[data-v-8849affa]{color:var(--warning);background:#d299221f;border-color:#d299224d}.status-pill.error[data-v-8849affa]{background:var(--danger-bg);color:var(--danger);border-color:#f851494d}.status-dot.warn[data-v-8849affa]{background:var(--warning)}.status-dot.error[data-v-8849affa]{background:var(--danger);animation:none}.funnel-row[data-v-5887bc10]{align-items:center;gap:10px;margin-bottom:8px;display:flex}.funnel-label[data-v-5887bc10]{width:130px;font-family:var(--mono);color:var(--text-muted);font-size:10px}.funnel-bar-wrap[data-v-5887bc10]{background:var(--bg-elevated);border-radius:3px;flex:1;height:6px;overflow:hidden}.funnel-bar[data-v-5887bc10]{background:linear-gradient(90deg,#388bfd,#a371f7);height:100%}.funnel-count[data-v-5887bc10]{text-align:right;width:36px;font-size:12px;font-weight:700}.health-mini[data-v-5887bc10]{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;padding:16px 22px;display:grid}.health-mini-item[data-v-5887bc10]{background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;justify-content:space-between;padding:8px 12px;font-size:11px;display:flex}.health-mini-item.ok[data-v-5887bc10]{border-color:#3fb95040}.health-mini-item.warn[data-v-5887bc10]{border-color:#d299224d}.health-mini-item.error[data-v-5887bc10]{border-color:#f851494d}.tag[data-v-a7d2c7b4]{align-items:center;display:inline-flex}.progress-track[data-v-a1d54947]{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;margin-bottom:16px;padding-bottom:12px;display:flex}.progress-step[data-v-a1d54947]{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:11px;display:flex}.progress-step.done[data-v-a1d54947]{background:var(--success-bg);color:var(--success);border-color:#3fb9504d}.progress-step.current[data-v-a1d54947]{background:var(--accent-dim);color:var(--accent);border-color:#58a6ff4d}.ps-num[data-v-a1d54947]{background:#0003;border-radius:50%;place-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:grid}.stat-value.ok[data-v-612df34e]{color:var(--success)}.group-row[data-v-612df34e]{flex-wrap:wrap;gap:8px;padding:14px 22px;display:flex}.group-badge[data-v-612df34e]{background:var(--accent-dim);color:var(--accent);border:1px solid #58a6ff40;border-radius:999px;padding:6px 12px;font-size:11px}.s-link[data-v-612df34e]{color:var(--accent);font-size:11px}.s2[data-v-612df34e]{color:var(--success)}.s3[data-v-612df34e]{color:var(--purple)}.diff-row[data-v-612df34e]{border-bottom:1px solid var(--border-light);padding:8px 0;font-size:12px}.diff-row strong[data-v-612df34e]{margin-bottom:4px;display:block}.inline-check[data-v-612df34e]{align-items:center;gap:6px;font-size:13px;display:flex}.hint[data-v-6f5c4388]{color:var(--text-muted);margin-top:12px;font-size:12px}.field[data-v-6f5c4388]{margin-bottom:12px}.stat-grid .stat-card[data-v-536ee5a3]{padding:14px 16px}.stat-grid .stat-value[data-v-536ee5a3]{font-size:22px}.stage-track[data-v-536ee5a3]{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.stage-step[data-v-536ee5a3]{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:4px 10px;font-size:10px;font-weight:700}.stage-step.done[data-v-536ee5a3]{background:var(--success-bg);color:var(--success);border-color:#3fb9504d}@media (width<=1400px){.stat-grid[style*=repeat\(7][data-v-536ee5a3]{grid-template-columns:repeat(4,1fr)!important}}.health-grid[data-v-c99aed79]{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;padding:16px 22px;display:grid}.health-item[data-v-c99aed79]{border:1px solid var(--border);background:var(--bg-elevated);border-radius:8px;padding:12px 14px}.health-item.ok[data-v-c99aed79]{border-color:#3fb9504d}.health-item.warn[data-v-c99aed79]{border-color:#d2992259}.health-item.error[data-v-c99aed79]{border-color:#f8514959}.health-name[data-v-c99aed79]{color:var(--text-muted);text-transform:uppercase;font-size:11px;font-weight:700}.health-status[data-v-c99aed79]{margin:4px 0;font-size:18px}.health-detail[data-v-c99aed79]{color:var(--text-secondary);word-break:break-all;font-size:11px}.funnel-row[data-v-c99aed79]{align-items:center;gap:10px;margin-bottom:10px;display:flex}.funnel-label[data-v-c99aed79]{width:140px;font-family:var(--mono);color:var(--text-muted);font-size:11px}.funnel-bar-wrap[data-v-c99aed79]{background:var(--bg-elevated);border-radius:4px;flex:1;height:8px;overflow:hidden}.funnel-bar[data-v-c99aed79]{background:linear-gradient(90deg,#388bfd,#a371f7);border-radius:4px;height:100%}.funnel-count[data-v-c99aed79]{text-align:right;color:#fff;width:40px;font-weight:700}.stat-value.ok[data-v-c99aed79]{color:var(--success)}.stat-value.warn[data-v-c99aed79]{color:var(--warning)}.stat-value.error[data-v-c99aed79]{color:var(--danger)}.ok-text[data-v-c99aed79]{color:var(--success)}.err-text[data-v-c99aed79]{color:var(--danger)}.intro[data-v-c18e80e4]{padding:18px 22px}.intro h3[data-v-c18e80e4]{margin-bottom:8px}.intro .sub[data-v-c18e80e4]{line-height:1.7}.head-actions[data-v-c18e80e4]{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.inline-check[data-v-c18e80e4]{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;display:flex}.inline-check input[data-v-c18e80e4]{width:auto}.template-grid[data-v-c18e80e4]{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;padding:16px 22px;display:grid}.template-card[data-v-c18e80e4]{text-align:left;background:var(--bg-elevated);border:2px solid var(--border);cursor:pointer;color:inherit;border-radius:12px;padding:14px 16px;transition:border-color .15s,background .15s}.template-card[data-v-c18e80e4]:hover{border-color:var(--accent)}.template-card.active[data-v-c18e80e4]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--bg-elevated))}.template-name[data-v-c18e80e4]{margin-bottom:6px;font-size:15px;font-weight:600}.template-desc[data-v-c18e80e4]{color:var(--text-muted);margin-bottom:8px;font-size:12px;line-height:1.5}.template-path[data-v-c18e80e4]{color:var(--accent);font-size:11px}.preview-bar[data-v-c18e80e4]{border-top:1px solid var(--border);align-items:center;gap:12px;padding:12px 22px 18px;display:flex}.code-block[data-v-c18e80e4]{background:var(--bg-elevated);border:1px solid var(--border);white-space:pre-wrap;word-break:break-all;color:var(--text-secondary);border-radius:10px;max-height:160px;margin:0 22px 20px;padding:14px 16px;font-size:12px;line-height:1.6;overflow:auto}.base-input[data-v-c18e80e4]{background:var(--bg-elevated);border:1px solid var(--border);width:100%;color:var(--text-primary);border-radius:8px;padding:10px 12px;font-size:13px}.hint[data-v-c18e80e4]{color:var(--text-muted);margin-top:8px;font-size:12px}.mono[data-v-c18e80e4]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}a.mono[data-v-c18e80e4]{color:var(--accent);text-decoration:none}a.mono[data-v-c18e80e4]:hover{text-decoration:underline}.workflow-grid[data-v-c18e80e4]{gap:10px;padding:16px 22px;display:grid}.workflow-step[data-v-c18e80e4]{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;gap:12px;padding:10px 12px;display:flex}.wf-num[data-v-c18e80e4]{background:var(--accent-dim);width:28px;height:28px;color:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:grid}.workflow-step p[data-v-c18e80e4]{color:var(--text-muted);margin-top:4px;font-size:11px}.dga-line[data-v-c18e80e4]{color:var(--accent);padding:4px 0;font-size:12px}.route-list[data-v-c18e80e4]{gap:8px;padding:16px 22px;display:grid}.route-card[data-v-c18e80e4]{text-align:left;border:1px solid var(--border);background:var(--bg-elevated);cursor:pointer;color:inherit;border-radius:8px;padding:12px 14px}.route-card.active[data-v-c18e80e4]{border-color:var(--accent);background:var(--accent-dim)}.route-id[data-v-c18e80e4]{color:var(--text-muted);font-size:10px;font-weight:700}.route-name[data-v-c18e80e4]{margin:4px 0;font-weight:600}.route-desc[data-v-c18e80e4]{color:var(--text-muted);font-size:11px}.route-tpl[data-v-c18e80e4]{color:var(--accent);margin-top:6px;font-size:10px}textarea.base-input[data-v-c18e80e4]{resize:vertical;min-height:60px}:root{--bg:#0f1419;--bg-elevated:#161b22;--surface:#1c2128;--surface-hover:#22272e;--border:#ffffff14;--border-light:#ffffff0d;--text:#e6edf3;--text-secondary:#8b949e;--text-muted:#6e7681;--accent:#58a6ff;--accent-dim:#58a6ff26;--accent-glow:#58a6ff59;--success:#3fb950;--success-bg:#3fb9501f;--warning:#d29922;--danger:#f85149;--danger-bg:#f851491f;--purple:#a371f7;--sidebar-w:260px;--topbar-h:64px;--radius:12px;--radius-sm:8px;--shadow:0 8px 32px #0006;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", sans-serif;--mono:"JetBrains Mono", "SF Mono", Consolas, monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:14px}.admin-shell{background:var(--bg);height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-w);border-right:1px solid var(--border);background:linear-gradient(#0d1117 0%,#161b22 100%);flex-direction:column;flex-shrink:0;display:flex}.sidebar-brand{height:var(--topbar-h);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:0 20px;display:flex}.brand-icon{color:#fff;width:36px;height:36px;box-shadow:0 4px 16px var(--accent-glow);background:linear-gradient(135deg,#388bfd 0%,#a371f7 100%);border-radius:10px;place-items:center;font-size:13px;font-weight:800;display:grid}.brand-text{color:#fff;font-size:15px;font-weight:650}.brand-sub{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:10px}.sidebar-nav{flex:1;padding:16px 12px;overflow-y:auto}.nav-group{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);padding:12px 12px 6px;font-size:10px;font-weight:700}.nav-item{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;border:1px solid #0000;align-items:center;gap:10px;margin:2px 0;padding:10px 12px;font-size:13px;font-weight:500;transition:all .18s;display:flex}.nav-item:hover{background:var(--surface-hover);color:var(--text)}.nav-item.active{background:var(--accent-dim);color:var(--accent);border-color:#58a6ff40}.nav-item .nav-icon{text-align:center;width:18px;font-size:15px}.sidebar-footer{border-top:1px solid var(--border);color:var(--text-muted);padding:16px;font-size:11px}.main-area{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.topbar{height:var(--topbar-h);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#161b22d9;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 28px;display:flex}.page-title{color:#fff;font-size:18px;font-weight:650}.page-subtitle{color:var(--text-muted);margin-top:2px;font-size:12px}.topbar-actions{align-items:center;gap:12px;display:flex}.status-pill{background:var(--success-bg);color:var(--success);border:1px solid #3fb95040;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;display:flex}.status-dot{background:var(--success);border-radius:50%;width:7px;height:7px;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.user-chip{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:6px 12px 6px 6px;display:flex}.user-avatar{color:#fff;background:linear-gradient(135deg,#388bfd,#a371f7);border-radius:50%;place-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:grid}.page-content{flex:1;padding:24px 28px 200px;overflow-y:auto}.stat-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}@media (width<=1200px){.stat-grid{grid-template-columns:repeat(2,1fr)}}.stat-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);padding:20px 22px;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}.stat-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.stat-card .stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.stat-card .stat-value{color:#fff;font-variant-numeric:tabular-nums;margin:8px 0 4px;font-size:32px;font-weight:700}.stat-card .stat-delta{color:var(--success);font-size:12px}.stat-card .stat-icon-wrap{border-radius:10px;place-items:center;width:40px;height:40px;font-size:18px;display:grid;position:absolute;top:18px;right:18px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;overflow:hidden}.card-head{border-bottom:1px solid var(--border-light);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 22px;display:flex}.card-head h3{color:#fff;font-size:15px;font-weight:650}.card-head .sub{color:var(--text-muted);font-size:12px}.card-toolbar{border-bottom:1px solid var(--border-light);background:#00000026;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:14px 22px;display:flex}.field{flex-direction:column;gap:6px;min-width:180px;display:flex}.field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:650}.field input,.field select{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font:inherit;outline:none;padding:9px 12px}.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.field .hint{color:var(--text-muted);margin-top:4px;font-size:11px}.table-scroll{overflow-x:auto}table.data-table{border-collapse:collapse;width:100%}table.data-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);white-space:nowrap;background:#0003;padding:11px 16px;font-size:11px;font-weight:700}table.data-table td{border-bottom:1px solid var(--border-light);color:var(--text-secondary);vertical-align:middle;padding:12px 16px;font-size:13px}table.data-table tbody tr:hover{background:#ffffff05}table.data-table td.mono{font-family:var(--mono);color:var(--text);font-size:12px}.empty-cell{text-align:center;color:var(--text-muted);padding:48px 16px!important}.btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:7px 14px;font:600 12px inherit;transition:all .15s;display:inline-flex}.btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.btn-primary{color:#fff;background:linear-gradient(135deg,#388bfd,#1f6feb);border-color:#0000}.btn-primary:hover{filter:brightness(1.1);color:#fff;box-shadow:0 4px 16px var(--accent-glow)}.btn-danger{color:var(--danger);border-color:#f851494d}.btn-danger:hover{background:var(--danger-bg)}.btn-sm{padding:5px 10px;font-size:11px}.btn-group{flex-wrap:wrap;gap:6px;display:flex}.tag{border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:650;display:inline-flex}.tag-online{background:var(--success-bg);color:var(--success);border:1px solid #3fb9504d}.tag-offline{color:var(--text-muted);border:1px solid var(--border);background:#6e768126}.tag-type{background:var(--accent-dim);color:var(--accent);border:1px solid #58a6ff40}.drawer-mask{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:900;opacity:0;pointer-events:none;background:#0009;transition:opacity .25s;position:fixed;inset:0}.drawer-mask.show{opacity:1;pointer-events:auto}.drawer-panel{background:var(--surface);border-left:1px solid var(--border);z-index:901;flex-direction:column;width:min(560px,100vw);height:100vh;transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-16px 0 48px #00000080}.drawer-panel.show{transform:translate(0)}.drawer-panel.wide{width:min(720px,100vw)}.drawer-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.drawer-head h3{color:#fff;font-size:16px;font-weight:650}.drawer-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:20px}.drawer-content{flex:1;padding:22px;overflow-y:auto}.detail-grid{grid-template-columns:1fr 1fr;gap:14px 18px;margin-bottom:20px;display:grid}.detail-item .dl{color:var(--text-muted);text-transform:uppercase;margin-bottom:4px;font-size:11px}.detail-item .dv{color:var(--text);word-break:break-all;font-size:13px}.sec-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border-light);margin:20px 0 10px;padding-bottom:8px;font-size:11px;font-weight:700}.mnemonic-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:12px 0;display:grid}.mnemonic-chip{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--mono);justify-content:space-between;padding:10px 12px;font-size:12px;display:flex}.mnemonic-chip .idx{color:var(--text-muted);font-size:10px}.json-block{border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--mono);color:#c9d1d9;white-space:pre-wrap;word-break:break-all;background:#0d1117;max-height:360px;padding:14px 16px;font-size:12px;line-height:1.65;overflow-y:auto}.terminal-dock{left:var(--sidebar-w);z-index:200;font-family:var(--mono);background:#0d1117;border-top:1px solid #30363d;flex-direction:column;display:flex;position:fixed;bottom:0;right:0}.terminal-dock.collapsed{height:40px}.terminal-dock.expanded{height:34vh;min-height:200px;box-shadow:0 -8px 32px #00000080}.term-bar{cursor:pointer;background:#161b22;border-bottom:1px solid #30363d;flex-shrink:0;align-items:center;gap:12px;height:40px;padding:0 16px;display:flex}.term-bar h4{color:var(--accent);letter-spacing:.1em;font-size:11px;font-weight:700}.term-bar .count{color:var(--text-muted);font-size:11px}.term-bar .actions{gap:8px;margin-left:auto;display:flex}.term-body{flex:1;overflow:auto}.term-body table{border-collapse:collapse;width:100%}.term-body th{color:#8b949e;text-align:left;background:#0d1117;border-bottom:1px solid #30363d;padding:5px 12px;font-size:10px;position:sticky;top:0}.term-body td{color:#c9d1d9;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #21262d;max-width:400px;padding:4px 12px;font-size:11px;overflow:hidden}.toast-stack{z-index:3000;flex-direction:column;gap:8px;display:flex;position:fixed;top:72px;right:24px}.toast-item{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);max-width:360px;padding:12px 18px;font-size:13px;font-weight:500;animation:.25s slideIn}.toast-item.success{color:var(--success);border-color:#3fb95066}.toast-item.error{color:var(--danger);border-color:#f8514966}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}.login-page{background:var(--bg);grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.login-left{flex-direction:column;justify-content:center;padding:48px 64px;display:flex}.login-left h1{color:#fff;margin-bottom:8px;font-size:36px;font-weight:750}.login-left p{color:var(--text-muted);margin-bottom:36px}.login-form .field{min-width:unset;margin-bottom:18px}.login-form button[type=submit]{border-radius:var(--radius-sm);color:#fff;cursor:pointer;background:linear-gradient(135deg,#388bfd,#a371f7);border:none;width:100%;margin-top:8px;padding:13px;font:650 14px inherit}.login-form button:disabled{opacity:.6}.form-err{color:var(--danger);margin-top:12px;font-size:13px}.login-right{border-left:1px solid var(--border);background:linear-gradient(135deg,#0d1117,#1a1f35);justify-content:center;align-items:center;display:flex}.login-art{text-align:center}.login-art .big{background:linear-gradient(135deg,#58a6ff,#a371f7);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:72px;font-weight:800}.login-art p{color:var(--text-muted);max-width:280px;margin-top:16px;font-size:14px;line-height:1.6}@media (width<=900px){.login-page{grid-template-columns:1fr}.login-right{display:none}}.grid-2{grid-template-columns:1fr 1fr;gap:20px;display:grid}.balance-cell b{color:var(--success)}.balance-zero{color:var(--text-muted)}
