:root{--c-bg: #ffffff;--c-bg-subtle: #f8f8fa;--c-bg-mute: #f4f4f5;--c-text: #09090b;--c-text-2: #3f3f46;--c-text-3: #71717a;--c-text-4: #a1a1aa;--c-border: #e4e4e7;--c-border-2: #f4f4f5;--c-brand: #3b82f6;--c-brand-weak: #eff4ff;--c-success: #10b981;--c-danger: #ef4444;--c-warning: #ffd54f;--shadow-card: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-pill: 999px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Roboto, Arial, sans-serif;--font-mono: "JetBrains Mono", "DIN Alternate", "SF Mono", ui-monospace, monospace;--fs-h1: 28px;--fs-h2: 24px;--fs-h3: 18px;--fs-body: 14px;--fs-sm: 12px;--fs-cap: 11px;--layout-topbar-h: 64px;--layout-sidenav-w: 240px;--layout-aside-w: 360px;--t-fast: .15s ease;--t-base: .22s cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.6;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea{font-family:inherit;font-size:inherit}ul,ol{list-style:none}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--c-border);border-radius:var(--r-pill)}::-webkit-scrollbar-thumb:hover{background:var(--c-text-4)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);height:38px;padding:0 var(--s-4);border-radius:var(--r-md);font-size:var(--fs-body);font-weight:500;transition:background var(--t-fast),border-color var(--t-fast),opacity var(--t-fast)}.btn--primary{background:var(--c-brand);color:#fff}.btn--primary:hover{background:#2f6fe0}.btn--ghost{background:#fff;border:1px solid var(--c-border);color:var(--c-text-2)}.btn--ghost:hover{border-color:var(--c-brand);color:var(--c-brand)}.btn:disabled{opacity:.45;cursor:not-allowed}.card{background:var(--c-bg-subtle);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--s-5)}.fade-enter-active,.fade-leave-active{transition:opacity var(--t-base)}.fade-enter-from,.fade-leave-to{opacity:0}
