/* Custom CSS for PalletPal Pro */ /* Smooth scrolling */ html { scroll-behavior: smooth; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #f5f5f4; } .dark ::-webkit-scrollbar-track { background: #292524; } ::-webkit-scrollbar-thumb { background: #a8a29e; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #78716c; } /* Selection color */ ::selection { background: #22c55e; color: white; } /* Focus visible styles */ *:focus-visible { outline: 2px solid #22c55e; outline-offset: 2px; } /* Animation utilities */ .animate-delay-100 { animation-delay: 100ms; } .animate-delay-200 { animation-delay: 200ms; } .animate-delay-300 { animation-delay: 300ms; } /* Glass morphism effect */ .glass { background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } .dark .glass { background: rgba(28, 25, 23, 0.8); } /* Card hover lift */ .card-lift { transition: transform 0.3s ease, box-shadow 0.3s ease; } .card-lift:hover { transform: translateY(-8px); box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.15); } /* Gradient text */ .gradient-text { background: linear-gradient(135deg, #16a34a 0%, #f97316 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Button shine effect */ .btn-shine { position: relative; overflow: hidden; } .btn-shine::after { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent); transition: left 0.5s; } .btn-shine:hover::after { left: 100%; } /* Image zoom on hover */ .img-zoom { overflow: hidden; } .img-zoom img { transition: transform 0.5s ease; } .img-zoom:hover img { transform: scale(1.05); } /* Loading skeleton */ .skeleton { background: linear-gradient(90deg, #e7e5e4 25%, #d6d3d1 50%, #e7e5e4 75%); background-size: 200% 100%; animation: skeleton-loading 1.5s infinite; } .dark .skeleton { background: linear-gradient(90deg, #44403c 25%, #57534e 50%, #44403c 75%); background-size: 200% 100%; } @keyframes skeleton-loading { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } /* Toast notification */ .toast { position: fixed; bottom: 24px; right: 24px; padding: 16px 24px; background: white; border-radius: 12px; box-shadow: 0 10px 40px -10px rgba(0,0,0,0.2); transform: translateY(100px); opacity: 0; transition: all 0.3s ease; z-index: 1000; } .dark .toast { background: #292524; } .toast.show { transform: translateY(0); opacity: 1; } /* Form input autofill */ input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, textarea:-webkit-autofill, textarea:-webkit-autofill:hover, textarea:-webkit-autofill:focus, select:-webkit-autofill, select:-webkit-autofill:hover, select:-webkit-autofill:focus { -webkit-text-fill-color: inherit; -webkit-box-shadow: 0 0 0px 1000px transparent inset; transition: background-color 5000s ease-in-out 0s; } /* Print styles */ @media print { .no-print { display: none !important; } } /* Reduced motion */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } }