.ajax-spinner{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,0.9);backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;z-index:9999}.spinner-container{text-align:center}.spinner{width:50px;height:50px;border:4px solid hsl(214.3 31.8% 91.4%);border-top:4px solid hsl(195 100% 50%);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.spinner-container p{color:hsl(210 40% 8%);font-size:1rem;font-weight:500}.products-loading{opacity:.5;pointer-events:none;transition:opacity .3s ease}.products-grid{transition:opacity .3s ease}.filters-sidebar input:disabled,.filters-sidebar select:disabled{opacity:.6;cursor:not-allowed}.filters-sidebar label:has(input:disabled){opacity:.6;cursor:not-allowed}.ajax-error-notification{position:fixed;top:20px;right:20px;background:hsl(0 84.2% 60.2%);color:white;padding:1rem 1.5rem;border-radius:.5rem;box-shadow:0 4px 12px rgba(0,0,0,0.15);z-index:10000;animation:slideIn .3s ease;max-width:400px}@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.filter-count{transition:all .3s ease}.filter-count.updating{color:hsl(195 100% 50%);font-weight:600}.pagination-container{transition:opacity .3s ease}.filter-item.active{background:hsl(195 100% 50% / .05);border-radius:.375rem;padding:.25rem .5rem;margin:0 -0.5rem}html{scroll-behavior:smooth}.skeleton-card{background:linear-gradient(90deg,hsl(210 25% 95%) 25%,hsl(210 25% 90%) 50%,hsl(210 25% 95%) 75%);background-size:200% 100%;animation:loading 1.5s infinite;border-radius:.75rem;height:400px}@keyframes loading{0%{background-position:200% 0}100%{background-position:-200% 0}}.filter-section.has-active-filters{background:hsl(195 100% 50% / .03);border:1px solid hsl(195 100% 50% / .1)}.filters-sidebar input[type="checkbox"]{transition:all .2s ease}.filters-sidebar input[type="checkbox"]:checked{animation:checkPulse .3s ease}@keyframes checkPulse{0%{transform:scale(1)}50%{transform:scale(1.2)}100%{transform:scale(1)}}@media(max-width:768px){.ajax-spinner{background:rgba(255,255,255,0.95)}.ajax-error-notification{left:20px;right:20px;top:auto;bottom:20px}}