:root{--color-primary:#10a37f;--color-primary-hover:#0d8c6d;--color-primary-light:#10a37f26;--color-bg-primary:#0d0d0d;--color-bg-secondary:#171717;--color-bg-tertiary:#1f1f1f;--color-bg-hover:#2a2a2a;--color-sidebar:#171717;--color-sidebar-hover:#212121;--color-text-primary:#ececec;--color-text-secondary:#a1a1a1;--color-text-muted:#6b6b6b;--color-border:#2d2d2d;--color-border-light:#3d3d3d;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--transition-fast:.15s ease;--transition-normal:.25s ease;--font-family:"Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--sidebar-width:260px;--header-height:56px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-family);background-color:var(--color-bg-primary);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.6}#app{height:100%}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-hover)}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,textarea{font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:none;outline:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-light)}.ai-badge{color:var(--color-primary);background:var(--color-primary-light);border-radius:var(--radius-full);align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.ai-badge:before{content:"✨";font-size:10px}.flex{display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.text-ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
