:root{--wff-primary:#2271b1;--wff-text:#333;--wff-text-light:#666;--wff-border:#e5e5e5;--wff-bg:#fff;--wff-bg-secondary:#f9f9f9;--wff-shadow:0 2px 8px #00000014;--wff-radius:8px;--wff-radius-sm:4px}.wff-container{color:var(--wff-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;padding:20px}.wff-layout{align-items:start;display:grid;gap:30px;grid-template-columns:260px 1fr}[dir=rtl] .wff-layout{direction:rtl}.wff-sidebar{background:var(--wff-bg);border:1px solid var(--wff-border);border-radius:var(--wff-radius);gap:28px;padding:24px;position:sticky;top:20px}.wff-filter-section,.wff-sidebar{display:flex;flex-direction:column}.wff-filter-section{gap:12px}.wff-filter-title{font-size:15px;font-weight:600;letter-spacing:.5px;margin:0;text-transform:uppercase}.wff-category-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto;padding-right:4px}[dir=rtl] .wff-category-list{padding-left:4px;padding-right:0}.wff-category-item{align-items:center;border-radius:var(--wff-radius-sm);cursor:pointer;display:flex;font-size:14px;gap:12px;margin:0 -12px;padding:8px 12px;transition:color .2s}.wff-category-item:hover{background:var(--wff-bg-secondary)}.wff-category-item input[type=checkbox]{align-items:center;appearance:none;-webkit-appearance:none;border:2px solid var(--wff-border);border-radius:var(--wff-radius-sm);cursor:pointer;display:flex;flex-shrink:0;height:18px;justify-content:center;transition:all .2s;width:18px}.wff-category-item input[type=checkbox]:checked{background:var(--wff-primary);border-color:var(--wff-primary)}.wff-category-item input[type=checkbox]:checked:after{color:#fff;content:"✓";font-size:12px;font-weight:700}.wff-category-item input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.wff-category-item span{line-height:1.4;word-break:break-word}.wff-price-inputs{align-items:center;display:flex;gap:12px}.wff-price-input-wrapper{flex:1;position:relative}.wff-price-input{border:1px solid var(--wff-border);border-radius:var(--wff-radius-sm);font-size:14px;padding:12px 14px;transition:border-color .2s,box-shadow .2s;width:100%}.wff-price-input:focus{border-color:var(--wff-primary);box-shadow:0 0 0 3px #2271b11a;outline:none}.wff-price-display{align-items:center;display:flex;font-size:15px;font-weight:600;gap:8px;justify-content:center;margin-bottom:16px}.wff-price-value{background:var(--wff-bg-secondary);border-radius:var(--wff-radius-sm);min-width:70px;padding:6px 12px;text-align:center}.wff-range-slider{height:20px;margin:10px 0;position:relative}.wff-range-track{background:var(--wff-border);height:6px;top:50%;transform:translateY(-50%);width:100%}.wff-range-fill,.wff-range-track{border-radius:3px;position:absolute}.wff-range-fill{background:var(--wff-primary);height:100%;top:0}.wff-range-input{appearance:none;background:#0000;height:20px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);width:100%;z-index:3}.wff-range-input::-webkit-slider-thumb{appearance:none;background:var(--wff-primary);border:3px solid #fff;border-radius:50%;box-shadow:0 2px 6px #0003;cursor:pointer;height:20px;pointer-events:auto;-webkit-transition:transform .15s;transition:transform .15s;width:20px}.wff-range-input::-webkit-slider-thumb:hover{transform:scale(1.15)}.wff-range-input::-moz-range-thumb{background:var(--wff-primary);border:3px solid #fff;border-radius:50%;box-shadow:0 2px 6px #0003;cursor:pointer;height:20px;pointer-events:auto;width:20px}.wff-range-min{z-index:4}.wff-range-max{z-index:3}.wff-price-input::placeholder{color:#999}.wff-price-separator{color:var(--wff-text-light);flex-shrink:0;font-size:14px}.wff-filter-btn{border:none;border-radius:var(--wff-radius-sm);color:#fff;cursor:pointer;font-size:14px;font-weight:600;letter-spacing:.5px;margin-top:4px;padding:14px 20px;text-transform:uppercase;transition:all .2s;width:100%}.wff-filter-btn:hover:not(:disabled){box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.wff-filter-btn:active:not(:disabled){transform:translateY(0)}.wff-filter-btn:disabled{cursor:not-allowed;opacity:.6}.wff-main-content{min-height:300px;position:relative}.wff-products-grid{display:grid;gap:24px;grid-template-columns:repeat(var(--desktop-cols,3),1fr)}.wff-error{padding:60px 20px;text-align:center}.wff-error-message{color:#dc3232;font-size:16px;margin-bottom:20px}.wff-error button{border:none;border-radius:var(--wff-radius-sm);color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:14px 28px}.wff-loading-container{padding:80px 20px;text-align:center}.wff-loading-container p{color:var(--wff-text-light);margin-top:16px}.wff-no-products{color:var(--wff-text-light);font-size:16px;padding:60px 20px;text-align:center}.wff-loading-overlay{align-items:center;background:#ffffffb3;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.wff-product-card{background:var(--wff-bg);border:1px solid var(--wff-border);border-radius:var(--wff-radius);overflow:hidden;transition:transform .2s,box-shadow .2s}.wff-product-card:hover{box-shadow:var(--wff-shadow);transform:translateY(-4px)}.wff-product-link{color:inherit;display:block;text-decoration:none}.wff-product-image{aspect-ratio:1;background:var(--wff-bg-secondary);overflow:hidden;position:relative}.wff-product-image img{height:100%;object-fit:cover;transition:transform .3s;width:100%}.wff-product-card:hover .wff-product-image img{transform:scale(1.05)}.wff-product-placeholder{align-items:center;color:#999;display:flex;font-size:14px;height:100%;justify-content:center;width:100%}.wff-sale-badge{background:#dc3232;border-radius:var(--wff-radius-sm);color:#fff;font-size:11px;font-weight:700;left:12px;letter-spacing:.5px;padding:6px 12px;position:absolute;text-transform:uppercase;top:12px}[dir=rtl] .wff-sale-badge{left:auto;right:12px}.wff-product-title{color:var(--wff-text);display:-webkit-box;font-size:15px;font-weight:600;-webkit-line-clamp:2;line-height:1.4;margin:16px 16px 8px;-webkit-box-orient:vertical;overflow:hidden}.wff-product-price{color:var(--wff-primary);font-size:18px;font-weight:700;margin:0 16px}.wff-product-rating{align-items:center;display:flex;font-size:13px;gap:6px;margin:8px 16px 16px}.wff-rating-stars{color:#f5c400;letter-spacing:1px}.wff-rating-count{color:var(--wff-text-light)}.wff-product-onsale .wff-product-price{color:#dc3232}.wff-product-outofstock{opacity:.6}.wff-out-of-stock-badge{background:#333;border-radius:var(--wff-radius-sm);bottom:16px;color:#fff;font-size:11px;font-weight:600;left:50%;padding:8px 16px;position:absolute;text-transform:uppercase;transform:translateX(-50%);z-index:5}.wff-pagination{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:40px}.wff-pagination-btn{background:var(--wff-bg);border:1px solid var(--wff-border);border-radius:var(--wff-radius-sm);color:var(--wff-text);cursor:pointer;font-size:14px;padding:10px 16px;transition:all .2s}.wff-pagination-btn:hover:not(:disabled){border-color:var(--wff-primary);color:var(--wff-primary)}.wff-pagination-btn.active{background:var(--wff-primary);border-color:var(--wff-primary);color:#fff}.wff-pagination-btn:disabled{cursor:not-allowed;opacity:.5}.wff-pagination-ellipsis{color:var(--wff-text-light);padding:10px 8px}.wff-spinner{border-top:3px solid var(--wff-bg-secondary);border:3px solid var(--wff-bg-secondary);border-radius:50%;border-top-color:var(--wff-primary);height:40px;margin:0 auto;width:40px}.wff-spinner,.wff-spinner-small{animation:wff-spin .8s linear infinite}.wff-spinner-small{border-top:2px solid var(--wff-bg-secondary);border:2px solid var(--wff-bg-secondary);border-radius:50%;border-top-color:var(--wff-primary);height:24px;width:24px}@keyframes wff-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:900px){.wff-layout{grid-template-columns:1fr}.wff-sidebar{position:static}.wff-products-grid{gap:16px;grid-template-columns:repeat(min(var(--desktop-cols,3),2),1fr)}}@media (max-width:600px){.wff-products-grid{grid-template-columns:repeat(var(--mobile-cols,1),1fr)}.wff-category-list{max-height:200px}.wff-price-inputs{flex-direction:column}.wff-price-separator{display:none}.wff-price-input-wrapper{width:100%}}
