@tailwind base; @tailwind components; @tailwind utilities; :root { --background: #09090b; --foreground: #fafafa; --muted: #18181b; --muted-foreground: #a1a1aa; --border: #27272a; --card: #18181b; --card-foreground: #fafafa; --accent: #ff4c00; --accent-hover: #ff6a2a; --accent-light: rgba(255, 76, 0, 0.15); --primary: #ff4c00; --primary-foreground: #ffffff; --secondary: #18181b; --secondary-foreground: #fafafa; --destructive: #ef4444; --destructive-foreground: #ffffff; --input: #27272a; --ring: #ff4c00; --radius: 0.75rem; } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; } html, body { height: 100%; max-width: 100vw; overflow-x: hidden; } body { color: var(--foreground); background: var(--background); font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: 15px; line-height: 1.6; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #3f3f46; border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: #52525b; } ::selection { background: var(--accent-light); color: var(--foreground); } :focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } } @keyframes bounce-dot { 0%, 80%, 100% { transform: scale(0); } 40% { transform: scale(1); } } .animate-fade-in { animation: fadeIn 0.2s ease-out; } .animate-slide-in { animation: slideIn 0.3s ease-out; } .dot-1 { animation: bounce-dot 1.4s infinite ease-in-out both; animation-delay: -0.32s; } .dot-2 { animation: bounce-dot 1.4s infinite ease-in-out both; animation-delay: -0.16s; } .dot-3 { animation: bounce-dot 1.4s infinite ease-in-out both; } .input-container { background: var(--card); border: 1px solid var(--border); border-radius: 12px; transition: border-color 0.2s, box-shadow 0.2s; } .input-container:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-light); } .user-message { background: var(--accent); color: var(--primary-foreground); } .markdown-content { font-size: 15px; line-height: 1.7; color: var(--foreground); } .markdown-content>*:first-child { margin-top: 0; } .markdown-content>*:last-child { margin-bottom: 0; } .markdown-content p { margin: 0 0 1em 0; } .markdown-content p:last-child { margin-bottom: 0; } .markdown-content h1, .markdown-content h2, .markdown-content h3, .markdown-content h4 { font-weight: 600; line-height: 1.3; margin: 1.5em 0 0.5em 0; color: var(--foreground); } .markdown-content h1:first-child, .markdown-content h2:first-child, .markdown-content h3:first-child, .markdown-content h4:first-child { margin-top: 0; } .markdown-content h1 { font-size: 1.5em; } .markdown-content h2 { font-size: 1.25em; } .markdown-content h3 { font-size: 1.1em; } .markdown-content h4 { font-size: 1em; } .markdown-content ul, .markdown-content ol { margin: 0.75em 0; padding-left: 1.5em; list-style-position: outside; } .markdown-content ul { list-style-type: disc; } .markdown-content ol { list-style-type: decimal; } .markdown-content li { margin: 0.35em 0; } .markdown-content li>ul, .markdown-content li>ol { margin: 0.25em 0; } .markdown-content a { color: var(--accent); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color 0.15s; } .markdown-content a:hover { border-bottom-color: var(--accent); } .markdown-content strong { font-weight: 600; } .markdown-content em { font-style: italic; } .markdown-content blockquote { margin: 1em 0; padding: 0.5em 0 0.5em 1em; border-left: 3px solid var(--accent); color: var(--muted-foreground); font-style: italic; } .markdown-content hr { margin: 1.5em 0; border: none; border-top: 1px solid var(--border); } .markdown-content .code-block { margin: 1em 0; padding: 1em; background: var(--muted); border: 1px solid var(--border); border-radius: 8px; overflow-x: auto; font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace; font-size: 0.875em; line-height: 1.5; } .markdown-content .inline-code { padding: 0.15em 0.4em; background: var(--muted); border-radius: 4px; font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace; font-size: 0.9em; } .markdown-content .table-wrapper { margin: 1em 0; overflow-x: auto; border: 1px solid var(--border); border-radius: 8px; } .markdown-content table { width: 100%; border-collapse: collapse; font-size: 0.9em; } .markdown-content thead { background: var(--muted); } .markdown-content th { padding: 0.75em 1em; text-align: left; font-weight: 600; border-bottom: 1px solid var(--border); } .markdown-content td { padding: 0.75em 1em; border-bottom: 1px solid var(--border); } .markdown-content tbody tr:last-child td { border-bottom: none; } .markdown-content tbody tr:hover { background: rgba(255, 255, 255, 0.02); } .thinking-block { margin: 0.5em 0; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; } .thinking-header { display: flex; align-items: center; gap: 0.5em; padding: 0.625em 0.875em; background: var(--muted); cursor: pointer; -webkit-user-select: none; user-select: none; font-size: 0.875em; color: var(--muted-foreground); transition: background 0.15s; } .thinking-header:hover { background: #27272a; } .thinking-content { padding: 0.875em; font-size: 0.875em; color: var(--muted-foreground); line-height: 1.6; border-top: 1px solid var(--border); background: var(--background); } .tool-block { margin: 0.5em 0; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; } .tool-header { display: flex; align-items: center; gap: 0.625em; padding: 0.625em 0.875em; background: var(--muted); cursor: pointer; -webkit-user-select: none; user-select: none; font-size: 0.875em; } .tool-header:hover { background: #27272a; } .tool-content { padding: 0.875em; font-size: 0.8125em; color: var(--muted-foreground); line-height: 1.5; white-space: pre-wrap; border-top: 1px solid var(--border); max-height: 200px; overflow-y: auto; background: var(--background); }