@tailwind base; @tailwind components; @tailwind utilities; * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; transition: background-color 0.3s ease; /* Light mode - subtle gradient background */ background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 50%, #e2e8f0 100%); background-attachment: fixed; } /* Dark mode - softer dark with better contrast */ .dark body { background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 50%, #0f172a 100%); background-attachment: fixed; color: #e2e8f0; } code { font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; } /* Custom scrollbar - Light Mode */ ::-webkit-scrollbar { width: 10px; height: 10px; } ::-webkit-scrollbar-track { background: #f1f1f1; } .dark ::-webkit-scrollbar-track { background: #1f2937; } ::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #10b981, #059669); border-radius: 5px; } ::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #059669, #047857); } .dark ::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #22c55e, #16a34a); } .dark ::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #16a34a, #15803d); } /* Smooth transitions */ * { transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease; } /* Better dark mode text contrast */ .dark { color-scheme: dark; } .dark * { border-color: rgb(51 65 85 / 1) !important; /* slate-700 for borders */ } .dark .text-gray-800 { color: rgb(226 232 240 / 1) !important; /* slate-200 */ } .dark .text-gray-600 { color: rgb(203 213 225 / 1) !important; /* slate-300 */ } .dark .bg-gray-700, .dark .bg-gray-800 { background-color: rgb(30 41 59 / 1) !important; /* slate-800 */ } /* Animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .fade-in { animation: fadeIn 0.5s ease-out; } /* Glassmorphism effect */ .glass { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.2); } .dark .glass { background: rgba(0, 0, 0, 0.3); border: 1px solid rgba(255, 255, 255, 0.1); } /* Gradient text */ .gradient-text { background: linear-gradient(135deg, #10b981 0%, #3b82f6 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Pulse animation for loading */ @keyframes pulse-slow { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .pulse-slow { animation: pulse-slow 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } /* Floating animation */ @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-10px); } } .float { animation: float 3s ease-in-out infinite; }