@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Manrope:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap'); @tailwind base; @tailwind components; @tailwind utilities; :root { --background: #FFFFFF; --foreground: #0A0A0A; --card: #FFFFFF; --card-foreground: #0A0A0A; --popover: #FFFFFF; --popover-foreground: #0A0A0A; --primary: #0F172A; --primary-foreground: #F8FAFC; --secondary: #F1F5F9; --secondary-foreground: #0F172A; --muted: #F1F5F9; --muted-foreground: #64748B; --accent: #F1F5F9; --accent-foreground: #0F172A; --destructive: #EF4444; --destructive-foreground: #F8FAFC; --border: #E2E8F0; --input: #E2E8F0; --ring: #0F172A; --radius: 0.5rem; } .dark { --background: #020617; --foreground: #F8FAFC; --card: #0F172A; --card-foreground: #F8FAFC; --popover: #0F172A; --popover-foreground: #F8FAFC; --primary: #F8FAFC; --primary-foreground: #0F172A; --secondary: #1E293B; --secondary-foreground: #F8FAFC; --muted: #1E293B; --muted-foreground: #94A3B8; --accent: #1E293B; --accent-foreground: #F8FAFC; --destructive: #7F1D1D; --destructive-foreground: #F8FAFC; --border: #1E293B; --input: #1E293B; --ring: #D1D5DB; } * { box-sizing: border-box; margin: 0; padding: 0; } html, body, #root { height: 100%; } body { font-family: 'Inter', system-ui, sans-serif; background-color: var(--background); color: var(--foreground); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: var(--muted); } ::-webkit-scrollbar-thumb { background: var(--muted-foreground); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: var(--foreground); } /* Skeleton loader animation */ @keyframes skeleton-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .skeleton { animation: skeleton-pulse 1.5s ease-in-out infinite; background: linear-gradient(90deg, var(--muted) 25%, var(--border) 50%, var(--muted) 75%); background-size: 200% 100%; } /* File drop zone styles */ .drop-zone-active { border-color: var(--ring) !important; background-color: var(--accent) !important; } /* Focus visible styles */ .focus-visible:focus { outline: 2px solid var(--ring); outline-offset: 2px; } /* Transition utilities */ .transition-default { transition: all 200ms ease-in-out; }