@tailwind base; @tailwind components; @tailwind utilities; :root { --color-primary: #6366f1; --color-secondary: #8b5cf6; --color-accent: #22d3ee; --color-background: #0f172a; --color-surface: #1e293b; --color-text: #f8fafc; --color-text-muted: #94a3b8; --color-success: #22c55e; --color-warning: #f59e0b; --color-error: #ef4444; } * { box-sizing: border-box; padding: 0; margin: 0; } html, body { max-width: 100vw; overflow-x: hidden; background-color: var(--color-background); color: var(--color-text); } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; } a { color: inherit; text-decoration: none; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: var(--color-surface); } ::-webkit-scrollbar-thumb { background: var(--color-text-muted); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: var(--color-primary); } /* React Flow custom styles */ .react-flow__node { border-radius: 12px; border: 1px solid #334155; background: var(--color-surface); } .react-flow__edge-path { stroke: var(--color-primary); stroke-width: 2; } .react-flow__controls { background: var(--color-surface); border: 1px solid #334155; border-radius: 8px; } .react-flow__controls-button { background: var(--color-surface); border-color: #334155; color: var(--color-text); } .react-flow__controls-button:hover { background: var(--color-primary); } /* Animation keyframes */ @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .animate-fade-in { animation: fadeIn 0.3s ease-in-out; } .animate-slide-up { animation: slideUp 0.3s ease-out; } .animate-pulse { animation: pulse 2s infinite; }