@tailwind base; @tailwind components; @tailwind utilities; @layer base { :root { --background: 0 0% 100%; --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: 222.2 47.4% 11.2%; --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: 222.2 84% 4.9%; --radius: 0.5rem; /* Font size variables */ --font-size-xs: 0.8125rem; /* 13px */ --font-size-sm: 0.9375rem; /* 15px */ --font-size-base: 1.0625rem; /* 17px */ --font-size-lg: 1.1875rem; /* 19px */ --font-size-xl: 1.375rem; /* 22px */ --font-size-2xl: 1.625rem; /* 26px */ /* Line height variables */ --line-height-tight: 1.3; --line-height-normal: 1.5; --line-height-relaxed: 1.7; } .dark { --background: 222.2 84% 4.9%; --foreground: 210 40% 98%; --card: 222.2 84% 4.9%; --card-foreground: 210 40% 98%; --popover: 222.2 84% 4.9%; --popover-foreground: 210 40% 98%; --primary: 210 40% 98%; --primary-foreground: 222.2 47.4% 11.2%; --secondary: 217.2 32.6% 17.5%; --secondary-foreground: 210 40% 98%; --muted: 217.2 32.6% 17.5%; --muted-foreground: 215 20.2% 65.1%; --accent: 217.2 32.6% 17.5%; --accent-foreground: 210 40% 98%; --destructive: 0 62.8% 30.6%; --destructive-foreground: 210 40% 98%; --border: 217.2 32.6% 17.5%; --input: 217.2 32.6% 17.5%; --ring: 212.7 26.8% 83.9%; } } @layer base { * { @apply border-border; } html { font-size: 16px; /* Base font size */ } body { @apply bg-background text-foreground; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; font-size: var(--font-size-base); line-height: var(--line-height-normal); transition: background-color 0.3s ease, color 0.3s ease; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; } /* Custom scrollbar styles */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { @apply bg-secondary/50 rounded-full; } ::-webkit-scrollbar-thumb { @apply bg-primary/40 rounded-full transition-colors duration-300; } ::-webkit-scrollbar-thumb:hover { @apply bg-primary/60; } /* Additional transitions for theme elements */ button, a, input, textarea, select { transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease; } /* Animation for the loading dots */ @keyframes loading { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } } .animate-loading { animation: loading 1s infinite ease-in-out; } /* Markdown content styles */ .markdown-content { font-size: var(--font-size-base); line-height: var(--line-height-relaxed); letter-spacing: 0.01em; } .markdown-content pre { position: relative; margin: 1.25rem 0; } .markdown-content code { font-family: 'SF Mono', 'Roboto Mono', Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: var(--font-size-sm); } /* Syntax highlighting for code blocks */ .markdown-content pre code { display: block; padding: 1rem; overflow-x: auto; border-radius: 0.375rem; line-height: 1.5; } /* Specific element styles */ .markdown-content h1, .markdown-content h2, .markdown-content h3, .markdown-content h4 { font-weight: 600; line-height: var(--line-height-tight); margin-top: 1.5em; margin-bottom: 0.75em; } .markdown-content h1 { font-size: var(--font-size-2xl); } .markdown-content h2 { font-size: var(--font-size-xl); } .markdown-content h3 { font-size: var(--font-size-lg); } .markdown-content h4 { font-size: var(--font-size-base); } .markdown-content p { margin-bottom: 1.25rem; } .markdown-content ul, .markdown-content ol { margin-bottom: 1.25rem; padding-left: 1.5rem; } .markdown-content li { margin-bottom: 0.5rem; } .markdown-content strong { font-weight: 600; } .markdown-content hr { @apply my-4 border-t border-border; } .markdown-content a { @apply text-primary font-medium hover:underline; } .markdown-content table { width: 100%; table-layout: fixed; overflow: hidden; margin-bottom: 1.25rem; } .markdown-content img { max-width: 100%; height: auto; margin: 1.25rem 0; } } /* Thin scrollbar style */ .scrollbar-thin::-webkit-scrollbar { width: 4px; height: 4px; } .scrollbar-thin::-webkit-scrollbar-track { @apply bg-secondary/30 rounded-full; } .scrollbar-thin::-webkit-scrollbar-thumb { @apply bg-primary/30 rounded-full transition-colors duration-300; } .scrollbar-thin::-webkit-scrollbar-thumb:hover { @apply bg-primary/50; } /* Make all scrollable areas use the thin scrollbar */ .overflow-y-auto, .overflow-x-auto { @apply scrollbar-thin; } /* Additional content height limits */ .line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } /* Fix layout shifts with transitions */ .max-w-md, .max-w-4xl, .container { width: 100%; } /* Ensure fixed layout for markdown content */ .markdown-content img, .markdown-content pre, .markdown-content table { max-width: 100%; width: auto !important; overflow-x: auto; } /* Prevent layout shifts when switching files */ button, a { backface-visibility: hidden; transform: translateZ(0); } /* Word Cloud Styles */ .word-cloud-container { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; width: 100%; height: 100%; text-align: center; } .word-cloud-container span { display: inline-block; padding: 4px 8px; margin: 4px; border-radius: 4px; transition: all 0.2s ease; } .word-cloud-container span:hover { color: hsl(var(--primary)); transform: scale(1.1); z-index: 1; } /* Add a darker header background for dark mode */ .dark .markdown-content h1, .dark .markdown-content h2, .dark .markdown-content h3, .dark .markdown-content h4 { background-color: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }