@tailwind base; @tailwind components; @tailwind utilities; @layer base { :root { /* #f1ede1 */ --background: 45 36.4% 91.4%; --foreground: 222.2 84% 4.9%; --card: 0 0% 100%; --card-foreground: 222.2 84% 4.9%; --popover: 0 0% 100%; --popover-foreground: 222.2 84% 4.9%; --primary: 221.2 83.2% 53.3%; --primary-foreground: 210 40% 98%; --secondary: 210 40% 96.1%; --secondary-foreground: 222.2 47.4% 11.2%; --muted: 210 40% 96.1%; --muted-foreground: 215.4 16.3% 46.9%; --accent: 210 40% 96.1%; --accent-foreground: 222.2 47.4% 11.2%; --destructive: 0 84.2% 60.2%; --destructive-foreground: 210 40% 98%; --border: 214.3 31.8% 91.4%; --input: 214.3 31.8% 91.4%; --ring: 221.2 83.2% 53.3%; --radius: 0.5rem; } /* Neutral deep-gray dark palette */ .dark { --background: 240 4% 11%; --foreground: 210 20% 96%; --card: 240 3% 14%; --card-foreground: 210 20% 96%; --popover: 240 3% 14%; --popover-foreground: 210 20% 96%; --primary: 217.2 91.2% 59.8%; --primary-foreground: 210 40% 98%; --secondary: 240 3% 18%; --secondary-foreground: 210 20% 96%; --muted: 240 3% 18%; --muted-foreground: 220 8% 72%; --accent: 240 3% 22%; --accent-foreground: 210 20% 96%; --destructive: 0 65% 42%; --destructive-foreground: 210 20% 96%; --border: 240 3% 24%; --input: 240 3% 18%; --ring: 217.2 91.2% 59.8%; } } @layer base { * { @apply border-border; } body { @apply bg-background text-foreground; font-feature-settings: "rlig" 1, "calt" 1; } } /* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { @apply bg-transparent; } ::-webkit-scrollbar-thumb { @apply bg-border rounded-full; } ::-webkit-scrollbar-thumb:hover { @apply bg-muted-foreground/30; } /* macOS traffic light spacing */ .drag-region { -webkit-app-region: drag; } .no-drag { -webkit-app-region: no-drag; } /* Smooth transitions */ .transition-theme { @apply transition-colors duration-200; } /* Focus ring */ .focus-ring { @apply focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2; } /* Prose styling for markdown */ .prose { line-height: 1.6; } .prose p { margin-bottom: 0.75em; } .prose p:last-child { margin-bottom: 0; } .prose ul, .prose ol { margin-top: 0.5em; margin-bottom: 0.5em; padding-left: 1.5em; } .prose li { margin-bottom: 0.25em; } .prose pre { margin-top: 0.5em; margin-bottom: 0.5em; } .prose blockquote { border-left: 3px solid hsl(var(--border)); padding-left: 1em; margin: 0.5em 0; color: hsl(var(--muted-foreground)); } .prose table { width: 100%; border-collapse: collapse; margin: 0.5em 0; } .prose th, .prose td { border: 1px solid hsl(var(--border)); padding: 0.5em; text-align: left; } .prose th { background: hsl(var(--muted)); } /* Typing indicator animation */ @keyframes bounce { 0%, 60%, 100% { transform: translateY(0); } 30% { transform: translateY(-4px); } }