:root{--bg: #fafbfd;--surface: #ffffff;--surface-hover: #ffffff;--border: rgba(0, 0, 0, .06);--border-focus: rgba(99, 102, 241, .4);--text: #1a1a2e;--text-secondary: #6e7191;--text-muted: #a0a3bd;--primary: #6366f1;--primary-hover: #4f46e5;--primary-soft: rgba(99, 102, 241, .08);--primary-glow: rgba(99, 102, 241, .2);--success: #10b981;--success-soft: rgba(16, 185, 129, .08);--danger: #ef4444;--danger-soft: rgba(239, 68, 68, .08);--warning: #f59e0b;--radius-xs: 8px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-xl: 24px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .02);--shadow-md: 0 4px 12px rgba(0, 0, 0, .05), 0 1px 3px rgba(0, 0, 0, .03);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .06), 0 2px 6px rgba(0, 0, 0, .03);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .08), 0 4px 12px rgba(0, 0, 0, .04);--shadow-card: 0 0 0 1px rgba(0, 0, 0, .03), 0 2px 4px rgba(0, 0, 0, .02), 0 12px 24px rgba(0, 0, 0, .04);--shadow-card-hover: 0 0 0 1px rgba(0, 0, 0, .03), 0 4px 8px rgba(0, 0, 0, .03), 0 24px 48px rgba(0, 0, 0, .06);--ease: cubic-bezier(.25, .1, .25, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--duration: .2s;--duration-slow: .35s}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}html,body{min-height:100vh;background:var(--bg);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--text);line-height:1.6;font-size:14px}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4,h5,h6{line-height:1.25}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0000001f;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#0003}.page-enter-active,.page-leave-active{transition:opacity var(--duration-slow) var(--ease),transform var(--duration-slow) var(--ease)}.page-enter-from{opacity:0;transform:translateY(6px)}.page-leave-to{opacity:0;transform:translateY(-6px)}.fade-enter-active,.fade-leave-active{transition:opacity var(--duration) var(--ease)}.fade-enter-from,.fade-leave-to{opacity:0}
