@import "tailwindcss"; :root { /* Brand Colors - 中性灰色系 */ --color-primary: #374151; /* gray-700 */ --color-primary-hover: #1f2937; /* gray-800 */ --color-primary-light: #f3f4f6; /* gray-100 */ /* Accent Color - 仅用于重要强调 */ --color-accent: #f97316; /* orange-500 */ --color-accent-hover: #ea580c; /* orange-600 */ /* Semantic Colors */ --color-success: #22c55e; --color-warning: #eab308; --color-error: #ef4444; --color-info: #3b82f6; /* Neutral Colors */ --color-bg: #ffffff; --color-bg-secondary: #f9fafb; --color-border: #e5e7eb; --color-text: #111827; --color-text-secondary: #6b7280; --color-text-muted: #9ca3af; /* Spacing Scale */ --space-xs: 4px; --space-sm: 8px; --space-md: 16px; --space-lg: 24px; --space-xl: 32px; /* Border Radius */ --radius-sm: 6px; --radius-md: 8px; --radius-lg: 12px; --radius-xl: 16px; --radius-full: 9999px; /* Shadows */ --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05); --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1); --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1); /* Transitions */ --transition-fast: 150ms ease; --transition-normal: 200ms ease; --transition-slow: 300ms ease; } .dark { --color-bg: #0f172a; --color-bg-secondary: #1e293b; --color-border: #334155; --color-text: #f1f5f9; --color-text-secondary: #94a3b8; --color-text-muted: #64748b; } /* Focus states for accessibility */ :focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; background-color: #f9fafb; } .custom-scrollbar::-webkit-scrollbar { width: 6px; } .custom-scrollbar::-webkit-scrollbar-track { background: transparent; } .custom-scrollbar::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 3px; } .agent-avatar { background: #4b5563; /* gray-600 */ } .chat-bubble-assistant { background: white; border: 1px solid #e5e7eb; border-radius: 12px; border-bottom-left-radius: 4px; } .chat-bubble-user { background: #374151; /* gray-700 */ color: white; border-radius: 12px; border-bottom-right-radius: 4px; } .thinking-dot { animation: pulse 1.5s infinite; } @keyframes pulse { 0%, 100% { opacity: 0.4; } 50% { opacity: 1; } }