*,:before,:after{box-sizing:border-box}html,body,#app{height:100%}body{margin:0}:root{--bg-0:#f5f6f9;--bg-1:#fff;--bg-2:#fff;--bg-3:#f8f9fa;--border-1:#e5e7eb;--border-2:#d1d5db;--border-3:#9ca3af;--fg-1:#1e2740;--fg-2:#6b7280;--fg-3:#9ca3af;--blue-100:#eef1ff;--blue-200:#dfe5ff;--blue-300:#c5cffc;--blue-500:#3b5bfa;--blue-600:#2563eb;--blue-700:#1d4ed8;--blue-800:#1e40af;--green-400:#34d399;--green-500:#059669;--green-600:#047857;--red-400:#f87171;--red-500:#ef4444;--red-600:#dc2626;--amber-400:#f59e0b;--amber-500:#d97706;--cyan-400:#4d7cfe;--cyan-500:#2e6fe8;--violet-400:#9f7aea;--pink-400:#ec6cb9;--surface-page:var(--bg-0);--surface-panel:var(--bg-1);--surface-card:var(--bg-2);--surface-raised:var(--bg-1);--surface-input:#fff;--surface-overlay:#1e274073;--surface-tooltip:#1e2740;--text-body:var(--fg-1);--text-secondary:var(--fg-2);--text-muted:var(--fg-3);--text-on-accent:#fff;--accent:var(--blue-500);--accent-hover:var(--blue-700);--accent-active:var(--blue-800);--accent-subtle:var(--blue-100);--accent-border:var(--blue-200);--accent-text:var(--blue-600);--tint-hover:#1e27400d;--tint-active:#1e274014;--tint-subtle:#1e27400f;--pos:var(--green-500);--pos-text:var(--green-600);--pos-subtle:#0596691f;--neg:var(--red-500);--neg-text:var(--red-600);--neg-subtle:#ef44441a;--warn:var(--amber-400);--warn-text:var(--amber-500);--warn-subtle:#d9770624;--info:var(--cyan-500);--info-text:var(--cyan-500);--info-subtle:#4d7cfe1f;--chart-1:var(--blue-500);--chart-2:var(--cyan-400);--chart-3:var(--green-400);--chart-4:var(--amber-400);--chart-5:var(--pink-400);--chart-6:var(--violet-400);--chart-grid:#ecedf3;--focus-ring:#3b5bfa73;--font-display:"PingFang SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans SC",sans-serif;--font-body:"PingFang SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans SC",sans-serif;--font-mono:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;--text-xs:11px;--text-sm:12px;--text-base:13px;--text-md:14px;--text-lg:16px;--text-xl:20px;--text-2xl:26px;--text-3xl:34px;--leading-tight:1.2;--leading-normal:1.55;--tracking-tight:-.01em;--tracking-wide:.06em;--w-regular:400;--w-medium:500;--w-semibold:600;--w-bold:700;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:14px;--control-sm:26px;--control-md:32px;--control-lg:40px;--sidebar-w:250px;--topbar-h:52px;--page-max:100%;--shadow-card:0 1px 2px #1e27400d,0 1px 3px #1e27400a;--shadow-raised:0 4px 16px #1e274014;--shadow-pop:0 16px 40px #1e274029;--shadow-overlay:0 8px 28px #00000029;--glow-accent:0 0 0 3px #3b5bfa29;--ease-out:cubic-bezier(.2,.7,.3,1);--ease-in-out:cubic-bezier(.45,0,.25,1);--dur-fast:.12s;--dur-med:.18s;--dur-mid:.18s;--dur-slow:.26s}*{box-sizing:border-box}body{background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--w-semibold);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);margin:0}a{color:var(--accent-text);transition:color var(--dur-fast) var(--ease-out);text-decoration:none}a:hover{color:var(--blue-700)}::selection{background:var(--accent-subtle);color:var(--fg-1)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-2);border:2px solid var(--bg-0);border-radius:5px}::-webkit-scrollbar-track{background:0 0}.tk-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}@keyframes tkspin{to{transform:rotate(360deg)}}.app-btn[data-v-bf8934c8]{border-radius:var(--radius-md);font-family:var(--font-body);font-weight:var(--w-medium);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);white-space:nowrap;justify-content:center;align-items:center;gap:8px;display:inline-flex}.app-btn[data-v-bf8934c8]:disabled{opacity:.4;cursor:not-allowed}.app-btn__spinner[data-v-bf8934c8]{animation:.8s linear infinite app-btn-spin-bf8934c8}@keyframes app-btn-spin-bf8934c8{to{transform:rotate(360deg)}}.app-btn--sm[data-v-bf8934c8]{height:var(--control-sm);font-size:var(--text-sm);padding:0 12px}.app-btn--md[data-v-bf8934c8]{height:var(--control-md);font-size:var(--text-base);padding:0 16px}.app-btn--lg[data-v-bf8934c8]{height:var(--control-lg);font-size:var(--text-md);padding:0 20px}.app-btn--block[data-v-bf8934c8]{width:100%}.app-btn--primary[data-v-bf8934c8]{background:var(--accent);color:var(--text-on-accent);border:1px solid #0000;box-shadow:0 4px 14px #4f6ef54d}.app-btn--primary[data-v-bf8934c8]:hover:not(:disabled){background:var(--accent-hover)}.app-btn--primary[data-v-bf8934c8]:active:not(:disabled){background:var(--accent-active)}.app-btn--secondary[data-v-bf8934c8]{border:1px solid var(--accent-border);background:var(--accent-subtle);color:var(--accent)}.app-btn--secondary[data-v-bf8934c8]:hover:not(:disabled){background:var(--blue-200)}.app-btn--secondary[data-v-bf8934c8]:active:not(:disabled){background:var(--blue-300)}.app-btn--ghost[data-v-bf8934c8]{color:var(--text-secondary);background:0 0;border:1px solid #0000}.app-btn--ghost[data-v-bf8934c8]:hover:not(:disabled){background:var(--tint-hover);color:var(--fg-1)}.app-btn--ghost[data-v-bf8934c8]:active:not(:disabled){background:var(--tint-active)}.app-btn--danger[data-v-bf8934c8]{background:var(--neg);color:#fff;border:1px solid #0000;box-shadow:0 2px 8px #ef444440}.app-btn--danger[data-v-bf8934c8]:hover:not(:disabled){background:var(--red-400)}.app-btn--danger[data-v-bf8934c8]:active:not(:disabled){background:var(--red-600)}.app-btn--warning[data-v-bf8934c8]{background:var(--warn);color:#fff;border:1px solid #0000}.app-btn--warning[data-v-bf8934c8]:hover:not(:disabled){background:var(--amber-400)}.app-btn--warning[data-v-bf8934c8]:active:not(:disabled){background:var(--amber-500)}.app-btn--warning-outline[data-v-bf8934c8]{border:1px solid var(--warn);color:var(--warn-text);background:0 0}.app-btn--warning-outline[data-v-bf8934c8]:hover:not(:disabled),.app-btn--warning-outline[data-v-bf8934c8]:active:not(:disabled){background:var(--warn-subtle)}.toast-stack[data-v-dfc920d6]{z-index:3000;flex-direction:column;align-items:center;gap:12px;width:max-content;max-width:min(560px,100vw - 32px);display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%)}.toast[data-v-dfc920d6]{box-sizing:border-box;background:var(--surface-raised);border:1px solid var(--border-2);border-radius:var(--radius-md);max-width:100%;box-shadow:var(--shadow-pop);color:var(--fg-1);white-space:pre-wrap;word-break:break-word;align-items:flex-start;gap:10px;padding:12px 16px;font-size:13px;line-height:1.5;display:flex}.toast[data-v-dfc920d6] svg{flex:none;margin-top:1px}.toast--pos[data-v-dfc920d6]{border-left:2px solid var(--pos)}.toast--neg[data-v-dfc920d6]{border-left:2px solid var(--neg)}.toast--neutral[data-v-dfc920d6]{border-left:2px solid var(--text-muted)}.toast--info[data-v-dfc920d6]{border-left:2px solid var(--border-2)}.toast--version[data-v-dfc920d6]{align-items:center}.toast--version[data-v-dfc920d6] svg{margin-top:0}.toast__message[data-v-dfc920d6]{flex:1;min-width:0}.toast__action[data-v-dfc920d6]{flex:none}
