.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:#f9fafb;border-radius:4px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:10px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#16a34a}input[type=range]{-webkit-appearance:none;appearance:none;background:transparent;cursor:pointer;width:100%;height:40px}input[type=range]::-webkit-slider-runnable-track{background:#e5e7eb;height:8px;border-radius:5px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;margin-top:-10px;background-color:#16a34a;height:28px;width:28px;border-radius:50%;border:3px solid #fff;box-shadow:0 4px 8px rgba(0,0,0,.15);transition:transform .2s ease}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.1)}input[type=range]::-moz-range-track{background:#e5e7eb;height:8px;border-radius:5px}input[type=range]::-moz-range-thumb{border:3px solid #fff;background-color:#16a34a;height:28px;width:28px;border-radius:50%;box-shadow:0 4px 8px rgba(0,0,0,.15)}.cat-link{display:flex!important;align-items:center;justify-content:space-between;padding:14px 12px!important;min-height:48px;margin-bottom:4px;border-radius:8px;font-weight:500;transition:.3s}.cat-link:active{background-color:#f0fdf4;transform:scale(.98)}#toast-box{visibility:hidden;min-width:300px;background-color:#1f2937;color:#fff;text-align:center;border-radius:12px;padding:16px 24px;position:fixed;z-index:9999;left:50%;bottom:30px;transform:translateX(-50%);font-size:14px;box-shadow:0 10px 25px rgba(0,0,0,.2);opacity:0;transition:opacity .3s,bottom .3s;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:12px}#toast-box.show{visibility:visible;opacity:1;bottom:50px}#toast-box.success{background-color:#16a34a}#toast-box.error{background-color:#dc2626}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}aside#mobileSidebar{transition:transform .4s cubic-bezier(.4,0,.2,1)}select#sortOptions,button#btnFilterPrice{min-height:44px}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}#mobileFilterContent button{margin-bottom:8px}