@tailwind base; @tailwind components; @tailwind utilities; /* Custom CSS Variables */ :root { --primary-50: #f0f9ff; --primary-100: #e0f2fe; --primary-500: #0ea5e9; --primary-600: #0284c7; --primary-700: #0369a1; --secondary-500: #8b5cf6; --success-500: #10b981; --warning-500: #f59e0b; --error-500: #ef4444; --gray-50: #f9fafb; --gray-100: #f3f4f6; --gray-200: #e5e7eb; --gray-300: #d1d5db; --gray-400: #9ca3af; --gray-500: #6b7280; --gray-600: #4b5563; --gray-700: #374151; --gray-800: #1f2937; --gray-900: #111827; } /* Reset and base styles */ * { margin: 0; padding: 0; box-sizing: border-box; } html, body, #root { height: 100%; width: 100%; overflow: hidden; } body { font-family: 'Inter', -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; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: var(--gray-900); } /* Scrollbar styling */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: var(--gray-100); border-radius: 4px; } ::-webkit-scrollbar-thumb { background: var(--gray-300); border-radius: 4px; transition: background 0.2s; } ::-webkit-scrollbar-thumb:hover { background: var(--gray-400); } /* Firefox scrollbar */ * { scrollbar-width: thin; scrollbar-color: var(--gray-300) var(--gray-100); } /* Focus styles */ *:focus { outline: 2px solid var(--primary-500); outline-offset: 2px; } button:focus, input:focus, textarea:focus, select:focus { outline: 2px solid var(--primary-500); outline-offset: 2px; } /* Button reset */ button { cursor: pointer; border: none; font-family: inherit; background: none; } button:disabled { cursor: not-allowed; opacity: 0.6; } /* Form elements */ input, textarea, select { font-family: inherit; } input::placeholder, textarea::placeholder { color: var(--gray-400); } /* Utility classes */ .gradient-bg { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); } .glass-effect { background: rgba(255, 255, 255, 0.25); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.18); } .shadow-glow { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06), 0 0 0 1px rgba(255, 255, 255, 0.05); } /* Animation classes */ .fade-in { animation: fadeIn 0.3s ease-in-out; } .slide-up { animation: slideUp 0.3s ease-out; } .scale-in { animation: scaleIn 0.2s ease-out; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes scaleIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } /* Loading spinner */ .spinner { animation: spin 1s linear infinite; } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } /* Responsive design helpers */ @media (max-width: 768px) { .mobile-hidden { display: none !important; } } @media (min-width: 769px) { .mobile-only { display: none !important; } } /* Print styles */ @media print { body { background: white !important; } }