Spaces:
Running
Running
| /* 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 ; | |
| } | |
| } | |
| /* Reduced motion */ | |
| @media (prefers-reduced-motion: reduce) { | |
| *, | |
| *::before, | |
| *::after { | |
| animation-duration: 0.01ms ; | |
| animation-iteration-count: 1 ; | |
| transition-duration: 0.01ms ; | |
| } | |
| } |