@import "tailwindcss"; @custom-variant dark (&:is(.dark *)); :root { --background: #fafafa; --foreground: #09090b; } .dark { --background: #0a0a0a; --foreground: #fafafa; } @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); --font-sans: var(--font-geist-sans); --font-mono: var(--font-geist-mono); } body { background: var(--background); color: var(--foreground); font-family: var(--font-geist-sans), system-ui, sans-serif; transition: background-color 0.3s ease, color 0.3s ease; } /* Scrollbar */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #a1a1aa; border-radius: 3px; } .dark ::-webkit-scrollbar-thumb { background: #3f3f46; } /* Animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } } @keyframes slideIn { from { opacity: 0; transform: translateX(-10px); } to { opacity: 1; transform: translateX(0); } } @keyframes pulse-ring { 0% { opacity: 1; } 50% { opacity: 0.3; } 100% { opacity: 1; } } @keyframes scaleIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } .animate-fade-in { animation: fadeIn 0.35s ease-out; } .animate-slide-in { animation: slideIn 0.3s ease-out; } .animate-scale-in { animation: scaleIn 0.2s ease-out; } .animate-pulse-ring { animation: pulse-ring 1.5s ease-in-out infinite; } /* Number input hide arrows */ input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; } input[type="number"] { -moz-appearance: textfield; } /* Toast animation */ @keyframes toastIn { from { opacity: 0; transform: translateY(10px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } } @keyframes toastOut { from { opacity: 1; transform: translateY(0) scale(1); } to { opacity: 0; transform: translateY(-10px) scale(0.95); } } .toast-enter { animation: toastIn 0.25s ease-out; } .toast-exit { animation: toastOut 0.2s ease-in forwards; }