/* Smart Loop Filters v4.1 */

/* ── Estado deshabilitado durante carga ──────────────────────────── */
.slf-disabled{opacity:.45;pointer-events:none;transition:opacity .2s;cursor:wait}
.slf-disabled input,.slf-disabled select,.slf-disabled button{cursor:not-allowed}

/* ── Error de configuracion (filtro duplicado) ───────────────────── */
.slf-config-error{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;background:#fff5f5;border:1px solid #fca5a5;border-radius:6px;font-size:13px;color:#991b1b;line-height:1.4;margin:4px 0}
.slf-config-error__icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;min-width:18px;background:#ef4444;color:#fff;border-radius:50%;font-size:11px;font-weight:700;line-height:1;margin-top:1px}

/* ── Layout ──────────────────────────────────────────────────────── */
.slf-filters-wrapper{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.slf-filter{display:flex;flex-direction:column;gap:6px}
.slf-filter-label{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.65}

/* ── Select ──────────────────────────────────────────────────────── */
.slf-select{padding:9px 14px;border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:inherit;font-size:14px;cursor:pointer;min-width:180px;appearance:auto;transition:border-color .2s}
.slf-select:hover,.slf-select:focus{border-color:#888;outline:none}

/* ── Select2 overrides ───────────────────────────────────────────── */
.select2-container--default .select2-selection--multiple,
.select2-container--default .select2-selection--single{border-color:#d0d0d0;border-radius:6px;min-height:38px;font-size:14px}
.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:38px;padding-left:14px}
.select2-container--default .select2-selection--single .select2-selection__arrow{height:38px}
.select2-container--default .select2-selection--multiple{padding:3px 8px}
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--focus .select2-selection--single{border-color:#888}
.select2-container{min-width:180px}

/* ── Checkboxes ──────────────────────────────────────────────────── */
.slf-filter--checkboxes{gap:8px}
.slf-checkboxes{display:flex;flex-wrap:wrap;gap:8px}
.slf-checkbox-item{position:relative;display:inline-flex;cursor:pointer}
.slf-checkbox-item input{position:absolute;opacity:0;width:0;height:0}
.slf-checkbox-label{display:inline-flex;align-items:center;gap:6px;font-size:14px;cursor:pointer;padding:7px 14px 7px 36px;border:1px solid #d0d0d0;border-radius:6px;transition:border-color .2s,background .2s;position:relative;user-select:none;line-height:1.3}
.slf-checkbox-label::before{content:'';position:absolute;left:11px;top:50%;transform:translateY(-50%);width:16px;height:16px;border:1.5px solid #bbb;border-radius:4px;background:#fff;transition:background .15s,border-color .15s}
.slf-checkbox-label::after{content:'';position:absolute;left:16px;top:50%;transform:translateY(-62%) rotate(45deg);width:5px;height:9px;border-right:2px solid #fff;border-bottom:2px solid #fff;opacity:0;transition:opacity .15s}
.slf-checkbox-item input:checked+.slf-checkbox-label{border-color:#333;background:rgba(0,0,0,.05)}
.slf-checkbox-item input:checked+.slf-checkbox-label::before{background:#333;border-color:#333}
.slf-checkbox-item input:checked+.slf-checkbox-label::after{opacity:1}
.slf-checkbox-label:hover{border-color:#888}

/* Radio (single checkbox) */
.slf-checkbox-item input[type="radio"]+.slf-checkbox-label::before{border-radius:50%}
.slf-checkbox-item input[type="radio"]:checked+.slf-checkbox-label::after{transform:translateY(-50%);width:8px;height:8px;border:none;background:#fff;border-radius:50%;left:14px;top:50%}

/* ── Botones ─────────────────────────────────────────────────────── */
.slf-filter--buttons{gap:8px}
.slf-btn-group{display:flex;flex-wrap:wrap;gap:6px}
.slf-btn-option{padding:7px 14px;border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:inherit;font-size:14px;cursor:pointer;transition:background .15s,border-color .15s,color .15s;user-select:none;line-height:1.3}
.slf-btn-option:hover{border-color:#888;background:#f5f5f5}
.slf-btn-option.slf-btn--active{background:#222;color:#fff;border-color:#222}

/* ── Color Swatches ──────────────────────────────────────────────── */
.slf-filter--colors{gap:8px}
.slf-color-swatches{display:flex;flex-wrap:wrap;gap:10px}
.slf-swatch-btn{display:flex;flex-direction:column;align-items:center;gap:5px;background:none;border:none;cursor:pointer;padding:4px;border-radius:6px;transition:transform .15s}
.slf-swatch-btn:hover{transform:scale(1.08)}
.slf-swatch-color{width:32px;height:32px;border-radius:6px;border:2px solid rgba(0,0,0,.1);display:block;transition:outline .15s}
.slf-swatch-name{font-size:11px;color:inherit;opacity:.7;max-width:48px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.slf-swatch-btn.slf-swatch--active .slf-swatch-color{outline:2.5px solid #333;outline-offset:2px}
.slf-swatch-btn.slf-swatch--active .slf-swatch-name{opacity:1;font-weight:600}

/* ── Rango de precio (dual slider) ──────────────────────────────── */
.slf-filter--price{min-width:240px}
.slf-dual-range{position:relative;height:42px;display:flex;flex-direction:column;justify-content:center;padding:0 2px}
.slf-range-track{position:absolute;top:50%;transform:translateY(-50%);left:0;right:0;height:4px;background:#e0e0e0;border-radius:2px;pointer-events:none;z-index:1}
.slf-range-fill{position:absolute;height:100%;background:#333;border-radius:2px;transition:left .05s,width .05s}
.slf-range-input{position:absolute;left:0;width:100%;height:4px;appearance:none;background:transparent;pointer-events:none;z-index:2;outline:none}
.slf-range-input::-webkit-slider-thumb{appearance:none;width:20px;height:20px;border-radius:50%;background:#333;border:2.5px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.3);cursor:pointer;pointer-events:all;transition:transform .15s}
.slf-range-input::-webkit-slider-thumb:hover{transform:scale(1.2)}
.slf-range-input::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#333;border:2.5px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.3);cursor:pointer;pointer-events:all}
.slf-price-display{margin-top:30px;font-size:13px;opacity:.7}
.slf-price-sep{margin:0 3px}

/* ── Rating / Estrellas ──────────────────────────────────────────── */
.slf-filter--rating{gap:6px}
.slf-star-rating{display:flex;align-items:center;gap:4px}
.slf-star{background:none;border:none;cursor:pointer;font-size:22px;color:#ddd;padding:0 2px;line-height:1;transition:color .15s,transform .1s}
.slf-star:hover,.slf-star.slf-star--hover{color:#f5a623;transform:scale(1.15)}
.slf-star.slf-star--filled{color:#f5a623}
.slf-star.slf-star--active{color:#f5a623}
.slf-rating-clear{background:none;border:1px solid #d0d0d0;border-radius:50%;width:22px;height:22px;cursor:pointer;font-size:14px;color:#888;display:inline-flex;align-items:center;justify-content:center;margin-left:4px;transition:border-color .15s,color .15s;flex-shrink:0}
.slf-rating-clear:hover{border-color:#333;color:#333}

/* ── Búsqueda inteligente ────────────────────────────────────────── */
.slf-filter--search{min-width:220px}
.slf-search-wrap{position:relative;display:flex;align-items:center;border:1px solid #d0d0d0;border-radius:6px;background:#fff;transition:border-color .2s;overflow:hidden}
.slf-search-wrap:focus-within{border-color:#888}
.slf-search-icon{position:absolute;left:10px;width:16px;height:16px;opacity:.45;flex-shrink:0;pointer-events:none}
.slf-search-input{width:100%;padding:9px 34px 9px 34px;border:none;background:transparent;font-size:14px;color:inherit;outline:none}
.slf-search-input::placeholder{opacity:.5}
.slf-search-clear{position:absolute;right:8px;background:none;border:none;cursor:pointer;font-size:16px;color:#888;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:color .15s}
.slf-search-clear:hover{color:#333}

/* ── Fecha ───────────────────────────────────────────────────────── */
.slf-filter--date{min-width:260px}
.slf-date-range{display:flex;align-items:center;gap:8px}
.slf-date-from,.slf-date-to{padding:8px 10px;border:1px solid #d0d0d0;border-radius:6px;font-size:13px;color:inherit;background:#fff;flex:1;min-width:100px;transition:border-color .2s}
.slf-date-from:focus,.slf-date-to:focus{border-color:#888;outline:none}
.slf-date-sep{color:#999;flex-shrink:0}

/* ── Sort By ─────────────────────────────────────────────────────── */
.slf-sortby-wrapper{display:inline-flex;align-items:center;border:1px solid #d0d0d0;border-radius:6px;background:#fff;transition:border-color .2s;overflow:hidden}
.slf-sortby-wrapper:focus-within{border-color:#888}
.slf-sortby-icon{width:16px;height:16px;margin-left:10px;opacity:.5;flex-shrink:0;stroke:currentColor}
.slf-sortby-select{padding:9px 12px 9px 8px;border:none;background:transparent;font-size:14px;color:inherit;cursor:pointer;min-width:160px;appearance:auto;outline:none}

/* ── Active Filters (badges) ─────────────────────────────────────── */
.slf-active-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:0}
.slf-active-filters:empty{display:none}
.slf-badges-list{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.slf-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#f0f0f0;border-radius:20px;font-size:13px;line-height:1.3;border:1px solid #e0e0e0}
.slf-badge-label{font-weight:500}
.slf-badge-remove{background:none;border:none;cursor:pointer;font-size:16px;color:#888;padding:0;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:background .15s,color .15s;flex-shrink:0;line-height:1}
.slf-badge-remove:hover{background:rgba(0,0,0,.1);color:#333}
.slf-reset-all{font-size:13px;color:#666;text-decoration:underline;cursor:pointer;white-space:nowrap;transition:color .15s}
.slf-reset-all:hover{color:#222}

/* ── Reset Button ────────────────────────────────────────────────── */
.slf-reset-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:inherit;font-size:14px;text-decoration:none;cursor:pointer;transition:border-color .2s,background .2s}
.slf-reset-btn:hover{border-color:#888;background:#f5f5f5}
.slf-reset-btn svg{opacity:.6}

/* ── Loading ─────────────────────────────────────────────────────── */
.slf-loading{opacity:.35;pointer-events:none;transition:opacity .2s}

/* ── Sin resultados ──────────────────────────────────────────────── */
.slf-no-results{padding:48px 24px;text-align:center;color:#888;font-size:15px;grid-column:1/-1}

/* ── Paginación ──────────────────────────────────────────────────── */
.slf-pagination{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.slf-page-btn{padding:7px 13px;border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:inherit;cursor:pointer;font-size:14px;transition:background .15s,border-color .15s}
.slf-page-btn:hover{border-color:#666;background:#f5f5f5}
.slf-page-btn.slf-page--active{background:#222;color:#fff;border-color:#222}

/* ── Responsive ──────────────────────────────────────────────────── */
@media(max-width:600px){
    .slf-filters-wrapper{flex-direction:column;align-items:stretch}
    .slf-select,.slf-sortby-select{min-width:100%}
    .slf-filter--price,.slf-filter--search,.slf-filter--date{min-width:100%}
    .slf-sortby-wrapper{width:100%}
    .slf-sortby-select{flex:1}
    .slf-date-range{flex-wrap:wrap}
    .slf-date-from,.slf-date-to{min-width:0}
}
